@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 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
- keyword: 'cybersecurity',
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({ keyword: 'cloud', naics: ['541512'] });
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('wh_id', { active: false });
169
- await client.webhooks.delete('wh_id');
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('wh_id');
173
- await client.webhooks.getDelivery('wh_id', 'delivery-id');
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,gBAAgB,EAChB,MAAiC,CAClC,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CACT,SAAmC,EAAE;QAErC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,sBAAsB,EACtB,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,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAChD,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
+ {"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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedpulse/sdk",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Official JavaScript/TypeScript SDK for the FedPulse API — federal contracts, exclusions, entities, assistance listings, and market intelligence.",
5
5
  "keywords": [
6
6
  "fedpulse",