@cyanheads/eurostat-mcp-server 0.9.0 → 0.10.1
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 +6 -5
- package/CLAUDE.md +6 -5
- package/Dockerfile +7 -6
- package/README.md +36 -34
- package/changelog/0.10.x/0.10.0.md +40 -0
- package/changelog/0.10.x/0.10.1.md +27 -0
- package/dist/config/server-config.d.ts +1 -0
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +9 -4
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +26 -8
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/clamp-read-limit.d.ts +11 -0
- package/dist/mcp-server/tools/clamp-read-limit.d.ts.map +1 -0
- package/dist/mcp-server/tools/clamp-read-limit.js +14 -0
- package/dist/mcp-server/tools/clamp-read-limit.js.map +1 -0
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.d.ts +10 -2
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js +63 -10
- 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 +0 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js +14 -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 +3 -3
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js +113 -38
- 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 +101 -2
- 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 +60 -24
- 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 +1 -1
- 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 +10 -1
- 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 +13 -6
- 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 +235 -53
- 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 +110 -5
- 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 +56 -26
- 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 +55 -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 +90 -22
- package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js.map +1 -1
- package/dist/mcp-server/tools/value-list-paging.d.ts +49 -0
- package/dist/mcp-server/tools/value-list-paging.d.ts.map +1 -0
- package/dist/mcp-server/tools/value-list-paging.js +73 -0
- package/dist/mcp-server/tools/value-list-paging.js.map +1 -0
- package/dist/services/canvas-accessor.d.ts +11 -1
- package/dist/services/canvas-accessor.d.ts.map +1 -1
- package/dist/services/canvas-accessor.js +13 -2
- package/dist/services/canvas-accessor.js.map +1 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts +8 -4
- package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts.map +1 -1
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js +131 -46
- package/dist/services/eurostat-bulk/eurostat-bulk-service.js.map +1 -1
- package/dist/services/eurostat-bulk/types.d.ts +1 -1
- package/dist/services/eurostat-bulk/types.d.ts.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts +46 -4
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts.map +1 -1
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js +146 -36
- package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.d.ts +5 -0
- package/dist/services/eurostat-data/eurostat-data-service.d.ts.map +1 -1
- package/dist/services/eurostat-data/eurostat-data-service.js +144 -28
- package/dist/services/eurostat-data/eurostat-data-service.js.map +1 -1
- package/dist/services/eurostat-filters.d.ts +13 -0
- package/dist/services/eurostat-filters.d.ts.map +1 -0
- package/dist/services/eurostat-filters.js +21 -0
- package/dist/services/eurostat-filters.js.map +1 -0
- package/dist/services/eurostat-outage.d.ts +27 -0
- package/dist/services/eurostat-outage.d.ts.map +1 -0
- package/dist/services/eurostat-outage.js +44 -0
- package/dist/services/eurostat-outage.js.map +1 -0
- package/package.json +9 -9
- package/server.json +31 -17
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Paging and word filtering for a dimension's code/label list:
|
|
3
|
+
* the byte budget each response surface is held to, the search for the most
|
|
4
|
+
* whole values a page can carry within it, and the case- and accent-blind
|
|
5
|
+
* token match the filter applies.
|
|
6
|
+
* @module mcp-server/tools/value-list-paging
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* UTF-8 bytes each response surface may carry, charged separately to the
|
|
10
|
+
* serialized structuredContent and to the content[] text (every block,
|
|
11
|
+
* enrichment trailer included). A code constant, not an env var, so a page's
|
|
12
|
+
* size cannot drift between deployments. structuredContent is the larger
|
|
13
|
+
* surface on every list measured, so it is the one that ends a page.
|
|
14
|
+
*/
|
|
15
|
+
export declare const INLINE_BUDGET_BYTES = 64000;
|
|
16
|
+
/** Byte length of `text` once UTF-8 encoded — what a surface costs on the wire. */
|
|
17
|
+
export declare function utf8Bytes(text: string): number;
|
|
18
|
+
/** Bytes on each response surface. */
|
|
19
|
+
export interface SurfaceBytes {
|
|
20
|
+
structured: number;
|
|
21
|
+
text: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The most values, out of `count`, a page can carry within the budget on both
|
|
25
|
+
* surfaces — never fewer than one, even when that one alone exceeds it. `measure(k)` gives the exact bytes of the
|
|
26
|
+
* response carrying the first `k` values; `costOf(i)` what value `i` adds to
|
|
27
|
+
* each surface. The costs grow an estimate from a one-value response, so only
|
|
28
|
+
* the values that can fit are serialized, and `measure` then settles the exact
|
|
29
|
+
* answer: the response's own fields (the cursor, the notice) differ by a few
|
|
30
|
+
* bytes from one page length to the next.
|
|
31
|
+
*/
|
|
32
|
+
export declare function fitPage(count: number, measure: (k: number) => SurfaceBytes, costOf: (index: number) => SurfaceBytes): number;
|
|
33
|
+
/** Lowercase, compatibility-decompose, and drop combining marks: "Zürich" → "zurich". */
|
|
34
|
+
export declare function foldForMatch(text: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* The distinct folded words of a filter, split on whitespace. Punctuation stays
|
|
37
|
+
* part of a word, so `DE_EDDF` and `frankfurt/main` match literally. Empty when
|
|
38
|
+
* nothing but whitespace or combining marks was given.
|
|
39
|
+
*/
|
|
40
|
+
export declare function filterTokens(filter: string): string[];
|
|
41
|
+
/**
|
|
42
|
+
* The values whose code and label, joined by a space and folded, contain every
|
|
43
|
+
* token as a substring — in the list's own order, with no ranking.
|
|
44
|
+
*/
|
|
45
|
+
export declare function matchValues<T extends {
|
|
46
|
+
code: string;
|
|
47
|
+
label: string;
|
|
48
|
+
}>(values: readonly T[], tokens: readonly string[]): T[];
|
|
49
|
+
//# sourceMappingURL=value-list-paging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-list-paging.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/value-list-paging.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAKD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,YAAY,EACpC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,GACtC,MAAM,CAmBR;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAErD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACnE,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,CAAC,EAAE,CAKL"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Paging and word filtering for a dimension's code/label list:
|
|
3
|
+
* the byte budget each response surface is held to, the search for the most
|
|
4
|
+
* whole values a page can carry within it, and the case- and accent-blind
|
|
5
|
+
* token match the filter applies.
|
|
6
|
+
* @module mcp-server/tools/value-list-paging
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* UTF-8 bytes each response surface may carry, charged separately to the
|
|
10
|
+
* serialized structuredContent and to the content[] text (every block,
|
|
11
|
+
* enrichment trailer included). A code constant, not an env var, so a page's
|
|
12
|
+
* size cannot drift between deployments. structuredContent is the larger
|
|
13
|
+
* surface on every list measured, so it is the one that ends a page.
|
|
14
|
+
*/
|
|
15
|
+
export const INLINE_BUDGET_BYTES = 64_000;
|
|
16
|
+
/** Byte length of `text` once UTF-8 encoded — what a surface costs on the wire. */
|
|
17
|
+
export function utf8Bytes(text) {
|
|
18
|
+
return Buffer.byteLength(text, 'utf8');
|
|
19
|
+
}
|
|
20
|
+
const fits = (size) => size.structured <= INLINE_BUDGET_BYTES && size.text <= INLINE_BUDGET_BYTES;
|
|
21
|
+
/**
|
|
22
|
+
* The most values, out of `count`, a page can carry within the budget on both
|
|
23
|
+
* surfaces — never fewer than one, even when that one alone exceeds it. `measure(k)` gives the exact bytes of the
|
|
24
|
+
* response carrying the first `k` values; `costOf(i)` what value `i` adds to
|
|
25
|
+
* each surface. The costs grow an estimate from a one-value response, so only
|
|
26
|
+
* the values that can fit are serialized, and `measure` then settles the exact
|
|
27
|
+
* answer: the response's own fields (the cursor, the notice) differ by a few
|
|
28
|
+
* bytes from one page length to the next.
|
|
29
|
+
*/
|
|
30
|
+
export function fitPage(count, measure, costOf) {
|
|
31
|
+
if (count === 0)
|
|
32
|
+
return 0;
|
|
33
|
+
let { structured, text } = measure(1);
|
|
34
|
+
let k = 1;
|
|
35
|
+
while (k < count) {
|
|
36
|
+
const next = costOf(k);
|
|
37
|
+
if (structured + next.structured > INLINE_BUDGET_BYTES ||
|
|
38
|
+
text + next.text > INLINE_BUDGET_BYTES) {
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
structured += next.structured;
|
|
42
|
+
text += next.text;
|
|
43
|
+
k++;
|
|
44
|
+
}
|
|
45
|
+
while (k > 1 && !fits(measure(k)))
|
|
46
|
+
k--;
|
|
47
|
+
while (k < count && fits(measure(k + 1)))
|
|
48
|
+
k++;
|
|
49
|
+
return k;
|
|
50
|
+
}
|
|
51
|
+
/** Lowercase, compatibility-decompose, and drop combining marks: "Zürich" → "zurich". */
|
|
52
|
+
export function foldForMatch(text) {
|
|
53
|
+
return text.toLowerCase().normalize('NFKD').replace(/\p{M}/gu, '');
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The distinct folded words of a filter, split on whitespace. Punctuation stays
|
|
57
|
+
* part of a word, so `DE_EDDF` and `frankfurt/main` match literally. Empty when
|
|
58
|
+
* nothing but whitespace or combining marks was given.
|
|
59
|
+
*/
|
|
60
|
+
export function filterTokens(filter) {
|
|
61
|
+
return [...new Set(foldForMatch(filter).split(/\s+/).filter(Boolean))];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The values whose code and label, joined by a space and folded, contain every
|
|
65
|
+
* token as a substring — in the list's own order, with no ranking.
|
|
66
|
+
*/
|
|
67
|
+
export function matchValues(values, tokens) {
|
|
68
|
+
return values.filter((value) => {
|
|
69
|
+
const haystack = foldForMatch(`${value.code} ${value.label}`);
|
|
70
|
+
return tokens.every((token) => haystack.includes(token));
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=value-list-paging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-list-paging.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/value-list-paging.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,mFAAmF;AACnF,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAQD,MAAM,IAAI,GAAG,CAAC,IAAkB,EAAE,EAAE,CAClC,IAAI,CAAC,UAAU,IAAI,mBAAmB,IAAI,IAAI,CAAC,IAAI,IAAI,mBAAmB,CAAC;AAE7E;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,OAAoC,EACpC,MAAuC;IAEvC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IACE,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,mBAAmB;YAClD,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,mBAAmB,EACtC,CAAC;YACD,MAAM;QACR,CAAC;QACD,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QAC9B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC,EAAE,CAAC;IACN,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAAE,CAAC,EAAE,CAAC;IACvC,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,CAAC,EAAE,CAAC;IAC9C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,MAAoB,EACpB,MAAyB;IAEzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Module-level accessor for the framework's optional DataCanvas
|
|
3
|
-
* service, plus the acquire
|
|
3
|
+
* service, plus the acquire and failure helpers canvas-touching handlers go through.
|
|
4
4
|
* @module services/canvas-accessor
|
|
5
5
|
*/
|
|
6
6
|
import type { Context } from '@cyanheads/mcp-ts-core';
|
|
7
7
|
import type { CanvasInstance, DataCanvas } from '@cyanheads/mcp-ts-core/canvas';
|
|
8
|
+
import { McpError } from '@cyanheads/mcp-ts-core/errors';
|
|
8
9
|
/** Wired from `setup(core)` in `src/index.ts`. `undefined` when canvas is off. */
|
|
9
10
|
export declare function setCanvas(canvas: DataCanvas | undefined): void;
|
|
10
11
|
/**
|
|
@@ -32,4 +33,13 @@ export declare function newTableName(): string;
|
|
|
32
33
|
* `data.reason`.
|
|
33
34
|
*/
|
|
34
35
|
export declare function acquireCanvas(canvas: DataCanvas, canvasId: string | undefined, ctx: Context): Promise<CanvasInstance>;
|
|
36
|
+
/**
|
|
37
|
+
* True when `err` is a canvas failure carrying `reason`.
|
|
38
|
+
*
|
|
39
|
+
* The canvas attaches its own generic recovery hint to both reasons, and a hint
|
|
40
|
+
* set where an error is thrown outranks the one a tool declares. A handler that
|
|
41
|
+
* re-throws the failure through `ctx.fail` puts its declared recovery on the
|
|
42
|
+
* wire instead.
|
|
43
|
+
*/
|
|
44
|
+
export declare function isCanvasFailure(err: unknown, reason: 'canvas_not_found' | 'missing_table'): err is McpError;
|
|
35
45
|
//# sourceMappingURL=canvas-accessor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-accessor.d.ts","sourceRoot":"","sources":["../../src/services/canvas-accessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"canvas-accessor.d.ts","sourceRoot":"","sources":["../../src/services/canvas-accessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAsB,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAI7E,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,UAAU,GAAG,SAAS,CAElD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,cAAc,CAAC,CAYzB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,kBAAkB,GAAG,eAAe,GAC3C,GAAG,IAAI,QAAQ,CAEjB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Module-level accessor for the framework's optional DataCanvas
|
|
3
|
-
* service, plus the acquire
|
|
3
|
+
* service, plus the acquire and failure helpers canvas-touching handlers go through.
|
|
4
4
|
* @module services/canvas-accessor
|
|
5
5
|
*/
|
|
6
|
-
import { configurationError } from '@cyanheads/mcp-ts-core/errors';
|
|
6
|
+
import { configurationError, McpError } from '@cyanheads/mcp-ts-core/errors';
|
|
7
7
|
let _canvas;
|
|
8
8
|
/** Wired from `setup(core)` in `src/index.ts`. `undefined` when canvas is off. */
|
|
9
9
|
export function setCanvas(canvas) {
|
|
@@ -65,4 +65,15 @@ export async function acquireCanvas(canvas, canvasId, ctx) {
|
|
|
65
65
|
throw configurationError(`DataCanvas could not create its private scratch directory inside CANVAS_TEMP_PATH (${errno}). Point CANVAS_TEMP_PATH at a parent directory the server process can write to (the OS temp directory is used when it is unset), or set CANVAS_PROVIDER_TYPE=none to run without the dataframe tools.`, { reason: 'canvas_unavailable', errno }, { cause: err instanceof Error ? err : undefined });
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* True when `err` is a canvas failure carrying `reason`.
|
|
70
|
+
*
|
|
71
|
+
* The canvas attaches its own generic recovery hint to both reasons, and a hint
|
|
72
|
+
* set where an error is thrown outranks the one a tool declares. A handler that
|
|
73
|
+
* re-throws the failure through `ctx.fail` puts its declared recovery on the
|
|
74
|
+
* wire instead.
|
|
75
|
+
*/
|
|
76
|
+
export function isCanvasFailure(err, reason) {
|
|
77
|
+
return err instanceof McpError && err.data?.reason === reason;
|
|
78
|
+
}
|
|
68
79
|
//# sourceMappingURL=canvas-accessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-accessor.js","sourceRoot":"","sources":["../../src/services/canvas-accessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"canvas-accessor.js","sourceRoot":"","sources":["../../src/services/canvas-accessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE7E,IAAI,OAA+B,CAAC;AAEpC,kFAAkF;AAClF,MAAM,UAAU,SAAS,CAAC,MAA8B;IACtD,OAAO,GAAG,MAAM,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE1E,6EAA6E;AAC7E,SAAS,OAAO,CAAC,GAAY;IAC3B,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,YAAY,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACzE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;IAClB,CAAC;IACD,OAAO;AACT,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAkB,EAClB,QAA4B,EAC5B,GAAY;IAEZ,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,MAAM,GAAG,CAAC;QACtB,MAAM,kBAAkB,CACtB,sFAAsF,KAAK,wMAAwM,EACnS,EAAE,MAAM,EAAE,oBAAoB,EAAE,KAAK,EAAE,EACvC,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAClD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAY,EACZ,MAA4C;IAE5C,OAAO,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAChE,CAAC"}
|
|
@@ -63,6 +63,7 @@ export declare function parseHeader(line: string): TsvHeader;
|
|
|
63
63
|
*
|
|
64
64
|
* A filter key names its dimension in any case (`GEO` places the same as `geo`),
|
|
65
65
|
* as the Statistics API reads it; keys that differ only in case pool their values.
|
|
66
|
+
* A blank value is unset rather than an empty member of the `+` list.
|
|
66
67
|
*
|
|
67
68
|
* Returns `undefined` when no filter applies. An all-wildcard key is accepted
|
|
68
69
|
* by Eurostat, but omitting the segment asks the same question without staking
|
|
@@ -88,10 +89,13 @@ export declare class EurostatBulkService {
|
|
|
88
89
|
* Start a bulk download: issue the request, classify the response, parse the
|
|
89
90
|
* header, and hand back a generator over the body.
|
|
90
91
|
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
92
|
+
* Only the request is retried, and only on an outage: an HTTP 5xx or a host that
|
|
93
|
+
* could not be reached, both of which fail before any of the body is read, so a
|
|
94
|
+
* retry repeats a request rather than a transfer. One that outlasts the retries
|
|
95
|
+
* fails as a retryable `upstream_fault`. A timeout, a fault in the request, and a
|
|
96
|
+
* failure once the body is streaming are surfaced on the first attempt: a bulk body
|
|
97
|
+
* streams for up to `EUROSTAT_BULK_TIMEOUT_MS`, so re-running the request then
|
|
98
|
+
* would cost the caller another full transfer.
|
|
95
99
|
*/
|
|
96
100
|
startDownload(datasetCode: string, dimensionOrder: string[], filters: Record<string, string[]>, sinceP: string | undefined, untilP: string | undefined, ctx: Context): Promise<BulkDownload>;
|
|
97
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-bulk-service.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/eurostat-bulk-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"eurostat-bulk-service.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/eurostat-bulk-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAS/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAsBrE,OAAO,EACL,KAAK,YAAY,EAIjB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AA+BpB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,CA2DvE;AAuBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CAqB/F;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAkBnD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAChC,MAAM,GAAG,SAAS,CAmBpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,GAAG,YAAY,EAAE,CAarF;AAED,qBAAa,mBAAmB;IAI9B,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAI;IAE5D,OAAO,CAAC,QAAQ;IAgBhB;;;;;;;;;;;OAWG;IACG,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACjC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,YAAY,CAAC,CAsHvB;CACF;AA+TD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAExF;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAO5D"}
|
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
* one row per observation.
|
|
7
7
|
* @module services/eurostat-bulk/eurostat-bulk-service
|
|
8
8
|
*/
|
|
9
|
-
import { notFound, serviceUnavailable, validationError, } from '@cyanheads/mcp-ts-core/errors';
|
|
10
|
-
import { fetchWithTimeout } from '@cyanheads/mcp-ts-core/utils';
|
|
9
|
+
import { JsonRpcErrorCode, McpError, notFound, serviceUnavailable, timeout, validationError, } from '@cyanheads/mcp-ts-core/errors';
|
|
10
|
+
import { defaultIsTransient, fetchWithTimeout, withExtra, withRetry, } from '@cyanheads/mcp-ts-core/utils';
|
|
11
11
|
import { getServerConfig } from '../../config/server-config.js';
|
|
12
12
|
import { CONF_STATUS_COLUMN, CONF_STATUS_LABEL_COLUMN, CONF_STATUS_LABELS, decodeTextValue, OBS_FLAG_COLUMN, OBS_FLAG_LABEL_COLUMN, OBS_FLAG_LABELS, OBS_VALUE_COLUMN, OBS_VALUE_TEXT_COLUMN, } from '../eurostat-codelists.js';
|
|
13
|
+
import { dropUnsetFilters } from '../eurostat-filters.js';
|
|
13
14
|
import { dataHostFor, isComextDataset } from '../eurostat-hosts.js';
|
|
15
|
+
import { isUpstreamOutage, upstreamOutage } from '../eurostat-outage.js';
|
|
14
16
|
import { TIME_COLUMN, } from './types.js';
|
|
15
17
|
/**
|
|
16
18
|
* Decoded characters buffered before an XML body is classified.
|
|
@@ -82,6 +84,29 @@ export function classifyXmlBody(xml, datasetCode) {
|
|
|
82
84
|
}
|
|
83
85
|
throw serviceUnavailable(`Eurostat SDMX endpoint returned a fault for "${datasetCode}"${code ? ` (faultcode ${code})` : ''}: ${detail}`, { reason: 'upstream_fault', datasetCode, ...(code && { faultcode: code }) });
|
|
84
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Classify the XML body a non-2xx answer carried, when it names a failure this server
|
|
89
|
+
* models; otherwise return, leaving the caller to rethrow the HTTP error.
|
|
90
|
+
*
|
|
91
|
+
* `fetchWithTimeout` throws for any non-2xx before the caller sees the body, so a SOAP
|
|
92
|
+
* fault is only reachable through the excerpt captured on `err.data`. Faults run well
|
|
93
|
+
* under the framework's 500-byte cap, so the excerpt carries the whole envelope. On a
|
|
94
|
+
* 5xx, a body naming nothing this server models — an HTML or XML error page — is the
|
|
95
|
+
* outage itself, so the HTTP error is kept to mark it one.
|
|
96
|
+
*/
|
|
97
|
+
function classifyFaultBody(err, datasetCode) {
|
|
98
|
+
const body = err.data?.body;
|
|
99
|
+
if (typeof body !== 'string' || !body.includes('<'))
|
|
100
|
+
return;
|
|
101
|
+
try {
|
|
102
|
+
classifyXmlBody(body, datasetCode);
|
|
103
|
+
}
|
|
104
|
+
catch (fault) {
|
|
105
|
+
const unmodeled = fault.data?.reason === 'upstream_fault';
|
|
106
|
+
if (!(unmodeled && isUpstreamOutage(err)))
|
|
107
|
+
throw fault;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
85
110
|
/**
|
|
86
111
|
* Split one wide-TSV cell into its value and flags.
|
|
87
112
|
*
|
|
@@ -153,13 +178,14 @@ export function parseHeader(line) {
|
|
|
153
178
|
*
|
|
154
179
|
* A filter key names its dimension in any case (`GEO` places the same as `geo`),
|
|
155
180
|
* as the Statistics API reads it; keys that differ only in case pool their values.
|
|
181
|
+
* A blank value is unset rather than an empty member of the `+` list.
|
|
156
182
|
*
|
|
157
183
|
* Returns `undefined` when no filter applies. An all-wildcard key is accepted
|
|
158
184
|
* by Eurostat, but omitting the segment asks the same question without staking
|
|
159
185
|
* the request on this server's copy of the dimension order being current.
|
|
160
186
|
*/
|
|
161
187
|
export function buildKeyPath(dimensionOrder, filters) {
|
|
162
|
-
const applied = Object.entries(filters)
|
|
188
|
+
const applied = Object.entries(dropUnsetFilters(filters));
|
|
163
189
|
if (applied.length === 0)
|
|
164
190
|
return;
|
|
165
191
|
const byDimension = new Map();
|
|
@@ -222,15 +248,19 @@ export class EurostatBulkService {
|
|
|
222
248
|
* Start a bulk download: issue the request, classify the response, parse the
|
|
223
249
|
* header, and hand back a generator over the body.
|
|
224
250
|
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
251
|
+
* Only the request is retried, and only on an outage: an HTTP 5xx or a host that
|
|
252
|
+
* could not be reached, both of which fail before any of the body is read, so a
|
|
253
|
+
* retry repeats a request rather than a transfer. One that outlasts the retries
|
|
254
|
+
* fails as a retryable `upstream_fault`. A timeout, a fault in the request, and a
|
|
255
|
+
* failure once the body is streaming are surfaced on the first attempt: a bulk body
|
|
256
|
+
* streams for up to `EUROSTAT_BULK_TIMEOUT_MS`, so re-running the request then
|
|
257
|
+
* would cost the caller another full transfer.
|
|
229
258
|
*/
|
|
230
259
|
async startDownload(datasetCode, dimensionOrder, filters, sinceP, untilP, ctx) {
|
|
231
260
|
const { bulkTimeoutMs, bulkMaxBytes } = getServerConfig();
|
|
232
261
|
const keyPath = buildKeyPath(dimensionOrder, filters);
|
|
233
262
|
const url = this.buildUrl(datasetCode, keyPath, sinceP, untilP);
|
|
263
|
+
const fetchCtx = withExtra(ctx, { endpoint: 'sdmx-data', datasetCode });
|
|
234
264
|
ctx.log.info('Starting SDMX bulk download', {
|
|
235
265
|
datasetCode,
|
|
236
266
|
keyPath,
|
|
@@ -238,26 +268,48 @@ export class EurostatBulkService {
|
|
|
238
268
|
untilP,
|
|
239
269
|
maxBytes: bulkMaxBytes,
|
|
240
270
|
});
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
// fetchWithTimeout throws for any non-2xx before the caller sees the body, so the
|
|
253
|
-
// SOAP fault is only reachable through the captured excerpt on err.data. Faults run
|
|
254
|
-
// well under the framework's 500-byte cap, so the excerpt carries the whole envelope.
|
|
255
|
-
const body = err.data;
|
|
256
|
-
if (typeof body?.body === 'string' && body.body.includes('<')) {
|
|
257
|
-
classifyXmlBody(body.body, datasetCode);
|
|
271
|
+
const startedAt = Date.now();
|
|
272
|
+
const normalizeDeadline = (error) => {
|
|
273
|
+
if (!ctx.signal.aborted &&
|
|
274
|
+
Date.now() - startedAt >= bulkTimeoutMs &&
|
|
275
|
+
error instanceof McpError &&
|
|
276
|
+
error.code === JsonRpcErrorCode.Timeout) {
|
|
277
|
+
return timeout(`The bulk download exceeded its ${bulkTimeoutMs}ms operation deadline.`, {
|
|
278
|
+
reason: 'retry_deadline_exceeded',
|
|
279
|
+
deadlineMs: bulkTimeoutMs,
|
|
280
|
+
elapsedMs: Date.now() - startedAt,
|
|
281
|
+
}, { cause: error });
|
|
258
282
|
}
|
|
259
|
-
|
|
260
|
-
}
|
|
283
|
+
return error;
|
|
284
|
+
};
|
|
285
|
+
const response = await withRetry(async ({ signal, remainingMs }) => {
|
|
286
|
+
try {
|
|
287
|
+
return await fetchWithTimeout(url.toString(), Math.min(bulkTimeoutMs, remainingMs), fetchCtx, {
|
|
288
|
+
signal,
|
|
289
|
+
// 400 (bad filter value or arity), 404 (unknown dataset) and 413 (extraction too
|
|
290
|
+
// large) are modeled outcomes reclassified below into the declared error
|
|
291
|
+
// contract, not service failures.
|
|
292
|
+
expectedStatuses: [400, 404, 413],
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
classifyFaultBody(err, datasetCode);
|
|
297
|
+
throw err;
|
|
298
|
+
}
|
|
299
|
+
}, {
|
|
300
|
+
operation: 'fetchSdmxData',
|
|
301
|
+
context: fetchCtx,
|
|
302
|
+
baseDelayMs: 1000,
|
|
303
|
+
signal: ctx.signal,
|
|
304
|
+
deadlineMs: bulkTimeoutMs,
|
|
305
|
+
// An outage, minus the 501 the fetch layer marks deterministic.
|
|
306
|
+
isTransient: (error) => isUpstreamOutage(error) && defaultIsTransient(error),
|
|
307
|
+
}).catch((error) => {
|
|
308
|
+
// A download the caller cancelled is the caller's outcome, whatever the last attempt saw.
|
|
309
|
+
if (ctx.signal.aborted)
|
|
310
|
+
throw error;
|
|
311
|
+
throw (upstreamOutage(error, "Eurostat's SDMX data endpoint", `the bulk download of dataset "${datasetCode}"`, { datasetCode }) ?? error);
|
|
312
|
+
});
|
|
261
313
|
if (!response.body) {
|
|
262
314
|
throw serviceUnavailable(`Eurostat SDMX endpoint returned an empty body for "${datasetCode}".`, { reason: 'upstream_fault', datasetCode });
|
|
263
315
|
}
|
|
@@ -269,16 +321,27 @@ export class EurostatBulkService {
|
|
|
269
321
|
missingCount: 0,
|
|
270
322
|
periodsSeen: [],
|
|
271
323
|
};
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
324
|
+
let decoded;
|
|
325
|
+
try {
|
|
326
|
+
decoded = await decodeBody(response.body, stats, bulkMaxBytes);
|
|
327
|
+
const { header, remainder, iterator } = await readHeader(decoded, datasetCode, stats, bulkMaxBytes);
|
|
328
|
+
const valueText = isComextDataset(datasetCode);
|
|
329
|
+
return {
|
|
330
|
+
header,
|
|
331
|
+
stats,
|
|
332
|
+
url: url.toString(),
|
|
333
|
+
valueText,
|
|
334
|
+
rows: () => expandRows(iterator, remainder, header, stats, valueText, {
|
|
335
|
+
datasetCode,
|
|
336
|
+
maxBytes: bulkMaxBytes,
|
|
337
|
+
normalizeDeadline,
|
|
338
|
+
}),
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
await decoded?.return(undefined);
|
|
343
|
+
throw normalizeDeadline(error);
|
|
344
|
+
}
|
|
282
345
|
}
|
|
283
346
|
}
|
|
284
347
|
/**
|
|
@@ -292,8 +355,7 @@ export class EurostatBulkService {
|
|
|
292
355
|
* be predicted from the request either.
|
|
293
356
|
*
|
|
294
357
|
* The budget counts bytes *after* decompression. That is the uniform measure
|
|
295
|
-
* across both encodings,
|
|
296
|
-
* expands to, bounding the decoded size bounds the transfer as well. Hitting it
|
|
358
|
+
* across both encodings, independent of the wire size. Hitting it
|
|
297
359
|
* cancels the underlying reader rather than draining the rest — the body is
|
|
298
360
|
* chunked with no `Content-Length`, so a budget checked after the fact would
|
|
299
361
|
* have already paid for the whole transfer.
|
|
@@ -378,14 +440,17 @@ async function* budgetedText(stream, stats, maxBytes) {
|
|
|
378
440
|
break;
|
|
379
441
|
if (!value || value.length === 0)
|
|
380
442
|
continue;
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
443
|
+
const accepted = Math.min(value.length, maxBytes - stats.bytesRead);
|
|
444
|
+
stats.bytesRead += accepted;
|
|
445
|
+
stats.budgetExceeded = accepted < value.length;
|
|
446
|
+
const text = decoder.decode(accepted === value.length ? value : value.subarray(0, accepted), {
|
|
447
|
+
stream: true,
|
|
448
|
+
});
|
|
387
449
|
if (text)
|
|
388
450
|
yield text;
|
|
451
|
+
// A budget-cut UTF-8 sequence is an incomplete suffix, never a replacement character.
|
|
452
|
+
if (stats.budgetExceeded)
|
|
453
|
+
return;
|
|
389
454
|
}
|
|
390
455
|
const tail = decoder.decode();
|
|
391
456
|
if (tail)
|
|
@@ -415,7 +480,7 @@ async function* budgetedText(stream, stats, maxBytes) {
|
|
|
415
480
|
* the whole header, silently drop every period column past the cap, and read the
|
|
416
481
|
* header's own tail as a data line. The byte budget is what bounds this loop.
|
|
417
482
|
*/
|
|
418
|
-
async function readHeader(chunks, datasetCode) {
|
|
483
|
+
async function readHeader(chunks, datasetCode, stats, maxBytes) {
|
|
419
484
|
let buf = '';
|
|
420
485
|
let exhausted = false;
|
|
421
486
|
const pull = async () => {
|
|
@@ -436,6 +501,8 @@ async function readHeader(chunks, datasetCode) {
|
|
|
436
501
|
await pull();
|
|
437
502
|
const newline = buf.indexOf('\n');
|
|
438
503
|
if (newline === -1) {
|
|
504
|
+
if (stats.budgetExceeded)
|
|
505
|
+
throw byteBudgetFailure(datasetCode, stats, maxBytes);
|
|
439
506
|
if (buf.trim() === '') {
|
|
440
507
|
throw serviceUnavailable(`Eurostat SDMX endpoint returned an empty body for "${datasetCode}".`, { reason: 'upstream_fault', datasetCode });
|
|
441
508
|
}
|
|
@@ -448,6 +515,19 @@ async function readHeader(chunks, datasetCode) {
|
|
|
448
515
|
remainder: buf.slice(newline + 1),
|
|
449
516
|
};
|
|
450
517
|
}
|
|
518
|
+
/** A local transfer limit prevented the download from yielding a usable observation. */
|
|
519
|
+
function byteBudgetFailure(datasetCode, stats, maxBytes) {
|
|
520
|
+
return validationError(`The ${maxBytes}-byte decoded TSV budget was exhausted before a complete observation could be read for "${datasetCode}".`, {
|
|
521
|
+
reason: 'byte_budget_exceeded',
|
|
522
|
+
datasetCode,
|
|
523
|
+
maxBytes,
|
|
524
|
+
bytesRead: stats.bytesRead,
|
|
525
|
+
rowCount: stats.rowCount,
|
|
526
|
+
recovery: {
|
|
527
|
+
hint: 'Add dimension filters or narrow since_period/until_period to reduce the transfer, or raise EUROSTAT_BULK_MAX_BYTES.',
|
|
528
|
+
},
|
|
529
|
+
});
|
|
530
|
+
}
|
|
451
531
|
function stripCr(line) {
|
|
452
532
|
return line.endsWith('\r') ? line.slice(0, -1) : line;
|
|
453
533
|
}
|
|
@@ -466,7 +546,7 @@ function stripCr(line) {
|
|
|
466
546
|
*
|
|
467
547
|
* `valueText` adds the `obs_value_text` column holding a cell's text value.
|
|
468
548
|
*/
|
|
469
|
-
async function* expandRows(chunks, remainder, header, stats, valueText) {
|
|
549
|
+
async function* expandRows(chunks, remainder, header, stats, valueText, failure) {
|
|
470
550
|
const seen = new Set();
|
|
471
551
|
let buf = remainder;
|
|
472
552
|
const emit = function* (line) {
|
|
@@ -527,6 +607,11 @@ async function* expandRows(chunks, remainder, header, stats, valueText) {
|
|
|
527
607
|
if (!stats.budgetExceeded)
|
|
528
608
|
yield* emit(buf);
|
|
529
609
|
stats.periodsSeen = [...seen].sort();
|
|
610
|
+
if (stats.budgetExceeded && stats.rowCount === 0)
|
|
611
|
+
throw byteBudgetFailure(failure.datasetCode, stats, failure.maxBytes);
|
|
612
|
+
}
|
|
613
|
+
catch (error) {
|
|
614
|
+
throw failure.normalizeDeadline(error);
|
|
530
615
|
}
|
|
531
616
|
finally {
|
|
532
617
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurostat-bulk-service.js","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/eurostat-bulk-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eurostat-bulk-service.js","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/eurostat-bulk-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export interface BulkStats {
|
|
|
42
42
|
* the rows are a prefix of the dataset rather than all of it.
|
|
43
43
|
*/
|
|
44
44
|
budgetExceeded: boolean;
|
|
45
|
-
/** Decoded TSV bytes
|
|
45
|
+
/** Decoded TSV bytes accepted for parsing, never more than the configured byte budget. */
|
|
46
46
|
bytesRead: number;
|
|
47
47
|
/** Whether the response body arrived gzip-compressed. */
|
|
48
48
|
compressed: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D,4EAA4E;AAC5E,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,yDAAyD;IACzD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE7D,4EAA4E;AAC5E,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,yDAAyD;IACzD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,UAAU,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB"}
|