@usa-open-data-connectors/usa-sources 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +229 -32
  2. package/dist/btsTransportationStats.d.ts +4 -0
  3. package/dist/btsTransportationStats.d.ts.map +1 -1
  4. package/dist/btsTransportationStats.js +3 -0
  5. package/dist/btsTransportationStats.js.map +1 -1
  6. package/dist/californiaOpenDataCatalogue.d.ts +84 -0
  7. package/dist/californiaOpenDataCatalogue.d.ts.map +1 -0
  8. package/dist/californiaOpenDataCatalogue.js +153 -0
  9. package/dist/californiaOpenDataCatalogue.js.map +1 -0
  10. package/dist/cdcSocrataCatalogue.d.ts +4 -0
  11. package/dist/cdcSocrataCatalogue.d.ts.map +1 -1
  12. package/dist/cdcSocrataCatalogue.js +3 -0
  13. package/dist/cdcSocrataCatalogue.js.map +1 -1
  14. package/dist/chicagoOpenDataCatalogue.d.ts +91 -0
  15. package/dist/chicagoOpenDataCatalogue.d.ts.map +1 -0
  16. package/dist/chicagoOpenDataCatalogue.js +133 -0
  17. package/dist/chicagoOpenDataCatalogue.js.map +1 -0
  18. package/dist/coloradoOpenDataCatalogue.d.ts +42 -0
  19. package/dist/coloradoOpenDataCatalogue.d.ts.map +1 -0
  20. package/dist/coloradoOpenDataCatalogue.js +45 -0
  21. package/dist/coloradoOpenDataCatalogue.js.map +1 -0
  22. package/dist/fccSocrataCatalogue.d.ts +91 -0
  23. package/dist/fccSocrataCatalogue.d.ts.map +1 -0
  24. package/dist/fccSocrataCatalogue.js +133 -0
  25. package/dist/fccSocrataCatalogue.js.map +1 -0
  26. package/dist/federalRegisterDocuments.d.ts +78 -0
  27. package/dist/federalRegisterDocuments.d.ts.map +1 -0
  28. package/dist/federalRegisterDocuments.js +119 -0
  29. package/dist/federalRegisterDocuments.js.map +1 -0
  30. package/dist/healthdataSocrataCatalogue.d.ts +4 -0
  31. package/dist/healthdataSocrataCatalogue.d.ts.map +1 -1
  32. package/dist/healthdataSocrataCatalogue.js +3 -0
  33. package/dist/healthdataSocrataCatalogue.js.map +1 -1
  34. package/dist/http.d.ts +14 -0
  35. package/dist/http.d.ts.map +1 -1
  36. package/dist/http.js +29 -1
  37. package/dist/http.js.map +1 -1
  38. package/dist/illinoisOpenDataCatalogue.d.ts +42 -0
  39. package/dist/illinoisOpenDataCatalogue.d.ts.map +1 -0
  40. package/dist/illinoisOpenDataCatalogue.js +45 -0
  41. package/dist/illinoisOpenDataCatalogue.js.map +1 -0
  42. package/dist/index.d.ts +76 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +38 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/losAngelesOpenDataCatalogue.d.ts +42 -0
  47. package/dist/losAngelesOpenDataCatalogue.d.ts.map +1 -0
  48. package/dist/losAngelesOpenDataCatalogue.js +48 -0
  49. package/dist/losAngelesOpenDataCatalogue.js.map +1 -0
  50. package/dist/michiganOpenDataCatalogue.d.ts +42 -0
  51. package/dist/michiganOpenDataCatalogue.d.ts.map +1 -0
  52. package/dist/michiganOpenDataCatalogue.js +45 -0
  53. package/dist/michiganOpenDataCatalogue.js.map +1 -0
  54. package/dist/newJerseyOpenDataCatalogue.d.ts +42 -0
  55. package/dist/newJerseyOpenDataCatalogue.d.ts.map +1 -0
  56. package/dist/newJerseyOpenDataCatalogue.js +48 -0
  57. package/dist/newJerseyOpenDataCatalogue.js.map +1 -0
  58. package/dist/nextBusTransitVehicles.d.ts.map +1 -1
  59. package/dist/nextBusTransitVehicles.js +14 -3
  60. package/dist/nextBusTransitVehicles.js.map +1 -1
  61. package/dist/nhtsaVehicleModels.d.ts +74 -0
  62. package/dist/nhtsaVehicleModels.d.ts.map +1 -0
  63. package/dist/nhtsaVehicleModels.js +139 -0
  64. package/dist/nhtsaVehicleModels.js.map +1 -0
  65. package/dist/nihReporterProjects.d.ts +98 -0
  66. package/dist/nihReporterProjects.d.ts.map +1 -0
  67. package/dist/nihReporterProjects.js +188 -0
  68. package/dist/nihReporterProjects.js.map +1 -0
  69. package/dist/nwsPointForecast.d.ts.map +1 -1
  70. package/dist/nwsPointForecast.js +13 -2
  71. package/dist/nwsPointForecast.js.map +1 -1
  72. package/dist/nyStateOpenDataCatalogue.d.ts +91 -0
  73. package/dist/nyStateOpenDataCatalogue.d.ts.map +1 -0
  74. package/dist/nyStateOpenDataCatalogue.js +133 -0
  75. package/dist/nyStateOpenDataCatalogue.js.map +1 -0
  76. package/dist/nycOpenDataCatalogue.d.ts +4 -0
  77. package/dist/nycOpenDataCatalogue.d.ts.map +1 -1
  78. package/dist/nycOpenDataCatalogue.js +3 -0
  79. package/dist/nycOpenDataCatalogue.js.map +1 -1
  80. package/dist/oregonOpenDataCatalogue.d.ts +42 -0
  81. package/dist/oregonOpenDataCatalogue.d.ts.map +1 -0
  82. package/dist/oregonOpenDataCatalogue.js +45 -0
  83. package/dist/oregonOpenDataCatalogue.js.map +1 -0
  84. package/dist/pennsylvaniaOpenDataCatalogue.d.ts +42 -0
  85. package/dist/pennsylvaniaOpenDataCatalogue.d.ts.map +1 -0
  86. package/dist/pennsylvaniaOpenDataCatalogue.js +48 -0
  87. package/dist/pennsylvaniaOpenDataCatalogue.js.map +1 -0
  88. package/dist/registry.d.ts +2 -1
  89. package/dist/registry.d.ts.map +1 -1
  90. package/dist/registry.js +51 -3
  91. package/dist/registry.js.map +1 -1
  92. package/dist/sanFranciscoOpenDataCatalogue.d.ts +42 -0
  93. package/dist/sanFranciscoOpenDataCatalogue.d.ts.map +1 -0
  94. package/dist/sanFranciscoOpenDataCatalogue.js +48 -0
  95. package/dist/sanFranciscoOpenDataCatalogue.js.map +1 -0
  96. package/dist/seattleOpenDataCatalogue.d.ts +91 -0
  97. package/dist/seattleOpenDataCatalogue.d.ts.map +1 -0
  98. package/dist/seattleOpenDataCatalogue.js +133 -0
  99. package/dist/seattleOpenDataCatalogue.js.map +1 -0
  100. package/dist/socrataCatalogue.d.ts +121 -0
  101. package/dist/socrataCatalogue.d.ts.map +1 -0
  102. package/dist/socrataCatalogue.js +151 -0
  103. package/dist/socrataCatalogue.js.map +1 -0
  104. package/dist/socrataCatalogueMetadata.d.ts +19 -0
  105. package/dist/socrataCatalogueMetadata.d.ts.map +1 -0
  106. package/dist/socrataCatalogueMetadata.js +40 -0
  107. package/dist/socrataCatalogueMetadata.js.map +1 -0
  108. package/dist/texasOpenDataCatalogue.d.ts +91 -0
  109. package/dist/texasOpenDataCatalogue.d.ts.map +1 -0
  110. package/dist/texasOpenDataCatalogue.js +133 -0
  111. package/dist/texasOpenDataCatalogue.js.map +1 -0
  112. package/dist/types.d.ts +2 -1
  113. package/dist/types.d.ts.map +1 -1
  114. package/dist/vermontOpenDataCatalogue.d.ts +42 -0
  115. package/dist/vermontOpenDataCatalogue.d.ts.map +1 -0
  116. package/dist/vermontOpenDataCatalogue.js +45 -0
  117. package/dist/vermontOpenDataCatalogue.js.map +1 -0
  118. package/dist/washingtonStateOpenDataCatalogue.d.ts +42 -0
  119. package/dist/washingtonStateOpenDataCatalogue.d.ts.map +1 -0
  120. package/dist/washingtonStateOpenDataCatalogue.js +48 -0
  121. package/dist/washingtonStateOpenDataCatalogue.js.map +1 -0
  122. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ import type { UsDataAdapter } from './types.js';
2
+ /** Adapter id for the FCC Open Data catalogue source. */
3
+ export declare const FCC_SOCRATA_CATALOGUE_SOURCE_ID = "fcc-socrata-catalogue";
4
+ /** Base URL for the FCC Open Data Socrata catalogue. */
5
+ export declare const FCC_SOCRATA_CATALOGUE_API_BASE = "https://opendata.fcc.gov/api/views.json";
6
+ /** How many catalogue entries one request reads. */
7
+ export declare const FCC_SOCRATA_CATALOGUE_LIMIT = 10;
8
+ /** One catalogue entry from the FCC Socrata discovery API. */
9
+ export interface FccSocrataCatalogueEntry {
10
+ /** Four-by-four Socrata dataset id, e.g. "jdr4-3q4p". */
11
+ id: string;
12
+ /** Human-readable title of the dataset, chart, story, or file. */
13
+ name: string;
14
+ /** What the entry is: "dataset", "chart", "story", "file", or "href". */
15
+ assetType: string;
16
+ /** Bureau or topic the entry belongs to, or null when the catalogue lists none. */
17
+ category: string | null;
18
+ /** How the entry is rendered, e.g. "tabular", "href", or "story". */
19
+ viewType: string;
20
+ /** When the entry was created, in seconds since the Unix epoch. */
21
+ createdAtEpochSeconds: number;
22
+ /** When the entry was last modified, in seconds since the Unix epoch. */
23
+ viewLastModifiedEpochSeconds: number;
24
+ /** How many times the entry has been viewed. */
25
+ viewCount: number;
26
+ /** How many times the entry has been downloaded. */
27
+ downloadCount: number;
28
+ /** Licence URL the portal attaches to the entry, or "" when it supplies none. */
29
+ licenceUrl: string;
30
+ /** Publishing organisation the portal attaches to the entry, or "" when it supplies none. */
31
+ attribution: string;
32
+ }
33
+ /** One category and how many catalogue entries carry it. */
34
+ export interface FccSocrataCategoryCount {
35
+ category: string;
36
+ entryCount: number;
37
+ }
38
+ /** One page of the FCC catalogue, folded for a story. */
39
+ export interface FccSocrataCatalogue {
40
+ /** One entry per catalogue item in the page. */
41
+ entries: FccSocrataCatalogueEntry[];
42
+ entryCount: number;
43
+ /** Entries whose asset type is "dataset". */
44
+ datasetCount: number;
45
+ /** Entry with the latest creation time. Ties go to the earlier list entry. */
46
+ newestEntry: FccSocrataCatalogueEntry;
47
+ /**
48
+ * Categories in the page, most entries first, ties broken by name. An entry
49
+ * the catalogue lists without a category is counted under "Uncategorised".
50
+ */
51
+ categories: FccSocrataCategoryCount[];
52
+ }
53
+ /**
54
+ * Builds the request URL for one page of the FCC catalogue.
55
+ *
56
+ * The endpoint is keyless. The service answers the whole catalogue by default,
57
+ * so the adapter asks for a short page.
58
+ *
59
+ * @param options - an optional entry cap
60
+ * @returns the full request URL
61
+ */
62
+ export declare function buildFccSocrataCatalogueUrl(options?: {
63
+ limit?: number;
64
+ }): string;
65
+ /**
66
+ * Parses one page of the FCC catalogue into the entries and category counts.
67
+ *
68
+ * An entry without an id, a name, or a creation time is a changed shape and
69
+ * stops the parse. An empty page also stops the parse, because a catalogue
70
+ * with no entries is not a usable answer.
71
+ *
72
+ * @param payload - the JSON body from the FCC Socrata discovery API
73
+ * @returns the entries in the page, the counts, and the newest entry
74
+ */
75
+ export declare function parseFccSocrataCataloguePayload(payload: unknown): FccSocrataCatalogue;
76
+ /**
77
+ * Reads one page of the Federal Communications Commission catalogue.
78
+ *
79
+ * One keyless request covers the page and reports what the catalogue holds,
80
+ * without reading any dataset's rows.
81
+ *
82
+ * @param options - an optional entry cap and fetch stub
83
+ * @returns the entries in the page, the counts, and the newest entry
84
+ */
85
+ export declare function fetchFccSocrataCatalogue(options?: {
86
+ limit?: number;
87
+ fetchImpl?: typeof globalThis.fetch;
88
+ }): Promise<FccSocrataCatalogue>;
89
+ /** Federal Communications Commission catalogue of datasets and stories, keyless. */
90
+ export declare const fccSocrataCatalogueAdapter: UsDataAdapter<FccSocrataCatalogue>;
91
+ //# sourceMappingURL=fccSocrataCatalogue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fccSocrataCatalogue.d.ts","sourceRoot":"","sources":["../src/fccSocrataCatalogue.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,yDAAyD;AACzD,eAAO,MAAM,+BAA+B,0BAA0B,CAAC;AAEvE,wDAAwD;AACxD,eAAO,MAAM,8BAA8B,4CAA4C,CAAC;AAExF,oDAAoD;AACpD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,8DAA8D;AAC9D,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,mFAAmF;IACnF,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;IACtB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,yDAAyD;AACzD,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;AAqDD;;;;;;;;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,CAwCrF;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,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,mBAAmB,CAazE,CAAC"}
@@ -0,0 +1,133 @@
1
+ import { z } from 'zod';
2
+ import { UsSourceParseError } from './errors.js';
3
+ import { readFixtureJson } from './fixtures.js';
4
+ import { httpGet } from './http.js';
5
+ import { parseSocrataCatalogueMetadata } from './socrataCatalogueMetadata.js';
6
+ /** Adapter id for the FCC Open Data catalogue source. */
7
+ export const FCC_SOCRATA_CATALOGUE_SOURCE_ID = 'fcc-socrata-catalogue';
8
+ /** Base URL for the FCC Open Data Socrata catalogue. */
9
+ export const FCC_SOCRATA_CATALOGUE_API_BASE = 'https://opendata.fcc.gov/api/views.json';
10
+ /** How many catalogue entries one request reads. */
11
+ export const FCC_SOCRATA_CATALOGUE_LIMIT = 10;
12
+ /** Committed snapshot, so a build works when the FCC host is unreachable. */
13
+ const FCC_SOCRATA_CATALOGUE_FIXTURE_FILENAME = 'fcc-socrata-catalogue-2026-11-08.json';
14
+ /** Category bucket the adapter uses for an entry the catalogue lists without one. */
15
+ const FCC_SOCRATA_UNCATEGORISED = 'Uncategorised';
16
+ // The discovery API sends a bare JSON array. A value the catalogue does not
17
+ // carry arrives as null, and every count arrives as a number.
18
+ const FCC_SOCRATA_ENTRY_SCHEMA = z.object({
19
+ id: z.string().optional(),
20
+ name: z.string().optional(),
21
+ assetType: z.string().optional(),
22
+ category: z.string().nullable().optional(),
23
+ viewType: z.string().optional(),
24
+ createdAt: z.number().optional(),
25
+ viewLastModified: z.number().optional(),
26
+ viewCount: z.number().optional(),
27
+ downloadCount: z.number().optional(),
28
+ metadata: z.unknown().optional(),
29
+ });
30
+ const FCC_SOCRATA_PAYLOAD_SCHEMA = z.array(FCC_SOCRATA_ENTRY_SCHEMA);
31
+ /** Counts entries per category, most entries first, ties by name. */
32
+ function countFccCatalogueCategories(entries) {
33
+ const counts = new Map();
34
+ for (const entry of entries) {
35
+ const category = entry.category ?? FCC_SOCRATA_UNCATEGORISED;
36
+ counts.set(category, (counts.get(category) ?? 0) + 1);
37
+ }
38
+ return [...counts.entries()]
39
+ .sort(([leftCategory, leftCount], [rightCategory, rightCount]) => leftCount === rightCount ? leftCategory.localeCompare(rightCategory) : rightCount - leftCount)
40
+ .map(([category, entryCount]) => ({ category, entryCount }));
41
+ }
42
+ /** Picks the entry with the latest creation time, ties to the earlier entry. */
43
+ function newestFccCatalogueEntry(entries) {
44
+ const first = entries[0];
45
+ if (first === undefined) {
46
+ throw new UsSourceParseError(FCC_SOCRATA_CATALOGUE_SOURCE_ID, 'No entries to summarise');
47
+ }
48
+ return entries.reduce((best, entry) => (entry.createdAtEpochSeconds > best.createdAtEpochSeconds ? entry : best), first);
49
+ }
50
+ /**
51
+ * Builds the request URL for one page of the FCC catalogue.
52
+ *
53
+ * The endpoint is keyless. The service answers the whole catalogue by default,
54
+ * so the adapter asks for a short page.
55
+ *
56
+ * @param options - an optional entry cap
57
+ * @returns the full request URL
58
+ */
59
+ export function buildFccSocrataCatalogueUrl(options) {
60
+ const params = new URLSearchParams({
61
+ limit: String(options?.limit ?? FCC_SOCRATA_CATALOGUE_LIMIT),
62
+ });
63
+ return `${FCC_SOCRATA_CATALOGUE_API_BASE}?${params.toString()}`;
64
+ }
65
+ /**
66
+ * Parses one page of the FCC catalogue into the entries and category counts.
67
+ *
68
+ * An entry without an id, a name, or a creation time is a changed shape and
69
+ * stops the parse. An empty page also stops the parse, because a catalogue
70
+ * with no entries is not a usable answer.
71
+ *
72
+ * @param payload - the JSON body from the FCC Socrata discovery API
73
+ * @returns the entries in the page, the counts, and the newest entry
74
+ */
75
+ export function parseFccSocrataCataloguePayload(payload) {
76
+ const parsed = FCC_SOCRATA_PAYLOAD_SCHEMA.safeParse(payload);
77
+ if (!parsed.success) {
78
+ throw new UsSourceParseError(FCC_SOCRATA_CATALOGUE_SOURCE_ID, parsed.error.message);
79
+ }
80
+ if (parsed.data.length === 0) {
81
+ throw new UsSourceParseError(FCC_SOCRATA_CATALOGUE_SOURCE_ID, 'The response carried no entries');
82
+ }
83
+ const entries = parsed.data.map((row) => {
84
+ if (row.id === undefined || row.name === undefined || row.createdAt === undefined) {
85
+ throw new UsSourceParseError(FCC_SOCRATA_CATALOGUE_SOURCE_ID, 'A catalogue entry arrived without its id, name, or creation time');
86
+ }
87
+ return {
88
+ id: row.id,
89
+ name: row.name,
90
+ assetType: row.assetType ?? '',
91
+ category: row.category ?? null,
92
+ viewType: row.viewType ?? '',
93
+ createdAtEpochSeconds: row.createdAt,
94
+ viewLastModifiedEpochSeconds: row.viewLastModified ?? row.createdAt,
95
+ viewCount: row.viewCount ?? 0,
96
+ downloadCount: row.downloadCount ?? 0,
97
+ ...parseSocrataCatalogueMetadata(row.metadata),
98
+ };
99
+ });
100
+ return {
101
+ entries,
102
+ entryCount: entries.length,
103
+ datasetCount: entries.filter((entry) => entry.assetType === 'dataset').length,
104
+ newestEntry: newestFccCatalogueEntry(entries),
105
+ categories: countFccCatalogueCategories(entries),
106
+ };
107
+ }
108
+ /**
109
+ * Reads one page of the Federal Communications Commission catalogue.
110
+ *
111
+ * One keyless request covers the page and reports what the catalogue holds,
112
+ * without reading any dataset's rows.
113
+ *
114
+ * @param options - an optional entry cap and fetch stub
115
+ * @returns the entries in the page, the counts, and the newest entry
116
+ */
117
+ export async function fetchFccSocrataCatalogue(options) {
118
+ const fetchImpl = options?.fetchImpl ?? globalThis.fetch;
119
+ const url = buildFccSocrataCatalogueUrl(options?.limit === undefined ? {} : { limit: options.limit });
120
+ const response = await httpGet(FCC_SOCRATA_CATALOGUE_SOURCE_ID, url, { fetchImpl });
121
+ return parseFccSocrataCataloguePayload(await response.json());
122
+ }
123
+ /** Federal Communications Commission catalogue of datasets and stories, keyless. */
124
+ export const fccSocrataCatalogueAdapter = {
125
+ id: FCC_SOCRATA_CATALOGUE_SOURCE_ID,
126
+ name: 'FCC Open Data catalogue',
127
+ auth: 'none',
128
+ description: 'The Federal Communications Commission Socrata catalogue, one row per published dataset, chart, or story, with its category, view count, and download count.',
129
+ fetchLive: async (options) => fetchFccSocrataCatalogue(options?.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }),
130
+ parse: (payload) => parseFccSocrataCataloguePayload(payload),
131
+ loadFixture: () => parseFccSocrataCataloguePayload(readFixtureJson(FCC_SOCRATA_CATALOGUE_FIXTURE_FILENAME)),
132
+ };
133
+ //# sourceMappingURL=fccSocrataCatalogue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fccSocrataCatalogue.js","sourceRoot":"","sources":["../src/fccSocrataCatalogue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { UsDataAdapter } from './types.js';
2
+ /** Adapter id for the Federal Register documents source. */
3
+ export declare const FEDERAL_REGISTER_DOCUMENTS_SOURCE_ID = "federal-register-documents";
4
+ /** Base URL for the Federal Register documents API. */
5
+ export declare const FEDERAL_REGISTER_API_BASE = "https://www.federalregister.gov/api/v1/documents.json";
6
+ /** Number of documents one request asks for by default. */
7
+ export declare const FEDERAL_REGISTER_DEFAULT_PAGE_SIZE = 10;
8
+ /** Order the default request asks the service to use. */
9
+ export declare const FEDERAL_REGISTER_DEFAULT_ORDER = "newest";
10
+ /** One Federal Register document, trimmed to the fields a story reads. */
11
+ export interface FederalRegisterDocument {
12
+ /** The register's own document number, e.g. "2026-22789". */
13
+ documentNumber: string;
14
+ title: string;
15
+ /** Document type, e.g. "Rule", "Proposed Rule", "Notice", or "Presidential Document". */
16
+ type: string;
17
+ /** Publication date as YYYY-MM-DD, as the register wrote it. */
18
+ publicationDate: string;
19
+ /** Abstract, or null when the register published none. */
20
+ abstract: string | null;
21
+ /** Agency names the document belongs to. Empty when the register names none. */
22
+ agencies: string[];
23
+ /** Public HTML page for the document. */
24
+ htmlUrl: string;
25
+ /** Public PDF for the document, or "" when the register supplied none. */
26
+ pdfUrl: string;
27
+ }
28
+ /** One page of Federal Register documents, with the service's page counts. */
29
+ export interface FederalRegisterDocumentsPage {
30
+ documents: FederalRegisterDocument[];
31
+ documentCount: number;
32
+ /** Total the service reports for the query. The service caps large result sets. */
33
+ reportedCount: number;
34
+ totalPages: number;
35
+ nextPageUrl: string | null;
36
+ }
37
+ /** Caller-selected window for one document page. */
38
+ export interface FederalRegisterDocumentsQuery {
39
+ perPage?: number;
40
+ page?: number;
41
+ order?: 'newest' | 'oldest' | 'relevance';
42
+ }
43
+ /**
44
+ * Builds the request URL for one page of Federal Register documents.
45
+ *
46
+ * The endpoint is keyless. The default order is newest first, so repeated
47
+ * calls return the documents published most recently.
48
+ *
49
+ * @param query - an optional page size, page number, and order
50
+ * @returns the full request URL
51
+ */
52
+ export declare function buildFederalRegisterDocumentsUrl(query?: FederalRegisterDocumentsQuery): string;
53
+ /**
54
+ * Parses one page of Federal Register documents.
55
+ *
56
+ * A document without its number, title, type, publication date, or HTML page
57
+ * is a changed shape and stops the parse. An empty result page is valid and
58
+ * returns zero documents with the service's counts.
59
+ *
60
+ * @param payload - the JSON body from the Federal Register documents API
61
+ * @returns the documents on the page and the service's page counts
62
+ */
63
+ export declare function parseFederalRegisterDocumentsPayload(payload: unknown): FederalRegisterDocumentsPage;
64
+ /**
65
+ * Reads one page of Federal Register documents.
66
+ *
67
+ * One keyless request covers the page. The response carries the service
68
+ * count, page total, and next-page URL alongside the documents themselves.
69
+ *
70
+ * @param query - an optional page size, page number, order, and fetch stub
71
+ * @returns the documents on the page and the service's page counts
72
+ */
73
+ export declare function fetchFederalRegisterDocuments(query?: FederalRegisterDocumentsQuery & {
74
+ fetchImpl?: typeof globalThis.fetch;
75
+ }): Promise<FederalRegisterDocumentsPage>;
76
+ /** Federal Register documents, one row per document, keyless. */
77
+ export declare const federalRegisterDocumentsAdapter: UsDataAdapter<FederalRegisterDocumentsPage>;
78
+ //# sourceMappingURL=federalRegisterDocuments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federalRegisterDocuments.d.ts","sourceRoot":"","sources":["../src/federalRegisterDocuments.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,4DAA4D;AAC5D,eAAO,MAAM,oCAAoC,+BAA+B,CAAC;AAEjF,uDAAuD;AACvD,eAAO,MAAM,yBAAyB,0DAA0D,CAAC;AAEjG,2DAA2D;AAC3D,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAErD,yDAAyD;AACzD,eAAO,MAAM,8BAA8B,WAAW,CAAC;AAEvD,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACtC,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,oDAAoD;AACpD,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;CAC3C;AAyBD;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,GAAE,6BAAkC,GACxC,MAAM,CAOR;AAaD;;;;;;;;;GASG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,OAAO,GACf,4BAA4B,CA0B9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,GAAE,6BAA6B,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAAO,GAClF,OAAO,CAAC,4BAA4B,CAAC,CASvC;AAED,iEAAiE;AACjE,eAAO,MAAM,+BAA+B,EAAE,aAAa,CAAC,4BAA4B,CAavF,CAAC"}
@@ -0,0 +1,119 @@
1
+ import { z } from 'zod';
2
+ import { UsSourceParseError } from './errors.js';
3
+ import { readFixtureJson } from './fixtures.js';
4
+ import { httpGet } from './http.js';
5
+ /** Adapter id for the Federal Register documents source. */
6
+ export const FEDERAL_REGISTER_DOCUMENTS_SOURCE_ID = 'federal-register-documents';
7
+ /** Base URL for the Federal Register documents API. */
8
+ export const FEDERAL_REGISTER_API_BASE = 'https://www.federalregister.gov/api/v1/documents.json';
9
+ /** Number of documents one request asks for by default. */
10
+ export const FEDERAL_REGISTER_DEFAULT_PAGE_SIZE = 10;
11
+ /** Order the default request asks the service to use. */
12
+ export const FEDERAL_REGISTER_DEFAULT_ORDER = 'newest';
13
+ /** Committed snapshot, so a build works when the Federal Register host is unreachable. */
14
+ const FEDERAL_REGISTER_FIXTURE_FILENAME = 'federal-register-documents-2026-11-08.json';
15
+ // Every document in the live page carries these fields. The abstract and the
16
+ // agency list can be empty, but a missing number, title, or date is a change.
17
+ const FEDERAL_REGISTER_DOCUMENT_SCHEMA = z.object({
18
+ document_number: z.string().min(1),
19
+ title: z.string().min(1),
20
+ type: z.string().min(1),
21
+ publication_date: z.string(),
22
+ abstract: z.string().nullable().optional(),
23
+ agencies: z.array(z.object({ name: z.string().optional() })).optional(),
24
+ html_url: z.string().min(1),
25
+ pdf_url: z.string().nullable().optional(),
26
+ });
27
+ const FEDERAL_REGISTER_PAYLOAD_SCHEMA = z.object({
28
+ count: z.number().int().nonnegative(),
29
+ total_pages: z.number().int().nonnegative(),
30
+ next_page_url: z.string().nullable().optional(),
31
+ results: z.array(FEDERAL_REGISTER_DOCUMENT_SCHEMA),
32
+ });
33
+ /**
34
+ * Builds the request URL for one page of Federal Register documents.
35
+ *
36
+ * The endpoint is keyless. The default order is newest first, so repeated
37
+ * calls return the documents published most recently.
38
+ *
39
+ * @param query - an optional page size, page number, and order
40
+ * @returns the full request URL
41
+ */
42
+ export function buildFederalRegisterDocumentsUrl(query = {}) {
43
+ const params = new URLSearchParams({
44
+ per_page: String(query.perPage ?? FEDERAL_REGISTER_DEFAULT_PAGE_SIZE),
45
+ page: String(query.page ?? 1),
46
+ order: query.order ?? FEDERAL_REGISTER_DEFAULT_ORDER,
47
+ });
48
+ return `${FEDERAL_REGISTER_API_BASE}?${params.toString()}`;
49
+ }
50
+ /** Reads a YYYY-MM-DD date, throwing when the register writes another shape. */
51
+ function parseFederalRegisterDate(value, documentNumber) {
52
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(value)) {
53
+ throw new UsSourceParseError(FEDERAL_REGISTER_DOCUMENTS_SOURCE_ID, `Document ${documentNumber} carried an unreadable publication date: ${value}`);
54
+ }
55
+ return value;
56
+ }
57
+ /**
58
+ * Parses one page of Federal Register documents.
59
+ *
60
+ * A document without its number, title, type, publication date, or HTML page
61
+ * is a changed shape and stops the parse. An empty result page is valid and
62
+ * returns zero documents with the service's counts.
63
+ *
64
+ * @param payload - the JSON body from the Federal Register documents API
65
+ * @returns the documents on the page and the service's page counts
66
+ */
67
+ export function parseFederalRegisterDocumentsPayload(payload) {
68
+ const parsed = FEDERAL_REGISTER_PAYLOAD_SCHEMA.safeParse(payload);
69
+ if (!parsed.success) {
70
+ throw new UsSourceParseError(FEDERAL_REGISTER_DOCUMENTS_SOURCE_ID, parsed.error.message);
71
+ }
72
+ const documents = parsed.data.results.map((row) => ({
73
+ documentNumber: row.document_number,
74
+ title: row.title,
75
+ type: row.type,
76
+ publicationDate: parseFederalRegisterDate(row.publication_date, row.document_number),
77
+ abstract: row.abstract ?? null,
78
+ agencies: (row.agencies ?? []).flatMap((agency) => agency.name === undefined || agency.name.trim() === '' ? [] : [agency.name]),
79
+ htmlUrl: row.html_url,
80
+ pdfUrl: row.pdf_url ?? '',
81
+ }));
82
+ return {
83
+ documents,
84
+ documentCount: documents.length,
85
+ reportedCount: parsed.data.count,
86
+ totalPages: parsed.data.total_pages,
87
+ nextPageUrl: parsed.data.next_page_url ?? null,
88
+ };
89
+ }
90
+ /**
91
+ * Reads one page of Federal Register documents.
92
+ *
93
+ * One keyless request covers the page. The response carries the service
94
+ * count, page total, and next-page URL alongside the documents themselves.
95
+ *
96
+ * @param query - an optional page size, page number, order, and fetch stub
97
+ * @returns the documents on the page and the service's page counts
98
+ */
99
+ export async function fetchFederalRegisterDocuments(query = {}) {
100
+ const fetchImpl = query.fetchImpl ?? globalThis.fetch;
101
+ const url = buildFederalRegisterDocumentsUrl({
102
+ ...(query.perPage === undefined ? {} : { perPage: query.perPage }),
103
+ ...(query.page === undefined ? {} : { page: query.page }),
104
+ ...(query.order === undefined ? {} : { order: query.order }),
105
+ });
106
+ const response = await httpGet(FEDERAL_REGISTER_DOCUMENTS_SOURCE_ID, url, { fetchImpl });
107
+ return parseFederalRegisterDocumentsPayload(await response.json());
108
+ }
109
+ /** Federal Register documents, one row per document, keyless. */
110
+ export const federalRegisterDocumentsAdapter = {
111
+ id: FEDERAL_REGISTER_DOCUMENTS_SOURCE_ID,
112
+ name: 'Federal Register documents',
113
+ auth: 'none',
114
+ description: 'Documents published in the Federal Register, one row per document, with its type, publication date, agencies, abstract, and public HTML and PDF links.',
115
+ fetchLive: async (options) => fetchFederalRegisterDocuments(options?.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }),
116
+ parse: (payload) => parseFederalRegisterDocumentsPayload(payload),
117
+ loadFixture: () => parseFederalRegisterDocumentsPayload(readFixtureJson(FEDERAL_REGISTER_FIXTURE_FILENAME)),
118
+ };
119
+ //# sourceMappingURL=federalRegisterDocuments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"federalRegisterDocuments.js","sourceRoot":"","sources":["../src/federalRegisterDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,4DAA4D;AAC5D,MAAM,CAAC,MAAM,oCAAoC,GAAG,4BAA4B,CAAC;AAEjF,uDAAuD;AACvD,MAAM,CAAC,MAAM,yBAAyB,GAAG,uDAAuD,CAAC;AAEjG,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kCAAkC,GAAG,EAAE,CAAC;AAErD,yDAAyD;AACzD,MAAM,CAAC,MAAM,8BAA8B,GAAG,QAAQ,CAAC;AAsCvD,0FAA0F;AAC1F,MAAM,iCAAiC,GAAG,4CAA4C,CAAC;AAEvF,6EAA6E;AAC7E,8EAA8E;AAC9E,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC;CACnD,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAC9C,KAAK,GAAkC,EAAE;IAEzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,kCAAkC,CAAC;QACrE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,8BAA8B;KACrD,CAAC,CAAC;IACH,OAAO,GAAG,yBAAyB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC7D,CAAC;AAED,gFAAgF;AAChF,SAAS,wBAAwB,CAAC,KAAa,EAAE,cAAsB;IACrE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAC1B,oCAAoC,EACpC,YAAY,cAAc,4CAA4C,KAAK,EAAE,CAC9E,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oCAAoC,CAClD,OAAgB;IAEhB,MAAM,MAAM,GAAG,+BAA+B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,oCAAoC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,SAAS,GAA8B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7E,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,eAAe,EAAE,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,eAAe,CAAC;QACpF,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC9B,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5E;QACD,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;KAC1B,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,SAAS;QACT,aAAa,EAAE,SAAS,CAAC,MAAM;QAC/B,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;QAChC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;QACnC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI;KAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,KAAK,GAA4E,EAAE;IAEnF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACtD,MAAM,GAAG,GAAG,gCAAgC,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC7D,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,oCAAoC,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACzF,OAAO,oCAAoC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,+BAA+B,GAAgD;IAC1F,EAAE,EAAE,oCAAoC;IACxC,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,wJAAwJ;IAC1J,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAC3B,6BAA6B,CAC3B,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CACzE;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,oCAAoC,CAAC,OAAO,CAAC;IACjE,WAAW,EAAE,GAAG,EAAE,CAChB,oCAAoC,CAAC,eAAe,CAAC,iCAAiC,CAAC,CAAC;CAC3F,CAAC"}
@@ -21,6 +21,10 @@ export interface HealthdataSocrataCatalogueEntry {
21
21
  viewCount: number;
22
22
  /** How many times the entry has been downloaded. */
23
23
  downloadCount: number;
24
+ /** Licence URL the portal attaches to the entry, or "" when it supplies none. */
25
+ licenceUrl: string;
26
+ /** Publishing organisation the portal attaches to the entry, or "" when it supplies none. */
27
+ attribution: string;
24
28
  }
25
29
  /** One category and how many catalogue entries carry it. */
26
30
  export interface HealthdataSocrataCategoryCount {
@@ -1 +1 @@
1
- {"version":3,"file":"healthdataSocrataCatalogue.d.ts","sourceRoot":"","sources":["../src/healthdataSocrataCatalogue.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,8DAA8D;AAC9D,eAAO,MAAM,sCAAsC,iCAAiC,CAAC;AAErF,0DAA0D;AAC1D,MAAM,WAAW,+BAA+B;IAC9C,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,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,0BAA0B;IACzC,gDAAgD;IAChD,OAAO,EAAE,+BAA+B,EAAE,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,WAAW,EAAE,+BAA+B,CAAC;IAC7C;;;OAGG;IACH,UAAU,EAAE,8BAA8B,EAAE,CAAC;CAC9C;AAED,yDAAyD;AACzD,eAAO,MAAM,qCAAqC,0CAA0C,CAAC;AAE7F,oDAAoD;AACpD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AAyDrD;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,OAAO,GACf,0BAA0B,CAuC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAOtC;AAED,kFAAkF;AAClF,eAAO,MAAM,iCAAiC,EAAE,aAAa,CAAC,0BAA0B,CAevF,CAAC"}
1
+ {"version":3,"file":"healthdataSocrataCatalogue.d.ts","sourceRoot":"","sources":["../src/healthdataSocrataCatalogue.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,8DAA8D;AAC9D,eAAO,MAAM,sCAAsC,iCAAiC,CAAC;AAErF,0DAA0D;AAC1D,MAAM,WAAW,+BAA+B;IAC9C,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;IACtB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,4DAA4D;AAC5D,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,0BAA0B;IACzC,gDAAgD;IAChD,OAAO,EAAE,+BAA+B,EAAE,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,WAAW,EAAE,+BAA+B,CAAC;IAC7C;;;OAGG;IACH,UAAU,EAAE,8BAA8B,EAAE,CAAC;CAC9C;AAED,yDAAyD;AACzD,eAAO,MAAM,qCAAqC,0CAA0C,CAAC;AAE7F,oDAAoD;AACpD,eAAO,MAAM,kCAAkC,KAAK,CAAC;AA0DrD;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,sCAAsC,CACpD,OAAO,EAAE,OAAO,GACf,0BAA0B,CAwC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAOtC;AAED,kFAAkF;AAClF,eAAO,MAAM,iCAAiC,EAAE,aAAa,CAAC,0BAA0B,CAevF,CAAC"}
@@ -2,6 +2,7 @@ import { z } from 'zod';
2
2
  import { UsSourceParseError } from './errors.js';
3
3
  import { httpGet } from './http.js';
4
4
  import { readFixtureJson } from './fixtures.js';
5
+ import { parseSocrataCatalogueMetadata } from './socrataCatalogueMetadata.js';
5
6
  /** Adapter id for the healthdata-socrata-catalogue source. */
6
7
  export const HEALTHDATA_SOCRATA_CATALOGUE_SOURCE_ID = 'healthdata-socrata-catalogue';
7
8
  /** Base URL for the HealthData.gov Socrata catalogue. */
@@ -24,6 +25,7 @@ const HEALTHDATA_SOCRATA_CATALOGUE_ENTRY_SCHEMA = z.object({
24
25
  viewLastModified: z.number().optional(),
25
26
  viewCount: z.number().optional(),
26
27
  downloadCount: z.number().optional(),
28
+ metadata: z.unknown().optional(),
27
29
  });
28
30
  const HEALTHDATA_SOCRATA_CATALOGUE_PAYLOAD_SCHEMA = z.array(HEALTHDATA_SOCRATA_CATALOGUE_ENTRY_SCHEMA);
29
31
  /** Counts entries per category, most entries first, ties by name. */
@@ -92,6 +94,7 @@ export function parseHealthdataSocrataCataloguePayload(payload) {
92
94
  viewLastModifiedEpochSeconds: row.viewLastModified ?? row.createdAt,
93
95
  viewCount: row.viewCount ?? 0,
94
96
  downloadCount: row.downloadCount ?? 0,
97
+ ...parseSocrataCatalogueMetadata(row.metadata),
95
98
  };
96
99
  });
97
100
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"healthdataSocrataCatalogue.js","sourceRoot":"","sources":["../src/healthdataSocrataCatalogue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"healthdataSocrataCatalogue.js","sourceRoot":"","sources":["../src/healthdataSocrataCatalogue.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts CHANGED
@@ -37,4 +37,18 @@ export interface HttpGetOptions {
37
37
  * @throws {UsSourceApiError} On a non-2xx status, an abort, or a network error.
38
38
  */
39
39
  export declare function httpGet(source: string, url: string | URL, options?: HttpGetOptions): Promise<Response>;
40
+ /**
41
+ * Issues a JSON POST through the shared HTTP layer.
42
+ *
43
+ * The body is serialised as JSON, and the request carries the same identity,
44
+ * timeout, and retry classification as every GET.
45
+ *
46
+ * @param source - Source name used in the error message, e.g. "nih-reporter-projects".
47
+ * @param url - Absolute URL or URL object to fetch.
48
+ * @param body - JSON-serialisable value sent as the request body.
49
+ * @param options - Fetch override, extra headers, and timeout.
50
+ * @returns The response, already checked for a successful status.
51
+ * @throws {UsSourceApiError} On a non-2xx status, an abort, or a network error.
52
+ */
53
+ export declare function httpPostJson(source: string, url: string | URL, body: unknown, options?: HttpGetOptions): Promise<Response>;
40
54
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,mDAAmD,CAAC;AAE3E,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAQzC,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;IAChD,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7C,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAsCnB"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,mDAAmD,CAAC;AAE3E,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAQzC,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;IAChD,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC7C,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAWnB"}
package/dist/http.js CHANGED
@@ -52,6 +52,33 @@ function buildRequestHeaders(extra) {
52
52
  * @throws {UsSourceApiError} On a non-2xx status, an abort, or a network error.
53
53
  */
54
54
  export async function httpGet(source, url, options = {}) {
55
+ return fetchWithRetry(source, url, {
56
+ method: 'GET',
57
+ ...(options.headers === undefined ? {} : { headers: options.headers }),
58
+ }, options);
59
+ }
60
+ /**
61
+ * Issues a JSON POST through the shared HTTP layer.
62
+ *
63
+ * The body is serialised as JSON, and the request carries the same identity,
64
+ * timeout, and retry classification as every GET.
65
+ *
66
+ * @param source - Source name used in the error message, e.g. "nih-reporter-projects".
67
+ * @param url - Absolute URL or URL object to fetch.
68
+ * @param body - JSON-serialisable value sent as the request body.
69
+ * @param options - Fetch override, extra headers, and timeout.
70
+ * @returns The response, already checked for a successful status.
71
+ * @throws {UsSourceApiError} On a non-2xx status, an abort, or a network error.
72
+ */
73
+ export async function httpPostJson(source, url, body, options = {}) {
74
+ return fetchWithRetry(source, url, {
75
+ method: 'POST',
76
+ body: JSON.stringify(body),
77
+ headers: { 'content-type': 'application/json', ...options.headers },
78
+ }, options);
79
+ }
80
+ /** Runs one request with the shared headers, timeout, and retry policy. */
81
+ async function fetchWithRetry(source, url, request, options) {
55
82
  const doFetch = options.fetchImpl ?? globalThis.fetch;
56
83
  const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
57
84
  const retries = options.retries ?? 0;
@@ -62,7 +89,8 @@ export async function httpGet(source, url, options = {}) {
62
89
  let response;
63
90
  try {
64
91
  response = await doFetch(url, {
65
- headers: buildRequestHeaders(options.headers),
92
+ ...request,
93
+ headers: buildRequestHeaders(request.headers),
66
94
  signal: controller.signal,
67
95
  });
68
96
  }
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}