@happyvertical/smrt-commerce 0.56.0 → 0.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/AGENTS.md +9 -8
  2. package/README.md +98 -4
  3. package/agents/accounting-snapshot-mapper.md +111 -0
  4. package/agents/contract-money.md +24 -0
  5. package/agents/cost-billing.md +7 -2
  6. package/agents/customer-vendor-ui.md +7 -1
  7. package/agents/document-money.md +127 -0
  8. package/agents/invoice-calculations.md +14 -2
  9. package/agents/line-amount-migration.md +50 -0
  10. package/agents/minor-unit-migration.md +20 -0
  11. package/agents/money-calculator.md +45 -0
  12. package/agents/money-model.md +113 -0
  13. package/agents/revenue-journal.md +23 -0
  14. package/agents/tax-codes.md +48 -0
  15. package/agents/tax-summary.md +128 -0
  16. package/dist/accounting-snapshot.d.ts +79 -0
  17. package/dist/accounting-snapshot.d.ts.map +1 -0
  18. package/dist/billing/runtime.d.ts +2 -0
  19. package/dist/billing/runtime.d.ts.map +1 -1
  20. package/dist/chunks/ContractLineItemCollection--BrGMtNz.js +265 -0
  21. package/dist/chunks/ContractLineItemCollection--BrGMtNz.js.map +1 -0
  22. package/dist/chunks/CustomerCollection-CjGaZSpf.js +99 -0
  23. package/dist/chunks/CustomerCollection-CjGaZSpf.js.map +1 -0
  24. package/dist/chunks/DocumentTaxCollection-KOkaQT2M.js +1659 -0
  25. package/dist/chunks/DocumentTaxCollection-KOkaQT2M.js.map +1 -0
  26. package/dist/chunks/InvoiceCollection-BUe_8FT1.js +1047 -0
  27. package/dist/chunks/InvoiceCollection-BUe_8FT1.js.map +1 -0
  28. package/dist/chunks/InvoiceLineItemCollection-CPQGghyd.js +468 -0
  29. package/dist/chunks/InvoiceLineItemCollection-CPQGghyd.js.map +1 -0
  30. package/dist/chunks/TaxCodeCollection-DF2eaJed.js +149 -0
  31. package/dist/chunks/TaxCodeCollection-DF2eaJed.js.map +1 -0
  32. package/dist/chunks/TaxComponentCollection-3x24xSNh.js +129 -0
  33. package/dist/chunks/TaxComponentCollection-3x24xSNh.js.map +1 -0
  34. package/dist/chunks/TaxSettingsCollection-DYYF-In-.js +319 -0
  35. package/dist/chunks/TaxSettingsCollection-DYYF-In-.js.map +1 -0
  36. package/dist/chunks/{money-DfrRxrel.js → allocation-integrity-Cq0g6CfO.js} +7 -12
  37. package/dist/chunks/allocation-integrity-Cq0g6CfO.js.map +1 -0
  38. package/dist/chunks/{calculations-Bz7RB3qK.js → calculations-DaHR17il.js} +134 -54
  39. package/dist/chunks/calculations-DaHR17il.js.map +1 -0
  40. package/dist/chunks/credit-allocation-yspz0Lab.js +121 -0
  41. package/dist/chunks/credit-allocation-yspz0Lab.js.map +1 -0
  42. package/dist/chunks/document-money-oUDvdjOf.js +860 -0
  43. package/dist/chunks/document-money-oUDvdjOf.js.map +1 -0
  44. package/dist/chunks/invoice-posting-CF3fE_Ec.js +229 -0
  45. package/dist/chunks/invoice-posting-CF3fE_Ec.js.map +1 -0
  46. package/dist/chunks/money-rational-CcW7gzG5.js +64 -0
  47. package/dist/chunks/money-rational-CcW7gzG5.js.map +1 -0
  48. package/dist/chunks/revenue-journal-DY9fro8E.js +140 -0
  49. package/dist/chunks/revenue-journal-DY9fro8E.js.map +1 -0
  50. package/dist/chunks/rolldown-runtime-D7D4PA-g.js +13 -0
  51. package/dist/chunks/tenant-money-barrier-y6EAa6vY.js +135 -0
  52. package/dist/chunks/tenant-money-barrier-y6EAa6vY.js.map +1 -0
  53. package/dist/chunks/{types-zVnIjSOk.js → types-Bbm0Xflc.js} +4 -14
  54. package/dist/chunks/types-Bbm0Xflc.js.map +1 -0
  55. package/dist/chunks/{units-BpZ0_Dpk.js → units-CNcjH_eE.js} +2 -2
  56. package/dist/chunks/{units-BpZ0_Dpk.js.map → units-CNcjH_eE.js.map} +1 -1
  57. package/dist/collections/ContractCollection.d.ts +35 -1
  58. package/dist/collections/ContractCollection.d.ts.map +1 -1
  59. package/dist/collections/ContractLineItemCollection.d.ts +26 -1
  60. package/dist/collections/ContractLineItemCollection.d.ts.map +1 -1
  61. package/dist/collections/DocumentTaxCollection.d.ts +75 -0
  62. package/dist/collections/DocumentTaxCollection.d.ts.map +1 -0
  63. package/dist/collections/InvoiceCollection.d.ts +26 -1
  64. package/dist/collections/InvoiceCollection.d.ts.map +1 -1
  65. package/dist/collections/InvoiceLineItemCollection.d.ts +26 -1
  66. package/dist/collections/InvoiceLineItemCollection.d.ts.map +1 -1
  67. package/dist/collections/MoneyMigrationDocumentCollection.d.ts +12 -0
  68. package/dist/collections/MoneyMigrationDocumentCollection.d.ts.map +1 -0
  69. package/dist/collections/PaymentAllocationCollection.d.ts +2 -0
  70. package/dist/collections/PaymentAllocationCollection.d.ts.map +1 -1
  71. package/dist/collections/TaxCodeCollection.d.ts +7 -0
  72. package/dist/collections/TaxCodeCollection.d.ts.map +1 -0
  73. package/dist/collections/TaxComponentCollection.d.ts +6 -0
  74. package/dist/collections/TaxComponentCollection.d.ts.map +1 -0
  75. package/dist/collections/TaxSettingsCollection.d.ts +16 -0
  76. package/dist/collections/TaxSettingsCollection.d.ts.map +1 -0
  77. package/dist/collections/TaxSummaryReportCollection.d.ts +151 -0
  78. package/dist/collections/TaxSummaryReportCollection.d.ts.map +1 -0
  79. package/dist/collections/index.d.ts +6 -0
  80. package/dist/collections/index.d.ts.map +1 -1
  81. package/dist/commerce-money-tools.d.ts +9 -0
  82. package/dist/commerce-money-tools.d.ts.map +1 -0
  83. package/dist/contract-money.d.ts +27 -0
  84. package/dist/contract-money.d.ts.map +1 -0
  85. package/dist/cost-billing.d.ts +0 -1
  86. package/dist/cost-billing.d.ts.map +1 -1
  87. package/dist/cost-billing.js +10 -15
  88. package/dist/cost-billing.js.map +1 -1
  89. package/dist/credit-allocation.d.ts +48 -0
  90. package/dist/credit-allocation.d.ts.map +1 -0
  91. package/dist/document-money-internal.d.ts +44 -0
  92. package/dist/document-money-internal.d.ts.map +1 -0
  93. package/dist/document-money.d.ts +85 -0
  94. package/dist/document-money.d.ts.map +1 -0
  95. package/dist/index.d.ts +15 -4
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +5411 -4249
  98. package/dist/index.js.map +1 -1
  99. package/dist/invoice-accounting-sync.d.ts +96 -0
  100. package/dist/invoice-accounting-sync.d.ts.map +1 -0
  101. package/dist/invoice-mcp.d.ts +16 -0
  102. package/dist/invoice-mcp.d.ts.map +1 -0
  103. package/dist/invoice-posting.d.ts +9 -0
  104. package/dist/invoice-posting.d.ts.map +1 -0
  105. package/dist/invoice-record-screen.d.ts +60 -0
  106. package/dist/invoice-record-screen.d.ts.map +1 -0
  107. package/dist/invoices.d.ts +2 -0
  108. package/dist/invoices.d.ts.map +1 -1
  109. package/dist/invoices.js +3 -2
  110. package/dist/manifest.json +12804 -6095
  111. package/dist/migrations/commerceLineAmounts.d.ts +84 -0
  112. package/dist/migrations/commerceLineAmounts.d.ts.map +1 -0
  113. package/dist/migrations/partyLinks.d.ts.map +1 -1
  114. package/dist/models/Contract.d.ts +34 -4
  115. package/dist/models/Contract.d.ts.map +1 -1
  116. package/dist/models/ContractLineItem.d.ts +43 -6
  117. package/dist/models/ContractLineItem.d.ts.map +1 -1
  118. package/dist/models/Customer.d.ts +7 -0
  119. package/dist/models/Customer.d.ts.map +1 -1
  120. package/dist/models/DocumentTax.d.ts +50 -0
  121. package/dist/models/DocumentTax.d.ts.map +1 -0
  122. package/dist/models/Invoice.d.ts +46 -2
  123. package/dist/models/Invoice.d.ts.map +1 -1
  124. package/dist/models/InvoiceLineItem.d.ts +46 -5
  125. package/dist/models/InvoiceLineItem.d.ts.map +1 -1
  126. package/dist/models/MoneyMigrationDocument.d.ts +28 -0
  127. package/dist/models/MoneyMigrationDocument.d.ts.map +1 -0
  128. package/dist/models/Payment.d.ts +5 -1
  129. package/dist/models/Payment.d.ts.map +1 -1
  130. package/dist/models/PaymentAllocation.d.ts.map +1 -1
  131. package/dist/models/TaxCode.d.ts +22 -0
  132. package/dist/models/TaxCode.d.ts.map +1 -0
  133. package/dist/models/TaxComponent.d.ts +21 -0
  134. package/dist/models/TaxComponent.d.ts.map +1 -0
  135. package/dist/models/TaxSettings.d.ts +33 -0
  136. package/dist/models/TaxSettings.d.ts.map +1 -0
  137. package/dist/models/TaxSummaryReport.d.ts +35 -0
  138. package/dist/models/TaxSummaryReport.d.ts.map +1 -0
  139. package/dist/models/Vendor.d.ts +9 -0
  140. package/dist/models/Vendor.d.ts.map +1 -1
  141. package/dist/models/index.d.ts +7 -1
  142. package/dist/models/index.d.ts.map +1 -1
  143. package/dist/money-rational.d.ts +15 -0
  144. package/dist/money-rational.d.ts.map +1 -0
  145. package/dist/money.d.ts +106 -25
  146. package/dist/money.d.ts.map +1 -1
  147. package/dist/money.js +274 -0
  148. package/dist/money.js.map +1 -0
  149. package/dist/recipes.d.ts +15 -15
  150. package/dist/revenue-journal.d.ts +61 -0
  151. package/dist/revenue-journal.d.ts.map +1 -0
  152. package/dist/smrt-knowledge.json +9621 -7592
  153. package/dist/svelte/components/InvoiceActions.svelte +12 -0
  154. package/dist/svelte/components/InvoiceActions.svelte.d.ts +5 -0
  155. package/dist/svelte/components/InvoiceActions.svelte.d.ts.map +1 -1
  156. package/dist/svelte/components/InvoiceEditor.svelte +15 -1
  157. package/dist/svelte/components/InvoiceEditor.svelte.d.ts.map +1 -1
  158. package/dist/svelte/components/InvoiceLineItems.svelte +3 -3
  159. package/dist/svelte/components/InvoiceRecordScreen.svelte +94 -0
  160. package/dist/svelte/components/InvoiceRecordScreen.svelte.d.ts +21 -0
  161. package/dist/svelte/components/InvoiceRecordScreen.svelte.d.ts.map +1 -0
  162. package/dist/svelte/components/InvoiceTotals.svelte +2 -2
  163. package/dist/svelte/components/MoneyInvoiceEditor.svelte +282 -0
  164. package/dist/svelte/components/MoneyInvoiceEditor.svelte.d.ts +31 -0
  165. package/dist/svelte/components/MoneyInvoiceEditor.svelte.d.ts.map +1 -0
  166. package/dist/svelte/components/PurchaseOrderEditor.svelte +53 -1
  167. package/dist/svelte/components/PurchaseOrderEditor.svelte.d.ts +5 -0
  168. package/dist/svelte/components/PurchaseOrderEditor.svelte.d.ts.map +1 -1
  169. package/dist/svelte/components/QuoteEditor.svelte +54 -1
  170. package/dist/svelte/components/QuoteEditor.svelte.d.ts +5 -0
  171. package/dist/svelte/components/QuoteEditor.svelte.d.ts.map +1 -1
  172. package/dist/svelte/i18n.d.ts +16 -0
  173. package/dist/svelte/i18n.d.ts.map +1 -1
  174. package/dist/svelte/i18n.js +16 -0
  175. package/dist/svelte/index.d.ts +7 -2
  176. package/dist/svelte/index.d.ts.map +1 -1
  177. package/dist/svelte/index.js +4 -1
  178. package/dist/svelte/invoices/calculations.d.ts +7 -2
  179. package/dist/svelte/invoices/calculations.d.ts.map +1 -1
  180. package/dist/svelte/invoices/calculations.js +141 -47
  181. package/dist/svelte/invoices/money-editor.d.ts +123 -0
  182. package/dist/svelte/invoices/money-editor.d.ts.map +1 -0
  183. package/dist/svelte/invoices/money-editor.js +101 -0
  184. package/dist/svelte/invoices/types.d.ts +5 -1
  185. package/dist/svelte/invoices/types.d.ts.map +1 -1
  186. package/dist/svelte/purchasing-i18n.d.ts +5 -0
  187. package/dist/svelte/purchasing-i18n.d.ts.map +1 -1
  188. package/dist/svelte/purchasing-i18n.js +5 -0
  189. package/dist/svelte/quote-i18n.d.ts +5 -0
  190. package/dist/svelte/quote-i18n.d.ts.map +1 -1
  191. package/dist/svelte/quote-i18n.js +5 -0
  192. package/dist/tax/cookbook.d.ts +22 -0
  193. package/dist/tax/cookbook.d.ts.map +1 -0
  194. package/dist/tax/example-pack.d.ts +25 -0
  195. package/dist/tax/example-pack.d.ts.map +1 -0
  196. package/dist/tax/identity.d.ts +5 -0
  197. package/dist/tax/identity.d.ts.map +1 -0
  198. package/dist/tax/index.d.ts +4 -0
  199. package/dist/tax/index.d.ts.map +1 -0
  200. package/dist/tax/legacy.d.ts +48 -0
  201. package/dist/tax/legacy.d.ts.map +1 -0
  202. package/dist/tax-summary-report-adapter.d.ts +37 -0
  203. package/dist/tax-summary-report-adapter.d.ts.map +1 -0
  204. package/dist/tax-summary.d.ts +129 -0
  205. package/dist/tax-summary.d.ts.map +1 -0
  206. package/dist/tenant-money-barrier.d.ts +66 -0
  207. package/dist/tenant-money-barrier.d.ts.map +1 -0
  208. package/dist/types/index.d.ts +138 -1
  209. package/dist/types/index.d.ts.map +1 -1
  210. package/package.json +19 -11
  211. package/dist/chunks/calculations-Bz7RB3qK.js.map +0 -1
  212. package/dist/chunks/money-DfrRxrel.js.map +0 -1
  213. package/dist/chunks/types-zVnIjSOk.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InvoiceLineItem.d.ts","sourceRoot":"","sources":["../../src/models/InvoiceLineItem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAMa,eAAgB,SAAQ,UAAU;IAC7C;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAGH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAEH,WAAW,EAAE,MAAM,CAAM;IAEzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAM;IAEjB,wFAAwF;IAExF,QAAQ,EAAE,MAAM,CAAO;IAEvB,2FAA2F;IAC3F,sBAAsB,EAAE,MAAM,CAAM;IAEpC,gFAAgF;IAChF,IAAI,kBAAkB,IAAI,sBAAsB,GAAG,IAAI,CAkBtD;IAED,2EAA2E;IAC3E,IAAI,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,EAE1D;IAED;;;;;;OAMG;IAKH,SAAS,EAAE,MAAM,CAAK;IAEtB;;OAEG;IAEH,QAAQ,EAAE,MAAM,CAAK;IAErB;;;;;;OAMG;IAIH,OAAO,EAAE,MAAM,CAAO;IAEtB;;OAEG;IAEH,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;IA0BhD,uGAAuG;IACvG,eAAe,IAAI,MAAM;IAIzB,gFAAgF;IAChF,WAAW,IAAI,MAAM;IAIrB,2EAA2E;IAC3E,YAAY,IAAI,MAAM;IAItB,sGAAsG;IACtG,gBAAgB,CACd,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,yBAAyB,GACjC,IAAI;IAMP,kGAAkG;IAClG,cAAc,CACZ,iBAAiB,EAAE,yBAAyB,GAC3C,gBAAgB,GAAG,IAAI;IA0B1B,gHAAgH;IACjG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWpC;;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"}
1
+ {"version":3,"file":"InvoiceLineItem.d.ts","sourceRoot":"","sources":["../../src/models/InvoiceLineItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /** Durable, internal rollback journal for one commerce money document. */
2
+ import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
3
+ export type MoneyMigrationDocumentType = 'invoice' | 'contract';
4
+ export type MoneyMigrationDocumentState = 'prepared' | 'applied' | 'rolled_back';
5
+ export interface MoneyMigrationDocumentOptions extends SmrtObjectOptions {
6
+ tenantId?: string;
7
+ migrationId?: string;
8
+ documentType?: MoneyMigrationDocumentType;
9
+ documentId?: string;
10
+ state?: MoneyMigrationDocumentState;
11
+ preImageJson?: string;
12
+ preChecksum?: string;
13
+ postImageJson?: string;
14
+ postChecksum?: string;
15
+ }
16
+ export declare class MoneyMigrationDocument extends SmrtObject {
17
+ tenantId: string;
18
+ migrationId: string;
19
+ documentType: MoneyMigrationDocumentType;
20
+ documentId: string;
21
+ state: MoneyMigrationDocumentState;
22
+ preImageJson: string;
23
+ preChecksum: string;
24
+ postImageJson: string;
25
+ postChecksum: string;
26
+ constructor(options?: MoneyMigrationDocumentOptions);
27
+ }
28
+ //# sourceMappingURL=MoneyMigrationDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoneyMigrationDocument.d.ts","sourceRoot":"","sources":["../../src/models/MoneyMigrationDocument.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAEL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,UAAU,CAAC;AAChE,MAAM,MAAM,2BAA2B,GACnC,UAAU,GACV,SAAS,GACT,aAAa,CAAC;AAElB,MAAM,WAAW,6BAA8B,SAAQ,iBAAiB;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,2BAA2B,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAca,sBAAuB,SAAQ,UAAU;IAEpD,QAAQ,SAAM;IAGd,WAAW,SAAM;IAGjB,YAAY,EAAE,0BAA0B,CAAa;IAGrD,UAAU,SAAM;IAEhB,KAAK,EAAE,2BAA2B,CAAc;IAGhD,YAAY,SAAM;IAElB,WAAW,SAAM;IAGjB,aAAa,SAAM;IAEnB,YAAY,SAAM;gBAEN,OAAO,GAAE,6BAAkC;CAkBxD"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { SmrtObject } from '@happyvertical/smrt-core';
6
6
  import type { Journal } from '@happyvertical/smrt-ledgers';
7
- import { PaymentMethod, type PaymentOptions, PaymentStatus, type RecordPaymentOptions } from '../types/index.js';
7
+ import { type PaymentKind, PaymentMethod, type PaymentOptions, PaymentStatus, type RecordPaymentOptions } from '../types/index.js';
8
8
  /**
9
9
  * Payment represents a financial transaction against a contract.
10
10
  *
@@ -31,6 +31,8 @@ import { PaymentMethod, type PaymentOptions, PaymentStatus, type RecordPaymentOp
31
31
  * ```
32
32
  */
33
33
  export declare class Payment extends SmrtObject {
34
+ /** Incoming settlement or outgoing customer refund. Amount stays positive. */
35
+ kind: PaymentKind;
34
36
  /**
35
37
  * Tenant ID for multi-tenant isolation
36
38
  * Nullable to support both tenant-scoped and global payments
@@ -277,6 +279,8 @@ export declare class Payment extends SmrtObject {
277
279
  * ```
278
280
  */
279
281
  recordPayment(options: RecordPaymentOptions): Promise<Journal>;
282
+ /** Settle an outgoing refund through the same guarded journal transaction. */
283
+ recordRefund(options: RecordPaymentOptions): Promise<Journal>;
280
284
  /** Post and complete only inside recordPayment's claimed transaction. */
281
285
  private postPaymentInTransaction;
282
286
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Payment.d.ts","sourceRoot":"","sources":["../../src/models/Payment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAO3D,OAAO,EACL,aAAa,EACb,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAgD3B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBA8Ca,OAAQ,SAAQ,UAAU;IACrC;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAGH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;OAEG;IAGH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;;;;;;OAOG;IAEH,MAAM,EAAE,MAAM,CAAK;IAEnB;;OAEG;IAKH,QAAQ,EAAE,MAAM,CAAS;IAEzB;;OAEG;IAIH,MAAM,EAAE,aAAa,CAA+B;IAEpD;;OAEG;IAKH,MAAM,EAAE,aAAa,CAAyB;IAE9C;;OAEG;IACH,aAAa,EAAE,MAAM,CAAM;IAE3B;;OAEG;IAEH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAEH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAEH,MAAM,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE3B;;OAEG;IAKH,KAAK,EAAE,MAAM,CAAM;IAMnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAM;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAM;IAE9B;;OAEG;IACH,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IAiB7B;;;;;;;;;;OAUG;IACH,SAAS,EAAE,MAAM,CAAM;IAEvB;;;;;;;OAOG;IACH,YAAY,EAAE,MAAM,CAAM;IAE1B;;;;;;;;;;OAUG;IACH,YAAY,EAAE,MAAM,CAAK;IAEzB;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAM;IAE5B;;;;;;;;;;OAUG;IACH,UAAU,EAAE,MAAM,CAAK;IAEvB;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,CAAK;gBAElB,OAAO,GAAE,cAAmB;IA+BxC;;;;;OAKG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEpC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;;;;;;;;;;;;;;OAeG;YACW,gBAAgB;IAa9B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,6BAA6B;IA0CrC;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM;IAKlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA2DpE,yEAAyE;YAC3D,wBAAwB;IA8DtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa3C;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAOjC;;OAEG;IACH,MAAM,IAAI,IAAI;CAMf;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Payment.d.ts","sourceRoot":"","sources":["../../src/models/Payment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAO3D,OAAO,EACL,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAgD3B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBA+Ca,OAAQ,SAAQ,UAAU;IACrC,8EAA8E;IAC9E,IAAI,EAAE,WAAW,CAAa;IAE9B;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAGH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;OAEG;IAGH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;;;;;;OAOG;IAEH,MAAM,EAAE,MAAM,CAAK;IAEnB;;OAEG;IAKH,QAAQ,EAAE,MAAM,CAAS;IAEzB;;OAEG;IAIH,MAAM,EAAE,aAAa,CAA+B;IAEpD;;OAEG;IAKH,MAAM,EAAE,aAAa,CAAyB;IAE9C;;OAEG;IACH,aAAa,EAAE,MAAM,CAAM;IAE3B;;OAEG;IAEH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAEH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAEH,MAAM,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE3B;;OAEG;IAKH,KAAK,EAAE,MAAM,CAAM;IAMnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAM;IAExB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAM;IAE9B;;OAEG;IACH,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IAiB7B;;;;;;;;;;OAUG;IACH,SAAS,EAAE,MAAM,CAAM;IAEvB;;;;;;;OAOG;IACH,YAAY,EAAE,MAAM,CAAM;IAE1B;;;;;;;;;;OAUG;IACH,YAAY,EAAE,MAAM,CAAK;IAEzB;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAM;IAE5B;;;;;;;;;;OAUG;IACH,UAAU,EAAE,MAAM,CAAK;IAEvB;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,CAAK;gBAElB,OAAO,GAAE,cAAmB;IAgCxC;;;;;OAKG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmEpC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;;;;;;;;;;;;;;OAeG;YACW,gBAAgB;IAa9B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,6BAA6B;IA2CrC;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM;IAKlB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA2DpE,8EAA8E;IACxE,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAMnE,yEAAyE;YAC3D,wBAAwB;IAkEtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa3C;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAOjC;;OAEG;IACH,MAAM,IAAI,IAAI;CAMf;AAED,eAAe,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentAllocation.d.ts","sourceRoot":"","sources":["../../src/models/PaymentAllocation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAqB,UAAU,EAAQ,MAAM,0BAA0B,CAAC;AAI/E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAYlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAoBa,iBAAkB,SAAQ,UAAU;IAC/C;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAGH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAGH,SAAS,EAAE,MAAM,CAAM;IAEvB;;;;;;;;;OASG;IAKH,MAAM,EAAE,MAAM,CAAK;IAEnB;;OAEG;IAEH,WAAW,EAAE,IAAI,CAAc;IAE/B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAM;IAEzB;;OAEG;IAEH,KAAK,EAAE,MAAM,CAAM;gBAEP,OAAO,GAAE,wBAA6B;IAalD,6EAA6E;IAC9D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAgFrC;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"PaymentAllocation.d.ts","sourceRoot":"","sources":["../../src/models/PaymentAllocation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAqB,UAAU,EAAQ,MAAM,0BAA0B,CAAC;AAK/E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAYlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAoBa,iBAAkB,SAAQ,UAAU;IAC/C;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAGH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAGH,SAAS,EAAE,MAAM,CAAM;IAEvB;;;;;;;;;OASG;IAKH,MAAM,EAAE,MAAM,CAAK;IAEnB;;OAEG;IAEH,WAAW,EAAE,IAAI,CAAc;IAE/B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAM;IAEzB;;OAEG;IAEH,KAAK,EAAE,MAAM,CAAM;gBAEP,OAAO,GAAE,wBAA6B;IAalD,6EAA6E;IAC9D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAkJrC;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { SmrtObject } from '@happyvertical/smrt-core';
2
+ import type { TaxCodeOptions, TaxCodePart } from '../types/index.js';
3
+ export type TaxCodeKind = 'taxable' | 'zero-rated' | 'exempt' | 'out-of-scope';
4
+ export type TaxCodeAppliesTo = 'sales' | 'purchases' | 'both';
5
+ /** A reusable tax code whose ordered component list is safe to edit. */
6
+ export declare class TaxCode extends SmrtObject {
7
+ tenantId: string;
8
+ code: string;
9
+ name: string;
10
+ kind: TaxCodeKind;
11
+ appliesTo: TaxCodeAppliesTo;
12
+ /** Ordered component IDs; compound is reserved and deliberately unsupported. */
13
+ /** Stored JSON is guarded through the typed accessor below. */
14
+ componentsJson: string;
15
+ get components(): TaxCodePart[];
16
+ set components(value: TaxCodePart[] | string);
17
+ active: boolean;
18
+ constructor(options?: TaxCodeOptions);
19
+ save(): Promise<this>;
20
+ private parsedComponents;
21
+ }
22
+ //# sourceMappingURL=TaxCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxCode.d.ts","sourceRoot":"","sources":["../../src/models/TaxCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAQ,MAAM,0BAA0B,CAAC;AAGnE,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,cAAc,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,wEAAwE;AACxE,qBAUa,OAAQ,SAAQ,UAAU;IAErC,QAAQ,SAAM;IAGd,IAAI,SAAM;IAGV,IAAI,SAAM;IAGV,IAAI,EAAE,WAAW,CAAa;IAK9B,SAAS,EAAE,gBAAgB,CAAU;IAErC,gFAAgF;IAChF,+DAA+D;IAC/D,cAAc,SAAQ;IAEtB,IAII,UAAU,IAAI,WAAW,EAAE,CAc9B;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,EAG3C;IAKD,MAAM,UAAQ;gBAEF,OAAO,GAAE,cAAmB;IAYzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiEpC,OAAO,CAAC,gBAAgB;CAoBzB"}
@@ -0,0 +1,21 @@
1
+ import { SmrtObject } from '@happyvertical/smrt-core';
2
+ import type { TaxComponentOptions } from '../types/index.js';
3
+ /**
4
+ * One reusable tax rate component. Codes may combine components, but the
5
+ * component's percent is immutable after it has been saved: archive it and
6
+ * repoint editable codes to a replacement rate instead of rewriting history.
7
+ */
8
+ export declare class TaxComponent extends SmrtObject {
9
+ tenantId: string;
10
+ name: string;
11
+ /** Percent, not a fraction: 7.125 means 7.125%. Stored as DECIMAL. */
12
+ percent: string;
13
+ liabilityAccountId: string;
14
+ recoverable: boolean;
15
+ active: boolean;
16
+ constructor(options?: TaxComponentOptions);
17
+ initialize(): Promise<this>;
18
+ save(): Promise<this>;
19
+ private isReferenced;
20
+ }
21
+ //# sourceMappingURL=TaxComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxComponent.d.ts","sourceRoot":"","sources":["../../src/models/TaxComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAqB7D;;;;GAIG;AACH,qBAea,YAAa,SAAQ,UAAU;IAE1C,QAAQ,SAAM;IAGd,IAAI,SAAM;IAEV,sEAAsE;IAKtE,OAAO,SAAS;IAKhB,kBAAkB,SAAM;IAMxB,WAAW,UAAS;IAGpB,MAAM,UAAQ;gBAEF,OAAO,GAAE,mBAAwB;IAY9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA8CtB,YAAY;CA8B3B"}
@@ -0,0 +1,33 @@
1
+ import { SmrtObject } from '@happyvertical/smrt-core';
2
+ import { type MoneyMigrationWriteCapability } from '../document-money-internal.js';
3
+ import type { TaxSettingsOptions } from '../types/index.js';
4
+ export interface TaxRegistration {
5
+ taxComponentId: string;
6
+ number: string;
7
+ label: string;
8
+ }
9
+ /** Tenant-level defaults and registration numbers for tax determination. */
10
+ export declare class TaxSettings extends SmrtObject {
11
+ tenantId: string;
12
+ defaultSalesTaxCodeId: string;
13
+ defaultPurchaseTaxCodeId: string;
14
+ defaultLineAmountType: 'exclusive' | 'inclusive' | 'none';
15
+ taxRoundingScope: 'line' | 'document';
16
+ /** Stored JSON is guarded through the typed accessor below. */
17
+ taxRegistrationsJson: string;
18
+ /** Server-owned runtime semantics gate. Never exposed as a generated write. */
19
+ moneyModel: 'legacy' | 'migrating' | 'v2';
20
+ /** Opaque owner token while a tenant migration is in progress. */
21
+ moneyMigrationId: string;
22
+ get taxRegistrations(): TaxRegistration[];
23
+ set taxRegistrations(value: TaxRegistration[] | string);
24
+ constructor(options?: TaxSettingsOptions);
25
+ save(): Promise<this>;
26
+ /** @internal Money migration owns marker transitions. */
27
+ saveMoneyModel(capability: MoneyMigrationWriteCapability): Promise<this>;
28
+ /** @internal Caller already owns the transaction-bound migration barrier. */
29
+ saveMoneyModelOnTransaction(capability: MoneyMigrationWriteCapability): Promise<this>;
30
+ private saveValidated;
31
+ private parsedRegistrations;
32
+ }
33
+ //# sourceMappingURL=TaxSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxSettings.d.ts","sourceRoot":"","sources":["../../src/models/TaxSettings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAQ,MAAM,0BAA0B,CAAC;AAM/E,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,qBAgBa,WAAY,SAAQ,UAAU;IAEzC,QAAQ,SAAM;IAKd,qBAAqB,SAAM;IAK3B,wBAAwB,SAAM;IAM9B,qBAAqB,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,CAAe;IAGxE,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAU;IAE/C,+DAA+D;IAC/D,oBAAoB,SAAQ;IAE5B,+EAA+E;IAC/E,UAAU,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAY;IAErD,kEAAkE;IAClE,gBAAgB,SAAM;IAEtB,IAMI,gBAAgB,IAAI,eAAe,EAAE,CAexC;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,EAGrD;gBAEW,OAAO,GAAE,kBAAuB;IAkB7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,yDAAyD;IACnD,cAAc,CAClB,UAAU,EAAE,6BAA6B,GACxC,OAAO,CAAC,IAAI,CAAC;IAUhB,6EAA6E;IACvE,2BAA2B,CAC/B,UAAU,EAAE,6BAA6B,GACxC,OAAO,CAAC,IAAI,CAAC;YAUF,aAAa;IAgG3B,OAAO,CAAC,mBAAmB;CAoB5B"}
@@ -0,0 +1,35 @@
1
+ /** Materialized tax-summary rows compiled from immutable commerce snapshots. */
2
+ import { SmrtReport } from '@happyvertical/smrt-reports';
3
+ export type TaxSummaryReportRowKind = 'component' | 'kind' | 'reconciliation' | 'warning';
4
+ export declare class TaxSummaryReport extends SmrtReport {
5
+ tenantId: string;
6
+ /** Inclusive report window, stored as an RFC3339 instant. */
7
+ periodFrom: Date;
8
+ /** Inclusive report window, stored as an RFC3339 instant. */
9
+ periodTo: Date;
10
+ currency: string;
11
+ rowKind: TaxSummaryReportRowKind;
12
+ /** Stable key for replacement and a source drilldown dimension. */
13
+ dimensionKey: string;
14
+ direction: string;
15
+ taxComponentId: string | null;
16
+ taxCodeKind: string | null;
17
+ liabilityAccountId: string | null;
18
+ taxableMinor: number;
19
+ taxMinor: number;
20
+ recoverableMinor: number | null;
21
+ ledgerMovementMinor: number | null;
22
+ netTaxMinor: number | null;
23
+ differenceMinor: number | null;
24
+ documentCount: number;
25
+ /** Canonical source classes present when this row was materialized. */
26
+ sourceScopes: string;
27
+ complete: boolean;
28
+ warningCode: string | null;
29
+ /** Stable source category for an incomplete-source warning drilldown. */
30
+ warningSourceType: string | null;
31
+ /** Stable source identity for an incomplete-source warning drilldown. */
32
+ warningSourceId: string | null;
33
+ warningMessage: string | null;
34
+ }
35
+ //# sourceMappingURL=TaxSummaryReport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxSummaryReport.d.ts","sourceRoot":"","sources":["../../src/models/TaxSummaryReport.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAGhF,OAAO,EAAmB,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAI1E,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,MAAM,GACN,gBAAgB,GAChB,SAAS,CAAC;AAEd,qBAgBa,gBAAiB,SAAQ,UAAU;IAE9C,QAAQ,SAAM;IAEd,6DAA6D;IAM7D,UAAU,EAAE,IAAI,CAAe;IAE/B,6DAA6D;IAM7D,QAAQ,EAAE,IAAI,CAAe;IAM7B,QAAQ,SAAM;IAId,OAAO,EAAE,uBAAuB,CAAe;IAE/C,mEAAmE;IAKnE,YAAY,SAAM;IAMlB,SAAS,SAAM;IAOf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAIrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOlC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAIzC,YAAY,SAAK;IAOjB,QAAQ,SAAK;IASb,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOvC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQ1C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOlC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAItC,aAAa,SAAK;IAElB,uEAAuE;IAMvE,YAAY,SAAM;IAMlB,QAAQ,UAAQ;IAIhB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,yEAAyE;IAGzE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAExC,yEAAyE;IAGzE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAOtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;CACtC"}
@@ -49,6 +49,15 @@ export declare class Vendor extends SmrtObject {
49
49
  * Default currency for transactions with this vendor
50
50
  */
51
51
  currency: string;
52
+ /**
53
+ * Supplier registration number.
54
+ *
55
+ * Sensitive for the same reason as a customer's tax ID: it is identifying
56
+ * business information and must not enter generated list/search surfaces.
57
+ */
58
+ taxId: string;
59
+ /** Tax code normally used for purchases from this vendor. */
60
+ defaultTaxCodeId: string;
52
61
  /**
53
62
  * Default contact email for orders
54
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Vendor.d.ts","sourceRoot":"","sources":["../../src/models/Vendor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;GAeG;AACH,qBAMa,MAAO,SAAQ,UAAU;IACpC;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;;OAGG;IAKH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAKH,YAAY,EAAE,MAAM,CAAK;IAEzB;;;;OAIG;IAKH,kBAAkB,EAAE,MAAM,CAAK;IAE/B;;OAEG;IAKH,YAAY,EAAE,MAAM,CAAM;IAE1B;;OAEG;IAKH,QAAQ,EAAE,MAAM,CAAS;IAEzB;;OAEG;IAKH,mBAAmB,EAAE,MAAM,CAAM;IAEjC;;OAEG;IAKH,mBAAmB,EAAE,MAAM,CAAM;IAEjC;;OAEG;IAKH,MAAM,EAAE,YAAY,CAAuB;IAE3C;;OAEG;IAKH,KAAK,EAAE,MAAM,CAAM;IAEnB;;;;;;;;;;;;;;;;;;;OAmBG;IAKH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE7C;;;OAGG;IAKH,QAAQ,EAAE,YAAY,EAAE,CAAM;gBAElB,OAAO,GAAE,aAAkB;IA0BvC;;;;;;;;OAQG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;OAIG;IACY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI1C;;;;;;;;;;OAUG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;OAOG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOtD;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAQ7D;;;OAGG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAU1C;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAqBxC;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Vendor.d.ts","sourceRoot":"","sources":["../../src/models/Vendor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;GAeG;AACH,qBAMa,MAAO,SAAQ,UAAU;IACpC;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;;OAGG;IAKH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IAKH,YAAY,EAAE,MAAM,CAAK;IAEzB;;;;OAIG;IAKH,kBAAkB,EAAE,MAAM,CAAK;IAE/B;;OAEG;IAKH,YAAY,EAAE,MAAM,CAAM;IAE1B;;OAEG;IAKH,QAAQ,EAAE,MAAM,CAAS;IAEzB;;;;;OAKG;IAKH,KAAK,EAAE,MAAM,CAAM;IAEnB,6DAA6D;IAI7D,gBAAgB,EAAE,MAAM,CAAM;IAE9B;;OAEG;IAKH,mBAAmB,EAAE,MAAM,CAAM;IAEjC;;OAEG;IAKH,mBAAmB,EAAE,MAAM,CAAM;IAEjC;;OAEG;IAKH,MAAM,EAAE,YAAY,CAAuB;IAE3C;;OAEG;IAKH,KAAK,EAAE,MAAM,CAAM;IAEnB;;;;;;;;;;;;;;;;;;;OAmBG;IAKH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE7C;;;OAGG;IAKH,QAAQ,EAAE,YAAY,EAAE,CAAM;gBAElB,OAAO,GAAE,aAAkB;IA6BvC;;;;;;;;OAQG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;OAIG;IACY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQpC;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI1C;;;;;;;;;;OAUG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;OAOG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOtD;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAQ7D;;;OAGG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAU1C;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAqBxC;AAED,eAAe,MAAM,CAAC"}
@@ -3,17 +3,23 @@
3
3
  * @packageDocumentation
4
4
  */
5
5
  export { BillingAccount, type BillingCloseKind, BillingLineSource, type BillingLineSourceType, BillingPaymentAttempt, type BillingPaymentAttemptFlag, type BillingPaymentAttemptPurpose, type BillingPaymentAttemptTransition, BillingPeriodClose, type BillingPeriodCloseStatus, type BillingStanding, } from './billing.js';
6
- export { Agreement, Cart, Contract, Estimate, Lease, type LicenseRightsSnapshot, LicenseSale, Order, ProductionOrder, PurchaseContract, PurchaseOrder, SalesContract, WholesaleOrder, } from './Contract.js';
6
+ export { Agreement, Cart, Contract, Estimate, Lease, type LicenseRightsSnapshot, LicenseSale, Order, ProductionOrder, PurchaseContract, PurchaseOrder, SalesContract, SupplierQuote, WholesaleOrder, } from './Contract.js';
7
7
  export { ContractLineItem } from './ContractLineItem.js';
8
8
  export { Customer } from './Customer.js';
9
+ export { type CommerceDocumentType, DocumentTax, type DocumentTaxOptions, } from './DocumentTax.js';
9
10
  export { Fulfillment } from './Fulfillment.js';
10
11
  export { FulfillmentLineItem } from './FulfillmentLineItem.js';
11
12
  export { Invoice } from './Invoice.js';
12
13
  export { InvoiceLineItem } from './InvoiceLineItem.js';
14
+ export { MoneyMigrationDocument, type MoneyMigrationDocumentOptions, type MoneyMigrationDocumentState, type MoneyMigrationDocumentType, } from './MoneyMigrationDocument.js';
13
15
  export { Payment } from './Payment.js';
14
16
  export { PaymentAllocation } from './PaymentAllocation.js';
15
17
  export { PaymentInstrument } from './PaymentInstrument.js';
16
18
  export { PaymentIntent } from './PaymentIntent.js';
17
19
  export { Payout } from './Payout.js';
20
+ export { TaxCode, type TaxCodeAppliesTo, type TaxCodeKind } from './TaxCode.js';
21
+ export { TaxComponent } from './TaxComponent.js';
22
+ export { type TaxRegistration, TaxSettings } from './TaxSettings.js';
23
+ export { TaxSummaryReport, type TaxSummaryReportRowKind, } from './TaxSummaryReport.js';
18
24
  export { Vendor } from './Vendor.js';
19
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,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,gBAAgB,EAChB,aAAa,EACb,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,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACpC,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,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,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,EACL,KAAK,oBAAoB,EACzB,WAAW,EACX,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,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,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,GAChC,MAAM,6BAA6B,CAAC;AACrC,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,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** Internal exact-rational primitives shared by commerce money calculators. */
2
+ export interface SignedRationalInput {
3
+ id: string;
4
+ numerator: bigint;
5
+ denominator: bigint;
6
+ }
7
+ export declare function roundSignedRational(numerator: bigint, denominator: bigint): bigint;
8
+ export declare function allocateSignedRationals(values: readonly SignedRationalInput[]): {
9
+ target: bigint;
10
+ allocations: {
11
+ id: string;
12
+ value: bigint;
13
+ }[];
14
+ };
15
+ //# sourceMappingURL=money-rational.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"money-rational.d.ts","sourceRoot":"","sources":["../src/money-rational.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AASD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAMR;AAYD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,mBAAmB,EAAE,GACrC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAyClE"}
package/dist/money.d.ts CHANGED
@@ -1,27 +1,108 @@
1
- /**
2
- * Money is exact: integer minor units, checked at the model boundary (#2401).
3
- *
4
- * Every money column in this package is INTEGER minor units — cents,
5
- * satoshis — so `$19.99` is `1999`. Before #2401 the models carried
6
- * `EPSILON = 0.01` tolerances on every comparison, because the values really
7
- * were floats and `0.1 * 3` really is `0.30000000000000004`. With exact
8
- * integers those tolerances are not merely unnecessary, they are wrong: a
9
- * one-cent discrepancy is a one-cent discrepancy, not rounding fuzz.
10
- *
11
- * Dropping the tolerances is only safe if the values are *actually* integers,
12
- * which is what this guard establishes. A fractional major-unit write (`19.99`
13
- * into a cents column) is the bug the whole convention exists to prevent;
14
- * PostgreSQL catches it with a `22P02` and SQLite's type affinity does not
15
- * catch it at all, so the model catches it first, on every engine and every
16
- * write surface.
17
- */
18
- /**
19
- * Throw unless every named value is a finite integer.
20
- *
21
- * @param context - Model name for the error message, e.g. `Invoice`.
22
- * @param label - Row identifier used in the error, e.g. an invoice number.
23
- * @param entries - `[fieldName, value]` pairs to check.
24
- * @throws When any value is non-finite or has a fractional part.
25
- */
1
+ /** Exact, transport-neutral commercial document money calculation. */
2
+ /** Throw unless every named model value is a finite integer minor-unit amount. */
26
3
  export declare function assertIntegerMinorUnits(context: string, label: string, entries: ReadonlyArray<readonly [string, number]>): void;
4
+ export type LineAmountType = 'exclusive' | 'inclusive' | 'none';
5
+ export type TaxRoundingScope = 'line' | 'document';
6
+ export type TaxCodeKind = 'taxable' | 'zero-rated' | 'exempt' | 'out-of-scope';
7
+ export type TaxCodeAppliesTo = 'sales' | 'purchases' | 'both';
8
+ export type MoneyValidationCode = 'DISCOUNT_BOTH_FORMS' | 'DISCOUNT_EXCEEDS_GROSS' | 'DISCOUNT_SIGN' | 'PERCENT_OUT_OF_RANGE' | 'COMPOUND_UNSUPPORTED' | 'INVALID_MONEY_INPUT' | 'TAX_CODE_DUPLICATE_COMPONENT' | 'TAX_CODE_KIND' | 'TAX_CODE_NON_TAXABLE_COMPONENTS' | 'TAX_CODE_NOT_FOUND' | 'TAX_CODE_TAXABLE_EMPTY' | 'TAX_COMPONENT_RATE_CONFLICT' | 'TAX_CODE_INACTIVE' | 'TAX_CODE_SCOPE' | 'UNSAFE_MONEY' | 'FROZEN_DOCUMENT' | 'CURRENCY_MISMATCH' | 'ACCOUNTING_SYNC_IN_PROGRESS' | 'ACCOUNTING_SYNC_RECONCILIATION_REQUIRED' | 'ACCOUNTING_SYNC_UNSUPPORTED' | 'CREDIT_EXCEEDS_LINE' | 'CREDIT_TARGET_NOT_ISSUED';
9
+ /** Stable validation error shared by model, editor, and transport adapters. */
10
+ export declare class MoneyValidationError extends Error {
11
+ readonly code: MoneyValidationCode;
12
+ readonly name = "MoneyValidationError";
13
+ /** Explicit marker consumed by public transports that preserve typed errors. */
14
+ readonly publicMessage: string;
15
+ constructor(code: MoneyValidationCode, message: string);
16
+ }
17
+ export interface TaxComponentInput {
18
+ taxComponentId: string;
19
+ /** Exact percent: "7" means 7%; at most six fractional digits. */
20
+ percent: string;
21
+ compound: boolean;
22
+ }
23
+ export interface MoneyTaxCodeInput {
24
+ id: string;
25
+ kind: TaxCodeKind;
26
+ components: readonly TaxComponentInput[];
27
+ }
28
+ export interface ResolvableTaxCodeInput extends MoneyTaxCodeInput {
29
+ active: boolean;
30
+ appliesTo: TaxCodeAppliesTo;
31
+ }
32
+ export type MoneyDiscountInput = {
33
+ kind: 'none';
34
+ } | {
35
+ kind: 'percent';
36
+ rate: string;
37
+ } | {
38
+ kind: 'amount';
39
+ minor: number;
40
+ };
41
+ export interface MoneyLineInput {
42
+ id: string;
43
+ /** Nonnegative decimal quantity with at most six fractional digits. */
44
+ quantity: number;
45
+ /** Signed safe integer minor units. */
46
+ unitPrice: number;
47
+ discount: MoneyDiscountInput;
48
+ /** Explicit tax-exclusive basis for credit-note amount allocations. */
49
+ netAmountMinor?: number;
50
+ /** Null means no code resolved; `none` pricing requires an out-of-scope code. */
51
+ taxCode: MoneyTaxCodeInput | null;
52
+ }
53
+ export interface MoneyLineResult {
54
+ id: string;
55
+ grossMinor: number;
56
+ discountMinor: number;
57
+ amountMinor: number;
58
+ components: {
59
+ taxComponentId: string;
60
+ taxMinor: number;
61
+ }[];
62
+ taxMinor: number;
63
+ netMinor: number;
64
+ }
65
+ export interface MoneyDocumentTaxResult {
66
+ /** Null records an unassigned line without inventing a persisted tax-code ID. */
67
+ taxCodeId: string | null;
68
+ taxComponentId: string | null;
69
+ taxableMinor: number;
70
+ taxMinor: number;
71
+ }
72
+ export interface MoneyDocumentResult {
73
+ lines: MoneyLineResult[];
74
+ subtotalMinor: number;
75
+ discountTotalMinor: number;
76
+ taxMinor: number;
77
+ totalMinor: number;
78
+ taxes: MoneyDocumentTaxResult[];
79
+ }
80
+ export type TaxCodeResolutionSource = 'line' | 'exempt-customer' | 'product' | 'customer' | 'app' | 'none';
81
+ export interface ResolveLineTaxCodeInput {
82
+ lineAmountType: LineAmountType;
83
+ lineOverride?: string | null;
84
+ }
85
+ export interface ResolveLineTaxCodeContext {
86
+ direction: 'sales' | 'purchases';
87
+ codes: Readonly<Record<string, ResolvableTaxCodeInput>>;
88
+ customerTaxExempt: boolean;
89
+ exemptCodeId?: string | null;
90
+ productCodeId?: string | null;
91
+ partyCodeId?: string | null;
92
+ appDefaultCodeId?: string | null;
93
+ outOfScopeCodeId?: string | null;
94
+ }
95
+ export interface ResolvedLineTaxCode {
96
+ taxCode: ResolvableTaxCodeInput | null;
97
+ source: TaxCodeResolutionSource;
98
+ }
99
+ /** Calculate exact line amounts, per-component tax, and document totals. */
100
+ export declare function calculateMoneyDocument(input: {
101
+ currency: string;
102
+ lineAmountType: LineAmountType;
103
+ roundingScope: TaxRoundingScope;
104
+ lines: readonly MoneyLineInput[];
105
+ }): MoneyDocumentResult;
106
+ /** Resolve a line tax code from already-loaded values, without model or I/O access. */
107
+ export declare function resolveLineTaxCode(line: ResolveLineTaxCodeInput, context: ResolveLineTaxCodeContext): ResolvedLineTaxCode;
27
108
  //# sourceMappingURL=money.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAChD,IAAI,CAUN"}
1
+ {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}