nxus-qbd 0.3.1 → 0.3.3
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 +52 -1
- package/dist/client.d.ts +18 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -3
- package/dist/client.js.map +1 -1
- package/dist/generated/index.d.ts +1 -1
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +1 -1
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/types.gen.d.ts +1092 -783
- package/dist/generated/types.gen.d.ts.map +1 -1
- package/dist/generated/types.gen.js.map +1 -1
- package/dist/models/index.d.ts +2 -2
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +2 -2
- package/dist/models/index.js.map +1 -1
- package/dist/models/qbd/bill_payment_or_credit.d.ts +2 -0
- package/dist/models/qbd/bill_payment_or_credit.d.ts.map +1 -0
- package/dist/models/qbd/bill_payment_or_credit.js +2 -0
- package/dist/models/qbd/bill_payment_or_credit.js.map +1 -0
- package/dist/models/qbd/check.d.ts +1 -1
- package/dist/models/qbd/check.d.ts.map +1 -1
- package/dist/models/qbd/check.js +0 -1
- package/dist/models/qbd/check.js.map +1 -1
- package/dist/models/qbd/check_bill.d.ts +1 -1
- package/dist/models/qbd/check_bill.d.ts.map +1 -1
- package/dist/models/qbd/check_bill.js +0 -1
- package/dist/models/qbd/check_bill.js.map +1 -1
- package/dist/models/qbd/credit_card_bill.d.ts +1 -1
- package/dist/models/qbd/credit_card_bill.d.ts.map +1 -1
- package/dist/models/qbd/credit_card_bill.js +0 -1
- package/dist/models/qbd/credit_card_bill.js.map +1 -1
- package/dist/models/qbd/index.d.ts +1 -1
- package/dist/models/qbd/index.d.ts.map +1 -1
- package/dist/models/qbd/index.js +1 -1
- package/dist/models/qbd/index.js.map +1 -1
- package/dist/models/qbd/inventory_adjustment.d.ts +1 -1
- package/dist/models/qbd/inventory_adjustment.d.ts.map +1 -1
- package/dist/models/qbd/inventory_adjustment.js +0 -1
- package/dist/models/qbd/inventory_adjustment.js.map +1 -1
- package/dist/models/qbd/item_service.d.ts +1 -1
- package/dist/models/qbd/item_service.d.ts.map +1 -1
- package/dist/models/qbd/item_service.js +0 -1
- package/dist/models/qbd/item_service.js.map +1 -1
- package/dist/models/qbd/receive_payment.d.ts +1 -1
- package/dist/models/qbd/receive_payment.d.ts.map +1 -1
- package/dist/models/qbd/sales_receipt.d.ts +1 -1
- package/dist/models/qbd/sales_receipt.d.ts.map +1 -1
- package/dist/models/qbd/sales_receipt.js +0 -1
- package/dist/models/qbd/sales_receipt.js.map +1 -1
- package/dist/resources/base.d.ts.map +1 -1
- package/dist/resources/base.js +15 -5
- package/dist/resources/base.js.map +1 -1
- package/dist/resources/connections.d.ts.map +1 -1
- package/dist/resources/connections.js +3 -1
- package/dist/resources/connections.js.map +1 -1
- package/dist/resources/reports.d.ts.map +1 -1
- package/dist/resources/reports.js +3 -1
- package/dist/resources/reports.js.map +1 -1
- package/dist/transport.d.ts +30 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +131 -17
- package/dist/transport.js.map +1 -1
- package/package.json +7 -4
package/dist/transport.js
CHANGED
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { NxusApiError } from './helpers/errors';
|
|
8
8
|
export const DEFAULT_TIMEOUT_MS = 100_000;
|
|
9
|
+
export const DEFAULT_MAX_RETRIES = 2;
|
|
10
|
+
const RETRY_BASE_DELAY_MS = 500;
|
|
11
|
+
const RETRY_MAX_DELAY_MS = 8_000;
|
|
12
|
+
// 409 is intentionally omitted: the backend overloads it for both retryable
|
|
13
|
+
// lock contention (`ObjectInUse`, `LockFailed`) and terminal business-rule
|
|
14
|
+
// violations (`OutdatedEditSequence`, `NameNotUnique`, `TimeCreationMismatch`).
|
|
15
|
+
// Without `x-should-retry` to disambiguate, retrying 409 blindly will burn
|
|
16
|
+
// attempts on errors that need client-side action. Servers that emit the
|
|
17
|
+
// header (`x-should-retry: true`) override this fallback and opt 409s in.
|
|
18
|
+
const RETRYABLE_STATUSES = new Set([408, 429]);
|
|
9
19
|
function normalizeErrorPayload(errorBody, response) {
|
|
10
20
|
if (errorBody == null) {
|
|
11
21
|
return {
|
|
@@ -38,6 +48,7 @@ export class NxusHttpTransport {
|
|
|
38
48
|
defaultHeaders;
|
|
39
49
|
defaultTimeout;
|
|
40
50
|
defaultServerTimeoutSeconds;
|
|
51
|
+
defaultMaxRetries;
|
|
41
52
|
constructor(options) {
|
|
42
53
|
// Ensure trailing slash for consistent URL joining
|
|
43
54
|
this.baseUrl = options.baseUrl.replace(/\/+$/, '');
|
|
@@ -45,6 +56,7 @@ export class NxusHttpTransport {
|
|
|
45
56
|
this.defaultHeaders = options.headers ?? {};
|
|
46
57
|
this.defaultTimeout = options.timeout ?? DEFAULT_TIMEOUT_MS;
|
|
47
58
|
this.defaultServerTimeoutSeconds = options.serverTimeoutSeconds;
|
|
59
|
+
this.defaultMaxRetries = Math.max(0, options.maxRetries ?? DEFAULT_MAX_RETRIES);
|
|
48
60
|
}
|
|
49
61
|
async get(path, query, options) {
|
|
50
62
|
const url = this.buildUrl(path, query);
|
|
@@ -107,6 +119,25 @@ export class NxusHttpTransport {
|
|
|
107
119
|
headers['X-Nxus-Timeout-Seconds'] = String(serverTimeoutSeconds);
|
|
108
120
|
}
|
|
109
121
|
const timeout = options?.timeout ?? this.defaultTimeout;
|
|
122
|
+
const maxRetries = Math.max(0, options?.maxRetries ?? this.defaultMaxRetries);
|
|
123
|
+
let attempt = 0;
|
|
124
|
+
while (true) {
|
|
125
|
+
const outcome = await this.attempt(url, init, headers, timeout);
|
|
126
|
+
if (outcome.kind === 'success') {
|
|
127
|
+
return outcome.value;
|
|
128
|
+
}
|
|
129
|
+
if (attempt >= maxRetries ||
|
|
130
|
+
!shouldRetry(outcome)) {
|
|
131
|
+
throw outcome.error;
|
|
132
|
+
}
|
|
133
|
+
const delayMs = computeRetryDelay(attempt, outcome);
|
|
134
|
+
attempt += 1;
|
|
135
|
+
if (delayMs > 0) {
|
|
136
|
+
await sleep(delayMs);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async attempt(url, init, headers, timeout) {
|
|
110
141
|
const controller = new AbortController();
|
|
111
142
|
const timer = setTimeout(() => controller.abort(), timeout);
|
|
112
143
|
try {
|
|
@@ -123,38 +154,121 @@ export class NxusHttpTransport {
|
|
|
123
154
|
catch {
|
|
124
155
|
errorBody = await response.text().catch(() => null);
|
|
125
156
|
}
|
|
126
|
-
|
|
157
|
+
const error = NxusApiError.from(normalizeErrorPayload(errorBody, response));
|
|
158
|
+
// Standard `Retry-After` header (RFC 7231) wins; fall back to the
|
|
159
|
+
// body's `error.retryAfter` (seconds, integer) when the header is
|
|
160
|
+
// missing. This keeps behavior correct against proxies that strip
|
|
161
|
+
// hop-by-hop headers but preserve the body.
|
|
162
|
+
const retryAfter = parseRetryAfter(response.headers.get('retry-after')) ??
|
|
163
|
+
parseBodyRetryAfter(errorBody);
|
|
164
|
+
return {
|
|
165
|
+
kind: 'http-error',
|
|
166
|
+
status: response.status,
|
|
167
|
+
retryAfter,
|
|
168
|
+
shouldRetry: parseShouldRetry(response.headers.get('x-should-retry')),
|
|
169
|
+
error,
|
|
170
|
+
};
|
|
127
171
|
}
|
|
128
172
|
// 204 No Content
|
|
129
173
|
if (response.status === 204) {
|
|
130
|
-
return undefined;
|
|
174
|
+
return { kind: 'success', value: undefined };
|
|
131
175
|
}
|
|
132
176
|
const text = await response.text();
|
|
133
177
|
if (!text) {
|
|
134
|
-
return undefined;
|
|
178
|
+
return { kind: 'success', value: undefined };
|
|
135
179
|
}
|
|
136
|
-
return JSON.parse(text);
|
|
180
|
+
return { kind: 'success', value: JSON.parse(text) };
|
|
137
181
|
}
|
|
138
182
|
catch (error) {
|
|
139
|
-
if (error instanceof NxusApiError)
|
|
140
|
-
throw error;
|
|
141
183
|
if (error instanceof DOMException && error.name === 'AbortError') {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
184
|
+
return {
|
|
185
|
+
kind: 'timeout',
|
|
186
|
+
error: new NxusApiError({
|
|
187
|
+
message: `Request timed out after ${timeout}ms`,
|
|
188
|
+
userMessage: 'The request timed out. Please try again.',
|
|
189
|
+
status: 0,
|
|
190
|
+
}),
|
|
191
|
+
};
|
|
147
192
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
193
|
+
return {
|
|
194
|
+
kind: 'network-error',
|
|
195
|
+
error: new NxusApiError({
|
|
196
|
+
message: error instanceof Error ? error.message : 'Network request failed',
|
|
197
|
+
userMessage: 'A network error occurred. Please check your connection and try again.',
|
|
198
|
+
status: 0,
|
|
199
|
+
raw: error,
|
|
200
|
+
}),
|
|
201
|
+
};
|
|
154
202
|
}
|
|
155
203
|
finally {
|
|
156
204
|
clearTimeout(timer);
|
|
157
205
|
}
|
|
158
206
|
}
|
|
159
207
|
}
|
|
208
|
+
function shouldRetry(outcome) {
|
|
209
|
+
if (outcome.kind === 'network-error')
|
|
210
|
+
return true;
|
|
211
|
+
if (outcome.kind === 'timeout')
|
|
212
|
+
return false;
|
|
213
|
+
if (outcome.kind === 'http-error') {
|
|
214
|
+
if (outcome.shouldRetry != null)
|
|
215
|
+
return outcome.shouldRetry;
|
|
216
|
+
if (RETRYABLE_STATUSES.has(outcome.status))
|
|
217
|
+
return true;
|
|
218
|
+
if (outcome.status >= 500)
|
|
219
|
+
return true;
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
function computeRetryDelay(attempt, outcome) {
|
|
225
|
+
if (outcome.kind === 'http-error' && outcome.retryAfter != null) {
|
|
226
|
+
return Math.min(outcome.retryAfter, RETRY_MAX_DELAY_MS);
|
|
227
|
+
}
|
|
228
|
+
const exponential = Math.min(RETRY_BASE_DELAY_MS * 2 ** attempt, RETRY_MAX_DELAY_MS);
|
|
229
|
+
const jitter = Math.random() * exponential * 0.5;
|
|
230
|
+
return exponential + jitter;
|
|
231
|
+
}
|
|
232
|
+
function parseRetryAfter(value) {
|
|
233
|
+
if (!value)
|
|
234
|
+
return undefined;
|
|
235
|
+
const seconds = Number(value);
|
|
236
|
+
if (Number.isFinite(seconds) && seconds >= 0) {
|
|
237
|
+
return seconds * 1000;
|
|
238
|
+
}
|
|
239
|
+
const dateMs = Date.parse(value);
|
|
240
|
+
if (!Number.isNaN(dateMs)) {
|
|
241
|
+
const delta = dateMs - Date.now();
|
|
242
|
+
return delta > 0 ? delta : 0;
|
|
243
|
+
}
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
function parseBodyRetryAfter(body) {
|
|
247
|
+
if (body == null || typeof body !== 'object')
|
|
248
|
+
return undefined;
|
|
249
|
+
const root = body;
|
|
250
|
+
// Shape per backend contract: `{ error: { retryAfter: <seconds> } }`.
|
|
251
|
+
// Tolerate top-level `retryAfter` for older payloads / future flattening.
|
|
252
|
+
const errorObj = root.error && typeof root.error === 'object'
|
|
253
|
+
? root.error
|
|
254
|
+
: undefined;
|
|
255
|
+
const candidate = errorObj?.retryAfter ?? root.retryAfter;
|
|
256
|
+
if (typeof candidate !== 'number' || !Number.isFinite(candidate) || candidate < 0) {
|
|
257
|
+
return undefined;
|
|
258
|
+
}
|
|
259
|
+
return candidate * 1000;
|
|
260
|
+
}
|
|
261
|
+
function parseShouldRetry(value) {
|
|
262
|
+
if (!value)
|
|
263
|
+
return undefined;
|
|
264
|
+
const normalized = value.trim().toLowerCase();
|
|
265
|
+
if (['1', 'true', 'yes'].includes(normalized))
|
|
266
|
+
return true;
|
|
267
|
+
if (['0', 'false', 'no'].includes(normalized))
|
|
268
|
+
return false;
|
|
269
|
+
return undefined;
|
|
270
|
+
}
|
|
271
|
+
function sleep(ms) {
|
|
272
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
273
|
+
}
|
|
160
274
|
//# sourceMappingURL=transport.js.map
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nxus-qbd",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "Official
|
|
3
|
+
"version": "0.3.3",
|
|
4
|
+
"description": "Official TypeScript SDK for the Nxus QuickBooks Desktop API. Runs on Node.js 18+ and Bun 1.0+.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
@@ -47,14 +47,17 @@
|
|
|
47
47
|
"qbd",
|
|
48
48
|
"sdk",
|
|
49
49
|
"api",
|
|
50
|
-
"accounting"
|
|
50
|
+
"accounting",
|
|
51
|
+
"node",
|
|
52
|
+
"bun"
|
|
51
53
|
],
|
|
52
54
|
"repository": {
|
|
53
55
|
"type": "git",
|
|
54
56
|
"url": "https://github.com/nxus-app/nxus-qbd.git"
|
|
55
57
|
},
|
|
56
58
|
"engines": {
|
|
57
|
-
"node": ">=18"
|
|
59
|
+
"node": ">=18",
|
|
60
|
+
"bun": ">=1.0"
|
|
58
61
|
},
|
|
59
62
|
"scripts": {
|
|
60
63
|
"generate": "openapi-ts && pnpm run generate:models",
|