oilpriceapi 0.3.2 → 0.5.0
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 +325 -3
- package/dist/client.d.ts +10 -0
- package/dist/client.js +7 -2
- package/dist/index.d.ts +2 -0
- package/dist/resources/alerts.d.ts +298 -0
- package/dist/resources/alerts.js +371 -0
- package/dist/resources/diesel.d.ts +190 -0
- package/dist/resources/diesel.js +144 -0
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -10,12 +10,14 @@ Official Node.js SDK for [Oil Price API](https://www.oilpriceapi.com) - Get real
|
|
|
10
10
|
- ✅ **Simple** - Get started in 5 lines of code
|
|
11
11
|
- 🔒 **Type-Safe** - Full TypeScript support with detailed type definitions
|
|
12
12
|
- ⚡ **Fast** - Zero dependencies, uses native fetch (Node 18+)
|
|
13
|
-
- 🎯 **Comprehensive** - Covers all API endpoints
|
|
13
|
+
- 🎯 **Comprehensive** - Covers all API endpoints including diesel prices & alerts
|
|
14
14
|
- 🚀 **Modern** - ES Modules, async/await, Promise-based
|
|
15
15
|
- 🛡️ **Robust** - Custom error classes for better error handling
|
|
16
16
|
- 🔄 **Resilient** - Automatic retries with exponential backoff
|
|
17
17
|
- ⏱️ **Reliable** - Request timeouts and smart error handling
|
|
18
18
|
- 🐛 **Debuggable** - Built-in debug logging mode
|
|
19
|
+
- ⛽ **NEW v0.4.0** - Diesel prices (state averages + station-level pricing)
|
|
20
|
+
- 🔔 **NEW v0.5.0** - Price alerts with webhook notifications
|
|
19
21
|
|
|
20
22
|
## Installation
|
|
21
23
|
|
|
@@ -97,6 +99,176 @@ const prices = await client.getHistoricalPrices({
|
|
|
97
99
|
console.log(`Got ${prices.length} data points for 2024`);
|
|
98
100
|
```
|
|
99
101
|
|
|
102
|
+
### Get Diesel Prices (New in v0.4.0)
|
|
103
|
+
|
|
104
|
+
#### Get State Average Diesel Price
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// Get California diesel price
|
|
108
|
+
const caPrice = await client.diesel.getPrice('CA');
|
|
109
|
+
console.log(`California diesel: $${caPrice.price}/gallon`);
|
|
110
|
+
console.log(`Source: ${caPrice.source}`);
|
|
111
|
+
console.log(`Last updated: ${caPrice.updated_at}`);
|
|
112
|
+
|
|
113
|
+
// Example output:
|
|
114
|
+
// California diesel: $3.89/gallon
|
|
115
|
+
// Source: EIA
|
|
116
|
+
// Last updated: 2025-12-15T10:00:00Z
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### Get Nearby Diesel Stations
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
// Find diesel stations near San Francisco
|
|
123
|
+
const result = await client.diesel.getStations({
|
|
124
|
+
lat: 37.7749, // San Francisco latitude
|
|
125
|
+
lng: -122.4194, // San Francisco longitude
|
|
126
|
+
radius: 8047 // 5 miles in meters (default if not specified)
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
console.log(`Regional average: $${result.regional_average.price}/gallon`);
|
|
130
|
+
console.log(`Found ${result.stations.length} stations within ${result.search_area.radius_miles} miles`);
|
|
131
|
+
|
|
132
|
+
// Print each station
|
|
133
|
+
result.stations.forEach(station => {
|
|
134
|
+
console.log(`\n${station.name}`);
|
|
135
|
+
console.log(` Address: ${station.address}`);
|
|
136
|
+
console.log(` Price: ${station.formatted_price}`);
|
|
137
|
+
console.log(` ${station.price_vs_average}`);
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// Example output:
|
|
141
|
+
// Regional average: $3.89/gallon
|
|
142
|
+
// Found 12 stations within 5 miles
|
|
143
|
+
//
|
|
144
|
+
// Chevron Station
|
|
145
|
+
// Address: 123 Main St, San Francisco, CA
|
|
146
|
+
// Price: $3.75
|
|
147
|
+
// $0.14 cheaper than regional average
|
|
148
|
+
//
|
|
149
|
+
// Shell Gas
|
|
150
|
+
// Address: 456 Oak Ave, San Francisco, CA
|
|
151
|
+
// Price: $3.89
|
|
152
|
+
// Same as regional average
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### Find Cheapest Diesel Station
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
const result = await client.diesel.getStations({
|
|
159
|
+
lat: 34.0522, // Los Angeles
|
|
160
|
+
lng: -118.2437,
|
|
161
|
+
radius: 5000 // ~3 miles
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
// Find the cheapest station
|
|
165
|
+
const cheapest = result.stations.reduce((min, station) =>
|
|
166
|
+
station.diesel_price < min.diesel_price ? station : min
|
|
167
|
+
);
|
|
168
|
+
|
|
169
|
+
console.log(`Cheapest diesel: ${cheapest.name} at ${cheapest.formatted_price}`);
|
|
170
|
+
console.log(`Savings: ${Math.abs(cheapest.price_delta!).toFixed(2)} per gallon vs regional average`);
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
**Note:** Station-level diesel prices are available on paid tiers (Exploration and above). State averages are free.
|
|
174
|
+
|
|
175
|
+
### Price Alerts (New in v0.5.0)
|
|
176
|
+
|
|
177
|
+
#### Create a Price Alert
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
// Create an alert when Brent crude exceeds $85
|
|
181
|
+
const alert = await client.alerts.create({
|
|
182
|
+
name: 'Brent High Alert',
|
|
183
|
+
commodity_code: 'BRENT_CRUDE_USD',
|
|
184
|
+
condition_operator: 'greater_than',
|
|
185
|
+
condition_value: 85.00,
|
|
186
|
+
webhook_url: 'https://your-app.com/webhooks/price-alert',
|
|
187
|
+
enabled: true,
|
|
188
|
+
cooldown_minutes: 60 // Wait 60 minutes between triggers
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
console.log(`Alert created: ${alert.name} (ID: ${alert.id})`);
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
#### List All Alerts
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
const alerts = await client.alerts.list();
|
|
198
|
+
|
|
199
|
+
alerts.forEach(alert => {
|
|
200
|
+
console.log(`${alert.name}: ${alert.commodity_code} ${alert.condition_operator} ${alert.condition_value}`);
|
|
201
|
+
console.log(` Status: ${alert.enabled ? 'Active' : 'Disabled'}`);
|
|
202
|
+
console.log(` Triggers: ${alert.trigger_count}`);
|
|
203
|
+
console.log(` Last triggered: ${alert.last_triggered_at || 'Never'}`);
|
|
204
|
+
});
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
#### Update an Alert
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
// Disable an alert
|
|
211
|
+
await client.alerts.update(alertId, { enabled: false });
|
|
212
|
+
|
|
213
|
+
// Change threshold and cooldown
|
|
214
|
+
await client.alerts.update(alertId, {
|
|
215
|
+
condition_value: 90.00,
|
|
216
|
+
cooldown_minutes: 120
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
// Update webhook URL
|
|
220
|
+
await client.alerts.update(alertId, {
|
|
221
|
+
webhook_url: 'https://new-app.com/webhook'
|
|
222
|
+
});
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
#### Delete an Alert
|
|
226
|
+
|
|
227
|
+
```typescript
|
|
228
|
+
await client.alerts.delete(alertId);
|
|
229
|
+
console.log('Alert deleted successfully');
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
#### Test Webhook Endpoint
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
const result = await client.alerts.testWebhook('https://your-app.com/webhook');
|
|
236
|
+
|
|
237
|
+
if (result.success) {
|
|
238
|
+
console.log(`Webhook OK (${result.status_code}) - ${result.response_time_ms}ms`);
|
|
239
|
+
} else {
|
|
240
|
+
console.error(`Webhook failed: ${result.error}`);
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**Alert Operators:**
|
|
245
|
+
- `greater_than` - Trigger when price exceeds threshold
|
|
246
|
+
- `less_than` - Trigger when price falls below threshold
|
|
247
|
+
- `equals` - Trigger when price matches threshold exactly
|
|
248
|
+
- `greater_than_or_equal` - Trigger when price meets or exceeds threshold
|
|
249
|
+
- `less_than_or_equal` - Trigger when price is at or below threshold
|
|
250
|
+
|
|
251
|
+
**Webhook Payload Example:**
|
|
252
|
+
When an alert triggers, a POST request is sent to your webhook URL with:
|
|
253
|
+
```json
|
|
254
|
+
{
|
|
255
|
+
"event": "price_alert.triggered",
|
|
256
|
+
"alert_id": "550e8400-e29b-41d4-a716-446655440000",
|
|
257
|
+
"alert_name": "Brent High Alert",
|
|
258
|
+
"commodity_code": "BRENT_CRUDE_USD",
|
|
259
|
+
"condition_operator": "greater_than",
|
|
260
|
+
"condition_value": 85.00,
|
|
261
|
+
"current_price": 86.50,
|
|
262
|
+
"triggered_at": "2025-12-15T14:30:00Z"
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Limits:**
|
|
267
|
+
- Maximum 100 alerts per user
|
|
268
|
+
- Cooldown period: 0-1440 minutes (24 hours)
|
|
269
|
+
- Condition value: Must be between $0.01 and $1,000,000
|
|
270
|
+
- Webhook URL: Must use HTTPS protocol
|
|
271
|
+
|
|
100
272
|
### Advanced Configuration
|
|
101
273
|
|
|
102
274
|
```typescript
|
|
@@ -202,6 +374,39 @@ const { commodities } = await client.getCommodities();
|
|
|
202
374
|
console.log(`Found ${commodities.length} commodities`);
|
|
203
375
|
```
|
|
204
376
|
|
|
377
|
+
**Diesel Prices:**
|
|
378
|
+
```typescript
|
|
379
|
+
// State average (free)
|
|
380
|
+
const caPrice = await client.diesel.getPrice('CA');
|
|
381
|
+
console.log(`CA diesel: $${caPrice.price}/gal`);
|
|
382
|
+
|
|
383
|
+
// Nearby stations (paid tiers)
|
|
384
|
+
const stations = await client.diesel.getStations({
|
|
385
|
+
lat: 37.7749,
|
|
386
|
+
lng: -122.4194,
|
|
387
|
+
radius: 8047 // 5 miles
|
|
388
|
+
});
|
|
389
|
+
console.log(`Found ${stations.stations.length} stations`);
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
**Price Alerts:**
|
|
393
|
+
```typescript
|
|
394
|
+
// Create an alert
|
|
395
|
+
const alert = await client.alerts.create({
|
|
396
|
+
name: 'Brent High Alert',
|
|
397
|
+
commodity_code: 'BRENT_CRUDE_USD',
|
|
398
|
+
condition_operator: 'greater_than',
|
|
399
|
+
condition_value: 85.00,
|
|
400
|
+
webhook_url: 'https://your-app.com/webhook'
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
// List all alerts
|
|
404
|
+
const alerts = await client.alerts.list();
|
|
405
|
+
|
|
406
|
+
// Update an alert
|
|
407
|
+
await client.alerts.update(alert.id, { enabled: false });
|
|
408
|
+
```
|
|
409
|
+
|
|
205
410
|
**Error Handling:**
|
|
206
411
|
```typescript
|
|
207
412
|
try {
|
|
@@ -273,6 +478,55 @@ Get metadata for a specific commodity by code.
|
|
|
273
478
|
|
|
274
479
|
**Returns:** `Promise<Commodity>` - Commodity metadata object
|
|
275
480
|
|
|
481
|
+
### `client.diesel`
|
|
482
|
+
|
|
483
|
+
Resource for diesel price data (state averages and station-level pricing).
|
|
484
|
+
|
|
485
|
+
##### `diesel.getPrice(state)`
|
|
486
|
+
|
|
487
|
+
Get average diesel price for a US state from EIA data.
|
|
488
|
+
|
|
489
|
+
**Parameters:**
|
|
490
|
+
- `state` (string, required) - Two-letter US state code (e.g., "CA", "TX", "NY")
|
|
491
|
+
|
|
492
|
+
**Returns:** `Promise<DieselPrice>`
|
|
493
|
+
|
|
494
|
+
**Example:**
|
|
495
|
+
```typescript
|
|
496
|
+
const caPrice = await client.diesel.getPrice('CA');
|
|
497
|
+
console.log(`California: $${caPrice.price}/gallon`);
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
##### `diesel.getStations(options)`
|
|
501
|
+
|
|
502
|
+
Get nearby diesel stations with current pricing from Google Maps data.
|
|
503
|
+
|
|
504
|
+
**Parameters:**
|
|
505
|
+
- `options.lat` (number, required) - Latitude (-90 to 90)
|
|
506
|
+
- `options.lng` (number, required) - Longitude (-180 to 180)
|
|
507
|
+
- `options.radius` (number, optional) - Search radius in meters (default: 8047 = 5 miles, max: 50000)
|
|
508
|
+
|
|
509
|
+
**Returns:** `Promise<DieselStationsResponse>`
|
|
510
|
+
|
|
511
|
+
**Tier Requirements:** Available on paid tiers (Exploration and above)
|
|
512
|
+
|
|
513
|
+
**Example:**
|
|
514
|
+
```typescript
|
|
515
|
+
const result = await client.diesel.getStations({
|
|
516
|
+
lat: 37.7749,
|
|
517
|
+
lng: -122.4194,
|
|
518
|
+
radius: 8047 // 5 miles
|
|
519
|
+
});
|
|
520
|
+
|
|
521
|
+
console.log(`Found ${result.stations.length} stations`);
|
|
522
|
+
console.log(`Regional average: $${result.regional_average.price}/gallon`);
|
|
523
|
+
|
|
524
|
+
const cheapest = result.stations.reduce((min, s) =>
|
|
525
|
+
s.diesel_price < min.diesel_price ? s : min
|
|
526
|
+
);
|
|
527
|
+
console.log(`Cheapest: ${cheapest.name} at ${cheapest.formatted_price}`);
|
|
528
|
+
```
|
|
529
|
+
|
|
276
530
|
### Types
|
|
277
531
|
|
|
278
532
|
#### `Price`
|
|
@@ -290,6 +544,74 @@ interface Price {
|
|
|
290
544
|
}
|
|
291
545
|
```
|
|
292
546
|
|
|
547
|
+
#### `DieselPrice`
|
|
548
|
+
|
|
549
|
+
```typescript
|
|
550
|
+
interface DieselPrice {
|
|
551
|
+
state: string; // State code (e.g., "CA", "TX")
|
|
552
|
+
price: number; // Average diesel price in USD per gallon
|
|
553
|
+
currency: string; // Currency code (always "USD")
|
|
554
|
+
unit: string; // Unit of measurement (always "gallon")
|
|
555
|
+
granularity: string; // Level (e.g., "state", "national")
|
|
556
|
+
source: string; // Data source (e.g., "EIA")
|
|
557
|
+
updated_at: string; // ISO 8601 timestamp of last update
|
|
558
|
+
cached?: boolean; // Whether served from cache
|
|
559
|
+
}
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
#### `DieselStation`
|
|
563
|
+
|
|
564
|
+
```typescript
|
|
565
|
+
interface DieselStation {
|
|
566
|
+
name: string; // Station name
|
|
567
|
+
address: string; // Full street address
|
|
568
|
+
location: {
|
|
569
|
+
lat: number; // Latitude
|
|
570
|
+
lng: number; // Longitude
|
|
571
|
+
};
|
|
572
|
+
diesel_price: number; // Price at this station (USD per gallon)
|
|
573
|
+
formatted_price: string;// Formatted price (e.g., "$3.89")
|
|
574
|
+
currency: string; // Currency code (always "USD")
|
|
575
|
+
unit: string; // Unit (always "gallon")
|
|
576
|
+
price_delta?: number; // Difference from regional average
|
|
577
|
+
price_vs_average?: string; // Human-readable comparison
|
|
578
|
+
fuel_types?: string[]; // Available fuel types
|
|
579
|
+
last_updated?: string; // ISO 8601 timestamp
|
|
580
|
+
}
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
#### `DieselStationsResponse`
|
|
584
|
+
|
|
585
|
+
```typescript
|
|
586
|
+
interface DieselStationsResponse {
|
|
587
|
+
regional_average: {
|
|
588
|
+
price: number; // Regional average price
|
|
589
|
+
currency: string; // Currency code
|
|
590
|
+
unit: string; // Unit
|
|
591
|
+
region: string; // Region name
|
|
592
|
+
granularity: string; // Granularity level
|
|
593
|
+
source: string; // Data source
|
|
594
|
+
};
|
|
595
|
+
stations: DieselStation[]; // List of nearby stations
|
|
596
|
+
search_area: {
|
|
597
|
+
center: {
|
|
598
|
+
lat: number; // Search center latitude
|
|
599
|
+
lng: number; // Search center longitude
|
|
600
|
+
};
|
|
601
|
+
radius_meters: number;// Search radius in meters
|
|
602
|
+
radius_miles: number; // Search radius in miles
|
|
603
|
+
};
|
|
604
|
+
metadata: {
|
|
605
|
+
total_stations: number; // Number of stations found
|
|
606
|
+
source: string; // Data source
|
|
607
|
+
cached: boolean; // Whether served from cache
|
|
608
|
+
api_cost: number; // Cost in dollars
|
|
609
|
+
timestamp: string; // ISO 8601 timestamp
|
|
610
|
+
cache_age_hours?: number; // Cache age in hours
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
```
|
|
614
|
+
|
|
293
615
|
### Error Classes
|
|
294
616
|
|
|
295
617
|
All errors extend `OilPriceAPIError`:
|
|
@@ -304,7 +626,7 @@ All errors extend `OilPriceAPIError`:
|
|
|
304
626
|
The API provides prices for the following commodities:
|
|
305
627
|
|
|
306
628
|
- **Crude Oil**: WTI, Brent Crude
|
|
307
|
-
- **Refined Products**: Gasoline, Diesel, Heating Oil, Jet Fuel
|
|
629
|
+
- **Refined Products**: Gasoline, Diesel (state averages + station-level), Heating Oil, Jet Fuel
|
|
308
630
|
- **Natural Gas**: US Natural Gas, EU Natural Gas, UK Natural Gas
|
|
309
631
|
- **And more...**
|
|
310
632
|
|
|
@@ -312,7 +634,7 @@ See the [full list of commodities](https://www.oilpriceapi.com/commodities) in t
|
|
|
312
634
|
|
|
313
635
|
## Pricing & Rate Limits
|
|
314
636
|
|
|
315
|
-
- **Free Tier**:
|
|
637
|
+
- **Free Tier**: 100 requests (lifetime)
|
|
316
638
|
- **Starter**: 50,000 requests/month - $49/mo
|
|
317
639
|
- **Professional**: 100,000 requests/month - $99/mo
|
|
318
640
|
- **Business**: 200,000 requests/month - $199/mo
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { OilPriceAPIConfig, Price, LatestPricesOptions, HistoricalPricesOptions, Commodity, CommoditiesResponse, CategoriesResponse } from './types.js';
|
|
2
|
+
import { DieselResource } from './resources/diesel.js';
|
|
3
|
+
import { AlertsResource } from './resources/alerts.js';
|
|
2
4
|
/**
|
|
3
5
|
* Official Node.js client for Oil Price API
|
|
4
6
|
*
|
|
@@ -33,6 +35,14 @@ export declare class OilPriceAPI {
|
|
|
33
35
|
private retryStrategy;
|
|
34
36
|
private timeout;
|
|
35
37
|
private debug;
|
|
38
|
+
/**
|
|
39
|
+
* Diesel prices resource (state averages + station-level pricing)
|
|
40
|
+
*/
|
|
41
|
+
readonly diesel: DieselResource;
|
|
42
|
+
/**
|
|
43
|
+
* Price alerts resource (create, manage, and monitor alerts)
|
|
44
|
+
*/
|
|
45
|
+
readonly alerts: AlertsResource;
|
|
36
46
|
constructor(config: OilPriceAPIConfig);
|
|
37
47
|
/**
|
|
38
48
|
* Log debug messages if debug mode is enabled
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { OilPriceAPIError, AuthenticationError, RateLimitError, NotFoundError, ServerError, TimeoutError, } from './errors.js';
|
|
2
|
+
import { DieselResource } from './resources/diesel.js';
|
|
3
|
+
import { AlertsResource } from './resources/alerts.js';
|
|
2
4
|
/**
|
|
3
5
|
* Official Node.js client for Oil Price API
|
|
4
6
|
*
|
|
@@ -37,6 +39,9 @@ export class OilPriceAPI {
|
|
|
37
39
|
this.retryStrategy = config.retryStrategy || 'exponential';
|
|
38
40
|
this.timeout = config.timeout || 90000; // 90 seconds for slow historical queries
|
|
39
41
|
this.debug = config.debug || false;
|
|
42
|
+
// Initialize resources
|
|
43
|
+
this.diesel = new DieselResource(this);
|
|
44
|
+
this.alerts = new AlertsResource(this);
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
47
|
* Log debug messages if debug mode is enabled
|
|
@@ -121,9 +126,9 @@ export class OilPriceAPI {
|
|
|
121
126
|
headers: {
|
|
122
127
|
'Authorization': `Bearer ${this.apiKey}`,
|
|
123
128
|
'Content-Type': 'application/json',
|
|
124
|
-
'User-Agent': 'oilpriceapi-node/0.
|
|
129
|
+
'User-Agent': 'oilpriceapi-node/0.5.0',
|
|
125
130
|
'X-SDK-Language': 'javascript',
|
|
126
|
-
'X-SDK-Version': '0.
|
|
131
|
+
'X-SDK-Version': '0.5.0',
|
|
127
132
|
'X-Client-Type': 'sdk',
|
|
128
133
|
},
|
|
129
134
|
signal: controller.signal,
|
package/dist/index.d.ts
CHANGED
|
@@ -7,4 +7,6 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export { OilPriceAPI } from './client.js';
|
|
9
9
|
export type { OilPriceAPIConfig, RetryStrategy, Price, LatestPricesOptions, HistoricalPricesOptions, HistoricalPeriod, Commodity, CommoditiesResponse, CommodityCategory, CategoriesResponse, } from './types.js';
|
|
10
|
+
export type { DieselPrice, DieselStation, DieselStationsResponse, GetDieselStationsOptions, } from './resources/diesel.js';
|
|
11
|
+
export type { PriceAlert, CreateAlertParams, UpdateAlertParams, AlertOperator, WebhookTestResponse, } from './resources/alerts.js';
|
|
10
12
|
export { OilPriceAPIError, AuthenticationError, RateLimitError, NotFoundError, ServerError, TimeoutError, } from './errors.js';
|