@happyvertical/accounting 0.104.0 → 0.105.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.
Files changed (31) hide show
  1. package/README.md +101 -0
  2. package/dist/chunks/{errors-BHWEFjkq.js → errors-DIqXkm4s.js} +4 -1
  3. package/dist/chunks/errors-DIqXkm4s.js.map +1 -0
  4. package/dist/chunks/{quickbooks-CIedOmSC.js → quickbooks-Bh9k87sj.js} +169 -7
  5. package/dist/chunks/quickbooks-Bh9k87sj.js.map +1 -0
  6. package/dist/chunks/{invoice-request-D5fbd6Id.js → receivable-transfer-DQmMBcRo.js} +183 -7
  7. package/dist/chunks/receivable-transfer-DQmMBcRo.js.map +1 -0
  8. package/dist/chunks/{stripe-CECceZH5.js → stripe-DOJLldVK.js} +2 -2
  9. package/dist/chunks/{stripe-CECceZH5.js.map → stripe-DOJLldVK.js.map} +1 -1
  10. package/dist/errors.d.ts +3 -0
  11. package/dist/errors.d.ts.map +1 -1
  12. package/dist/index.d.ts +3 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +68 -5
  15. package/dist/index.js.map +1 -1
  16. package/dist/providers/quickbooks/document-readback.d.ts +18 -0
  17. package/dist/providers/quickbooks/document-readback.d.ts.map +1 -0
  18. package/dist/providers/quickbooks/index.d.ts +5 -7
  19. package/dist/providers/quickbooks/index.d.ts.map +1 -1
  20. package/dist/providers/quickbooks/invoice-request.d.ts +2 -0
  21. package/dist/providers/quickbooks/invoice-request.d.ts.map +1 -1
  22. package/dist/providers/quickbooks/receivable-operations.d.ts +22 -0
  23. package/dist/providers/quickbooks/receivable-operations.d.ts.map +1 -0
  24. package/dist/providers/quickbooks/receivable-transfer.d.ts +89 -0
  25. package/dist/providers/quickbooks/receivable-transfer.d.ts.map +1 -0
  26. package/dist/types.d.ts +5 -0
  27. package/dist/types.d.ts.map +1 -1
  28. package/package.json +2 -2
  29. package/dist/chunks/errors-BHWEFjkq.js.map +0 -1
  30. package/dist/chunks/invoice-request-D5fbd6Id.js.map +0 -1
  31. package/dist/chunks/quickbooks-CIedOmSC.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,7 +1,70 @@
1
- import { n as QuickBooksWriteError, r as StripeApiError, t as QuickBooksOAuthError } from "./chunks/errors-BHWEFjkq.js";
2
- import { i as prepareQuickBooksInvoiceRequest, r as prepareQuickBooksCreditMemoRequest } from "./chunks/invoice-request-D5fbd6Id.js";
1
+ import { n as QuickBooksWriteError, r as StripeApiError, t as QuickBooksOAuthError } from "./chunks/errors-DIqXkm4s.js";
2
+ import { c as mapInvoiceToQBO, l as prepareQuickBooksCreditMemoRequest, n as prepareQuickBooksReceivableRequest, o as mapCreditMemoToQBO, r as reconcileQuickBooksReceivableRecord, s as mapDocumentTaxReadback, u as prepareQuickBooksInvoiceRequest } from "./chunks/receivable-transfer-DQmMBcRo.js";
3
3
  import { loadEnvConfig } from "@happyvertical/utils";
4
4
  import { createHash, timingSafeEqual } from "node:crypto";
5
+ //#region src/providers/quickbooks/document-readback.ts
6
+ function reject() {
7
+ throw new Error("QuickBooks readback differs from the frozen document");
8
+ }
9
+ function object(value) {
10
+ if (!value || typeof value !== "object" || Array.isArray(value)) reject();
11
+ return value;
12
+ }
13
+ function matches(expected, actual) {
14
+ if (Array.isArray(expected)) return Array.isArray(actual) && expected.length === actual.length && expected.every((item, index) => matches(item, actual[index]));
15
+ if (expected !== null && typeof expected === "object") {
16
+ if (!actual || typeof actual !== "object" || Array.isArray(actual)) return false;
17
+ const record = actual;
18
+ return Object.entries(expected).every(([key, value]) => value === void 0 || matches(value, record[key]));
19
+ }
20
+ return expected === actual;
21
+ }
22
+ function verify(input, request, prepared, payload, observed) {
23
+ if (!observed.externalId || observed.externalId.trim() !== observed.externalId || request.realmId !== observed.realmId || request.environment !== observed.environment || request.requestId !== prepared.requestId || request.payloadHash !== prepared.payloadHash || !input.currency || !input.quickbooksMapping) reject();
24
+ const raw = object(observed.record);
25
+ if (raw.Id !== observed.externalId || typeof raw.SyncToken !== "string" || !/^\d+$/.test(raw.SyncToken) || raw.TotalAmt !== input.totalAmount || raw.status === "Deleted" || raw.TxnStatus === "Voided" || raw.Deposit !== void 0 && raw.Deposit !== 0 || raw.ExchangeRate !== void 0 && raw.ExchangeRate !== 1) reject();
26
+ if (!Array.isArray(raw.Line)) reject();
27
+ const lines = [];
28
+ let subtotals = 0;
29
+ for (const item of raw.Line) {
30
+ const line = object(item);
31
+ if (line.DetailType === "SalesItemLineDetail") lines.push(line);
32
+ else if (line.DetailType === "SubTotalLineDetail" && ++subtotals === 1 && line.Amount === input.subtotal) continue;
33
+ else reject();
34
+ }
35
+ const expectedTax = object(payload.TxnTaxDetail);
36
+ const actualTax = object(raw.TxnTaxDetail);
37
+ if (input.taxAmount !== 0 && !Array.isArray(expectedTax.TaxLine)) reject();
38
+ if (expectedTax.TaxLine === void 0 && actualTax.TaxLine !== void 0 && (!Array.isArray(actualTax.TaxLine) || actualTax.TaxLine.length !== 0)) reject();
39
+ if (Array.isArray(actualTax.TaxLine)) {
40
+ const bases = mapDocumentTaxReadback(input);
41
+ for (const [index, line] of actualTax.TaxLine.entries()) {
42
+ const detail = object(object(line).TaxLineDetail);
43
+ if (detail.NetAmountTaxable !== void 0 && detail.NetAmountTaxable !== bases[index]?.TaxLineDetail.NetAmountTaxable) reject();
44
+ }
45
+ }
46
+ if (!matches(payload, {
47
+ ...raw,
48
+ Line: lines
49
+ })) reject();
50
+ return {
51
+ externalId: observed.externalId,
52
+ syncToken: raw.SyncToken,
53
+ payloadHash: prepared.payloadHash
54
+ };
55
+ }
56
+ /** Verify a fetched invoice; never guesses absence or makes a provider call. */
57
+ function verifyQuickBooksInvoiceReadback(invoice, request, observed) {
58
+ const { externalId: _externalId, quickbooksRequest: _request, ...original } = invoice;
59
+ return verify(original, request, prepareQuickBooksInvoiceRequest(original, request), mapInvoiceToQBO(original), observed);
60
+ }
61
+ /** Verify the credit document only; application to the original invoice remains separate. */
62
+ function verifyQuickBooksCreditMemoReadback(credit, request, observed) {
63
+ if (request.creditedInvoiceExternalId !== credit.creditedInvoiceExternalId) reject();
64
+ const { externalId: _externalId, quickbooksCreditMemoRequest: _request, ...original } = credit;
65
+ return verify(original, request, prepareQuickBooksCreditMemoRequest(original, request), mapCreditMemoToQBO(original), observed);
66
+ }
67
+ //#endregion
5
68
  //#region src/providers/quickbooks/oauth.ts
6
69
  var ACCOUNTING_SCOPE = "com.intuit.quickbooks.accounting";
7
70
  /** Create a public QuickBooks connection helper backed by Intuit's OAuth client. */
@@ -237,12 +300,12 @@ async function getAccountingProvider(userOptions) {
237
300
  switch (options.type) {
238
301
  case "quickbooks": {
239
302
  if (!isQuickBooksOptions(options)) throw new Error("Invalid QuickBooks options");
240
- const { QuickBooksProvider } = await import("./chunks/quickbooks-CIedOmSC.js");
303
+ const { QuickBooksProvider } = await import("./chunks/quickbooks-Bh9k87sj.js");
241
304
  return new QuickBooksProvider(options);
242
305
  }
243
306
  case "stripe": {
244
307
  if (!isStripeOptions(options)) throw new Error("Invalid Stripe options");
245
- const { StripeProvider } = await import("./chunks/stripe-CECceZH5.js");
308
+ const { StripeProvider } = await import("./chunks/stripe-DOJLldVK.js");
246
309
  return new StripeProvider(options);
247
310
  }
248
311
  case "paypal": throw new Error("PayPal provider not yet implemented");
@@ -253,6 +316,6 @@ async function getAccountingProvider(userOptions) {
253
316
  /** @internal */
254
317
  var PACKAGE_VERSION_INITIALIZED = true;
255
318
  //#endregion
256
- export { PACKAGE_VERSION_INITIALIZED, QuickBooksOAuthError, QuickBooksWriteError, StripeApiError, createQuickBooksOAuthClient, getAccountingProvider, isQuickBooksOptions, isStripeOptions, prepareQuickBooksCreditMemoRequest, prepareQuickBooksInvoiceRequest, requireCreditMemoOperations };
319
+ export { PACKAGE_VERSION_INITIALIZED, QuickBooksOAuthError, QuickBooksWriteError, StripeApiError, createQuickBooksOAuthClient, getAccountingProvider, isQuickBooksOptions, isStripeOptions, prepareQuickBooksCreditMemoRequest, prepareQuickBooksInvoiceRequest, prepareQuickBooksReceivableRequest, reconcileQuickBooksReceivableRecord, requireCreditMemoOperations, verifyQuickBooksCreditMemoReadback, verifyQuickBooksInvoiceReadback };
257
320
 
258
321
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/providers/quickbooks/oauth.ts","../src/index.ts"],"sourcesContent":["import { createHash, timingSafeEqual } from 'node:crypto';\nimport { QuickBooksOAuthError } from '../../errors.js';\nimport type {\n QuickBooksOAuthClient,\n QuickBooksOAuthConnection,\n QuickBooksOAuthOptions,\n TokenSet,\n} from '../../types.js';\n\nconst ACCOUNTING_SCOPE = 'com.intuit.quickbooks.accounting';\n\n/** Create a public QuickBooks connection helper backed by Intuit's OAuth client. */\nexport async function createQuickBooksOAuthClient(\n options: QuickBooksOAuthOptions,\n): Promise<QuickBooksOAuthClient> {\n const redirect = validateOptions(options);\n const OAuthClient = (await import('intuit-oauth')).default;\n let client: InstanceType<typeof OAuthClient>;\n try {\n client = new OAuthClient({\n clientId: options.clientId,\n clientSecret: options.clientSecret,\n environment: options.environment,\n redirectUri: options.redirectUri,\n });\n } catch {\n throw new QuickBooksOAuthError('INVALID_CONFIGURATION');\n }\n\n return {\n authorizationUrl({ state }) {\n validateOpaque(state, 'INVALID_STATE');\n try {\n return client.authorizeUri({ scope: [ACCOUNTING_SCOPE], state });\n } catch {\n throw new QuickBooksOAuthError('AUTHORIZATION_FAILED');\n }\n },\n\n async exchangeCallback({ callbackUrl, expectedState }) {\n validateOpaque(expectedState, 'INVALID_STATE');\n const callback = validateCallback(callbackUrl, redirect);\n const state = single(callback.searchParams, 'state', 'INVALID_STATE');\n validateOpaque(state, 'INVALID_STATE');\n if (!sameOpaqueValue(state, expectedState))\n throw new QuickBooksOAuthError('INVALID_STATE');\n const code = single(callback.searchParams, 'code', 'INVALID_CALLBACK');\n if (code.length > 4096)\n throw new QuickBooksOAuthError('INVALID_CALLBACK');\n const realmId = single(\n callback.searchParams,\n 'realmId',\n 'INVALID_CALLBACK',\n );\n if (realmId.length > 255)\n throw new QuickBooksOAuthError('INVALID_CALLBACK');\n for (const name of callback.searchParams.keys())\n if (!['code', 'realmId', 'state'].includes(name))\n throw new QuickBooksOAuthError('INVALID_CALLBACK');\n\n // Rebuild from the configured redirect and the three validated values.\n // intuit-oauth treats a callback `redirectUri` query as an override.\n const exchangeUrl = new URL(redirect);\n exchangeUrl.searchParams.set('code', code);\n exchangeUrl.searchParams.set('realmId', realmId);\n exchangeUrl.searchParams.set('state', state);\n\n try {\n const response = await client.createToken(exchangeUrl.toString());\n const token = response.getJson();\n const tokens = mapTokens(token);\n const grantedScopes = scopes(token.scope);\n return {\n realmId,\n tokens,\n ...(grantedScopes ? { grantedScopes } : {}),\n } satisfies QuickBooksOAuthConnection;\n } catch (error) {\n if (error instanceof QuickBooksOAuthError) throw error;\n throw new QuickBooksOAuthError('EXCHANGE_FAILED');\n }\n },\n\n async revoke({ refreshToken }) {\n validateOpaque(refreshToken, 'INVALID_TOKEN');\n try {\n await client.revoke({ refresh_token: refreshToken });\n } catch {\n throw new QuickBooksOAuthError('REVOCATION_FAILED');\n }\n },\n };\n}\n\nfunction validateOptions(options: QuickBooksOAuthOptions): URL {\n if (\n !options ||\n !['sandbox', 'production'].includes(options.environment) ||\n !nonempty(options.clientId) ||\n !nonempty(options.clientSecret) ||\n !nonempty(options.redirectUri)\n )\n throw new QuickBooksOAuthError('INVALID_CONFIGURATION');\n\n try {\n const redirect = new URL(options.redirectUri);\n if (\n !['http:', 'https:'].includes(redirect.protocol) ||\n redirect.username ||\n redirect.password ||\n redirect.search ||\n redirect.hash\n )\n throw new Error('invalid redirect');\n return redirect;\n } catch {\n throw new QuickBooksOAuthError('INVALID_CONFIGURATION');\n }\n}\n\nfunction validateCallback(callbackUrl: string, redirect: URL): URL {\n try {\n const callback = new URL(callbackUrl);\n if (\n callback.protocol !== redirect.protocol ||\n callback.origin !== redirect.origin ||\n callback.pathname !== redirect.pathname ||\n callback.username ||\n callback.password ||\n callback.hash ||\n callback.searchParams.has('error')\n )\n throw new Error('invalid callback');\n return callback;\n } catch {\n throw new QuickBooksOAuthError('INVALID_CALLBACK');\n }\n}\n\nfunction single(\n params: URLSearchParams,\n name: string,\n code: 'INVALID_STATE' | 'INVALID_CALLBACK',\n): string {\n const values = params.getAll(name);\n if (values.length !== 1 || !nonempty(values[0]))\n throw new QuickBooksOAuthError(code);\n return values[0];\n}\n\nfunction validateOpaque(\n value: string,\n code: 'INVALID_STATE' | 'INVALID_TOKEN',\n): void {\n if (!nonempty(value) || value.length > 4096)\n throw new QuickBooksOAuthError(code);\n}\n\nfunction sameOpaqueValue(actual: string, expected: string): boolean {\n const digest = (value: string) => createHash('sha256').update(value).digest();\n return timingSafeEqual(digest(actual), digest(expected));\n}\n\nfunction mapTokens(token: {\n access_token?: unknown;\n refresh_token?: unknown;\n expires_in?: unknown;\n token_type?: unknown;\n}): TokenSet {\n if (\n !nonempty(token?.access_token) ||\n !nonempty(token.refresh_token) ||\n typeof token.expires_in !== 'number' ||\n !Number.isFinite(token.expires_in) ||\n token.expires_in <= 0 ||\n (token.token_type !== undefined && !nonempty(token.token_type))\n )\n throw new QuickBooksOAuthError('EXCHANGE_FAILED');\n const expiresAt = new Date(Date.now() + token.expires_in * 1000);\n if (!Number.isFinite(expiresAt.getTime()))\n throw new QuickBooksOAuthError('EXCHANGE_FAILED');\n return {\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n expiresAt,\n ...(token.token_type ? { tokenType: token.token_type } : {}),\n };\n}\n\nfunction scopes(value: unknown): string[] | undefined {\n const values = Array.isArray(value)\n ? value\n : typeof value === 'string'\n ? value.split(/\\s+/)\n : [];\n const normalized = [\n ...new Set(values.filter((item): item is string => nonempty(item))),\n ];\n return normalized.length ? normalized : undefined;\n}\n\nfunction nonempty(value: unknown): value is string {\n return (\n typeof value === 'string' && value.length > 0 && value.trim() === value\n );\n}\n","/**\n * @happyvertical/accounting - Multi-provider accounting integration\n *\n * This package provides a unified interface for syncing and auditing\n * accounting data (AR/AP) with external providers like QuickBooks Online,\n * Stripe, PayPal, and Coinbase Commerce.\n *\n * Key components:\n * - getAccountingProvider() - Factory function for creating provider instances\n * - AccountingProvider - Unified interface for all providers\n * - Audit operations for reconciling local vs external data\n *\n * @example\n * ```typescript\n * import { getAccountingProvider } from '@happyvertical/accounting';\n *\n * const provider = await getAccountingProvider({\n * type: 'quickbooks',\n * clientId: 'xxx',\n * clientSecret: 'xxx',\n * realmId: 'xxx',\n * refreshToken: 'xxx'\n * });\n *\n * // Sync a customer\n * const result = await provider.customers.sync(customer);\n *\n * // Audit invoices\n * const report = await provider.audit.reconcileInvoices(localInvoices);\n * ```\n */\n\nimport { loadEnvConfig } from '@happyvertical/utils';\nimport type {\n AccountingOptions,\n AccountingProvider,\n CreditMemoOperations,\n QuickBooksOptions,\n StripeOptions,\n} from './types.js';\n\nexport type { QuickBooksOAuthErrorCode } from './errors.js';\nexport {\n QuickBooksOAuthError,\n QuickBooksWriteError,\n StripeApiError,\n} from './errors.js';\nexport {\n prepareQuickBooksCreditMemoRequest,\n prepareQuickBooksInvoiceRequest,\n} from './providers/quickbooks/invoice-request.js';\nexport { createQuickBooksOAuthClient } from './providers/quickbooks/oauth.js';\n// Re-export all types\nexport * from './types.js';\n\n/**\n * Schema for environment variable type conversion\n */\nconst accountingOptionsSchema: Record<string, 'string' | 'number' | 'boolean'> =\n {\n type: 'string',\n clientId: 'string',\n clientSecret: 'string',\n realmId: 'string',\n refreshToken: 'string',\n environment: 'string',\n secretKey: 'string',\n apiKey: 'string',\n timeout: 'number',\n maxRetries: 'number',\n };\n\n/**\n * Type guard for QuickBooks options\n */\nexport function isQuickBooksOptions(\n options: AccountingOptions,\n): options is QuickBooksOptions {\n return options.type === 'quickbooks';\n}\n\n/**\n * Type guard for Stripe options\n */\nexport function isStripeOptions(\n options: AccountingOptions,\n): options is StripeOptions {\n return options.type === 'stripe';\n}\n\n/**\n * Return the provider's credit-memo capability or fail explicitly before a\n * caller attempts a write against a provider that does not implement it.\n */\nexport function requireCreditMemoOperations(\n provider: Pick<AccountingProvider, 'type' | 'creditMemos'>,\n): CreditMemoOperations {\n if (!provider.creditMemos)\n throw new Error(\n `Accounting provider '${provider.type}' does not support credit memos`,\n );\n return provider.creditMemos;\n}\n\n/**\n * Create an accounting provider instance\n *\n * Factory function that creates a provider-specific implementation\n * of the AccountingProvider interface. Uses dynamic imports to\n * load only the provider code you need.\n *\n * @param userOptions - Provider configuration options\n * @returns AccountingProvider instance\n *\n * @example\n * ```typescript\n * // QuickBooks Online\n * const qbo = await getAccountingProvider({\n * type: 'quickbooks',\n * clientId: process.env.QBO_CLIENT_ID!,\n * clientSecret: process.env.QBO_CLIENT_SECRET!,\n * realmId: process.env.QBO_REALM_ID!,\n * refreshToken: process.env.QBO_REFRESH_TOKEN!,\n * environment: 'sandbox',\n * onTokenRefresh: async (tokens) => {\n * // Persist refreshed tokens\n * await saveTokens(tokens);\n * }\n * });\n *\n * // Stripe\n * const stripe = await getAccountingProvider({\n * type: 'stripe',\n * secretKey: process.env.STRIPE_SECRET_KEY!\n * });\n *\n * // Use env vars for configuration\n * const provider = await getAccountingProvider({ type: 'quickbooks' });\n * // Reads HAVE_ACCOUNTING_CLIENT_ID, HAVE_ACCOUNTING_REALM_ID, etc.\n * ```\n */\nexport async function getAccountingProvider(\n userOptions: Partial<AccountingOptions> & { type: AccountingOptions['type'] },\n): Promise<AccountingProvider> {\n // Load config from env vars, user options take precedence\n const options = loadEnvConfig<AccountingOptions>(userOptions, {\n packageName: 'accounting',\n schema: accountingOptionsSchema,\n });\n\n switch (options.type) {\n case 'quickbooks': {\n if (!isQuickBooksOptions(options)) {\n throw new Error('Invalid QuickBooks options');\n }\n const { QuickBooksProvider } = await import(\n './providers/quickbooks/index.js'\n );\n return new QuickBooksProvider(options);\n }\n\n case 'stripe': {\n if (!isStripeOptions(options)) {\n throw new Error('Invalid Stripe options');\n }\n const { StripeProvider } = await import('./providers/stripe/index.js');\n return new StripeProvider(options);\n }\n\n case 'paypal':\n throw new Error('PayPal provider not yet implemented');\n\n case 'coinbase':\n throw new Error('Coinbase provider not yet implemented');\n\n default:\n throw new Error(`Unknown provider type: ${(options as any).type}`);\n }\n}\n\n/** @internal */\nexport const PACKAGE_VERSION_INITIALIZED = true;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/providers/quickbooks/document-readback.ts","../src/providers/quickbooks/oauth.ts","../src/index.ts"],"sourcesContent":["import type {\n CreditMemoInput,\n InvoiceInput,\n QuickBooksCreditMemoRequest,\n QuickBooksInvoiceRequest,\n} from '../../types.js';\nimport {\n mapCreditMemoToQBO,\n mapDocumentTaxReadback,\n mapInvoiceToQBO,\n prepareQuickBooksCreditMemoRequest,\n prepareQuickBooksInvoiceRequest,\n} from './invoice-request.js';\n\n/** The host obtains this record through its authorized realm-bound provider. */\nexport interface QuickBooksDocumentReadback {\n readonly realmId: string;\n readonly environment: 'sandbox' | 'production';\n readonly externalId: string;\n readonly record: unknown;\n}\nexport interface VerifiedQuickBooksDocumentReadback {\n readonly externalId: string;\n readonly syncToken: string;\n readonly payloadHash: string;\n}\nfunction reject(): never {\n // Never put private provider payloads or credentials into a thrown error.\n throw new Error('QuickBooks readback differs from the frozen document');\n}\nfunction object(value: unknown): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) reject();\n return value as Record<string, unknown>;\n}\nfunction matches(expected: unknown, actual: unknown): boolean {\n if (Array.isArray(expected))\n return (\n Array.isArray(actual) &&\n expected.length === actual.length &&\n expected.every((item, index) => matches(item, actual[index]))\n );\n if (expected !== null && typeof expected === 'object') {\n if (!actual || typeof actual !== 'object' || Array.isArray(actual))\n return false;\n const record = actual as Record<string, unknown>;\n return Object.entries(expected).every(\n ([key, value]) => value === undefined || matches(value, record[key]),\n );\n }\n return expected === actual;\n}\nfunction verify(\n input: InvoiceInput | CreditMemoInput,\n request: QuickBooksInvoiceRequest | QuickBooksCreditMemoRequest,\n prepared: QuickBooksInvoiceRequest | QuickBooksCreditMemoRequest,\n payload: Record<string, unknown>,\n observed: QuickBooksDocumentReadback,\n): VerifiedQuickBooksDocumentReadback {\n if (\n !observed.externalId ||\n observed.externalId.trim() !== observed.externalId ||\n request.realmId !== observed.realmId ||\n request.environment !== observed.environment ||\n request.requestId !== prepared.requestId ||\n request.payloadHash !== prepared.payloadHash ||\n !input.currency ||\n !input.quickbooksMapping\n )\n reject();\n const raw = object(observed.record);\n if (\n raw.Id !== observed.externalId ||\n typeof raw.SyncToken !== 'string' ||\n !/^\\d+$/.test(raw.SyncToken) ||\n raw.TotalAmt !== input.totalAmount ||\n raw.status === 'Deleted' ||\n raw.TxnStatus === 'Voided' ||\n (raw.Deposit !== undefined && raw.Deposit !== 0) ||\n (raw.ExchangeRate !== undefined && raw.ExchangeRate !== 1)\n )\n reject();\n if (!Array.isArray(raw.Line)) reject();\n const lines: unknown[] = [];\n let subtotals = 0;\n for (const item of raw.Line) {\n const line = object(item);\n if (line.DetailType === 'SalesItemLineDetail') lines.push(line);\n else if (\n line.DetailType === 'SubTotalLineDetail' &&\n ++subtotals === 1 &&\n line.Amount === input.subtotal\n )\n continue;\n else reject();\n }\n const expectedTax = object(payload.TxnTaxDetail);\n const actualTax = object(raw.TxnTaxDetail);\n // A header total alone cannot prove which nonzero tax components were posted.\n if (input.taxAmount !== 0 && !Array.isArray(expectedTax.TaxLine)) reject();\n if (\n expectedTax.TaxLine === undefined &&\n actualTax.TaxLine !== undefined &&\n (!Array.isArray(actualTax.TaxLine) || actualTax.TaxLine.length !== 0)\n )\n reject();\n // Provider-added taxable bases are economics, not display metadata. Compare\n // them with the owning mapper's aggregate basis without changing create bytes.\n if (Array.isArray(actualTax.TaxLine)) {\n const bases = mapDocumentTaxReadback(input);\n for (const [index, line] of actualTax.TaxLine.entries()) {\n const detail = object(object(line).TaxLineDetail);\n if (\n detail.NetAmountTaxable !== undefined &&\n detail.NetAmountTaxable !== bases[index]?.TaxLineDetail.NetAmountTaxable\n )\n reject();\n }\n }\n if (!matches(payload, { ...raw, Line: lines })) reject();\n return {\n externalId: observed.externalId,\n syncToken: raw.SyncToken,\n payloadHash: prepared.payloadHash,\n };\n}\n\n/** Verify a fetched invoice; never guesses absence or makes a provider call. */\nexport function verifyQuickBooksInvoiceReadback(\n invoice: InvoiceInput,\n request: QuickBooksInvoiceRequest,\n observed: QuickBooksDocumentReadback,\n): VerifiedQuickBooksDocumentReadback {\n const {\n externalId: _externalId,\n quickbooksRequest: _request,\n ...original\n } = invoice;\n const prepared = prepareQuickBooksInvoiceRequest(original, request);\n return verify(\n original,\n request,\n prepared,\n mapInvoiceToQBO(original),\n observed,\n );\n}\n\n/** Verify the credit document only; application to the original invoice remains separate. */\nexport function verifyQuickBooksCreditMemoReadback(\n credit: CreditMemoInput,\n request: QuickBooksCreditMemoRequest,\n observed: QuickBooksDocumentReadback,\n): VerifiedQuickBooksDocumentReadback {\n if (request.creditedInvoiceExternalId !== credit.creditedInvoiceExternalId)\n reject();\n const {\n externalId: _externalId,\n quickbooksCreditMemoRequest: _request,\n ...original\n } = credit;\n const prepared = prepareQuickBooksCreditMemoRequest(original, request);\n return verify(\n original,\n request,\n prepared,\n mapCreditMemoToQBO(original),\n observed,\n );\n}\n","import { createHash, timingSafeEqual } from 'node:crypto';\nimport { QuickBooksOAuthError } from '../../errors.js';\nimport type {\n QuickBooksOAuthClient,\n QuickBooksOAuthConnection,\n QuickBooksOAuthOptions,\n TokenSet,\n} from '../../types.js';\n\nconst ACCOUNTING_SCOPE = 'com.intuit.quickbooks.accounting';\n\n/** Create a public QuickBooks connection helper backed by Intuit's OAuth client. */\nexport async function createQuickBooksOAuthClient(\n options: QuickBooksOAuthOptions,\n): Promise<QuickBooksOAuthClient> {\n const redirect = validateOptions(options);\n const OAuthClient = (await import('intuit-oauth')).default;\n let client: InstanceType<typeof OAuthClient>;\n try {\n client = new OAuthClient({\n clientId: options.clientId,\n clientSecret: options.clientSecret,\n environment: options.environment,\n redirectUri: options.redirectUri,\n });\n } catch {\n throw new QuickBooksOAuthError('INVALID_CONFIGURATION');\n }\n\n return {\n authorizationUrl({ state }) {\n validateOpaque(state, 'INVALID_STATE');\n try {\n return client.authorizeUri({ scope: [ACCOUNTING_SCOPE], state });\n } catch {\n throw new QuickBooksOAuthError('AUTHORIZATION_FAILED');\n }\n },\n\n async exchangeCallback({ callbackUrl, expectedState }) {\n validateOpaque(expectedState, 'INVALID_STATE');\n const callback = validateCallback(callbackUrl, redirect);\n const state = single(callback.searchParams, 'state', 'INVALID_STATE');\n validateOpaque(state, 'INVALID_STATE');\n if (!sameOpaqueValue(state, expectedState))\n throw new QuickBooksOAuthError('INVALID_STATE');\n const code = single(callback.searchParams, 'code', 'INVALID_CALLBACK');\n if (code.length > 4096)\n throw new QuickBooksOAuthError('INVALID_CALLBACK');\n const realmId = single(\n callback.searchParams,\n 'realmId',\n 'INVALID_CALLBACK',\n );\n if (realmId.length > 255)\n throw new QuickBooksOAuthError('INVALID_CALLBACK');\n for (const name of callback.searchParams.keys())\n if (!['code', 'realmId', 'state'].includes(name))\n throw new QuickBooksOAuthError('INVALID_CALLBACK');\n\n // Rebuild from the configured redirect and the three validated values.\n // intuit-oauth treats a callback `redirectUri` query as an override.\n const exchangeUrl = new URL(redirect);\n exchangeUrl.searchParams.set('code', code);\n exchangeUrl.searchParams.set('realmId', realmId);\n exchangeUrl.searchParams.set('state', state);\n\n try {\n const response = await client.createToken(exchangeUrl.toString());\n const token = response.getJson();\n const tokens = mapTokens(token);\n const grantedScopes = scopes(token.scope);\n return {\n realmId,\n tokens,\n ...(grantedScopes ? { grantedScopes } : {}),\n } satisfies QuickBooksOAuthConnection;\n } catch (error) {\n if (error instanceof QuickBooksOAuthError) throw error;\n throw new QuickBooksOAuthError('EXCHANGE_FAILED');\n }\n },\n\n async revoke({ refreshToken }) {\n validateOpaque(refreshToken, 'INVALID_TOKEN');\n try {\n await client.revoke({ refresh_token: refreshToken });\n } catch {\n throw new QuickBooksOAuthError('REVOCATION_FAILED');\n }\n },\n };\n}\n\nfunction validateOptions(options: QuickBooksOAuthOptions): URL {\n if (\n !options ||\n !['sandbox', 'production'].includes(options.environment) ||\n !nonempty(options.clientId) ||\n !nonempty(options.clientSecret) ||\n !nonempty(options.redirectUri)\n )\n throw new QuickBooksOAuthError('INVALID_CONFIGURATION');\n\n try {\n const redirect = new URL(options.redirectUri);\n if (\n !['http:', 'https:'].includes(redirect.protocol) ||\n redirect.username ||\n redirect.password ||\n redirect.search ||\n redirect.hash\n )\n throw new Error('invalid redirect');\n return redirect;\n } catch {\n throw new QuickBooksOAuthError('INVALID_CONFIGURATION');\n }\n}\n\nfunction validateCallback(callbackUrl: string, redirect: URL): URL {\n try {\n const callback = new URL(callbackUrl);\n if (\n callback.protocol !== redirect.protocol ||\n callback.origin !== redirect.origin ||\n callback.pathname !== redirect.pathname ||\n callback.username ||\n callback.password ||\n callback.hash ||\n callback.searchParams.has('error')\n )\n throw new Error('invalid callback');\n return callback;\n } catch {\n throw new QuickBooksOAuthError('INVALID_CALLBACK');\n }\n}\n\nfunction single(\n params: URLSearchParams,\n name: string,\n code: 'INVALID_STATE' | 'INVALID_CALLBACK',\n): string {\n const values = params.getAll(name);\n if (values.length !== 1 || !nonempty(values[0]))\n throw new QuickBooksOAuthError(code);\n return values[0];\n}\n\nfunction validateOpaque(\n value: string,\n code: 'INVALID_STATE' | 'INVALID_TOKEN',\n): void {\n if (!nonempty(value) || value.length > 4096)\n throw new QuickBooksOAuthError(code);\n}\n\nfunction sameOpaqueValue(actual: string, expected: string): boolean {\n const digest = (value: string) => createHash('sha256').update(value).digest();\n return timingSafeEqual(digest(actual), digest(expected));\n}\n\nfunction mapTokens(token: {\n access_token?: unknown;\n refresh_token?: unknown;\n expires_in?: unknown;\n token_type?: unknown;\n}): TokenSet {\n if (\n !nonempty(token?.access_token) ||\n !nonempty(token.refresh_token) ||\n typeof token.expires_in !== 'number' ||\n !Number.isFinite(token.expires_in) ||\n token.expires_in <= 0 ||\n (token.token_type !== undefined && !nonempty(token.token_type))\n )\n throw new QuickBooksOAuthError('EXCHANGE_FAILED');\n const expiresAt = new Date(Date.now() + token.expires_in * 1000);\n if (!Number.isFinite(expiresAt.getTime()))\n throw new QuickBooksOAuthError('EXCHANGE_FAILED');\n return {\n accessToken: token.access_token,\n refreshToken: token.refresh_token,\n expiresAt,\n ...(token.token_type ? { tokenType: token.token_type } : {}),\n };\n}\n\nfunction scopes(value: unknown): string[] | undefined {\n const values = Array.isArray(value)\n ? value\n : typeof value === 'string'\n ? value.split(/\\s+/)\n : [];\n const normalized = [\n ...new Set(values.filter((item): item is string => nonempty(item))),\n ];\n return normalized.length ? normalized : undefined;\n}\n\nfunction nonempty(value: unknown): value is string {\n return (\n typeof value === 'string' && value.length > 0 && value.trim() === value\n );\n}\n","/**\n * @happyvertical/accounting - Multi-provider accounting integration\n *\n * This package provides a unified interface for syncing and auditing\n * accounting data (AR/AP) with external providers like QuickBooks Online,\n * Stripe, PayPal, and Coinbase Commerce.\n *\n * Key components:\n * - getAccountingProvider() - Factory function for creating provider instances\n * - AccountingProvider - Unified interface for all providers\n * - Audit operations for reconciling local vs external data\n *\n * @example\n * ```typescript\n * import { getAccountingProvider } from '@happyvertical/accounting';\n *\n * const provider = await getAccountingProvider({\n * type: 'quickbooks',\n * clientId: 'xxx',\n * clientSecret: 'xxx',\n * realmId: 'xxx',\n * refreshToken: 'xxx'\n * });\n *\n * // Sync a customer\n * const result = await provider.customers.sync(customer);\n *\n * // Audit invoices\n * const report = await provider.audit.reconcileInvoices(localInvoices);\n * ```\n */\n\nimport { loadEnvConfig } from '@happyvertical/utils';\nimport type {\n AccountingOptions,\n AccountingProvider,\n CreditMemoOperations,\n QuickBooksOptions,\n StripeOptions,\n} from './types.js';\n\nexport type { QuickBooksOAuthErrorCode } from './errors.js';\nexport {\n QuickBooksOAuthError,\n QuickBooksWriteError,\n StripeApiError,\n} from './errors.js';\nexport {\n type QuickBooksDocumentReadback,\n type VerifiedQuickBooksDocumentReadback,\n verifyQuickBooksCreditMemoReadback,\n verifyQuickBooksInvoiceReadback,\n} from './providers/quickbooks/document-readback.js';\nexport {\n prepareQuickBooksCreditMemoRequest,\n prepareQuickBooksInvoiceRequest,\n} from './providers/quickbooks/invoice-request.js';\nexport { createQuickBooksOAuthClient } from './providers/quickbooks/oauth.js';\n// Re-export all types\nexport * from './types.js';\n\n/**\n * Schema for environment variable type conversion\n */\nconst accountingOptionsSchema: Record<string, 'string' | 'number' | 'boolean'> =\n {\n type: 'string',\n clientId: 'string',\n clientSecret: 'string',\n realmId: 'string',\n refreshToken: 'string',\n environment: 'string',\n secretKey: 'string',\n apiKey: 'string',\n timeout: 'number',\n maxRetries: 'number',\n };\n\n/**\n * Type guard for QuickBooks options\n */\nexport function isQuickBooksOptions(\n options: AccountingOptions,\n): options is QuickBooksOptions {\n return options.type === 'quickbooks';\n}\n\n/**\n * Type guard for Stripe options\n */\nexport function isStripeOptions(\n options: AccountingOptions,\n): options is StripeOptions {\n return options.type === 'stripe';\n}\n\n/**\n * Return the provider's credit-memo capability or fail explicitly before a\n * caller attempts a write against a provider that does not implement it.\n */\nexport function requireCreditMemoOperations(\n provider: Pick<AccountingProvider, 'type' | 'creditMemos'>,\n): CreditMemoOperations {\n if (!provider.creditMemos)\n throw new Error(\n `Accounting provider '${provider.type}' does not support credit memos`,\n );\n return provider.creditMemos;\n}\n\n/**\n * Create an accounting provider instance\n *\n * Factory function that creates a provider-specific implementation\n * of the AccountingProvider interface. Uses dynamic imports to\n * load only the provider code you need.\n *\n * @param userOptions - Provider configuration options\n * @returns AccountingProvider instance\n *\n * @example\n * ```typescript\n * // QuickBooks Online\n * const qbo = await getAccountingProvider({\n * type: 'quickbooks',\n * clientId: process.env.QBO_CLIENT_ID!,\n * clientSecret: process.env.QBO_CLIENT_SECRET!,\n * realmId: process.env.QBO_REALM_ID!,\n * refreshToken: process.env.QBO_REFRESH_TOKEN!,\n * environment: 'sandbox',\n * onTokenRefresh: async (tokens) => {\n * // Persist refreshed tokens\n * await saveTokens(tokens);\n * }\n * });\n *\n * // Stripe\n * const stripe = await getAccountingProvider({\n * type: 'stripe',\n * secretKey: process.env.STRIPE_SECRET_KEY!\n * });\n *\n * // Use env vars for configuration\n * const provider = await getAccountingProvider({ type: 'quickbooks' });\n * // Reads HAVE_ACCOUNTING_CLIENT_ID, HAVE_ACCOUNTING_REALM_ID, etc.\n * ```\n */\nexport async function getAccountingProvider(\n userOptions: Partial<AccountingOptions> & { type: AccountingOptions['type'] },\n): Promise<AccountingProvider> {\n // Load config from env vars, user options take precedence\n const options = loadEnvConfig<AccountingOptions>(userOptions, {\n packageName: 'accounting',\n schema: accountingOptionsSchema,\n });\n\n switch (options.type) {\n case 'quickbooks': {\n if (!isQuickBooksOptions(options)) {\n throw new Error('Invalid QuickBooks options');\n }\n const { QuickBooksProvider } = await import(\n './providers/quickbooks/index.js'\n );\n return new QuickBooksProvider(options);\n }\n\n case 'stripe': {\n if (!isStripeOptions(options)) {\n throw new Error('Invalid Stripe options');\n }\n const { StripeProvider } = await import('./providers/stripe/index.js');\n return new StripeProvider(options);\n }\n\n case 'paypal':\n throw new Error('PayPal provider not yet implemented');\n\n case 'coinbase':\n throw new Error('Coinbase provider not yet implemented');\n\n default:\n throw new Error(`Unknown provider type: ${(options as any).type}`);\n }\n}\n\n/** @internal */\nexport const PACKAGE_VERSION_INITIALIZED = true;\n\nexport type {\n QuickBooksNonCashApplicationInput,\n QuickBooksReceivableInput,\n QuickBooksReceivableMapping,\n QuickBooksReceivableReadback,\n QuickBooksReceivableRequest,\n QuickBooksReceivableSource,\n QuickBooksReceivableTransferInput,\n QuickBooksReceivableTransferOperations,\n} from './providers/quickbooks/receivable-transfer.js';\nexport {\n prepareQuickBooksReceivableRequest,\n reconcileQuickBooksReceivableRecord,\n} from './providers/quickbooks/receivable-transfer.js';\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CreditMemoInput, InvoiceInput, QuickBooksCreditMemoRequest, QuickBooksInvoiceRequest } from '../../types.js';
2
+ /** The host obtains this record through its authorized realm-bound provider. */
3
+ export interface QuickBooksDocumentReadback {
4
+ readonly realmId: string;
5
+ readonly environment: 'sandbox' | 'production';
6
+ readonly externalId: string;
7
+ readonly record: unknown;
8
+ }
9
+ export interface VerifiedQuickBooksDocumentReadback {
10
+ readonly externalId: string;
11
+ readonly syncToken: string;
12
+ readonly payloadHash: string;
13
+ }
14
+ /** Verify a fetched invoice; never guesses absence or makes a provider call. */
15
+ export declare function verifyQuickBooksInvoiceReadback(invoice: InvoiceInput, request: QuickBooksInvoiceRequest, observed: QuickBooksDocumentReadback): VerifiedQuickBooksDocumentReadback;
16
+ /** Verify the credit document only; application to the original invoice remains separate. */
17
+ export declare function verifyQuickBooksCreditMemoReadback(credit: CreditMemoInput, request: QuickBooksCreditMemoRequest, observed: QuickBooksDocumentReadback): VerifiedQuickBooksDocumentReadback;
18
+ //# sourceMappingURL=document-readback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-readback.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/document-readback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,gBAAgB,CAAC;AASxB,gFAAgF;AAChF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AACD,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAqGD,gFAAgF;AAChF,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,wBAAwB,EACjC,QAAQ,EAAE,0BAA0B,GACnC,kCAAkC,CAcpC;AAED,6FAA6F;AAC7F,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,2BAA2B,EACpC,QAAQ,EAAE,0BAA0B,GACnC,kCAAkC,CAgBpC"}
@@ -1,15 +1,12 @@
1
- /**
2
- * QuickBooks Online Provider
3
- *
4
- * Implements the AccountingProvider interface for QuickBooks Online.
5
- * Uses the Intuit OAuth2 library for authentication and the QBO API for operations.
6
- */
1
+ import { QuickBooksReceivableTransfers } from './receivable-operations.js';
2
+ import { type QuickBooksReceivableRequest } from './receivable-transfer.js';
7
3
  import type { AccountingProvider, AuditOperations, BillOperations, CreditMemoOperations, CustomerOperations, InvoiceOperations, PaymentOperations, QuickBooksCreditMemoRequest, QuickBooksInvoiceRequest, QuickBooksOptions, VendorOperations, WebhookOperations } from '../../types.js';
8
4
  /**
9
5
  * QuickBooks Online accounting provider
10
6
  */
11
7
  export declare class QuickBooksProvider implements AccountingProvider {
12
8
  readonly type: "quickbooks";
9
+ readonly receivableTransfers: QuickBooksReceivableTransfers;
13
10
  private options;
14
11
  private accessToken;
15
12
  private tokenExpiresAt;
@@ -29,6 +26,7 @@ export declare class QuickBooksProvider implements AccountingProvider {
29
26
  /**
30
27
  * Get the company/realm ID
31
28
  */
29
+ get environment(): 'sandbox' | 'production';
32
30
  get realmId(): string;
33
31
  /**
34
32
  * Ensure we have a valid access token, refreshing if needed
@@ -41,7 +39,7 @@ export declare class QuickBooksProvider implements AccountingProvider {
41
39
  /**
42
40
  * Make an authenticated request to the QBO API with timeout and retry support
43
41
  */
44
- request<T>(method: 'GET' | 'POST' | 'DELETE', endpoint: string, body?: unknown, createRequest?: QuickBooksInvoiceRequest | QuickBooksCreditMemoRequest): Promise<T>;
42
+ request<T>(method: 'GET' | 'POST' | 'DELETE', endpoint: string, body?: unknown, createRequest?: QuickBooksInvoiceRequest | QuickBooksCreditMemoRequest | QuickBooksReceivableRequest): Promise<T>;
45
43
  /**
46
44
  * Execute a QBO query with pagination support
47
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,kBAAkB,EAIlB,eAAe,EAGf,cAAc,EAEd,oBAAoB,EAEpB,kBAAkB,EAUlB,iBAAiB,EAGjB,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EAIjB,gBAAgB,EAEhB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAiDxB;;GAEG;AACH,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IAEtC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAqB;IAE3C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;gBAEzB,OAAO,EAAE,iBAAiB;IAkBtC;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAIpB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB1C;;OAEG;YACW,kBAAkB;IAgChC;;OAEG;IACG,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,EACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,aAAa,CAAC,EAAE,wBAAwB,GAAG,2BAA2B,GACrE,OAAO,CAAC,CAAC,CAAC;IAoHb;;OAEG;IACG,QAAQ,CAAC,CAAC,EACd,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,SAAO,GAChB,OAAO,CAAC,CAAC,EAAE,CAAC;CA6BhB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,0BAA0B,CAAC;AAYlC,OAAO,KAAK,EACV,kBAAkB,EAIlB,eAAe,EAGf,cAAc,EAEd,oBAAoB,EAEpB,kBAAkB,EAUlB,iBAAiB,EAGjB,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EAIjB,gBAAgB,EAEhB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAiDxB;;GAEG;AACH,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IACtC,QAAQ,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;IAE5D,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAqB;IAE3C,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;gBAEzB,OAAO,EAAE,iBAAiB;IAmBtC;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAIpB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,SAAS,GAAG,YAAY,CAE1C;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB1C;;OAEG;YACW,kBAAkB;IAgChC;;OAEG;IACG,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,EACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,aAAa,CAAC,EACV,wBAAwB,GACxB,2BAA2B,GAC3B,2BAA2B,GAC9B,OAAO,CAAC,CAAC,CAAC;IAoIb;;OAEG;IACG,QAAQ,CAAC,CAAC,EACd,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,SAAO,GAChB,OAAO,CAAC,CAAC,EAAE,CAAC;CA6BhB"}
@@ -34,6 +34,8 @@ export declare function prepareQuickBooksInvoiceRequest(invoice: InvoiceInput, i
34
34
  export declare function prepareQuickBooksCreditMemoRequest(creditMemo: CreditMemoInput, identity: Omit<QuickBooksCreditMemoRequest, 'payloadHash' | 'creditedInvoiceExternalId'>): QuickBooksCreditMemoRequest;
35
35
  export declare function validateQuickBooksInvoiceRequest(request: QuickBooksInvoiceRequest, realmId: string, environment: 'sandbox' | 'production', payload: string | undefined): void;
36
36
  export declare function validateQuickBooksCreditMemoRequest(request: QuickBooksCreditMemoRequest, realmId: string, environment: 'sandbox' | 'production', payload: string | undefined): void;
37
+ /** Internal readback projection reuses the mapper's validated aggregate tax bases. */
38
+ export declare function mapDocumentTaxReadback(input: InvoiceInput | CreditMemoInput): QuickBooksTaxLine[];
37
39
  declare function basePayload(input: Pick<InvoiceInput, 'customerId' | 'customerExternalId' | 'issueDate' | 'subtotal' | 'taxAmount' | 'totalAmount' | 'currency' | 'memo' | 'lineItems' | 'quickbooksMapping'>, number: string, dueDate?: Date): {
38
40
  Line: QuickBooksSalesLine[];
39
41
  GlobalTaxCalculation: "TaxExcluded" | "TaxInclusive" | "NotApplicable" | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-request.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/invoice-request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEZ,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,gBAAgB,CAAC;AAYxB,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,qBAAqB,CAAC;IAClC,mBAAmB,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5B,UAAU,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,EAAE;QACb,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,IAAI,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAiBD,kFAAkF;AAClF,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,GACtD,wBAAwB,CAI1B;AAED,kFAAkF;AAClF,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,IAAI,CACZ,2BAA2B,EAC3B,aAAa,GAAG,2BAA2B,CAC5C,GACA,2BAA2B,CAa7B;AA8CD,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CAEN;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CAEN;AA00BD,iBAAS,WAAW,CAClB,KAAK,EAAE,IAAI,CACT,YAAY,EACV,YAAY,GACZ,oBAAoB,GACpB,WAAW,GACX,UAAU,GACV,WAAW,GACX,aAAa,GACb,UAAU,GACV,MAAM,GACN,WAAW,GACX,mBAAmB,CACtB,EACD,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,IAAI;;;;;;;;;;;;;;;;;;;EAmBf;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAa9C,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAC1D;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,eAAe;;;;;;;;;;;;;;;;;;;EAU7D"}
1
+ {"version":3,"file":"invoice-request.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/invoice-request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEZ,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,gBAAgB,CAAC;AAYxB,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,qBAAqB,CAAC;IAClC,mBAAmB,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5B,UAAU,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,EAAE;QACb,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,IAAI,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAiBD,kFAAkF;AAClF,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,GACtD,wBAAwB,CAI1B;AAED,kFAAkF;AAClF,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,IAAI,CACZ,2BAA2B,EAC3B,aAAa,GAAG,2BAA2B,CAC5C,GACA,2BAA2B,CAa7B;AA8CD,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CAEN;AAED,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CAEN;AA8bD,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,uBAE3E;AA+YD,iBAAS,WAAW,CAClB,KAAK,EAAE,IAAI,CACT,YAAY,EACV,YAAY,GACZ,oBAAoB,GACpB,WAAW,GACX,UAAU,GACV,WAAW,GACX,aAAa,GACb,UAAU,GACV,MAAM,GACN,WAAW,GACX,mBAAmB,CACtB,EACD,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,IAAI;;;;;;;;;;;;;;;;;;;EAmBf;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAa9C,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAC1D;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,eAAe;;;;;;;;;;;;;;;;;;;EAU7D"}
@@ -0,0 +1,22 @@
1
+ import type { QuickBooksProvider } from './index.js';
2
+ import { type QuickBooksReceivableMapping, type QuickBooksReceivableReadback, type QuickBooksReceivableRequest, type QuickBooksReceivableTransferOperations } from './receivable-transfer.js';
3
+ /** Each operation is separately durable in the host. This class does not pretend QBO supports a saga transaction. */
4
+ export declare class QuickBooksReceivableTransfers implements QuickBooksReceivableTransferOperations {
5
+ private provider;
6
+ constructor(provider: QuickBooksProvider);
7
+ private assertScope;
8
+ private entity;
9
+ verifyMapping(mapping: QuickBooksReceivableMapping): Promise<{
10
+ mappingHash: string;
11
+ homeCurrency: string;
12
+ }>;
13
+ private currency;
14
+ private minor;
15
+ private journalDirection;
16
+ private customerPayments;
17
+ private available;
18
+ private preflight;
19
+ execute(request: QuickBooksReceivableRequest): Promise<QuickBooksReceivableReadback>;
20
+ read(request: QuickBooksReceivableRequest, externalId: string): Promise<QuickBooksReceivableReadback>;
21
+ }
22
+ //# sourceMappingURL=receivable-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receivable-operations.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/receivable-operations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,sCAAsC,EAI5C,MAAM,0BAA0B,CAAC;AAGlC,qHAAqH;AACrH,qBAAa,6BACX,YAAW,sCAAsC;IAErC,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,kBAAkB;IAChD,OAAO,CAAC,WAAW;YAUL,MAAM;IAYd,aAAa,CAAC,OAAO,EAAE,2BAA2B;;;;IAgDxD,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,gBAAgB;YA4BV,gBAAgB;YAsBhB,SAAS;YA8CT,SAAS;IAoBjB,OAAO,CACX,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,4BAA4B,CAAC;IAiClC,IAAI,CACR,OAAO,EAAE,2BAA2B,EACpC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,4BAA4B,CAAC;CAczC"}
@@ -0,0 +1,89 @@
1
+ export interface QuickBooksReceivableMapping {
2
+ realmId: string;
3
+ environment: 'sandbox' | 'production';
4
+ version: string;
5
+ reviewEvidenceRef: string;
6
+ accountingBasis: 'accrual';
7
+ taxTiming: 'invoice-tax-point';
8
+ releaseDueDates: 'host-managed';
9
+ currency: string;
10
+ customerRef: string;
11
+ receivablesAccountRef: string;
12
+ retainedAssetAccountRef: string;
13
+ cashAccountRef: string | null;
14
+ }
15
+ export interface QuickBooksReceivableSource {
16
+ type: 'Invoice' | 'CreditMemo' | 'JournalEntry';
17
+ id: string;
18
+ customerRef: string;
19
+ /** Immutable host snapshot/agreement/release reference, never a guessed provider field. */
20
+ evidenceRef: string;
21
+ }
22
+ interface TransferEvidence {
23
+ mapping: QuickBooksReceivableMapping;
24
+ source: QuickBooksReceivableSource;
25
+ requestId: string;
26
+ effectiveOn: string;
27
+ evidenceRef: string;
28
+ }
29
+ export interface QuickBooksReceivableTransferInput extends TransferEvidence {
30
+ kind: 'withhold' | 'release' | 'cash-refund' | 'reverse-cash-refund';
31
+ amountMinor: number;
32
+ }
33
+ export interface QuickBooksNonCashApplicationInput extends TransferEvidence {
34
+ kind: 'application';
35
+ amountMinor: number;
36
+ debit: {
37
+ type: 'Invoice' | 'JournalEntry';
38
+ id: string;
39
+ };
40
+ credit: {
41
+ type: 'CreditMemo' | 'JournalEntry';
42
+ id: string;
43
+ };
44
+ }
45
+ export type QuickBooksReceivableInput = QuickBooksReceivableTransferInput | QuickBooksNonCashApplicationInput;
46
+ export interface QuickBooksReceivableRequest {
47
+ version: 1;
48
+ endpoint: 'journalentry' | 'payment';
49
+ realmId: string;
50
+ environment: 'sandbox' | 'production';
51
+ requestId: string;
52
+ payloadHash: string;
53
+ input: QuickBooksReceivableInput;
54
+ }
55
+ export interface QuickBooksReceivableReadback {
56
+ externalId: string;
57
+ syncToken: string;
58
+ kind: QuickBooksReceivableInput['kind'];
59
+ customerRef: string;
60
+ currency: string;
61
+ effectiveOn: string;
62
+ amountMinor: number;
63
+ /** Noncash application amount is never counted as a customer cash receipt. */
64
+ nonCashAppliedMinor: number;
65
+ /** A cash journal is a record, not evidence of provider bank settlement. */
66
+ recordedCashChangeMinor: number;
67
+ providerProcessedCashMinor: 0;
68
+ bankSettlementVerified: false;
69
+ source: QuickBooksReceivableSource;
70
+ payloadHash: string;
71
+ }
72
+ export interface QuickBooksReceivableTransferOperations {
73
+ verifyMapping(mapping: QuickBooksReceivableMapping): Promise<{
74
+ mappingHash: string;
75
+ homeCurrency: string;
76
+ }>;
77
+ execute(request: QuickBooksReceivableRequest): Promise<QuickBooksReceivableReadback>;
78
+ /** Reconcile a known remote ID against the complete prepared contract, not just its total. */
79
+ read(request: QuickBooksReceivableRequest, externalId: string): Promise<QuickBooksReceivableReadback>;
80
+ }
81
+ export declare function validateQuickBooksReceivableMapping(mapping: QuickBooksReceivableMapping): void;
82
+ export declare function mapQuickBooksReceivableRequest(input: QuickBooksReceivableInput): Record<string, unknown>;
83
+ /** Pure preparation. Persist before sending; the hash does not prove a remote write occurred once. */
84
+ export declare function prepareQuickBooksReceivableRequest(input: QuickBooksReceivableInput): QuickBooksReceivableRequest;
85
+ export declare function validateQuickBooksReceivableRequest(request: QuickBooksReceivableRequest, realmId: string, environment: string, serializedBody?: string): void;
86
+ /** Exact readback validation; provider-added IDs/names are allowed, omitted financial facts are not. */
87
+ export declare function reconcileQuickBooksReceivableRecord(request: QuickBooksReceivableRequest, value: unknown): QuickBooksReceivableReadback;
88
+ export {};
89
+ //# sourceMappingURL=receivable-transfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receivable-transfer.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/receivable-transfer.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { QuickBooksReceivableTransferOperations } from './providers/quickbooks/receivable-transfer.js';
1
2
  /**
2
3
  * @happyvertical/accounting - Type definitions
3
4
  *
@@ -1025,6 +1026,8 @@ export interface InvoiceOperations {
1025
1026
  * is the capability check: callers must refuse a provider that omits it.
1026
1027
  */
1027
1028
  export interface CreditMemoOperations {
1029
+ /** Read original provider evidence for verified reconciliation; never creates or applies credit. */
1030
+ pull?(externalId: string): Promise<ExternalRecord>;
1028
1031
  /** Create a positive credit note in the provider. */
1029
1032
  push(creditMemo: CreditMemoInput): Promise<SyncResult>;
1030
1033
  /** Create or update a credit note. Create-only descriptors are refused on update. */
@@ -1131,6 +1134,8 @@ export interface WebhookOperations {
1131
1134
  export interface AccountingProvider {
1132
1135
  /** Provider type */
1133
1136
  readonly type: AccountingProviderType;
1137
+ /** Optional exact journal/noncash receivable capability; not a bank-transfer API. */
1138
+ receivableTransfers?: QuickBooksReceivableTransferOperations;
1134
1139
  /** Customer operations */
1135
1140
  customers: CustomerOperations;
1136
1141
  /** Invoice operations */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/accounting",
3
- "version": "0.104.0",
3
+ "version": "0.105.0",
4
4
  "description": "Multi-provider accounting integration for AR/AP sync and audit with QuickBooks, Stripe, and more",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -36,7 +36,7 @@
36
36
  "homepage": "https://github.com/happyvertical/sdk/tree/main/packages/accounting#readme",
37
37
  "license": "MIT",
38
38
  "dependencies": {
39
- "@happyvertical/utils": "0.104.0",
39
+ "@happyvertical/utils": "0.105.0",
40
40
  "intuit-oauth": "^4.2.3"
41
41
  },
42
42
  "devDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors-BHWEFjkq.js","names":[],"sources":["../../src/errors.ts"],"sourcesContent":["/**\n * Provider error types, kept free of provider modules so the package entry\n * point can export them without loading optional integrations.\n */\n\n/**\n * Error thrown for a non-2xx Stripe API response. The message is unchanged\n * from earlier releases (`Stripe API error (<status>): <body>`); the parsed\n * Stripe error fields are exposed for callers that branch on them.\n */\nexport class StripeApiError extends Error {\n readonly status: number;\n /** Stripe error type, for example `card_error` or `invalid_request_error`. */\n readonly type?: string;\n /** Stripe error code, for example `card_declined` or `resource_missing`. */\n readonly code?: string;\n /** Issuer decline code for card errors. */\n readonly declineCode?: string;\n /** Stripe's human-readable error message (never contains card data). */\n readonly stripeMessage?: string;\n /** The PaymentIntent a failed confirmation left behind, if any. */\n readonly paymentIntent?: unknown;\n\n constructor(status: number, body: string) {\n super(`Stripe API error (${status}): ${body}`);\n this.name = 'StripeApiError';\n this.status = status;\n let parsed: { error?: Record<string, unknown> } | undefined;\n try {\n parsed = JSON.parse(body) as { error?: Record<string, unknown> };\n } catch {\n // Non-JSON bodies (proxies, outages) keep only the status and message.\n parsed = undefined;\n }\n const error = parsed?.error;\n if (error && typeof error === 'object') {\n this.type = str(error.type);\n this.code = str(error.code);\n this.declineCode = str(error.decline_code);\n this.stripeMessage = str(error.message);\n this.paymentIntent = error.payment_intent;\n }\n }\n}\n\nfunction str(value: unknown): string | undefined {\n return typeof value === 'string' && value ? value : undefined;\n}\n\n/** A write was rejected, or may have committed and requires caller reconciliation. */\nexport class QuickBooksWriteError extends Error {\n readonly code = 'QBO_WRITE_ERROR';\n readonly outcome: 'unknown' | 'rejected';\n readonly realmId: string;\n readonly environment: 'sandbox' | 'production';\n readonly endpoint: string;\n readonly requestId?: string;\n readonly payloadHash?: string;\n readonly status?: number;\n\n constructor(details: {\n outcome: 'unknown' | 'rejected';\n realmId: string;\n environment: 'sandbox' | 'production';\n endpoint: string;\n requestId?: string;\n payloadHash?: string;\n status?: number;\n cause: unknown;\n }) {\n super(\n `QuickBooks write outcome ${details.outcome}; reconcile before creating a new request identity`,\n { cause: details.cause },\n );\n this.name = 'QuickBooksWriteError';\n this.outcome = details.outcome;\n this.realmId = details.realmId;\n this.environment = details.environment;\n this.endpoint = details.endpoint;\n this.requestId = details.requestId;\n this.payloadHash = details.payloadHash;\n this.status = details.status;\n }\n}\n\nexport type QuickBooksOAuthErrorCode =\n | 'INVALID_CONFIGURATION'\n | 'INVALID_STATE'\n | 'INVALID_CALLBACK'\n | 'INVALID_TOKEN'\n | 'AUTHORIZATION_FAILED'\n | 'EXCHANGE_FAILED'\n | 'REVOCATION_FAILED';\n\n/** Sanitized QuickBooks OAuth lifecycle failure safe for application logs. */\nexport class QuickBooksOAuthError extends Error {\n constructor(readonly code: QuickBooksOAuthErrorCode) {\n super(messages[code]);\n this.name = 'QuickBooksOAuthError';\n }\n}\n\nconst messages: Record<QuickBooksOAuthErrorCode, string> = {\n INVALID_CONFIGURATION: 'QuickBooks OAuth configuration is invalid',\n INVALID_STATE: 'QuickBooks OAuth state validation failed',\n INVALID_CALLBACK: 'QuickBooks OAuth callback is invalid',\n INVALID_TOKEN: 'QuickBooks OAuth token is invalid',\n AUTHORIZATION_FAILED: 'QuickBooks OAuth authorization failed',\n EXCHANGE_FAILED: 'QuickBooks OAuth token exchange failed',\n REVOCATION_FAILED: 'QuickBooks OAuth token revocation failed',\n};\n"],"mappings":";;;;;;;;;;AAUA,IAAa,iBAAb,cAAoC,MAAM;CACxC;;CAEA;;CAEA;;CAEA;;CAEA;;CAEA;CAEA,YAAY,QAAgB,MAAc;EACxC,MAAM,qBAAqB,OAAO,KAAK,MAAM;EAC7C,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,IAAI;EACJ,IAAI;GACF,SAAS,KAAK,MAAM,IAAI;EAC1B,QAAQ;GAEN,SAAS,KAAA;EACX;EACA,MAAM,QAAQ,QAAQ;EACtB,IAAI,SAAS,OAAO,UAAU,UAAU;GACtC,KAAK,OAAO,IAAI,MAAM,IAAI;GAC1B,KAAK,OAAO,IAAI,MAAM,IAAI;GAC1B,KAAK,cAAc,IAAI,MAAM,YAAY;GACzC,KAAK,gBAAgB,IAAI,MAAM,OAAO;GACtC,KAAK,gBAAgB,MAAM;EAC7B;CACF;AACF;AAEA,SAAS,IAAI,OAAoC;CAC/C,OAAO,OAAO,UAAU,YAAY,QAAQ,QAAQ,KAAA;AACtD;;AAGA,IAAa,uBAAb,cAA0C,MAAM;CAC9C,OAAgB;CAChB;CACA;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,SAST;EACD,MACE,4BAA4B,QAAQ,QAAQ,qDAC5C,EAAE,OAAO,QAAQ,MAAM,CACzB;EACA,KAAK,OAAO;EACZ,KAAK,UAAU,QAAQ;EACvB,KAAK,UAAU,QAAQ;EACvB,KAAK,cAAc,QAAQ;EAC3B,KAAK,WAAW,QAAQ;EACxB,KAAK,YAAY,QAAQ;EACzB,KAAK,cAAc,QAAQ;EAC3B,KAAK,SAAS,QAAQ;CACxB;AACF;;AAYA,IAAa,uBAAb,cAA0C,MAAM;CACzB;CAArB,YAAY,MAAyC;EACnD,MAAM,SAAS,KAAK;EADD,KAAA,OAAA;EAEnB,KAAK,OAAO;CACd;AACF;AAEA,IAAM,WAAqD;CACzD,uBAAuB;CACvB,eAAe;CACf,kBAAkB;CAClB,eAAe;CACf,sBAAsB;CACtB,iBAAiB;CACjB,mBAAmB;AACrB"}