@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.
Files changed (80) hide show
  1. package/AGENTS.md +6 -5
  2. package/CLAUDE.md +6 -5
  3. package/Dockerfile +7 -6
  4. package/README.md +36 -34
  5. package/changelog/0.10.x/0.10.0.md +40 -0
  6. package/changelog/0.10.x/0.10.1.md +27 -0
  7. package/dist/config/server-config.d.ts +1 -0
  8. package/dist/config/server-config.d.ts.map +1 -1
  9. package/dist/config/server-config.js +9 -4
  10. package/dist/config/server-config.js.map +1 -1
  11. package/dist/index.js +26 -8
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-server/tools/clamp-read-limit.d.ts +11 -0
  14. package/dist/mcp-server/tools/clamp-read-limit.d.ts.map +1 -0
  15. package/dist/mcp-server/tools/clamp-read-limit.js +14 -0
  16. package/dist/mcp-server/tools/clamp-read-limit.js.map +1 -0
  17. package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.d.ts +10 -2
  18. package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js +63 -10
  20. package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.d.ts +0 -1
  22. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js +14 -4
  24. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.d.ts +3 -3
  26. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js +113 -38
  28. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts +101 -2
  30. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js +60 -24
  32. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.d.ts +1 -1
  34. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.d.ts.map +1 -1
  35. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js +10 -1
  36. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js.map +1 -1
  37. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts +13 -6
  38. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts.map +1 -1
  39. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js +235 -53
  40. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js.map +1 -1
  41. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts +110 -5
  42. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts.map +1 -1
  43. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js +56 -26
  44. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js.map +1 -1
  45. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.d.ts +55 -2
  46. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.d.ts.map +1 -1
  47. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js +90 -22
  48. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js.map +1 -1
  49. package/dist/mcp-server/tools/value-list-paging.d.ts +49 -0
  50. package/dist/mcp-server/tools/value-list-paging.d.ts.map +1 -0
  51. package/dist/mcp-server/tools/value-list-paging.js +73 -0
  52. package/dist/mcp-server/tools/value-list-paging.js.map +1 -0
  53. package/dist/services/canvas-accessor.d.ts +11 -1
  54. package/dist/services/canvas-accessor.d.ts.map +1 -1
  55. package/dist/services/canvas-accessor.js +13 -2
  56. package/dist/services/canvas-accessor.js.map +1 -1
  57. package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts +8 -4
  58. package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts.map +1 -1
  59. package/dist/services/eurostat-bulk/eurostat-bulk-service.js +131 -46
  60. package/dist/services/eurostat-bulk/eurostat-bulk-service.js.map +1 -1
  61. package/dist/services/eurostat-bulk/types.d.ts +1 -1
  62. package/dist/services/eurostat-bulk/types.d.ts.map +1 -1
  63. package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts +46 -4
  64. package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts.map +1 -1
  65. package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js +146 -36
  66. package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js.map +1 -1
  67. package/dist/services/eurostat-data/eurostat-data-service.d.ts +5 -0
  68. package/dist/services/eurostat-data/eurostat-data-service.d.ts.map +1 -1
  69. package/dist/services/eurostat-data/eurostat-data-service.js +144 -28
  70. package/dist/services/eurostat-data/eurostat-data-service.js.map +1 -1
  71. package/dist/services/eurostat-filters.d.ts +13 -0
  72. package/dist/services/eurostat-filters.d.ts.map +1 -0
  73. package/dist/services/eurostat-filters.js +21 -0
  74. package/dist/services/eurostat-filters.js.map +1 -0
  75. package/dist/services/eurostat-outage.d.ts +27 -0
  76. package/dist/services/eurostat-outage.d.ts.map +1 -0
  77. package/dist/services/eurostat-outage.js +44 -0
  78. package/dist/services/eurostat-outage.js.map +1 -0
  79. package/package.json +9 -9
  80. package/server.json +31 -17
@@ -13,7 +13,11 @@ export declare class EurostatCatalogueService {
13
13
  private refresh;
14
14
  /** Shared in-flight retry of a failed Comext merge. */
15
15
  private remerge;
16
- /** Epoch ms before which a stale cache is served without re-attempting a failed refresh. */
16
+ /**
17
+ * Epoch ms before which a stale cache is served without re-attempting a failed refresh.
18
+ * Non-zero exactly while the last refresh attempt failed, so the cache in service is one
19
+ * past its TTL that the refresh could not replace.
20
+ */
17
21
  private refreshRetryAt;
18
22
  constructor(_config: AppConfig, _storage: StorageService);
19
23
  /**
@@ -98,6 +102,11 @@ export declare class EurostatCatalogueService {
98
102
  * theme reachable from a root-level browse.
99
103
  */
100
104
  private findRootChildren;
105
+ /**
106
+ * `catalogueLoadedAt` while a failed refresh keeps an expired catalogue in service — on the
107
+ * call whose refresh failed and through the cooldown after it.
108
+ */
109
+ private staleness;
101
110
  /**
102
111
  * Get immediate children of a folder code, or root theme folders if code is undefined.
103
112
  *
@@ -105,11 +114,19 @@ export declare class EurostatCatalogueService {
105
114
  * `buildCodeIndex`); the breadcrumbs of the branches not taken are returned as
106
115
  * `otherPlacements` so the caller can see that the code was ambiguous and which
107
116
  * alternatives exist.
117
+ *
118
+ * While the Comext list is not merged, a browse of a folder its collections file under
119
+ * reports `comextListMissing`, and a Comext folder or `DS-*` code fails `not_found` with
120
+ * `comextListMissing` in its data rather than as an unknown code. `catalogueLoadedAt`
121
+ * marks a catalogue a failed refresh could not replace, on the listing and in the data
122
+ * of a `not_found`.
108
123
  */
109
124
  browse(themeCode: string | undefined, ctx: Context): Promise<{
125
+ catalogueLoadedAt?: string;
126
+ comextListMissing?: boolean;
110
127
  items: BrowseItem[];
111
- parentPath: string[];
112
128
  otherPlacements?: string[][];
129
+ parentPath: string[];
113
130
  }>;
114
131
  private toBrowseItem;
115
132
  /**
@@ -119,11 +136,28 @@ export declare class EurostatCatalogueService {
119
136
  * opaque, so telling them apart would only describe its internal shape.
120
137
  */
121
138
  private decodeSearchCursor;
139
+ /**
140
+ * Each dataset's search text — label, breadcrumb, and code, lowercased, with whitespace
141
+ * beside punctuation removed — indexed like `entries`. Folders, which search never
142
+ * returns, are undefined.
143
+ */
144
+ private buildSearchText;
145
+ /**
146
+ * For a query that matched nothing, the words whose removal alone finds matches, with
147
+ * that count, in query order. `words` maps each distinct token to the word as typed.
148
+ * One pass: a placement missing exactly one word rescues its code for that word, and a
149
+ * code counts once per word whichever placement rescued it — so each count equals the
150
+ * `totalMatches` of the same search without that word.
151
+ */
152
+ private countWithoutEachWord;
122
153
  /**
123
154
  * Search datasets by keyword. The query is tokenized on whitespace and every
124
155
  * token must match (AND), case-insensitively, somewhere in a combined
125
156
  * `label + themePath + code` haystack — so concept-order and theme-named
126
157
  * queries resolve even when no single label contains the phrase verbatim.
158
+ * Whitespace beside punctuation is removed from the haystack, never from a token,
159
+ * so `Rev.2` finds `Rev. 2` while `R&D` and `DS-045409` keep their punctuation;
160
+ * no query matches less than it would against the unfolded text.
127
161
  * A query with no non-whitespace token matches nothing rather than everything.
128
162
  *
129
163
  * Returns datasets only (not folders), one row per code: a dataset filed under
@@ -138,15 +172,23 @@ export declare class EurostatCatalogueService {
138
172
  *
139
173
  * An empty match reports the `DS-*` codes the query names that neither source lists
140
174
  * (`undisseminatedCodes`), so the caller can be told the collection is not
141
- * disseminated rather than to broaden the search. `comextListMissing` flags that the
142
- * Comext list is not merged right now, when absence from it proves nothing.
175
+ * disseminated rather than to broaden the search, and — for two or more distinct
176
+ * words — each word whose removal alone finds matches (`wordRemovalCounts`).
177
+ * `comextListMissing` flags that the Comext list is not merged right now, so the
178
+ * `DS-*` collections were not searched and absence from that list proves nothing;
179
+ * `catalogueLoadedAt` marks a catalogue a failed refresh could not replace.
143
180
  */
144
181
  search(query: string, limit: number, cursor: string | undefined, ctx: Context): Promise<{
182
+ catalogueLoadedAt?: string;
145
183
  comextListMissing?: boolean;
146
184
  datasets: DatasetResult[];
147
185
  nextCursor?: string;
148
186
  totalMatches: number;
149
187
  undisseminatedCodes?: string[];
188
+ wordRemovalCounts?: Array<{
189
+ totalMatches: number;
190
+ word: string;
191
+ }>;
150
192
  }>;
151
193
  }
152
194
  export declare function initEurostatCatalogueService(config: AppConfig, storage: StorageService): void;
@@ -1 +1 @@
1
- {"version":3,"file":"eurostat-catalogue-service.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-catalogue/eurostat-catalogue-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAO/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAcrE,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAC;AAuDtE,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,qFAAqF;IACrF,OAAO,CAAC,OAAO,CAAgC;IAC/C,uDAAuD;IACvD,OAAO,CAAC,OAAO,CAAgC;IAC/C,4FAA4F;IAC5F,OAAO,CAAC,cAAc,CAAK;IAK3B,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAI;IAE5D;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,YAAY;YAIN,UAAU;IAyCxB;;;;;;OAMG;YACW,gBAAgB;IAY9B,0FAA0F;IAC1F,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,gBAAgB;IAUxB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAclB,uFAAuF;YACzE,gBAAgB;IAa9B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;YA0CV,eAAe;IAwB7B;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAwEhB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB,wDAAwD;IACxD,OAAO,CAAC,YAAY;IAOpB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;;;;;;OAOG;IACG,MAAM,CACV,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;KAAE,CAAC,CA+CtF;IAED,OAAO,CAAC,YAAY;IAepB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QACT,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,CAAC,CA+DD;CACF;AAgBD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE7F;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAOtE"}
1
+ {"version":3,"file":"eurostat-catalogue-service.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-catalogue/eurostat-catalogue-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAO/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAgBrE,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAC;AAoEtE,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,qFAAqF;IACrF,OAAO,CAAC,OAAO,CAAgC;IAC/C,uDAAuD;IACvD,OAAO,CAAC,OAAO,CAAgC;IAC/C;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAK;IAK3B,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAI;IAE5D;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,YAAY;YAIN,UAAU;IAyCxB;;;;;;OAMG;YACW,gBAAgB;IAY9B,0FAA0F;IAC1F,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,gBAAgB;IAUxB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAclB,uFAAuF;YACzE,gBAAgB;IA4B9B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;YA0CV,eAAe;IAmC7B;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAwEhB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB,wDAAwD;IACxD,OAAO,CAAC,YAAY;IAOpB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;;;;;;;;;OAaG;IACG,MAAM,CACV,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QACT,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,KAAK,EAAE,UAAU,EAAE,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;QAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC,CAiED;IAED,OAAO,CAAC,YAAY;IAepB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QACT,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,iBAAiB,CAAC,EAAE,KAAK,CAAC;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnE,CAAC,CAuED;CACF;AAgBD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE7F;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAOtE"}
@@ -4,15 +4,16 @@
4
4
  * @module services/eurostat-catalogue/eurostat-catalogue-service
5
5
  */
6
6
  import { invalidParams, notFound, serviceUnavailable, validationError, } from '@cyanheads/mcp-ts-core/errors';
7
- import { decodeCursor, encodeCursor, fetchWithTimeout, withRetry, } from '@cyanheads/mcp-ts-core/utils';
7
+ import { decodeCursor, encodeCursor, fetchWithTimeout, withExtra, withRetry, } from '@cyanheads/mcp-ts-core/utils';
8
8
  import { getServerConfig } from '../../config/server-config.js';
9
9
  import { parseSdmxDataflowList, } from '../eurostat-data/sdmx-metadata.js';
10
+ import { upstreamOutage } from '../eurostat-outage.js';
10
11
  import { awaitShared } from '../shared-load.js';
11
12
  /** Upper bound on datasets returned per search page, mirroring the tool's `limit` cap. */
12
13
  const MAX_PAGE_SIZE = 100;
13
14
  /**
14
15
  * How long a failed refresh keeps the stale cache in service before upstream is
15
- * tried again. `withRetry` bounds one attempt; this bounds the attempt rate, so
16
+ * tried again. `withRetry` bounds one load; this bounds the attempt rate, so
16
17
  * an upstream outage costs one fetch per minute rather than one per call. A failed
17
18
  * Comext merge is retried on the same schedule.
18
19
  */
@@ -39,15 +40,28 @@ const COMEXT_OTHER_FOLDER = {
39
40
  code: 'comext',
40
41
  label: 'Comext dissemination database - other collections',
41
42
  };
43
+ /** The TOC folders the Comext collection folders are filed under. */
44
+ const COMEXT_PARENT_FOLDERS = new Set(Object.values(COMEXT_FOLDERS).map((f) => f.parent));
42
45
  /** A dataset code on the Comext host's scheme, as a lowercased search token. */
43
46
  const DS_CODE_TOKEN = /^ds-\d+$/;
47
+ /**
48
+ * Whitespace beside punctuation other than `_`, removed from search text so `Rev.2` finds
49
+ * `Rev. 2` and `2015=100` finds `2015 = 100`. A run is taken whole after a punctuation mark,
50
+ * or from its first blank when one follows it — never retried from inside a run, which keeps
51
+ * a long run of blanks linear.
52
+ */
53
+ const SPACE_BESIDE_PUNCTUATION = /(?<=[^\p{L}\p{N}_\s])\s+|(?<!\s)\s+(?=[^\p{L}\p{N}_\s])/gu;
44
54
  export class EurostatCatalogueService {
45
55
  cache;
46
56
  /** Shared in-flight refresh so concurrent callers past the TTL trigger one fetch. */
47
57
  refresh;
48
58
  /** Shared in-flight retry of a failed Comext merge. */
49
59
  remerge;
50
- /** Epoch ms before which a stale cache is served without re-attempting a failed refresh. */
60
+ /**
61
+ * Epoch ms before which a stale cache is served without re-attempting a failed refresh.
62
+ * Non-zero exactly while the last refresh attempt failed, so the cache in service is one
63
+ * past its TTL that the refresh could not replace.
64
+ */
51
65
  refreshRetryAt = 0;
52
66
  // config and storage accepted to match the standard service init pattern;
53
67
  // this service uses only the Eurostat public API and per-request config.
@@ -166,14 +180,22 @@ export class EurostatCatalogueService {
166
180
  /** The Comext host's dataflow list — the `DS-*` collections the TOC does not carry. */
167
181
  async fetchComextFlows(ctx) {
168
182
  const { comextBaseUrl, requestTimeoutMs } = getServerConfig();
169
- const url = `${comextBaseUrl}/sdmx/2.1/dataflow/ESTAT`;
170
- const response = await fetchWithTimeout(url, requestTimeoutMs, ctx);
171
- const flows = parseSdmxDataflowList(await response.text());
183
+ const fetchCtx = withExtra(ctx, { endpoint: 'comext-dataflows' });
184
+ const text = await withRetry(async ({ signal }) => {
185
+ const response = await fetchWithTimeout(`${comextBaseUrl}/sdmx/2.1/dataflow/ESTAT`, requestTimeoutMs, fetchCtx, { signal });
186
+ return response.text();
187
+ }, {
188
+ operation: 'fetchComextFlows',
189
+ context: fetchCtx,
190
+ maxRetries: 0,
191
+ deadlineMs: requestTimeoutMs,
192
+ });
193
+ const flows = parseSdmxDataflowList(text);
172
194
  // An empty list is a broken answer, not an empty host: merging it would report every
173
195
  // DS-* code as undisseminated, so it is retried like any other failure.
174
196
  if (flows.length === 0)
175
- throw new Error(`The Comext dataflow list at ${url} listed no dataflows`);
176
- ctx.log.info('Comext dataflow list loaded', { url, dataflowCount: flows.length });
197
+ throw new Error('The Comext dataflow list listed no dataflows');
198
+ ctx.log.info('Comext dataflow list loaded', { dataflowCount: flows.length });
177
199
  return flows;
178
200
  }
179
201
  /**
@@ -225,16 +247,20 @@ export class EurostatCatalogueService {
225
247
  }
226
248
  async fetchTocEntries(ctx) {
227
249
  const { baseUrl, requestTimeoutMs } = getServerConfig();
228
- const url = `${baseUrl}/catalogue/toc/txt?lang=en`;
229
- ctx.log.info('Fetching Eurostat TOC', { url });
230
- const text = await withRetry(async () => {
231
- const response = await fetchWithTimeout(url, requestTimeoutMs, ctx);
250
+ const fetchCtx = withExtra(ctx, { endpoint: 'toc' });
251
+ ctx.log.info('Fetching Eurostat TOC');
252
+ const text = await withRetry(async ({ signal }) => {
253
+ const response = await fetchWithTimeout(`${baseUrl}/catalogue/toc/txt?lang=en`, requestTimeoutMs, fetchCtx, { signal });
232
254
  const body = await response.text();
233
255
  if (/^\s*<(!DOCTYPE\s+html|html[\s>])/i.test(body)) {
234
256
  throw serviceUnavailable('Eurostat TOC returned HTML instead of TSV — likely rate-limited or temporarily unavailable.');
235
257
  }
236
258
  return body;
237
- }, { operation: 'fetchToc', context: ctx, baseDelayMs: 1000 });
259
+ }, { operation: 'fetchToc', context: fetchCtx, baseDelayMs: 1000, deadlineMs: requestTimeoutMs }).catch((error) => {
260
+ // The load is shared and runs without a caller's signal, so nothing here is a cancellation.
261
+ throw (upstreamOutage(error, "Eurostat's catalogue endpoint", 'the table-of-contents read', {}) ??
262
+ error);
263
+ });
238
264
  const entries = this.parseToc(text);
239
265
  ctx.log.info('TOC loaded', { entryCount: entries.length });
240
266
  return entries;
@@ -392,6 +418,13 @@ export class EurostatCatalogueService {
392
418
  }
393
419
  return rootIdxs.flatMap((rootIdx) => this.indexesWhere(entries, (e) => e.parentIndex === rootIdx));
394
420
  }
421
+ /**
422
+ * `catalogueLoadedAt` while a failed refresh keeps an expired catalogue in service — on the
423
+ * call whose refresh failed and through the cooldown after it.
424
+ */
425
+ staleness(toc) {
426
+ return this.refreshRetryAt === 0 ? {} : { catalogueLoadedAt: toc.loadedAt.toISOString() };
427
+ }
395
428
  /**
396
429
  * Get immediate children of a folder code, or root theme folders if code is undefined.
397
430
  *
@@ -399,21 +432,34 @@ export class EurostatCatalogueService {
399
432
  * `buildCodeIndex`); the breadcrumbs of the branches not taken are returned as
400
433
  * `otherPlacements` so the caller can see that the code was ambiguous and which
401
434
  * alternatives exist.
435
+ *
436
+ * While the Comext list is not merged, a browse of a folder its collections file under
437
+ * reports `comextListMissing`, and a Comext folder or `DS-*` code fails `not_found` with
438
+ * `comextListMissing` in its data rather than as an unknown code. `catalogueLoadedAt`
439
+ * marks a catalogue a failed refresh could not replace, on the listing and in the data
440
+ * of a `not_found`.
402
441
  */
403
442
  async browse(themeCode, ctx) {
404
443
  const toc = await this.ensureLoaded(ctx);
444
+ const comextListMissing = toc.comextRetryAt !== undefined;
405
445
  if (!themeCode) {
406
446
  const childIndexes = this.findRootChildren(toc.entries);
407
447
  const items = childIndexes.flatMap((i) => {
408
448
  const item = this.toBrowseItem(toc.entries, i);
409
449
  return item ? [item] : [];
410
450
  });
411
- return { items, parentPath: [] };
451
+ return { items, parentPath: [], ...this.staleness(toc) };
412
452
  }
413
453
  const folderIdxMaybe = toc.codeIndex.get(themeCode);
414
454
  const folderEntry = folderIdxMaybe !== undefined ? toc.entries[folderIdxMaybe] : undefined;
415
455
  if (folderIdxMaybe === undefined || folderEntry === undefined) {
416
- throw notFound(`Theme "${themeCode}" not found in the Eurostat TOC. Use eurostat_browse_themes without theme_code to see top-level themes, then navigate from there.`, { reason: 'not_found', themeCode });
456
+ if (comextListMissing &&
457
+ (Object.hasOwn(COMEXT_FOLDERS, themeCode) ||
458
+ themeCode === COMEXT_OTHER_FOLDER.code ||
459
+ DS_CODE_TOKEN.test(themeCode.toLowerCase()))) {
460
+ throw notFound(`Theme "${themeCode}" comes from the Comext dataflow list, which could not be loaded, so it is not in the catalogue right now.`, { reason: 'not_found', themeCode, comextListMissing: true, ...this.staleness(toc) });
461
+ }
462
+ throw notFound(`Theme "${themeCode}" not found in the Eurostat TOC. Use eurostat_browse_themes without theme_code to see top-level themes, then navigate from there.`, { reason: 'not_found', themeCode, ...this.staleness(toc) });
417
463
  }
418
464
  if (folderEntry.type !== 'folder') {
419
465
  throw validationError(`Theme code "${themeCode}" identifies a ${folderEntry.type} entry, not a folder. Only folder codes can be expanded with eurostat_browse_themes.`, { reason: 'not_a_folder', themeCode, entryType: folderEntry.type });
@@ -432,7 +478,13 @@ export class EurostatCatalogueService {
432
478
  path.push(toc.entries[i]?.label ?? themeCode);
433
479
  return path;
434
480
  });
435
- return { items, parentPath, ...(otherPlacements.length > 0 && { otherPlacements }) };
481
+ return {
482
+ items,
483
+ parentPath,
484
+ ...(otherPlacements.length > 0 && { otherPlacements }),
485
+ ...(comextListMissing && COMEXT_PARENT_FOLDERS.has(themeCode) && { comextListMissing }),
486
+ ...this.staleness(toc),
487
+ };
436
488
  }
437
489
  toBrowseItem(entries, index) {
438
490
  const e = entries[index];
@@ -466,11 +518,57 @@ export class EurostatCatalogueService {
466
518
  }
467
519
  throw invalidParams('Unusable pagination cursor: it is malformed, was issued for a different query, or was issued against a catalogue snapshot that has since refreshed. Repeat the search without a cursor, then page with the nextCursor it returns.', { reason: 'invalid_cursor' });
468
520
  }
521
+ /**
522
+ * Each dataset's search text — label, breadcrumb, and code, lowercased, with whitespace
523
+ * beside punctuation removed — indexed like `entries`. Folders, which search never
524
+ * returns, are undefined.
525
+ */
526
+ buildSearchText(entries) {
527
+ return entries.map((e, i) => e.type === 'folder'
528
+ ? undefined
529
+ : `${e.label} ${this.buildPath(entries, i).join(' ')} ${e.code}`
530
+ .toLowerCase()
531
+ .replace(SPACE_BESIDE_PUNCTUATION, ''));
532
+ }
533
+ /**
534
+ * For a query that matched nothing, the words whose removal alone finds matches, with
535
+ * that count, in query order. `words` maps each distinct token to the word as typed.
536
+ * One pass: a placement missing exactly one word rescues its code for that word, and a
537
+ * code counts once per word whichever placement rescued it — so each count equals the
538
+ * `totalMatches` of the same search without that word.
539
+ */
540
+ countWithoutEachWord(toc, texts, words) {
541
+ const rescued = new Map();
542
+ toc.entries.forEach((e, i) => {
543
+ const text = texts[i];
544
+ if (text === undefined)
545
+ return;
546
+ let missing;
547
+ for (const token of words.keys()) {
548
+ if (text.includes(token))
549
+ continue;
550
+ if (missing !== undefined)
551
+ return;
552
+ missing = token;
553
+ }
554
+ if (missing === undefined)
555
+ return;
556
+ const codes = rescued.get(missing) ?? new Set();
557
+ rescued.set(missing, codes.add(e.code));
558
+ });
559
+ return [...words].flatMap(([token, word]) => {
560
+ const codes = rescued.get(token);
561
+ return codes ? [{ word, totalMatches: codes.size }] : [];
562
+ });
563
+ }
469
564
  /**
470
565
  * Search datasets by keyword. The query is tokenized on whitespace and every
471
566
  * token must match (AND), case-insensitively, somewhere in a combined
472
567
  * `label + themePath + code` haystack — so concept-order and theme-named
473
568
  * queries resolve even when no single label contains the phrase verbatim.
569
+ * Whitespace beside punctuation is removed from the haystack, never from a token,
570
+ * so `Rev.2` finds `Rev. 2` while `R&D` and `DS-045409` keep their punctuation;
571
+ * no query matches less than it would against the unfolded text.
474
572
  * A query with no non-whitespace token matches nothing rather than everything.
475
573
  *
476
574
  * Returns datasets only (not folders), one row per code: a dataset filed under
@@ -485,24 +583,27 @@ export class EurostatCatalogueService {
485
583
  *
486
584
  * An empty match reports the `DS-*` codes the query names that neither source lists
487
585
  * (`undisseminatedCodes`), so the caller can be told the collection is not
488
- * disseminated rather than to broaden the search. `comextListMissing` flags that the
489
- * Comext list is not merged right now, when absence from it proves nothing.
586
+ * disseminated rather than to broaden the search, and — for two or more distinct
587
+ * words — each word whose removal alone finds matches (`wordRemovalCounts`).
588
+ * `comextListMissing` flags that the Comext list is not merged right now, so the
589
+ * `DS-*` collections were not searched and absence from that list proves nothing;
590
+ * `catalogueLoadedAt` marks a catalogue a failed refresh could not replace.
490
591
  */
491
592
  async search(query, limit, cursor, ctx) {
492
593
  const toc = await this.ensureLoaded(ctx);
493
594
  const tokens = query.toLowerCase().split(/\s+/).filter(Boolean);
494
595
  if (tokens.length === 0)
495
596
  return { datasets: [], totalMatches: 0 };
597
+ toc.searchText ??= this.buildSearchText(toc.entries);
598
+ const texts = toc.searchText;
496
599
  const seen = new Set();
497
600
  const matched = toc.entries.flatMap((e, i) => {
498
- if (e.type === 'folder' || seen.has(e.code))
499
- return [];
500
- const themePath = this.buildPath(toc.entries, i);
501
- const haystack = `${e.label} ${themePath.join(' ')} ${e.code}`.toLowerCase();
502
- if (!tokens.every((t) => haystack.includes(t)))
601
+ const text = texts[i];
602
+ if (text === undefined || seen.has(e.code) || !tokens.every((t) => text.includes(t))) {
503
603
  return [];
604
+ }
504
605
  seen.add(e.code);
505
- return [{ e, themePath }];
606
+ return [{ e, i }];
506
607
  });
507
608
  /** Cursor identity: the normalized query plus the catalogue snapshot it was paged over. */
508
609
  const queryKey = tokens.join(' ');
@@ -514,9 +615,7 @@ export class EurostatCatalogueService {
514
615
  offset = state.offset;
515
616
  pageSize = Math.min(state.limit, MAX_PAGE_SIZE);
516
617
  }
517
- const datasets = matched
518
- .slice(offset, offset + pageSize)
519
- .map(({ e, themePath }) => ({
618
+ const datasets = matched.slice(offset, offset + pageSize).map(({ e, i }) => ({
520
619
  code: e.code,
521
620
  label: e.label,
522
621
  type: e.type,
@@ -524,21 +623,32 @@ export class EurostatCatalogueService {
524
623
  ...(e.dataEnd && { dataEnd: e.dataEnd }),
525
624
  ...(e.lastUpdated && { lastUpdated: e.lastUpdated }),
526
625
  ...(e.obsCount !== undefined && { obsCount: e.obsCount }),
527
- themePath,
626
+ themePath: this.buildPath(toc.entries, i),
528
627
  }));
529
- const undisseminatedCodes = matched.length === 0
530
- ? tokens
628
+ let undisseminatedCodes = [];
629
+ let wordRemovalCounts = [];
630
+ if (matched.length === 0) {
631
+ undisseminatedCodes = tokens
531
632
  .filter((t) => DS_CODE_TOKEN.test(t) && !toc.codeIndex.has(t.toUpperCase()))
532
- .map((t) => t.toUpperCase())
533
- : [];
633
+ .map((t) => t.toUpperCase());
634
+ // The typed words line up with the tokens: lowercasing neither adds nor removes whitespace.
635
+ const typed = query.split(/\s+/).filter(Boolean);
636
+ const words = new Map();
637
+ tokens.forEach((token, n) => {
638
+ if (!words.has(token))
639
+ words.set(token, typed[n] ?? token);
640
+ });
641
+ if (words.size > 1)
642
+ wordRemovalCounts = this.countWithoutEachWord(toc, texts, words);
643
+ }
534
644
  const nextOffset = offset + pageSize;
535
645
  return {
536
646
  datasets,
537
647
  totalMatches: matched.length,
538
- ...(undisseminatedCodes.length > 0 && {
539
- undisseminatedCodes,
540
- ...(toc.comextRetryAt !== undefined && { comextListMissing: true }),
541
- }),
648
+ ...(undisseminatedCodes.length > 0 && { undisseminatedCodes }),
649
+ ...(wordRemovalCounts.length > 0 && { wordRemovalCounts }),
650
+ ...(toc.comextRetryAt !== undefined && { comextListMissing: true }),
651
+ ...this.staleness(toc),
542
652
  ...(nextOffset < matched.length && {
543
653
  nextCursor: encodeCursor({
544
654
  offset: nextOffset,
@@ -1 +1 @@
1
- {"version":3,"file":"eurostat-catalogue-service.js","sourceRoot":"","sources":["../../../src/services/eurostat-catalogue/eurostat-catalogue-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eurostat-catalogue-service.js","sourceRoot":"","sources":["../../../src/services/eurostat-catalogue/eurostat-catalogue-service.ts"],"names":[],"mappings":"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"}
@@ -97,6 +97,11 @@ export declare class EurostatDataService {
97
97
  * collection — and it alone gets `EUROSTAT_METADATA_TIMEOUT_MS`.
98
98
  */
99
99
  private loadSdmxMetadata;
100
+ /**
101
+ * One Statistics API request, retried on transient failures. A 5xx or an unreachable
102
+ * host that outlasts the retries fails as a retryable `upstream_fault`; a call the
103
+ * caller cancelled keeps its cancellation.
104
+ */
100
105
  private fetchJson;
101
106
  private checkResponseErrors;
102
107
  /** Strides for a JSON-stat linear index: stride[i] = product of sizes[i+1..n-1]. */
@@ -1 +1 @@
1
- {"version":3,"file":"eurostat-data-service.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-data/eurostat-data-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eurostat-data-service.d.ts","sourceRoot":"","sources":["../../../src/services/eurostat-data/eurostat-data-service.ts"],"names":[],"mappings":"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"}