@cyanheads/eurostat-mcp-server 0.6.5 → 0.8.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/AGENTS.md +1 -1
- package/CLAUDE.md +1 -1
- package/README.md +85 -85
- package/changelog/0.7.x/0.7.0.md +33 -0
- package/changelog/0.8.x/0.8.0.md +30 -0
- package/dist/config/server-config.d.ts +2 -0
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +13 -0
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.js +4 -2
- package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js +4 -4
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.d.ts +2 -2
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js +4 -4
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts +16 -23
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js +156 -65
- package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.d.ts +3 -4
- package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js +8 -9
- package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts +21 -7
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js +115 -19
- package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts +10 -3
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js +156 -24
- package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.d.ts +2 -2
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js +19 -6
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js.map +1 -1
- package/dist/mcp-server/tools/narrowing-advice.d.ts +22 -0
- package/dist/mcp-server/tools/narrowing-advice.d.ts.map +1 -0
- package/dist/mcp-server/tools/narrowing-advice.js +44 -0
- package/dist/mcp-server/tools/narrowing-advice.js.map +1 -0
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts +12 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts.map +1 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js +66 -12
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js.map +1 -1
- package/dist/services/eurostat-bulk/types.d.ts +5 -0
- package/dist/services/eurostat-bulk/types.d.ts.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts +47 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js +188 -13
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js.map +1 -1
- package/dist/services/eurostat-codelists.d.ts +20 -0
- package/dist/services/eurostat-codelists.d.ts.map +1 -1
- package/dist/services/eurostat-codelists.js +25 -0
- package/dist/services/eurostat-codelists.js.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.d.ts +78 -9
- package/dist/services/eurostat-data/eurostat-data-service.d.ts.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.js +306 -51
- package/dist/services/eurostat-data/eurostat-data-service.js.map +1 -1
- package/dist/services/eurostat-data/sdmx-metadata.d.ts +26 -0
- package/dist/services/eurostat-data/sdmx-metadata.d.ts.map +1 -1
- package/dist/services/eurostat-data/sdmx-metadata.js +38 -1
- package/dist/services/eurostat-data/sdmx-metadata.js.map +1 -1
- package/dist/services/eurostat-data/types.d.ts +38 -2
- package/dist/services/eurostat-data/types.d.ts.map +1 -1
- package/dist/services/eurostat-data/types.js.map +1 -1
- package/dist/services/eurostat-hosts.d.ts +17 -0
- package/dist/services/eurostat-hosts.d.ts.map +1 -0
- package/dist/services/eurostat-hosts.js +23 -0
- package/dist/services/eurostat-hosts.js.map +1 -0
- package/dist/services/eurostat-periods.d.ts +68 -0
- package/dist/services/eurostat-periods.d.ts.map +1 -0
- package/dist/services/eurostat-periods.js +204 -0
- package/dist/services/eurostat-periods.js.map +1 -0
- package/dist/services/shared-load.d.ts +16 -0
- package/dist/services/shared-load.d.ts.map +1 -0
- package/dist/services/shared-load.js +27 -0
- package/dist/services/shared-load.js.map +1 -0
- package/package.json +2 -2
- package/server.json +31 -3
|
@@ -11,6 +11,32 @@ export interface SdmxDatasetMetadata {
|
|
|
11
11
|
label: string;
|
|
12
12
|
}>>;
|
|
13
13
|
}
|
|
14
|
+
/** One dataflow from an SDMX 2.1 dataflow list (`dataflow/{agency}`). */
|
|
15
|
+
export interface SdmxDataflowSummary {
|
|
16
|
+
/** `ESMS_HTML` annotation: the dataflow's metadata page, which names its collection. */
|
|
17
|
+
esmsUrl?: string;
|
|
18
|
+
id: string;
|
|
19
|
+
/** English name, whitespace collapsed. Falls back to the id. */
|
|
20
|
+
label: string;
|
|
21
|
+
/** `UPDATE_DATA` annotation, verbatim (e.g. `2026-09-15T11:00:00+0200`). */
|
|
22
|
+
lastUpdated?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The dataflows an SDMX 2.1 dataflow list describes, with the annotations a
|
|
26
|
+
* catalogue entry needs. The list requested with no `detail` carries every
|
|
27
|
+
* dataflow's names and annotations — 23 KB for the Comext host's 11 — where the
|
|
28
|
+
* `allstubs` form carries names only.
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseSdmxDataflowList(xml: string): SdmxDataflowSummary[];
|
|
31
|
+
/**
|
|
32
|
+
* The key dimensions of an SDMX 2.1 structure definition (`datastructure/{agency}/{id}`),
|
|
33
|
+
* in the order the positional series key places them, time excluded.
|
|
34
|
+
*
|
|
35
|
+
* Order comes from each dimension's `position` attribute, not document order. The
|
|
36
|
+
* structure definition runs to a few KB whatever the dataset's size, so reading the
|
|
37
|
+
* order here never trips the extraction limit an observation request can hit.
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseSdmxDimensionOrder(dataStructureXml: string): string[];
|
|
14
40
|
/** Combine one dataflow's referencepartial descendants with its dataset content constraint. */
|
|
15
41
|
export declare function parseSdmxDatasetMetadata(dataflowXml: string, constraintXml: string, datasetCode: string): SdmxDatasetMetadata;
|
|
16
42
|
//# sourceMappingURL=sdmx-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdmx-metadata.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-data/sdmx-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sdmx-metadata.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-data/sdmx-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmBxD,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,IAAI,EAAE,WAAW,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC3E;AA0RD,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAexE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1E;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,mBAAmB,CAmErB"}
|
|
@@ -216,7 +216,7 @@ function parseConceptLabels(root) {
|
|
|
216
216
|
function parseDimensions(root, conceptLabels) {
|
|
217
217
|
const dimensionList = firstDescendant(root, 'DimensionList');
|
|
218
218
|
if (!dimensionList)
|
|
219
|
-
throw new Error('SDMX
|
|
219
|
+
throw new Error('SDMX structure omitted the dimension list');
|
|
220
220
|
return dimensionList.children
|
|
221
221
|
.filter(({ name }) => name === 'Dimension' || name === 'TimeDimension')
|
|
222
222
|
.map((dimension, index) => {
|
|
@@ -235,6 +235,7 @@ function parseDimensions(root, conceptLabels) {
|
|
|
235
235
|
return {
|
|
236
236
|
code,
|
|
237
237
|
...(codelistId && { codelistId }),
|
|
238
|
+
isTime: dimension.name === 'TimeDimension',
|
|
238
239
|
label: (conceptId && conceptLabels.get(conceptId)) ?? conceptLabels.get(rawCode) ?? code,
|
|
239
240
|
position: Number.parseInt(dimension.attributes.position ?? '', 10) || index + 1,
|
|
240
241
|
};
|
|
@@ -265,6 +266,42 @@ function parseConstraintValues(root) {
|
|
|
265
266
|
}
|
|
266
267
|
return valuesByDimension;
|
|
267
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* The dataflows an SDMX 2.1 dataflow list describes, with the annotations a
|
|
271
|
+
* catalogue entry needs. The list requested with no `detail` carries every
|
|
272
|
+
* dataflow's names and annotations — 23 KB for the Comext host's 11 — where the
|
|
273
|
+
* `allstubs` form carries names only.
|
|
274
|
+
*/
|
|
275
|
+
export function parseSdmxDataflowList(xml) {
|
|
276
|
+
return descendants(parseXml(xml), 'Dataflow').flatMap((dataflow) => {
|
|
277
|
+
const id = dataflow.attributes.id;
|
|
278
|
+
if (!id)
|
|
279
|
+
return [];
|
|
280
|
+
const lastUpdated = annotationValue(dataflow, 'UPDATE_DATA', 'AnnotationTitle');
|
|
281
|
+
const esmsUrl = annotationValue(dataflow, 'ESMS_HTML', 'AnnotationURL');
|
|
282
|
+
return [
|
|
283
|
+
{
|
|
284
|
+
id,
|
|
285
|
+
label: (localizedName(dataflow) ?? id).replace(/\s+/g, ' '),
|
|
286
|
+
...(lastUpdated && { lastUpdated }),
|
|
287
|
+
...(esmsUrl && { esmsUrl }),
|
|
288
|
+
},
|
|
289
|
+
];
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* The key dimensions of an SDMX 2.1 structure definition (`datastructure/{agency}/{id}`),
|
|
294
|
+
* in the order the positional series key places them, time excluded.
|
|
295
|
+
*
|
|
296
|
+
* Order comes from each dimension's `position` attribute, not document order. The
|
|
297
|
+
* structure definition runs to a few KB whatever the dataset's size, so reading the
|
|
298
|
+
* order here never trips the extraction limit an observation request can hit.
|
|
299
|
+
*/
|
|
300
|
+
export function parseSdmxDimensionOrder(dataStructureXml) {
|
|
301
|
+
return parseDimensions(parseXml(dataStructureXml), new Map())
|
|
302
|
+
.filter(({ isTime }) => !isTime)
|
|
303
|
+
.map(({ code }) => code);
|
|
304
|
+
}
|
|
268
305
|
/** Combine one dataflow's referencepartial descendants with its dataset content constraint. */
|
|
269
306
|
export function parseSdmxDatasetMetadata(dataflowXml, constraintXml, datasetCode) {
|
|
270
307
|
const dataflowRoot = parseXml(dataflowXml);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdmx-metadata.js","sourceRoot":"","sources":["../../../src/services/eurostat-data/sdmx-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8BH,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,2CAA2C,EAAE,CAAC,MAAM,EAAE,KAAa,EAAE,EAAE;QAC1F,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,CACL;YACE,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,GAAG;YACT,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,GAAG;SACV,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CACjC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,aAAqB;IACtC,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,KAAa;IAC5C,IAAI,KAA4B,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,IAAI,KAAK,KAAK;gBAAE,KAAK,GAAG,SAAS,CAAC;QACxC,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxC,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,KAAgB;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6FAA6F;AAC7F,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,IAAI,GAAY;QACpB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,WAAW;QACjB,aAAa,EAAE,WAAW;QAC1B,IAAI,EAAE,EAAE;KACT,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACxD,MAAM;QACR,CAAC;QACD,IAAI,OAAO,GAAG,MAAM;YAAE,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAEvF,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC9D,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAChE,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,0CAA0C,CAAC;QACpE,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/D,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,aAAa;gBAAE,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QAED,MAAM,IAAI,GAAY;YACpB,UAAU;YACV,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC;YAC9B,aAAa;YACb,IAAI,EAAE,EAAE;SACT,CAAC;QACF,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa,EAAE,IAAY;IAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW,CAAC,IAAa,EAAE,IAAY;IAC9C,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,IAAa,EAAE,IAAY;IAClD,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAyB;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjG,OAAO,IAAI,IAAI,SAAS,CAAC;AAC3B,CAAC;AAED,SAAS,aAAa,CAAC,IAAa;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,CACxF,CAAC;IACF,OAAO,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,SAAS,eAAe,CAAC,QAAiB,EAAE,IAAY,EAAE,KAAa;IACrE,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,IAAI,CACzD,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAC3E,CAAC;IACF,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB;IAC9C,OACE;QACE,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,WAAW;KAEnB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2C,CAAC;IACrE,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,QAAQ,GACZ,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9F,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;gBAChB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK;gBACnC,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;QACnD,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,IAAI,EAAE;YAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,IAAa,EAAE,aAAkC;IACxE,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC7D,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAE5F,OAAO,aAAa,CAAC,QAAQ;SAC1B,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,eAAe,CAAC;SACtE,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,eAAe;YAC/B,CAAC,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,EAAE;YACxD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,WAAW;YAC5B,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,EAAE;YACpD,CAAC,CAAC,SAAS,CAAC;QACd,OAAO;YACL,IAAI;YACJ,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;YACjC,KAAK,EAAE,CAAC,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;YACxF,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC;SAChF,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAa;IAC1C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtD,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;QACrD,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO;YAAE,SAAS;QACnE,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,iBAAiB,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,wBAAwB,CACtC,WAAmB,EACnB,aAAqB,EACrB,WAAmB;IAEnB,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,IAAI,CACzD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CACpF,CAAC;IACF,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,WAAW,GAAG,CAAC,CAAC;IAE1F,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,eAAe,GAA6B,EAAE,CAAC;IACrD,MAAM,iBAAiB,GAA2D,EAAE,CAAC;IACrF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,gBAAgB,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACpE,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvE,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvD,IAAI;YACJ,KAAK,EAAE,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI;SACjD,CAAC,CAAC,CAAC;QACJ,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;gBACnD,IAAI,KAAK;oBAAE,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CACtC,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAAI,EAAE,EAC/D,EAAE,CACH,CAAC;IACF,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,2BAA2B,EAAE,iBAAiB,CAAC,CAAC;IACxF,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,2BAA2B,EAAE,iBAAiB,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAE5E,OAAO;QACL,eAAe;QACf,IAAI,EAAE;YACJ,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,WAAW;YAC7C,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC7C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7C,OAAO;oBACL,IAAI;oBACJ,KAAK;oBACL,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;wBAClC,WAAW,EAAE,MAAM,CAAC,MAAM;wBAC1B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBAClC,CAAC;iBACH,CAAC;YACJ,CAAC,CAAC;YACF,SAAS,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;YAC3D,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;YACtE,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;YACnC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;SACpC;QACD,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"sdmx-metadata.js","sourceRoot":"","sources":["../../../src/services/eurostat-data/sdmx-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,11 @@ export interface JsonStatResponse {
|
|
|
19
19
|
size?: number[];
|
|
20
20
|
/** Status codes for non-normal observations: linear_index (as string) → status code. */
|
|
21
21
|
status?: Record<string, string>;
|
|
22
|
-
/**
|
|
23
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Flat dict: linear_index → value. Numeric, or null for missing — except on the
|
|
24
|
+
* PRODCOM collections, which publish flag and unit indicators as text (`":C"`, `"KG"`).
|
|
25
|
+
*/
|
|
26
|
+
value?: Record<string, number | string | null>;
|
|
24
27
|
/** Async/error response structures. */
|
|
25
28
|
warning?: {
|
|
26
29
|
status: number;
|
|
@@ -68,7 +71,14 @@ export interface Observation {
|
|
|
68
71
|
code: string;
|
|
69
72
|
label: string;
|
|
70
73
|
};
|
|
74
|
+
/** Numeric value; null when missing, withheld, or published as text. */
|
|
71
75
|
value: number | null;
|
|
76
|
+
/**
|
|
77
|
+
* A value Eurostat published as text rather than a number (a PRODCOM unit such as
|
|
78
|
+
* `KG`), verbatim. Absent for numeric and missing values; `:C` decodes to
|
|
79
|
+
* `confStatus` instead.
|
|
80
|
+
*/
|
|
81
|
+
valueText?: string;
|
|
72
82
|
}
|
|
73
83
|
/**
|
|
74
84
|
* One observation flattened into a dataframe row.
|
|
@@ -159,6 +169,32 @@ export interface QueryResult {
|
|
|
159
169
|
start?: string;
|
|
160
170
|
end?: string;
|
|
161
171
|
};
|
|
172
|
+
/**
|
|
173
|
+
* Filter values the reply matched to nothing, keyed by dimension, spelled as sent.
|
|
174
|
+
* Absent when every value matched.
|
|
175
|
+
*/
|
|
176
|
+
unmatchedValues?: UnmatchedValues;
|
|
177
|
+
}
|
|
178
|
+
/** Filter values that matched nothing, keyed by dimension code, spelled as sent. */
|
|
179
|
+
export type UnmatchedValues = Record<string, string[]>;
|
|
180
|
+
/**
|
|
181
|
+
* What an empty JSON-stat match says about why it is empty, carried on a
|
|
182
|
+
* `no_results` error's data. The members co-occur — an unmatched value can sit
|
|
183
|
+
* beside periods that carry no value — and all are absent when the reply says
|
|
184
|
+
* nothing more than "empty".
|
|
185
|
+
*/
|
|
186
|
+
export interface NoResultsDiagnosis {
|
|
187
|
+
/** Periods the reply selected, none carrying a value. Set only when every dimension matched. */
|
|
188
|
+
matchedPeriods?: string[];
|
|
189
|
+
/**
|
|
190
|
+
* Set when the requested range selected no period at all: the dataset's overall
|
|
191
|
+
* coverage from its annotations, each bound absent when Eurostat does not report it.
|
|
192
|
+
*/
|
|
193
|
+
outsideCoverage?: {
|
|
194
|
+
oldest?: string;
|
|
195
|
+
latest?: string;
|
|
196
|
+
};
|
|
197
|
+
unmatchedValues?: UnmatchedValues;
|
|
162
198
|
}
|
|
163
199
|
/**
|
|
164
200
|
* A query result plus a lazy row source over everything it matched.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-data/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,uCAAuC;IACvC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-data/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/eurostat-data/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/eurostat-data/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiMH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC;AAI7B,4FAA4F;AAC5F,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW;IACX,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;CAC+B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Which Eurostat host serves a dataset. Every service that builds a
|
|
3
|
+
* dataset-scoped URL asks here, so the routing rule lives in one place.
|
|
4
|
+
* @module services/eurostat-hosts
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* True for a `DS-*` code — the detailed trade (Comext) and PRODCOM collections.
|
|
8
|
+
*
|
|
9
|
+
* The Comext dissemination host serves exactly these, and the main host serves none
|
|
10
|
+
* of them: its 8,149 dataflow ids are letters, digits and underscores with no hyphen,
|
|
11
|
+
* so its `dsb_*` codes never match. Both hosts match codes case-insensitively, so
|
|
12
|
+
* `ds-045409` routes the same as `DS-045409`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isComextDataset(datasetCode: string): boolean;
|
|
15
|
+
/** Base URL of the host that serves `datasetCode`. */
|
|
16
|
+
export declare function dataHostFor(datasetCode: string): string;
|
|
17
|
+
//# sourceMappingURL=eurostat-hosts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eurostat-hosts.d.ts","sourceRoot":"","sources":["../../src/services/eurostat-hosts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGvD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Which Eurostat host serves a dataset. Every service that builds a
|
|
3
|
+
* dataset-scoped URL asks here, so the routing rule lives in one place.
|
|
4
|
+
* @module services/eurostat-hosts
|
|
5
|
+
*/
|
|
6
|
+
import { getServerConfig } from '../config/server-config.js';
|
|
7
|
+
/**
|
|
8
|
+
* True for a `DS-*` code — the detailed trade (Comext) and PRODCOM collections.
|
|
9
|
+
*
|
|
10
|
+
* The Comext dissemination host serves exactly these, and the main host serves none
|
|
11
|
+
* of them: its 8,149 dataflow ids are letters, digits and underscores with no hyphen,
|
|
12
|
+
* so its `dsb_*` codes never match. Both hosts match codes case-insensitively, so
|
|
13
|
+
* `ds-045409` routes the same as `DS-045409`.
|
|
14
|
+
*/
|
|
15
|
+
export function isComextDataset(datasetCode) {
|
|
16
|
+
return /^ds-/i.test(datasetCode);
|
|
17
|
+
}
|
|
18
|
+
/** Base URL of the host that serves `datasetCode`. */
|
|
19
|
+
export function dataHostFor(datasetCode) {
|
|
20
|
+
const { baseUrl, comextBaseUrl } = getServerConfig();
|
|
21
|
+
return isComextDataset(datasetCode) ? comextBaseUrl : baseUrl;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=eurostat-hosts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eurostat-hosts.js","sourceRoot":"","sources":["../../src/services/eurostat-hosts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE,CAAC;IACrD,OAAO,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Local check of the period literals `since_period`/`until_period`
|
|
3
|
+
* carry, run by both data tools before any request reaches Eurostat.
|
|
4
|
+
* @module services/eurostat-periods
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The accepted forms, as the tools' descriptions and recovery hints state them.
|
|
8
|
+
* `YYYY-A1`, the SDMX annual form, is read as well and sent as `YYYY`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const PERIOD_FORMS = "YYYY, YYYY-MM, YYYY-MM-DD, YYYY-Qn (1\u20134), YYYY-Sn (1\u20132), YYYY-Tn (1\u20133), YYYY-Mnn (01\u201312), YYYY-Wnn (a week the year has, up to 53) or YYYY-Dnnn (a day the year has, up to 366)";
|
|
11
|
+
/**
|
|
12
|
+
* A checked period: the literal to send, and the first and last day it covers as
|
|
13
|
+
* {@link dayNumber}s. The span is what lets two bounds of different frequencies be
|
|
14
|
+
* compared.
|
|
15
|
+
*/
|
|
16
|
+
export interface Period {
|
|
17
|
+
firstDay: number;
|
|
18
|
+
lastDay: number;
|
|
19
|
+
period: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The period to send upstream, or why there is none.
|
|
23
|
+
*
|
|
24
|
+
* A literal already in the form both endpoints read comes back unchanged, letter
|
|
25
|
+
* case included. Otherwise it comes back rewritten to that form, the letter's case
|
|
26
|
+
* kept as sent: a frequency number with extra leading zeros is cut to its canonical
|
|
27
|
+
* width (`2020-Q01` → `2020-Q1`, `2020-W001` → `2020-W01`), a day of the year is
|
|
28
|
+
* always sent as three digits (`2026-D1` → `2026-D001`, the only width the
|
|
29
|
+
* Statistics API reads), and `YYYY-A1` is sent as `YYYY`, which the Statistics API
|
|
30
|
+
* reads and `YYYY-A1` it does not.
|
|
31
|
+
*
|
|
32
|
+
* Beyond the shape, every component must exist: month 01–12, quarter 1–4,
|
|
33
|
+
* semester 1–2, trimester 1–3, a week the ISO year has, a day the year has, and a
|
|
34
|
+
* real calendar day. Both endpoints accept some out-of-range components and
|
|
35
|
+
* silently roll them into a neighbouring period (`2020-13` becomes 2021-01 on the
|
|
36
|
+
* bulk endpoint, `2021-W53` becomes 2022-W01 on both), so an unchecked one returns
|
|
37
|
+
* data for a range the caller never asked for.
|
|
38
|
+
*/
|
|
39
|
+
export declare function normalizePeriod(period: string): Period | {
|
|
40
|
+
problem: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Check both period bounds, `since_period` first, and return them in the form to
|
|
44
|
+
* send upstream (and echo back). Pass the values after trimming — a blank bound is
|
|
45
|
+
* "no bound" and never reaches this check.
|
|
46
|
+
*
|
|
47
|
+
* With both bounds set, the range must hold at least one day: it is empty when
|
|
48
|
+
* `since_period`'s period starts after `until_period`'s ends. Comparing the start of
|
|
49
|
+
* one against the end of the other keeps a cross-frequency pair such as `2020-06`
|
|
50
|
+
* to `2020` valid. Neither endpoint rejects an inverted range — the Statistics API
|
|
51
|
+
* answers with everything outside the gap, the bulk endpoint with the whole series.
|
|
52
|
+
*
|
|
53
|
+
* Returns the first failure's caller-facing message — naming the parameter, the
|
|
54
|
+
* value as sent, and what is wrong with it — rather than throwing, so the calling
|
|
55
|
+
* tool raises it through its own typed error contract.
|
|
56
|
+
*/
|
|
57
|
+
export declare function resolvePeriods(bounds: {
|
|
58
|
+
since_period?: string | undefined;
|
|
59
|
+
until_period?: string | undefined;
|
|
60
|
+
}): {
|
|
61
|
+
ok: true;
|
|
62
|
+
since_period?: string;
|
|
63
|
+
until_period?: string;
|
|
64
|
+
} | {
|
|
65
|
+
ok: false;
|
|
66
|
+
message: string;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=eurostat-periods.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eurostat-periods.d.ts","sourceRoot":"","sources":["../../src/services/eurostat-periods.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,wMAC0J,CAAC;AAsGpL;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CA6C5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA4B9F"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Local check of the period literals `since_period`/`until_period`
|
|
3
|
+
* carry, run by both data tools before any request reaches Eurostat.
|
|
4
|
+
* @module services/eurostat-periods
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The accepted forms, as the tools' descriptions and recovery hints state them.
|
|
8
|
+
* `YYYY-A1`, the SDMX annual form, is read as well and sent as `YYYY`.
|
|
9
|
+
*/
|
|
10
|
+
export const PERIOD_FORMS = 'YYYY, YYYY-MM, YYYY-MM-DD, YYYY-Qn (1–4), YYYY-Sn (1–2), YYYY-Tn (1–3), YYYY-Mnn (01–12), YYYY-Wnn (a week the year has, up to 53) or YYYY-Dnnn (a day the year has, up to 366)';
|
|
11
|
+
/**
|
|
12
|
+
* `YYYY`, `YYYY-MM`, `YYYY-MM-DD`, the annual `YYYY-A1`, or a frequency letter (in
|
|
13
|
+
* either case) followed by its number: `YYYY-Qn`, `YYYY-Sn`, `YYYY-Tn`, `YYYY-Mnn`,
|
|
14
|
+
* `YYYY-Wnn`, `YYYY-Dnnn`.
|
|
15
|
+
*
|
|
16
|
+
* Read off live probes of both endpoints: each shape here is parsed the same way by
|
|
17
|
+
* the Statistics API and the SDMX bulk endpoint once it is in the form {@link
|
|
18
|
+
* normalizePeriod} sends. The number after the letter may carry extra leading zeros
|
|
19
|
+
* (`2020-Q01`, `2020-W001`) — the bulk endpoint reads those, the Statistics API
|
|
20
|
+
* refuses them. Month and day in `YYYY-MM`/`YYYY-MM-DD` stay exactly two digits
|
|
21
|
+
* (both endpoints refuse `2020-1`). Frequency is deliberately not checked — both
|
|
22
|
+
* endpoints map a literal of another frequency (`2020-01` on annual data) onto the
|
|
23
|
+
* dataset's own.
|
|
24
|
+
*/
|
|
25
|
+
const PERIOD_SHAPE = /^(\d{4})(?:-(\d{2})(?:-(\d{2}))?|-(A)0{0,3}1|-([QSTMWD])(\d{1,4}))?$/i;
|
|
26
|
+
/**
|
|
27
|
+
* Per frequency letter: the digits its canonical form keeps and the largest number
|
|
28
|
+
* any year has. Weeks and days are further bounded by the year itself.
|
|
29
|
+
*/
|
|
30
|
+
const COMPONENT = {
|
|
31
|
+
Q: { name: 'quarter', max: 4, width: 1 },
|
|
32
|
+
S: { name: 'semester', max: 2, width: 1 },
|
|
33
|
+
T: { name: 'trimester', max: 3, width: 1 },
|
|
34
|
+
M: { name: 'month', max: 12, width: 2 },
|
|
35
|
+
W: { name: 'week', max: 53, width: 2 },
|
|
36
|
+
D: { name: 'day', max: 366, width: 3 },
|
|
37
|
+
};
|
|
38
|
+
const MONTH_NAMES = [
|
|
39
|
+
'January',
|
|
40
|
+
'February',
|
|
41
|
+
'March',
|
|
42
|
+
'April',
|
|
43
|
+
'May',
|
|
44
|
+
'June',
|
|
45
|
+
'July',
|
|
46
|
+
'August',
|
|
47
|
+
'September',
|
|
48
|
+
'October',
|
|
49
|
+
'November',
|
|
50
|
+
'December',
|
|
51
|
+
];
|
|
52
|
+
/** Characters of an offending value echoed back before it is cut short. */
|
|
53
|
+
const ECHO_LIMIT = 40;
|
|
54
|
+
const isLeapYear = (year) => (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
|
|
55
|
+
const daysInMonth = (year, month) => month === 2 ? (isLeapYear(year) ? 29 : 28) : [4, 6, 9, 11].includes(month) ? 30 : 31;
|
|
56
|
+
/**
|
|
57
|
+
* ISO 8601 weeks in a year: 53 when the year starts on a Thursday, or on a
|
|
58
|
+
* Wednesday in a leap year, otherwise 52. Asking either endpoint for week 53 of
|
|
59
|
+
* a 52-week year silently returns data from week 1 of the next year.
|
|
60
|
+
*/
|
|
61
|
+
function isoWeeksInYear(year) {
|
|
62
|
+
const weekday = (y) => (y + Math.floor(y / 4) - Math.floor(y / 100) + Math.floor(y / 400)) % 7;
|
|
63
|
+
return weekday(year) === 4 || weekday(year - 1) === 3 ? 53 : 52;
|
|
64
|
+
}
|
|
65
|
+
/** Days since 1970-01-01 (UTC). `setUTCFullYear` keeps years 0–99 literal, where `Date.UTC` would add 1900. */
|
|
66
|
+
function dayNumber(year, month, day) {
|
|
67
|
+
const date = new Date(0);
|
|
68
|
+
date.setUTCFullYear(year, month - 1, day);
|
|
69
|
+
return date.getTime() / 86_400_000;
|
|
70
|
+
}
|
|
71
|
+
/** First and last day of months `from`–`to` of `year`, as {@link dayNumber}s. */
|
|
72
|
+
const monthSpan = (year, from, to) => [
|
|
73
|
+
dayNumber(year, from, 1),
|
|
74
|
+
dayNumber(year, to, daysInMonth(year, to)),
|
|
75
|
+
];
|
|
76
|
+
/** First and last day of ISO week `week`: week 1 is the one holding 4 January. */
|
|
77
|
+
function isoWeekSpan(year, week) {
|
|
78
|
+
const jan4 = dayNumber(year, 1, 4);
|
|
79
|
+
const mondayOffset = (((jan4 + 3) % 7) + 7) % 7; // 1970-01-01, day 0, was a Thursday
|
|
80
|
+
const first = jan4 - mondayOffset + 7 * (week - 1);
|
|
81
|
+
return [first, first + 6];
|
|
82
|
+
}
|
|
83
|
+
/** First and last day each frequency number covers. */
|
|
84
|
+
const FREQUENCY_SPAN = {
|
|
85
|
+
Q: (year, n) => monthSpan(year, 3 * n - 2, 3 * n),
|
|
86
|
+
S: (year, n) => monthSpan(year, 6 * n - 5, 6 * n),
|
|
87
|
+
T: (year, n) => monthSpan(year, 4 * n - 3, 4 * n),
|
|
88
|
+
M: (year, n) => monthSpan(year, n, n),
|
|
89
|
+
W: isoWeekSpan,
|
|
90
|
+
D: (year, n) => {
|
|
91
|
+
const day = dayNumber(year, 1, n);
|
|
92
|
+
return [day, day];
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* The period to send upstream, or why there is none.
|
|
97
|
+
*
|
|
98
|
+
* A literal already in the form both endpoints read comes back unchanged, letter
|
|
99
|
+
* case included. Otherwise it comes back rewritten to that form, the letter's case
|
|
100
|
+
* kept as sent: a frequency number with extra leading zeros is cut to its canonical
|
|
101
|
+
* width (`2020-Q01` → `2020-Q1`, `2020-W001` → `2020-W01`), a day of the year is
|
|
102
|
+
* always sent as three digits (`2026-D1` → `2026-D001`, the only width the
|
|
103
|
+
* Statistics API reads), and `YYYY-A1` is sent as `YYYY`, which the Statistics API
|
|
104
|
+
* reads and `YYYY-A1` it does not.
|
|
105
|
+
*
|
|
106
|
+
* Beyond the shape, every component must exist: month 01–12, quarter 1–4,
|
|
107
|
+
* semester 1–2, trimester 1–3, a week the ISO year has, a day the year has, and a
|
|
108
|
+
* real calendar day. Both endpoints accept some out-of-range components and
|
|
109
|
+
* silently roll them into a neighbouring period (`2020-13` becomes 2021-01 on the
|
|
110
|
+
* bulk endpoint, `2021-W53` becomes 2022-W01 on both), so an unchecked one returns
|
|
111
|
+
* data for a range the caller never asked for.
|
|
112
|
+
*/
|
|
113
|
+
export function normalizePeriod(period) {
|
|
114
|
+
const match = PERIOD_SHAPE.exec(period);
|
|
115
|
+
if (!match)
|
|
116
|
+
return { problem: 'it is not one of the accepted period forms' };
|
|
117
|
+
const [, yearText = '', monthText, dayText, annual, letter, digits] = match;
|
|
118
|
+
const year = Number(yearText);
|
|
119
|
+
const wholeYear = () => {
|
|
120
|
+
const [firstDay, lastDay] = monthSpan(year, 1, 12);
|
|
121
|
+
return { firstDay, lastDay };
|
|
122
|
+
};
|
|
123
|
+
if (annual !== undefined)
|
|
124
|
+
return { period: yearText, ...wholeYear() };
|
|
125
|
+
if (monthText !== undefined) {
|
|
126
|
+
const month = Number(monthText);
|
|
127
|
+
if (month < 1 || month > 12)
|
|
128
|
+
return { problem: `month ${monthText} is outside 01–12` };
|
|
129
|
+
if (dayText === undefined) {
|
|
130
|
+
const [firstDay, lastDay] = monthSpan(year, month, month);
|
|
131
|
+
return { period, firstDay, lastDay };
|
|
132
|
+
}
|
|
133
|
+
const day = Number(dayText);
|
|
134
|
+
const last = daysInMonth(year, month);
|
|
135
|
+
if (day < 1 || day > last) {
|
|
136
|
+
return {
|
|
137
|
+
problem: `day ${dayText} does not exist: ${MONTH_NAMES[month - 1]} ${yearText} has ${last} days`,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
const firstDay = dayNumber(year, month, day);
|
|
141
|
+
return { period, firstDay, lastDay: firstDay };
|
|
142
|
+
}
|
|
143
|
+
if (letter === undefined || digits === undefined)
|
|
144
|
+
return { period, ...wholeYear() };
|
|
145
|
+
const kind = letter.toUpperCase();
|
|
146
|
+
const n = Number(digits);
|
|
147
|
+
const { name, max, width } = COMPONENT[kind];
|
|
148
|
+
if (n < 1 || n > max)
|
|
149
|
+
return { problem: `${name} ${n} is outside 1–${max}` };
|
|
150
|
+
if (kind === 'W' && n > isoWeeksInYear(year)) {
|
|
151
|
+
return { problem: `week ${n} does not exist: ${yearText} has 52 ISO weeks` };
|
|
152
|
+
}
|
|
153
|
+
if (kind === 'D' && n === 366 && !isLeapYear(year)) {
|
|
154
|
+
return { problem: `day 366 does not exist: ${yearText} has 365 days` };
|
|
155
|
+
}
|
|
156
|
+
const number = digits.length < width && kind !== 'D' ? digits : String(n).padStart(width, '0');
|
|
157
|
+
const [firstDay, lastDay] = FREQUENCY_SPAN[kind](year, n);
|
|
158
|
+
return { period: `${yearText}-${letter}${number}`, firstDay, lastDay };
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Check both period bounds, `since_period` first, and return them in the form to
|
|
162
|
+
* send upstream (and echo back). Pass the values after trimming — a blank bound is
|
|
163
|
+
* "no bound" and never reaches this check.
|
|
164
|
+
*
|
|
165
|
+
* With both bounds set, the range must hold at least one day: it is empty when
|
|
166
|
+
* `since_period`'s period starts after `until_period`'s ends. Comparing the start of
|
|
167
|
+
* one against the end of the other keeps a cross-frequency pair such as `2020-06`
|
|
168
|
+
* to `2020` valid. Neither endpoint rejects an inverted range — the Statistics API
|
|
169
|
+
* answers with everything outside the gap, the bulk endpoint with the whole series.
|
|
170
|
+
*
|
|
171
|
+
* Returns the first failure's caller-facing message — naming the parameter, the
|
|
172
|
+
* value as sent, and what is wrong with it — rather than throwing, so the calling
|
|
173
|
+
* tool raises it through its own typed error contract.
|
|
174
|
+
*/
|
|
175
|
+
export function resolvePeriods(bounds) {
|
|
176
|
+
const checked = {};
|
|
177
|
+
for (const param of ['since_period', 'until_period']) {
|
|
178
|
+
const value = bounds[param];
|
|
179
|
+
if (value === undefined)
|
|
180
|
+
continue;
|
|
181
|
+
const result = normalizePeriod(value);
|
|
182
|
+
if ('problem' in result) {
|
|
183
|
+
const shown = value.length > ECHO_LIMIT ? `${value.slice(0, ECHO_LIMIT)}…` : value;
|
|
184
|
+
return {
|
|
185
|
+
ok: false,
|
|
186
|
+
message: `${param} "${shown}" is not a valid period: ${result.problem}.`,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
checked[param] = result;
|
|
190
|
+
}
|
|
191
|
+
const { since_period: since, until_period: until } = checked;
|
|
192
|
+
if (since && until && since.firstDay > until.lastDay) {
|
|
193
|
+
return {
|
|
194
|
+
ok: false,
|
|
195
|
+
message: `since_period "${bounds.since_period}" starts after until_period "${bounds.until_period}" ends, so the range holds no period.`,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
ok: true,
|
|
200
|
+
...(since && { since_period: since.period }),
|
|
201
|
+
...(until && { until_period: until.period }),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=eurostat-periods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eurostat-periods.js","sourceRoot":"","sources":["../../src/services/eurostat-periods.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Await a load shared between concurrent callers without letting one
|
|
3
|
+
* caller's cancellation reach the others.
|
|
4
|
+
* @module services/shared-load
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Settle with a shared load for one caller, or reject as soon as that caller's own
|
|
8
|
+
* signal aborts.
|
|
9
|
+
*
|
|
10
|
+
* `share` returns the in-flight or settled load, started without any caller's signal,
|
|
11
|
+
* so an abort here only releases this caller: the load keeps running for everyone
|
|
12
|
+
* else awaiting it and for the cache it fills. A caller already aborted is refused
|
|
13
|
+
* before `share` runs, so it never starts a download it will not wait for.
|
|
14
|
+
*/
|
|
15
|
+
export declare function awaitShared<T>(signal: AbortSignal, share: () => Promise<T>): Promise<T>;
|
|
16
|
+
//# sourceMappingURL=shared-load.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-load.d.ts","sourceRoot":"","sources":["../../src/services/shared-load.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAUvF"}
|