@happyvertical/smrt-commerce 0.51.23 → 0.51.24

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 (42) hide show
  1. package/AGENTS.md +47 -0
  2. package/README.md +104 -0
  3. package/dist/billing/credits.d.ts +33 -0
  4. package/dist/billing/credits.d.ts.map +1 -0
  5. package/dist/billing/events.d.ts +26 -0
  6. package/dist/billing/events.d.ts.map +1 -0
  7. package/dist/billing/index.d.ts +13 -0
  8. package/dist/billing/index.d.ts.map +1 -0
  9. package/dist/billing/jobs.d.ts +31 -0
  10. package/dist/billing/jobs.d.ts.map +1 -0
  11. package/dist/billing/period-close.d.ts +41 -0
  12. package/dist/billing/period-close.d.ts.map +1 -0
  13. package/dist/billing/provider.d.ts +136 -0
  14. package/dist/billing/provider.d.ts.map +1 -0
  15. package/dist/billing/runtime.d.ts +168 -0
  16. package/dist/billing/runtime.d.ts.map +1 -0
  17. package/dist/billing/stripe.d.ts +12 -0
  18. package/dist/billing/stripe.d.ts.map +1 -0
  19. package/dist/billing/units.d.ts +31 -0
  20. package/dist/billing/units.d.ts.map +1 -0
  21. package/dist/chunks/types-CRnln577.js.map +1 -1
  22. package/dist/chunks/units--tTn2ps8.js +52 -0
  23. package/dist/chunks/units--tTn2ps8.js.map +1 -0
  24. package/dist/collections/InvoiceLineItemCollection.d.ts +2 -1
  25. package/dist/collections/InvoiceLineItemCollection.d.ts.map +1 -1
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +4258 -2584
  29. package/dist/index.js.map +1 -1
  30. package/dist/manifest.json +1397 -6
  31. package/dist/models/Invoice.d.ts +13 -2
  32. package/dist/models/Invoice.d.ts.map +1 -1
  33. package/dist/models/InvoiceLineItem.d.ts +6 -2
  34. package/dist/models/InvoiceLineItem.d.ts.map +1 -1
  35. package/dist/models/billing.d.ts +117 -0
  36. package/dist/models/billing.d.ts.map +1 -0
  37. package/dist/models/index.d.ts +1 -0
  38. package/dist/models/index.d.ts.map +1 -1
  39. package/dist/smrt-knowledge.json +529 -9
  40. package/dist/types/index.d.ts +3 -1
  41. package/dist/types/index.d.ts.map +1 -1
  42. package/package.json +10 -7
@@ -79,9 +79,18 @@ export declare class Invoice extends SmrtObject {
79
79
  */
80
80
  subtotal: number;
81
81
  /**
82
- * Tax amount, in integer minor units (#2361).
82
+ * Tax amount, in integer minor units (#2361). With line items this is the
83
+ * sum of their rate-based tax plus {@link providerTaxAmount}.
83
84
  */
84
85
  taxAmount: number;
86
+ /**
87
+ * Tax calculated by the payment provider (for example Stripe Tax) from the
88
+ * customer's tax location, in integer minor units (#3060). Server-managed:
89
+ * billing-period close records it after the provider finalizes the invoice.
90
+ * It is added to the line items' tax, so `taxAmount` and `totalAmount` stay
91
+ * authoritative from line items plus this one provider figure.
92
+ */
93
+ providerTaxAmount: number;
85
94
  /**
86
95
  * Total amount due (subtotal + tax), in integer minor units (#2361).
87
96
  */
@@ -349,7 +358,9 @@ export declare class Invoice extends SmrtObject {
349
358
  * Convert to InvoiceInput for SDK accounting provider sync.
350
359
  *
351
360
  * Fetches line items and maps all fields to the format expected
352
- * by @happyvertical/accounting providers.
361
+ * by @happyvertical/accounting providers. The SDK takes currency **major**
362
+ * units (`12.34` USD), so every amount is converted from this package's
363
+ * integer minor units with the currency's ISO 4217 exponent (#3060).
353
364
  *
354
365
  * @returns InvoiceInput compatible with @happyvertical/accounting
355
366
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Invoice.d.ts","sourceRoot":"","sources":["../../src/models/Invoice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Invoice.d.ts","sourceRoot":"","sources":["../../src/models/Invoice.ts"],"names":[],"mappings":"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"}
@@ -137,9 +137,13 @@ export declare class InvoiceLineItem extends SmrtObject {
137
137
  */
138
138
  hasPeriod(): boolean;
139
139
  /**
140
- * Convert to line item format for SDK accounting provider
140
+ * Convert to line item format for SDK accounting provider.
141
+ *
142
+ * `@happyvertical/accounting` takes currency **major** units. Pass the
143
+ * invoice currency to convert (as {@link Invoice.toAccountingInput} does);
144
+ * without it, money stays in this package's integer minor units.
141
145
  */
142
- toAccountingLineItem(): AccountingLineItemInput;
146
+ toAccountingLineItem(currency?: string): AccountingLineItemInput;
143
147
  }
144
148
  export default InvoiceLineItem;
145
149
  //# sourceMappingURL=InvoiceLineItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvoiceLineItem.d.ts","sourceRoot":"","sources":["../../src/models/InvoiceLineItem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAMa,eAAgB,SAAQ,UAAU;IAC7C;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAEH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAM;IAEzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAM;IAEjB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,CAAK;IAErB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAK;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAK;IAErB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAO;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAK;IAMnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAM;IAExB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAM;IAEtB;;OAEG;IACH,WAAW,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAM9B;;;OAGG;IAEH,gBAAgB,EAAE,MAAM,CAAM;IAE9B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAK;gBAEV,OAAO,GAAE,sBAA2B;IAsBhD;;;;;;;;;;OAUG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;;OAKG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;;;;;OAQG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,oBAAoB,IAAI,uBAAuB;CAahD;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"InvoiceLineItem.d.ts","sourceRoot":"","sources":["../../src/models/InvoiceLineItem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAMa,eAAgB,SAAQ,UAAU;IAC7C;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAEH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAM;IAEzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAM;IAEjB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,CAAK;IAErB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAK;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAK;IAErB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAO;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAK;IAMnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAM;IAExB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAM;IAEtB;;OAEG;IACH,WAAW,EAAE,IAAI,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAM9B;;;OAGG;IAEH,gBAAgB,EAAE,MAAM,CAAM;IAE9B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAK;gBAEV,OAAO,GAAE,sBAA2B;IAsBhD;;;;;;;;;;OAUG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;;OAKG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;;;;;OAQG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;;;OAMG;IACH,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,uBAAuB;CAejE;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,117 @@
1
+ import { SmrtCollection, SmrtObject } from '@happyvertical/smrt-core';
2
+ import { JobExecutionContext } from '@happyvertical/smrt-jobs';
3
+ /**
4
+ * Who a runtime bills. `provider` closes the platform's `ClientCharge`s,
5
+ * their `BillingAdjustment`s, and the platform's flat plans; `reseller`
6
+ * closes the `RetailCharge`s a reseller's children owe it and the reseller's
7
+ * own flat plans.
8
+ */
9
+ export type BillingCloseKind = 'provider' | 'reseller';
10
+ /** A payer's standing with its seller, driven by provider invoice events. */
11
+ export type BillingStanding = 'current' | 'past_due' | 'uncollectible';
12
+ /**
13
+ * `collecting` → `invoiced` → `pushed` → `sent` → `completed`. Every step is
14
+ * resumable: a retry continues from the persisted status. A close whose
15
+ * claimed sources net to a credit ends `carried_forward`: its `subtotal` is
16
+ * billed as a credit line by the payer's next close.
17
+ */
18
+ export type BillingPeriodCloseStatus = 'collecting' | 'invoiced' | 'pushed' | 'sent' | 'completed' | 'carried_forward';
19
+ export type BillingLineSourceType = 'client_charge' | 'billing_adjustment' | 'retail_charge' | 'subscription_period' | 'credit_carry_forward';
20
+ /**
21
+ * One payer's account with one seller: the commerce `Customer` invoices are
22
+ * issued to, the provider customer they are pushed to, and the payer's
23
+ * billing terms. The seller's tax location for the payer is the customer's
24
+ * `defaultBillingAddress`.
25
+ */
26
+ export declare class BillingAccount extends SmrtObject {
27
+ /** The tenant that issues invoices (the provider or a reseller). */
28
+ sellerTenantId: string;
29
+ /** The billing owner that pays them. */
30
+ payerTenantId: string;
31
+ customerId: string;
32
+ /** Display name sent to the provider customer. */
33
+ name: string;
34
+ email: string;
35
+ /** Provider name (`stripe`) once a provider customer exists. */
36
+ provider: string;
37
+ providerCustomerId: string;
38
+ /** Let the provider calculate tax from the customer's tax location. */
39
+ automaticTax: boolean;
40
+ /** Discount on flat plan lines, in basis points (10000 = 100%). */
41
+ flatDiscountBasisPoints: number;
42
+ paymentTermsDays: number;
43
+ standing: BillingStanding;
44
+ protected validateBeforeSave(): Promise<void>;
45
+ }
46
+ /**
47
+ * The idempotency anchor for one payer's invoice in one currency for one
48
+ * period. Its id is derived from that identity, so a retried close always
49
+ * resumes the same row, invoice, and provider invoice.
50
+ */
51
+ export declare class BillingPeriodClose extends SmrtObject {
52
+ sellerTenantId: string;
53
+ kind: BillingCloseKind;
54
+ payerTenantId: string;
55
+ currency: string;
56
+ periodStart: Date;
57
+ periodEnd: Date;
58
+ billingAccountId: string;
59
+ status: BillingPeriodCloseStatus;
60
+ invoiceId: string;
61
+ providerInvoiceId: string;
62
+ /** Invoice subtotal in integer minor units once invoiced. */
63
+ subtotal: number;
64
+ lineCount: number;
65
+ /** When the invoice was issued; fixed at first collection. */
66
+ issuedAt: Date;
67
+ leaseToken: string | null;
68
+ leaseExpiresAt: Date | null;
69
+ attempts: number;
70
+ lastError: string;
71
+ protected validateBeforeSave(): Promise<void>;
72
+ /**
73
+ * smrt-jobs entry point: close a period for a registered billing runtime.
74
+ * Args: `{ runtime, periodStart?, periodEnd? }` (ISO strings); without a
75
+ * period the previous calendar month (UTC) is closed, so a daily schedule
76
+ * is safe.
77
+ */
78
+ runPeriodClose(args?: Record<string, unknown>, _context?: JobExecutionContext): Promise<unknown>;
79
+ /**
80
+ * smrt-jobs entry point: apply queued provider webhook events for a
81
+ * registered billing runtime. Args: `{ runtime, limit? }`.
82
+ */
83
+ processBillingEvents(args?: Record<string, unknown>, _context?: JobExecutionContext): Promise<unknown>;
84
+ }
85
+ /**
86
+ * A claim that one billable source — a charge, an adjustment, or one period
87
+ * of a flat plan — is billed on exactly one period close. The id is derived
88
+ * from `(sourceType, sourceId)`, so a source can never be claimed twice.
89
+ */
90
+ export declare class BillingLineSource extends SmrtObject {
91
+ sellerTenantId: string;
92
+ periodCloseId: string;
93
+ sourceType: BillingLineSourceType;
94
+ sourceId: string;
95
+ /** Groups sources into one invoice line. */
96
+ lineKey: string;
97
+ lineDescription: string;
98
+ /** Source amount in integer minor units (signed for adjustments). */
99
+ amount: number;
100
+ /** Discount on this source in integer minor units (flat plans only). */
101
+ discount: number;
102
+ /** Metered quantity, informational; fractional like the charge's. */
103
+ quantity: number;
104
+ currency: string;
105
+ periodStart: Date | null;
106
+ periodEnd: Date | null;
107
+ }
108
+ export declare class BillingAccountCollection extends SmrtCollection<BillingAccount> {
109
+ static readonly _itemClass: typeof BillingAccount;
110
+ }
111
+ export declare class BillingPeriodCloseCollection extends SmrtCollection<BillingPeriodClose> {
112
+ static readonly _itemClass: typeof BillingPeriodClose;
113
+ }
114
+ export declare class BillingLineSourceCollection extends SmrtCollection<BillingLineSource> {
115
+ static readonly _itemClass: typeof BillingLineSource;
116
+ }
117
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/models/billing.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Model exports for smrt-commerce
3
3
  * @packageDocumentation
4
4
  */
5
+ export { BillingAccount, type BillingCloseKind, BillingLineSource, type BillingLineSourceType, BillingPeriodClose, type BillingPeriodCloseStatus, type BillingStanding, } from './billing.js';
5
6
  export { Agreement, Cart, Contract, Estimate, Lease, type LicenseRightsSnapshot, LicenseSale, Order, ProductionOrder, PurchaseOrder, WholesaleOrder, } from './Contract.js';
6
7
  export { ContractLineItem } from './ContractLineItem.js';
7
8
  export { Customer } from './Customer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,qBAAqB,EAC1B,WAAW,EACX,KAAK,EACL,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,qBAAqB,EAC1B,WAAW,EACX,KAAK,EACL,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}