@cyanheads/eurostat-mcp-server 0.7.0 → 0.8.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 (82) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/Dockerfile +2 -2
  4. package/README.md +28 -13
  5. package/changelog/0.8.x/0.8.0.md +30 -0
  6. package/changelog/0.8.x/0.8.1.md +11 -0
  7. package/dist/config/server-config.d.ts +2 -0
  8. package/dist/config/server-config.d.ts.map +1 -1
  9. package/dist/config/server-config.js +13 -0
  10. package/dist/config/server-config.js.map +1 -1
  11. package/dist/index.js +2 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.d.ts.map +1 -1
  14. package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.js +4 -2
  15. package/dist/mcp-server/resources/definitions/eurostat-dataset.resource.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js +1 -1
  17. package/dist/mcp-server/tools/definitions/eurostat-browse-themes.tool.js.map +1 -1
  18. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.d.ts +1 -1
  19. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js +4 -4
  20. package/dist/mcp-server/tools/definitions/eurostat-dataframe-describe.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.d.ts +2 -2
  22. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js +4 -4
  23. package/dist/mcp-server/tools/definitions/eurostat-dataframe-query.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts +8 -18
  25. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js +102 -51
  27. package/dist/mcp-server/tools/definitions/eurostat-download-dataset.tool.js.map +1 -1
  28. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.d.ts +3 -4
  29. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js +8 -9
  31. package/dist/mcp-server/tools/definitions/eurostat-get-dataset-info.tool.js.map +1 -1
  32. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts +21 -7
  33. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js +115 -19
  35. package/dist/mcp-server/tools/definitions/eurostat-get-dimension-values.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts +3 -2
  37. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.d.ts.map +1 -1
  38. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js +27 -10
  39. package/dist/mcp-server/tools/definitions/eurostat-query-dataset.tool.js.map +1 -1
  40. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.d.ts +2 -2
  41. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js +19 -6
  43. package/dist/mcp-server/tools/definitions/eurostat-search-datasets.tool.js.map +1 -1
  44. package/dist/mcp-server/tools/narrowing-advice.d.ts +22 -0
  45. package/dist/mcp-server/tools/narrowing-advice.d.ts.map +1 -0
  46. package/dist/mcp-server/tools/narrowing-advice.js +44 -0
  47. package/dist/mcp-server/tools/narrowing-advice.js.map +1 -0
  48. package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts +9 -1
  49. package/dist/services/eurostat-bulk/eurostat-bulk-service.d.ts.map +1 -1
  50. package/dist/services/eurostat-bulk/eurostat-bulk-service.js +45 -10
  51. package/dist/services/eurostat-bulk/eurostat-bulk-service.js.map +1 -1
  52. package/dist/services/eurostat-bulk/types.d.ts +5 -0
  53. package/dist/services/eurostat-bulk/types.d.ts.map +1 -1
  54. package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts +47 -1
  55. package/dist/services/eurostat-catalogue/eurostat-catalogue-service.d.ts.map +1 -1
  56. package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js +188 -13
  57. package/dist/services/eurostat-catalogue/eurostat-catalogue-service.js.map +1 -1
  58. package/dist/services/eurostat-codelists.d.ts +20 -0
  59. package/dist/services/eurostat-codelists.d.ts.map +1 -1
  60. package/dist/services/eurostat-codelists.js +25 -0
  61. package/dist/services/eurostat-codelists.js.map +1 -1
  62. package/dist/services/eurostat-data/eurostat-data-service.d.ts +63 -8
  63. package/dist/services/eurostat-data/eurostat-data-service.d.ts.map +1 -1
  64. package/dist/services/eurostat-data/eurostat-data-service.js +228 -48
  65. package/dist/services/eurostat-data/eurostat-data-service.js.map +1 -1
  66. package/dist/services/eurostat-data/sdmx-metadata.d.ts +26 -0
  67. package/dist/services/eurostat-data/sdmx-metadata.d.ts.map +1 -1
  68. package/dist/services/eurostat-data/sdmx-metadata.js +38 -1
  69. package/dist/services/eurostat-data/sdmx-metadata.js.map +1 -1
  70. package/dist/services/eurostat-data/types.d.ts +12 -2
  71. package/dist/services/eurostat-data/types.d.ts.map +1 -1
  72. package/dist/services/eurostat-data/types.js.map +1 -1
  73. package/dist/services/eurostat-hosts.d.ts +17 -0
  74. package/dist/services/eurostat-hosts.d.ts.map +1 -0
  75. package/dist/services/eurostat-hosts.js +23 -0
  76. package/dist/services/eurostat-hosts.js.map +1 -0
  77. package/dist/services/shared-load.d.ts +16 -0
  78. package/dist/services/shared-load.d.ts.map +1 -0
  79. package/dist/services/shared-load.js +27 -0
  80. package/dist/services/shared-load.js.map +1 -0
  81. package/package.json +2 -2
  82. package/server.json +31 -3
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @fileoverview Recovery wording for a request Eurostat refused as too large, shared by
3
+ * the two data tools so both name the dataset's own dimensions the same way.
4
+ * @module mcp-server/tools/narrowing-advice
5
+ */
6
+ import { getEurostatDataService } from '../../services/eurostat-data/eurostat-data-service.js';
7
+ /**
8
+ * The dataset's key dimensions, for a too-large refusal's hint to name. `known` is the
9
+ * order the request already read, if any; otherwise the structure definition is read
10
+ * now, a few KB. The refusal itself carries no dimension list, and the hint is only
11
+ * more specific with one, so a failed read leaves it generic rather than replacing the
12
+ * refusal with a second error.
13
+ */
14
+ export async function dimensionsToNarrow(datasetCode, known, ctx) {
15
+ if (known.length > 0)
16
+ return known;
17
+ try {
18
+ return await getEurostatDataService().getDimensionOrder(datasetCode, ctx);
19
+ }
20
+ catch (error) {
21
+ ctx.log.debug('Could not read dimensions for a too-large refusal hint', {
22
+ datasetCode,
23
+ error: error instanceof Error ? error.message : String(error),
24
+ });
25
+ return;
26
+ }
27
+ }
28
+ /**
29
+ * Tell the caller how to shrink a refused request, naming the dimensions of this
30
+ * dataset it left unfiltered. `dimensions` is the dataset's key dimensions, or
31
+ * undefined when they could not be read; `filtered` names the dimensions the request
32
+ * filtered, in any case.
33
+ */
34
+ export function narrowingAdvice(datasetCode, dimensions, filtered) {
35
+ if (!dimensions) {
36
+ return `Add dimension filters — eurostat_get_dataset_info lists the dimensions of "${datasetCode}" — or a narrower since_period/until_period range.`;
37
+ }
38
+ const done = new Set(filtered.map((dim) => dim.toLowerCase()));
39
+ const open = dimensions.filter((dim) => dim !== 'time' && !done.has(dim.toLowerCase()));
40
+ return open.length > 0
41
+ ? `Filter on ${open.join(', ')} — the dimensions of "${datasetCode}" this request left unfiltered — or narrow since_period/until_period.`
42
+ : `Every dimension of "${datasetCode}" (${dimensions.join(', ')}) is already filtered: select fewer values per dimension, or a narrower since_period/until_period range.`;
43
+ }
44
+ //# sourceMappingURL=narrowing-advice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrowing-advice.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/narrowing-advice.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAmB,EACnB,KAAe,EACf,GAAY;IAEZ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,MAAM,sBAAsB,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,wDAAwD,EAAE;YACtE,WAAW;YACX,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;QACH,OAAO;IACT,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,UAAgC,EAChC,QAAkB;IAElB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,8EAA8E,WAAW,oDAAoD,CAAC;IACvJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,WAAW,uEAAuE;QACzI,CAAC,CAAC,uBAAuB,WAAW,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,0GAA0G,CAAC;AAC9K,CAAC"}
@@ -32,10 +32,15 @@ export declare function classifyXmlBody(xml: string, datasetCode: string): never
32
32
  * on both sides of the split is not an observation at all and yields
33
33
  * `undefined` — distinct from `: `, which is an observation Eurostat reports as
34
34
  * unavailable.
35
+ *
36
+ * A value that is not a number is read by {@link decodeTextValue}: PRODCOM's flag
37
+ * and unit indicators publish `:C` (confidential, no space before the `C`) and `KG`
38
+ * in the value position. `:C` lands in `conf`, and other text in `text`.
35
39
  */
36
40
  export declare function parseCell(cell: string): {
37
41
  conf: string | null;
38
42
  flag: string | null;
43
+ text?: string;
39
44
  value: number | null;
40
45
  } | undefined;
41
46
  /**
@@ -71,8 +76,11 @@ export declare function buildKeyPath(dimensionOrder: string[], filters: Record<s
71
76
  * prefix as `BIGINT` — serialized back out as a string — and types an
72
77
  * all-missing prefix from nulls alone. Every column is nullable: a measure is
73
78
  * routinely unavailable, and flags are the exception rather than the rule.
79
+ *
80
+ * `valueText` declares `obs_value_text` after `obs_value`, for a `DS-*` dataset —
81
+ * the same flag {@link BulkDownload.valueText} reports for the rows.
74
82
  */
75
- export declare function bulkRowSchema(dimensions: string[]): ColumnSchema[];
83
+ export declare function bulkRowSchema(dimensions: string[], valueText?: boolean): ColumnSchema[];
76
84
  export declare class EurostatBulkService {
77
85
  constructor(_config: AppConfig, _storage: StorageService);
78
86
  private buildUrl;
@@ -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;AAO/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAYrE,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,CA8CvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CAchF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAkBnD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAChC,MAAM,GAAG,SAAS,CAmBpB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAUlE;AAED,qBAAa,mBAAmB;IAI9B,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAI;IAE5D,OAAO,CAAC,QAAQ;IAiBhB;;;;;;;;OAQG;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,CAyDvB;CACF;AA6RD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAExF;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAO5D"}
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;AAO/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAerE,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;AAED;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;GAgBG;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;;;;;;;;OAQG;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,CA4DvB;CACF;AAiSD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAExF;AAED,wBAAgB,sBAAsB,IAAI,mBAAmB,CAO5D"}
@@ -9,7 +9,8 @@
9
9
  import { notFound, serviceUnavailable, validationError, } from '@cyanheads/mcp-ts-core/errors';
10
10
  import { fetchWithTimeout } from '@cyanheads/mcp-ts-core/utils';
11
11
  import { getServerConfig } from '../../config/server-config.js';
12
- import { CONF_STATUS_COLUMN, CONF_STATUS_LABEL_COLUMN, CONF_STATUS_LABELS, OBS_FLAG_COLUMN, OBS_FLAG_LABEL_COLUMN, OBS_FLAG_LABELS, OBS_VALUE_COLUMN, } from '../eurostat-codelists.js';
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 { dataHostFor, isComextDataset } from '../eurostat-hosts.js';
13
14
  import { TIME_COLUMN, } from './types.js';
14
15
  /**
15
16
  * Decoded characters buffered before an XML body is classified.
@@ -69,6 +70,16 @@ export function classifyXmlBody(xml, datasetCode) {
69
70
  if (code === '150') {
70
71
  throw validationError(`Eurostat rejected a filter value. This fault also covers a period range outside the dataset's coverage. Eurostat fault ${code}: ${detail}`, { reason: 'invalid_dimension', datasetCode, faultcode: code });
71
72
  }
73
+ /**
74
+ * Fault 413 is Eurostat refusing the extraction's size, on either host:
75
+ * `EXTRACTION_TOO_BIG` past its 5,000,000-row limit, or `EXTRACTION_TOO_BIG_COMEXT`
76
+ * for an unfiltered download of a large Comext collection (a small one, such as
77
+ * `DS-059368`, is served whole). The same
78
+ * request fails the same way every time, so it is not retryable.
79
+ */
80
+ if (code === '413') {
81
+ throw serviceUnavailable(`Eurostat refused the extraction of "${datasetCode}" as too large. Eurostat fault ${code}: ${detail}`, { reason: 'extraction_too_big', datasetCode, faultcode: code, retryable: false });
82
+ }
72
83
  throw serviceUnavailable(`Eurostat SDMX endpoint returned a fault for "${datasetCode}"${code ? ` (faultcode ${code})` : ''}: ${detail}`, { reason: 'upstream_fault', datasetCode, ...(code && { faultcode: code }) });
73
84
  }
74
85
  /**
@@ -80,6 +91,10 @@ export function classifyXmlBody(xml, datasetCode) {
80
91
  * on both sides of the split is not an observation at all and yields
81
92
  * `undefined` — distinct from `: `, which is an observation Eurostat reports as
82
93
  * unavailable.
94
+ *
95
+ * A value that is not a number is read by {@link decodeTextValue}: PRODCOM's flag
96
+ * and unit indicators publish `:C` (confidential, no space before the `C`) and `KG`
97
+ * in the value position. `:C` lands in `conf`, and other text in `text`.
83
98
  */
84
99
  export function parseCell(cell) {
85
100
  const sep = cell.indexOf(' ');
@@ -93,7 +108,15 @@ export function parseCell(cell) {
93
108
  if (rawValue === '' || rawValue === MISSING_VALUE)
94
109
  return { conf, flag, value: null };
95
110
  const num = Number(rawValue);
96
- return { conf, flag, value: Number.isFinite(num) ? num : null };
111
+ if (Number.isFinite(num))
112
+ return { conf, flag, value: num };
113
+ const decoded = decodeTextValue(rawValue);
114
+ return {
115
+ conf: conf ?? decoded.confStatus ?? null,
116
+ flag,
117
+ value: null,
118
+ ...(decoded.text && { text: decoded.text }),
119
+ };
97
120
  }
98
121
  /**
99
122
  * Parse the header line of a wide TSV body.
@@ -160,12 +183,18 @@ export function buildKeyPath(dimensionOrder, filters) {
160
183
  * prefix as `BIGINT` — serialized back out as a string — and types an
161
184
  * all-missing prefix from nulls alone. Every column is nullable: a measure is
162
185
  * routinely unavailable, and flags are the exception rather than the rule.
186
+ *
187
+ * `valueText` declares `obs_value_text` after `obs_value`, for a `DS-*` dataset —
188
+ * the same flag {@link BulkDownload.valueText} reports for the rows.
163
189
  */
164
- export function bulkRowSchema(dimensions) {
190
+ export function bulkRowSchema(dimensions, valueText = false) {
165
191
  return [
166
192
  ...dimensions.map((dim) => ({ name: dim, type: 'VARCHAR', nullable: true })),
167
193
  { name: TIME_COLUMN, type: 'VARCHAR', nullable: true },
168
194
  { name: OBS_VALUE_COLUMN, type: 'DOUBLE', nullable: true },
195
+ ...(valueText
196
+ ? [{ name: OBS_VALUE_TEXT_COLUMN, type: 'VARCHAR', nullable: true }]
197
+ : []),
169
198
  { name: OBS_FLAG_COLUMN, type: 'VARCHAR', nullable: true },
170
199
  { name: OBS_FLAG_LABEL_COLUMN, type: 'VARCHAR', nullable: true },
171
200
  { name: CONF_STATUS_COLUMN, type: 'VARCHAR', nullable: true },
@@ -178,11 +207,10 @@ export class EurostatBulkService {
178
207
  // biome-ignore lint/complexity/noUselessConstructor: standard init pattern
179
208
  constructor(_config, _storage) { }
180
209
  buildUrl(datasetCode, keyPath, sinceP, untilP) {
181
- const { baseUrl } = getServerConfig();
182
210
  const path = keyPath
183
211
  ? `${encodeURIComponent(datasetCode)}/${encodeURIComponent(keyPath)}`
184
212
  : encodeURIComponent(datasetCode);
185
- const url = new URL(`${baseUrl}/sdmx/2.1/data/${path}`);
213
+ const url = new URL(`${dataHostFor(datasetCode)}/sdmx/2.1/data/${path}`);
186
214
  url.searchParams.set('format', 'TSV');
187
215
  if (sinceP)
188
216
  url.searchParams.set('startPeriod', sinceP);
@@ -214,9 +242,10 @@ export class EurostatBulkService {
214
242
  try {
215
243
  response = await fetchWithTimeout(url.toString(), bulkTimeoutMs, ctx, {
216
244
  signal: ctx.signal,
217
- // 400 (bad filter value or arity) and 404 (unknown dataset) are modeled outcomes
218
- // reclassified below into the declared error contract, not service failures.
219
- expectedStatuses: [400, 404],
245
+ // 400 (bad filter value or arity), 404 (unknown dataset) and 413 (extraction too
246
+ // large) are modeled outcomes reclassified below into the declared error
247
+ // contract, not service failures.
248
+ expectedStatuses: [400, 404, 413],
220
249
  });
221
250
  }
222
251
  catch (err) {
@@ -242,11 +271,13 @@ export class EurostatBulkService {
242
271
  };
243
272
  const decoded = await decodeBody(response.body, stats, bulkMaxBytes);
244
273
  const { header, remainder, iterator } = await readHeader(decoded, datasetCode);
274
+ const valueText = isComextDataset(datasetCode);
245
275
  return {
246
276
  header,
247
277
  stats,
248
278
  url: url.toString(),
249
- rows: () => expandRows(iterator, remainder, header, stats),
279
+ valueText,
280
+ rows: () => expandRows(iterator, remainder, header, stats, valueText),
250
281
  };
251
282
  }
252
283
  }
@@ -432,8 +463,10 @@ function stripCr(line) {
432
463
  * Only complete lines are parsed. When the byte budget cancels the transfer
433
464
  * mid-line the trailing fragment is dropped rather than parsed into a row with
434
465
  * silently truncated fields.
466
+ *
467
+ * `valueText` adds the `obs_value_text` column holding a cell's text value.
435
468
  */
436
- async function* expandRows(chunks, remainder, header, stats) {
469
+ async function* expandRows(chunks, remainder, header, stats, valueText) {
437
470
  const seen = new Set();
438
471
  let buf = remainder;
439
472
  const emit = function* (line) {
@@ -454,6 +487,8 @@ async function* expandRows(chunks, remainder, header, stats) {
454
487
  }
455
488
  row[TIME_COLUMN] = period;
456
489
  row[OBS_VALUE_COLUMN] = parsed.value;
490
+ if (valueText)
491
+ row[OBS_VALUE_TEXT_COLUMN] = parsed.text ?? null;
457
492
  row[OBS_FLAG_COLUMN] = parsed.flag;
458
493
  row[OBS_FLAG_LABEL_COLUMN] = parsed.flag ? (OBS_FLAG_LABELS[parsed.flag] ?? null) : null;
459
494
  row[CONF_STATUS_COLUMN] = parsed.conf;
@@ -1 +1 @@
1
- {"version":3,"file":"eurostat-bulk-service.js","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/eurostat-bulk-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAEL,QAAQ,EACR,kBAAkB,EAClB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAIL,WAAW,GAEZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,6FAA6F;AAC7F,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,yEAAyE;AACzE,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,4FAA4F;AAC5F,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAE3C,yFAAyF;AACzF,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;SACvB,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;SACvB,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;SACzB,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;SACzB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,WAAmB;IAC9D,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC/E,MAAM,kBAAkB,CACtB,sIAAsI,WAAW,+JAA+J,EAChT,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAC1D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,cAAc,CAC3B,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CACrF,CAAC;IAEF,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,QAAQ,CACZ,YAAY,WAAW,wDAAwD,IAAI,KAAK,MAAM,EAAE,EAChG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CACtD,CAAC;IACJ,CAAC;IACD;;;;OAIG;IACH,IAAI,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE,CAAC;QACzE,MAAM,eAAe,CACnB,2CAA2C,WAAW,qBAAqB,IAAI,KAAK,MAAM,EAAE,EAC5F,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAC3D,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,eAAe,CACnB,8HAA8H,IAAI,KAAK,MAAM,EAAE,EAC/I,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CACzD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,eAAe,CACnB,0HAA0H,IAAI,KAAK,MAAM,EAAE,EAC3I,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,CACtB,gDAAgD,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE,EAC9G,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAC5E,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CACvB,IAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhE,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO;IAE/C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;IAC1E,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAErE,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACtF,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC1D,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC,QAAQ,CAAC;IACb,MAAM,UAAU,GAAG,cAAc;SAC9B,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,kBAAkB,CACtB,sDAAsD,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EACzI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAC1B,cAAwB,EACxB,OAAiC;IAEjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAChD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9E,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YACpC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,eAAe,CACnB,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,0DAA0D,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,0EAA0E,EACjS,EAAE,MAAM,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,UAAoB;IAChD,OAAO;QACL,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1D,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7D,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;KACpE,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,mBAAmB;IAC9B,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,YAAY,OAAkB,EAAE,QAAwB,IAAG,CAAC;IAEpD,QAAQ,CACd,WAAmB,EACnB,OAA2B,EAC3B,MAA0B,EAC1B,MAA0B;QAE1B,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;YACrE,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACxD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,MAAM;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,WAAmB,EACnB,cAAwB,EACxB,OAAiC,EACjC,MAA0B,EAC1B,MAA0B,EAC1B,GAAY;QAEZ,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC1C,WAAW;YACX,OAAO;YACP,MAAM;YACN,MAAM;YACN,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;gBACpE,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,iFAAiF;gBACjF,6EAA6E;gBAC7E,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kFAAkF;YAClF,oFAAoF;YACpF,sFAAsF;YACtF,MAAM,IAAI,GAAI,GAAgB,CAAC,IAAqC,CAAC;YACrE,IAAI,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9D,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,kBAAkB,CACtB,sDAAsD,WAAW,IAAI,EACrE,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAC1C,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAc;YACvB,SAAS,EAAE,CAAC;YACZ,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,EAAE;SAChB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACrE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE/E,OAAO;YACL,MAAM;YACN,KAAK;YACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;SAC3D,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,KAAK,UAAU,UAAU,CACvB,IAAgC,EAChC,KAAgB,EAChB,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAEhC,kFAAkF;IAClF,4DAA4D;IAC5D,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAE5E,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAa;QAC9C,KAAK,CAAC,UAAU;YACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,UAAU,CAAC,KAAK,EAAE,CAAC;;gBACxB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,MAAM;YACX,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,CAAC;IAEH;;;;;OAKG;IACH,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU;QACjC,CAAC,CAAE,QAAQ,CAAC,WAAW,CACnB,IAAI,mBAAmB,CAAC,MAAM,CAG7B,CAC6B;QAClC,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB,EAAE,KAAa;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAe,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,SAAS,CAAC,CAAC,YAAY,CAC1B,MAAkC,EAClC,KAAgB,EAChB,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC3C,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;YAChC,IAAI,KAAK,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;gBAC/B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,IAAI;gBAAE,MAAM,IAAI,CAAC;QACvB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,KAAK,UAAU,UAAU,CACvB,MAA8B,EAC9B,WAAmB;IAEnB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI;YAAE,SAAS,GAAG,IAAI,CAAC;;YAC3B,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,EAAE,CAAC;IAErD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,EAAE,CAAC;QAC/D,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,EAAE,CAAC;IAEvD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtB,MAAM,kBAAkB,CACtB,sDAAsD,WAAW,IAAI,EACrE,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAC1C,CAAC;QACJ,CAAC;QACD,4EAA4E;QAC5E,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAChF,CAAC;IAED,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACnD,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,SAAS,CAAC,CAAC,UAAU,CACxB,MAA8B,EAC9B,SAAiB,EACjB,MAAiB,EACjB,KAAgB;IAEhB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,GAAG,GAAG,SAAS,CAAC;IAEpB,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,IAAY;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAErE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,GAAG,GAAY,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;YACpE,CAAC;YACD,GAAG,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;YAC1B,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YACrC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACnC,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtC,GAAG,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,IAAI;gBACzC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC;YAET,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;gBAAE,KAAK,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACnC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC7B,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,GAAG,IAAI,KAAK,CAAC;YACb,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,gFAAgF;QAChF,2EAA2E;QAC3E,IAAI,CAAC,KAAK,CAAC,cAAc;YAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5C,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;YAAS,CAAC;QACT;;;;;;WAMG;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,gCAAgC;AAEhC,IAAI,QAAyC,CAAC;AAE9C,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,OAAuB;IAChF,QAAQ,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"eurostat-bulk-service.js","sourceRoot":"","sources":["../../../src/services/eurostat-bulk/eurostat-bulk-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAEL,QAAQ,EACR,kBAAkB,EAClB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAIL,WAAW,GAEZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,6FAA6F;AAC7F,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,yEAAyE;AACzE,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,4FAA4F;AAC5F,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAE3C,yFAAyF;AACzF,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;SACvB,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;SACvB,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;SACzB,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;SACzB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,WAAmB;IAC9D,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC/E,MAAM,kBAAkB,CACtB,sIAAsI,WAAW,+JAA+J,EAChT,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAC1D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,cAAc,CAC3B,wCAAwC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CACrF,CAAC;IAEF,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,QAAQ,CACZ,YAAY,WAAW,wDAAwD,IAAI,KAAK,MAAM,EAAE,EAChG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CACtD,CAAC;IACJ,CAAC;IACD;;;;OAIG;IACH,IAAI,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE,CAAC;QACzE,MAAM,eAAe,CACnB,2CAA2C,WAAW,qBAAqB,IAAI,KAAK,MAAM,EAAE,EAC5F,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAC3D,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,eAAe,CACnB,8HAA8H,IAAI,KAAK,MAAM,EAAE,EAC/I,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CACzD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,eAAe,CACnB,0HAA0H,IAAI,KAAK,MAAM,EAAE,EAC3I,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD;;;;;;OAMG;IACH,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,kBAAkB,CACtB,uCAAuC,WAAW,kCAAkC,IAAI,KAAK,MAAM,EAAE,EACrG,EAAE,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,MAAM,kBAAkB,CACtB,gDAAgD,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE,EAC9G,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAC5E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CACvB,IAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhE,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO;IAE/C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;IAC1E,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAErE,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACtF,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI;QACxC,IAAI;QACJ,KAAK,EAAE,IAAI;QACX,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC1D,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC,QAAQ,CAAC;IACb,MAAM,UAAU,GAAG,cAAc;SAC9B,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,kBAAkB,CACtB,sDAAsD,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EACzI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAC1B,cAAwB,EACxB,OAAiC;IAEjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAChD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9E,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YACpC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,eAAe,CACnB,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,0DAA0D,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,0EAA0E,EACjS,EAAE,MAAM,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,UAAoB,EAAE,SAAS,GAAG,KAAK;IACnE,OAAO;QACL,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1D,GAAG,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAyB,CAAC;YAC3F,CAAC,CAAC,EAAE,CAAC;QACP,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1D,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7D,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;KACpE,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,mBAAmB;IAC9B,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,YAAY,OAAkB,EAAE,QAAwB,IAAG,CAAC;IAEpD,QAAQ,CACd,WAAmB,EACnB,OAA2B,EAC3B,MAA0B,EAC1B,MAA0B;QAE1B,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;YACrE,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACzE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,MAAM;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,WAAmB,EACnB,cAAwB,EACxB,OAAiC,EACjC,MAA0B,EAC1B,MAA0B,EAC1B,GAAY;QAEZ,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEhE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC1C,WAAW;YACX,OAAO;YACP,MAAM;YACN,MAAM;YACN,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;gBACpE,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,iFAAiF;gBACjF,yEAAyE;gBACzE,kCAAkC;gBAClC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kFAAkF;YAClF,oFAAoF;YACpF,sFAAsF;YACtF,MAAM,IAAI,GAAI,GAAgB,CAAC,IAAqC,CAAC;YACrE,IAAI,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9D,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,kBAAkB,CACtB,sDAAsD,WAAW,IAAI,EACrE,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAC1C,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAc;YACvB,SAAS,EAAE,CAAC;YACZ,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,CAAC;YACX,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,EAAE;SAChB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACrE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAE/C,OAAO;YACL,MAAM;YACN,KAAK;YACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,SAAS;YACT,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;SACtE,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,KAAK,UAAU,UAAU,CACvB,IAAgC,EAChC,KAAgB,EAChB,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAEhC,kFAAkF;IAClF,4DAA4D;IAC5D,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAE5E,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAa;QAC9C,KAAK,CAAC,UAAU;YACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,UAAU,CAAC,KAAK,EAAE,CAAC;;gBACxB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,MAAM;YACX,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC,CAAC;IAEH;;;;;OAKG;IACH,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU;QACjC,CAAC,CAAE,QAAQ,CAAC,WAAW,CACnB,IAAI,mBAAmB,CAAC,MAAM,CAG7B,CAC6B;QAClC,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,MAAoB,EAAE,KAAa;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAe,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,SAAS,CAAC,CAAC,YAAY,CAC1B,MAAkC,EAClC,KAAgB,EAChB,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC3C,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;YAChC,IAAI,KAAK,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;gBAC/B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,IAAI;gBAAE,MAAM,IAAI,CAAC;QACvB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,IAAI;YAAE,MAAM,IAAI,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,KAAK,UAAU,UAAU,CACvB,MAA8B,EAC9B,WAAmB;IAEnB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,IAAI;YAAE,SAAS,GAAG,IAAI,CAAC;;YAC3B,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,EAAE,CAAC;IAErD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,MAAM,GAAG,cAAc,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,EAAE,CAAC;QAC/D,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,EAAE,CAAC;IAEvD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtB,MAAM,kBAAkB,CACtB,sDAAsD,WAAW,IAAI,EACrE,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAC1C,CAAC;QACJ,CAAC;QACD,4EAA4E;QAC5E,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAChF,CAAC;IAED,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACnD,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,SAAS,CAAC,CAAC,UAAU,CACxB,MAA8B,EAC9B,SAAiB,EACjB,MAAiB,EACjB,KAAgB,EAChB,SAAkB;IAElB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,GAAG,GAAG,SAAS,CAAC;IAEpB,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,IAAY;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAErE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,GAAG,GAAY,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;YACpE,CAAC;YACD,GAAG,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;YAC1B,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YACrC,IAAI,SAAS;gBAAE,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;YAChE,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACnC,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzF,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtC,GAAG,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,IAAI;gBACzC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC;YAET,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;gBAAE,KAAK,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACnC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC7B,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,GAAG,IAAI,KAAK,CAAC;YACb,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,gFAAgF;QAChF,2EAA2E;QAC3E,IAAI,CAAC,KAAK,CAAC,cAAc;YAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5C,KAAK,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;YAAS,CAAC;QACT;;;;;;WAMG;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,gCAAgC;AAEhC,IAAI,QAAyC,CAAC;AAE9C,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,OAAuB;IAChF,QAAQ,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -68,5 +68,10 @@ export interface BulkDownload {
68
68
  stats: BulkStats;
69
69
  /** The request URL, minus nothing — no credentials are involved. */
70
70
  url: string;
71
+ /**
72
+ * True when every row carries an `obs_value_text` column — a `DS-*` dataset, whose
73
+ * PRODCOM indicators publish units and flags as text. Pass it to `bulkRowSchema`.
74
+ */
75
+ valueText: boolean;
71
76
  }
72
77
  //# sourceMappingURL=types.d.ts.map
@@ -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,uEAAuE;IACvE,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;CACb"}
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,uEAAuE;IACvE,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"}
@@ -11,6 +11,8 @@ export declare class EurostatCatalogueService {
11
11
  private cache;
12
12
  /** Shared in-flight refresh so concurrent callers past the TTL trigger one fetch. */
13
13
  private refresh;
14
+ /** Shared in-flight retry of a failed Comext merge. */
15
+ private remerge;
14
16
  /** Epoch ms before which a stale cache is served without re-attempting a failed refresh. */
15
17
  private refreshRetryAt;
16
18
  constructor(_config: AppConfig, _storage: StorageService);
@@ -21,9 +23,46 @@ export declare class EurostatCatalogueService {
21
23
  * next attempt for `REFRESH_RETRY_COOLDOWN_MS`, so an outage does not make
22
24
  * every catalogue call pay a full retry-and-backoff cycle. Only a cold-start
23
25
  * failure surfaces to the caller, and that path retries on the next call.
26
+ *
27
+ * A catalogue whose Comext merge failed is served as-is until its retry time,
28
+ * then the next call retries the merge alone; that retry never fails the call.
29
+ *
30
+ * Both loads are shared, so they run without a caller's signal, bounded by their
31
+ * timeouts: a caller that cancels stops waiting without failing the others,
32
+ * caching a failure, or postponing the merge.
24
33
  */
25
34
  private ensureLoaded;
35
+ private loadShared;
36
+ /**
37
+ * Fetch the TOC and the Comext dataflow list together, and merge them.
38
+ *
39
+ * Only the TOC is required. A Comext list that fails to load leaves the catalogue
40
+ * answering from the TOC alone: the failure is logged, and the merge is retried
41
+ * after `REFRESH_RETRY_COOLDOWN_MS` without re-fetching the TOC.
42
+ */
26
43
  private fetchAndParseToc;
44
+ /** Retry a failed Comext merge onto the TOC already held; concurrent callers share it. */
45
+ private retryComextMerge;
46
+ private logComextFailure;
47
+ /**
48
+ * Assemble a catalogue snapshot. `flows` undefined means the Comext list failed to
49
+ * load, which arms the merge retry. `loadedAt` is the TOC's load time — the TTL and
50
+ * the cursor generation both key on it. A later merge only appends entries, so a
51
+ * cursor paged over the TOC alone still addresses the same leading matches.
52
+ */
53
+ private buildCache;
54
+ /** The Comext host's dataflow list — the `DS-*` collections the TOC does not carry. */
55
+ private fetchComextFlows;
56
+ /**
57
+ * Append the Comext dataflows to the TOC as datasets, each under the folder its
58
+ * collection maps to in {@link COMEXT_FOLDERS}. A folder is created only when a
59
+ * dataflow lands in it, and is parented to its TOC folder — or to the first root
60
+ * when the TOC no longer carries that folder. Merged entries carry `lastUpdated`
61
+ * in the TOC's `dd.mm.yyyy` form and no period coverage or observation count,
62
+ * which the Comext list does not publish.
63
+ */
64
+ private mergeComextFlows;
65
+ private fetchTocEntries;
27
66
  /**
28
67
  * Index code → entry position, keeping the FIRST placement of a code filed more than once.
29
68
  *
@@ -96,11 +135,18 @@ export declare class EurostatCatalogueService {
96
135
  * it. An unusable cursor — malformed, from another query, or from a catalogue
97
136
  * since refreshed — is rejected as `invalid_cursor` instead of silently paging
98
137
  * a different result set.
138
+ *
139
+ * An empty match reports the `DS-*` codes the query names that neither source lists
140
+ * (`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.
99
143
  */
100
144
  search(query: string, limit: number, cursor: string | undefined, ctx: Context): Promise<{
145
+ comextListMissing?: boolean;
101
146
  datasets: DatasetResult[];
102
- totalMatches: number;
103
147
  nextCursor?: string;
148
+ totalMatches: number;
149
+ undisseminatedCodes?: string[];
104
150
  }>;
105
151
  }
106
152
  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;AASrE,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAC;AAoBtE,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAuB;IACpC,qFAAqF;IACrF,OAAO,CAAC,OAAO,CAAgC;IAC/C,4FAA4F;IAC5F,OAAO,CAAC,cAAc,CAAK;IAK3B,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAI;IAE5D;;;;;;;OAOG;YACW,YAAY;YAoCZ,gBAAgB;IA2B9B;;;;;;;;;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;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAqDnF;CACF;AAMD,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;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"}