bcchapi 1.0.8 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -42
- package/LICENSE +18 -4
- package/README.md +83 -91
- package/dist/client/client.d.ts +60 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +126 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +136 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +53 -0
- package/dist/client/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/series/index.d.ts +2 -0
- package/dist/series/index.d.ts.map +1 -0
- package/dist/series/index.js +2 -0
- package/dist/series/index.js.map +1 -0
- package/dist/series/series.d.ts +213 -0
- package/dist/series/series.d.ts.map +1 -0
- package/dist/series/series.js +213 -0
- package/dist/series/series.js.map +1 -0
- package/dist/utils/dates.d.ts +30 -0
- package/dist/utils/dates.d.ts.map +1 -0
- package/dist/utils/dates.js +67 -0
- package/dist/utils/dates.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/stats.d.ts +112 -0
- package/dist/utils/stats.d.ts.map +1 -0
- package/dist/utils/stats.js +185 -0
- package/dist/utils/stats.js.map +1 -0
- package/dist/utils/transform.d.ts +79 -0
- package/dist/utils/transform.d.ts.map +1 -0
- package/dist/utils/transform.js +101 -0
- package/dist/utils/transform.js.map +1 -0
- package/package.json +62 -40
- package/.eslintignore +0 -3
- package/.eslintrc.json +0 -21
- package/.github/workflows/npm-publish.yml +0 -38
- package/.prettierrc.json +0 -17
- package/.vscode/extensions.json +0 -3
- package/.vscode/settings.json +0 -4
- package/src/client.ts +0 -109
- package/src/errors.ts +0 -36
- package/src/handlers.ts +0 -69
- package/src/index.ts +0 -8
- package/src/types.ts +0 -115
- package/src/utils.ts +0 -37
- package/test/client.test.ts +0 -226
- package/test/fixtures/index.ts +0 -15
- package/test/fixtures/responses/credentials.invalid.json +0 -11
- package/test/fixtures/responses/getseries.invalid.json +0 -11
- package/test/fixtures/responses/getseries.success.json +0 -87
- package/test/fixtures/responses/searchseries.invalid.json +0 -11
- package/test/fixtures/responses/searchseries.success.json +0 -22
- package/test/handlers/handle-get-series.test.ts +0 -45
- package/test/handlers/handle-search-series.test.ts +0 -48
- package/test/mocks/fetch.mock.ts +0 -76
- package/test/utils/is-valid-date.test.ts +0 -17
- package/test/utils/reverse-date.test.ts +0 -11
- package/tsconfig.eslint.json +0 -5
- package/tsconfig.json +0 -9
- package/vitest.config.mts +0 -9
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Errors
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
/**
|
|
5
|
+
* Thrown when the BCCH API returns a non-zero `Codigo` in the response body.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* try {
|
|
10
|
+
* await client.getSeries('INVALID');
|
|
11
|
+
* } catch (err) {
|
|
12
|
+
* if (err instanceof ApiError) {
|
|
13
|
+
* console.error(`API error ${err.codigo}: ${err.descripcion}`);
|
|
14
|
+
* }
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export class ApiError extends Error {
|
|
19
|
+
/** Non-zero `Codigo` value from the API response. */
|
|
20
|
+
codigo;
|
|
21
|
+
/** `Descripcion` string from the API response. */
|
|
22
|
+
descripcion;
|
|
23
|
+
constructor(message, codigo, descripcion) {
|
|
24
|
+
super(message);
|
|
25
|
+
this.name = 'ApiError';
|
|
26
|
+
this.codigo = codigo;
|
|
27
|
+
this.descripcion = descripcion;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Thrown when the BCCH API returns a non-ok HTTP status code.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* try {
|
|
36
|
+
* await client.getSeries('F022.TPM.TIN.D001.NO.Z.D');
|
|
37
|
+
* } catch (err) {
|
|
38
|
+
* if (err instanceof HttpError) {
|
|
39
|
+
* console.error(`HTTP ${err.status}`);
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export class HttpError extends Error {
|
|
45
|
+
/** HTTP status code. */
|
|
46
|
+
status;
|
|
47
|
+
constructor(message, status) {
|
|
48
|
+
super(message);
|
|
49
|
+
this.name = 'HttpError';
|
|
50
|
+
this.status = status;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAoHA,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,qDAAqD;IAC5C,MAAM,CAAS;IAExB,kDAAkD;IACzC,WAAW,CAAS;IAE7B,YAAY,OAAe,EAAE,MAAc,EAAE,WAAmB;QAC9D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,wBAAwB;IACf,MAAM,CAAS;IAExB,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { Client, ApiError, HttpError } from './client/index.js';
|
|
2
|
+
export type { ClientOptions, Frequency, GetSeriesOptions, Observation, SeriesData, SeriesInfo, } from './client/index.js';
|
|
3
|
+
export { SERIES } from './series/index.js';
|
|
4
|
+
export { parseObservationDate, formatQueryDate, filterValid, parseValue, toArrays, toMap, toNumbers, annualVariation, max, mean, min, periodVariation, rollingMean, stdDev, } from './utils/index.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,UAAU,EACV,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,GAAG,EACH,IAAI,EACJ,GAAG,EACH,eAAe,EACf,WAAW,EACX,MAAM,GACP,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Client, ApiError, HttpError } from './client/index.js';
|
|
2
|
+
export { SERIES } from './series/index.js';
|
|
3
|
+
export { parseObservationDate, formatQueryDate, filterValid, parseValue, toArrays, toMap, toNumbers, annualVariation, max, mean, min, periodVariation, rollingMean, stdDev, } from './utils/index.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAUhE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,UAAU,EACV,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,GAAG,EACH,IAAI,EACJ,GAAG,EACH,eAAe,EACf,WAAW,EACX,MAAM,GACP,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/series/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/series/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated constants for commonly used BCCH series identifiers.
|
|
3
|
+
*
|
|
4
|
+
* This is not an exhaustive catalog — it covers the most frequently queried
|
|
5
|
+
* series across key macroeconomic domains. Use {@link https://si3.bcentral.cl/siete | si3.bcentral.cl}
|
|
6
|
+
* or {@link Client.searchSeries} to discover additional series IDs.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { Client } from 'bcch/client';
|
|
11
|
+
* import { SERIES } from 'bcch/series';
|
|
12
|
+
*
|
|
13
|
+
* const client = new Client({ user: '...', pass: '...' });
|
|
14
|
+
* const data = await client.getSeries(SERIES.PRICES.UF);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const SERIES: {
|
|
18
|
+
/**
|
|
19
|
+
* Exchange rate series.
|
|
20
|
+
*
|
|
21
|
+
* USD/CLP is expressed as Chilean Pesos per USD.
|
|
22
|
+
* All other pairs are expressed as foreign currency units per 1 USD.
|
|
23
|
+
*/
|
|
24
|
+
readonly EXCHANGE_RATE: {
|
|
25
|
+
/** Observed (official) USD/CLP exchange rate — daily. */
|
|
26
|
+
readonly USD_CLP_OBSERVED: "F073.TCO.PRE.Z.D";
|
|
27
|
+
/** Argentine Peso per USD — daily. */
|
|
28
|
+
readonly ARS_USD: "F072.ARS.USD.N.O.D";
|
|
29
|
+
/** Australian Dollar per USD — daily. */
|
|
30
|
+
readonly AUD_USD: "F072.AUD.USD.N.O.D";
|
|
31
|
+
/** Brazilian Real per USD — daily. */
|
|
32
|
+
readonly BRL_USD: "F072.BRL.USD.N.O.D";
|
|
33
|
+
/** Canadian Dollar per USD — daily. */
|
|
34
|
+
readonly CAD_USD: "F072.CAD.USD.N.O.D";
|
|
35
|
+
/** Yuan Renminbi per USD — daily. */
|
|
36
|
+
readonly CNY_USD: "F072.CNY.USD.N.O.D";
|
|
37
|
+
/** Colombian Peso per USD — daily. */
|
|
38
|
+
readonly COP_USD: "F072.COP.USD.N.O.D";
|
|
39
|
+
/** Euro per USD — daily. */
|
|
40
|
+
readonly EUR_USD: "F072.EUR.USD.N.O.D";
|
|
41
|
+
/** Pound Sterling per USD — daily. */
|
|
42
|
+
readonly GBP_USD: "F072.GBP.USD.N.O.D";
|
|
43
|
+
/** Hong Kong Dollar per USD — daily. */
|
|
44
|
+
readonly HKD_USD: "F072.HKD.USD.N.O.D";
|
|
45
|
+
/** Japanese Yen per USD — daily. */
|
|
46
|
+
readonly JPY_USD: "F072.JPY.USD.N.O.D";
|
|
47
|
+
/** Mexican Peso per USD — daily. */
|
|
48
|
+
readonly MXN_USD: "F072.MXN.USD.N.O.D";
|
|
49
|
+
/** Norwegian Krone per USD — daily. */
|
|
50
|
+
readonly NOK_USD: "F072.NOK.USD.N.O.D";
|
|
51
|
+
/** Peruvian Sol per USD — daily. */
|
|
52
|
+
readonly PEN_USD: "F072.PEN.USD.N.O.D";
|
|
53
|
+
/** Swedish Krona per USD — daily. */
|
|
54
|
+
readonly SEK_USD: "F072.SEK.USD.N.O.D";
|
|
55
|
+
/** Swiss Franc per USD — daily. */
|
|
56
|
+
readonly CHF_USD: "F072.CHF.USD.N.O.D";
|
|
57
|
+
/** IMF Special Drawing Rights per USD — daily. */
|
|
58
|
+
readonly SDR_USD: "F072.DEG.USD.N.O.D";
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Price index and inflation series.
|
|
62
|
+
*/
|
|
63
|
+
readonly PRICES: {
|
|
64
|
+
/** Unidad de Fomento (UF) — daily. */
|
|
65
|
+
readonly UF: "F073.UFF.PRE.Z.D";
|
|
66
|
+
/** Average Value Index (IVP) — daily. */
|
|
67
|
+
readonly IVP: "F073.IVP.PRE.Z.D";
|
|
68
|
+
/** Monthly Tax Unit (UTM) — monthly. */
|
|
69
|
+
readonly UTM: "F073.UTR.PRE.Z.M";
|
|
70
|
+
/** Headline CPI index (base 2023) — monthly. */
|
|
71
|
+
readonly CPI_INDEX: "F074.IPC.IND.Z.EP23.C.M";
|
|
72
|
+
/** Headline CPI monthly change — monthly. */
|
|
73
|
+
readonly CPI_MONTHLY_CHANGE: "F074.IPC.VAR.Z.EP23.C.M";
|
|
74
|
+
/** Headline CPI annual change (12-month) — monthly. */
|
|
75
|
+
readonly CPI_ANNUAL_CHANGE: "F074.IPC.V12.Z.EP23.C.M";
|
|
76
|
+
/** CPI excluding food and energy (SAE) — monthly. */
|
|
77
|
+
readonly CPI_SAE: "F074.IPCSAE.VAR.Z.2023.C.M";
|
|
78
|
+
/** Tradable CPI — monthly. */
|
|
79
|
+
readonly CPI_TRADABLE: "F074.IPCT.VAR.Z.2023.C.M";
|
|
80
|
+
/** Non-tradable CPI — monthly. */
|
|
81
|
+
readonly CPI_NON_TRADABLE: "F074.IPCN.VAR.Z.2023.C.M";
|
|
82
|
+
/** CPI food — monthly. */
|
|
83
|
+
readonly CPI_FOOD: "F074.IPCA.VAR.Z.2023.C.M";
|
|
84
|
+
/** CPI energy — monthly. */
|
|
85
|
+
readonly CPI_ENERGY: "F074.IPCE.VAR.Z.2023.C.M";
|
|
86
|
+
/** CPI services — monthly. */
|
|
87
|
+
readonly CPI_SERVICES: "F074.IPCS.VAR.Z.2023.C.M";
|
|
88
|
+
/** CPI goods — monthly. */
|
|
89
|
+
readonly CPI_GOODS: "F074.IPCB.VAR.Z.2023.C.M";
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Interest rate series (policy rates, sovereign bonds, money market instruments).
|
|
93
|
+
*/
|
|
94
|
+
readonly INTEREST_RATES: {
|
|
95
|
+
/** Monetary Policy Rate (MPR/TPM) — daily. */
|
|
96
|
+
readonly MONETARY_POLICY_RATE: "F022.TPM.TIN.D001.NO.Z.D";
|
|
97
|
+
/** Permanent liquidity facility rate — daily. */
|
|
98
|
+
readonly LIQUIDITY_FACILITY: "F022.TPL.TIN.Z.NO.Z.D";
|
|
99
|
+
/** Permanent deposit facility rate — daily. */
|
|
100
|
+
readonly DEPOSIT_FACILITY: "F022.TPD.TIN.Z.NO.Z.D";
|
|
101
|
+
/** 2-year nominal BCP sovereign bond yield — daily. */
|
|
102
|
+
readonly BCP_2Y: "F022.BCLP.TIS.AN02.NO.Z.D";
|
|
103
|
+
/** 5-year nominal BCP sovereign bond yield — daily. */
|
|
104
|
+
readonly BCP_5Y: "F022.BCLP.TIS.AN05.NO.Z.D";
|
|
105
|
+
/** 10-year nominal BCP sovereign bond yield — daily. */
|
|
106
|
+
readonly BCP_10Y: "F022.BCLP.TIS.AN10.NO.Z.D";
|
|
107
|
+
/** 2-year inflation-linked BCU sovereign bond yield — daily. */
|
|
108
|
+
readonly BCU_2Y: "F022.BUF.TIS.AN02.UF.Z.D";
|
|
109
|
+
/** 5-year inflation-linked BCU sovereign bond yield — daily. */
|
|
110
|
+
readonly BCU_5Y: "F022.BUF.TIS.AN05.UF.Z.D";
|
|
111
|
+
/** 10-year inflation-linked BCU sovereign bond yield — daily. */
|
|
112
|
+
readonly BCU_10Y: "F022.BUF.TIS.AN10.UF.Z.D";
|
|
113
|
+
/** 30-day PDBC rate — monthly. */
|
|
114
|
+
readonly PDBC_30D: "F022.PDBC.TIN.D030.NO.Z.M";
|
|
115
|
+
/** 90-day PDBC rate — monthly. */
|
|
116
|
+
readonly PDBC_90D: "F022.PDBC.TIN.D090.NO.Z.M";
|
|
117
|
+
/** 180-day PDBC rate — monthly. */
|
|
118
|
+
readonly PDBC_180D: "F022.PDBC.TIN.D180.NO.Z.M";
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Monetary aggregates and credit series.
|
|
122
|
+
*/
|
|
123
|
+
readonly MONEY: {
|
|
124
|
+
/** Narrow money supply M1 — monthly. */
|
|
125
|
+
readonly M1: "F021.M1.PRO.N.CLP.5.M";
|
|
126
|
+
/** Broad money supply M2 — monthly. */
|
|
127
|
+
readonly M2: "F021.M2.PRO.N.CLP.5.M";
|
|
128
|
+
/** Broadest money supply M3 — monthly. */
|
|
129
|
+
readonly M3: "F021.M3.PRO.N.CLP.5.M";
|
|
130
|
+
/** Total real bank loans — monthly. */
|
|
131
|
+
readonly LOANS_TOTAL: "F022.CTO.STO.TP.Z.P96R23.M";
|
|
132
|
+
/** Real consumer loans — monthly. */
|
|
133
|
+
readonly LOANS_CONSUMER: "F022.CON.STO.TP.Z.P96R23.M";
|
|
134
|
+
/** Real mortgage loans — monthly. */
|
|
135
|
+
readonly LOANS_MORTGAGE: "F022.VIV.STO.TP.Z.P96R23.M";
|
|
136
|
+
/** Real commercial loans — monthly. */
|
|
137
|
+
readonly LOANS_COMMERCIAL: "F022.CEM.STO.TP.Z.P96R23.M";
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* National accounts and economic activity series.
|
|
141
|
+
*/
|
|
142
|
+
readonly NATIONAL_ACCOUNTS: {
|
|
143
|
+
/** Imacec index (economic activity, 2018=100) — monthly. */
|
|
144
|
+
readonly IMACEC: "F032.IMC.IND.Z.Z.EP18.Z.Z.0.M";
|
|
145
|
+
/** Imacec 12-month annual change — monthly. */
|
|
146
|
+
readonly IMACEC_ANNUAL_CHANGE: "F032.IMC.V12.Z.Z.2018.Z.Z.0.M";
|
|
147
|
+
/** Non-mining Imacec index — monthly. */
|
|
148
|
+
readonly IMACEC_NON_MINING: "F032.IMC.IND.Z.Z.EP18.N03.Z.0.M";
|
|
149
|
+
/** Mining Imacec — monthly. */
|
|
150
|
+
readonly IMACEC_MINING: "F032.IMC.IND.Z.Z.EP18.03.Z.0.M";
|
|
151
|
+
/** Manufacturing Imacec — monthly. */
|
|
152
|
+
readonly IMACEC_MANUFACTURING: "F032.IMC.IND.Z.Z.EP18.04.Z.0.M";
|
|
153
|
+
/** Services Imacec — monthly. */
|
|
154
|
+
readonly IMACEC_SERVICES: "F032.IMC.IND.Z.Z.EP18.SERV.Z.0.M";
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* External sector and balance of payments series.
|
|
158
|
+
*/
|
|
159
|
+
readonly EXTERNAL_SECTOR: {
|
|
160
|
+
/** Current account balance — quarterly. */
|
|
161
|
+
readonly CURRENT_ACCOUNT: "F068.A.FLU.Z.0.S.N.Z.Z.Z.Z.6.0.T";
|
|
162
|
+
/** Trade balance of goods and services — quarterly. */
|
|
163
|
+
readonly TRADE_BALANCE: "F068.B.FLU.Z.0.S.N.Z.Z.Z.Z.6.0.T";
|
|
164
|
+
/** Goods exports — monthly. */
|
|
165
|
+
readonly EXPORTS: "F068.B1.FLU.Z.0.C.N.Z.Z.Z.Z.6.0.M";
|
|
166
|
+
/** Goods imports (FOB) — monthly. */
|
|
167
|
+
readonly IMPORTS: "F068.B1.FLU.Z.0.D.N.0.T.Z.Z.6.0.M";
|
|
168
|
+
/** Financial account — monthly. */
|
|
169
|
+
readonly FINANCIAL_ACCOUNT: "F068.G.FLU.Z.0.S.N.Z.T.Z.Z.6.0.M";
|
|
170
|
+
/** Foreign direct investment (net) — monthly. */
|
|
171
|
+
readonly DIRECT_INVESTMENT: "F068.G1.FLU.Z.0.S.N.Z.T.Z.Z.6.0.M";
|
|
172
|
+
/** International reserve assets — monthly. */
|
|
173
|
+
readonly RESERVE_ASSETS: "F068.G5.FLU.W.0.S.N.Z.T.Z.Z.6.0.M";
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Labour market series.
|
|
177
|
+
*/
|
|
178
|
+
readonly EMPLOYMENT: {
|
|
179
|
+
/** Nationwide unemployment rate — monthly. */
|
|
180
|
+
readonly UNEMPLOYMENT_RATE: "F049.DES.TAS.INE9.10.M";
|
|
181
|
+
/** Total labour force (persons) — monthly. */
|
|
182
|
+
readonly LABOUR_FORCE: "F049.FTR.PMT.INE9.01.M";
|
|
183
|
+
/** Employed persons — monthly. */
|
|
184
|
+
readonly EMPLOYED: "F049.OCU.PMT.INE9.01.M";
|
|
185
|
+
/** Unemployed persons — monthly. */
|
|
186
|
+
readonly UNEMPLOYED: "F049.DES.PMT.INE9.01.M";
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Central government fiscal series.
|
|
190
|
+
*/
|
|
191
|
+
readonly PUBLIC_FINANCES: {
|
|
192
|
+
/** Total government revenue — annual. */
|
|
193
|
+
readonly REVENUE: "F051.A01.FLU.G.C.CLP.T";
|
|
194
|
+
/** Total government expenditure — annual. */
|
|
195
|
+
readonly EXPENDITURE: "F051.A02.FLU.G.C.CLP.T";
|
|
196
|
+
/** Net tax revenues — annual. */
|
|
197
|
+
readonly TAX_REVENUE: "F051.A011.FLU.G.C.CLP.T";
|
|
198
|
+
/** Net lending / net borrowing (fiscal balance) — annual. */
|
|
199
|
+
readonly FISCAL_BALANCE: "F051.B04.FLU.G.C.CLP.T";
|
|
200
|
+
/** Net foreign exchange reserves (central government) — annual. */
|
|
201
|
+
readonly FX_RESERVES: "F051.E21.STO.H.Z.USD.T";
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Capital market series.
|
|
205
|
+
*/
|
|
206
|
+
readonly CAPITAL_MARKET: {
|
|
207
|
+
/** IPSA equity index (base January 2003=100) — daily. */
|
|
208
|
+
readonly IPSA: "F013.IBC.IND.N.7.LAC.CL.CLP.BLO.D";
|
|
209
|
+
/** Total stock market capitalisation — monthly. */
|
|
210
|
+
readonly STOCK_MARKET_CAPITAL: "F022.BCP.STO.Z.Z.CLP.D";
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
//# sourceMappingURL=series.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../../src/series/series.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM;IACjB;;;;;OAKG;;QAED,yDAAyD;;QAEzD,sCAAsC;;QAEtC,yCAAyC;;QAEzC,sCAAsC;;QAEtC,uCAAuC;;QAEvC,qCAAqC;;QAErC,sCAAsC;;QAEtC,4BAA4B;;QAE5B,sCAAsC;;QAEtC,wCAAwC;;QAExC,oCAAoC;;QAEpC,oCAAoC;;QAEpC,uCAAuC;;QAEvC,oCAAoC;;QAEpC,qCAAqC;;QAErC,mCAAmC;;QAEnC,kDAAkD;;;IAIpD;;OAEG;;QAED,sCAAsC;;QAEtC,yCAAyC;;QAEzC,wCAAwC;;QAExC,gDAAgD;;QAEhD,6CAA6C;;QAE7C,uDAAuD;;QAEvD,qDAAqD;;QAErD,8BAA8B;;QAE9B,kCAAkC;;QAElC,0BAA0B;;QAE1B,4BAA4B;;QAE5B,8BAA8B;;QAE9B,2BAA2B;;;IAI7B;;OAEG;;QAED,8CAA8C;;QAE9C,iDAAiD;;QAEjD,+CAA+C;;QAE/C,uDAAuD;;QAEvD,uDAAuD;;QAEvD,wDAAwD;;QAExD,gEAAgE;;QAEhE,gEAAgE;;QAEhE,iEAAiE;;QAEjE,kCAAkC;;QAElC,kCAAkC;;QAElC,mCAAmC;;;IAIrC;;OAEG;;QAED,wCAAwC;;QAExC,uCAAuC;;QAEvC,0CAA0C;;QAE1C,uCAAuC;;QAEvC,qCAAqC;;QAErC,qCAAqC;;QAErC,uCAAuC;;;IAIzC;;OAEG;;QAED,4DAA4D;;QAE5D,+CAA+C;;QAE/C,yCAAyC;;QAEzC,+BAA+B;;QAE/B,sCAAsC;;QAEtC,iCAAiC;;;IAInC;;OAEG;;QAED,2CAA2C;;QAE3C,uDAAuD;;QAEvD,+BAA+B;;QAE/B,qCAAqC;;QAErC,mCAAmC;;QAEnC,iDAAiD;;QAEjD,8CAA8C;;;IAIhD;;OAEG;;QAED,8CAA8C;;QAE9C,8CAA8C;;QAE9C,kCAAkC;;QAElC,oCAAoC;;;IAItC;;OAEG;;QAED,yCAAyC;;QAEzC,6CAA6C;;QAE7C,iCAAiC;;QAEjC,6DAA6D;;QAE7D,mEAAmE;;;IAIrE;;OAEG;;QAED,yDAAyD;;QAEzD,mDAAmD;;;CAG7C,CAAC"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated constants for commonly used BCCH series identifiers.
|
|
3
|
+
*
|
|
4
|
+
* This is not an exhaustive catalog — it covers the most frequently queried
|
|
5
|
+
* series across key macroeconomic domains. Use {@link https://si3.bcentral.cl/siete | si3.bcentral.cl}
|
|
6
|
+
* or {@link Client.searchSeries} to discover additional series IDs.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { Client } from 'bcch/client';
|
|
11
|
+
* import { SERIES } from 'bcch/series';
|
|
12
|
+
*
|
|
13
|
+
* const client = new Client({ user: '...', pass: '...' });
|
|
14
|
+
* const data = await client.getSeries(SERIES.PRICES.UF);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export const SERIES = {
|
|
18
|
+
/**
|
|
19
|
+
* Exchange rate series.
|
|
20
|
+
*
|
|
21
|
+
* USD/CLP is expressed as Chilean Pesos per USD.
|
|
22
|
+
* All other pairs are expressed as foreign currency units per 1 USD.
|
|
23
|
+
*/
|
|
24
|
+
EXCHANGE_RATE: {
|
|
25
|
+
/** Observed (official) USD/CLP exchange rate — daily. */
|
|
26
|
+
USD_CLP_OBSERVED: 'F073.TCO.PRE.Z.D',
|
|
27
|
+
/** Argentine Peso per USD — daily. */
|
|
28
|
+
ARS_USD: 'F072.ARS.USD.N.O.D',
|
|
29
|
+
/** Australian Dollar per USD — daily. */
|
|
30
|
+
AUD_USD: 'F072.AUD.USD.N.O.D',
|
|
31
|
+
/** Brazilian Real per USD — daily. */
|
|
32
|
+
BRL_USD: 'F072.BRL.USD.N.O.D',
|
|
33
|
+
/** Canadian Dollar per USD — daily. */
|
|
34
|
+
CAD_USD: 'F072.CAD.USD.N.O.D',
|
|
35
|
+
/** Yuan Renminbi per USD — daily. */
|
|
36
|
+
CNY_USD: 'F072.CNY.USD.N.O.D',
|
|
37
|
+
/** Colombian Peso per USD — daily. */
|
|
38
|
+
COP_USD: 'F072.COP.USD.N.O.D',
|
|
39
|
+
/** Euro per USD — daily. */
|
|
40
|
+
EUR_USD: 'F072.EUR.USD.N.O.D',
|
|
41
|
+
/** Pound Sterling per USD — daily. */
|
|
42
|
+
GBP_USD: 'F072.GBP.USD.N.O.D',
|
|
43
|
+
/** Hong Kong Dollar per USD — daily. */
|
|
44
|
+
HKD_USD: 'F072.HKD.USD.N.O.D',
|
|
45
|
+
/** Japanese Yen per USD — daily. */
|
|
46
|
+
JPY_USD: 'F072.JPY.USD.N.O.D',
|
|
47
|
+
/** Mexican Peso per USD — daily. */
|
|
48
|
+
MXN_USD: 'F072.MXN.USD.N.O.D',
|
|
49
|
+
/** Norwegian Krone per USD — daily. */
|
|
50
|
+
NOK_USD: 'F072.NOK.USD.N.O.D',
|
|
51
|
+
/** Peruvian Sol per USD — daily. */
|
|
52
|
+
PEN_USD: 'F072.PEN.USD.N.O.D',
|
|
53
|
+
/** Swedish Krona per USD — daily. */
|
|
54
|
+
SEK_USD: 'F072.SEK.USD.N.O.D',
|
|
55
|
+
/** Swiss Franc per USD — daily. */
|
|
56
|
+
CHF_USD: 'F072.CHF.USD.N.O.D',
|
|
57
|
+
/** IMF Special Drawing Rights per USD — daily. */
|
|
58
|
+
SDR_USD: 'F072.DEG.USD.N.O.D',
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Price index and inflation series.
|
|
62
|
+
*/
|
|
63
|
+
PRICES: {
|
|
64
|
+
/** Unidad de Fomento (UF) — daily. */
|
|
65
|
+
UF: 'F073.UFF.PRE.Z.D',
|
|
66
|
+
/** Average Value Index (IVP) — daily. */
|
|
67
|
+
IVP: 'F073.IVP.PRE.Z.D',
|
|
68
|
+
/** Monthly Tax Unit (UTM) — monthly. */
|
|
69
|
+
UTM: 'F073.UTR.PRE.Z.M',
|
|
70
|
+
/** Headline CPI index (base 2023) — monthly. */
|
|
71
|
+
CPI_INDEX: 'F074.IPC.IND.Z.EP23.C.M',
|
|
72
|
+
/** Headline CPI monthly change — monthly. */
|
|
73
|
+
CPI_MONTHLY_CHANGE: 'F074.IPC.VAR.Z.EP23.C.M',
|
|
74
|
+
/** Headline CPI annual change (12-month) — monthly. */
|
|
75
|
+
CPI_ANNUAL_CHANGE: 'F074.IPC.V12.Z.EP23.C.M',
|
|
76
|
+
/** CPI excluding food and energy (SAE) — monthly. */
|
|
77
|
+
CPI_SAE: 'F074.IPCSAE.VAR.Z.2023.C.M',
|
|
78
|
+
/** Tradable CPI — monthly. */
|
|
79
|
+
CPI_TRADABLE: 'F074.IPCT.VAR.Z.2023.C.M',
|
|
80
|
+
/** Non-tradable CPI — monthly. */
|
|
81
|
+
CPI_NON_TRADABLE: 'F074.IPCN.VAR.Z.2023.C.M',
|
|
82
|
+
/** CPI food — monthly. */
|
|
83
|
+
CPI_FOOD: 'F074.IPCA.VAR.Z.2023.C.M',
|
|
84
|
+
/** CPI energy — monthly. */
|
|
85
|
+
CPI_ENERGY: 'F074.IPCE.VAR.Z.2023.C.M',
|
|
86
|
+
/** CPI services — monthly. */
|
|
87
|
+
CPI_SERVICES: 'F074.IPCS.VAR.Z.2023.C.M',
|
|
88
|
+
/** CPI goods — monthly. */
|
|
89
|
+
CPI_GOODS: 'F074.IPCB.VAR.Z.2023.C.M',
|
|
90
|
+
},
|
|
91
|
+
/**
|
|
92
|
+
* Interest rate series (policy rates, sovereign bonds, money market instruments).
|
|
93
|
+
*/
|
|
94
|
+
INTEREST_RATES: {
|
|
95
|
+
/** Monetary Policy Rate (MPR/TPM) — daily. */
|
|
96
|
+
MONETARY_POLICY_RATE: 'F022.TPM.TIN.D001.NO.Z.D',
|
|
97
|
+
/** Permanent liquidity facility rate — daily. */
|
|
98
|
+
LIQUIDITY_FACILITY: 'F022.TPL.TIN.Z.NO.Z.D',
|
|
99
|
+
/** Permanent deposit facility rate — daily. */
|
|
100
|
+
DEPOSIT_FACILITY: 'F022.TPD.TIN.Z.NO.Z.D',
|
|
101
|
+
/** 2-year nominal BCP sovereign bond yield — daily. */
|
|
102
|
+
BCP_2Y: 'F022.BCLP.TIS.AN02.NO.Z.D',
|
|
103
|
+
/** 5-year nominal BCP sovereign bond yield — daily. */
|
|
104
|
+
BCP_5Y: 'F022.BCLP.TIS.AN05.NO.Z.D',
|
|
105
|
+
/** 10-year nominal BCP sovereign bond yield — daily. */
|
|
106
|
+
BCP_10Y: 'F022.BCLP.TIS.AN10.NO.Z.D',
|
|
107
|
+
/** 2-year inflation-linked BCU sovereign bond yield — daily. */
|
|
108
|
+
BCU_2Y: 'F022.BUF.TIS.AN02.UF.Z.D',
|
|
109
|
+
/** 5-year inflation-linked BCU sovereign bond yield — daily. */
|
|
110
|
+
BCU_5Y: 'F022.BUF.TIS.AN05.UF.Z.D',
|
|
111
|
+
/** 10-year inflation-linked BCU sovereign bond yield — daily. */
|
|
112
|
+
BCU_10Y: 'F022.BUF.TIS.AN10.UF.Z.D',
|
|
113
|
+
/** 30-day PDBC rate — monthly. */
|
|
114
|
+
PDBC_30D: 'F022.PDBC.TIN.D030.NO.Z.M',
|
|
115
|
+
/** 90-day PDBC rate — monthly. */
|
|
116
|
+
PDBC_90D: 'F022.PDBC.TIN.D090.NO.Z.M',
|
|
117
|
+
/** 180-day PDBC rate — monthly. */
|
|
118
|
+
PDBC_180D: 'F022.PDBC.TIN.D180.NO.Z.M',
|
|
119
|
+
},
|
|
120
|
+
/**
|
|
121
|
+
* Monetary aggregates and credit series.
|
|
122
|
+
*/
|
|
123
|
+
MONEY: {
|
|
124
|
+
/** Narrow money supply M1 — monthly. */
|
|
125
|
+
M1: 'F021.M1.PRO.N.CLP.5.M',
|
|
126
|
+
/** Broad money supply M2 — monthly. */
|
|
127
|
+
M2: 'F021.M2.PRO.N.CLP.5.M',
|
|
128
|
+
/** Broadest money supply M3 — monthly. */
|
|
129
|
+
M3: 'F021.M3.PRO.N.CLP.5.M',
|
|
130
|
+
/** Total real bank loans — monthly. */
|
|
131
|
+
LOANS_TOTAL: 'F022.CTO.STO.TP.Z.P96R23.M',
|
|
132
|
+
/** Real consumer loans — monthly. */
|
|
133
|
+
LOANS_CONSUMER: 'F022.CON.STO.TP.Z.P96R23.M',
|
|
134
|
+
/** Real mortgage loans — monthly. */
|
|
135
|
+
LOANS_MORTGAGE: 'F022.VIV.STO.TP.Z.P96R23.M',
|
|
136
|
+
/** Real commercial loans — monthly. */
|
|
137
|
+
LOANS_COMMERCIAL: 'F022.CEM.STO.TP.Z.P96R23.M',
|
|
138
|
+
},
|
|
139
|
+
/**
|
|
140
|
+
* National accounts and economic activity series.
|
|
141
|
+
*/
|
|
142
|
+
NATIONAL_ACCOUNTS: {
|
|
143
|
+
/** Imacec index (economic activity, 2018=100) — monthly. */
|
|
144
|
+
IMACEC: 'F032.IMC.IND.Z.Z.EP18.Z.Z.0.M',
|
|
145
|
+
/** Imacec 12-month annual change — monthly. */
|
|
146
|
+
IMACEC_ANNUAL_CHANGE: 'F032.IMC.V12.Z.Z.2018.Z.Z.0.M',
|
|
147
|
+
/** Non-mining Imacec index — monthly. */
|
|
148
|
+
IMACEC_NON_MINING: 'F032.IMC.IND.Z.Z.EP18.N03.Z.0.M',
|
|
149
|
+
/** Mining Imacec — monthly. */
|
|
150
|
+
IMACEC_MINING: 'F032.IMC.IND.Z.Z.EP18.03.Z.0.M',
|
|
151
|
+
/** Manufacturing Imacec — monthly. */
|
|
152
|
+
IMACEC_MANUFACTURING: 'F032.IMC.IND.Z.Z.EP18.04.Z.0.M',
|
|
153
|
+
/** Services Imacec — monthly. */
|
|
154
|
+
IMACEC_SERVICES: 'F032.IMC.IND.Z.Z.EP18.SERV.Z.0.M',
|
|
155
|
+
},
|
|
156
|
+
/**
|
|
157
|
+
* External sector and balance of payments series.
|
|
158
|
+
*/
|
|
159
|
+
EXTERNAL_SECTOR: {
|
|
160
|
+
/** Current account balance — quarterly. */
|
|
161
|
+
CURRENT_ACCOUNT: 'F068.A.FLU.Z.0.S.N.Z.Z.Z.Z.6.0.T',
|
|
162
|
+
/** Trade balance of goods and services — quarterly. */
|
|
163
|
+
TRADE_BALANCE: 'F068.B.FLU.Z.0.S.N.Z.Z.Z.Z.6.0.T',
|
|
164
|
+
/** Goods exports — monthly. */
|
|
165
|
+
EXPORTS: 'F068.B1.FLU.Z.0.C.N.Z.Z.Z.Z.6.0.M',
|
|
166
|
+
/** Goods imports (FOB) — monthly. */
|
|
167
|
+
IMPORTS: 'F068.B1.FLU.Z.0.D.N.0.T.Z.Z.6.0.M',
|
|
168
|
+
/** Financial account — monthly. */
|
|
169
|
+
FINANCIAL_ACCOUNT: 'F068.G.FLU.Z.0.S.N.Z.T.Z.Z.6.0.M',
|
|
170
|
+
/** Foreign direct investment (net) — monthly. */
|
|
171
|
+
DIRECT_INVESTMENT: 'F068.G1.FLU.Z.0.S.N.Z.T.Z.Z.6.0.M',
|
|
172
|
+
/** International reserve assets — monthly. */
|
|
173
|
+
RESERVE_ASSETS: 'F068.G5.FLU.W.0.S.N.Z.T.Z.Z.6.0.M',
|
|
174
|
+
},
|
|
175
|
+
/**
|
|
176
|
+
* Labour market series.
|
|
177
|
+
*/
|
|
178
|
+
EMPLOYMENT: {
|
|
179
|
+
/** Nationwide unemployment rate — monthly. */
|
|
180
|
+
UNEMPLOYMENT_RATE: 'F049.DES.TAS.INE9.10.M',
|
|
181
|
+
/** Total labour force (persons) — monthly. */
|
|
182
|
+
LABOUR_FORCE: 'F049.FTR.PMT.INE9.01.M',
|
|
183
|
+
/** Employed persons — monthly. */
|
|
184
|
+
EMPLOYED: 'F049.OCU.PMT.INE9.01.M',
|
|
185
|
+
/** Unemployed persons — monthly. */
|
|
186
|
+
UNEMPLOYED: 'F049.DES.PMT.INE9.01.M',
|
|
187
|
+
},
|
|
188
|
+
/**
|
|
189
|
+
* Central government fiscal series.
|
|
190
|
+
*/
|
|
191
|
+
PUBLIC_FINANCES: {
|
|
192
|
+
/** Total government revenue — annual. */
|
|
193
|
+
REVENUE: 'F051.A01.FLU.G.C.CLP.T',
|
|
194
|
+
/** Total government expenditure — annual. */
|
|
195
|
+
EXPENDITURE: 'F051.A02.FLU.G.C.CLP.T',
|
|
196
|
+
/** Net tax revenues — annual. */
|
|
197
|
+
TAX_REVENUE: 'F051.A011.FLU.G.C.CLP.T',
|
|
198
|
+
/** Net lending / net borrowing (fiscal balance) — annual. */
|
|
199
|
+
FISCAL_BALANCE: 'F051.B04.FLU.G.C.CLP.T',
|
|
200
|
+
/** Net foreign exchange reserves (central government) — annual. */
|
|
201
|
+
FX_RESERVES: 'F051.E21.STO.H.Z.USD.T',
|
|
202
|
+
},
|
|
203
|
+
/**
|
|
204
|
+
* Capital market series.
|
|
205
|
+
*/
|
|
206
|
+
CAPITAL_MARKET: {
|
|
207
|
+
/** IPSA equity index (base January 2003=100) — daily. */
|
|
208
|
+
IPSA: 'F013.IBC.IND.N.7.LAC.CL.CLP.BLO.D',
|
|
209
|
+
/** Total stock market capitalisation — monthly. */
|
|
210
|
+
STOCK_MARKET_CAPITAL: 'F022.BCP.STO.Z.Z.CLP.D',
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
//# sourceMappingURL=series.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"series.js","sourceRoot":"","sources":["../../src/series/series.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses a date string in `"DD-MM-YYYY"` format (the BCCH API wire format)
|
|
3
|
+
* into a UTC `Date`.
|
|
4
|
+
*
|
|
5
|
+
* @param dateString - Date in `"DD-MM-YYYY"` format.
|
|
6
|
+
* @returns A `Date` set to midnight UTC on the given date.
|
|
7
|
+
* @throws {Error} When `dateString` is empty, malformed, or out of range.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const d = parseObservationDate('15-06-2023');
|
|
12
|
+
* d.getUTCFullYear(); // 2023
|
|
13
|
+
* d.getUTCMonth(); // 5 (June, 0-indexed)
|
|
14
|
+
* d.getUTCDate(); // 15
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseObservationDate(dateString: string): Date;
|
|
18
|
+
/**
|
|
19
|
+
* Formats a `Date` as a `"YYYY-MM-DD"` string for use in BCCH API query parameters.
|
|
20
|
+
*
|
|
21
|
+
* @param date - The date to format. Time components are ignored; UTC date is used.
|
|
22
|
+
* @returns Date string in `"YYYY-MM-DD"` format.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* formatQueryDate(new Date(Date.UTC(2024, 0, 15))); // "2024-01-15"
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatQueryDate(date: Date): string;
|
|
30
|
+
//# sourceMappingURL=dates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../src/utils/dates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAyC7D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAKlD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses a date string in `"DD-MM-YYYY"` format (the BCCH API wire format)
|
|
3
|
+
* into a UTC `Date`.
|
|
4
|
+
*
|
|
5
|
+
* @param dateString - Date in `"DD-MM-YYYY"` format.
|
|
6
|
+
* @returns A `Date` set to midnight UTC on the given date.
|
|
7
|
+
* @throws {Error} When `dateString` is empty, malformed, or out of range.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const d = parseObservationDate('15-06-2023');
|
|
12
|
+
* d.getUTCFullYear(); // 2023
|
|
13
|
+
* d.getUTCMonth(); // 5 (June, 0-indexed)
|
|
14
|
+
* d.getUTCDate(); // 15
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export function parseObservationDate(dateString) {
|
|
18
|
+
if (!dateString) {
|
|
19
|
+
throw new Error(`Invalid date: "${dateString}"`);
|
|
20
|
+
}
|
|
21
|
+
const parts = dateString.split('-');
|
|
22
|
+
if (parts.length !== 3) {
|
|
23
|
+
throw new Error(`Invalid date: "${dateString}"`);
|
|
24
|
+
}
|
|
25
|
+
const [dayStr, monthStr, yearStr] = parts;
|
|
26
|
+
const day = Number(dayStr);
|
|
27
|
+
const month = Number(monthStr);
|
|
28
|
+
const year = Number(yearStr);
|
|
29
|
+
if (!Number.isInteger(day) ||
|
|
30
|
+
!Number.isInteger(month) ||
|
|
31
|
+
!Number.isInteger(year) ||
|
|
32
|
+
isNaN(day) ||
|
|
33
|
+
isNaN(month) ||
|
|
34
|
+
isNaN(year) ||
|
|
35
|
+
month < 1 ||
|
|
36
|
+
month > 12 ||
|
|
37
|
+
day < 1 ||
|
|
38
|
+
day > 31) {
|
|
39
|
+
throw new Error(`Invalid date: "${dateString}"`);
|
|
40
|
+
}
|
|
41
|
+
// Verify the date is real by constructing and checking for roll-over
|
|
42
|
+
const date = new Date(Date.UTC(year, month - 1, day));
|
|
43
|
+
if (date.getUTCFullYear() !== year ||
|
|
44
|
+
date.getUTCMonth() !== month - 1 ||
|
|
45
|
+
date.getUTCDate() !== day) {
|
|
46
|
+
throw new Error(`Invalid date: "${dateString}"`);
|
|
47
|
+
}
|
|
48
|
+
return date;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Formats a `Date` as a `"YYYY-MM-DD"` string for use in BCCH API query parameters.
|
|
52
|
+
*
|
|
53
|
+
* @param date - The date to format. Time components are ignored; UTC date is used.
|
|
54
|
+
* @returns Date string in `"YYYY-MM-DD"` format.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* formatQueryDate(new Date(Date.UTC(2024, 0, 15))); // "2024-01-15"
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export function formatQueryDate(date) {
|
|
62
|
+
const year = date.getUTCFullYear();
|
|
63
|
+
const month = String(date.getUTCMonth() + 1).padStart(2, '0');
|
|
64
|
+
const day = String(date.getUTCDate()).padStart(2, '0');
|
|
65
|
+
return `${year}-${month}-${day}`;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=dates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dates.js","sourceRoot":"","sources":["../../src/utils/dates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7B,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;QACtB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC;QACV,KAAK,CAAC,KAAK,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC;QACX,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,EAAE;QACV,GAAG,GAAG,CAAC;QACP,GAAG,GAAG,EAAE,EACR,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,qEAAqE;IACrE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,IACE,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI;QAC9B,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,EACzB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { formatQueryDate, parseObservationDate } from './dates.js';
|
|
2
|
+
export { filterValid, parseValue, toArrays, toMap, toNumbers } from './transform.js';
|
|
3
|
+
export { annualVariation, max, mean, min, periodVariation, rollingMean, stdDev } from './stats.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { formatQueryDate, parseObservationDate } from './dates.js';
|
|
2
|
+
export { filterValid, parseValue, toArrays, toMap, toNumbers } from './transform.js';
|
|
3
|
+
export { annualVariation, max, mean, min, periodVariation, rollingMean, stdDev } from './stats.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|