@uk-open-data-connectors/uk-sources 0.1.1 → 0.1.2
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/LICENSE +21 -0
- package/README.md +110 -213
- package/dist/ancientWoodland.d.ts.map +1 -1
- package/dist/ancientWoodland.js +2 -4
- package/dist/ancientWoodland.js.map +1 -1
- package/dist/apiKey.d.ts +11 -0
- package/dist/apiKey.d.ts.map +1 -0
- package/dist/apiKey.js +17 -0
- package/dist/apiKey.js.map +1 -0
- package/dist/bankRate.d.ts.map +1 -1
- package/dist/bankRate.js +3 -5
- package/dist/bankRate.js.map +1 -1
- package/dist/carbonIntensity.d.ts +4 -1
- package/dist/carbonIntensity.d.ts.map +1 -1
- package/dist/carbonIntensity.js +6 -2
- package/dist/carbonIntensity.js.map +1 -1
- package/dist/errors.d.ts +12 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +8 -4
- package/dist/errors.js.map +1 -1
- package/dist/exploreEducationStatistics.d.ts.map +1 -1
- package/dist/exploreEducationStatistics.js +3 -5
- package/dist/exploreEducationStatistics.js.map +1 -1
- package/dist/findATender.d.ts.map +1 -1
- package/dist/findATender.js +3 -5
- package/dist/findATender.js.map +1 -1
- package/dist/fingertipsIndicators.d.ts.map +1 -1
- package/dist/fingertipsIndicators.js +3 -5
- package/dist/fingertipsIndicators.js.map +1 -1
- package/dist/floodMonitoring.d.ts.map +1 -1
- package/dist/floodMonitoring.js +4 -9
- package/dist/floodMonitoring.js.map +1 -1
- package/dist/foodHygiene.d.ts.map +1 -1
- package/dist/foodHygiene.js +4 -5
- package/dist/foodHygiene.js.map +1 -1
- package/dist/http.d.ts +34 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +83 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/londonDatastore.d.ts.map +1 -1
- package/dist/londonDatastore.js +5 -5
- package/dist/londonDatastore.js.map +1 -1
- package/dist/nesoGenerationMix.d.ts +128 -0
- package/dist/nesoGenerationMix.d.ts.map +1 -0
- package/dist/nesoGenerationMix.js +241 -0
- package/dist/nesoGenerationMix.js.map +1 -0
- package/dist/nhsbsaCkan.d.ts.map +1 -1
- package/dist/nhsbsaCkan.js +3 -5
- package/dist/nhsbsaCkan.js.map +1 -1
- package/dist/nomis.d.ts.map +1 -1
- package/dist/nomis.js +3 -5
- package/dist/nomis.js.map +1 -1
- package/dist/onsDatasets.d.ts.map +1 -1
- package/dist/onsDatasets.js +3 -5
- package/dist/onsDatasets.js.map +1 -1
- package/dist/parliamentSeats.d.ts.map +1 -1
- package/dist/parliamentSeats.js +6 -5
- package/dist/parliamentSeats.js.map +1 -1
- package/dist/planningDatasets.d.ts.map +1 -1
- package/dist/planningDatasets.js +3 -5
- package/dist/planningDatasets.js.map +1 -1
- package/dist/policeCrimes.d.ts.map +1 -1
- package/dist/policeCrimes.js +5 -8
- package/dist/policeCrimes.js.map +1 -1
- package/dist/postcodeLookup.d.ts.map +1 -1
- package/dist/postcodeLookup.js +5 -5
- package/dist/postcodeLookup.js.map +1 -1
- package/dist/publicHealthScotland.d.ts.map +1 -1
- package/dist/publicHealthScotland.js +3 -5
- package/dist/publicHealthScotland.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -1
- package/dist/tflBikePoints.d.ts.map +1 -1
- package/dist/tflBikePoints.js +6 -6
- package/dist/tflBikePoints.js.map +1 -1
- package/dist/tflLineStatus.d.ts.map +1 -1
- package/dist/tflLineStatus.js +3 -5
- package/dist/tflLineStatus.js.map +1 -1
- package/dist/tnaDiscovery.d.ts.map +1 -1
- package/dist/tnaDiscovery.js +4 -5
- package/dist/tnaDiscovery.js.map +1 -1
- package/dist/ukhsaDashboard.d.ts.map +1 -1
- package/dist/ukhsaDashboard.js +3 -5
- package/dist/ukhsaDashboard.js.map +1 -1
- package/package.json +3 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Oli Treadwell
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,227 +1,124 @@
|
|
|
1
1
|
# @uk-open-data-connectors/uk-sources
|
|
2
2
|
|
|
3
|
-
Uniform TypeScript adapters for UK public data sources
|
|
4
|
-
same shape: a live fetch, a strict parse, and a committed fixture fallback so
|
|
5
|
-
builds work offline.
|
|
3
|
+
Uniform TypeScript adapters for 22 UK public data sources, for JavaScript and TypeScript developers.
|
|
6
4
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
| id | Source | Auth | What it does |
|
|
10
|
-
| -------------------------- | ----------------------------------- | ---- | ------------------------------------------------------------ |
|
|
11
|
-
| `flood-stations` | Environment Agency flood-monitoring | none | Monitoring stations with river and catchment |
|
|
12
|
-
| `flood-readings` | Environment Agency flood-monitoring | none | Recent water levels for one station, newest first |
|
|
13
|
-
| `ons-datasets` | ONS beta API dataset catalogue | none | Every dataset the ONS lists, with its state and stamp |
|
|
14
|
-
| `food-hygiene-authorities` | Food Standards Agency food hygiene | none | Every local authority register, with its establishment count |
|
|
15
|
-
| `tfl-bike-points` | Transport for London cycle hire | none | Every Santander Cycles docking station, with docking points and docked bikes |
|
|
16
|
-
| `planning-datasets` | Planning Data platform (MHCLG) | none | Every planning dataset, with the records published behind it |
|
|
17
|
-
| `ancient-woodland` | Natural England ancient woodland | none | Ancient woodland polygons for England, counted by type and size |
|
|
18
|
-
| `bank-rate` | Bank of England Bank Rate | none | The daily official Bank Rate, one reading per business day since 1975 |
|
|
19
|
-
| `police-crimes` | Home Office police.uk | none | Street-level crime within a mile of a point, counted by crime type and outcome |
|
|
20
|
-
| `carbon-intensity` | National Energy System Operator | none | Half-hourly carbon intensity for Great Britain, with the window's cleanest and dirtiest half hours |
|
|
21
|
-
| `parliament-seats` | UK Parliament Members API | none | Seats each party holds in the Commons, with the members counted behind them |
|
|
22
|
-
| `postcode-lookup` | postcodes.io (ONS and OS data) | none | One postcode's country, region, wards, and coordinates |
|
|
23
|
-
| `explore-education-statistics` | Department for Education | none | The most recent statistics releases, with their publish stamps |
|
|
24
|
-
| `london-datastore` | Greater London Authority | none | Every dataset on the London Datastore |
|
|
25
|
-
| `tna-discovery` | The National Archives | none | Catalogue records matching a search, with the total hit count |
|
|
26
|
-
| `ukhsa-dashboard` | UK Health Security Agency | none | Metric points for new HIV diagnoses in England |
|
|
27
|
-
| `nomis` | ONS Nomis | none | SDMX dataset definitions, with maintenance status and keywords |
|
|
28
|
-
| `fingertips-indicators` | Office for Health Improvement and Disparities | none | Public health indicator metadata, with unit, type, and data source |
|
|
29
|
-
| `find-a-tender` | Cabinet Office | none | Recent procurement notices as OCDS 1.1 releases |
|
|
30
|
-
| `tfl-line-status` | Transport for London | none | Live status of every Tube line, with disruption reasons |
|
|
31
|
-
| `public-health-scotland` | Public Health Scotland | none | Every dataset on the Public Health Scotland CKAN portal |
|
|
32
|
-
| `nhsbsa-ckan` | NHS Business Services Authority | none | Every dataset on the NHSBSA CKAN portal |
|
|
33
|
-
|
|
34
|
-
The flood-monitoring adapters use `environment.data.gov.uk` under the Open
|
|
35
|
-
Government Licence v3:
|
|
36
|
-
<https://environment.data.gov.uk/flood-monitoring/doc/reference>
|
|
37
|
-
|
|
38
|
-
The ONS adapter uses the beta API behind the ONS website rebuild,
|
|
39
|
-
<https://api.beta.ons.gov.uk/v1/datasets>, also keyless and under the Open
|
|
40
|
-
Government Licence v3.
|
|
41
|
-
|
|
42
|
-
The food hygiene adapter uses the FSA Food Hygiene Rating Scheme API,
|
|
43
|
-
<https://api.ratings.food.gov.uk/Authorities/basic>, also keyless and under the
|
|
44
|
-
Open Government Licence v3. It answers only with the version header the FSA
|
|
45
|
-
asks for, `x-api-version: 2`; without it the endpoint returns HTTP 404.
|
|
46
|
-
|
|
47
|
-
The Planning Data platform adapter uses the dataset catalogue behind
|
|
48
|
-
<https://www.planning.data.gov.uk/dataset>, <https://www.planning.data.gov.uk/dataset.json>,
|
|
49
|
-
which answers without a key under the Open Government Licence v3. The file
|
|
50
|
-
lists datasets alongside the platform's pipeline configuration and provenance
|
|
51
|
-
tables, so the adapter keeps the entries whose `realm` is `dataset`.
|
|
52
|
-
|
|
53
|
-
The ancient woodland adapter uses Natural England's Ancient Woodland (England)
|
|
54
|
-
layer on the Defra ArcGIS estate,
|
|
55
|
-
<https://services.arcgis.com/JJzESW51TqeY9uat/arcgis/rest/services/Ancient_Woodland_England/FeatureServer/0>,
|
|
56
|
-
which answers without a key under the Open Government Licence v3. The layer
|
|
57
|
-
carries more than fifty thousand polygons, past ArcGIS's page size, so the
|
|
58
|
-
adapter reads the counts from the service's own statistics queries instead of
|
|
59
|
-
downloading the features.
|
|
60
|
-
|
|
61
|
-
The Bank Rate adapter uses the Bank of England's Interactive Statistical
|
|
62
|
-
Database (IADB),
|
|
63
|
-
<https://www.bankofengland.co.uk/boeapps/database/_iadb-fromshowcolumns.asp>,
|
|
64
|
-
which answers without a key. The daily series, `IUDBEDR`, starts on 2 January
|
|
65
|
-
1975; asking for an earlier start returns the database's error page instead of
|
|
66
|
-
a CSV, so the adapter starts there. The Bank's published terms place
|
|
67
|
-
reproduction of Database data under the Open Government Licence v3:
|
|
68
|
-
<https://www.bankofengland.co.uk/legal>.
|
|
69
|
-
|
|
70
|
-
The recorded crime adapter uses the Home Office police.uk API,
|
|
71
|
-
<https://data.police.uk/api/crimes-street/all-crime>, which answers without a
|
|
72
|
-
key under the Open Government Licence v3. It holds the last 36 months of
|
|
73
|
-
street-level crime from the 44 forces of England, Wales and Northern Ireland,
|
|
74
|
-
so nothing here covers Scotland. A call takes a point and returns everything
|
|
75
|
-
within a mile of it, which is why the adapter counts around one point rather
|
|
76
|
-
than a boundary, and it asks for one month at a time to stay inside the API's
|
|
77
|
-
limit of 15 requests a second.
|
|
78
|
-
|
|
79
|
-
The docking station adapter uses TfL's Unified API,
|
|
80
|
-
<https://api.tfl.gov.uk/BikePoint>, which answers without a key. TfL asks for
|
|
81
|
-
an app key above the free rate limit, so `fetchTflBikePoints` takes an optional
|
|
82
|
-
key and sends it as the `app_key` query parameter. The data is published as TfL
|
|
83
|
-
Open Data: <https://tfl.gov.uk/info-for/open-data-users/>.
|
|
84
|
-
|
|
85
|
-
The carbon intensity adapter uses the National Energy System Operator's Carbon
|
|
86
|
-
Intensity API, <https://api.carbonintensity.org.uk/intensity>, which answers
|
|
87
|
-
without a key. It is the official half-hourly series for Great Britain, with a
|
|
88
|
-
reading and a grade for every half hour, and the API's own terms place the data
|
|
89
|
-
under the Creative Commons Attribution 4.0 licence:
|
|
90
|
-
<https://terms.carbonintensity.org.uk/>. The API refuses a range longer than 31
|
|
91
|
-
days, so the adapter reads whole days and asks for a window that ends at the
|
|
92
|
-
start of today, which keeps every reading in it a settled one.
|
|
93
|
-
|
|
94
|
-
The Parliament seat adapter uses the UK Parliament Members API,
|
|
95
|
-
<https://members-api.parliament.uk/api/Parties/StateOfTheParties>, which
|
|
96
|
-
answers without a key. It is the current state of the parties in each house,
|
|
97
|
-
with the seats a party holds and the members counted behind them, published
|
|
98
|
-
under the Open Parliament Licence v3.0:
|
|
99
|
-
<https://www.parliament.uk/site-information/copyright-parliament/open-parliament-licence/>.
|
|
100
|
-
The call needs a house and a date, so the adapter asks for the caller's own
|
|
101
|
-
date rather than a fixed one.
|
|
102
|
-
|
|
103
|
-
Eleven more keyless adapters landed on 2026-10-05: `postcode-lookup` reads
|
|
104
|
-
one postcode from postcodes.io, `explore-education-statistics` reads the
|
|
105
|
-
Department for Education's most recent releases, `london-datastore` and
|
|
106
|
-
`public-health-scotland` and `nhsbsa-ckan` read CKAN catalogues, `tna-discovery`
|
|
107
|
-
searches The National Archives catalogue, `ukhsa-dashboard` reads UKHSA metric
|
|
108
|
-
points, `nomis` reads the ONS Nomis SDMX catalogue, `fingertips-indicators`
|
|
109
|
-
reads OHID indicator metadata, `find-a-tender` reads OCDS procurement notices,
|
|
110
|
-
and `tfl-line-status` reads live Tube status. Endpoints, exact curl commands,
|
|
111
|
-
capture date, and licences are in `docs/CONNECTOR_DISCOVERY.md`.
|
|
112
|
-
|
|
113
|
-
Note on sources that look obvious but are not usable: `api.ons.gov.uk` was
|
|
114
|
-
retired on 2024-11-25 and now answers every request with a decommission notice.
|
|
115
|
-
The beta API at `api.beta.ons.gov.uk/v1` replaced it for dataset metadata,
|
|
116
|
-
editions, versions, and observations.
|
|
117
|
-
|
|
118
|
-
## Usage
|
|
119
|
-
|
|
120
|
-
```ts
|
|
121
|
-
import { fetchFloodStationReadings, summarizeFloodReadings } from '@uk-open-data-connectors/uk-sources';
|
|
122
|
-
import { fetchOnsDatasets, summarizeOnsDatasets } from '@uk-open-data-connectors/uk-sources';
|
|
123
|
-
import { fetchFoodHygieneAuthorities, summarizeFoodHygieneAuthorities } from '@uk-open-data-connectors/uk-sources';
|
|
124
|
-
import { fetchTflBikePoints, summarizeTflBikePoints } from '@uk-open-data-connectors/uk-sources';
|
|
125
|
-
import { fetchPlanningDatasets, summarizePlanningDatasets } from '@uk-open-data-connectors/uk-sources';
|
|
126
|
-
import { fetchAncientWoodlandProfile } from '@uk-open-data-connectors/uk-sources';
|
|
127
|
-
import { fetchBankRateObservations, summarizeBankRateSeries } from '@uk-open-data-connectors/uk-sources';
|
|
128
|
-
import { fetchPoliceCrimeSummary } from '@uk-open-data-connectors/uk-sources';
|
|
129
|
-
import { fetchCarbonIntensityWindow } from '@uk-open-data-connectors/uk-sources';
|
|
130
|
-
import { fetchParliamentSeats } from '@uk-open-data-connectors/uk-sources';
|
|
131
|
-
|
|
132
|
-
const readings = await fetchFloodStationReadings('1029TH', { limit: 96 });
|
|
133
|
-
const summary = summarizeFloodReadings(readings);
|
|
134
|
-
console.log(summary.latest?.value, summary.trend);
|
|
135
|
-
|
|
136
|
-
const catalogue = summarizeOnsDatasets(await fetchOnsDatasets());
|
|
137
|
-
console.log(catalogue.datasetCount, catalogue.yearCounts);
|
|
138
|
-
|
|
139
|
-
const registers = summarizeFoodHygieneAuthorities(await fetchFoodHygieneAuthorities());
|
|
140
|
-
console.log(registers.authorityCount, registers.establishmentCount);
|
|
141
|
-
|
|
142
|
-
const docks = summarizeTflBikePoints(await fetchTflBikePoints());
|
|
143
|
-
console.log(docks.stationCount, docks.dockCount, docks.largestStations[0]?.name);
|
|
5
|
+
## What this package does
|
|
144
6
|
|
|
145
|
-
|
|
146
|
-
|
|
7
|
+
- Ships one adapter for each of 22 UK public data sources.
|
|
8
|
+
- Gives every adapter the same shape: a live fetch, a strict parse, and a committed fixture fallback.
|
|
9
|
+
- Lets you build and test offline, because each adapter falls back to a fixture when the live call fails.
|
|
10
|
+
- Exposes a registry (`UK_DATA_SOURCES`) and probe helpers (`probeUkDataSource`, `probeAllUkDataSources`).
|
|
11
|
+
- Needs no API keys, because every UK source is keyless.
|
|
147
12
|
|
|
148
|
-
|
|
149
|
-
console.log(woodland.recordCount, woodland.totalHectares, woodland.sizeBands[0]?.recordCount);
|
|
13
|
+
## Install
|
|
150
14
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const seats = await fetchParliamentSeats();
|
|
155
|
-
console.log(seats.seatCount, seats.partyCount, seats.largestParty.party.name);
|
|
15
|
+
```sh
|
|
16
|
+
npm install @uk-open-data-connectors/uk-sources
|
|
156
17
|
```
|
|
157
18
|
|
|
158
|
-
##
|
|
159
|
-
|
|
160
|
-
`fetchParliamentSeats` reads the state of the parties in the House of Commons
|
|
161
|
-
and returns the seat counts a page can print.
|
|
19
|
+
## Quick start
|
|
162
20
|
|
|
163
21
|
```ts
|
|
164
|
-
import {
|
|
22
|
+
import { fetchFloodStationReadings, summarizeFloodReadings } from '@uk-open-data-connectors/uk-sources';
|
|
165
23
|
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
console.log(
|
|
24
|
+
const readings = await fetchFloodStationReadings('1029TH', { limit: 96 });
|
|
25
|
+
const summary = summarizeFloodReadings(readings);
|
|
26
|
+
console.log(summary.latest?.value, summary.trend);
|
|
169
27
|
```
|
|
170
28
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
```ts
|
|
174
|
-
const PARLIAMENT_PARTY_SCHEMA = z.object({
|
|
175
|
-
id: z.number().int(),
|
|
176
|
-
name: z.string().nullable(),
|
|
177
|
-
abbreviation: z.string().nullable(),
|
|
178
|
-
backgroundColour: z.string().nullable(),
|
|
179
|
-
foregroundColour: z.string().nullable(),
|
|
180
|
-
isIndependentParty: z.boolean(),
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
const PARLIAMENT_SEAT_COUNT_SCHEMA = z.object({
|
|
184
|
-
male: z.number().int().nonnegative().nullable(),
|
|
185
|
-
female: z.number().int().nonnegative().nullable(),
|
|
186
|
-
nonBinary: z.number().int().nonnegative().nullable(),
|
|
187
|
-
total: z.number().int(),
|
|
188
|
-
party: PARLIAMENT_PARTY_SCHEMA.nullable(),
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
const PARLIAMENT_RESPONSE_SCHEMA = z.object({
|
|
192
|
-
items: z.array(z.object({ value: PARLIAMENT_SEAT_COUNT_SCHEMA.nullable() })).nullable(),
|
|
193
|
-
});
|
|
194
|
-
```
|
|
29
|
+
## Adapters
|
|
195
30
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
`
|
|
199
|
-
`
|
|
200
|
-
|
|
201
|
-
`
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
- The
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
31
|
+
| id | Source | Auth | What it does |
|
|
32
|
+
| --- | ------ | ---- | ------------ |
|
|
33
|
+
| `flood-stations` | Environment Agency | none | Monitoring stations with their river, catchment, and measures. |
|
|
34
|
+
| `flood-readings` | Environment Agency | none | Recent water levels for one station, newest first. |
|
|
35
|
+
| `ons-datasets` | Office for National Statistics (ONS) | none | The dataset catalogue, with state and last-updated stamp. |
|
|
36
|
+
| `food-hygiene-authorities` | Food Standards Agency (FSA) | none | Every local authority food hygiene register, with its establishment count. |
|
|
37
|
+
| `tfl-bike-points` | Transport for London (TfL) | none | Every Santander Cycles docking station, with docking points and docked bikes. |
|
|
38
|
+
| `planning-datasets` | Planning Data platform (MHCLG) | none | Every dataset, with the records published behind it. |
|
|
39
|
+
| `ancient-woodland` | Natural England | none | Ancient woodland polygons for England, counted by type and size. |
|
|
40
|
+
| `bank-rate` | Bank of England | none | The daily official Bank Rate, one reading per business day since 1975. |
|
|
41
|
+
| `police-crimes` | Home Office police.uk | none | Street-level crime within a mile of a point, counted by type and outcome. |
|
|
42
|
+
| `carbon-intensity` | National Energy System Operator (NESO) | none | Half-hourly carbon intensity for Great Britain, with the cleanest and dirtiest half hours. |
|
|
43
|
+
| `parliament-seats` | UK Parliament | none | Seats each party holds in the Commons, with the members counted behind them. |
|
|
44
|
+
| `postcode-lookup` | postcodes.io (ONS and Ordnance Survey data) | none | One postcode's country, region, wards, and coordinates. |
|
|
45
|
+
| `explore-education-statistics` | Department for Education (DfE) | none | The most recent statistics releases, with their publish stamps. |
|
|
46
|
+
| `london-datastore` | Greater London Authority (GLA) | none | Every dataset on the London Datastore. |
|
|
47
|
+
| `tna-discovery` | The National Archives | none | Catalogue records matching a search, with the total hit count. |
|
|
48
|
+
| `ukhsa-dashboard` | UK Health Security Agency (UKHSA) | none | Annual counts of new HIV diagnoses in England. |
|
|
49
|
+
| `nomis` | ONS Nomis | none | SDMX dataset definitions, with maintenance status and keywords. |
|
|
50
|
+
| `fingertips-indicators` | Office for Health Improvement and Disparities (OHID) | none | Public health indicator metadata, with unit, type, and data source. |
|
|
51
|
+
| `find-a-tender` | Cabinet Office | none | Recent procurement notices as OCDS 1.1 releases. |
|
|
52
|
+
| `tfl-line-status` | Transport for London (TfL) | none | Live status of every Tube line, with disruption reasons. |
|
|
53
|
+
| `public-health-scotland` | Public Health Scotland | none | Every dataset on the Public Health Scotland CKAN portal. |
|
|
54
|
+
| `nhsbsa-ckan` | NHS Business Services Authority (NHSBSA) | none | Every dataset on the NHSBSA CKAN portal. |
|
|
55
|
+
| `neso-generation-mix` | National Energy System Operator (NESO) | none | Half-hourly Great Britain generation by fuel, with the cleanest and dirtiest half hours. |
|
|
56
|
+
|
|
57
|
+
The `auth` field is `none` for every adapter.
|
|
58
|
+
|
|
59
|
+
## Notes and limits
|
|
60
|
+
|
|
61
|
+
- All 23 adapters are keyless. `fetchTflBikePoints` and `fetchTflLineStatuses` take an optional `apiKey`, sent as the `app_key` query parameter.
|
|
62
|
+
- Each adapter falls back to a committed fixture when the live call fails. A returned value can be stale. Call `probeUkDataSource` before you quote a number.
|
|
63
|
+
- The fixtures in `src/fixtures` are real snapshots from the live APIs. The newer files carry their capture date in the filename.
|
|
64
|
+
- Tests never reach the network unless `RUN_SMOKE=1` is set. The smoke test hits the real endpoints and needs no keys.
|
|
65
|
+
- `api.ons.gov.uk` was retired on 2024-11-25. Every path answers HTTP 200 with a plain-text decommission notice, so a naive health check reads it as healthy. The `ons-datasets` adapter uses `api.beta.ons.gov.uk/v1` instead.
|
|
66
|
+
- `data.gov.uk/api/3/action/...` redirects to an HTML landing page. The CKAN API is no longer at that path.
|
|
67
|
+
- The FSA endpoint answers only with the `x-api-version: 2` header. Without it the endpoint returns HTTP 404. The adapter sends the header.
|
|
68
|
+
- The Planning Data file lists datasets and pipeline tables. The adapter keeps the entries whose `realm` is `dataset`.
|
|
69
|
+
- The ancient woodland layer holds more than 50,000 polygons, past the ArcGIS page size. The adapter reads the service statistics queries instead of the features.
|
|
70
|
+
- The Bank Rate daily series is `IUDBEDR` and starts on 2 January 1975. An earlier start returns the database error page instead of a CSV.
|
|
71
|
+
- police.uk holds the last 36 months of street-level crime from the 44 forces of England, Wales, and Northern Ireland. Police Scotland publishes elsewhere, so nothing here covers Scotland.
|
|
72
|
+
- A police.uk street-level call covers everything within a mile of a point. The adapter cannot ask for a smaller radius. It asks one month at a time, inside the API limit of 15 requests per second.
|
|
73
|
+
- The carbon intensity API refuses a range longer than 31 days. The adapter reads whole days and asks for a window that ends at the start of yesterday, so the newest half hour, which the API settles after a short lag, stays out of the window.
|
|
74
|
+
- The Parliament call takes a house (1 for the Commons, 2 for the Lords) and a date. The response does not echo the date or the house back.
|
|
75
|
+
- A vacant seat appears as its own party, named `Vacant`, with one seat and no members behind it. The summary keeps it in `seats` and reports the gap per row as `unallocatedSeatCount`.
|
|
76
|
+
- `backgroundColour` and `foregroundColour` are null for some parties, including the Speaker. A chart needs its own fallback colour.
|
|
77
|
+
- The Parliament call can be slow. A request in this repo timed out after 25 seconds, and the next one answered in two.
|
|
78
|
+
- The Nomis catalogue returns 1,617 dataset definitions in about 5.4 MB of JSON. The committed fixture keeps the first 25 definitions. The adapter reads the whole live catalogue.
|
|
79
|
+
- The Public Health Scotland portal is occasionally flaky. Calls can answer 200, answer 504, or reset the connection. The adapter has no retry, so a smoke run can fail on this source now and then.
|
|
80
|
+
- The London Datastore call answers a 307 redirect. Node's `fetch` follows it, so the adapter keeps the documented path.
|
|
81
|
+
- The Discovery adapter sends `Accept: application/json`, because the API documents the header.
|
|
82
|
+
- `postcode-lookup` reads from postcodes.io, a third-party service. It is not a government API, though it serves ONS and Ordnance Survey postcode data under the Open Government Licence v3.
|
|
83
|
+
- Only the Find a Tender `license` field, the NHSBSA `OGL-UK-3.0` metadata, and the Public Health Scotland `uk-ogl` metadata were read directly from the service. The other licences come from the publishers' standard terms.
|
|
84
|
+
- The eleven adapters added on 2026-10-05 were probed live on that day.
|
|
85
|
+
|
|
86
|
+
## Data sources and licences
|
|
87
|
+
|
|
88
|
+
This package reads 22 sources. Most come from UK public bodies. The postcode lookup comes from postcodes.io, a third-party service. Most data carries the Open Government Licence v3. The two TfL adapters carry TfL Open Data. The carbon intensity series carries Creative Commons Attribution 4.0. The Parliament seat counts carry the Open Parliament Licence v3.0.
|
|
89
|
+
|
|
90
|
+
| Adapter | Publisher | Source URL | Data licence |
|
|
91
|
+
| ------- | --------- | ---------- | ------------ |
|
|
92
|
+
| `flood-stations` | Environment Agency | <https://environment.data.gov.uk/flood-monitoring/id/stations> | Open Government Licence v3 |
|
|
93
|
+
| `flood-readings` | Environment Agency | <https://environment.data.gov.uk/flood-monitoring/id/stations/{reference}/readings> | Open Government Licence v3 |
|
|
94
|
+
| `ons-datasets` | Office for National Statistics | <https://api.beta.ons.gov.uk/v1/datasets> | Open Government Licence v3 |
|
|
95
|
+
| `food-hygiene-authorities` | Food Standards Agency | <https://api.ratings.food.gov.uk/Authorities/basic> | Open Government Licence v3 |
|
|
96
|
+
| `tfl-bike-points` | Transport for London | <https://api.tfl.gov.uk/BikePoint> | TfL Open Data |
|
|
97
|
+
| `planning-datasets` | MHCLG Planning Data platform | <https://www.planning.data.gov.uk/dataset.json> | Open Government Licence v3 |
|
|
98
|
+
| `ancient-woodland` | Natural England | <https://services.arcgis.com/JJzESW51TqeY9uat/arcgis/rest/services/Ancient_Woodland_England/FeatureServer/0/query> | Open Government Licence v3 |
|
|
99
|
+
| `bank-rate` | Bank of England | <https://www.bankofengland.co.uk/boeapps/database/_iadb-fromshowcolumns.asp> | Open Government Licence v3 under the Bank's terms |
|
|
100
|
+
| `police-crimes` | Home Office police.uk | <https://data.police.uk/api/crimes-street/all-crime> | Open Government Licence v3 |
|
|
101
|
+
| `carbon-intensity` | National Energy System Operator | <https://api.carbonintensity.org.uk/intensity> | Creative Commons Attribution 4.0 |
|
|
102
|
+
| `parliament-seats` | UK Parliament | <https://members-api.parliament.uk/api/Parties/StateOfTheParties> | Open Parliament Licence v3.0 |
|
|
103
|
+
| `postcode-lookup` | postcodes.io (ONS and Ordnance Survey data) | <https://api.postcodes.io/postcodes/SW1A1AA> | Open Government Licence v3 |
|
|
104
|
+
| `explore-education-statistics` | Department for Education | <https://api.education.gov.uk/statistics/v1/publications> | Open Government Licence v3 |
|
|
105
|
+
| `london-datastore` | Greater London Authority | <https://data.london.gov.uk/api/3/action/package_list> | Open Government Licence v3 by default, individual datasets can differ |
|
|
106
|
+
| `tna-discovery` | The National Archives | <https://discovery.nationalarchives.gov.uk/API/search/records> | Open Government Licence v3 |
|
|
107
|
+
| `ukhsa-dashboard` | UK Health Security Agency | <https://api.ukhsa-dashboard.data.gov.uk/themes/infectious_disease/sub_themes/bloodborne/topics/HIV/geography_types/Nation/geographies/England/metrics/HIV_cases_newDiagnoses> | Open Government Licence v3 |
|
|
108
|
+
| `nomis` | ONS Nomis | <https://www.nomisweb.co.uk/api/v01/dataset/def.sdmx.json> | Open Government Licence v3 |
|
|
109
|
+
| `fingertips-indicators` | Office for Health Improvement and Disparities | <https://fingertips.phe.org.uk/api/indicator_metadata/by_indicator_id> | Open Government Licence v3 |
|
|
110
|
+
| `find-a-tender` | Cabinet Office | <https://www.find-tender.service.gov.uk/api/1.0/ocdsReleasePackages> | Open Government Licence v3 |
|
|
111
|
+
| `tfl-line-status` | Transport for London | <https://api.tfl.gov.uk/Line/Mode/tube/Status> | TfL Open Data |
|
|
112
|
+
| `public-health-scotland` | Public Health Scotland | <https://www.opendata.nhs.scot/api/3/action/package_list> | Open Government Licence v3, the portal reports `uk-ogl` |
|
|
113
|
+
| `nhsbsa-ckan` | NHS Business Services Authority | <https://opendata.nhsbsa.net/api/3/action/package_list> | Open Government Licence v3, the portal reports `OGL-UK-3.0` |
|
|
114
|
+
| `neso-generation-mix` | National Energy System Operator | <https://api.neso.energy/api/3/action/datastore_search> | The NESO Open Data Licence, the portal reports `ESO` |
|
|
115
|
+
|
|
116
|
+
## Package licence
|
|
117
|
+
|
|
118
|
+
MIT. See LICENSE.
|
|
119
|
+
|
|
120
|
+
## Links
|
|
121
|
+
|
|
122
|
+
- npm: <https://www.npmjs.com/package/@uk-open-data-connectors/uk-sources>
|
|
123
|
+
- source: <https://github.com/olitreadwell/uk-open-data-connectors/tree/main/packages/uk-sources>
|
|
124
|
+
- docs: [Connector discovery](../../docs/CONNECTOR_DISCOVERY.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ancientWoodland.d.ts","sourceRoot":"","sources":["../src/ancientWoodland.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ancientWoodland.d.ts","sourceRoot":"","sources":["../src/ancientWoodland.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,qHAC6E,CAAC;AAErH,+DAA+D;AAC/D,eAAO,MAAM,4BAA4B,uFAC6C,CAAC;AAEvF,mDAAmD;AACnD,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAE7D,8DAA8D;AAC9D,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhE,8EAA8E;AAC9E,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,yBAAyB,CAAC;IAC9B,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,uBAAuB,EAoBzE,CAAC;AAEF,8DAA8D;AAC9D,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,iCAAiC,EA6BnF,CAAC;AAEF,gEAAgE;AAChE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;CAC3D;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAC1D,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;IAC5D,+CAA+C;IAC/C,SAAS,EAAE,uBAAuB,EAAE,CAAC;CACtC;AAED,0DAA0D;AAC1D,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;IACxB,mFAAmF;IACnF,cAAc,EAAE,OAAO,EAAE,CAAC;CAC3B;AAqDD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,CAuEpF;AAgDD;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAAO,GACpD,OAAO,CAAC,sBAAsB,CAAC,CAkBjC;AAED,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,sBAAsB,CAWxE,CAAC"}
|
package/dist/ancientWoodland.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { UkSourceApiError, UkSourceParseError } from './errors.js';
|
|
3
|
+
import { httpGet } from './http.js';
|
|
3
4
|
import { readFixtureJson } from './fixtures.js';
|
|
4
5
|
/**
|
|
5
6
|
* Natural England's Ancient Woodland (England) polygons, served from the Defra
|
|
@@ -191,10 +192,7 @@ async function queryArcgisStatistics(fetchImpl, query) {
|
|
|
191
192
|
}
|
|
192
193
|
url.searchParams.set('returnGeometry', 'false');
|
|
193
194
|
url.searchParams.set('f', 'json');
|
|
194
|
-
const response = await
|
|
195
|
-
if (!response.ok) {
|
|
196
|
-
throw new UkSourceApiError(ANCIENT_WOODLAND_SOURCE_ID, `HTTP ${response.status} querying the ancient woodland layer`);
|
|
197
|
-
}
|
|
195
|
+
const response = await httpGet(ANCIENT_WOODLAND_SOURCE_ID, url, { fetchImpl });
|
|
198
196
|
const payload = await response.json();
|
|
199
197
|
const arcgisError = ARCGIS_ERROR_SCHEMA.safeParse(payload);
|
|
200
198
|
if (arcgisError.success) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ancientWoodland.js","sourceRoot":"","sources":["../src/ancientWoodland.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ancientWoodland.js","sourceRoot":"","sources":["../src/ancientWoodland.ts"],"names":[],"mappings":"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"}
|
package/dist/apiKey.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes an optional API key read from configuration or a caller.
|
|
3
|
+
*
|
|
4
|
+
* An environment variable that is set but empty is treated as absent, so a
|
|
5
|
+
* blank key never reaches a request as an empty query parameter or header.
|
|
6
|
+
*
|
|
7
|
+
* @param key - The raw key, or undefined when unset.
|
|
8
|
+
* @returns The trimmed key, or undefined when it is blank.
|
|
9
|
+
*/
|
|
10
|
+
export declare function normalizeSourceApiKey(key: string | undefined): string | undefined;
|
|
11
|
+
//# sourceMappingURL=apiKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiKey.d.ts","sourceRoot":"","sources":["../src/apiKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMjF"}
|
package/dist/apiKey.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes an optional API key read from configuration or a caller.
|
|
3
|
+
*
|
|
4
|
+
* An environment variable that is set but empty is treated as absent, so a
|
|
5
|
+
* blank key never reaches a request as an empty query parameter or header.
|
|
6
|
+
*
|
|
7
|
+
* @param key - The raw key, or undefined when unset.
|
|
8
|
+
* @returns The trimmed key, or undefined when it is blank.
|
|
9
|
+
*/
|
|
10
|
+
export function normalizeSourceApiKey(key) {
|
|
11
|
+
const trimmed = key?.trim();
|
|
12
|
+
if (trimmed === undefined || trimmed === '') {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
return trimmed;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=apiKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiKey.js","sourceRoot":"","sources":["../src/apiKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAuB;IAC3D,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/bankRate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bankRate.d.ts","sourceRoot":"","sources":["../src/bankRate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bankRate.d.ts","sourceRoot":"","sources":["../src/bankRate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAE/C,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,+EACgD,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AAExD,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,4DAA4D;IAC5D,YAAY,EAAE,aAAa,CAAC;IAC5B,2DAA2D;IAC3D,WAAW,EAAE,aAAa,CAAC;IAC3B,oCAAoC;IACpC,YAAY,EAAE,aAAa,CAAC;IAC5B,4CAA4C;IAC5C,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAuCD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAOzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAW/D;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAiCvE;AAeD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,aAAa,EAAE,CAiBxF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAyC5F;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAA;CAAO,GAChE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAKhC;AAED,6EAA6E;AAC7E,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,mBAAmB,EAAE,CAWhE,CAAC"}
|
package/dist/bankRate.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UkSourceParseError } from './errors.js';
|
|
2
|
+
import { httpGet } from './http.js';
|
|
2
3
|
import { readFixtureText } from './fixtures.js';
|
|
3
4
|
/**
|
|
4
5
|
* The Bank of England's official Bank Rate, published in the Bank's
|
|
@@ -232,10 +233,7 @@ export function summarizeBankRateSeries(observations) {
|
|
|
232
233
|
export async function fetchBankRateObservations(options = {}) {
|
|
233
234
|
const { fetchImpl = globalThis.fetch, now = new Date() } = options;
|
|
234
235
|
const url = buildBankRateCsvUrl(formatBankRateQueryDate(now));
|
|
235
|
-
const response = await
|
|
236
|
-
if (!response.ok) {
|
|
237
|
-
throw new UkSourceApiError(BANK_RATE_SOURCE_ID, `HTTP ${response.status} reading Bank Rate`);
|
|
238
|
-
}
|
|
236
|
+
const response = await httpGet(BANK_RATE_SOURCE_ID, url, { fetchImpl });
|
|
239
237
|
return parseBankRateCsv(await response.text());
|
|
240
238
|
}
|
|
241
239
|
/** Bank of England Bank Rate readings, keyless, one row per business day. */
|
package/dist/bankRate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bankRate.js","sourceRoot":"","sources":["../src/bankRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"bankRate.js","sourceRoot":"","sources":["../src/bankRate.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,10 @@ export interface CarbonIntensityWindow {
|
|
|
75
75
|
export declare function formatCarbonIntensityInstant(date: Date): string;
|
|
76
76
|
/**
|
|
77
77
|
* Works out the window a build reads: whole UTC days, ending at the start of
|
|
78
|
-
*
|
|
78
|
+
* yesterday, so every reading in it is settled rather than a forecast. The API
|
|
79
|
+
* fills in actual readings for the newest half hours after a short lag, so a
|
|
80
|
+
* window ending at today's start can still hold null actuals just after
|
|
81
|
+
* midnight UTC.
|
|
79
82
|
*
|
|
80
83
|
* @param options - how many days, and the clock to measure back from
|
|
81
84
|
* @returns the window's start and end as ISO instants
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carbonIntensity.d.ts","sourceRoot":"","sources":["../src/carbonIntensity.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAE7D,0CAA0C;AAC1C,eAAO,MAAM,6BAA6B,uCAAuC,CAAC;AAElF,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,iDAA+C,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAEnD,wDAAwD;AACxD,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAEvD,mCAAmC;AACnC,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAWlD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,+DAM/B,CAAC;AAEX,yDAAyD;AACzD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF,0EAA0E;AAC1E,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,KAAK,EAAE,oBAAoB,CAAC;CAC7B;AAED,yDAAyD;AACzD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,YAAY,EAAE,qBAAqB,CAAC;IACpC,4CAA4C;IAC5C,aAAa,EAAE,qBAAqB,CAAC;IACrC,gDAAgD;IAChD,UAAU,EAAE,wBAAwB,EAAE,CAAC;IACvC,mCAAmC;IACnC,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAuBD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE/D;AAED
|
|
1
|
+
{"version":3,"file":"carbonIntensity.d.ts","sourceRoot":"","sources":["../src/carbonIntensity.ts"],"names":[],"mappings":"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"}
|
package/dist/carbonIntensity.js
CHANGED
|
@@ -68,7 +68,10 @@ export function formatCarbonIntensityInstant(date) {
|
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
70
|
* Works out the window a build reads: whole UTC days, ending at the start of
|
|
71
|
-
*
|
|
71
|
+
* yesterday, so every reading in it is settled rather than a forecast. The API
|
|
72
|
+
* fills in actual readings for the newest half hours after a short lag, so a
|
|
73
|
+
* window ending at today's start can still hold null actuals just after
|
|
74
|
+
* midnight UTC.
|
|
72
75
|
*
|
|
73
76
|
* @param options - how many days, and the clock to measure back from
|
|
74
77
|
* @returns the window's start and end as ISO instants
|
|
@@ -82,7 +85,8 @@ export function resolveCarbonIntensityWindow(options = {}) {
|
|
|
82
85
|
throw new UkSourceParseError(CARBON_INTENSITY_SOURCE_ID, `the API refuses a range longer than ${String(CARBON_INTENSITY_MAX_WINDOW_DAYS)} days`);
|
|
83
86
|
}
|
|
84
87
|
const now = options.now ?? new Date();
|
|
85
|
-
const
|
|
88
|
+
const today = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()));
|
|
89
|
+
const to = new Date(today.getTime() - MILLISECONDS_PER_DAY);
|
|
86
90
|
const from = new Date(to.getTime() - windowDays * MILLISECONDS_PER_DAY);
|
|
87
91
|
return { from: formatCarbonIntensityInstant(from), to: formatCarbonIntensityInstant(to) };
|
|
88
92
|
}
|