@usa-open-data-connectors/usa-sources 0.1.3 → 0.1.7
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 +575 -214
- package/dist/apiKey.d.ts +12 -0
- package/dist/apiKey.d.ts.map +1 -0
- package/dist/apiKey.js +18 -0
- package/dist/apiKey.js.map +1 -0
- package/dist/blsSeries.d.ts.map +1 -1
- package/dist/blsSeries.js +2 -4
- package/dist/blsSeries.js.map +1 -1
- package/dist/btsTransportationStats.d.ts.map +1 -1
- package/dist/btsTransportationStats.js +3 -5
- package/dist/btsTransportationStats.js.map +1 -1
- package/dist/callookCallsigns.d.ts +119 -0
- package/dist/callookCallsigns.d.ts.map +1 -0
- package/dist/callookCallsigns.js +264 -0
- package/dist/callookCallsigns.js.map +1 -0
- package/dist/cdcCountyObesity.d.ts.map +1 -1
- package/dist/cdcCountyObesity.js +3 -5
- package/dist/cdcCountyObesity.js.map +1 -1
- package/dist/cdcSocrataCatalogue.d.ts.map +1 -1
- package/dist/cdcSocrataCatalogue.js +3 -5
- package/dist/cdcSocrataCatalogue.js.map +1 -1
- package/dist/cfpbConsumerComplaints.d.ts +2 -0
- package/dist/cfpbConsumerComplaints.d.ts.map +1 -1
- package/dist/cfpbConsumerComplaints.js +12 -12
- package/dist/cfpbConsumerComplaints.js.map +1 -1
- package/dist/clinicalTrialsStudies.d.ts.map +1 -1
- package/dist/clinicalTrialsStudies.js +3 -5
- package/dist/clinicalTrialsStudies.js.map +1 -1
- package/dist/collegeScorecardInstitutions.d.ts +133 -0
- package/dist/collegeScorecardInstitutions.d.ts.map +1 -0
- package/dist/collegeScorecardInstitutions.js +339 -0
- package/dist/collegeScorecardInstitutions.js.map +1 -0
- package/dist/cpscProductRecalls.d.ts.map +1 -1
- package/dist/cpscProductRecalls.js +2 -4
- package/dist/cpscProductRecalls.js.map +1 -1
- package/dist/epaEnvirofactsFacilities.d.ts.map +1 -1
- package/dist/epaEnvirofactsFacilities.js +2 -4
- package/dist/epaEnvirofactsFacilities.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/estimatetaxIncomeTax.d.ts +140 -0
- package/dist/estimatetaxIncomeTax.d.ts.map +1 -0
- package/dist/estimatetaxIncomeTax.js +225 -0
- package/dist/estimatetaxIncomeTax.js.map +1 -0
- package/dist/fdicBankDirectory.d.ts.map +1 -1
- package/dist/fdicBankDirectory.js +2 -4
- package/dist/fdicBankDirectory.js.map +1 -1
- package/dist/femaDisasterDeclarations.d.ts.map +1 -1
- package/dist/femaDisasterDeclarations.js +2 -4
- package/dist/femaDisasterDeclarations.js.map +1 -1
- package/dist/healthdataSocrataCatalogue.d.ts.map +1 -1
- package/dist/healthdataSocrataCatalogue.js +3 -5
- package/dist/healthdataSocrataCatalogue.js.map +1 -1
- package/dist/http.d.ts +40 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +93 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +33 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/ncbiPubmedSearch.d.ts +4 -0
- package/dist/ncbiPubmedSearch.d.ts.map +1 -1
- package/dist/ncbiPubmedSearch.js +10 -4
- package/dist/ncbiPubmedSearch.js.map +1 -1
- package/dist/nceiAnnualTemperature.d.ts.map +1 -1
- package/dist/nceiAnnualTemperature.js +3 -5
- package/dist/nceiAnnualTemperature.js.map +1 -1
- package/dist/nextBusTransitVehicles.d.ts +102 -0
- package/dist/nextBusTransitVehicles.d.ts.map +1 -0
- package/dist/nextBusTransitVehicles.js +171 -0
- package/dist/nextBusTransitVehicles.js.map +1 -0
- package/dist/noaaSeaLevel.d.ts.map +1 -1
- package/dist/noaaSeaLevel.js +2 -4
- package/dist/noaaSeaLevel.js.map +1 -1
- package/dist/nwsPointForecast.d.ts +1 -1
- package/dist/nwsPointForecast.d.ts.map +1 -1
- package/dist/nwsPointForecast.js +7 -6
- package/dist/nwsPointForecast.js.map +1 -1
- package/dist/nycOpenDataCatalogue.d.ts +97 -0
- package/dist/nycOpenDataCatalogue.d.ts.map +1 -0
- package/dist/nycOpenDataCatalogue.js +151 -0
- package/dist/nycOpenDataCatalogue.js.map +1 -0
- package/dist/openFdaFoodRecalls.d.ts.map +1 -1
- package/dist/openFdaFoodRecalls.js +2 -4
- package/dist/openFdaFoodRecalls.js.map +1 -1
- package/dist/publicDataHubHospital.d.ts +116 -0
- package/dist/publicDataHubHospital.d.ts.map +1 -0
- package/dist/publicDataHubHospital.js +175 -0
- package/dist/publicDataHubHospital.js.map +1 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +16 -2
- package/dist/registry.js.map +1 -1
- package/dist/secEdgarFilings.d.ts +1 -1
- package/dist/secEdgarFilings.d.ts.map +1 -1
- package/dist/secEdgarFilings.js +7 -6
- package/dist/secEdgarFilings.js.map +1 -1
- package/dist/treasuryAvgInterestRate.d.ts.map +1 -1
- package/dist/treasuryAvgInterestRate.js +2 -4
- package/dist/treasuryAvgInterestRate.js.map +1 -1
- package/dist/treasuryDebtToPenny.d.ts.map +1 -1
- package/dist/treasuryDebtToPenny.js +2 -4
- package/dist/treasuryDebtToPenny.js.map +1 -1
- package/dist/usaspendingAgencies.d.ts.map +1 -1
- package/dist/usaspendingAgencies.js +3 -5
- package/dist/usaspendingAgencies.js.map +1 -1
- package/dist/usgsEarthquakes.d.ts.map +1 -1
- package/dist/usgsEarthquakes.js +2 -4
- package/dist/usgsEarthquakes.js.map +1 -1
- package/dist/usgsPeakStreamflow.d.ts.map +1 -1
- package/dist/usgsPeakStreamflow.js +3 -5
- package/dist/usgsPeakStreamflow.js.map +1 -1
- package/package.json +7 -4
package/dist/apiKey.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes an optional API key read from configuration or a caller.
|
|
3
|
+
*
|
|
4
|
+
* No US source needs a key today, but the adapter interface accepts one, and a
|
|
5
|
+
* key that is set but empty must not reach a request as an empty parameter or
|
|
6
|
+
* header.
|
|
7
|
+
*
|
|
8
|
+
* @param key - The raw key, or undefined when unset.
|
|
9
|
+
* @returns The trimmed key, or undefined when it is blank.
|
|
10
|
+
*/
|
|
11
|
+
export declare function normalizeSourceApiKey(key: string | undefined): string | undefined;
|
|
12
|
+
//# sourceMappingURL=apiKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiKey.d.ts","sourceRoot":"","sources":["../src/apiKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMjF"}
|
package/dist/apiKey.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes an optional API key read from configuration or a caller.
|
|
3
|
+
*
|
|
4
|
+
* No US source needs a key today, but the adapter interface accepts one, and a
|
|
5
|
+
* key that is set but empty must not reach a request as an empty parameter or
|
|
6
|
+
* header.
|
|
7
|
+
*
|
|
8
|
+
* @param key - The raw key, or undefined when unset.
|
|
9
|
+
* @returns The trimmed key, or undefined when it is blank.
|
|
10
|
+
*/
|
|
11
|
+
export function normalizeSourceApiKey(key) {
|
|
12
|
+
const trimmed = key?.trim();
|
|
13
|
+
if (trimmed === undefined || trimmed === '') {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return trimmed;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=apiKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiKey.js","sourceRoot":"","sources":["../src/apiKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;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/blsSeries.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blsSeries.d.ts","sourceRoot":"","sources":["../src/blsSeries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blsSeries.d.ts","sourceRoot":"","sources":["../src/blsSeries.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,gBAAgB,CAAC;AAEvD,uDAAuD;AACvD,eAAO,MAAM,4BAA4B,8CAA8C,CAAC;AAExF,4CAA4C;AAC5C,eAAO,MAAM,YAAY,qDAAqD,CAAC;AAE/E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAwB5C;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,EAAE,CAiCvE;AAkBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CA+B1F;AAcD;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAAE,GACnF,OAAO,CAAC,SAAS,CAAC,CAepB;AAED,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,SAAS,CAmB3D,CAAC"}
|
package/dist/blsSeries.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { UsSourceApiError, UsSourceParseError } from './errors.js';
|
|
3
|
+
import { httpGet } from './http.js';
|
|
3
4
|
import { readFixtureJson } from './fixtures.js';
|
|
4
5
|
/**
|
|
5
6
|
* The national unemployment rate, seasonally adjusted. Published monthly by
|
|
@@ -126,10 +127,7 @@ export function buildBlsSeries(observations, seriesId) {
|
|
|
126
127
|
/** Reads one ten-year-or-shorter window from the BLS API. */
|
|
127
128
|
async function fetchBlsWindow(seriesId, startYear, endYear, fetchImpl) {
|
|
128
129
|
const url = `${BLS_API_BASE}/${seriesId}?startyear=${startYear}&endyear=${endYear}`;
|
|
129
|
-
const response = await
|
|
130
|
-
if (!response.ok) {
|
|
131
|
-
throw new UsSourceApiError('bls', `HTTP ${response.status} reading series ${seriesId}`);
|
|
132
|
-
}
|
|
130
|
+
const response = await httpGet('bls', url, { fetchImpl });
|
|
133
131
|
return parseBlsObservations(await response.json());
|
|
134
132
|
}
|
|
135
133
|
/**
|
package/dist/blsSeries.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blsSeries.js","sourceRoot":"","sources":["../src/blsSeries.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"blsSeries.js","sourceRoot":"","sources":["../src/blsSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAyBhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,aAAa,CAAC;AAEvD,uDAAuD;AACvD,MAAM,CAAC,MAAM,4BAA4B,GAAG,2CAA2C,CAAC;AAExF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,kDAAkD,CAAC;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAEzD,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;KACnC,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;QAC/C,MAAM,IAAI,gBAAgB,CACxB,KAAK,EACL,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,SAAS;YACX,CAAC;YACD,YAAY,CAAC,IAAI,CAAC;gBAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI;gBACJ,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,YAA8B;IACtD,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,YAA8B,EAAE,QAAgB;IAC7E,MAAM,MAAM,GAAG,gBAAgB,CAC7B,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,CACxE,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,kBAAkB,CAAC,KAAK,EAAE,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,cAAc,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;QACzC,eAAe,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;KAC5C,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,KAAK,UAAU,cAAc,CAC3B,QAAgB,EAChB,SAAiB,EACjB,OAAe,EACf,SAAkC;IAElC,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,QAAQ,cAAc,SAAS,YAAY,OAAO,EAAE,CAAC;IACpF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,OAAO,oBAAoB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,OAAoF;IAEpF,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACxD,MAAM,YAAY,GAAqB,EAAE,CAAC;IAE1C,KACE,IAAI,WAAW,GAAG,SAAS,EAC3B,WAAW,IAAI,OAAO,EACtB,WAAW,IAAI,yBAAyB,EACxC,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,yBAAyB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACjF,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAA6B;IAC9D,EAAE,EAAE,uBAAuB;IAC3B,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,wEAAwE;IACrF,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO,cAAc,CAAC,yBAAyB,EAAE;YAC/C,SAAS,EAAE,OAAO,GAAG,EAAE;YACvB,OAAO;YACP,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;SAC9E,CAAC,CAAC;IACL,CAAC;IACD,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IAC5F,WAAW,EAAE,GAAG,EAAE,CAChB,cAAc,CACZ,oBAAoB,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,EACnE,yBAAyB,CAC1B;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btsTransportationStats.d.ts","sourceRoot":"","sources":["../src/btsTransportationStats.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"btsTransportationStats.d.ts","sourceRoot":"","sources":["../src/btsTransportationStats.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,0DAA0D;AAC1D,eAAO,MAAM,kCAAkC,6BAA6B,CAAC;AAE7E,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,4BAA4B,EAAE,MAAM,CAAC;IACrC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,4DAA4D;AAC5D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,0BAA0B;IACzC,gDAAgD;IAChD,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,WAAW,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,UAAU,EAAE,yBAAyB,EAAE,CAAC;CACzC;AAED,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AAEvF,oDAAoD;AACpD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAkDjD;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,OAAO,GAAG,0BAA0B,CAuC/F;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAOtC;AAED,+FAA+F;AAC/F,eAAO,MAAM,6BAA6B,EAAE,aAAa,CAAC,0BAA0B,CAanF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { UsSourceParseError } from './errors.js';
|
|
3
|
+
import { httpGet } from './http.js';
|
|
3
4
|
import { readFixtureJson } from './fixtures.js';
|
|
4
5
|
/** Adapter id for the bts-transportation-stats source. */
|
|
5
6
|
export const BTS_TRANSPORTATION_STATS_SOURCE_ID = 'bts-transportation-stats';
|
|
@@ -113,10 +114,7 @@ export function parseBtsTransportationStatsPayload(payload) {
|
|
|
113
114
|
export async function fetchBtsTransportationStats(options) {
|
|
114
115
|
const fetchImpl = options?.fetchImpl ?? globalThis.fetch;
|
|
115
116
|
const url = buildBtsTransportationStatsUrl(options?.limit === undefined ? {} : { limit: options.limit });
|
|
116
|
-
const response = await
|
|
117
|
-
if (!response.ok) {
|
|
118
|
-
throw new UsSourceApiError(BTS_TRANSPORTATION_STATS_SOURCE_ID, `HTTP ${response.status} reading the catalogue`);
|
|
119
|
-
}
|
|
117
|
+
const response = await httpGet(BTS_TRANSPORTATION_STATS_SOURCE_ID, url, { fetchImpl });
|
|
120
118
|
return parseBtsTransportationStatsPayload(await response.json());
|
|
121
119
|
}
|
|
122
120
|
/** Bureau of Transportation Statistics catalogue of datasets, charts, and stories, keyless. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btsTransportationStats.js","sourceRoot":"","sources":["../src/btsTransportationStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"btsTransportationStats.js","sourceRoot":"","sources":["../src/btsTransportationStats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { UsDataAdapter } from './types.js';
|
|
2
|
+
/** Adapter id for the Callook.info amateur radio callsign source. */
|
|
3
|
+
export declare const CALLOOK_CALLSIGNS_SOURCE_ID = "callook-callsigns";
|
|
4
|
+
/** Base URL for the Callook.info callsign lookup service. */
|
|
5
|
+
export declare const CALLOOK_API_BASE = "https://callook.info";
|
|
6
|
+
/**
|
|
7
|
+
* One callsign for each of the ten US amateur radio call districts.
|
|
8
|
+
*
|
|
9
|
+
* Callook answers one callsign per request rather than exposing a bulk list.
|
|
10
|
+
* The W1ABC through W0ABC callsigns give the same lookup a ten-district
|
|
11
|
+
* sample, so the adapter can show how the licence file varies across the
|
|
12
|
+
* country instead of reporting a single record.
|
|
13
|
+
*/
|
|
14
|
+
export declare const CALLOOK_DISTRICT_CALLSIGNS: readonly string[];
|
|
15
|
+
/** The three states Callook uses when a lookup has no licence record. */
|
|
16
|
+
export type CallookLookupStatus = 'VALID' | 'INVALID' | 'UPDATING';
|
|
17
|
+
/** One callsign lookup, with the licence fields flattened into plain names. */
|
|
18
|
+
export interface CallookCallsign {
|
|
19
|
+
/** Whether Callook found a current licence for the callsign. */
|
|
20
|
+
status: CallookLookupStatus;
|
|
21
|
+
/** Current callsign, or an empty string when the lookup found no licence. */
|
|
22
|
+
callsign: string;
|
|
23
|
+
/** Licence type, e.g. "CLUB" or "PERSON", or an empty string when none. */
|
|
24
|
+
licenseType: string;
|
|
25
|
+
/** Operator class, e.g. "GENERAL" or "EXTRA", or an empty string when none. */
|
|
26
|
+
operatorClass: string;
|
|
27
|
+
/** Previous callsign held by the same licensee, or an empty string. */
|
|
28
|
+
previousCallsign: string;
|
|
29
|
+
/** Previous operator class held by the same licensee, or an empty string. */
|
|
30
|
+
previousOperatorClass: string;
|
|
31
|
+
/** Name of the licensee, or the club the licence belongs to. */
|
|
32
|
+
licenseeName: string;
|
|
33
|
+
/** Callsign of the club trustee, or an empty string for a personal licence. */
|
|
34
|
+
trusteeCallsign: string;
|
|
35
|
+
/** Name of the club trustee, or an empty string for a personal licence. */
|
|
36
|
+
trusteeName: string;
|
|
37
|
+
/** First line of the mailing address on the FCC record. */
|
|
38
|
+
addressLine1: string;
|
|
39
|
+
/** Second line of the mailing address, usually city, state, and ZIP code. */
|
|
40
|
+
addressLine2: string;
|
|
41
|
+
/** Attention line on the mailing address, or an empty string. */
|
|
42
|
+
attention: string;
|
|
43
|
+
/** Approximate latitude Callook calculated from the address, or null. */
|
|
44
|
+
latitude: number | null;
|
|
45
|
+
/** Approximate longitude Callook calculated from the address, or null. */
|
|
46
|
+
longitude: number | null;
|
|
47
|
+
/** Maidenhead grid square Callook calculated from the coordinates, or empty. */
|
|
48
|
+
gridsquare: string;
|
|
49
|
+
/** Licence grant date as YYYY-MM-DD, or null when Callook reports none. */
|
|
50
|
+
grantDate: string | null;
|
|
51
|
+
/** Licence expiry date as YYYY-MM-DD, or null when Callook reports none. */
|
|
52
|
+
expiryDate: string | null;
|
|
53
|
+
/** Date of the last FCC action on the licence, or null. */
|
|
54
|
+
lastActionDate: string | null;
|
|
55
|
+
/** FCC Registration Number, or an empty string. */
|
|
56
|
+
frn: string;
|
|
57
|
+
/** Link to the licence in the FCC ULS search, or an empty string. */
|
|
58
|
+
ulsUrl: string;
|
|
59
|
+
/** Two-letter state parsed from the mailing address, or an empty string. */
|
|
60
|
+
stateAbbr: string;
|
|
61
|
+
/** US call district digit taken from the callsign, or an empty string. */
|
|
62
|
+
callDistrict: string;
|
|
63
|
+
}
|
|
64
|
+
/** One label and how many records carry it. */
|
|
65
|
+
export interface CallookLabelCount {
|
|
66
|
+
label: string;
|
|
67
|
+
count: number;
|
|
68
|
+
}
|
|
69
|
+
/** A batch of callsign lookups, folded for a story. */
|
|
70
|
+
export interface CallookCallsignDirectory {
|
|
71
|
+
/** Every lookup in the batch, valid or not, in the order it was requested. */
|
|
72
|
+
callsigns: CallookCallsign[];
|
|
73
|
+
callsignCount: number;
|
|
74
|
+
validCount: number;
|
|
75
|
+
invalidCount: number;
|
|
76
|
+
updatingCount: number;
|
|
77
|
+
/** Licence types, most records first, ties broken by label. */
|
|
78
|
+
licenseTypeCounts: CallookLabelCount[];
|
|
79
|
+
/** Operator classes, most records first, ties broken by label. */
|
|
80
|
+
operatorClassCounts: CallookLabelCount[];
|
|
81
|
+
/** How many different call districts the valid records cover. */
|
|
82
|
+
callDistrictCount: number;
|
|
83
|
+
/** Valid record with the earliest expiry date, or null when none has one. */
|
|
84
|
+
soonestExpiry: CallookCallsign | null;
|
|
85
|
+
/** Valid record with the latest expiry date, or null when none has one. */
|
|
86
|
+
latestExpiry: CallookCallsign | null;
|
|
87
|
+
}
|
|
88
|
+
/** Builds the request URL for one callsign lookup. */
|
|
89
|
+
export declare function buildCallookCallsignUrl(callsign: string): string;
|
|
90
|
+
/** Folds a list of callsign records into the shape the page reads. */
|
|
91
|
+
export declare function buildCallookCallsignDirectory(callsigns: CallookCallsign[]): CallookCallsignDirectory;
|
|
92
|
+
/**
|
|
93
|
+
* Parses a batch of Callook lookup responses.
|
|
94
|
+
*
|
|
95
|
+
* A lookup with status INVALID or UPDATING is a valid answer from the service
|
|
96
|
+
* and stays in `callsigns`, but it carries no licence fields and does not
|
|
97
|
+
* contribute to the counts. A VALID record without a current callsign is a
|
|
98
|
+
* changed shape and stops the parse.
|
|
99
|
+
*
|
|
100
|
+
* @param payload - an array of JSON bodies, one per callsign lookup
|
|
101
|
+
* @returns the records and the folded counts
|
|
102
|
+
*/
|
|
103
|
+
export declare function parseCallookCallsignsPayload(payload: unknown): CallookCallsignDirectory;
|
|
104
|
+
/**
|
|
105
|
+
* Reads one Callook lookup for each callsign.
|
|
106
|
+
*
|
|
107
|
+
* The service answers one callsign per request and needs no key. When the
|
|
108
|
+
* caller names no callsigns, the adapter reads the ten-district sample.
|
|
109
|
+
*
|
|
110
|
+
* @param options - an optional callsign list and fetch stub
|
|
111
|
+
* @returns the records and the folded counts
|
|
112
|
+
*/
|
|
113
|
+
export declare function fetchCallookCallsigns(options?: {
|
|
114
|
+
callsigns?: readonly string[];
|
|
115
|
+
fetchImpl?: typeof globalThis.fetch;
|
|
116
|
+
}): Promise<CallookCallsignDirectory>;
|
|
117
|
+
/** Callook.info US amateur radio callsigns, one record per lookup, keyless. */
|
|
118
|
+
export declare const callookCallsignsAdapter: UsDataAdapter<CallookCallsignDirectory>;
|
|
119
|
+
//# sourceMappingURL=callookCallsigns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callookCallsigns.d.ts","sourceRoot":"","sources":["../src/callookCallsigns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { UsSourceParseError } from './errors.js';
|
|
3
|
+
import { httpGet } from './http.js';
|
|
4
|
+
import { readFixtureJson } from './fixtures.js';
|
|
5
|
+
/** Adapter id for the Callook.info amateur radio callsign source. */
|
|
6
|
+
export const CALLOOK_CALLSIGNS_SOURCE_ID = 'callook-callsigns';
|
|
7
|
+
/** Base URL for the Callook.info callsign lookup service. */
|
|
8
|
+
export const CALLOOK_API_BASE = 'https://callook.info';
|
|
9
|
+
/**
|
|
10
|
+
* One callsign for each of the ten US amateur radio call districts.
|
|
11
|
+
*
|
|
12
|
+
* Callook answers one callsign per request rather than exposing a bulk list.
|
|
13
|
+
* The W1ABC through W0ABC callsigns give the same lookup a ten-district
|
|
14
|
+
* sample, so the adapter can show how the licence file varies across the
|
|
15
|
+
* country instead of reporting a single record.
|
|
16
|
+
*/
|
|
17
|
+
export const CALLOOK_DISTRICT_CALLSIGNS = [
|
|
18
|
+
'W1ABC',
|
|
19
|
+
'W2ABC',
|
|
20
|
+
'W3ABC',
|
|
21
|
+
'W4ABC',
|
|
22
|
+
'W5ABC',
|
|
23
|
+
'W6ABC',
|
|
24
|
+
'W7ABC',
|
|
25
|
+
'W8ABC',
|
|
26
|
+
'W9ABC',
|
|
27
|
+
'W0ABC',
|
|
28
|
+
];
|
|
29
|
+
/** Committed snapshot, so a build works when Callook is unreachable. */
|
|
30
|
+
const CALLOOK_CALLSIGNS_FIXTURE_FILENAME = 'callook-callsigns-2026-10-21.json';
|
|
31
|
+
/** Shape of a US amateur radio callsign, without spaces or punctuation. */
|
|
32
|
+
const CALLSIGN_PATTERN = /^[A-Z0-9]{3,10}$/;
|
|
33
|
+
/** Shape of the dates Callook writes, e.g. "03/24/2036". */
|
|
34
|
+
const CALLOOK_DATE_PATTERN = /^(\d{2})\/(\d{2})\/(\d{4})$/;
|
|
35
|
+
/** Shape of a US mailing address line ending in a state and ZIP code. */
|
|
36
|
+
const STATE_AND_ZIP_PATTERN = /\b([A-Z]{2})\s+\d{5}(?:-\d{4})?\s*$/;
|
|
37
|
+
const CALLOOK_ADDRESS_SCHEMA = z.object({
|
|
38
|
+
line1: z.string().optional(),
|
|
39
|
+
line2: z.string().optional(),
|
|
40
|
+
attn: z.string().optional(),
|
|
41
|
+
});
|
|
42
|
+
const CALLOOK_LOCATION_SCHEMA = z.object({
|
|
43
|
+
latitude: z.string().optional(),
|
|
44
|
+
longitude: z.string().optional(),
|
|
45
|
+
gridsquare: z.string().optional(),
|
|
46
|
+
});
|
|
47
|
+
const CALLOOK_OTHER_INFO_SCHEMA = z.object({
|
|
48
|
+
grantDate: z.string().optional(),
|
|
49
|
+
expiryDate: z.string().optional(),
|
|
50
|
+
lastActionDate: z.string().optional(),
|
|
51
|
+
frn: z.string().optional(),
|
|
52
|
+
ulsUrl: z.string().optional(),
|
|
53
|
+
});
|
|
54
|
+
const CALLOOK_NAME_SCHEMA = z.object({
|
|
55
|
+
callsign: z.string().optional(),
|
|
56
|
+
operClass: z.string().optional(),
|
|
57
|
+
name: z.string().optional(),
|
|
58
|
+
});
|
|
59
|
+
const CALLOOK_CALLSIGN_SCHEMA = z.object({
|
|
60
|
+
status: z.enum(['VALID', 'INVALID', 'UPDATING']),
|
|
61
|
+
type: z.string().optional(),
|
|
62
|
+
current: CALLOOK_NAME_SCHEMA.optional(),
|
|
63
|
+
previous: CALLOOK_NAME_SCHEMA.optional(),
|
|
64
|
+
trustee: CALLOOK_NAME_SCHEMA.optional(),
|
|
65
|
+
name: z.string().optional(),
|
|
66
|
+
address: CALLOOK_ADDRESS_SCHEMA.optional(),
|
|
67
|
+
location: CALLOOK_LOCATION_SCHEMA.optional(),
|
|
68
|
+
otherInfo: CALLOOK_OTHER_INFO_SCHEMA.optional(),
|
|
69
|
+
});
|
|
70
|
+
const CALLOOK_CALLSIGNS_SCHEMA = z.array(CALLOOK_CALLSIGN_SCHEMA);
|
|
71
|
+
/** Builds the request URL for one callsign lookup. */
|
|
72
|
+
export function buildCallookCallsignUrl(callsign) {
|
|
73
|
+
const normalized = callsign.trim().toUpperCase();
|
|
74
|
+
if (!CALLSIGN_PATTERN.test(normalized)) {
|
|
75
|
+
throw new UsSourceParseError(CALLOOK_CALLSIGNS_SOURCE_ID, `A callsign must be 3 to 10 letters or digits: ${callsign}`);
|
|
76
|
+
}
|
|
77
|
+
return `${CALLOOK_API_BASE}/${normalized}/json`;
|
|
78
|
+
}
|
|
79
|
+
/** Converts Callook's MM/DD/YYYY date to YYYY-MM-DD, or null when unreadable. */
|
|
80
|
+
function toIsoDate(value) {
|
|
81
|
+
if (value === undefined || value.trim() === '') {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
const match = CALLOOK_DATE_PATTERN.exec(value.trim());
|
|
85
|
+
if (match === null) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
const [, month, day, year] = match;
|
|
89
|
+
return `${year}-${month}-${day}`;
|
|
90
|
+
}
|
|
91
|
+
/** Reads a numeric coordinate from Callook's string field, or null. */
|
|
92
|
+
function toCoordinate(value) {
|
|
93
|
+
if (value === undefined || value.trim() === '') {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
const coordinate = Number(value);
|
|
97
|
+
return Number.isFinite(coordinate) ? coordinate : null;
|
|
98
|
+
}
|
|
99
|
+
/** Reads the two-letter state from the end of a mailing address line. */
|
|
100
|
+
function toStateAbbr(addressLine2) {
|
|
101
|
+
return STATE_AND_ZIP_PATTERN.exec(addressLine2)?.[1] ?? '';
|
|
102
|
+
}
|
|
103
|
+
/** Reads the first digit in a callsign as its US call district. */
|
|
104
|
+
function toCallDistrict(callsign) {
|
|
105
|
+
return /\d/.exec(callsign)?.[0] ?? '';
|
|
106
|
+
}
|
|
107
|
+
/** Builds an empty record for a lookup that found no current licence. */
|
|
108
|
+
function emptyCallookCallsign(status) {
|
|
109
|
+
return {
|
|
110
|
+
status,
|
|
111
|
+
callsign: '',
|
|
112
|
+
licenseType: '',
|
|
113
|
+
operatorClass: '',
|
|
114
|
+
previousCallsign: '',
|
|
115
|
+
previousOperatorClass: '',
|
|
116
|
+
licenseeName: '',
|
|
117
|
+
trusteeCallsign: '',
|
|
118
|
+
trusteeName: '',
|
|
119
|
+
addressLine1: '',
|
|
120
|
+
addressLine2: '',
|
|
121
|
+
attention: '',
|
|
122
|
+
latitude: null,
|
|
123
|
+
longitude: null,
|
|
124
|
+
gridsquare: '',
|
|
125
|
+
grantDate: null,
|
|
126
|
+
expiryDate: null,
|
|
127
|
+
lastActionDate: null,
|
|
128
|
+
frn: '',
|
|
129
|
+
ulsUrl: '',
|
|
130
|
+
stateAbbr: '',
|
|
131
|
+
callDistrict: '',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/** Counts labels in a record list, most records first, ties by label. */
|
|
135
|
+
function countLabels(labels) {
|
|
136
|
+
const counts = new Map();
|
|
137
|
+
for (const label of labels) {
|
|
138
|
+
if (label !== '') {
|
|
139
|
+
counts.set(label, (counts.get(label) ?? 0) + 1);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return [...counts.entries()]
|
|
143
|
+
.sort(([leftLabel, leftCount], [rightLabel, rightCount]) => leftCount === rightCount ? leftLabel.localeCompare(rightLabel) : rightCount - leftCount)
|
|
144
|
+
.map(([label, count]) => ({ label, count }));
|
|
145
|
+
}
|
|
146
|
+
/** Picks the valid record with the earliest or latest date in one field. */
|
|
147
|
+
function edgeByDate(callsigns, direction) {
|
|
148
|
+
let edge = null;
|
|
149
|
+
let edgeDate = null;
|
|
150
|
+
for (const callsign of callsigns) {
|
|
151
|
+
const value = callsign.expiryDate;
|
|
152
|
+
if (value === null) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
if (edgeDate === null || (direction === 'earliest' ? value < edgeDate : value > edgeDate)) {
|
|
156
|
+
edge = callsign;
|
|
157
|
+
edgeDate = value;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return edge;
|
|
161
|
+
}
|
|
162
|
+
/** Folds a list of callsign records into the shape the page reads. */
|
|
163
|
+
export function buildCallookCallsignDirectory(callsigns) {
|
|
164
|
+
const valid = callsigns.filter((callsign) => callsign.status === 'VALID');
|
|
165
|
+
return {
|
|
166
|
+
callsigns,
|
|
167
|
+
callsignCount: callsigns.length,
|
|
168
|
+
validCount: valid.length,
|
|
169
|
+
invalidCount: callsigns.filter((callsign) => callsign.status === 'INVALID').length,
|
|
170
|
+
updatingCount: callsigns.filter((callsign) => callsign.status === 'UPDATING').length,
|
|
171
|
+
licenseTypeCounts: countLabels(valid.map((callsign) => callsign.licenseType)),
|
|
172
|
+
operatorClassCounts: countLabels(valid.map((callsign) => callsign.operatorClass)),
|
|
173
|
+
callDistrictCount: new Set(valid.map((callsign) => callsign.callDistrict).filter((district) => district !== '')).size,
|
|
174
|
+
soonestExpiry: edgeByDate(valid, 'earliest'),
|
|
175
|
+
latestExpiry: edgeByDate(valid, 'latest'),
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Parses a batch of Callook lookup responses.
|
|
180
|
+
*
|
|
181
|
+
* A lookup with status INVALID or UPDATING is a valid answer from the service
|
|
182
|
+
* and stays in `callsigns`, but it carries no licence fields and does not
|
|
183
|
+
* contribute to the counts. A VALID record without a current callsign is a
|
|
184
|
+
* changed shape and stops the parse.
|
|
185
|
+
*
|
|
186
|
+
* @param payload - an array of JSON bodies, one per callsign lookup
|
|
187
|
+
* @returns the records and the folded counts
|
|
188
|
+
*/
|
|
189
|
+
export function parseCallookCallsignsPayload(payload) {
|
|
190
|
+
const parsed = CALLOOK_CALLSIGNS_SCHEMA.safeParse(payload);
|
|
191
|
+
if (!parsed.success) {
|
|
192
|
+
throw new UsSourceParseError(CALLOOK_CALLSIGNS_SOURCE_ID, parsed.error.message);
|
|
193
|
+
}
|
|
194
|
+
if (parsed.data.length === 0) {
|
|
195
|
+
throw new UsSourceParseError(CALLOOK_CALLSIGNS_SOURCE_ID, 'The response carried no lookups');
|
|
196
|
+
}
|
|
197
|
+
const callsigns = parsed.data.map((record) => {
|
|
198
|
+
if (record.status !== 'VALID') {
|
|
199
|
+
return emptyCallookCallsign(record.status);
|
|
200
|
+
}
|
|
201
|
+
const currentCallsign = record.current?.callsign;
|
|
202
|
+
if (currentCallsign === undefined || currentCallsign === '') {
|
|
203
|
+
throw new UsSourceParseError(CALLOOK_CALLSIGNS_SOURCE_ID, 'A valid lookup arrived without a current callsign');
|
|
204
|
+
}
|
|
205
|
+
const addressLine2 = record.address?.line2 ?? '';
|
|
206
|
+
return {
|
|
207
|
+
status: record.status,
|
|
208
|
+
callsign: currentCallsign,
|
|
209
|
+
licenseType: record.type ?? '',
|
|
210
|
+
operatorClass: record.current?.operClass ?? '',
|
|
211
|
+
previousCallsign: record.previous?.callsign ?? '',
|
|
212
|
+
previousOperatorClass: record.previous?.operClass ?? '',
|
|
213
|
+
licenseeName: record.name ?? '',
|
|
214
|
+
trusteeCallsign: record.trustee?.callsign ?? '',
|
|
215
|
+
trusteeName: record.trustee?.name ?? '',
|
|
216
|
+
addressLine1: record.address?.line1 ?? '',
|
|
217
|
+
addressLine2,
|
|
218
|
+
attention: record.address?.attn ?? '',
|
|
219
|
+
latitude: toCoordinate(record.location?.latitude),
|
|
220
|
+
longitude: toCoordinate(record.location?.longitude),
|
|
221
|
+
gridsquare: record.location?.gridsquare ?? '',
|
|
222
|
+
grantDate: toIsoDate(record.otherInfo?.grantDate),
|
|
223
|
+
expiryDate: toIsoDate(record.otherInfo?.expiryDate),
|
|
224
|
+
lastActionDate: toIsoDate(record.otherInfo?.lastActionDate),
|
|
225
|
+
frn: record.otherInfo?.frn ?? '',
|
|
226
|
+
ulsUrl: record.otherInfo?.ulsUrl ?? '',
|
|
227
|
+
stateAbbr: toStateAbbr(addressLine2),
|
|
228
|
+
callDistrict: toCallDistrict(currentCallsign),
|
|
229
|
+
};
|
|
230
|
+
});
|
|
231
|
+
return buildCallookCallsignDirectory(callsigns);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Reads one Callook lookup for each callsign.
|
|
235
|
+
*
|
|
236
|
+
* The service answers one callsign per request and needs no key. When the
|
|
237
|
+
* caller names no callsigns, the adapter reads the ten-district sample.
|
|
238
|
+
*
|
|
239
|
+
* @param options - an optional callsign list and fetch stub
|
|
240
|
+
* @returns the records and the folded counts
|
|
241
|
+
*/
|
|
242
|
+
export async function fetchCallookCallsigns(options) {
|
|
243
|
+
const callsigns = options?.callsigns ?? CALLOOK_DISTRICT_CALLSIGNS;
|
|
244
|
+
if (callsigns.length === 0) {
|
|
245
|
+
throw new UsSourceParseError(CALLOOK_CALLSIGNS_SOURCE_ID, 'No callsigns were requested');
|
|
246
|
+
}
|
|
247
|
+
const fetchImpl = options?.fetchImpl ?? globalThis.fetch;
|
|
248
|
+
const payloads = await Promise.all(callsigns.map(async (callsign) => {
|
|
249
|
+
const response = await httpGet(CALLOOK_CALLSIGNS_SOURCE_ID, buildCallookCallsignUrl(callsign), { fetchImpl });
|
|
250
|
+
return (await response.json());
|
|
251
|
+
}));
|
|
252
|
+
return parseCallookCallsignsPayload(payloads);
|
|
253
|
+
}
|
|
254
|
+
/** Callook.info US amateur radio callsigns, one record per lookup, keyless. */
|
|
255
|
+
export const callookCallsignsAdapter = {
|
|
256
|
+
id: CALLOOK_CALLSIGNS_SOURCE_ID,
|
|
257
|
+
name: 'Callook callsigns',
|
|
258
|
+
auth: 'none',
|
|
259
|
+
description: 'US amateur radio callsign records from the FCC licence file, looked up through Callook.info, with the licence class, address, location, and expiry for each callsign.',
|
|
260
|
+
fetchLive: async (options) => fetchCallookCallsigns(options?.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }),
|
|
261
|
+
parse: (payload) => parseCallookCallsignsPayload(payload),
|
|
262
|
+
loadFixture: () => parseCallookCallsignsPayload(readFixtureJson(CALLOOK_CALLSIGNS_FIXTURE_FILENAME)),
|
|
263
|
+
};
|
|
264
|
+
//# sourceMappingURL=callookCallsigns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callookCallsigns.js","sourceRoot":"","sources":["../src/callookCallsigns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdcCountyObesity.d.ts","sourceRoot":"","sources":["../src/cdcCountyObesity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cdcCountyObesity.d.ts","sourceRoot":"","sources":["../src/cdcCountyObesity.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,6EAA6E;AAC7E,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,gEAAgE;IAChE,QAAQ,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC5C,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,wBAAwB,CAAC;IACjC,OAAO,EAAE,wBAAwB,CAAC;IAClC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,iDAAiD,CAAC;AAEzF,kDAAkD;AAClD,eAAO,MAAM,6BAA6B,YAAY,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,WAAW,CAAC;AAEvD,4DAA4D;AAC5D,eAAO,MAAM,8BAA8B,OAAO,CAAC;AAEnD,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,OAAO,CAAC;AA0BhD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAOhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,wBAAwB,EAAE,GACnC,wBAAwB,EAAE,CAU5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,uBAAuB,CAoCtF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,uBAAuB,GAAG,mBAAmB,CAc9F;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,CAAC,EAAE;IACpD,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAInC;AAED,oDAAoD;AACpD,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,mBAAmB,CAiBtE,CAAC"}
|
package/dist/cdcCountyObesity.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { UsSourceParseError } from './errors.js';
|
|
3
|
+
import { httpGet } from './http.js';
|
|
3
4
|
import { readFixtureJson } from './fixtures.js';
|
|
4
5
|
/**
|
|
5
6
|
* Socrata resource for the CDC PLACES county release this adapter reads.
|
|
@@ -159,10 +160,7 @@ export function buildCdcCountyObesitySet(payload) {
|
|
|
159
160
|
*/
|
|
160
161
|
export async function fetchCdcCountyObesity(options) {
|
|
161
162
|
const fetchImpl = options?.fetchImpl ?? globalThis.fetch;
|
|
162
|
-
const response = await
|
|
163
|
-
if (!response.ok) {
|
|
164
|
-
throw new UsSourceApiError('cdc', `HTTP ${response.status} reading the county estimates`);
|
|
165
|
-
}
|
|
163
|
+
const response = await httpGet('cdc', buildCdcCountyObesityUrl(), { fetchImpl });
|
|
166
164
|
return parseCdcCountyObesityPayload(await response.json());
|
|
167
165
|
}
|
|
168
166
|
/** CDC PLACES county obesity estimates, keyless. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdcCountyObesity.js","sourceRoot":"","sources":["../src/cdcCountyObesity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cdcCountyObesity.js","sourceRoot":"","sources":["../src/cdcCountyObesity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdcSocrataCatalogue.d.ts","sourceRoot":"","sources":["../src/cdcSocrataCatalogue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cdcSocrataCatalogue.d.ts","sourceRoot":"","sources":["../src/cdcSocrataCatalogue.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,uDAAuD;AACvD,eAAO,MAAM,+BAA+B,0BAA0B,CAAC;AAEvE,0DAA0D;AAC1D,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,4BAA4B,EAAE,MAAM,CAAC;IACrC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,WAAW,EAAE,wBAAwB,CAAC;IACtC;;;OAGG;IACH,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACvC;AAED,8CAA8C;AAC9C,eAAO,MAAM,8BAA8B,wCAAwC,CAAC;AAEpF,oDAAoD;AACpD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAkD9C;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKhF;AAED;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAuCrF;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAO/B;AAED,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,mBAAmB,CAazE,CAAC"}
|