@happyvertical/accounting 0.103.6 → 0.104.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.
@@ -1,32 +1,67 @@
1
- import type { InvoiceInput, QuickBooksInvoiceRequest } from '../../types.js';
1
+ import type { CreditMemoInput, InvoiceInput, QuickBooksCreditMemoRequest, QuickBooksInvoiceRequest } from '../../types.js';
2
+ interface QuickBooksSalesLine {
3
+ LineNum: number;
4
+ Description: string;
5
+ Amount: number;
6
+ DetailType: 'SalesItemLineDetail';
7
+ SalesItemLineDetail: {
8
+ Qty: number;
9
+ UnitPrice: number;
10
+ ItemRef?: {
11
+ value: string;
12
+ };
13
+ TaxCodeRef?: {
14
+ value: string;
15
+ };
16
+ TaxInclusiveAmt?: number;
17
+ };
18
+ }
19
+ interface QuickBooksTaxLine {
20
+ Amount: number;
21
+ DetailType: 'TaxLineDetail';
22
+ TaxLineDetail: {
23
+ TaxRateRef: {
24
+ value: string;
25
+ };
26
+ TaxPercent: number;
27
+ PercentBased: true;
28
+ NetAmountTaxable?: number;
29
+ };
30
+ }
2
31
  /** Prepare once, persist before sending, and reuse unchanged. Performs no I/O. */
3
32
  export declare function prepareQuickBooksInvoiceRequest(invoice: InvoiceInput, identity: Omit<QuickBooksInvoiceRequest, 'payloadHash'>): QuickBooksInvoiceRequest;
33
+ /** Prepare once, persist before sending, and reuse unchanged. Performs no I/O. */
34
+ export declare function prepareQuickBooksCreditMemoRequest(creditMemo: CreditMemoInput, identity: Omit<QuickBooksCreditMemoRequest, 'payloadHash' | 'creditedInvoiceExternalId'>): QuickBooksCreditMemoRequest;
4
35
  export declare function validateQuickBooksInvoiceRequest(request: QuickBooksInvoiceRequest, realmId: string, environment: 'sandbox' | 'production', payload: string | undefined): void;
5
- export declare function mapInvoiceToQBO(invoice: InvoiceInput): {
36
+ export declare function validateQuickBooksCreditMemoRequest(request: QuickBooksCreditMemoRequest, realmId: string, environment: 'sandbox' | 'production', payload: string | undefined): void;
37
+ declare function basePayload(input: Pick<InvoiceInput, 'customerId' | 'customerExternalId' | 'issueDate' | 'subtotal' | 'taxAmount' | 'totalAmount' | 'currency' | 'memo' | 'lineItems' | 'quickbooksMapping'>, number: string, dueDate?: Date): {
38
+ Line: QuickBooksSalesLine[];
39
+ GlobalTaxCalculation: "TaxExcluded" | "TaxInclusive" | "NotApplicable" | undefined;
40
+ TxnTaxDetail: {
41
+ TaxLine?: QuickBooksTaxLine[] | undefined;
42
+ TotalTax: number;
43
+ } | undefined;
44
+ CurrencyRef: {
45
+ value: string;
46
+ } | undefined;
47
+ CustomerMemo: {
48
+ value: string;
49
+ } | undefined;
50
+ DueDate?: string | undefined;
6
51
  CustomerRef: {
7
52
  value: string;
8
53
  };
9
54
  DocNumber: string;
10
55
  TxnDate: string;
56
+ };
57
+ export declare function mapInvoiceToQBO(invoice: InvoiceInput): ReturnType<typeof basePayload> & {
11
58
  DueDate: string;
12
- Line: {
13
- LineNum: number;
14
- Description: string;
15
- Amount: number;
16
- DetailType: "SalesItemLineDetail";
17
- SalesItemLineDetail: {
18
- Qty: number;
19
- UnitPrice: number;
20
- ItemRef: {
21
- value: string;
22
- } | undefined;
23
- TaxCodeRef: {
24
- value: string;
25
- } | undefined;
26
- };
27
- }[];
28
- GlobalTaxCalculation: "TaxExcluded" | "NotApplicable" | undefined;
59
+ };
60
+ export declare function mapCreditMemoToQBO(creditMemo: CreditMemoInput): {
61
+ Line: QuickBooksSalesLine[];
62
+ GlobalTaxCalculation: "TaxExcluded" | "TaxInclusive" | "NotApplicable" | undefined;
29
63
  TxnTaxDetail: {
64
+ TaxLine?: QuickBooksTaxLine[] | undefined;
30
65
  TotalTax: number;
31
66
  } | undefined;
32
67
  CurrencyRef: {
@@ -35,5 +70,12 @@ export declare function mapInvoiceToQBO(invoice: InvoiceInput): {
35
70
  CustomerMemo: {
36
71
  value: string;
37
72
  } | undefined;
73
+ DueDate?: string | undefined;
74
+ CustomerRef: {
75
+ value: string;
76
+ };
77
+ DocNumber: string;
78
+ TxnDate: string;
38
79
  };
80
+ export {};
39
81
  //# sourceMappingURL=invoice-request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-request.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/invoice-request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAG7E,kFAAkF;AAClF,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,GACtD,wBAAwB,CAY1B;AAMD,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,YAAY,EACrC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,IAAI,CA4BN;AASD,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiJpD"}
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,3 +1,9 @@
1
+ /** ISO minor-unit factor, or undefined when the code is unknown or omitted. */
2
+ export declare function currencyMinorUnitFactor(currency: string | undefined): number | undefined;
3
+ /** True only for a finite amount exactly representable on the ISO minor-unit grid. */
4
+ export declare function isCurrencyMinorUnit(amount: number, currency: string | undefined): boolean;
5
+ /** Round a finite major-unit amount half-up to a known ISO currency grid. */
6
+ export declare function roundCurrencyAmount(amount: number, currency: string | undefined): number | undefined;
1
7
  /** Admit only the exact half-up minor-unit result; never rewrite caller money. */
2
8
  export declare function matchesCurrencyRoundedLineAmount(quantity: number, unitPrice: number, amount: number, currency: string | undefined): boolean;
3
9
  //# sourceMappingURL=line-amount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"line-amount.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/line-amount.ts"],"names":[],"mappings":"AAkCA,kFAAkF;AAClF,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAiBT"}
1
+ {"version":3,"file":"line-amount.d.ts","sourceRoot":"","sources":["../../../src/providers/quickbooks/line-amount.ts"],"names":[],"mappings":"AAoBA,+EAA+E;AAC/E,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,SAAS,CAIpB;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAQT;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,SAAS,CAapB;AAgBD,kFAAkF;AAClF,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAiBT"}
package/dist/types.d.ts CHANGED
@@ -184,11 +184,31 @@ export interface QuickBooksInvoiceLineMapping {
184
184
  itemRef: string;
185
185
  /** Existing TaxCode.Id in the target QuickBooks company. */
186
186
  taxCodeRef: string;
187
+ /** Caller-verified ordered TaxCode configuration in this realm; required for compound snapshots. */
188
+ taxComponents?: Array<{
189
+ taxRateRef: string;
190
+ compound: boolean;
191
+ }>;
187
192
  }
188
193
  /** QuickBooks global-tax behavior for a non-US invoice. */
189
194
  export interface QuickBooksInvoiceMapping {
190
- /** Whether line amounts exclude tax or have no applicable tax. */
191
- globalTaxCalculation: 'TaxExcluded' | 'NotApplicable';
195
+ /** Whether line amounts exclude tax, include tax, or have no applicable tax. */
196
+ globalTaxCalculation: 'TaxExcluded' | 'TaxInclusive' | 'NotApplicable';
197
+ }
198
+ /** Frozen tax component contributing to a line's stored tax amount. */
199
+ export interface TaxComponentSnapshot {
200
+ /** The caller's stable component/tax-code identifier. */
201
+ taxCode: string;
202
+ /** Frozen decimal component rate, for example `0.05` or the exact string `"0.05"` for 5%. */
203
+ rate?: number | string;
204
+ /** Realm-specific QuickBooks TaxRate.Id for this component when syncing to QBO. */
205
+ quickbooksTaxRateRef?: string;
206
+ /** Tax recorded for this component in currency major units. */
207
+ taxAmount: number;
208
+ /** Ordered tax-on-tax: includes all preceding components on this line. */
209
+ compound?: boolean;
210
+ /** Frozen actual taxable basis in currency major units; required for compound tax. */
211
+ taxableAmount?: number;
192
212
  }
193
213
  /**
194
214
  * Invoice line item input
@@ -201,14 +221,15 @@ export interface InvoiceLineItemInput {
201
221
  /** Quantity */
202
222
  quantity: number;
203
223
  /**
204
- * Unit price in the currency's major unit (for example, `12.34` USD or
205
- * `1200` JPY). The Stripe provider converts this value to Stripe's smallest
206
- * currency unit.
224
+ * Pre-discount unit price in the document's amount mode. It is net for
225
+ * tax-exclusive invoices and gross for `TaxInclusive` QuickBooks invoices.
226
+ * The Stripe provider converts this value to Stripe's smallest currency unit.
207
227
  */
208
228
  unitPrice: number;
209
229
  /**
210
- * Total discount for this line (not per unit), in the currency's major
211
- * unit. Must be between 0 and `quantity × unitPrice`. The Stripe provider
230
+ * Total pre-discount line reduction (not per unit), in the document's amount
231
+ * mode. It is net for tax-exclusive invoices and gross for tax-inclusive
232
+ * invoices. Must be between 0 and `quantity × unitPrice`. The Stripe provider
212
233
  * applies it as an amount-off discount on the invoice item, so the invoice
213
234
  * shows the discount and Stripe Tax taxes the discounted amount.
214
235
  */
@@ -225,11 +246,19 @@ export interface InvoiceLineItemInput {
225
246
  /** Explicit realm-specific references used only by the QuickBooks provider. */
226
247
  quickbooksMapping?: QuickBooksInvoiceLineMapping;
227
248
  /**
228
- * Calculated line total in currency major units. QuickBooks preserves this
229
- * value and accepts the exact quantity × unitPrice or its decimal half-up
230
- * result at an explicitly recognized ISO currency's minor precision.
249
+ * Frozen net line total after the discount, in currency major units.
250
+ * QuickBooks maps this to `Line.Amount`.
231
251
  */
232
252
  amount?: number;
253
+ /** Stored aggregate tax for this frozen line. Required for a tax-inclusive snapshot. */
254
+ taxAmount?: number;
255
+ /** Stored tax components. When supplied, their amounts must sum to `taxAmount`. */
256
+ taxComponents?: TaxComponentSnapshot[];
257
+ /**
258
+ * Frozen gross line total after the discount. Required for `TaxInclusive`
259
+ * QuickBooks snapshots and mapped to `Line.TaxInclusiveAmt`.
260
+ */
261
+ taxInclusiveAmount?: number;
233
262
  /**
234
263
  * Service period start. Set together with `periodEnd`; the Stripe provider
235
264
  * sends both as the invoice item's `period` (Unix seconds).
@@ -250,6 +279,16 @@ export interface QuickBooksInvoiceRequest {
250
279
  /** SHA-256 of the exact mapped JSON payload; not an authorization signature. */
251
280
  readonly payloadHash: string;
252
281
  }
282
+ /** Persist this descriptor with the frozen credit memo before the first QuickBooks create. */
283
+ export interface QuickBooksCreditMemoRequest {
284
+ readonly requestId: string;
285
+ readonly realmId: string;
286
+ readonly environment: 'sandbox' | 'production';
287
+ /** Immutable source invoice bound into the descriptor linkage envelope. */
288
+ readonly creditedInvoiceExternalId: string;
289
+ /** SHA-256 of the exact mapped JSON payload plus immutable linkage; not an authorization signature. */
290
+ readonly payloadHash: string;
291
+ }
253
292
  /** Invoice input for sync operations. */
254
293
  export interface InvoiceInput {
255
294
  /** Local ID */
@@ -310,6 +349,36 @@ export interface InvoiceInput {
310
349
  */
311
350
  collectionMethod?: InvoiceCollectionMethod;
312
351
  }
352
+ /** A positive frozen credit note. Its direction is represented by QuickBooks CreditMemo. */
353
+ export interface CreditMemoInput {
354
+ /** Local immutable credit-note ID. */
355
+ id: string;
356
+ /** Existing QuickBooks CreditMemo.Id, when already synchronized. */
357
+ externalId?: string;
358
+ /** Existing QuickBooks Invoice.Id bound into the create descriptor for caller reconciliation. */
359
+ creditedInvoiceExternalId: string;
360
+ /** QuickBooks create-only identity, prepared with prepareQuickBooksCreditMemoRequest. */
361
+ quickbooksCreditMemoRequest?: QuickBooksCreditMemoRequest;
362
+ /** Required realm-specific non-US QuickBooks tax mapping. */
363
+ quickbooksMapping?: QuickBooksInvoiceMapping;
364
+ /** Caller-visible credit-note number. */
365
+ creditMemoNumber: string;
366
+ customerId: string;
367
+ customerExternalId?: string;
368
+ issueDate: Date;
369
+ /** Positive frozen sales lines. */
370
+ lineItems: InvoiceLineItemInput[];
371
+ /** Positive net total before tax. */
372
+ subtotal: number;
373
+ /** Positive tax total. */
374
+ taxAmount: number;
375
+ /** Positive gross credit total. */
376
+ totalAmount: number;
377
+ currency?: string;
378
+ reference?: string;
379
+ memo?: string;
380
+ metadata?: Record<string, unknown>;
381
+ }
313
382
  /**
314
383
  * Vendor input for sync operations (AP side)
315
384
  */
@@ -951,6 +1020,16 @@ export interface InvoiceOperations {
951
1020
  */
952
1021
  markPaidOutOfBand?(externalId: string): Promise<void>;
953
1022
  }
1023
+ /**
1024
+ * Provider support for positive customer credit notes. Its optional presence
1025
+ * is the capability check: callers must refuse a provider that omits it.
1026
+ */
1027
+ export interface CreditMemoOperations {
1028
+ /** Create a positive credit note in the provider. */
1029
+ push(creditMemo: CreditMemoInput): Promise<SyncResult>;
1030
+ /** Create or update a credit note. Create-only descriptors are refused on update. */
1031
+ sync(creditMemo: CreditMemoInput): Promise<SyncResult>;
1032
+ }
954
1033
  /**
955
1034
  * Vendor operations interface
956
1035
  */
@@ -1056,6 +1135,8 @@ export interface AccountingProvider {
1056
1135
  customers: CustomerOperations;
1057
1136
  /** Invoice operations */
1058
1137
  invoices: InvoiceOperations;
1138
+ /** Optional because not every accounting provider supports customer credit notes. */
1139
+ creditMemos?: CreditMemoOperations;
1059
1140
  /** Vendor operations */
1060
1141
  vendors: VendorOperations;
1061
1142
  /** Bill 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.103.6",
3
+ "version": "0.104.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.103.6",
39
+ "@happyvertical/utils": "0.104.0",
40
40
  "intuit-oauth": "^4.2.3"
41
41
  },
42
42
  "devDependencies": {
@@ -1,132 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- //#region src/providers/quickbooks/line-amount.ts
3
- var currencyPrecision = new Map([
4
- [0, "BIF CLP DJF GNF ISK JPY KMF KRW PYG RWF UGX UYI VND VUV XAF XOF XPF"],
5
- [2, "AED AFN ALL AMD AOA ARS AUD AWG AZN BAM BBD BDT BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CNY COP COU CRC CUP CVE CZK DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GTQ GYD HKD HNL HTG HUF IDR ILS INR IRR JMD KES KGS KHR KPW KYD KZT LAK LBP LKR LRD LSL MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD PAB PEN PGK PHP PKR PLN QAR RON RSD RUB SAR SBD SCR SDG SEK SGD SHP SLE SOS SRD SSP STN SVC SYP SZL THB TJS TMT TOP TRY TTD TWD TZS UAH USD USN UYU UZS VED VES WST XAD XCD XCG YER ZAR ZMW ZWG"],
6
- [3, "BHD IQD JOD KWD LYD OMR TND"],
7
- [4, "CLF UYW"]
8
- ].flatMap(([precision, codes]) => codes.split(" ").map((code) => [code, precision])));
9
- /** Exact decimal interpretation of the finite nonnegative public number value. */
10
- function decimalRatio(value) {
11
- const [significand, exponent = "0"] = value.toString().split("e");
12
- const [whole, fraction = ""] = significand.split(".");
13
- const coefficient = BigInt(whole + fraction);
14
- const scale = fraction.length - Number(exponent);
15
- return scale >= 0 ? {
16
- numerator: coefficient,
17
- denominator: 10n ** BigInt(scale)
18
- } : {
19
- numerator: coefficient * 10n ** BigInt(-scale),
20
- denominator: 1n
21
- };
22
- }
23
- /** Admit only the exact half-up minor-unit result; never rewrite caller money. */
24
- function matchesCurrencyRoundedLineAmount(quantity, unitPrice, amount, currency) {
25
- if (typeof currency !== "string") return false;
26
- const precision = currencyPrecision.get(currency.toUpperCase());
27
- if (precision === void 0) return false;
28
- const minorScale = 10n ** BigInt(precision);
29
- const retained = decimalRatio(amount);
30
- const retainedMinor = retained.numerator * minorScale;
31
- if (retainedMinor % retained.denominator !== 0n) return false;
32
- const qty = decimalRatio(quantity);
33
- const price = decimalRatio(unitPrice);
34
- const numerator = qty.numerator * price.numerator * minorScale;
35
- const denominator = qty.denominator * price.denominator;
36
- const rounded = numerator / denominator + (numerator % denominator * 2n >= denominator ? 1n : 0n);
37
- return retainedMinor / retained.denominator === rounded;
38
- }
39
- //#endregion
40
- //#region src/providers/quickbooks/invoice-request.ts
41
- /** Prepare once, persist before sending, and reuse unchanged. Performs no I/O. */
42
- function prepareQuickBooksInvoiceRequest(invoice, identity) {
43
- if (invoice.externalId) throw new Error("QuickBooks request identity is only for invoice creation");
44
- const payload = JSON.stringify(mapInvoiceToQBO(invoice));
45
- const request = {
46
- ...identity,
47
- payloadHash: hash(payload)
48
- };
49
- validateQuickBooksInvoiceRequest(request, identity.realmId, identity.environment, payload);
50
- return Object.freeze(request);
51
- }
52
- function hash(payload) {
53
- return createHash("sha256").update(payload).digest("hex");
54
- }
55
- function validateQuickBooksInvoiceRequest(request, realmId, environment, payload) {
56
- if (!request || typeof request.requestId !== "string" || !/^[A-Za-z0-9._-]{1,50}$/.test(request.requestId)) throw new Error("QuickBooks requestId must contain 1–50 URL-safe letters, digits, dots, underscores or hyphens");
57
- if (!request.realmId || request.realmId !== realmId || !["sandbox", "production"].includes(request.environment) || request.environment !== environment) throw new Error("QuickBooks invoice request realm/environment mismatch");
58
- if (!payload || request.payloadHash !== hash(payload)) throw new Error("QuickBooks invoice request payload mismatch; reconcile the original request");
59
- const parsed = JSON.parse(payload);
60
- if (parsed.Id !== void 0 || parsed.SyncToken !== void 0) throw new Error("QuickBooks request identity is only for invoice creation");
61
- }
62
- function formatLocalDate(date) {
63
- return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
64
- }
65
- function mapInvoiceToQBO(invoice) {
66
- if (invoice.collectionMethod === "charge_automatically") throw new Error("QuickBooks does not support charge_automatically invoice collection");
67
- if (invoice.automaticTax) throw new Error("QuickBooks does not support automaticTax invoice calculation");
68
- if (invoice.quickbooksMapping && !["TaxExcluded", "NotApplicable"].includes(invoice.quickbooksMapping.globalTaxCalculation)) throw new Error("QuickBooks globalTaxCalculation must be TaxExcluded or NotApplicable");
69
- const finite = (value, label) => {
70
- if (!Number.isFinite(value) || value < 0) throw new Error(`QuickBooks ${label} must be a finite non-negative amount`);
71
- return value;
72
- };
73
- const reference = (value, label) => {
74
- if (!value || value.trim() !== value || value.length > 255) throw new Error(`QuickBooks ${label} must be a non-empty realm reference`);
75
- return { value };
76
- };
77
- finite(invoice.subtotal, "subtotal");
78
- finite(invoice.taxAmount, "tax amount");
79
- finite(invoice.totalAmount, "total amount");
80
- if (invoice.lineItems.length === 0) throw new Error("QuickBooks invoices require at least one sales line");
81
- const close = (a, b) => Number.isFinite(a) && Number.isFinite(b) && Math.abs(a - b) <= Number.EPSILON * Math.max(1, Math.abs(a), Math.abs(b)) * 8;
82
- const lines = invoice.lineItems.map((item, idx) => {
83
- if (item.discount !== void 0 && item.discount !== 0) throw new Error("QuickBooks line discounts are not supported; record an explicit supported sales line instead");
84
- if (item.taxRate !== void 0 && item.taxRate !== 0) throw new Error("QuickBooks numeric taxRate is not supported; use a realm taxCodeRef");
85
- if (item.taxCode !== void 0) throw new Error("QuickBooks generic taxCode is not a realm tax reference; use quickbooksMapping.taxCodeRef");
86
- finite(item.quantity, `line ${idx + 1} quantity`);
87
- finite(item.unitPrice, `line ${idx + 1} unit price`);
88
- const amount = finite(item.amount ?? item.quantity * item.unitPrice, `line ${idx + 1} amount`);
89
- if (!close(amount, item.quantity * item.unitPrice) && !matchesCurrencyRoundedLineAmount(item.quantity, item.unitPrice, amount, invoice.currency)) throw new Error(`QuickBooks line ${idx + 1} amount must equal quantity times unit price`);
90
- return {
91
- LineNum: idx + 1,
92
- Description: item.description,
93
- Amount: amount,
94
- DetailType: "SalesItemLineDetail",
95
- SalesItemLineDetail: {
96
- Qty: item.quantity,
97
- UnitPrice: item.unitPrice,
98
- ItemRef: item.quickbooksMapping ? reference(item.quickbooksMapping.itemRef, `line ${idx + 1} itemRef`) : void 0,
99
- TaxCodeRef: item.quickbooksMapping ? reference(item.quickbooksMapping.taxCodeRef, `line ${idx + 1} taxCodeRef`) : void 0
100
- }
101
- };
102
- });
103
- let mappedSubtotal = 0;
104
- let compensation = 0;
105
- for (const line of lines) {
106
- const adjusted = line.Amount - compensation;
107
- const next = mappedSubtotal + adjusted;
108
- compensation = next - mappedSubtotal - adjusted;
109
- mappedSubtotal = next;
110
- }
111
- if (!close(mappedSubtotal, invoice.subtotal)) throw new Error("QuickBooks line amounts must equal the invoice subtotal");
112
- if (!close(invoice.subtotal + invoice.taxAmount, invoice.totalAmount)) throw new Error("QuickBooks subtotal plus tax must equal the invoice total");
113
- const hasLineMapping = invoice.lineItems.some((item) => item.quickbooksMapping);
114
- if ((invoice.taxAmount > 0 || hasLineMapping) && !invoice.quickbooksMapping) throw new Error("QuickBooks mapped or nonzero-tax invoices require explicit globalTaxCalculation");
115
- if (invoice.quickbooksMapping && invoice.lineItems.some((item) => !item.quickbooksMapping)) throw new Error("QuickBooks mapped invoices require itemRef and taxCodeRef on every line");
116
- if (invoice.taxAmount > 0 && invoice.quickbooksMapping?.globalTaxCalculation === "NotApplicable") throw new Error("QuickBooks nonzero tax cannot use NotApplicable global tax calculation");
117
- return {
118
- CustomerRef: { value: invoice.customerExternalId || invoice.customerId },
119
- DocNumber: invoice.invoiceNumber,
120
- TxnDate: formatLocalDate(invoice.issueDate),
121
- DueDate: formatLocalDate(invoice.dueDate),
122
- Line: lines,
123
- GlobalTaxCalculation: invoice.quickbooksMapping?.globalTaxCalculation,
124
- TxnTaxDetail: invoice.quickbooksMapping ? { TotalTax: invoice.taxAmount } : void 0,
125
- CurrencyRef: invoice.currency ? { value: invoice.currency } : void 0,
126
- CustomerMemo: invoice.memo ? { value: invoice.memo } : void 0
127
- };
128
- }
129
- //#endregion
130
- export { prepareQuickBooksInvoiceRequest as n, validateQuickBooksInvoiceRequest as r, mapInvoiceToQBO as t };
131
-
132
- //# sourceMappingURL=invoice-request-CnemKZt9.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invoice-request-CnemKZt9.js","names":[],"sources":["../../src/providers/quickbooks/line-amount.ts","../../src/providers/quickbooks/invoice-request.ts"],"sourcesContent":["/** ISO 4217 List One, published 2026-09-17. Do not use Intl display digits:\n * ICU differs for e.g. IQD, MGA and RSD, and omits fund codes CLF/UYW.\n * https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml\n * N.A., unknown and missing codes cannot authorize currency rounding.\n */\nconst precisionGroups: readonly (readonly [number, string])[] = [\n [0, 'BIF CLP DJF GNF ISK JPY KMF KRW PYG RWF UGX UYI VND VUV XAF XOF XPF'],\n [\n 2,\n 'AED AFN ALL AMD AOA ARS AUD AWG AZN BAM BBD BDT BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CNY COP COU CRC CUP CVE CZK DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GTQ GYD HKD HNL HTG HUF IDR ILS INR IRR JMD KES KGS KHR KPW KYD KZT LAK LBP LKR LRD LSL MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD PAB PEN PGK PHP PKR PLN QAR RON RSD RUB SAR SBD SCR SDG SEK SGD SHP SLE SOS SRD SSP STN SVC SYP SZL THB TJS TMT TOP TRY TTD TWD TZS UAH USD USN UYU UZS VED VES WST XAD XCD XCG YER ZAR ZMW ZWG',\n ],\n [3, 'BHD IQD JOD KWD LYD OMR TND'],\n [4, 'CLF UYW'],\n];\nconst currencyPrecision = new Map(\n precisionGroups.flatMap(([precision, codes]) =>\n codes.split(' ').map((code) => [code, precision] as const),\n ),\n);\n\n/** Exact decimal interpretation of the finite nonnegative public number value. */\nfunction decimalRatio(value: number): {\n numerator: bigint;\n denominator: bigint;\n} {\n const [significand, exponent = '0'] = value.toString().split('e');\n const [whole, fraction = ''] = significand.split('.');\n const coefficient = BigInt(whole + fraction);\n const scale = fraction.length - Number(exponent);\n return scale >= 0\n ? { numerator: coefficient, denominator: 10n ** BigInt(scale) }\n : { numerator: coefficient * 10n ** BigInt(-scale), denominator: 1n };\n}\n\n/** Admit only the exact half-up minor-unit result; never rewrite caller money. */\nexport function matchesCurrencyRoundedLineAmount(\n quantity: number,\n unitPrice: number,\n amount: number,\n currency: string | undefined,\n): boolean {\n if (typeof currency !== 'string') return false;\n const precision = currencyPrecision.get(currency.toUpperCase());\n if (precision === undefined) return false;\n const minorScale = 10n ** BigInt(precision);\n const retained = decimalRatio(amount);\n const retainedMinor = retained.numerator * minorScale;\n // An off-grid caller amount is not permission to round their supplied money.\n if (retainedMinor % retained.denominator !== 0n) return false;\n const qty = decimalRatio(quantity);\n const price = decimalRatio(unitPrice);\n const numerator = qty.numerator * price.numerator * minorScale;\n const denominator = qty.denominator * price.denominator;\n const quotient = numerator / denominator;\n const rounded =\n quotient + ((numerator % denominator) * 2n >= denominator ? 1n : 0n);\n return retainedMinor / retained.denominator === rounded;\n}\n","import { createHash } from 'node:crypto';\nimport type { InvoiceInput, QuickBooksInvoiceRequest } from '../../types.js';\nimport { matchesCurrencyRoundedLineAmount } from './line-amount.js';\n\n/** Prepare once, persist before sending, and reuse unchanged. Performs no I/O. */\nexport function prepareQuickBooksInvoiceRequest(\n invoice: InvoiceInput,\n identity: Omit<QuickBooksInvoiceRequest, 'payloadHash'>,\n): QuickBooksInvoiceRequest {\n if (invoice.externalId)\n throw new Error('QuickBooks request identity is only for invoice creation');\n const payload = JSON.stringify(mapInvoiceToQBO(invoice));\n const request = { ...identity, payloadHash: hash(payload) };\n validateQuickBooksInvoiceRequest(\n request,\n identity.realmId,\n identity.environment,\n payload,\n );\n return Object.freeze(request);\n}\n\nfunction hash(payload: string): string {\n return createHash('sha256').update(payload).digest('hex');\n}\n\nexport function validateQuickBooksInvoiceRequest(\n request: QuickBooksInvoiceRequest,\n realmId: string,\n environment: 'sandbox' | 'production',\n payload: string | undefined,\n): void {\n // A deliberately conservative URL-safe subset of Intuit's 50-character limit.\n if (\n !request ||\n typeof request.requestId !== 'string' ||\n !/^[A-Za-z0-9._-]{1,50}$/.test(request.requestId)\n ) {\n throw new Error(\n 'QuickBooks requestId must contain 1–50 URL-safe letters, digits, dots, underscores or hyphens',\n );\n }\n if (\n !request.realmId ||\n request.realmId !== realmId ||\n !['sandbox', 'production'].includes(request.environment) ||\n request.environment !== environment\n ) {\n throw new Error('QuickBooks invoice request realm/environment mismatch');\n }\n if (!payload || request.payloadHash !== hash(payload)) {\n throw new Error(\n 'QuickBooks invoice request payload mismatch; reconcile the original request',\n );\n }\n const parsed = JSON.parse(payload);\n if (parsed.Id !== undefined || parsed.SyncToken !== undefined) {\n throw new Error('QuickBooks request identity is only for invoice creation');\n }\n}\n\nfunction formatLocalDate(date: Date): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n}\n\nexport function mapInvoiceToQBO(invoice: InvoiceInput) {\n if (invoice.collectionMethod === 'charge_automatically') {\n // QuickBooks cannot charge a stored payment method for an invoice.\n throw new Error(\n 'QuickBooks does not support charge_automatically invoice collection',\n );\n }\n if (invoice.automaticTax)\n throw new Error(\n 'QuickBooks does not support automaticTax invoice calculation',\n );\n if (\n invoice.quickbooksMapping &&\n !['TaxExcluded', 'NotApplicable'].includes(\n invoice.quickbooksMapping.globalTaxCalculation,\n )\n )\n throw new Error(\n 'QuickBooks globalTaxCalculation must be TaxExcluded or NotApplicable',\n );\n const finite = (value: number, label: string) => {\n if (!Number.isFinite(value) || value < 0)\n throw new Error(\n `QuickBooks ${label} must be a finite non-negative amount`,\n );\n return value;\n };\n const reference = (value: string | undefined, label: string) => {\n if (!value || value.trim() !== value || value.length > 255)\n throw new Error(\n `QuickBooks ${label} must be a non-empty realm reference`,\n );\n return { value };\n };\n finite(invoice.subtotal, 'subtotal');\n finite(invoice.taxAmount, 'tax amount');\n finite(invoice.totalAmount, 'total amount');\n if (invoice.lineItems.length === 0)\n throw new Error('QuickBooks invoices require at least one sales line');\n const close = (a: number, b: number) =>\n Number.isFinite(a) &&\n Number.isFinite(b) &&\n Math.abs(a - b) <=\n Number.EPSILON * Math.max(1, Math.abs(a), Math.abs(b)) * 8;\n const lines = invoice.lineItems.map((item, idx) => {\n if (item.discount !== undefined && item.discount !== 0)\n throw new Error(\n 'QuickBooks line discounts are not supported; record an explicit supported sales line instead',\n );\n if (item.taxRate !== undefined && item.taxRate !== 0)\n throw new Error(\n 'QuickBooks numeric taxRate is not supported; use a realm taxCodeRef',\n );\n if (item.taxCode !== undefined)\n throw new Error(\n 'QuickBooks generic taxCode is not a realm tax reference; use quickbooksMapping.taxCodeRef',\n );\n finite(item.quantity, `line ${idx + 1} quantity`);\n finite(item.unitPrice, `line ${idx + 1} unit price`);\n const amount = finite(\n item.amount ?? item.quantity * item.unitPrice,\n `line ${idx + 1} amount`,\n );\n if (\n !close(amount, item.quantity * item.unitPrice) &&\n !matchesCurrencyRoundedLineAmount(\n item.quantity,\n item.unitPrice,\n amount,\n invoice.currency,\n )\n )\n throw new Error(\n `QuickBooks line ${idx + 1} amount must equal quantity times unit price`,\n );\n return {\n LineNum: idx + 1,\n Description: item.description,\n Amount: amount,\n DetailType: 'SalesItemLineDetail' as const,\n SalesItemLineDetail: {\n Qty: item.quantity,\n UnitPrice: item.unitPrice,\n ItemRef: item.quickbooksMapping\n ? reference(item.quickbooksMapping.itemRef, `line ${idx + 1} itemRef`)\n : undefined,\n TaxCodeRef: item.quickbooksMapping\n ? reference(\n item.quickbooksMapping.taxCodeRef,\n `line ${idx + 1} taxCodeRef`,\n )\n : undefined,\n },\n };\n });\n // Compensated summation limits accumulated binary floating-point error\n // without assuming a currency-specific number of decimal places.\n let mappedSubtotal = 0;\n let compensation = 0;\n for (const line of lines) {\n const adjusted = line.Amount - compensation;\n const next = mappedSubtotal + adjusted;\n compensation = next - mappedSubtotal - adjusted;\n mappedSubtotal = next;\n }\n if (!close(mappedSubtotal, invoice.subtotal))\n throw new Error('QuickBooks line amounts must equal the invoice subtotal');\n if (!close(invoice.subtotal + invoice.taxAmount, invoice.totalAmount))\n throw new Error(\n 'QuickBooks subtotal plus tax must equal the invoice total',\n );\n const hasLineMapping = invoice.lineItems.some(\n (item) => item.quickbooksMapping,\n );\n if ((invoice.taxAmount > 0 || hasLineMapping) && !invoice.quickbooksMapping)\n throw new Error(\n 'QuickBooks mapped or nonzero-tax invoices require explicit globalTaxCalculation',\n );\n if (\n invoice.quickbooksMapping &&\n invoice.lineItems.some((item) => !item.quickbooksMapping)\n )\n throw new Error(\n 'QuickBooks mapped invoices require itemRef and taxCodeRef on every line',\n );\n if (\n invoice.taxAmount > 0 &&\n invoice.quickbooksMapping?.globalTaxCalculation === 'NotApplicable'\n )\n throw new Error(\n 'QuickBooks nonzero tax cannot use NotApplicable global tax calculation',\n );\n return {\n CustomerRef: { value: invoice.customerExternalId || invoice.customerId },\n DocNumber: invoice.invoiceNumber,\n TxnDate: formatLocalDate(invoice.issueDate),\n DueDate: formatLocalDate(invoice.dueDate),\n Line: lines,\n GlobalTaxCalculation: invoice.quickbooksMapping?.globalTaxCalculation,\n TxnTaxDetail: invoice.quickbooksMapping\n ? { TotalTax: invoice.taxAmount }\n : undefined,\n CurrencyRef: invoice.currency ? { value: invoice.currency } : undefined,\n CustomerMemo: invoice.memo ? { value: invoice.memo } : undefined,\n };\n}\n"],"mappings":"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"}