@fedpulse/sdk 1.0.3 → 1.0.5
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/README.md +58 -6
- package/dist/cjs/resources/assistance.cjs +7 -7
- package/dist/esm/resources/assistance.js +7 -7
- package/dist/esm/resources/assistance.js.map +1 -1
- package/dist/types/resources/assistance.d.cts +4 -4
- package/dist/types/resources/assistance.d.ts +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ const client = new FedPulse({ apiKey: process.env.FEDPULSE_API_KEY! });
|
|
|
44
44
|
|
|
45
45
|
// Search opportunities
|
|
46
46
|
const result = await client.opportunities.list({
|
|
47
|
-
|
|
47
|
+
q: 'cybersecurity',
|
|
48
48
|
naics: ['541519', '541512'],
|
|
49
49
|
postedAfter: '2025-01-01',
|
|
50
50
|
limit: 25,
|
|
@@ -74,7 +74,7 @@ Never hard-code keys in source — use environment variables.
|
|
|
74
74
|
|
|
75
75
|
```ts
|
|
76
76
|
// List / search opportunities
|
|
77
|
-
await client.opportunities.list({
|
|
77
|
+
await client.opportunities.list({ q: 'cloud', naics: ['541512'] });
|
|
78
78
|
|
|
79
79
|
// Retrieve a single opportunity
|
|
80
80
|
await client.opportunities.get('abc123-notice-id');
|
|
@@ -155,22 +155,74 @@ await client.intelligence.marketAnalysis('541512');
|
|
|
155
155
|
await client.intelligence.complianceCheck({ uei: 'ABCDEF123456' });
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
+
### `client.assistance`
|
|
159
|
+
|
|
160
|
+
Federal grants and assistance listings (CFDA programs).
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
// Search listings
|
|
164
|
+
await client.assistance.list({ keyword: 'broadband', agency: 'USDA' });
|
|
165
|
+
|
|
166
|
+
// Retrieve one by CFDA program number (format: "XX.XXX")
|
|
167
|
+
await client.assistance.get('10.001');
|
|
168
|
+
|
|
169
|
+
// Aggregated stats
|
|
170
|
+
await client.assistance.stats();
|
|
171
|
+
|
|
172
|
+
// Auto-paginate all listings
|
|
173
|
+
for await (const page of client.assistance.paginate({ agency: 'HHS' })) {
|
|
174
|
+
console.log(page.data);
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### `client.analytics`
|
|
179
|
+
|
|
180
|
+
Per-user API usage analytics — scoped to the authenticated key.
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
// KPI totals (requests today, this month, error rates)
|
|
184
|
+
await client.analytics.summary({ range: '30d' });
|
|
185
|
+
|
|
186
|
+
// Per-day breakdown for charting (up to 90 days)
|
|
187
|
+
await client.analytics.chart({ range: '30d' });
|
|
188
|
+
|
|
189
|
+
// Top endpoints by request volume and P95 latency
|
|
190
|
+
await client.analytics.endpoints({ range: '7d' });
|
|
191
|
+
|
|
192
|
+
// Paginated raw request log
|
|
193
|
+
await client.analytics.logs({ limit: 20 });
|
|
194
|
+
```
|
|
195
|
+
|
|
158
196
|
### `client.webhooks`
|
|
159
197
|
|
|
160
198
|
```ts
|
|
161
199
|
// List configured webhooks
|
|
162
200
|
await client.webhooks.list();
|
|
163
201
|
|
|
202
|
+
// Get a single webhook
|
|
203
|
+
await client.webhooks.get('wh-uuid');
|
|
204
|
+
|
|
164
205
|
// Create
|
|
165
206
|
await client.webhooks.create({ url: 'https://example.com/hook', events: ['opportunity.new'] });
|
|
166
207
|
|
|
167
208
|
// Update / delete
|
|
168
|
-
await client.webhooks.update('
|
|
169
|
-
await client.webhooks.delete('
|
|
209
|
+
await client.webhooks.update('wh-uuid', { active: false });
|
|
210
|
+
await client.webhooks.delete('wh-uuid');
|
|
211
|
+
|
|
212
|
+
// Send a test event to the endpoint immediately
|
|
213
|
+
await client.webhooks.test('wh-uuid');
|
|
214
|
+
|
|
215
|
+
// Resume a paused webhook (auto-paused after 5 consecutive failures)
|
|
216
|
+
await client.webhooks.resume('wh-uuid');
|
|
170
217
|
|
|
171
218
|
// Deliveries log
|
|
172
|
-
await client.webhooks.listDeliveries('
|
|
173
|
-
await client.webhooks.getDelivery('
|
|
219
|
+
await client.webhooks.listDeliveries('wh-uuid', { status: 'failed' });
|
|
220
|
+
await client.webhooks.getDelivery('wh-uuid', 'delivery-uuid');
|
|
221
|
+
|
|
222
|
+
// Auto-paginate all delivery history
|
|
223
|
+
for await (const page of client.webhooks.deliveryPages('wh-uuid', { status: 'failed' })) {
|
|
224
|
+
console.log(page.data);
|
|
225
|
+
}
|
|
174
226
|
```
|
|
175
227
|
|
|
176
228
|
---
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Assistance Listings resource client.
|
|
4
4
|
*
|
|
5
|
-
* Wraps all /v1/assistance endpoints:
|
|
6
|
-
* - list GET /v1/assistance
|
|
7
|
-
* - stats GET /v1/assistance/stats
|
|
8
|
-
* - get GET /v1/assistance/:number (CFDA program number)
|
|
5
|
+
* Wraps all /v1/assistance-listings endpoints:
|
|
6
|
+
* - list GET /v1/assistance-listings
|
|
7
|
+
* - stats GET /v1/assistance-listings/stats
|
|
8
|
+
* - get GET /v1/assistance-listings/:number (CFDA program number)
|
|
9
9
|
* - paginate auto-paginates over the list endpoint
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -26,7 +26,7 @@ class AssistanceResource {
|
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
28
|
async list(params = {}) {
|
|
29
|
-
return this.http.get('/v1/assistance', params);
|
|
29
|
+
return this.http.get('/v1/assistance-listings', params);
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Get aggregated statistics for assistance listings.
|
|
@@ -39,7 +39,7 @@ class AssistanceResource {
|
|
|
39
39
|
* ```
|
|
40
40
|
*/
|
|
41
41
|
async stats(params = {}) {
|
|
42
|
-
return this.http.get('/v1/assistance/stats', params);
|
|
42
|
+
return this.http.get('/v1/assistance-listings/stats', params);
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Get a single assistance listing by its CFDA program number.
|
|
@@ -61,7 +61,7 @@ class AssistanceResource {
|
|
|
61
61
|
if (!/^\d{2}\.\d{3}$/.test(trimmed)) {
|
|
62
62
|
throw new Error('programNumber must be in "XX.XXX" format (e.g. "17.002")');
|
|
63
63
|
}
|
|
64
|
-
return this.http.get(`/v1/assistance/${encodeURIComponent(trimmed)}`);
|
|
64
|
+
return this.http.get(`/v1/assistance-listings/${encodeURIComponent(trimmed)}`);
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* Async generator that automatically paginates over all matching assistance listings.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Assistance Listings resource client.
|
|
3
3
|
*
|
|
4
|
-
* Wraps all /v1/assistance endpoints:
|
|
5
|
-
* - list GET /v1/assistance
|
|
6
|
-
* - stats GET /v1/assistance/stats
|
|
7
|
-
* - get GET /v1/assistance/:number (CFDA program number)
|
|
4
|
+
* Wraps all /v1/assistance-listings endpoints:
|
|
5
|
+
* - list GET /v1/assistance-listings
|
|
6
|
+
* - stats GET /v1/assistance-listings/stats
|
|
7
|
+
* - get GET /v1/assistance-listings/:number (CFDA program number)
|
|
8
8
|
* - paginate auto-paginates over the list endpoint
|
|
9
9
|
*/
|
|
10
10
|
export class AssistanceResource {
|
|
@@ -23,7 +23,7 @@ export class AssistanceResource {
|
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
25
|
async list(params = {}) {
|
|
26
|
-
return this.http.get('/v1/assistance', params);
|
|
26
|
+
return this.http.get('/v1/assistance-listings', params);
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Get aggregated statistics for assistance listings.
|
|
@@ -36,7 +36,7 @@ export class AssistanceResource {
|
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
38
|
async stats(params = {}) {
|
|
39
|
-
return this.http.get('/v1/assistance/stats', params);
|
|
39
|
+
return this.http.get('/v1/assistance-listings/stats', params);
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Get a single assistance listing by its CFDA program number.
|
|
@@ -58,7 +58,7 @@ export class AssistanceResource {
|
|
|
58
58
|
if (!/^\d{2}\.\d{3}$/.test(trimmed)) {
|
|
59
59
|
throw new Error('programNumber must be in "XX.XXX" format (e.g. "17.002")');
|
|
60
60
|
}
|
|
61
|
-
return this.http.get(`/v1/assistance/${encodeURIComponent(trimmed)}`);
|
|
61
|
+
return this.http.get(`/v1/assistance-listings/${encodeURIComponent(trimmed)}`);
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Async generator that automatically paginates over all matching assistance listings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistance.js","sourceRoot":"","sources":["../../../src/resources/assistance.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,MAAM,OAAO,kBAAkB;IACZ,IAAI,CAAa;IAElC,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CACR,SAA+B,EAAE;QAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,
|
|
1
|
+
{"version":3,"file":"assistance.js","sourceRoot":"","sources":["../../../src/resources/assistance.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,MAAM,OAAO,kBAAkB;IACZ,IAAI,CAAa;IAElC,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CACR,SAA+B,EAAE;QAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,yBAAyB,EACzB,MAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CACT,SAAmC,EAAE;QAErC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,+BAA+B,EAC/B,MAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,CAAC,aAAqB;QAC7B,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvF,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,2BAA2B,kBAAkB,CAAC,OAAO,CAAC,EAAE,CACzD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,CAAC,QAAQ,CACb,MAA0C;QAE1C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,OAAO,OAAO,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,MAAM,MAAM,CAAC;YAEb,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YACrC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;iBAAM,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;gBACvC,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;gBACjC,IAAI,OAAO;oBAAE,IAAI,EAAE,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Assistance Listings resource client.
|
|
3
3
|
*
|
|
4
|
-
* Wraps all /v1/assistance endpoints:
|
|
5
|
-
* - list GET /v1/assistance
|
|
6
|
-
* - stats GET /v1/assistance/stats
|
|
7
|
-
* - get GET /v1/assistance/:number (CFDA program number)
|
|
4
|
+
* Wraps all /v1/assistance-listings endpoints:
|
|
5
|
+
* - list GET /v1/assistance-listings
|
|
6
|
+
* - stats GET /v1/assistance-listings/stats
|
|
7
|
+
* - get GET /v1/assistance-listings/:number (CFDA program number)
|
|
8
8
|
* - paginate auto-paginates over the list endpoint
|
|
9
9
|
*/
|
|
10
10
|
import type { HttpClient, ParsedResponse } from '../http.cjs';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Assistance Listings resource client.
|
|
3
3
|
*
|
|
4
|
-
* Wraps all /v1/assistance endpoints:
|
|
5
|
-
* - list GET /v1/assistance
|
|
6
|
-
* - stats GET /v1/assistance/stats
|
|
7
|
-
* - get GET /v1/assistance/:number (CFDA program number)
|
|
4
|
+
* Wraps all /v1/assistance-listings endpoints:
|
|
5
|
+
* - list GET /v1/assistance-listings
|
|
6
|
+
* - stats GET /v1/assistance-listings/stats
|
|
7
|
+
* - get GET /v1/assistance-listings/:number (CFDA program number)
|
|
8
8
|
* - paginate auto-paginates over the list endpoint
|
|
9
9
|
*/
|
|
10
10
|
import type { HttpClient, ParsedResponse } from '../http.js';
|
package/package.json
CHANGED