@usa-open-data-connectors/usa-sources 0.1.2 → 0.1.4

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 (108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +442 -214
  3. package/dist/apiKey.d.ts +12 -0
  4. package/dist/apiKey.d.ts.map +1 -0
  5. package/dist/apiKey.js +18 -0
  6. package/dist/apiKey.js.map +1 -0
  7. package/dist/blsSeries.d.ts.map +1 -1
  8. package/dist/blsSeries.js +2 -4
  9. package/dist/blsSeries.js.map +1 -1
  10. package/dist/btsTransportationStats.d.ts +87 -0
  11. package/dist/btsTransportationStats.d.ts.map +1 -0
  12. package/dist/btsTransportationStats.js +130 -0
  13. package/dist/btsTransportationStats.js.map +1 -0
  14. package/dist/cdcCountyObesity.d.ts.map +1 -1
  15. package/dist/cdcCountyObesity.js +3 -5
  16. package/dist/cdcCountyObesity.js.map +1 -1
  17. package/dist/cdcSocrataCatalogue.d.ts +87 -0
  18. package/dist/cdcSocrataCatalogue.d.ts.map +1 -0
  19. package/dist/cdcSocrataCatalogue.js +130 -0
  20. package/dist/cdcSocrataCatalogue.js.map +1 -0
  21. package/dist/cfpbConsumerComplaints.d.ts +2 -0
  22. package/dist/cfpbConsumerComplaints.d.ts.map +1 -1
  23. package/dist/cfpbConsumerComplaints.js +12 -12
  24. package/dist/cfpbConsumerComplaints.js.map +1 -1
  25. package/dist/clinicalTrialsStudies.d.ts +92 -0
  26. package/dist/clinicalTrialsStudies.d.ts.map +1 -0
  27. package/dist/clinicalTrialsStudies.js +147 -0
  28. package/dist/clinicalTrialsStudies.js.map +1 -0
  29. package/dist/cpscProductRecalls.d.ts.map +1 -1
  30. package/dist/cpscProductRecalls.js +2 -4
  31. package/dist/cpscProductRecalls.js.map +1 -1
  32. package/dist/epaEnvirofactsFacilities.d.ts +94 -0
  33. package/dist/epaEnvirofactsFacilities.d.ts.map +1 -0
  34. package/dist/epaEnvirofactsFacilities.js +140 -0
  35. package/dist/epaEnvirofactsFacilities.js.map +1 -0
  36. package/dist/errors.d.ts +12 -2
  37. package/dist/errors.d.ts.map +1 -1
  38. package/dist/errors.js +8 -4
  39. package/dist/errors.js.map +1 -1
  40. package/dist/estimatetaxIncomeTax.d.ts +140 -0
  41. package/dist/estimatetaxIncomeTax.d.ts.map +1 -0
  42. package/dist/estimatetaxIncomeTax.js +225 -0
  43. package/dist/estimatetaxIncomeTax.js.map +1 -0
  44. package/dist/fdicBankDirectory.d.ts +78 -0
  45. package/dist/fdicBankDirectory.d.ts.map +1 -0
  46. package/dist/fdicBankDirectory.js +122 -0
  47. package/dist/fdicBankDirectory.js.map +1 -0
  48. package/dist/femaDisasterDeclarations.d.ts.map +1 -1
  49. package/dist/femaDisasterDeclarations.js +2 -4
  50. package/dist/femaDisasterDeclarations.js.map +1 -1
  51. package/dist/healthdataSocrataCatalogue.d.ts +87 -0
  52. package/dist/healthdataSocrataCatalogue.d.ts.map +1 -0
  53. package/dist/healthdataSocrataCatalogue.js +130 -0
  54. package/dist/healthdataSocrataCatalogue.js.map +1 -0
  55. package/dist/http.d.ts +36 -0
  56. package/dist/http.d.ts.map +1 -0
  57. package/dist/http.js +85 -0
  58. package/dist/http.js.map +1 -0
  59. package/dist/index.d.ts +61 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +31 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/ncbiPubmedSearch.d.ts +71 -0
  64. package/dist/ncbiPubmedSearch.d.ts.map +1 -0
  65. package/dist/ncbiPubmedSearch.js +126 -0
  66. package/dist/ncbiPubmedSearch.js.map +1 -0
  67. package/dist/nceiAnnualTemperature.d.ts.map +1 -1
  68. package/dist/nceiAnnualTemperature.js +3 -5
  69. package/dist/nceiAnnualTemperature.js.map +1 -1
  70. package/dist/noaaSeaLevel.d.ts.map +1 -1
  71. package/dist/noaaSeaLevel.js +2 -4
  72. package/dist/noaaSeaLevel.js.map +1 -1
  73. package/dist/nwsPointForecast.d.ts +99 -0
  74. package/dist/nwsPointForecast.d.ts.map +1 -0
  75. package/dist/nwsPointForecast.js +147 -0
  76. package/dist/nwsPointForecast.js.map +1 -0
  77. package/dist/nycOpenDataCatalogue.d.ts +97 -0
  78. package/dist/nycOpenDataCatalogue.d.ts.map +1 -0
  79. package/dist/nycOpenDataCatalogue.js +151 -0
  80. package/dist/nycOpenDataCatalogue.js.map +1 -0
  81. package/dist/openFdaFoodRecalls.d.ts.map +1 -1
  82. package/dist/openFdaFoodRecalls.js +2 -4
  83. package/dist/openFdaFoodRecalls.js.map +1 -1
  84. package/dist/registry.d.ts.map +1 -1
  85. package/dist/registry.js +30 -2
  86. package/dist/registry.js.map +1 -1
  87. package/dist/secEdgarFilings.d.ts +103 -0
  88. package/dist/secEdgarFilings.d.ts.map +1 -0
  89. package/dist/secEdgarFilings.js +215 -0
  90. package/dist/secEdgarFilings.js.map +1 -0
  91. package/dist/treasuryAvgInterestRate.d.ts.map +1 -1
  92. package/dist/treasuryAvgInterestRate.js +2 -4
  93. package/dist/treasuryAvgInterestRate.js.map +1 -1
  94. package/dist/treasuryDebtToPenny.d.ts +90 -0
  95. package/dist/treasuryDebtToPenny.d.ts.map +1 -0
  96. package/dist/treasuryDebtToPenny.js +168 -0
  97. package/dist/treasuryDebtToPenny.js.map +1 -0
  98. package/dist/usaspendingAgencies.d.ts +78 -0
  99. package/dist/usaspendingAgencies.d.ts.map +1 -0
  100. package/dist/usaspendingAgencies.js +119 -0
  101. package/dist/usaspendingAgencies.js.map +1 -0
  102. package/dist/usgsEarthquakes.d.ts.map +1 -1
  103. package/dist/usgsEarthquakes.js +2 -4
  104. package/dist/usgsEarthquakes.js.map +1 -1
  105. package/dist/usgsPeakStreamflow.d.ts.map +1 -1
  106. package/dist/usgsPeakStreamflow.js +3 -5
  107. package/dist/usgsPeakStreamflow.js.map +1 -1
  108. package/package.json +13 -4
@@ -0,0 +1,103 @@
1
+ import type { UsDataAdapter } from './types.js';
2
+ /** Adapter id for the SEC EDGAR submissions source. */
3
+ export declare const SEC_EDGAR_FILINGS_SOURCE_ID = "sec-edgar-filings";
4
+ /**
5
+ * User-Agent header the SEC asks every caller to send.
6
+ *
7
+ * The SEC blocks a request that does not identify its operator, so the
8
+ * adapter sends a descriptive name and a contact address on every call. A
9
+ * real deployment should override the contact with its own address.
10
+ */
11
+ export declare const SEC_EDGAR_USER_AGENT = "usa-open-data-connectors oliver.treadwell@gmail.com";
12
+ /** One filing in an issuer's recent submissions list. */
13
+ export interface SecEdgarFiling {
14
+ /** The SEC's accession number, e.g. "0001958244-26-000636". */
15
+ accessionNumber: string;
16
+ /** Date the filing was made, e.g. "2026-10-02". */
17
+ filingDate: string;
18
+ /** End of the period the filing covers, or null when the form has none. */
19
+ reportDate: string | null;
20
+ /** Form type, e.g. "4" or "10-Q". */
21
+ form: string;
22
+ /** Path to the filing's main document inside the filing archive. */
23
+ primaryDocument: string;
24
+ /** Description of the main document, or null when the form has none. */
25
+ primaryDocDescription: string | null;
26
+ /** Size of the filing in bytes, or null when the SEC did not report one. */
27
+ sizeBytes: number | null;
28
+ /** Whether the filing carries XBRL data. */
29
+ isXbrl: boolean;
30
+ /** Whether the filing carries inline XBRL data. */
31
+ isInlineXbrl: boolean;
32
+ }
33
+ /** One form type and how many of the recent filings use it. */
34
+ export interface SecEdgarFormCount {
35
+ form: string;
36
+ count: number;
37
+ }
38
+ /** An issuer's profile plus its recent filings, folded for a story. */
39
+ export interface SecEdgarCompanyFilings {
40
+ /** Zero-padded Central Index Key, e.g. "0000320193". */
41
+ cik: string;
42
+ /** The issuer's registered name, e.g. "Apple Inc.". */
43
+ name: string;
44
+ entityType: string | null;
45
+ /** Standard Industrial Classification code. */
46
+ sic: string | null;
47
+ sicDescription: string | null;
48
+ /** Exchange tickers, empty when the issuer has none. */
49
+ tickers: string[];
50
+ /** Exchanges the issuer is listed on, empty when it has none. */
51
+ exchanges: string[];
52
+ /** Fiscal year end as the SEC writes it, e.g. "0926". */
53
+ fiscalYearEnd: string | null;
54
+ /** Recent filings, in the order the SEC sends them, newest first. */
55
+ filings: SecEdgarFiling[];
56
+ filingCount: number;
57
+ /** Date of the newest filing in the list, e.g. "2026-10-02". */
58
+ newestFilingDate: string;
59
+ /** Form types, most filings first, ties broken by form name. */
60
+ formCounts: SecEdgarFormCount[];
61
+ }
62
+ /** Base URL for the SEC EDGAR submissions service. */
63
+ export declare const SEC_EDGAR_SUBMISSIONS_API_BASE = "https://data.sec.gov/submissions";
64
+ /** Apple's Central Index Key, the issuer the committed fixture covers. */
65
+ export declare const SEC_EDGAR_APPLE_CIK = "0000320193";
66
+ /**
67
+ * Builds the request URL for one issuer's submissions file.
68
+ *
69
+ * The endpoint is keyless. The CIK is zero-padded to the ten digits the
70
+ * service expects, so a caller can pass "320193" as well as "0000320193".
71
+ *
72
+ * @param cik - the issuer's Central Index Key
73
+ * @returns the full request URL
74
+ */
75
+ export declare function buildSecEdgarSubmissionsUrl(cik?: string): string;
76
+ /**
77
+ * Parses one submissions response into an issuer's profile and recent filings.
78
+ *
79
+ * A response without a filings block, or with parallel arrays that do not line
80
+ * up, stops the parse. A filing without a readable date is a changed shape and
81
+ * also stops the parse.
82
+ *
83
+ * @param payload - the JSON body from the SEC submissions service
84
+ * @returns the issuer's profile, its recent filings, and the form counts
85
+ */
86
+ export declare function parseSecEdgarFilingsPayload(payload: unknown): SecEdgarCompanyFilings;
87
+ /**
88
+ * Reads one issuer's recent filings from the SEC's submissions service.
89
+ *
90
+ * The SEC asks every caller to identify itself, so the request carries a
91
+ * descriptive User-Agent header. One keyless request covers the issuer's
92
+ * recent filings and a little under a thousand rows.
93
+ *
94
+ * @param options - an optional Central Index Key and fetch stub
95
+ * @returns the issuer's profile, its recent filings, and the form counts
96
+ */
97
+ export declare function fetchSecEdgarFilings(options?: {
98
+ cik?: string;
99
+ fetchImpl?: typeof globalThis.fetch;
100
+ }): Promise<SecEdgarCompanyFilings>;
101
+ /** SEC EDGAR issuer submissions and recent filings, keyless. */
102
+ export declare const secEdgarFilingsAdapter: UsDataAdapter<SecEdgarCompanyFilings>;
103
+ //# sourceMappingURL=secEdgarFilings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secEdgarFilings.d.ts","sourceRoot":"","sources":["../src/secEdgarFilings.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,uDAAuD;AACvD,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,wDACsB,CAAC;AAExD,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,4EAA4E;IAC5E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+CAA+C;IAC/C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,iEAAiE;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yDAAyD;IACzD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qEAAqE;IACrE,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,sDAAsD;AACtD,eAAO,MAAM,8BAA8B,qCAAqC,CAAC;AAEjF,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAuChD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAA4B,GAAG,MAAM,CASrF;AA0FD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,CAqCpF;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAQlC;AAED,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,sBAAsB,CAUxE,CAAC"}
@@ -0,0 +1,215 @@
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 SEC EDGAR submissions source. */
6
+ export const SEC_EDGAR_FILINGS_SOURCE_ID = 'sec-edgar-filings';
7
+ /**
8
+ * User-Agent header the SEC asks every caller to send.
9
+ *
10
+ * The SEC blocks a request that does not identify its operator, so the
11
+ * adapter sends a descriptive name and a contact address on every call. A
12
+ * real deployment should override the contact with its own address.
13
+ */
14
+ export const SEC_EDGAR_USER_AGENT = 'usa-open-data-connectors oliver.treadwell@gmail.com';
15
+ /** Base URL for the SEC EDGAR submissions service. */
16
+ export const SEC_EDGAR_SUBMISSIONS_API_BASE = 'https://data.sec.gov/submissions';
17
+ /** Apple's Central Index Key, the issuer the committed fixture covers. */
18
+ export const SEC_EDGAR_APPLE_CIK = '0000320193';
19
+ /** Committed snapshot, so a build works when the SEC host is unreachable. */
20
+ const SEC_EDGAR_FIXTURE_FILENAME = 'sec-edgar-filings-2026-10-05.json';
21
+ /** Shape of a CIK as the submissions service uses it. */
22
+ const CIK_PATTERN = /^\d{1,10}$/;
23
+ /** Shape of a filing date, e.g. "2026-10-02". */
24
+ const ISO_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
25
+ // The SEC sends the recent filings as parallel arrays, one array per column,
26
+ // rather than one object per row. A field the form does not carry arrives as
27
+ // an empty string rather than a missing key.
28
+ const SEC_EDGAR_RECENT_SCHEMA = z.object({
29
+ accessionNumber: z.array(z.string()).optional(),
30
+ filingDate: z.array(z.string()).optional(),
31
+ reportDate: z.array(z.string()).optional(),
32
+ form: z.array(z.string()).optional(),
33
+ size: z.array(z.number()).optional(),
34
+ isXBRL: z.array(z.number()).optional(),
35
+ isInlineXBRL: z.array(z.number()).optional(),
36
+ primaryDocument: z.array(z.string()).optional(),
37
+ primaryDocDescription: z.array(z.string()).optional(),
38
+ });
39
+ const SEC_EDGAR_PAYLOAD_SCHEMA = z.object({
40
+ cik: z.string().optional(),
41
+ name: z.string().optional(),
42
+ entityType: z.string().optional(),
43
+ sic: z.string().optional(),
44
+ sicDescription: z.string().optional(),
45
+ tickers: z.array(z.string()).optional(),
46
+ exchanges: z.array(z.string()).optional(),
47
+ fiscalYearEnd: z.string().optional(),
48
+ stateOfIncorporation: z.string().optional(),
49
+ filings: z.object({ recent: SEC_EDGAR_RECENT_SCHEMA.optional() }).optional(),
50
+ });
51
+ /**
52
+ * Builds the request URL for one issuer's submissions file.
53
+ *
54
+ * The endpoint is keyless. The CIK is zero-padded to the ten digits the
55
+ * service expects, so a caller can pass "320193" as well as "0000320193".
56
+ *
57
+ * @param cik - the issuer's Central Index Key
58
+ * @returns the full request URL
59
+ */
60
+ export function buildSecEdgarSubmissionsUrl(cik = SEC_EDGAR_APPLE_CIK) {
61
+ const trimmed = cik.trim();
62
+ if (!CIK_PATTERN.test(trimmed)) {
63
+ throw new UsSourceParseError(SEC_EDGAR_FILINGS_SOURCE_ID, `A Central Index Key must be up to ten digits: ${cik}`);
64
+ }
65
+ return `${SEC_EDGAR_SUBMISSIONS_API_BASE}/CIK${trimmed.padStart(10, '0')}.json`;
66
+ }
67
+ /** Reads a column the SEC may omit, as an empty list. */
68
+ function columnOrEmpty(column) {
69
+ return column ?? [];
70
+ }
71
+ /**
72
+ * Zips the SEC's parallel filing arrays into one row per filing.
73
+ *
74
+ * The columns are parallel arrays, so a mismatch in their lengths means the
75
+ * response cannot be read as rows and stops the parse. A filing without a
76
+ * readable date is a changed shape and also stops the parse.
77
+ *
78
+ * @param recent - the recent filings object from the submissions file
79
+ * @returns one row per filing, in the order the SEC sent them
80
+ */
81
+ function zipSecEdgarFilings(recent) {
82
+ const accessions = columnOrEmpty(recent.accessionNumber);
83
+ const dates = columnOrEmpty(recent.filingDate);
84
+ const reportDates = columnOrEmpty(recent.reportDate);
85
+ const forms = columnOrEmpty(recent.form);
86
+ const sizes = recent.size ?? [];
87
+ const xbrl = recent.isXBRL ?? [];
88
+ const inlineXbrl = recent.isInlineXBRL ?? [];
89
+ const primaryDocuments = columnOrEmpty(recent.primaryDocument);
90
+ const primaryDescriptions = columnOrEmpty(recent.primaryDocDescription);
91
+ const columns = [
92
+ { name: 'filingDate', values: dates },
93
+ { name: 'reportDate', values: reportDates },
94
+ { name: 'form', values: forms },
95
+ { name: 'size', values: sizes },
96
+ { name: 'isXBRL', values: xbrl },
97
+ { name: 'isInlineXBRL', values: inlineXbrl },
98
+ { name: 'primaryDocument', values: primaryDocuments },
99
+ { name: 'primaryDocDescription', values: primaryDescriptions },
100
+ ];
101
+ for (const column of columns) {
102
+ if (column.values.length !== accessions.length) {
103
+ throw new UsSourceParseError(SEC_EDGAR_FILINGS_SOURCE_ID, `The ${column.name} column holds ${column.values.length} entries, not ${accessions.length}`);
104
+ }
105
+ }
106
+ return accessions.map((accessionNumber, index) => {
107
+ const filingDate = dates[index] ?? '';
108
+ if (!ISO_DATE_PATTERN.test(filingDate)) {
109
+ throw new UsSourceParseError(SEC_EDGAR_FILINGS_SOURCE_ID, `Unreadable filing date: ${filingDate}`);
110
+ }
111
+ return {
112
+ accessionNumber,
113
+ filingDate,
114
+ reportDate: blankToNull(reportDates[index]),
115
+ form: forms[index] ?? '',
116
+ primaryDocument: primaryDocuments[index] ?? '',
117
+ primaryDocDescription: blankToNull(primaryDescriptions[index]),
118
+ sizeBytes: sizes[index] ?? null,
119
+ isXbrl: xbrl[index] === 1,
120
+ isInlineXbrl: inlineXbrl[index] === 1,
121
+ };
122
+ });
123
+ }
124
+ /** Turns the SEC's empty-string sentinel into null, and keeps real text. */
125
+ function blankToNull(value) {
126
+ if (value === undefined || value.trim() === '') {
127
+ return null;
128
+ }
129
+ return value;
130
+ }
131
+ /** Counts how often each form appears, most filings first, ties by name. */
132
+ function countSecEdgarForms(filings) {
133
+ const counts = new Map();
134
+ for (const filing of filings) {
135
+ counts.set(filing.form, (counts.get(filing.form) ?? 0) + 1);
136
+ }
137
+ return [...counts.entries()]
138
+ .sort(([leftForm, leftCount], [rightForm, rightCount]) => leftCount === rightCount ? leftForm.localeCompare(rightForm) : rightCount - leftCount)
139
+ .map(([form, count]) => ({ form, count }));
140
+ }
141
+ /**
142
+ * Parses one submissions response into an issuer's profile and recent filings.
143
+ *
144
+ * A response without a filings block, or with parallel arrays that do not line
145
+ * up, stops the parse. A filing without a readable date is a changed shape and
146
+ * also stops the parse.
147
+ *
148
+ * @param payload - the JSON body from the SEC submissions service
149
+ * @returns the issuer's profile, its recent filings, and the form counts
150
+ */
151
+ export function parseSecEdgarFilingsPayload(payload) {
152
+ const parsed = SEC_EDGAR_PAYLOAD_SCHEMA.safeParse(payload);
153
+ if (!parsed.success) {
154
+ throw new UsSourceParseError(SEC_EDGAR_FILINGS_SOURCE_ID, parsed.error.message);
155
+ }
156
+ const recent = parsed.data.filings?.recent;
157
+ if (recent === undefined) {
158
+ throw new UsSourceParseError(SEC_EDGAR_FILINGS_SOURCE_ID, 'The response carried no filings');
159
+ }
160
+ const filings = zipSecEdgarFilings(recent);
161
+ if (filings.length === 0) {
162
+ throw new UsSourceParseError(SEC_EDGAR_FILINGS_SOURCE_ID, 'The response carried no filings');
163
+ }
164
+ const newestFilingDate = filings
165
+ .map((filing) => filing.filingDate)
166
+ .sort()
167
+ .at(-1);
168
+ if (newestFilingDate === undefined) {
169
+ throw new UsSourceParseError(SEC_EDGAR_FILINGS_SOURCE_ID, 'No filing date to summarise');
170
+ }
171
+ return {
172
+ cik: parsed.data.cik ?? '',
173
+ name: parsed.data.name ?? '',
174
+ entityType: blankToNull(parsed.data.entityType),
175
+ sic: blankToNull(parsed.data.sic),
176
+ sicDescription: blankToNull(parsed.data.sicDescription),
177
+ tickers: parsed.data.tickers ?? [],
178
+ exchanges: parsed.data.exchanges ?? [],
179
+ fiscalYearEnd: blankToNull(parsed.data.fiscalYearEnd),
180
+ filings,
181
+ filingCount: filings.length,
182
+ newestFilingDate,
183
+ formCounts: countSecEdgarForms(filings),
184
+ };
185
+ }
186
+ /**
187
+ * Reads one issuer's recent filings from the SEC's submissions service.
188
+ *
189
+ * The SEC asks every caller to identify itself, so the request carries a
190
+ * descriptive User-Agent header. One keyless request covers the issuer's
191
+ * recent filings and a little under a thousand rows.
192
+ *
193
+ * @param options - an optional Central Index Key and fetch stub
194
+ * @returns the issuer's profile, its recent filings, and the form counts
195
+ */
196
+ export async function fetchSecEdgarFilings(options) {
197
+ const fetchImpl = options?.fetchImpl ?? globalThis.fetch;
198
+ const url = buildSecEdgarSubmissionsUrl(options?.cik ?? SEC_EDGAR_APPLE_CIK);
199
+ const response = await httpGet(SEC_EDGAR_FILINGS_SOURCE_ID, url, {
200
+ fetchImpl,
201
+ headers: { 'User-Agent': SEC_EDGAR_USER_AGENT },
202
+ });
203
+ return parseSecEdgarFilingsPayload(await response.json());
204
+ }
205
+ /** SEC EDGAR issuer submissions and recent filings, keyless. */
206
+ export const secEdgarFilingsAdapter = {
207
+ id: SEC_EDGAR_FILINGS_SOURCE_ID,
208
+ name: 'SEC EDGAR filings',
209
+ auth: 'none',
210
+ description: "An issuer's recent filing history from SEC EDGAR, one row per filing, with the form type and the newest date in the list.",
211
+ fetchLive: async (options) => fetchSecEdgarFilings(options?.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }),
212
+ parse: (payload) => parseSecEdgarFilingsPayload(payload),
213
+ loadFixture: () => parseSecEdgarFilingsPayload(readFixtureJson(SEC_EDGAR_FIXTURE_FILENAME)),
214
+ };
215
+ //# sourceMappingURL=secEdgarFilings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secEdgarFilings.js","sourceRoot":"","sources":["../src/secEdgarFilings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"treasuryAvgInterestRate.d.ts","sourceRoot":"","sources":["../src/treasuryAvgInterestRate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACxC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,iFAAiF;AACjF,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,yBAAyB,CAAC;IACtC,SAAS,EAAE,yBAAyB,CAAC;IACrC,OAAO,EAAE,yBAAyB,CAAC;IACnC,MAAM,EAAE,yBAAyB,CAAC;IAClC,iEAAiE;IACjE,2BAA2B,EAAE,MAAM,CAAC;IACpC,gEAAgE;IAChE,8BAA8B,EAAE,MAAM,CAAC;CACxC;AAED,iDAAiD;AACjD,eAAO,MAAM,6BAA6B,oEACyB,CAAC;AAEpE,0EAA0E;AAC1E,eAAO,MAAM,+BAA+B,yCAAyC,CAAC;AAEtF;;;;;;GAMG;AACH,eAAO,MAAM,wCAAwC,0BAA0B,CAAC;AAEhF,4EAA4E;AAC5E,eAAO,MAAM,+CAA+C,gCAAgC,CAAC;AAE7F,qCAAqC;AACrC,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,QAAS,CAAC;AA4B3D;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAQT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,OAAO,GAAG,yBAAyB,EAAE,CAmEjG;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,yBAAyB,EAAE,GAClC,0BAA0B,CA+B5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAetC;AAED,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,EAAE,aAAa,CAAC,0BAA0B,CAkBpF,CAAC"}
1
+ {"version":3,"file":"treasuryAvgInterestRate.d.ts","sourceRoot":"","sources":["../src/treasuryAvgInterestRate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACxC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,iFAAiF;AACjF,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,yBAAyB,CAAC;IACtC,SAAS,EAAE,yBAAyB,CAAC;IACrC,OAAO,EAAE,yBAAyB,CAAC;IACnC,MAAM,EAAE,yBAAyB,CAAC;IAClC,iEAAiE;IACjE,2BAA2B,EAAE,MAAM,CAAC;IACpC,gEAAgE;IAChE,8BAA8B,EAAE,MAAM,CAAC;CACxC;AAED,iDAAiD;AACjD,eAAO,MAAM,6BAA6B,oEACyB,CAAC;AAEpE,0EAA0E;AAC1E,eAAO,MAAM,+BAA+B,yCAAyC,CAAC;AAEtF;;;;;;GAMG;AACH,eAAO,MAAM,wCAAwC,0BAA0B,CAAC;AAEhF,4EAA4E;AAC5E,eAAO,MAAM,+CAA+C,gCAAgC,CAAC;AAE7F,qCAAqC;AACrC,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,QAAS,CAAC;AA4B3D;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAQT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,OAAO,GAAG,yBAAyB,EAAE,CAmEjG;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,yBAAyB,EAAE,GAClC,0BAA0B,CA+B5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CAAC,OAAO,CAAC,EAAE;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAStC;AAED,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,EAAE,aAAa,CAAC,0BAA0B,CAkBpF,CAAC"}
@@ -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
  /** Base URL for the Treasury Fiscal Data API. */
5
6
  export const TREASURY_FISCAL_DATA_API_BASE = 'https://api.fiscaldata.treasury.gov/services/api/fiscal_service';
@@ -172,10 +173,7 @@ export function buildTreasuryAvgInterestRateSeries(months) {
172
173
  export async function fetchTreasuryAvgInterestRates(options) {
173
174
  const fetchImpl = options?.fetchImpl ?? globalThis.fetch;
174
175
  const url = buildTreasuryAvgInterestRateUrl(options?.securityType === undefined ? {} : { securityType: options.securityType });
175
- const response = await fetchImpl(url);
176
- if (!response.ok) {
177
- throw new UsSourceApiError('treasury', `HTTP ${response.status} reading the average interest rates`);
178
- }
176
+ const response = await httpGet('treasury', url, { fetchImpl });
179
177
  return buildTreasuryAvgInterestRateSeries(parseTreasuryAvgInterestRatePayload(await response.json()));
180
178
  }
181
179
  /** US Treasury average interest rate on the debt outstanding, keyless. */
@@ -1 +1 @@
1
- {"version":3,"file":"treasuryAvgInterestRate.js","sourceRoot":"","sources":["../src/treasuryAvgInterestRate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAmChD,iDAAiD;AACjD,MAAM,CAAC,MAAM,6BAA6B,GACxC,iEAAiE,CAAC;AAEpE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,+BAA+B,GAAG,sCAAsC,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,uBAAuB,CAAC;AAEhF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,+CAA+C,GAAG,6BAA6B,CAAC;AAE7F,qCAAqC;AACrC,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAI,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,MAAM,CAAC;AAE3D,8EAA8E;AAC9E,MAAM,kCAAkC,GACtC,oEAAoE,CAAC;AAEvE,kFAAkF;AAClF,MAAM,2CAA2C,GAAG,4CAA4C,CAAC;AAEjG,4DAA4D;AAC5D,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAErD,0EAA0E;AAC1E,6EAA6E;AAC7E,kDAAkD;AAClD,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAAC,OAG/C;IACC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,MAAM,EAAE,kCAAkC;QAC1C,MAAM,EAAE,yBAAyB,OAAO,EAAE,YAAY,IAAI,wCAAwC,EAAE;QACpG,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,oCAAoC,CAAC;KAChF,CAAC,CAAC;IACH,OAAO,GAAG,6BAA6B,GAAG,+BAA+B,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACnG,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mCAAmC,CAAC,OAAgB;IAClE,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,gBAAgB,CACxB,UAAU,EACV,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,iCAAiC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,MAAM,GAAgC,EAAE,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IACE,GAAG,CAAC,kBAAkB,KAAK,SAAS;YACpC,GAAG,CAAC,kBAAkB,KAAK,wCAAwC,EACnE,CAAC;YACD,MAAM,IAAI,kBAAkB,CAC1B,UAAU,EACV,6CAA6C,GAAG,CAAC,kBAAkB,EAAE,CACtE,CAAC;QACJ,CAAC;QACD,IACE,GAAG,CAAC,aAAa,KAAK,SAAS;YAC/B,GAAG,CAAC,aAAa,KAAK,+CAA+C,EACrE,CAAC;YACD,MAAM,IAAI,kBAAkB,CAC1B,UAAU,EACV,wCAAwC,GAAG,CAAC,aAAa,EAAE,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,8BAA8B,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvF,SAAS;QACX,CAAC;QACD,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,kBAAkB,CAC1B,UAAU,EACV,qCAAqC,GAAG,CAAC,qBAAqB,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,0BAA0B;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC,CAChD,MAAmC;IAEnC,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAClG,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;YAC1E,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QACD,IAAI,KAAK,CAAC,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,EAAE,CAAC;YACzE,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,IAAI;QACf,OAAO;QACP,MAAM;QACN,2BAA2B,EACzB,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,0BAA0B;QACrE,8BAA8B,EAC5B,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC,0BAA0B;KACrE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,OAGnD;IACC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACzD,MAAM,GAAG,GAAG,+BAA+B,CACzC,OAAO,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAClF,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,gBAAgB,CACxB,UAAU,EACV,QAAQ,QAAQ,CAAC,MAAM,qCAAqC,CAC7D,CAAC;IACJ,CAAC;IACD,OAAO,kCAAkC,CACvC,mCAAmC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,8BAA8B,GAA8C;IACvF,EAAE,EAAE,4BAA4B;IAChC,IAAI,EAAE,mCAAmC;IACzC,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,2GAA2G;IAC7G,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,CACjB,kCAAkC,CAAC,mCAAmC,CAAC,OAAO,CAAC,CAAC;IAClF,WAAW,EAAE,GAAG,EAAE,CAChB,kCAAkC,CAChC,mCAAmC,CACjC,eAAe,CAAC,2CAA2C,CAAC,CAC7D,CACF;CACJ,CAAC"}
1
+ {"version":3,"file":"treasuryAvgInterestRate.js","sourceRoot":"","sources":["../src/treasuryAvgInterestRate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import type { UsDataAdapter } from './types.js';
2
+ /** Adapter id for the Treasury debt-to-the-penny source. */
3
+ export declare const TREASURY_DEBT_TO_PENNY_SOURCE_ID = "treasury-debt-to-penny";
4
+ /** One business day of the Treasury's outstanding public debt. */
5
+ export interface TreasuryDebtToPennyDay {
6
+ /** The agency's own record date, e.g. "1993-04-01". */
7
+ recordDate: string;
8
+ /** Total public debt outstanding that day, in US dollars. */
9
+ totalPublicDebtOutstandingUsd: number;
10
+ /** Debt held by the public, in US dollars, or null when the row omits it. */
11
+ debtHeldByPublicUsd: number | null;
12
+ /** Intragovernmental holdings, in US dollars, or null when the row omits it. */
13
+ intragovernmentalHoldingsUsd: number | null;
14
+ }
15
+ /** One page of the debt file, folded down to the days a story leans on. */
16
+ export interface TreasuryDebtToPennyPage {
17
+ /** One entry per business day in the page, oldest first. */
18
+ days: TreasuryDebtToPennyDay[];
19
+ dayCount: number;
20
+ /** Oldest day in the page. */
21
+ firstDay: TreasuryDebtToPennyDay;
22
+ /** Newest day in the page. */
23
+ lastDay: TreasuryDebtToPennyDay;
24
+ /** Day in the page with the largest total debt outstanding. Ties go to the earlier date. */
25
+ highestTotalDebt: TreasuryDebtToPennyDay;
26
+ /** Day in the page with the smallest total debt outstanding. Ties go to the earlier date. */
27
+ lowestTotalDebt: TreasuryDebtToPennyDay;
28
+ }
29
+ /** Base URL for the Treasury Fiscal Data API. */
30
+ export declare const TREASURY_DEBT_TO_PENNY_API_BASE = "https://api.fiscaldata.treasury.gov/services/api/fiscal_service";
31
+ /** Dataset path for the debt to the penny file. */
32
+ export declare const TREASURY_DEBT_TO_PENNY_PATH = "/v2/accounting/od/debt_to_penny";
33
+ /**
34
+ * Row cap for one request.
35
+ *
36
+ * The file runs to hundreds of thousands of daily rows, so the adapter reads
37
+ * a short recent page rather than the whole run. The API defaults to
38
+ * oldest-first, the same order the endpoint was probed in on 2026-10-05.
39
+ */
40
+ export declare const TREASURY_DEBT_TO_PENNY_ROW_LIMIT = 10;
41
+ /**
42
+ * Builds the request URL for one page of the debt file.
43
+ *
44
+ * The endpoint is keyless. The page size is small on purpose: the file holds
45
+ * one row per business day since 1993, so a caller asking for the whole run
46
+ * would read hundreds of thousands of rows.
47
+ *
48
+ * @param options - an optional row cap
49
+ * @returns the full request URL
50
+ */
51
+ export declare function buildTreasuryDebtToPennyUrl(options?: {
52
+ rowLimit?: number;
53
+ }): string;
54
+ /**
55
+ * Parses one response into the days that carry a total debt figure.
56
+ *
57
+ * A row without a readable date stops the parse, because the file is a date
58
+ * series and an undated row cannot be placed. A row without a total debt
59
+ * figure is dropped, which is how a day the agency could not report arrives.
60
+ *
61
+ * @param payload - the JSON body from the Fiscal Data API
62
+ * @returns the days that carry a total, in the order the agency sent them
63
+ */
64
+ export declare function parseTreasuryDebtToPennyPayload(payload: unknown): TreasuryDebtToPennyDay[];
65
+ /**
66
+ * Folds the parsed days into one page with the headline days named.
67
+ *
68
+ * The days are sorted oldest first, so a caller reading index 0 gets the
69
+ * oldest day in the page and index -1 gets the newest.
70
+ *
71
+ * @param days - the parsed days, in any order
72
+ * @returns the sorted days, the first and last, and the highest and lowest on the page
73
+ */
74
+ export declare function buildTreasuryDebtToPennyPage(days: TreasuryDebtToPennyDay[]): TreasuryDebtToPennyPage;
75
+ /**
76
+ * Reads one page of the Treasury's debt to the penny file.
77
+ *
78
+ * One keyless request covers the short page the endpoint answers by default,
79
+ * one row per business day.
80
+ *
81
+ * @param options - an optional row cap and fetch stub
82
+ * @returns the daily totals in the page, oldest first, with the extremes named
83
+ */
84
+ export declare function fetchTreasuryDebtToPenny(options?: {
85
+ rowLimit?: number;
86
+ fetchImpl?: typeof globalThis.fetch;
87
+ }): Promise<TreasuryDebtToPennyPage>;
88
+ /** US Treasury debt to the penny, one row per business day, keyless. */
89
+ export declare const treasuryDebtToPennyAdapter: UsDataAdapter<TreasuryDebtToPennyPage>;
90
+ //# sourceMappingURL=treasuryDebtToPenny.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treasuryDebtToPenny.d.ts","sourceRoot":"","sources":["../src/treasuryDebtToPenny.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,4DAA4D;AAC5D,eAAO,MAAM,gCAAgC,2BAA2B,CAAC;AAEzE,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,6BAA6B,EAAE,MAAM,CAAC;IACtC,6EAA6E;IAC7E,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gFAAgF;IAChF,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,4DAA4D;IAC5D,IAAI,EAAE,sBAAsB,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,8BAA8B;IAC9B,OAAO,EAAE,sBAAsB,CAAC;IAChC,4FAA4F;IAC5F,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,6FAA6F;IAC7F,eAAe,EAAE,sBAAsB,CAAC;CACzC;AAED,iDAAiD;AACjD,eAAO,MAAM,+BAA+B,oEACuB,CAAC;AAEpE,mDAAmD;AACnD,eAAO,MAAM,2BAA2B,oCAAoC,CAAC;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AAyBnD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAKnF;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,EAAE,CA6C1F;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,sBAAsB,EAAE,GAC7B,uBAAuB,CA2BzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACrC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAOnC;AAED,wEAAwE;AACxE,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,uBAAuB,CAe7E,CAAC"}