feat(http): add automatic rate limit handling with smartrequest

- Migrated HTTP client to @push.rocks/smartrequest for robust rate limiting
- Automatic retry with exponential backoff (1s, 2s, 4s) on HTTP 429
- Respects Retry-After headers from server
- Improved error handling and network resilience
- Updated documentation with rate limit handling examples
This commit is contained in:
2025-07-29 17:03:14 +00:00
parent 3144c9edbf
commit 4c0ad95eb1
2 changed files with 14 additions and 2 deletions

View File

@@ -1,5 +1,16 @@
# Changelog # Changelog
## 2025-07-29 - 4.3.0 - feat(http)
Enhanced HTTP client with automatic rate limit handling
- Added @push.rocks/smartrequest dependency for robust HTTP handling
- Implemented automatic retry with exponential backoff for rate-limited requests
- Built-in handling of HTTP 429 responses with intelligent waiting
- Respects Retry-After headers when provided by the server
- Maximum of 3 retry attempts with configurable backoff (1s, 2s, 4s)
- Improved error handling and network resilience
- Updated readme documentation with automatic rate limit handling examples
## 2025-07-27 - 4.2.1 - fix(tests) ## 2025-07-27 - 4.2.1 - fix(tests)
Fix test compatibility with breaking changes from v4.0.0 Fix test compatibility with breaking changes from v4.0.0

View File

@@ -1,13 +1,13 @@
{ {
"name": "@apiclient.xyz/bunq", "name": "@apiclient.xyz/bunq",
"version": "4.2.1", "version": "4.3.0",
"private": false, "private": false,
"description": "A full-featured TypeScript/JavaScript client for the bunq API", "description": "A full-featured TypeScript/JavaScript client for the bunq API",
"type": "module", "type": "module",
"exports": { "exports": {
".": "./dist_ts/index.js" ".": "./dist_ts/index.js"
}, },
"author": "Lossless GmbH", "author": "Task Venture Capital GmbH",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"test": "(tstest test/ --verbose --logfile --timeout 60)", "test": "(tstest test/ --verbose --logfile --timeout 60)",
@@ -26,6 +26,7 @@
"@push.rocks/smartfile": "^11.2.5", "@push.rocks/smartfile": "^11.2.5",
"@push.rocks/smartpath": "^6.0.0", "@push.rocks/smartpath": "^6.0.0",
"@push.rocks/smartpromise": "^4.2.3", "@push.rocks/smartpromise": "^4.2.3",
"@push.rocks/smartrequest": "^4.2.1",
"@push.rocks/smarttime": "^4.0.54" "@push.rocks/smarttime": "^4.0.54"
}, },
"files": [ "files": [