nxus-qbd 0.3.0 → 0.3.2

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.
Files changed (64) hide show
  1. package/README.md +52 -1
  2. package/dist/client.d.ts +18 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +11 -3
  5. package/dist/client.js.map +1 -1
  6. package/dist/generated/index.d.ts +1 -1
  7. package/dist/generated/index.d.ts.map +1 -1
  8. package/dist/generated/index.js +1 -1
  9. package/dist/generated/index.js.map +1 -1
  10. package/dist/generated/types.gen.d.ts +919 -610
  11. package/dist/generated/types.gen.d.ts.map +1 -1
  12. package/dist/generated/types.gen.js.map +1 -1
  13. package/dist/models/index.d.ts +2 -2
  14. package/dist/models/index.d.ts.map +1 -1
  15. package/dist/models/index.js +2 -2
  16. package/dist/models/index.js.map +1 -1
  17. package/dist/models/qbd/bill_payment_or_credit.d.ts +2 -0
  18. package/dist/models/qbd/bill_payment_or_credit.d.ts.map +1 -0
  19. package/dist/models/qbd/bill_payment_or_credit.js +3 -0
  20. package/dist/models/qbd/bill_payment_or_credit.js.map +1 -0
  21. package/dist/models/qbd/check.d.ts +1 -1
  22. package/dist/models/qbd/check.d.ts.map +1 -1
  23. package/dist/models/qbd/check.js +0 -1
  24. package/dist/models/qbd/check.js.map +1 -1
  25. package/dist/models/qbd/check_bill.d.ts +1 -1
  26. package/dist/models/qbd/check_bill.d.ts.map +1 -1
  27. package/dist/models/qbd/check_bill.js +0 -1
  28. package/dist/models/qbd/check_bill.js.map +1 -1
  29. package/dist/models/qbd/credit_card_bill.d.ts +1 -1
  30. package/dist/models/qbd/credit_card_bill.d.ts.map +1 -1
  31. package/dist/models/qbd/credit_card_bill.js +0 -1
  32. package/dist/models/qbd/credit_card_bill.js.map +1 -1
  33. package/dist/models/qbd/index.d.ts +1 -1
  34. package/dist/models/qbd/index.d.ts.map +1 -1
  35. package/dist/models/qbd/index.js +1 -1
  36. package/dist/models/qbd/index.js.map +1 -1
  37. package/dist/models/qbd/inventory_adjustment.d.ts +1 -1
  38. package/dist/models/qbd/inventory_adjustment.d.ts.map +1 -1
  39. package/dist/models/qbd/inventory_adjustment.js +0 -1
  40. package/dist/models/qbd/inventory_adjustment.js.map +1 -1
  41. package/dist/models/qbd/item_service.d.ts +1 -1
  42. package/dist/models/qbd/item_service.d.ts.map +1 -1
  43. package/dist/models/qbd/item_service.js +0 -1
  44. package/dist/models/qbd/item_service.js.map +1 -1
  45. package/dist/models/qbd/receive_payment.d.ts +1 -1
  46. package/dist/models/qbd/receive_payment.d.ts.map +1 -1
  47. package/dist/models/qbd/sales_receipt.d.ts +1 -1
  48. package/dist/models/qbd/sales_receipt.d.ts.map +1 -1
  49. package/dist/models/qbd/sales_receipt.js +0 -1
  50. package/dist/models/qbd/sales_receipt.js.map +1 -1
  51. package/dist/resources/base.d.ts.map +1 -1
  52. package/dist/resources/base.js +15 -5
  53. package/dist/resources/base.js.map +1 -1
  54. package/dist/resources/connections.d.ts.map +1 -1
  55. package/dist/resources/connections.js +3 -1
  56. package/dist/resources/connections.js.map +1 -1
  57. package/dist/resources/reports.d.ts.map +1 -1
  58. package/dist/resources/reports.js +3 -1
  59. package/dist/resources/reports.js.map +1 -1
  60. package/dist/transport.d.ts +30 -0
  61. package/dist/transport.d.ts.map +1 -1
  62. package/dist/transport.js +131 -17
  63. package/dist/transport.js.map +1 -1
  64. 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
- throw NxusApiError.from(normalizeErrorPayload(errorBody, response));
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
- throw new NxusApiError({
143
- message: `Request timed out after ${timeout}ms`,
144
- userMessage: 'The request timed out. Please try again.',
145
- status: 0,
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
- throw new NxusApiError({
149
- message: error instanceof Error ? error.message : 'Network request failed',
150
- userMessage: 'A network error occurred. Please check your connection and try again.',
151
- status: 0,
152
- raw: error,
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
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
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.0",
4
- "description": "Official Node.js/TypeScript SDK for the Nxus QuickBooks Desktop API",
3
+ "version": "0.3.2",
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",