@happyvertical/smrt-commerce 0.56.1 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/AGENTS.md +24 -11
  2. package/README.md +159 -93
  3. package/agents/accounting-snapshot-mapper.md +3 -3
  4. package/agents/commercial-ui.md +2 -2
  5. package/agents/contract-money.md +9 -6
  6. package/agents/cost-billing.md +3 -6
  7. package/agents/customer-vendor-ui.md +6 -1
  8. package/agents/document-money.md +59 -31
  9. package/agents/invoice-calculations.md +31 -56
  10. package/agents/invoice-preparation.md +62 -73
  11. package/agents/invoice-quantity.md +9 -21
  12. package/agents/minor-unit-migration.md +4 -4
  13. package/agents/money-calculator.md +7 -8
  14. package/agents/money-model.md +18 -22
  15. package/agents/money-upgrade.md +92 -0
  16. package/agents/revenue-journal.md +2 -2
  17. package/agents/tax-codes.md +17 -14
  18. package/agents/tax-summary.md +12 -8
  19. package/dist/billing/period-close.d.ts.map +1 -1
  20. package/dist/billing/runtime.d.ts +5 -2
  21. package/dist/billing/runtime.d.ts.map +1 -1
  22. package/dist/chunks/{ContractLineItemCollection-DYjhj_pU.js → ContractLineItemCollection-BZcrlrrY.js} +22 -27
  23. package/dist/chunks/ContractLineItemCollection-BZcrlrrY.js.map +1 -0
  24. package/dist/chunks/{CustomerCollection-DQIujn4f.js → CustomerCollection-BIPH2ZUx.js} +3 -3
  25. package/dist/chunks/{CustomerCollection-DQIujn4f.js.map → CustomerCollection-BIPH2ZUx.js.map} +1 -1
  26. package/dist/chunks/{DocumentTaxCollection-BEpoqXAQ.js → DocumentTaxCollection-DDzlywMW.js} +41 -14
  27. package/dist/chunks/DocumentTaxCollection-DDzlywMW.js.map +1 -0
  28. package/dist/chunks/{InvoiceCollection-CKQflFjc.js → InvoiceCollection-cinzAqt6.js} +53 -164
  29. package/dist/chunks/InvoiceCollection-cinzAqt6.js.map +1 -0
  30. package/dist/chunks/{TaxCodeCollection-DOpzW4y8.js → TaxCodeCollection-DaBOPG9c.js} +11 -4
  31. package/dist/chunks/{TaxCodeCollection-DOpzW4y8.js.map → TaxCodeCollection-DaBOPG9c.js.map} +1 -1
  32. package/dist/chunks/{TaxComponentCollection-Cs2uXwEl.js → TaxComponentCollection-C4zxnyVu.js} +3 -3
  33. package/dist/chunks/{TaxComponentCollection-Cs2uXwEl.js.map → TaxComponentCollection-C4zxnyVu.js.map} +1 -1
  34. package/dist/chunks/VendorCollection-D6ZcUYy8.js +100 -0
  35. package/dist/chunks/VendorCollection-D6ZcUYy8.js.map +1 -0
  36. package/dist/chunks/{allocation-integrity-DI3G16BN.js → allocation-integrity-WmWyXhtG.js} +6 -6
  37. package/dist/chunks/{allocation-integrity-DI3G16BN.js.map → allocation-integrity-WmWyXhtG.js.map} +1 -1
  38. package/dist/chunks/calculations-C9daQLsh.js +82 -0
  39. package/dist/chunks/calculations-C9daQLsh.js.map +1 -0
  40. package/dist/chunks/contract-money-EuToOghh.js +301 -0
  41. package/dist/chunks/contract-money-EuToOghh.js.map +1 -0
  42. package/dist/chunks/detect-CY9ufaFb.js +328 -0
  43. package/dist/chunks/detect-CY9ufaFb.js.map +1 -0
  44. package/dist/chunks/{document-money-DNVhDJyC.js → document-money-DV5t4vlK.js} +389 -63
  45. package/dist/chunks/document-money-DV5t4vlK.js.map +1 -0
  46. package/dist/chunks/{invoice-posting-BwV8g7z0.js → invoice-posting-C2i5dOVZ.js} +21 -23
  47. package/dist/chunks/invoice-posting-C2i5dOVZ.js.map +1 -0
  48. package/dist/chunks/{revenue-journal-DY9fro8E.js → revenue-journal-LLA9Kh_i.js} +3 -14
  49. package/dist/chunks/revenue-journal-LLA9Kh_i.js.map +1 -0
  50. package/dist/chunks/tenant-money-barrier-6TlqUeVj.js +255 -0
  51. package/dist/chunks/tenant-money-barrier-6TlqUeVj.js.map +1 -0
  52. package/dist/chunks/{types-LDETvQ1C.js → types-Bbm0Xflc.js} +2 -1
  53. package/dist/chunks/types-Bbm0Xflc.js.map +1 -0
  54. package/dist/chunks/{units-CNcjH_eE.js → units-8ElbjVZK.js} +18 -3
  55. package/dist/chunks/units-8ElbjVZK.js.map +1 -0
  56. package/dist/collections/ContractCollection.d.ts.map +1 -1
  57. package/dist/collections/ContractLineItemCollection.d.ts.map +1 -1
  58. package/dist/collections/InvoiceCollection.d.ts.map +1 -1
  59. package/dist/collections/InvoiceLineItemCollection.d.ts +0 -30
  60. package/dist/collections/InvoiceLineItemCollection.d.ts.map +1 -1
  61. package/dist/collections/TaxCodeCollection.d.ts +5 -1
  62. package/dist/collections/TaxCodeCollection.d.ts.map +1 -1
  63. package/dist/collections/TaxSettingsCollection.d.ts +15 -8
  64. package/dist/collections/TaxSettingsCollection.d.ts.map +1 -1
  65. package/dist/collections/TaxSummaryReportCollection.d.ts +3 -3
  66. package/dist/collections/TaxSummaryReportCollection.d.ts.map +1 -1
  67. package/dist/collections/index.d.ts +0 -1
  68. package/dist/collections/index.d.ts.map +1 -1
  69. package/dist/commerce-money-tools.d.ts.map +1 -1
  70. package/dist/contract-money.d.ts +1 -13
  71. package/dist/contract-money.d.ts.map +1 -1
  72. package/dist/document-money-internal.d.ts +7 -3
  73. package/dist/document-money-internal.d.ts.map +1 -1
  74. package/dist/document-money.d.ts +1 -11
  75. package/dist/document-money.d.ts.map +1 -1
  76. package/dist/index.d.ts +6 -5
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +686 -1656
  79. package/dist/index.js.map +1 -1
  80. package/dist/invoice-accounting-sync.d.ts.map +1 -1
  81. package/dist/invoice-mcp.d.ts +3 -3
  82. package/dist/invoice-mcp.d.ts.map +1 -1
  83. package/dist/invoice-posting.d.ts +11 -5
  84. package/dist/invoice-posting.d.ts.map +1 -1
  85. package/dist/invoice-record-screen.d.ts +1 -1
  86. package/dist/invoice-record-screen.d.ts.map +1 -1
  87. package/dist/invoices.d.ts +6 -1
  88. package/dist/invoices.d.ts.map +1 -1
  89. package/dist/invoices.js +2 -2
  90. package/dist/manifest.json +1041 -863
  91. package/dist/migrations/invoiceEditorStorage.d.ts +2 -4
  92. package/dist/migrations/invoiceEditorStorage.d.ts.map +1 -1
  93. package/dist/migrations/partyLinks.d.ts.map +1 -1
  94. package/dist/models/Contract.d.ts +10 -4
  95. package/dist/models/Contract.d.ts.map +1 -1
  96. package/dist/models/ContractLineItem.d.ts +9 -17
  97. package/dist/models/ContractLineItem.d.ts.map +1 -1
  98. package/dist/models/DocumentTax.d.ts.map +1 -1
  99. package/dist/models/Invoice.d.ts +18 -48
  100. package/dist/models/Invoice.d.ts.map +1 -1
  101. package/dist/models/InvoiceLineItem.d.ts +13 -32
  102. package/dist/models/InvoiceLineItem.d.ts.map +1 -1
  103. package/dist/models/TaxSettings.d.ts +0 -10
  104. package/dist/models/TaxSettings.d.ts.map +1 -1
  105. package/dist/models/index.d.ts +1 -2
  106. package/dist/models/index.d.ts.map +1 -1
  107. package/dist/playground.js +1 -1
  108. package/dist/playground.js.map +1 -1
  109. package/dist/recipes.d.ts +8 -11
  110. package/dist/recipes.d.ts.map +1 -1
  111. package/dist/revenue-journal.d.ts +0 -8
  112. package/dist/revenue-journal.d.ts.map +1 -1
  113. package/dist/smrt-knowledge.json +2886 -6121
  114. package/dist/svelte/components/InvoiceEditor.svelte +7 -148
  115. package/dist/svelte/components/InvoiceEditor.svelte.d.ts +4 -1
  116. package/dist/svelte/components/InvoiceEditor.svelte.d.ts.map +1 -1
  117. package/dist/svelte/components/InvoiceTotals.svelte +14 -118
  118. package/dist/svelte/components/InvoiceTotals.svelte.d.ts +4 -27
  119. package/dist/svelte/components/InvoiceTotals.svelte.d.ts.map +1 -1
  120. package/dist/svelte/components/MoneyInvoiceEditor.svelte +3 -23
  121. package/dist/svelte/components/MoneyInvoiceEditor.svelte.d.ts +3 -26
  122. package/dist/svelte/components/MoneyInvoiceEditor.svelte.d.ts.map +1 -1
  123. package/dist/svelte/index.d.ts +2 -3
  124. package/dist/svelte/index.d.ts.map +1 -1
  125. package/dist/svelte/index.js +1 -2
  126. package/dist/svelte/invoices/calculations.d.ts +3 -108
  127. package/dist/svelte/invoices/calculations.d.ts.map +1 -1
  128. package/dist/svelte/invoices/calculations.js +12 -309
  129. package/dist/svelte/invoices/messages.d.ts +1 -37
  130. package/dist/svelte/invoices/messages.d.ts.map +1 -1
  131. package/dist/svelte/invoices/messages.js +1 -37
  132. package/dist/svelte/invoices/money-editor.d.ts +1 -1
  133. package/dist/svelte/invoices/money-editor.d.ts.map +1 -1
  134. package/dist/svelte/invoices/types.d.ts +14 -114
  135. package/dist/svelte/invoices/types.d.ts.map +1 -1
  136. package/dist/svelte/playground/InvoicePreparationPreview.svelte +85 -94
  137. package/dist/svelte/playground/InvoicePreparationPreview.svelte.d.ts.map +1 -1
  138. package/dist/svelte/playground.js +1 -1
  139. package/dist/tax/index.d.ts +2 -1
  140. package/dist/tax/index.d.ts.map +1 -1
  141. package/dist/tax/standard-codes.d.ts +12 -0
  142. package/dist/tax/standard-codes.d.ts.map +1 -0
  143. package/dist/tax/tenant-bootstrap.d.ts +29 -0
  144. package/dist/tax/tenant-bootstrap.d.ts.map +1 -0
  145. package/dist/tenant-money-barrier.d.ts +12 -44
  146. package/dist/tenant-money-barrier.d.ts.map +1 -1
  147. package/dist/types/index.d.ts +11 -23
  148. package/dist/types/index.d.ts.map +1 -1
  149. package/dist/ui.js +1 -1
  150. package/dist/ui.js.map +1 -1
  151. package/dist/upgrade/detect.d.ts +129 -0
  152. package/dist/upgrade/detect.d.ts.map +1 -0
  153. package/dist/upgrade/money-v2.d.ts +81 -0
  154. package/dist/upgrade/money-v2.d.ts.map +1 -0
  155. package/package.json +14 -13
  156. package/agents/line-amount-migration.md +0 -50
  157. package/dist/chunks/ContractLineItemCollection-DYjhj_pU.js.map +0 -1
  158. package/dist/chunks/DocumentTaxCollection-BEpoqXAQ.js.map +0 -1
  159. package/dist/chunks/InvoiceCollection-CKQflFjc.js.map +0 -1
  160. package/dist/chunks/InvoiceLineItemCollection-CHm9zdqh.js +0 -467
  161. package/dist/chunks/InvoiceLineItemCollection-CHm9zdqh.js.map +0 -1
  162. package/dist/chunks/TaxSettingsCollection-BBTZDH1S.js +0 -319
  163. package/dist/chunks/TaxSettingsCollection-BBTZDH1S.js.map +0 -1
  164. package/dist/chunks/calculations-DaHR17il.js +0 -333
  165. package/dist/chunks/calculations-DaHR17il.js.map +0 -1
  166. package/dist/chunks/document-money-DNVhDJyC.js.map +0 -1
  167. package/dist/chunks/invoice-posting-BwV8g7z0.js.map +0 -1
  168. package/dist/chunks/revenue-journal-DY9fro8E.js.map +0 -1
  169. package/dist/chunks/tenant-money-barrier-DjRXgMnX.js +0 -135
  170. package/dist/chunks/tenant-money-barrier-DjRXgMnX.js.map +0 -1
  171. package/dist/chunks/types-LDETvQ1C.js.map +0 -1
  172. package/dist/chunks/units-CNcjH_eE.js.map +0 -1
  173. package/dist/collections/MoneyMigrationDocumentCollection.d.ts +0 -12
  174. package/dist/collections/MoneyMigrationDocumentCollection.d.ts.map +0 -1
  175. package/dist/migrations/commerceLineAmounts.d.ts +0 -84
  176. package/dist/migrations/commerceLineAmounts.d.ts.map +0 -1
  177. package/dist/models/MoneyMigrationDocument.d.ts +0 -28
  178. package/dist/models/MoneyMigrationDocument.d.ts.map +0 -1
  179. package/dist/svelte/components/InvoiceLineEditor.svelte +0 -92
  180. package/dist/svelte/components/InvoiceLineEditor.svelte.d.ts +0 -8
  181. package/dist/svelte/components/InvoiceLineEditor.svelte.d.ts.map +0 -1
  182. package/dist/svelte/invoices/fields.d.ts +0 -6
  183. package/dist/svelte/invoices/fields.d.ts.map +0 -1
  184. package/dist/svelte/invoices/fields.js +0 -22
  185. package/dist/tax/legacy.d.ts +0 -48
  186. package/dist/tax/legacy.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- /** Explicit invoice quantity widening and additive editor-state storage migration. */
1
+ /** Explicit invoice line quantity widening migration. */
2
2
  import { type DatabaseInterface } from '@happyvertical/smrt-core/migrations';
3
3
  /** Supported SQL engines; explicit selection avoids guessing from connection URLs. */
4
4
  export type InvoiceEditorStorageEngine = 'sqlite' | 'postgres' | 'duckdb';
@@ -10,8 +10,6 @@ export interface InvoiceEditorStoragePreflight {
10
10
  declaredType: string | null;
11
11
  /** All existing quantities satisfy numeric persistence and precision constraints. */
12
12
  ok: boolean;
13
- /** Whether the dedicated TEXT editor-state column already exists. */
14
- editorStateColumnPresent: boolean;
15
13
  /** Rows examined. */
16
14
  inspectedRows: number;
17
15
  /** Invalid row identifiers; no data is modified while findings remain. */
@@ -21,7 +19,7 @@ export interface InvoiceEditorStoragePreflight {
21
19
  export interface InvoiceEditorStorageMigrationResult {
22
20
  /** Preflight used to guard this migration. */
23
21
  preflight: InvoiceEditorStoragePreflight;
24
- /** True if quantity was widened or the editor-state column was added. */
22
+ /** True if quantity was widened. */
25
23
  changed: boolean;
26
24
  }
27
25
  type QueryExecutor = Pick<DatabaseInterface, 'query'>;
@@ -1 +1 @@
1
- {"version":3,"file":"invoiceEditorStorage.d.ts","sourceRoot":"","sources":["../../src/migrations/invoiceEditorStorage.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,qCAAqC,CAAC;AAG7C,sFAAsF;AACtF,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC1E,6CAA6C;AAC7C,MAAM,WAAW,6BAA6B;IAC5C,wBAAwB;IACxB,MAAM,EAAE,0BAA0B,CAAC;IACnC,iDAAiD;IACjD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qFAAqF;IACrF,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,wBAAwB,EAAE,OAAO,CAAC;IAClC,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AACD,2CAA2C;AAC3C,MAAM,WAAW,mCAAmC;IAClD,8CAA8C;IAC9C,SAAS,EAAE,6BAA6B,CAAC;IACzC,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,KAAK,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAmCtD,oFAAoF;AACpF,wBAAsB,6BAA6B,CACjD,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,6BAA6B,CAAC,CAkDxC;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,EAAE,EAAE,iBAAiB,EACrB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,mCAAmC,CAAC,CAqE9C"}
1
+ {"version":3,"file":"invoiceEditorStorage.d.ts","sourceRoot":"","sources":["../../src/migrations/invoiceEditorStorage.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,qCAAqC,CAAC;AAG7C,sFAAsF;AACtF,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAC1E,6CAA6C;AAC7C,MAAM,WAAW,6BAA6B;IAC5C,wBAAwB;IACxB,MAAM,EAAE,0BAA0B,CAAC;IACnC,iDAAiD;IACjD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qFAAqF;IACrF,EAAE,EAAE,OAAO,CAAC;IACZ,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AACD,2CAA2C;AAC3C,MAAM,WAAW,mCAAmC;IAClD,8CAA8C;IAC9C,SAAS,EAAE,6BAA6B,CAAC;IACzC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AACD,KAAK,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAmCtD,oFAAoF;AACpF,wBAAsB,6BAA6B,CACjD,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,6BAA6B,CAAC,CA+CxC;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,EAAE,EAAE,iBAAiB,EACrB,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,mCAAmC,CAAC,CA4D9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"partyLinks.d.ts","sourceRoot":"","sources":["../../src/migrations/partyLinks.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iFAAiF;AACjF,MAAM,WAAW,gCAAgC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,2BAA2B;IAC1C,wBAAwB,EAAE,oBAAoB,EAAE,CAAC;IACjD,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,uBAAuB,EAAE,oBAAoB,EAAE,CAAC;IAChD,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,4BAA4B,EAAE,oBAAoB,EAAE,CAAC;IACrD,mBAAmB,EAAE,yBAAyB,EAAE,CAAC;IACjD,uBAAuB,EAAE,yBAAyB,EAAE,CAAC;IACrD,sBAAsB,EAAE,gCAAgC,EAAE,CAAC;IAC3D,yBAAyB,EAAE,gCAAgC,EAAE,CAAC;CAC/D;AAuCD,yFAAyF;AACzF,wBAAsB,2BAA2B,CAC/C,EAAE,EAAE,iBAAiB,GACpB,OAAO,CAAC,2BAA2B,CAAC,CAmJtC"}
1
+ {"version":3,"file":"partyLinks.d.ts","sourceRoot":"","sources":["../../src/migrations/partyLinks.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iFAAiF;AACjF,MAAM,WAAW,gCAAgC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,2BAA2B;IAC1C,wBAAwB,EAAE,oBAAoB,EAAE,CAAC;IACjD,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,uBAAuB,EAAE,oBAAoB,EAAE,CAAC;IAChD,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;IAC9C,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,4BAA4B,EAAE,oBAAoB,EAAE,CAAC;IACrD,mBAAmB,EAAE,yBAAyB,EAAE,CAAC;IACjD,uBAAuB,EAAE,yBAAyB,EAAE,CAAC;IACrD,sBAAsB,EAAE,gCAAgC,EAAE,CAAC;IAC3D,yBAAyB,EAAE,gCAAgC,EAAE,CAAC;CAC/D;AA4CD,yFAAyF;AACzF,wBAAsB,2BAA2B,CAC/C,EAAE,EAAE,iBAAiB,GACpB,OAAO,CAAC,2BAA2B,CAAC,CAmJtC"}
@@ -8,15 +8,15 @@ import { type DocumentMoneyReadRebindCapability, type DocumentMoneyWriteCapabili
8
8
  import { type ContractOptions, ContractStatus, ContractType, type LicenseSaleOptions, type PurchaseContractOptions, type PurchaseOrderOptions, type SalesContractOptions, type TaxRegistrationOptions } from '../types/index.js';
9
9
  /** Whether a Contract belongs to the purchase STI branch, including descendants. */
10
10
  export declare function classifyContractPurchase(contract: Contract): boolean;
11
- /** A frozen Contract snapshot is reportable except when cancelled. */
11
+ /** Frozen snapshots are reportable except cancelled contracts and supplier quotes. */
12
12
  export declare function isContractSnapshotReportEligible(contract: Contract): boolean;
13
13
  /**
14
14
  * Contract is the base class for all commercial agreements.
15
15
  *
16
- * Uses Single Table Inheritance (STI) for nine leaf types. SalesContract owns
16
+ * Uses Single Table Inheritance (STI) for ten leaf types. SalesContract owns
17
17
  * the customer link for Estimate, Order, WholesaleOrder, Cart, Lease,
18
18
  * Agreement, and LicenseSale. PurchaseContract owns the vendor link for
19
- * PurchaseOrder and ProductionOrder. Both branches share `contracts`.
19
+ * SupplierQuote, PurchaseOrder and ProductionOrder. Both branches share `contracts`.
20
20
  *
21
21
  * @example
22
22
  * ```typescript
@@ -198,7 +198,7 @@ export declare abstract class SalesContract extends Contract {
198
198
  customerId: string | null;
199
199
  constructor(options?: SalesContractOptions);
200
200
  }
201
- /** Supplier-side contracts, including purchase and production orders. */
201
+ /** Supplier-side contracts, including supplier quotes, purchase and production orders. */
202
202
  export declare abstract class PurchaseContract extends Contract {
203
203
  vendorId: string | null;
204
204
  constructor(options?: PurchaseContractOptions);
@@ -235,6 +235,12 @@ export declare class Agreement extends SalesContract {
235
235
  contractType: ContractType;
236
236
  constructor(options?: SalesContractOptions);
237
237
  }
238
+ /** Supplier quotation received from a vendor; acceptance does not create an order. */
239
+ export declare class SupplierQuote extends PurchaseContract {
240
+ vendorId: string | null;
241
+ contractType: ContractType;
242
+ constructor(options?: PurchaseContractOptions);
243
+ }
238
244
  /**
239
245
  * PurchaseOrder - Order sent to vendor/supplier
240
246
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Contract.d.ts","sourceRoot":"","sources":["../../src/models/Contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Contract.d.ts","sourceRoot":"","sources":["../../src/models/Contract.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,9 @@ export declare class ContractLineItem extends SmrtObject {
45
45
  */
46
46
  quantity: number;
47
47
  /**
48
- * Unit price before discount, in **integer minor units** (cents, satoshis).
48
+ * Unit price before discount, in **integer minor units** (cents, satoshis),
49
+ * in the document's pricing mode: tax-inclusive when its `lineAmountType`
50
+ * is `inclusive`.
49
51
  *
50
52
  * The `= 0` initializer is load-bearing: SMRT maps an integer literal to
51
53
  * INTEGER and a decimal literal to DECIMAL. Money is exact, so `$49.99` is
@@ -72,14 +74,13 @@ export declare class ContractLineItem extends SmrtObject {
72
74
  set taxComponents(value: ContractTaxComponentSnapshot[]);
73
75
  /** Exact sum of frozen component taxes, in integer minor units. */
74
76
  taxAmount: number;
75
- /** Pre-v2 amount preserved only by the migration path. */
76
- legacyAmount: number | null;
77
77
  /** Stable issue/freeze identity, independent of lifecycle updated_at. */
78
78
  moneySnapshotId: string;
79
79
  /**
80
- * Calculated line amount (qty * price - discount + tax), in integer minor
81
- * units. Derived by {@link ContractLineItem.calculateAmount}, which rounds
82
- * the fractional tax to a whole minor unit (#2401).
80
+ * Line amount in integer minor units: net of discount and before tax for
81
+ * `exclusive` / `none` documents, and tax-inclusive for `inclusive` ones;
82
+ * {@link taxAmount} holds the tax. Derived by the Contract money aggregate
83
+ * on every save.
83
84
  */
84
85
  amount: number;
85
86
  /**
@@ -107,19 +108,10 @@ export declare class ContractLineItem extends SmrtObject {
107
108
  */
108
109
  sortOrder: number;
109
110
  constructor(options?: ContractLineItemOptions);
110
- /**
111
- * Calculate the line amount, in integer minor units.
112
- *
113
- * `quantity` is decimal and `taxRate` is a fraction, so the product is not
114
- * generally a whole number of minor units. Rounding happens here — at the
115
- * one boundary where a rate meets money — so that every value that reaches a
116
- * money column is already exact and every downstream comparison can be a
117
- * plain `===` instead of an epsilon tolerance (#2401).
118
- */
119
- calculateAmount(): number;
111
+ initialize(): Promise<this>;
120
112
  save(): Promise<this>;
121
113
  /** @internal Contract aggregate persistence only. */
122
- saveDerived(capability: DocumentMoneyWriteCapability, legacy: boolean): Promise<this>;
114
+ saveDerived(capability: DocumentMoneyWriteCapability): Promise<this>;
123
115
  delete(options?: {
124
116
  expectedUpdatedAt?: Date | string;
125
117
  }): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ContractLineItem.d.ts","sourceRoot":"","sources":["../../src/models/ContractLineItem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAGL,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;GAgBG;AACH,qBAOa,gBAAiB,SAAQ,UAAU;IAC9C,4EAA4E;IAC5E,eAAe,CACb,UAAU,EAAE,iCAAiC,EAC7C,EAAE,EAAE,iBAAiB,GACpB,IAAI;IAUP;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAGH,UAAU,EAAE,MAAM,CAAM;IAExB;;OAEG;IAEH,WAAW,EAAE,MAAM,CAAM;IAEzB;;;OAGG;IAEH,QAAQ,EAAE,MAAM,CAAO;IAEvB;;;;;;OAMG;IAKH,SAAS,EAAE,MAAM,CAAK;IAEtB;;OAEG;IAEH,QAAQ,EAAE,MAAM,CAAK;IAErB,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAU;IAGrD,YAAY,SAAS;IAErB;;;OAGG;IAKH,OAAO,EAAE,MAAM,CAAO;IAEtB,OAAO,EAAE,SAAS,GAAG,UAAU,CAAa;IAG5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAExC,IAAI,aAAa,IAAI,4BAA4B,EAAE,CAoBlD;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,4BAA4B,EAAE,EAEtD;IAED,mEAAmE;IACnE,SAAS,SAAK;IAEd,0DAA0D;IAE1D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEnC,yEAAyE;IACzE,eAAe,SAAM;IAErB;;;;OAIG;IAEH,MAAM,EAAE,MAAM,CAAK;IAEnB;;OAEG;IAKH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAM;IAEjB;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE9B;;OAEG;IACH,OAAO,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE5B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAM;IAE3B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAK;gBAEV,OAAO,GAAE,uBAA4B;IAuCjD;;;;;;;;OAQG;IACH,eAAe,IAAI,MAAM;IAMV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,qDAAqD;IAC/C,WAAW,CACf,UAAU,EAAE,4BAA4B,EACxC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC;IAOD,MAAM,CACnB,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;IAKhB,qDAAqD;IAC/C,aAAa,CACjB,UAAU,EAAE,4BAA4B,EACxC,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,oBAAoB,IAAI,OAAO;CAUhC;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"ContractLineItem.d.ts","sourceRoot":"","sources":["../../src/models/ContractLineItem.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAGL,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EAClC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;GAgBG;AACH,qBAOa,gBAAiB,SAAQ,UAAU;IAC9C,4EAA4E;IAC5E,eAAe,CACb,UAAU,EAAE,iCAAiC,EAC7C,EAAE,EAAE,iBAAiB,GACpB,IAAI;IAUP;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAGH,UAAU,EAAE,MAAM,CAAM;IAExB;;OAEG;IAEH,WAAW,EAAE,MAAM,CAAM;IAEzB;;;OAGG;IAEH,QAAQ,EAAE,MAAM,CAAO;IAEvB;;;;;;;;OAQG;IAMH,SAAS,EAAE,MAAM,CAAK;IAEtB;;OAEG;IAEH,QAAQ,EAAE,MAAM,CAAK;IAErB,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAU;IAGrD,YAAY,SAAS;IAErB;;;OAGG;IAKH,OAAO,EAAE,MAAM,CAAO;IAEtB,OAAO,EAAE,SAAS,GAAG,UAAU,CAAa;IAG5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAExC,IAAI,aAAa,IAAI,4BAA4B,EAAE,CAoBlD;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,4BAA4B,EAAE,EAEtD;IAED,mEAAmE;IAEnE,SAAS,SAAK;IAEd,yEAAyE;IACzE,eAAe,SAAM;IAErB;;;;;OAKG;IAMH,MAAM,EAAE,MAAM,CAAK;IAEnB;;OAEG;IAKH,SAAS,EAAE,MAAM,CAAM;IAEvB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAM;IAEjB;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE9B;;OAEG;IACH,OAAO,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE5B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAM;IAE3B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAK;gBAEV,OAAO,GAAE,uBAA4B;IAqClC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,qDAAqD;IAC/C,WAAW,CAAC,UAAU,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3D,MAAM,CACnB,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;IAKhB,qDAAqD;IAC/C,aAAa,CACjB,UAAU,EAAE,4BAA4B,EACxC,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,oBAAoB,IAAI,OAAO;CAUhC;AAED,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentTax.d.ts","sourceRoot":"","sources":["../../src/models/DocumentTax.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,OAAO,EAEL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AACD,qBAaa,WAAY,SAAQ,UAAU;IAEzC,QAAQ,SAAM;IAGd,YAAY,EAAE,oBAAoB,CAAa;IAG/C,UAAU,SAAM;IAGhB,QAAQ,SAAS;IAGjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGhC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGlC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAQ;IAGhC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGrC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGvC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGzC,YAAY,SAAK;IAGjB,QAAQ,SAAK;IAGb,gBAAgB,SAAK;gBAET,OAAO,GAAE,kBAAuB;IAyB5C,OAAO,CAAC,qBAAqB;IAwFd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,MAAM,CACnB,QAAQ,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GACnD,OAAO,CAAC,IAAI,CAAC;IAOhB,4CAA4C;IACtC,WAAW,CAAC,UAAU,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1E,4CAA4C;IACtC,aAAa,CACjB,UAAU,EAAE,4BAA4B,EACxC,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;CASjB"}
1
+ {"version":3,"file":"DocumentTax.d.ts","sourceRoot":"","sources":["../../src/models/DocumentTax.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAEvE,OAAO,EAEL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAE1E,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AACD,qBAaa,WAAY,SAAQ,UAAU;IAEzC,QAAQ,SAAM;IAGd,YAAY,EAAE,oBAAoB,CAAa;IAG/C,UAAU,SAAM;IAGhB,QAAQ,SAAS;IAGjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGhC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGlC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAQ;IAGhC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGrC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGvC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMzC,YAAY,SAAK;IAMjB,QAAQ,SAAK;IAMb,gBAAgB,SAAK;gBAET,OAAO,GAAE,kBAAuB;IAyB5C,OAAO,CAAC,qBAAqB;IAwFd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,MAAM,CACnB,QAAQ,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GACnD,OAAO,CAAC,IAAI,CAAC;IAOhB,4CAA4C;IACtC,WAAW,CAAC,UAAU,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1E,4CAA4C;IACtC,aAAa,CACjB,UAAU,EAAE,4BAA4B,EACxC,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;CASjB"}
@@ -215,27 +215,19 @@ export declare class Invoice extends SmrtObject {
215
215
  * raw mass-assignment on the generated CRUD routes.
216
216
  *
217
217
  * Behaviour:
218
- * - **Totals are authoritative from line items.** When the invoice is
219
- * persisted and has line items, `subtotal` / `taxAmount` / `totalAmount`
220
- * are recomputed from those items, overriding whatever the caller sent.
221
- * This blocks "create real line items but claim a tiny total" forgery.
222
- * - **Without line items**, the caller-supplied totals are accepted but the
223
- * `totalAmount === subtotal + taxAmount` arithmetic invariant is enforced.
218
+ * - **Totals are authoritative from line items.** A draft's `subtotal` /
219
+ * `discountTotal` / `taxAmount` / `totalAmount` are recomputed from its
220
+ * lines and tax codes on every save, whatever the caller sent; a new
221
+ * invoice with no lines starts at zero. Issued invoices are frozen.
224
222
  * - **amountPaid is derived/validated.** When persisted, it is recomputed
225
223
  * from PaymentAllocations rather than trusted from the caller. It may
226
- * never exceed `totalAmount`.
227
- * - **Whole minor units and non-negativity** are enforced on all four
228
- * amounts. The integer check runs FIRST (#2401), before the
229
- * `totalAmount === subtotal + taxAmount` invariant, so a caller who wrote
230
- * major units gets "money is minor units" rather than a confusing
231
- * arithmetic-mismatch error from float addition.
224
+ * never exceed `totalAmount`, and a new invoice cannot start paid.
225
+ * - **Whole minor units and non-negativity** are enforced on all amounts.
232
226
  * - **Status transitions** are validated against the prior persisted status.
233
227
  */
234
228
  save(): Promise<this>;
235
229
  /** @internal Aggregate persistence only. */
236
- saveDerived(capability: DocumentMoneyWriteCapability, options: {
237
- recomputeLegacy: boolean;
238
- }): Promise<this>;
230
+ saveDerived(capability: DocumentMoneyWriteCapability): Promise<this>;
239
231
  delete(options?: {
240
232
  expectedUpdatedAt?: Date | string;
241
233
  }): Promise<void>;
@@ -253,13 +245,6 @@ export declare class Invoice extends SmrtObject {
253
245
  * treated as an update. `undefined` means no row exists (genuinely new).
254
246
  */
255
247
  private resolvePriorStatus;
256
- /**
257
- * Recompute subtotal/tax/total from line items (when present) and derive
258
- * amountPaid from PaymentAllocations. Falls back to the arithmetic invariant
259
- * when the invoice has no line items. Tolerant of smrt-ledgers being absent
260
- * (the dynamic imports stay inside the package).
261
- */
262
- private recomputeAmountsForSave;
263
248
  private recomputeAmountPaid;
264
249
  /**
265
250
  * Whether `amountPaid` covers `totalAmount`. This is the SINGLE source of
@@ -300,19 +285,6 @@ export declare class Invoice extends SmrtObject {
300
285
  private assertPaymentStatusConsistent;
301
286
  /** A payment reversal cannot erase an actual delivery event. */
302
287
  private assertDraftDeliveryHistory;
303
- /**
304
- * Enforce `totalAmount === subtotal + taxAmount` exactly. Used when the
305
- * invoice has no line items to recompute from.
306
- *
307
- * Exact because every term is integer minor units (#2401). The float era
308
- * needed a `0.01` tolerance here and then had to SNAP `totalAmount` to the
309
- * recomputed value afterwards, because a total that passed the invoice's
310
- * loose tolerance could still fail smrt-ledgers' tighter `BALANCE_EPSILON`
311
- * and void the journal `recognizeRevenue` builds from it. Integer arithmetic
312
- * removes both halves of that workaround: what the caller supplied either is
313
- * the sum or is rejected, and any journal built from it balances exactly.
314
- */
315
- private assertTotalArithmetic;
316
288
  /**
317
289
  * Reject amounts that are not whole minor units, negative financial values,
318
290
  * and an amountPaid that exceeds the total (overpayment is modelled
@@ -378,31 +350,30 @@ export declare class Invoice extends SmrtObject {
378
350
  * Cancel the invoice
379
351
  */
380
352
  cancel(): void;
381
- /** Cancel a posted money-v2 invoice with an exact atomic journal reversal. */
382
- cancelWithRevenueReversal(options: CancelRevenueOptions): Promise<Journal | null>;
353
+ /** Cancel a posted invoice with an exact atomic journal reversal. */
354
+ cancelWithRevenueReversal(options: CancelRevenueOptions): Promise<Journal>;
383
355
  /**
384
356
  * Write off the invoice (bad debt)
385
357
  */
386
358
  writeOff(): void;
387
359
  /**
388
- * Recognize revenue and create AR journal entry.
389
- *
390
- * Creates a balanced journal entry in smrt-ledgers:
391
- * - Debit: Accounts Receivable (assets increase)
392
- * - Credit: Revenue (revenue increases)
393
- * - Credit: Tax Payable (liability increases, if taxAmount > 0)
360
+ * Post the issued invoice's revenue journal from its frozen money facts.
394
361
  *
395
- * **Note**: This method saves the invoice after setting arJournalId.
362
+ * Debits accounts receivable with the stored total, credits each line's
363
+ * revenue account (or `revenueAccountId`) and each tax component's
364
+ * liability account (or `taxAccountId`), then links the journal to the
365
+ * invoice atomically. The invoice must be issued (frozen).
396
366
  *
397
- * @param options - Account IDs for the journal entry
398
- * @returns The created journal
367
+ * @param options - Account IDs and the ledger book currency
368
+ * @returns The posted journal
399
369
  *
400
370
  * @example
401
371
  * ```typescript
402
372
  * const journal = await invoice.recognizeRevenue({
403
373
  * arAccountId: '1120',
404
374
  * revenueAccountId: '4100',
405
- * taxAccountId: '2130'
375
+ * taxAccountId: '2130',
376
+ * bookCurrency: 'CAD',
406
377
  * });
407
378
  * ```
408
379
  */
@@ -432,7 +403,6 @@ export declare class Invoice extends SmrtObject {
432
403
  * ```
433
404
  */
434
405
  toAccountingInput(options?: FrozenInvoiceAccountingOptions): Promise<AccountingInvoiceInput>;
435
- private toAccountingInputLocked;
436
406
  }
437
407
  export default Invoice;
438
408
  //# sourceMappingURL=Invoice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Invoice.d.ts","sourceRoot":"","sources":["../../src/models/Invoice.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAIL,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,6BAA6B,CAAC;AAO7E,OAAO,EAGL,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAEpF,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AA8F3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAkDa,OAAQ,SAAQ,UAAU;IACrC,4EAA4E;IAC5E,eAAe,CACb,UAAU,EAAE,iCAAiC,EAC7C,EAAE,EAAE,iBAAiB,GACpB,IAAI;IAYP,IAAI,EAAE,WAAW,CAAa;IAG9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAExC,qEAAqE;IACrE,cAAc,SAAK;IAEnB;;;OAGG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAGH,UAAU,EAAE,MAAM,CAAM;IAExB;;OAEG;IAKH,UAAU,EAAE,MAAM,CAAM;IAMxB;;;OAGG;IAEH,aAAa,EAAE,MAAM,CAAM;IAE3B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAM;IAMvB;;OAEG;IAEH,SAAS,EAAE,IAAI,CAAc;IAE7B;;OAEG;IAEH,OAAO,EAAE,IAAI,CAAc;IAE3B;;OAEG;IAEH,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IAM7B;;;;;;;;OAQG;IAEH,QAAQ,EAAE,MAAM,CAAK;IAErB;;;OAGG;IAEH,SAAS,EAAE,MAAM,CAAK;IAEtB;;;;;;OAMG;IAEH,iBAAiB,EAAE,MAAM,CAAK;IAE9B;;OAEG;IAKH,WAAW,EAAE,MAAM,CAAK;IAExB;;OAEG;IAKH,UAAU,EAAE,MAAM,CAAK;IAEvB;;OAEG;IAKH,QAAQ,EAAE,MAAM,CAAS;IAEzB,kEAAkE;IAClE,cAAc,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,CAAe;IAEjE,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAU;IAE/C,oEAAoE;IACpE,aAAa,SAAK;IAElB,4EAA4E;IAC5E,0BAA0B,SAAQ;IAElC,IAAI,sBAAsB,IAAI,sBAAsB,EAAE,CAgBrD;IAED,IAAI,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAEzD;IAED,8DAA8D;IAC9D,UAAU,SAAM;IAEhB,yEAAyE;IACzE,eAAe,SAAM;IAMrB;;OAEG;IAKH,MAAM,EAAE,aAAa,CAAuB;IAM5C;;OAEG;IAEH,WAAW,EAAE,MAAM,CAAM;IAEzB,wEAAwE;IAExE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1C;;OAEG;IAEH,gBAAgB,EAAE,MAAM,CAAM;IAM9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAM;IAExB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAM;IAEhC;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAM;IAE9B;;OAEG;IACH,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE7B,kFAAkF;IAElF,uBAAuB,SAAM;IAE7B;;;;;;OAMG;IACH,gBAAgB,EAAE,uBAAuB,CAAM;IAM/C;;OAEG;IACH,MAAM,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE3B;;OAEG;IACH,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE7B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAK;IAE1B;;OAEG;IACH,cAAc,EAAE,IAAI,GAAG,IAAI,CAAQ;IAMnC;;OAEG;IAKH,KAAK,EAAE,MAAM,CAAM;IAEnB;;OAEG;IAKH,aAAa,EAAE,MAAM,CAAM;IAE3B;;OAEG;IAKH,KAAK,EAAE,MAAM,CAAM;gBAEP,OAAO,GAAE,cAAmB;IAoExC;;;;;;;OAOG;IACY,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY1C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,4CAA4C;IACtC,WAAW,CACf,UAAU,EAAE,4BAA4B,EACxC,OAAO,EAAE;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IAsBD,MAAM,CACnB,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;IAKhB,4CAA4C;IACtC,aAAa,CACjB,UAAU,EAAE,4BAA4B,EACxC,OAAO,GAAE;QAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAO,GAClD,OAAO,CAAC,IAAI,CAAC;IAMhB;;;;;;;;OAQG;YACW,kBAAkB;IAgBhC;;;;;OAKG;YACW,uBAAuB;YAkEvB,mBAAmB;IAcjC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,6BAA6B;IAwCrC,gEAAgE;YAClD,0BAA0B;IAmBxC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,wBAAwB;IA4BhC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,IAAI,OAAO;IAMpB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB,uEAAuE;IACvE,UAAU,IAAI,MAAM;IAQpB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAmBhB;;;;;;;OAOG;IACH,UAAU,IAAI,IAAI;IAQlB;;;;;;;OAOG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAoC7C;;OAEG;IACH,MAAM,IAAI,IAAI;IAYd,8EAA8E;IACxE,yBAAyB,CAC7B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAO1B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAQhB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAwG1E;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAiB7C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,iBAAiB,CACrB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,sBAAsB,CAAC;YAgBpB,uBAAuB;CAgEtC;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Invoice.d.ts","sourceRoot":"","sources":["../../src/models/Invoice.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,7 @@
5
5
  import { SmrtObject } from '@happyvertical/smrt-core';
6
6
  import type { DatabaseInterface } from '@happyvertical/smrt-core/migrations';
7
7
  import { type DocumentMoneyReadRebindCapability, type DocumentMoneyWriteCapability } from '../document-money-internal.js';
8
- import { type InvoiceCalculationContext, type InvoiceLineDraft } from '../svelte/invoices/calculations.js';
9
- import type { AccountingLineItemInput, InvoiceCreditCalculationBasis, InvoiceLineEditorState, InvoiceLineItemOptions, InvoiceTaxComponentSnapshot } from '../types/index.js';
8
+ import type { InvoiceCreditCalculationBasis, InvoiceLineItemOptions, InvoiceTaxComponentSnapshot } from '../types/index.js';
10
9
  /**
11
10
  * InvoiceLineItem represents a single line item on an invoice.
12
11
  *
@@ -55,14 +54,10 @@ export declare class InvoiceLineItem extends SmrtObject {
55
54
  productId: string | null;
56
55
  /** Nonnegative decimal quantity (hours, weight, units), up to six fractional digits. */
57
56
  quantity: number;
58
- /** Raw editor modes retained only while they resolve to the authoritative model fields. */
59
- invoiceEditorStateJson: string;
60
- /** Guarded editor metadata view; malformed stored JSON is treated as absent. */
61
- get invoiceEditorState(): InvoiceLineEditorState | null;
62
- /** Store only this model's editor state, preserving unrelated metadata. */
63
- set invoiceEditorState(value: InvoiceLineEditorState | null);
64
- /**
65
- * Unit price before discount, in **integer minor units** (cents, satoshis).
57
+ /**
58
+ * Unit price before discount, in **integer minor units** (cents, satoshis),
59
+ * in the document's pricing mode: tax-inclusive when its `lineAmountType`
60
+ * is `inclusive`.
66
61
  *
67
62
  * Money is exact, so it is stored as minor units and never as a float —
68
63
  * `$19.99` is `1999`. An integer literal is what maps this to an INTEGER
@@ -90,12 +85,14 @@ export declare class InvoiceLineItem extends SmrtObject {
90
85
  taxComponentsJson: string | null;
91
86
  get taxComponents(): InvoiceTaxComponentSnapshot[];
92
87
  set taxComponents(value: InvoiceTaxComponentSnapshot[]);
88
+ /** Exact sum of frozen component taxes, in integer minor units. */
93
89
  taxAmount: number;
94
- legacyAmount: number | null;
95
90
  /** Stable document snapshot identity; ordinary lifecycle saves do not change it. */
96
91
  moneySnapshotId: string;
97
92
  /**
98
- * Calculated line amount, in integer minor units (#2361).
93
+ * Calculated line amount, in integer minor units (#2361): net of discount
94
+ * and before tax for `exclusive` / `none` documents, and tax-inclusive for
95
+ * `inclusive` ones; {@link taxAmount} holds the tax.
99
96
  */
100
97
  amount: number;
101
98
  /**
@@ -124,20 +121,12 @@ export declare class InvoiceLineItem extends SmrtObject {
124
121
  */
125
122
  sortOrder: number;
126
123
  constructor(options?: InvoiceLineItemOptions);
127
- /** Calculate exact safe integer-minor totals, rounding gross and tax ties toward positive infinity. */
128
- calculateAmount(): number;
129
- /** Rounded quantity times price, less the resolved flat minor-unit discount. */
130
- getSubtotal(): number;
131
- /** Tax on the rounded discounted subtotal, in safe integer minor units. */
132
- getTaxAmount(): number;
133
- /** Apply a server-validated draft without saving; authorization and transaction stay caller-owned. */
134
- applyEditorDraft(draft: InvoiceLineDraft, context: InvoiceCalculationContext): void;
135
- /** Recover original editing modes only when current authority and resolved model fields agree. */
136
- getEditorDraft(authorizedContext: InvoiceCalculationContext): InvoiceLineDraft | null;
137
- /** Validate resolved fields and recompute amount before persistence; editor metadata never determines money. */
124
+ /** Refuse an old-format row read from the database. */
125
+ initialize(): Promise<this>;
126
+ /** Persist through the invoice money aggregate. */
138
127
  save(): Promise<this>;
139
128
  /** @internal Aggregate persistence only. */
140
- saveDerived(capability: DocumentMoneyWriteCapability, legacy: boolean): Promise<this>;
129
+ saveDerived(capability: DocumentMoneyWriteCapability): Promise<this>;
141
130
  delete(options?: {
142
131
  expectedUpdatedAt?: Date | string;
143
132
  }): Promise<void>;
@@ -153,14 +142,6 @@ export declare class InvoiceLineItem extends SmrtObject {
153
142
  * Check if line item has a service period
154
143
  */
155
144
  hasPeriod(): boolean;
156
- /**
157
- * Convert to line item format for SDK accounting provider.
158
- *
159
- * `@happyvertical/accounting` takes currency **major** units. Pass the
160
- * invoice currency to convert (as {@link Invoice.toAccountingInput} does);
161
- * without it, money stays in this package's integer minor units.
162
- */
163
- toAccountingLineItem(currency?: string): AccountingLineItemInput;
164
145
  }
165
146
  export default InvoiceLineItem;
166
147
  //# sourceMappingURL=InvoiceLineItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvoiceLineItem.d.ts","sourceRoot":"","sources":["../../src/models/InvoiceLineItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InvoiceLineItem.d.ts","sourceRoot":"","sources":["../../src/models/InvoiceLineItem.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { SmrtObject } from '@happyvertical/smrt-core';
2
- import { type MoneyMigrationWriteCapability } from '../document-money-internal.js';
3
2
  import type { TaxSettingsOptions } from '../types/index.js';
4
3
  export interface TaxRegistration {
5
4
  taxComponentId: string;
@@ -15,19 +14,10 @@ export declare class TaxSettings extends SmrtObject {
15
14
  taxRoundingScope: 'line' | 'document';
16
15
  /** Stored JSON is guarded through the typed accessor below. */
17
16
  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
17
  get taxRegistrations(): TaxRegistration[];
23
18
  set taxRegistrations(value: TaxRegistration[] | string);
24
19
  constructor(options?: TaxSettingsOptions);
25
20
  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
21
  private parsedRegistrations;
32
22
  }
33
23
  //# sourceMappingURL=TaxSettings.d.ts.map
@@ -1 +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"}
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,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,IAMI,gBAAgB,IAAI,eAAe,EAAE,CAexC;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,EAGrD;gBAEW,OAAO,GAAE,kBAAuB;IAe7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4DpC,OAAO,CAAC,mBAAmB;CAoB5B"}
@@ -3,7 +3,7 @@
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
9
  export { type CommerceDocumentType, DocumentTax, type DocumentTaxOptions, } from './DocumentTax.js';
@@ -11,7 +11,6 @@ export { Fulfillment } from './Fulfillment.js';
11
11
  export { FulfillmentLineItem } from './FulfillmentLineItem.js';
12
12
  export { Invoice } from './Invoice.js';
13
13
  export { InvoiceLineItem } from './InvoiceLineItem.js';
14
- export { MoneyMigrationDocument, type MoneyMigrationDocumentOptions, type MoneyMigrationDocumentState, type MoneyMigrationDocumentType, } from './MoneyMigrationDocument.js';
15
14
  export { Payment } from './Payment.js';
16
15
  export { PaymentAllocation } from './PaymentAllocation.js';
17
16
  export { PaymentInstrument } from './PaymentInstrument.js';
@@ -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,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"}
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,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"}
@@ -281,7 +281,7 @@ var playground_default = {
281
281
  {
282
282
  id: "invoice-preparation",
283
283
  title: "Invoice Preparation",
284
- description: "Edit invoice lines, prices, discounts and tax, with optional source allocations and retained rejection recovery.",
284
+ description: "Edit invoice lines, prices and discounts with tax codes; issued invoices show their frozen stored totals.",
285
285
  loadComponent: () => import("./svelte/playground/InvoicePreparationPreview.svelte"),
286
286
  order: 7,
287
287
  props: {},
@@ -1 +1 @@
1
- {"version":3,"file":"playground.js","names":[],"sources":["../src/svelte/playground.ts"],"sourcesContent":["import { COMMERCE_MODULE_META } from '../ui.js';\n\nconst noop = () => {};\n\nconst sampleInvoice = {\n id: 'invoice-2026-0142',\n invoiceNumber: 'INV-2026-0142',\n status: 'sent',\n issueDate: '2026-03-15T00:00:00.000Z',\n dueDate: '2026-03-29T00:00:00.000Z',\n totalAmount: 128450,\n customerName: 'Riverstone Newsroom',\n projectName: 'Editorial Systems Retainer',\n};\n\nconst sampleUnbilledItems = [\n {\n id: 'unbilled-time-1',\n type: 'time',\n description: 'Governance workflow setup',\n date: '2026-03-12T00:00:00.000Z',\n amount: 42000,\n category: 'Implementation',\n selected: true,\n },\n {\n id: 'unbilled-expense-1',\n type: 'expense',\n description: 'Contributor QA workshop',\n date: '2026-03-14T00:00:00.000Z',\n amount: 18500,\n category: 'Training',\n },\n {\n id: 'unbilled-time-2',\n type: 'time',\n description: 'Release validation and docs cleanup',\n date: '2026-03-18T00:00:00.000Z',\n amount: 33950,\n category: 'QA',\n },\n];\n\nconst sampleCustomer = {\n id: 'customer-riverstone',\n profileId: 'profile-riverstone',\n profile: {\n id: 'profile-riverstone',\n name: 'Riverstone Newsroom',\n email: 'accounts@riverstone.example',\n description: 'Independent newsroom and publishing customer.',\n identityKind: 'business',\n },\n status: 'active',\n customerType: 'wholesale',\n creditLimitMinor: 250000,\n paymentTerms: 'Net 30',\n taxExempt: false,\n defaultShippingAddress: {\n street1: '88 River Avenue',\n city: 'Edmonton',\n state: 'AB',\n postalCode: 'T5J 0K1',\n country: 'Canada',\n },\n contacts: [\n {\n id: 'contact-avery',\n name: 'Avery Chen',\n label: 'Accounts payable',\n email: 'avery@riverstone.example',\n phone: '+1 780 555 0142',\n },\n ],\n};\n\nconst sampleVendor = {\n id: 'vendor-northstar',\n profileId: 'profile-northstar',\n profile: {\n id: 'profile-northstar',\n name: 'Northstar Supply',\n email: 'orders@northstar.example',\n description: 'Regional materials and equipment supplier.',\n identityKind: 'business',\n },\n status: 'active',\n leadTimeDays: 7,\n minimumOrderMinor: 50000,\n paymentTerms: 'Net 45',\n currency: 'CAD',\n defaultContactEmail: 'orders@northstar.example',\n defaultContactPhone: '+1 403 555 0188',\n contacts: [\n {\n id: 'contact-morgan',\n name: 'Morgan Lee',\n label: 'Order desk',\n email: 'morgan@northstar.example',\n phone: '+1 403 555 0117',\n },\n ],\n};\n\nconst loadCustomerDirectory = () =>\n import('./components/CustomerDirectory.svelte');\nconst loadCustomerDetail = () => import('./components/CustomerDetail.svelte');\nconst loadPartySelectPreview = () =>\n import('./playground/PartySelectPreview.svelte');\nconst loadPartyFormPreview = () =>\n import('./playground/PartyFormPreview.svelte');\nconst loadInvoiceActions = () => import('./components/InvoiceActions.svelte');\nconst loadInvoiceCard = () => import('./components/InvoiceCard.svelte');\nconst loadUnbilledItems = () => import('./components/UnbilledItems.svelte');\nconst loadVendorDirectory = () => import('./components/VendorDirectory.svelte');\nconst loadVendorDetail = () => import('./components/VendorDetail.svelte');\n\nexport default {\n packageName: '@happyvertical/smrt-commerce',\n displayName: COMMERCE_MODULE_META.displayName,\n description: COMMERCE_MODULE_META.description,\n moduleMeta: COMMERCE_MODULE_META,\n entries: [\n {\n id: 'purchase-order-header-form',\n title: 'Purchase order header',\n description:\n 'Retained delivery header with caller-owned validation and native transport.',\n loadComponent: () =>\n import('./components/PurchaseOrderHeaderForm.svelte'),\n order: 32,\n props: {\n action: '#',\n readonly: true,\n vendors: [{ value: 'vendor-1', label: 'North Studio' }],\n values: {\n vendorId: 'vendor-1',\n reference: 'PO-104',\n expectedDate: '2026-11-02',\n shipTo: 'Receiving dock',\n notes: 'Call before delivery',\n },\n },\n modes: { mock: { label: 'Header preview' } },\n },\n {\n id: 'purchase-order-editor',\n title: 'Purchase and award preparation',\n description:\n 'Native allocation entry, review and retained uncertain-response recovery.',\n loadComponent: () => import('./components/PurchasingPlayground.svelte'),\n order: 30,\n props: { reduction: false },\n modes: { mock: { label: 'Interactive demo' } },\n },\n {\n id: 'purchase-reduction',\n title: 'Explicit allocation reduction',\n description:\n 'Every retained allocation remains present; zero is explicit, never inferred from blank.',\n loadComponent: () => import('./components/PurchasingPlayground.svelte'),\n order: 31,\n props: { reduction: true },\n modes: { mock: { label: 'Interactive demo' } },\n },\n\n {\n id: 'quote-editor',\n title: 'Vendor quotation editor',\n description:\n 'Edit, add/remove rows and recover a simulated rejected native submission.',\n loadComponent: () => import('./components/QuotePlayground.svelte'),\n order: 20,\n props: { kind: 'vendor-quotation' },\n modes: { mock: { label: 'Interactive demo' } },\n },\n {\n id: 'customer-estimate-editor',\n title: 'Customer estimate editor',\n description:\n 'Customer estimate draft and retained revision comparison, without acceptance or budget writes.',\n loadComponent: () => import('./components/QuotePlayground.svelte'),\n order: 21,\n props: { kind: 'customer-estimate' },\n modes: { mock: { label: 'Interactive demo' } },\n },\n\n {\n id: 'pricing-version-decision',\n title: 'Pricing version decisions',\n description:\n 'Compare retained estimates and rehearse a rejected decision without losing input.',\n loadComponent: () => import('./playground/PricingVersionPreview.svelte'),\n order: 30,\n props: {},\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'customer-directory',\n title: 'Customer Directory',\n description:\n 'Search, paging, responsive cards, and consumer-owned links.',\n loadComponent: loadCustomerDirectory,\n order: 1,\n props: {\n items: [{ data: sampleCustomer, href: '#customer-detail' }],\n total: 26,\n page: 1,\n pageSize: 25,\n nextHref: '#customer-page-2',\n addHref: '#add-customer',\n canCreate: true,\n },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'customer-detail',\n title: 'Customer Detail',\n description:\n 'Profile identity, commercial terms, addresses, and contacts.',\n loadComponent: loadCustomerDetail,\n order: 2,\n props: {\n customer: sampleCustomer,\n currency: 'CAD',\n backHref: '#customers',\n editHref: '#edit-customer',\n canEdit: true,\n },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'customer-form',\n title: 'Customer Form',\n description:\n 'Native create/edit submission with retained values and contacts.',\n loadComponent: loadPartyFormPreview,\n order: 3,\n props: { kind: 'customer' },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'vendor-directory',\n title: 'Vendor Directory',\n description:\n 'Search, paging, empty/error states, and consumer-owned links.',\n loadComponent: loadVendorDirectory,\n order: 4,\n props: {\n items: [{ data: sampleVendor, href: '#vendor-detail' }],\n total: 1,\n addHref: '#add-vendor',\n canCreate: true,\n },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'vendor-detail',\n title: 'Vendor Detail',\n description:\n 'Profile identity, purchasing terms, and contact composition.',\n loadComponent: loadVendorDetail,\n order: 5,\n props: {\n vendor: sampleVendor,\n backHref: '#vendors',\n editHref: '#edit-vendor',\n canEdit: true,\n },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'vendor-form',\n title: 'Vendor Form',\n description:\n 'Native create/edit submission with retained currency text and contacts.',\n loadComponent: loadPartyFormPreview,\n order: 6,\n props: { kind: 'vendor' },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'customer-select',\n title: 'Customer Select',\n description:\n 'Searchable customer picker with status and type, resolving the current value and offering a new-customer action.',\n loadComponent: loadPartySelectPreview,\n order: 10,\n props: { kind: 'customer' },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'vendor-select',\n title: 'Vendor Select',\n description:\n 'Searchable vendor picker with status; the caller supplies the lookup.',\n loadComponent: loadPartySelectPreview,\n order: 11,\n props: { kind: 'vendor' },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'invoice-preparation',\n title: 'Invoice Preparation',\n description:\n 'Edit invoice lines, prices, discounts and tax, with optional source allocations and retained rejection recovery.',\n loadComponent: () =>\n import('./playground/InvoicePreparationPreview.svelte'),\n order: 7,\n props: {},\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'invoice-card',\n title: 'Invoice Card',\n description:\n 'Compact invoice summary card used in billing and receivables views.',\n loadComponent: loadInvoiceCard,\n order: 20,\n props: {\n invoice: sampleInvoice,\n currency: 'CAD',\n onclick: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'invoice-actions',\n title: 'Invoice Actions',\n description:\n 'Status-aware billing actions for sending, printing, exporting, and payment confirmation.',\n loadComponent: loadInvoiceActions,\n order: 21,\n props: {\n status: 'sent',\n onmarkpaid: noop,\n onprint: noop,\n onexport: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'unbilled-items',\n title: 'Unbilled Items',\n description:\n 'Selectable unbilled work list for creating a new invoice from accumulated items.',\n loadComponent: loadUnbilledItems,\n order: 22,\n props: {\n items: sampleUnbilledItems,\n currency: 'CAD',\n onselectionchange: noop,\n oncreate: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n ],\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"playground.js","names":[],"sources":["../src/svelte/playground.ts"],"sourcesContent":["import { COMMERCE_MODULE_META } from '../ui.js';\n\nconst noop = () => {};\n\nconst sampleInvoice = {\n id: 'invoice-2026-0142',\n invoiceNumber: 'INV-2026-0142',\n status: 'sent',\n issueDate: '2026-03-15T00:00:00.000Z',\n dueDate: '2026-03-29T00:00:00.000Z',\n totalAmount: 128450,\n customerName: 'Riverstone Newsroom',\n projectName: 'Editorial Systems Retainer',\n};\n\nconst sampleUnbilledItems = [\n {\n id: 'unbilled-time-1',\n type: 'time',\n description: 'Governance workflow setup',\n date: '2026-03-12T00:00:00.000Z',\n amount: 42000,\n category: 'Implementation',\n selected: true,\n },\n {\n id: 'unbilled-expense-1',\n type: 'expense',\n description: 'Contributor QA workshop',\n date: '2026-03-14T00:00:00.000Z',\n amount: 18500,\n category: 'Training',\n },\n {\n id: 'unbilled-time-2',\n type: 'time',\n description: 'Release validation and docs cleanup',\n date: '2026-03-18T00:00:00.000Z',\n amount: 33950,\n category: 'QA',\n },\n];\n\nconst sampleCustomer = {\n id: 'customer-riverstone',\n profileId: 'profile-riverstone',\n profile: {\n id: 'profile-riverstone',\n name: 'Riverstone Newsroom',\n email: 'accounts@riverstone.example',\n description: 'Independent newsroom and publishing customer.',\n identityKind: 'business',\n },\n status: 'active',\n customerType: 'wholesale',\n creditLimitMinor: 250000,\n paymentTerms: 'Net 30',\n taxExempt: false,\n defaultShippingAddress: {\n street1: '88 River Avenue',\n city: 'Edmonton',\n state: 'AB',\n postalCode: 'T5J 0K1',\n country: 'Canada',\n },\n contacts: [\n {\n id: 'contact-avery',\n name: 'Avery Chen',\n label: 'Accounts payable',\n email: 'avery@riverstone.example',\n phone: '+1 780 555 0142',\n },\n ],\n};\n\nconst sampleVendor = {\n id: 'vendor-northstar',\n profileId: 'profile-northstar',\n profile: {\n id: 'profile-northstar',\n name: 'Northstar Supply',\n email: 'orders@northstar.example',\n description: 'Regional materials and equipment supplier.',\n identityKind: 'business',\n },\n status: 'active',\n leadTimeDays: 7,\n minimumOrderMinor: 50000,\n paymentTerms: 'Net 45',\n currency: 'CAD',\n defaultContactEmail: 'orders@northstar.example',\n defaultContactPhone: '+1 403 555 0188',\n contacts: [\n {\n id: 'contact-morgan',\n name: 'Morgan Lee',\n label: 'Order desk',\n email: 'morgan@northstar.example',\n phone: '+1 403 555 0117',\n },\n ],\n};\n\nconst loadCustomerDirectory = () =>\n import('./components/CustomerDirectory.svelte');\nconst loadCustomerDetail = () => import('./components/CustomerDetail.svelte');\nconst loadPartySelectPreview = () =>\n import('./playground/PartySelectPreview.svelte');\nconst loadPartyFormPreview = () =>\n import('./playground/PartyFormPreview.svelte');\nconst loadInvoiceActions = () => import('./components/InvoiceActions.svelte');\nconst loadInvoiceCard = () => import('./components/InvoiceCard.svelte');\nconst loadUnbilledItems = () => import('./components/UnbilledItems.svelte');\nconst loadVendorDirectory = () => import('./components/VendorDirectory.svelte');\nconst loadVendorDetail = () => import('./components/VendorDetail.svelte');\n\nexport default {\n packageName: '@happyvertical/smrt-commerce',\n displayName: COMMERCE_MODULE_META.displayName,\n description: COMMERCE_MODULE_META.description,\n moduleMeta: COMMERCE_MODULE_META,\n entries: [\n {\n id: 'purchase-order-header-form',\n title: 'Purchase order header',\n description:\n 'Retained delivery header with caller-owned validation and native transport.',\n loadComponent: () =>\n import('./components/PurchaseOrderHeaderForm.svelte'),\n order: 32,\n props: {\n action: '#',\n readonly: true,\n vendors: [{ value: 'vendor-1', label: 'North Studio' }],\n values: {\n vendorId: 'vendor-1',\n reference: 'PO-104',\n expectedDate: '2026-11-02',\n shipTo: 'Receiving dock',\n notes: 'Call before delivery',\n },\n },\n modes: { mock: { label: 'Header preview' } },\n },\n {\n id: 'purchase-order-editor',\n title: 'Purchase and award preparation',\n description:\n 'Native allocation entry, review and retained uncertain-response recovery.',\n loadComponent: () => import('./components/PurchasingPlayground.svelte'),\n order: 30,\n props: { reduction: false },\n modes: { mock: { label: 'Interactive demo' } },\n },\n {\n id: 'purchase-reduction',\n title: 'Explicit allocation reduction',\n description:\n 'Every retained allocation remains present; zero is explicit, never inferred from blank.',\n loadComponent: () => import('./components/PurchasingPlayground.svelte'),\n order: 31,\n props: { reduction: true },\n modes: { mock: { label: 'Interactive demo' } },\n },\n\n {\n id: 'quote-editor',\n title: 'Vendor quotation editor',\n description:\n 'Edit, add/remove rows and recover a simulated rejected native submission.',\n loadComponent: () => import('./components/QuotePlayground.svelte'),\n order: 20,\n props: { kind: 'vendor-quotation' },\n modes: { mock: { label: 'Interactive demo' } },\n },\n {\n id: 'customer-estimate-editor',\n title: 'Customer estimate editor',\n description:\n 'Customer estimate draft and retained revision comparison, without acceptance or budget writes.',\n loadComponent: () => import('./components/QuotePlayground.svelte'),\n order: 21,\n props: { kind: 'customer-estimate' },\n modes: { mock: { label: 'Interactive demo' } },\n },\n\n {\n id: 'pricing-version-decision',\n title: 'Pricing version decisions',\n description:\n 'Compare retained estimates and rehearse a rejected decision without losing input.',\n loadComponent: () => import('./playground/PricingVersionPreview.svelte'),\n order: 30,\n props: {},\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'customer-directory',\n title: 'Customer Directory',\n description:\n 'Search, paging, responsive cards, and consumer-owned links.',\n loadComponent: loadCustomerDirectory,\n order: 1,\n props: {\n items: [{ data: sampleCustomer, href: '#customer-detail' }],\n total: 26,\n page: 1,\n pageSize: 25,\n nextHref: '#customer-page-2',\n addHref: '#add-customer',\n canCreate: true,\n },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'customer-detail',\n title: 'Customer Detail',\n description:\n 'Profile identity, commercial terms, addresses, and contacts.',\n loadComponent: loadCustomerDetail,\n order: 2,\n props: {\n customer: sampleCustomer,\n currency: 'CAD',\n backHref: '#customers',\n editHref: '#edit-customer',\n canEdit: true,\n },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'customer-form',\n title: 'Customer Form',\n description:\n 'Native create/edit submission with retained values and contacts.',\n loadComponent: loadPartyFormPreview,\n order: 3,\n props: { kind: 'customer' },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'vendor-directory',\n title: 'Vendor Directory',\n description:\n 'Search, paging, empty/error states, and consumer-owned links.',\n loadComponent: loadVendorDirectory,\n order: 4,\n props: {\n items: [{ data: sampleVendor, href: '#vendor-detail' }],\n total: 1,\n addHref: '#add-vendor',\n canCreate: true,\n },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'vendor-detail',\n title: 'Vendor Detail',\n description:\n 'Profile identity, purchasing terms, and contact composition.',\n loadComponent: loadVendorDetail,\n order: 5,\n props: {\n vendor: sampleVendor,\n backHref: '#vendors',\n editHref: '#edit-vendor',\n canEdit: true,\n },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'vendor-form',\n title: 'Vendor Form',\n description:\n 'Native create/edit submission with retained currency text and contacts.',\n loadComponent: loadPartyFormPreview,\n order: 6,\n props: { kind: 'vendor' },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'customer-select',\n title: 'Customer Select',\n description:\n 'Searchable customer picker with status and type, resolving the current value and offering a new-customer action.',\n loadComponent: loadPartySelectPreview,\n order: 10,\n props: { kind: 'customer' },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'vendor-select',\n title: 'Vendor Select',\n description:\n 'Searchable vendor picker with status; the caller supplies the lookup.',\n loadComponent: loadPartySelectPreview,\n order: 11,\n props: { kind: 'vendor' },\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'invoice-preparation',\n title: 'Invoice Preparation',\n description:\n 'Edit invoice lines, prices and discounts with tax codes; issued invoices show their frozen stored totals.',\n loadComponent: () =>\n import('./playground/InvoicePreparationPreview.svelte'),\n order: 7,\n props: {},\n modes: { mock: { label: 'Mock' } },\n },\n {\n id: 'invoice-card',\n title: 'Invoice Card',\n description:\n 'Compact invoice summary card used in billing and receivables views.',\n loadComponent: loadInvoiceCard,\n order: 20,\n props: {\n invoice: sampleInvoice,\n currency: 'CAD',\n onclick: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'invoice-actions',\n title: 'Invoice Actions',\n description:\n 'Status-aware billing actions for sending, printing, exporting, and payment confirmation.',\n loadComponent: loadInvoiceActions,\n order: 21,\n props: {\n status: 'sent',\n onmarkpaid: noop,\n onprint: noop,\n onexport: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n {\n id: 'unbilled-items',\n title: 'Unbilled Items',\n description:\n 'Selectable unbilled work list for creating a new invoice from accumulated items.',\n loadComponent: loadUnbilledItems,\n order: 22,\n props: {\n items: sampleUnbilledItems,\n currency: 'CAD',\n onselectionchange: noop,\n oncreate: noop,\n },\n modes: {\n mock: {\n label: 'Mock',\n },\n },\n },\n ],\n};\n"],"mappings":"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"}