Skip to content

Commit f06837e

Browse files
karlwaldmanclaude
andcommitted
chore: Add CHANGELOG entry for v0.7.0
Document all 13 new resource modules, enhanced alerts, and test improvements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 063f061 commit f06837e

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,40 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.7.0] - 2026-02-11
9+
10+
### Added
11+
12+
- **Commodities Resource**: `client.commodities.list()`, `get()`, `categories()` for commodity catalog discovery
13+
- **Futures Resource**: `client.futures.latest()`, `historical()`, `ohlc()`, `intraday()`, `spreads()`, `curve()`, `continuous()` for futures contract data
14+
- **Storage Resource**: `client.storage.all()`, `cushing()`, `spr()`, `regional()` for oil inventory levels
15+
- **Rig Counts Resource**: `client.rigCounts.current()`, `historical()`, `latest()`, `summary()` for Baker Hughes rig count data
16+
- **Bunker Fuels Resource**: `client.bunkerFuels.all()`, `port()`, `compare()`, `spreads()`, `historical()`, `export()` for marine fuel prices
17+
- **Analytics Resource**: `client.analytics.performance()`, `statistics()`, `correlation()`, `trend()`, `spread()`, `forecast()` for price analytics
18+
- **Forecasts Resource**: `client.forecasts.monthly()`, `accuracy()`, `archive()`, `get()` for EIA monthly price forecasts
19+
- **Data Quality Resource**: `client.dataQuality.summary()`, `reports()`, `report()` for data quality monitoring
20+
- **Drilling Intelligence Resource**: `client.drilling.latest()`, `summary()`, `trends()`, `fracSpreads()`, `wellPermits()`, `ducWells()`, `completions()`, `wellsDrilled()`, `basin()` for drilling activity data
21+
- **Energy Intelligence Resource**: `client.ei` with 7 sub-resources: `rigCounts`, `oilInventories`, `opecProduction`, `drillingProductivity`, `forecasts`, `wellPermits`, `fracFocus` for comprehensive EIA data
22+
- **Webhooks Resource**: `client.webhooks.create()`, `list()`, `get()`, `update()`, `delete()`, `test()`, `events()` for webhook management
23+
- **Data Sources Resource**: `client.dataSources.list()`, `get()`, `create()`, `update()`, `delete()`, `test()`, `logs()`, `health()` for data connector management
24+
- **Enhanced Alerts**: Added `test()`, `triggers()`, `analyticsHistory()` methods to existing alerts resource
25+
- **Data Connector Support**: `client.getDataConnectorPrices()` for BYOS (Bring Your Own Subscription) prices
26+
- **Telemetry Headers**: `appUrl` and `appName` options for API usage attribution
27+
28+
### Testing
29+
30+
- 70 new unit tests added (185 total, 0 failures)
31+
- 13 new test files covering all resource modules
32+
- All tests pass with TypeScript strict mode
33+
34+
### Breaking Changes
35+
36+
None - All new resources are additive. Existing code continues to work unchanged.
37+
838
## [0.6.0] - 2025-12-24
939

1040
### Added
41+
1142
- **PERFORMANCE**: Added `interval` parameter to `getHistoricalPrices()` for aggregated queries
1243
- `'raw'` - Individual price points (default, can be slow for year-long queries)
1344
- `'hourly'` - Hourly averages
@@ -19,52 +50,62 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1950
- New TypeScript type: `AggregationInterval`
2051

2152
### Performance Improvements
53+
2254
- Year-long queries improved from 74+ seconds to <1 second when using `interval: 'daily'`
2355
- Example: `getHistoricalPrices({ period: 'past_year', commodity: 'BRENT_CRUDE_USD', interval: 'daily' })`
2456

2557
### Testing
58+
2659
- Added 7 new tests for interval and pagination parameters
2760
- All 118 tests passing
2861

2962
### Breaking Changes
63+
3064
None - This is a backwards-compatible feature addition. Existing code continues to work.
3165

3266
## [0.5.3] - 2025-12-17
3367

3468
### Fixed
69+
3570
- **CRITICAL**: Fixed historical date range queries returning incorrect dates
3671
- Changed `getHistoricalPrices()` to use `/v1/prices/past_year` endpoint instead of `/v1/prices`
3772
- The `/v1/prices` endpoint was not correctly handling `start_date`/`end_date` parameters
3873
- This was the same bug that affected the Python SDK (fixed in v1.4.4)
3974
- Users requesting data for specific date ranges now receive correct results
4075

4176
### Testing
77+
4278
- Added comprehensive test suite for historical price queries (22 new tests)
4379
- Added error handling test suite (31 new tests)
4480
- Test coverage now at 95%+ for all source files
4581

4682
### Breaking Changes
83+
4784
None - This is a bug fix that corrects behavior to match documentation.
4885

4986
## [0.5.2] - 2025-12-17
5087

5188
### Added
89+
5290
- Centralized version management in `src/version.ts`
5391
- Export `SDK_VERSION` and `SDK_NAME` constants for tracking
5492
- User-Agent header: `oilpriceapi-node/{version} node/{node_version}`
5593
- `X-Api-Client` and `X-Client-Version` headers for SDK tracking
5694

5795
### Testing
96+
5897
- Added integration tests for User-Agent header verification (11 tests)
5998

6099
## [0.5.1] - 2025-12-16
61100

62101
### Added
102+
63103
- Minor improvements to diesel and alerts resources
64104

65105
## [0.5.0] - 2025-12-15
66106

67107
### Added
108+
68109
- **Price Alerts**: New `client.alerts` resource for automated price monitoring with webhook notifications
69110
- **Alert Management**: Full CRUD operations for price alerts
70111
- `alerts.list()` - Get all configured alerts
@@ -86,6 +127,7 @@ None - This is a bug fix that corrects behavior to match documentation.
86127
- Detailed error handling with clear validation messages
87128

88129
### Documentation
130+
89131
- Added complete Price Alerts section to README with examples
90132
- Added CRUD operation examples for alerts
91133
- Added webhook payload documentation
@@ -94,14 +136,17 @@ None - This is a bug fix that corrects behavior to match documentation.
94136
- Added API reference for alert limits and constraints
95137

96138
### Testing
139+
97140
- Added comprehensive test suite for alerts resource (24 test cases)
98141
- Tests cover all CRUD operations and validation scenarios
99142
- 100% coverage of alerts functionality
100143
- Tests for all 5 alert operators
101144
- Validation tests for name, commodity code, operator, value, webhook URL, and cooldown
102145

103146
### Supported Endpoints
147+
104148
Now supports **12 endpoints** (up from 7):
149+
105150
- `GET /v1/prices/latest` - Get latest commodity prices
106151
- `GET /v1/prices` - Get historical commodity prices
107152
- `GET /v1/commodities` - Get all commodities metadata
@@ -116,11 +161,13 @@ Now supports **12 endpoints** (up from 7):
116161
- `DELETE /v1/alerts/{id}` - Delete alert (NEW)
117162

118163
### Breaking Changes
164+
119165
None - This is a backwards-compatible feature addition.
120166

121167
## [0.4.0] - 2025-12-15
122168

123169
### Added
170+
124171
- **Diesel Prices Support**: New `client.diesel` resource for diesel price data
125172
- **State Average Diesel Prices**: `diesel.getPrice(state)` - Get EIA state-level diesel averages (free tier)
126173
- **Station-Level Diesel Pricing**: `diesel.getStations(options)` - Get nearby diesel stations with current prices from Google Maps (paid tiers)
@@ -129,19 +176,23 @@ None - This is a backwards-compatible feature addition.
129176
- Detailed error handling for tier restrictions (403) and rate limits (429)
130177

131178
### Documentation
179+
132180
- Added diesel prices usage examples to README
133181
- Added API reference section for `client.diesel` resource
134182
- Added complete type definitions for all diesel-related interfaces
135183
- Updated Quick Examples section with diesel examples
136184
- Updated feature list to highlight diesel prices support
137185

138186
### Testing
187+
139188
- Added comprehensive test suite for diesel resource (15 test cases)
140189
- Tests cover input validation, error handling, and API responses
141190
- 100% coverage of diesel functionality
142191

143192
### Supported Endpoints
193+
144194
Now supports **7 endpoints** (up from 5):
195+
145196
- `GET /v1/prices/latest` - Get latest commodity prices
146197
- `GET /v1/prices` - Get historical commodity prices
147198
- `GET /v1/commodities` - Get all commodities metadata
@@ -151,35 +202,42 @@ Now supports **7 endpoints** (up from 5):
151202
- `POST /v1/diesel-prices/stations` - Get nearby diesel stations (NEW)
152203

153204
### Breaking Changes
205+
154206
None - This is a backwards-compatible feature addition.
155207

156208
## [0.3.1] - 2025-11-26
157209

158210
### Fixed
211+
159212
- **Fixed QA test** to use correct API response fields (`price` instead of `value`, `formatted` instead of `code + name`)
160213
- **Updated README examples** to match actual API response structure
161214
- **Corrected blog post examples** for accuracy
162215
- Verified 100% test pass rate (7/7 tests passing)
163216

164217
### Documentation
218+
165219
- All code examples now use correct fields: `price`, `formatted`, `code`, `created_at`
166220
- Removed references to non-existent `name`, `value`, and `unit` fields in latest prices response
167221
- Added clarification on timeout configuration for historical data queries (120s recommended)
168222

169223
### Testing
224+
170225
- Historical prices endpoint working correctly with 120s timeout
171226
- All 5 endpoints tested and verified against live API
172227

173228
## [0.3.0] - 2024-11-25
174229

175230
### Added
231+
176232
- **Commodities Endpoint**: `getCommodities()` - Get metadata for all supported commodities
177233
- **Commodity Categories**: `getCommodityCategories()` - Get all commodity categories with their commodities
178234
- **Commodity Details**: `getCommodity(code)` - Get metadata for a specific commodity by code
179235
- New TypeScript interfaces: `Commodity`, `CommoditiesResponse`, `CommodityCategory`, `CategoriesResponse`
180236

181237
### Supported Endpoints
238+
182239
Now supports **5 endpoints** (up from 2):
240+
183241
- `GET /v1/prices/latest` - Get latest commodity prices
184242
- `GET /v1/prices` - Get historical commodity prices
185243
- `GET /v1/commodities` - Get all commodities metadata
@@ -189,6 +247,7 @@ Now supports **5 endpoints** (up from 2):
189247
## [0.2.0] - 2024-11-24
190248

191249
### Added
250+
192251
- **Retry Logic**: Automatic retries with configurable strategies (exponential, linear, fixed)
193252
- **Timeout Handling**: Request timeouts with AbortController
194253
- **Debug Logging**: Optional debug mode for detailed request/response logging
@@ -197,12 +256,15 @@ Now supports **5 endpoints** (up from 2):
197256
- **Rate Limit Handling**: Automatic retry with `Retry-After` header support
198257

199258
### Changed
259+
200260
- User-Agent updated to `oilpriceapi-node/0.2.0`
201261
- Improved error messages with more context
202262
- Better TypeScript type definitions for configuration options
203263

204264
### Configuration Options
265+
205266
New configuration options available:
267+
206268
- `retries`: Maximum number of retry attempts (default: 3)
207269
- `retryDelay`: Initial delay between retries in ms (default: 1000)
208270
- `retryStrategy`: Retry backoff strategy - 'exponential', 'linear', or 'fixed' (default: 'exponential')
@@ -212,6 +274,7 @@ New configuration options available:
212274
## [0.1.0] - 2024-11-24
213275

214276
### Added
277+
215278
- Initial release
216279
- Basic API client with TypeScript support
217280
- Latest prices endpoint support
@@ -222,6 +285,7 @@ New configuration options available:
222285
- Comprehensive README documentation
223286

224287
### Supported Endpoints
288+
225289
- `GET /v1/prices/latest` - Get latest commodity prices
226290
- `GET /v1/prices` - Get historical commodity prices
227291

0 commit comments

Comments
 (0)