@powerhousedao/contributor-billing 0.1.29 → 0.1.30

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 (390) hide show
  1. package/README.md +165 -8
  2. package/dist/document-models/billing-statement/actions.d.ts +1 -0
  3. package/dist/document-models/billing-statement/actions.d.ts.map +1 -1
  4. package/dist/document-models/billing-statement/gen/document-model.d.ts.map +1 -1
  5. package/dist/document-models/billing-statement/gen/document-model.js +58 -47
  6. package/dist/document-models/billing-statement/gen/document-schema.d.ts +38 -38
  7. package/dist/document-models/billing-statement/gen/document-schema.d.ts.map +1 -1
  8. package/dist/document-models/billing-statement/gen/line-items/actions.d.ts +6 -2
  9. package/dist/document-models/billing-statement/gen/line-items/actions.d.ts.map +1 -1
  10. package/dist/document-models/billing-statement/gen/line-items/creators.d.ts +3 -2
  11. package/dist/document-models/billing-statement/gen/line-items/creators.d.ts.map +1 -1
  12. package/dist/document-models/billing-statement/gen/line-items/creators.js +2 -1
  13. package/dist/document-models/billing-statement/gen/line-items/operations.d.ts +2 -1
  14. package/dist/document-models/billing-statement/gen/line-items/operations.d.ts.map +1 -1
  15. package/dist/document-models/billing-statement/gen/ph-factories.js +1 -1
  16. package/dist/document-models/billing-statement/gen/reducer.d.ts.map +1 -1
  17. package/dist/document-models/billing-statement/gen/reducer.js +5 -1
  18. package/dist/document-models/billing-statement/gen/schema/types.d.ts +3 -0
  19. package/dist/document-models/billing-statement/gen/schema/types.d.ts.map +1 -1
  20. package/dist/document-models/billing-statement/gen/schema/zod.d.ts +2 -1
  21. package/dist/document-models/billing-statement/gen/schema/zod.d.ts.map +1 -1
  22. package/dist/document-models/billing-statement/gen/schema/zod.js +5 -0
  23. package/dist/document-models/billing-statement/gen/utils.js +2 -2
  24. package/dist/document-models/billing-statement/src/reducers/general.d.ts.map +1 -1
  25. package/dist/document-models/billing-statement/src/reducers/general.js +5 -4
  26. package/dist/document-models/billing-statement/src/reducers/line-items.d.ts.map +1 -1
  27. package/dist/document-models/billing-statement/src/reducers/line-items.js +7 -2
  28. package/dist/document-models/billing-statement/src/reducers/tags.d.ts.map +1 -1
  29. package/dist/document-models/billing-statement/src/reducers/tags.js +1 -1
  30. package/dist/document-models/billing-statement/src/tests/document-model.test.d.ts +4 -0
  31. package/dist/document-models/billing-statement/src/tests/document-model.test.d.ts.map +1 -1
  32. package/dist/document-models/billing-statement/src/tests/document-model.test.js +94 -7
  33. package/dist/document-models/billing-statement/src/tests/general.test.d.ts +2 -1
  34. package/dist/document-models/billing-statement/src/tests/general.test.d.ts.map +1 -1
  35. package/dist/document-models/billing-statement/src/tests/general.test.js +33 -88
  36. package/dist/document-models/billing-statement/src/tests/line-items.test.js +22 -125
  37. package/dist/document-models/billing-statement/src/tests/tags.test.js +13 -47
  38. package/dist/document-models/document-models.js +2 -2
  39. package/dist/document-models/expense-report/gen/document-model.d.ts.map +1 -1
  40. package/dist/document-models/expense-report/gen/document-model.js +48 -48
  41. package/dist/document-models/expense-report/gen/document-schema.d.ts +6 -6
  42. package/dist/document-models/expense-report/gen/utils.js +1 -1
  43. package/dist/document-models/expense-report/src/tests/document-model.test.d.ts +4 -0
  44. package/dist/document-models/expense-report/src/tests/document-model.test.d.ts.map +1 -1
  45. package/dist/document-models/expense-report/src/tests/document-model.test.js +94 -8
  46. package/dist/document-models/expense-report/src/tests/wallet.test.js +145 -10
  47. package/dist/document-models/index.d.ts +2 -6
  48. package/dist/document-models/index.d.ts.map +1 -1
  49. package/dist/document-models/index.js +2 -6
  50. package/dist/document-models/integrations/gen/document-model.js +33 -33
  51. package/dist/document-models/integrations/gen/document-schema.d.ts +6 -6
  52. package/dist/document-models/integrations/gen/utils.js +1 -1
  53. package/dist/document-models/integrations/src/reducers/integrations.d.ts.map +1 -1
  54. package/dist/document-models/integrations/src/reducers/integrations.js +9 -32
  55. package/dist/document-models/integrations/src/tests/document-model.test.d.ts +4 -0
  56. package/dist/document-models/integrations/src/tests/document-model.test.d.ts.map +1 -1
  57. package/dist/document-models/integrations/src/tests/document-model.test.js +91 -5
  58. package/dist/document-models/integrations/src/tests/integrations.test.js +21 -46
  59. package/dist/document-models/invoice/gen/document-model.js +147 -147
  60. package/dist/document-models/invoice/gen/document-schema.d.ts +127 -127
  61. package/dist/document-models/invoice/gen/document-schema.d.ts.map +1 -1
  62. package/dist/document-models/invoice/gen/ph-factories.d.ts.map +1 -1
  63. package/dist/document-models/invoice/gen/ph-factories.js +16 -122
  64. package/dist/document-models/invoice/gen/schema/types.d.ts +4 -4
  65. package/dist/document-models/invoice/gen/schema/types.d.ts.map +1 -1
  66. package/dist/document-models/invoice/gen/schema/zod.d.ts.map +1 -1
  67. package/dist/document-models/invoice/gen/schema/zod.js +4 -4
  68. package/dist/document-models/invoice/gen/utils.d.ts.map +1 -1
  69. package/dist/document-models/invoice/gen/utils.js +17 -123
  70. package/dist/document-models/invoice/src/reducers/general.d.ts.map +1 -1
  71. package/dist/document-models/invoice/src/reducers/general.js +34 -10
  72. package/dist/document-models/invoice/src/reducers/items.d.ts.map +1 -1
  73. package/dist/document-models/invoice/src/reducers/items.js +7 -7
  74. package/dist/document-models/invoice/src/reducers/parties.d.ts.map +1 -1
  75. package/dist/document-models/invoice/src/reducers/parties.js +96 -50
  76. package/dist/document-models/invoice/src/reducers/transitions.d.ts.map +1 -1
  77. package/dist/document-models/invoice/src/reducers/transitions.js +69 -53
  78. package/dist/document-models/invoice/src/tests/document-model.test.d.ts +4 -0
  79. package/dist/document-models/invoice/src/tests/document-model.test.d.ts.map +1 -1
  80. package/dist/document-models/invoice/src/tests/document-model.test.js +91 -4
  81. package/dist/document-models/invoice/src/tests/general.test.js +24 -26
  82. package/dist/document-models/invoice/src/tests/items.test.js +37 -17
  83. package/dist/document-models/invoice/src/tests/parties.test.js +32 -26
  84. package/dist/document-models/invoice/src/tests/transitions.test.js +52 -500
  85. package/dist/document-models/invoice/utils/statusTransitions.d.ts.map +1 -1
  86. package/dist/document-models/invoice/utils/statusTransitions.js +10 -10
  87. package/dist/editors/billing-statement/components/lineItemsTable.d.ts.map +1 -1
  88. package/dist/editors/billing-statement/components/lineItemsTable.js +32 -23
  89. package/dist/editors/billing-statement/components/objectSetTable.d.ts.map +1 -1
  90. package/dist/editors/billing-statement/components/objectSetTable.js +1 -2
  91. package/dist/editors/billing-statement/editor.d.ts +4 -0
  92. package/dist/editors/billing-statement/editor.d.ts.map +1 -1
  93. package/dist/editors/billing-statement/editor.js +34 -16
  94. package/dist/editors/billing-statement/lineItemTags/lineItemTags.d.ts.map +1 -1
  95. package/dist/editors/billing-statement/lineItemTags/lineItemTags.js +36 -37
  96. package/dist/editors/billing-statement/lineItemTags/tagMapping.d.ts.map +1 -1
  97. package/dist/editors/billing-statement/lineItemTags/tagMapping.js +28 -10
  98. package/dist/editors/clean-new-editor/components/CreateDocument.d.ts +6 -0
  99. package/dist/editors/clean-new-editor/components/CreateDocument.d.ts.map +1 -0
  100. package/dist/editors/clean-new-editor/components/CreateDocument.js +18 -0
  101. package/dist/editors/clean-new-editor/components/DriveContents.d.ts +3 -0
  102. package/dist/editors/clean-new-editor/components/DriveContents.d.ts.map +1 -0
  103. package/dist/editors/clean-new-editor/components/DriveContents.js +10 -0
  104. package/dist/editors/clean-new-editor/components/DriveExplorer.d.ts +7 -0
  105. package/dist/editors/clean-new-editor/components/DriveExplorer.d.ts.map +1 -0
  106. package/dist/editors/clean-new-editor/components/DriveExplorer.js +16 -0
  107. package/dist/editors/clean-new-editor/components/EmptyState.d.ts +3 -0
  108. package/dist/editors/clean-new-editor/components/EmptyState.d.ts.map +1 -0
  109. package/dist/editors/clean-new-editor/components/EmptyState.js +10 -0
  110. package/dist/editors/clean-new-editor/components/Files.d.ts +3 -0
  111. package/dist/editors/clean-new-editor/components/Files.d.ts.map +1 -0
  112. package/dist/editors/clean-new-editor/components/Files.js +12 -0
  113. package/dist/editors/clean-new-editor/components/FolderTree.d.ts +6 -0
  114. package/dist/editors/clean-new-editor/components/FolderTree.d.ts.map +1 -0
  115. package/dist/editors/clean-new-editor/components/FolderTree.js +65 -0
  116. package/dist/editors/clean-new-editor/components/Folders.d.ts +3 -0
  117. package/dist/editors/clean-new-editor/components/Folders.d.ts.map +1 -0
  118. package/dist/editors/clean-new-editor/components/Folders.js +12 -0
  119. package/dist/editors/clean-new-editor/components/NavigationBreadcrumbs.d.ts +3 -0
  120. package/dist/editors/clean-new-editor/components/NavigationBreadcrumbs.d.ts.map +1 -0
  121. package/dist/editors/clean-new-editor/components/NavigationBreadcrumbs.js +6 -0
  122. package/dist/editors/clean-new-editor/config.d.ts +4 -0
  123. package/dist/editors/clean-new-editor/config.d.ts.map +1 -0
  124. package/dist/editors/clean-new-editor/config.js +5 -0
  125. package/dist/editors/clean-new-editor/editor.d.ts +4 -0
  126. package/dist/editors/clean-new-editor/editor.d.ts.map +1 -0
  127. package/dist/editors/clean-new-editor/editor.js +11 -0
  128. package/dist/editors/clean-new-editor/module.d.ts +3 -0
  129. package/dist/editors/clean-new-editor/module.d.ts.map +1 -0
  130. package/dist/editors/clean-new-editor/module.js +10 -0
  131. package/dist/editors/contributor-billing/components/ConfirmationModal.d.ts +14 -0
  132. package/dist/editors/contributor-billing/components/ConfirmationModal.d.ts.map +1 -0
  133. package/dist/editors/contributor-billing/components/ConfirmationModal.js +6 -0
  134. package/dist/editors/contributor-billing/components/CreateDocument.d.ts +6 -0
  135. package/dist/editors/contributor-billing/components/CreateDocument.d.ts.map +1 -0
  136. package/dist/editors/contributor-billing/components/CreateDocument.js +18 -0
  137. package/dist/editors/contributor-billing/components/DriveContents.d.ts +3 -0
  138. package/dist/editors/contributor-billing/components/DriveContents.d.ts.map +1 -0
  139. package/dist/editors/contributor-billing/components/DriveContents.js +10 -0
  140. package/dist/editors/contributor-billing/components/DriveExplorer.d.ts +3 -3
  141. package/dist/editors/contributor-billing/components/DriveExplorer.d.ts.map +1 -1
  142. package/dist/editors/contributor-billing/components/DriveExplorer.js +13 -180
  143. package/dist/editors/contributor-billing/components/EmptyState.d.ts +3 -0
  144. package/dist/editors/contributor-billing/components/EmptyState.d.ts.map +1 -0
  145. package/dist/editors/contributor-billing/components/EmptyState.js +10 -0
  146. package/dist/editors/contributor-billing/components/Files.d.ts +3 -0
  147. package/dist/editors/contributor-billing/components/Files.d.ts.map +1 -0
  148. package/dist/editors/contributor-billing/components/Files.js +12 -0
  149. package/dist/editors/contributor-billing/components/FolderTree.d.ts +6 -0
  150. package/dist/editors/contributor-billing/components/FolderTree.d.ts.map +1 -0
  151. package/dist/editors/contributor-billing/components/FolderTree.js +65 -0
  152. package/dist/editors/contributor-billing/components/Folders.d.ts +3 -0
  153. package/dist/editors/contributor-billing/components/Folders.d.ts.map +1 -0
  154. package/dist/editors/contributor-billing/components/Folders.js +12 -0
  155. package/dist/editors/contributor-billing/components/HeaderControls.d.ts +38 -0
  156. package/dist/editors/contributor-billing/components/HeaderControls.d.ts.map +1 -0
  157. package/dist/editors/contributor-billing/components/HeaderControls.js +124 -0
  158. package/dist/editors/contributor-billing/components/HeaderStats.d.ts.map +1 -0
  159. package/dist/editors/contributor-billing/components/{InvoiceTable/HeaderStats.js → HeaderStats.js} +1 -1
  160. package/dist/editors/contributor-billing/components/InvoiceTable.d.ts +22 -0
  161. package/dist/editors/contributor-billing/components/InvoiceTable.d.ts.map +1 -0
  162. package/dist/editors/contributor-billing/components/InvoiceTable.js +399 -0
  163. package/dist/editors/contributor-billing/components/InvoiceTableContainer.d.ts +6 -0
  164. package/dist/editors/contributor-billing/components/InvoiceTableContainer.d.ts.map +1 -0
  165. package/dist/editors/contributor-billing/components/InvoiceTableContainer.js +111 -0
  166. package/dist/editors/contributor-billing/components/InvoiceTableRow.d.ts +32 -0
  167. package/dist/editors/contributor-billing/components/InvoiceTableRow.d.ts.map +1 -0
  168. package/dist/editors/contributor-billing/components/InvoiceTableRow.js +55 -0
  169. package/dist/editors/contributor-billing/components/InvoiceTableSection.d.ts +13 -0
  170. package/dist/editors/contributor-billing/components/InvoiceTableSection.d.ts.map +1 -0
  171. package/dist/editors/contributor-billing/components/InvoiceTableSection.js +16 -0
  172. package/dist/editors/contributor-billing/components/NavigationBreadcrumbs.d.ts +3 -0
  173. package/dist/editors/contributor-billing/components/NavigationBreadcrumbs.d.ts.map +1 -0
  174. package/dist/editors/contributor-billing/components/NavigationBreadcrumbs.js +6 -0
  175. package/dist/editors/contributor-billing/config.d.ts +1 -0
  176. package/dist/editors/contributor-billing/config.d.ts.map +1 -1
  177. package/dist/editors/contributor-billing/config.js +4 -1
  178. package/dist/editors/contributor-billing/editor.d.ts +1 -0
  179. package/dist/editors/contributor-billing/editor.d.ts.map +1 -1
  180. package/dist/editors/contributor-billing/editor.js +4 -1
  181. package/dist/editors/contributor-billing/module.d.ts +1 -1
  182. package/dist/editors/contributor-billing/module.d.ts.map +1 -1
  183. package/dist/editors/contributor-billing/module.js +3 -2
  184. package/dist/editors/contributor-billing/utils/exchangeRate.d.ts +15 -0
  185. package/dist/editors/contributor-billing/utils/exchangeRate.d.ts.map +1 -0
  186. package/dist/editors/contributor-billing/utils/exchangeRate.js +122 -0
  187. package/dist/editors/editors.js +2 -2
  188. package/dist/editors/expense-report/components/AddBillingStatementModal.d.ts.map +1 -1
  189. package/dist/editors/expense-report/editor.js +8 -8
  190. package/dist/editors/index.d.ts +2 -2
  191. package/dist/editors/index.d.ts.map +1 -1
  192. package/dist/editors/index.js +2 -2
  193. package/dist/editors/integrations/components/EditName.d.ts +3 -0
  194. package/dist/editors/integrations/components/EditName.d.ts.map +1 -0
  195. package/dist/editors/integrations/components/EditName.js +31 -0
  196. package/dist/editors/integrations/editor.d.ts +2 -4
  197. package/dist/editors/integrations/editor.d.ts.map +1 -1
  198. package/dist/editors/integrations/editor.js +5 -132
  199. package/dist/editors/integrations/module.d.ts +1 -0
  200. package/dist/editors/integrations/module.d.ts.map +1 -1
  201. package/dist/editors/integrations/module.js +3 -2
  202. package/dist/editors/invoice/components/confirmationModal.js +1 -1
  203. package/dist/editors/invoice/components/countryForm.d.ts.map +1 -1
  204. package/dist/editors/invoice/components/countryForm.js +1 -1
  205. package/dist/editors/invoice/components/currencyForm.d.ts.map +1 -1
  206. package/dist/editors/invoice/components/currencyForm.js +1 -1
  207. package/dist/editors/invoice/components/datePicker.d.ts +1 -1
  208. package/dist/editors/invoice/components/datePicker.d.ts.map +1 -1
  209. package/dist/editors/invoice/components/datePicker.js +1 -1
  210. package/dist/editors/invoice/components/inputField.d.ts.map +1 -1
  211. package/dist/editors/invoice/components/inputField.js +3 -2
  212. package/dist/editors/invoice/components/lineItemMobileModal.d.ts.map +1 -1
  213. package/dist/editors/invoice/components/lineItemMobileModal.js +1 -1
  214. package/dist/editors/invoice/components/numberForm.d.ts.map +1 -1
  215. package/dist/editors/invoice/components/selectField.js +7 -7
  216. package/dist/editors/invoice/components/statusModalComponents.d.ts.map +1 -1
  217. package/dist/editors/invoice/components/statusModalComponents.js +27 -3
  218. package/dist/editors/invoice/editor.d.ts +1 -4
  219. package/dist/editors/invoice/editor.d.ts.map +1 -1
  220. package/dist/editors/invoice/editor.js +102 -40
  221. package/dist/editors/invoice/exportUBL.d.ts.map +1 -1
  222. package/dist/editors/invoice/exportUBL.js +35 -18
  223. package/dist/editors/invoice/ingestPDF.d.ts.map +1 -1
  224. package/dist/editors/invoice/ingestPDF.js +15 -9
  225. package/dist/editors/invoice/invoiceToGnosis.js +3 -3
  226. package/dist/editors/invoice/legalEntity/bankSection.d.ts.map +1 -1
  227. package/dist/editors/invoice/legalEntity/legalEntity.d.ts.map +1 -1
  228. package/dist/editors/invoice/legalEntity/walletSection.d.ts.map +1 -1
  229. package/dist/editors/invoice/legalEntity/walletSection.js +3 -3
  230. package/dist/editors/invoice/lineItemTags/lineItemTags.d.ts.map +1 -1
  231. package/dist/editors/invoice/lineItemTags/lineItemTags.js +1 -1
  232. package/dist/editors/invoice/lineItemTags/tagMobileModal.d.ts.map +1 -1
  233. package/dist/editors/invoice/lineItemTags/tagMobileModal.js +4 -3
  234. package/dist/editors/invoice/lineItems.d.ts.map +1 -1
  235. package/dist/editors/invoice/module.d.ts +1 -0
  236. package/dist/editors/invoice/module.d.ts.map +1 -1
  237. package/dist/editors/invoice/module.js +2 -1
  238. package/dist/editors/invoice/requestFinance.js +4 -4
  239. package/dist/editors/invoice/uploadPdfChunked.d.ts.map +1 -1
  240. package/dist/editors/invoice/uploadPdfChunked.js +5 -4
  241. package/dist/editors/invoice/utils/utils.d.ts.map +1 -1
  242. package/dist/editors/invoice/utils/utils.js +5 -4
  243. package/dist/editors/invoice/validation/validationHandler.d.ts.map +1 -1
  244. package/dist/editors/invoice/validation/validationHandler.js +11 -5
  245. package/dist/editors/invoice/validation/validationManager.d.ts +2 -2
  246. package/dist/editors/invoice/validation/validationManager.d.ts.map +1 -1
  247. package/dist/editors/invoice/validation/validationManager.js +5 -5
  248. package/dist/editors/invoice/validation/validationRules.d.ts.map +1 -1
  249. package/dist/editors/invoice/validation/validationRules.js +178 -178
  250. package/dist/index.d.ts +2 -2
  251. package/dist/index.d.ts.map +1 -1
  252. package/dist/index.js +4 -2
  253. package/dist/old-contributor-billing/components/DriveExplorer.d.ts +7 -0
  254. package/dist/old-contributor-billing/components/DriveExplorer.d.ts.map +1 -0
  255. package/dist/old-contributor-billing/components/DriveExplorer.js +184 -0
  256. package/dist/old-contributor-billing/components/InvoiceTable/HeaderControls.d.ts.map +1 -0
  257. package/dist/old-contributor-billing/components/InvoiceTable/HeaderStats.d.ts +2 -0
  258. package/dist/old-contributor-billing/components/InvoiceTable/HeaderStats.d.ts.map +1 -0
  259. package/dist/old-contributor-billing/components/InvoiceTable/HeaderStats.js +73 -0
  260. package/dist/old-contributor-billing/components/InvoiceTable/InvoiceTable.d.ts.map +1 -0
  261. package/dist/old-contributor-billing/components/InvoiceTable/InvoiceTableRow.d.ts.map +1 -0
  262. package/dist/old-contributor-billing/components/InvoiceTable/InvoiceTableSection.d.ts.map +1 -0
  263. package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTableSection.js +1 -1
  264. package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/RowActionMenu.d.ts +1 -1
  265. package/dist/old-contributor-billing/components/InvoiceTable/RowActionMenu.d.ts.map +1 -0
  266. package/dist/old-contributor-billing/components/InvoiceTable/RowActionMenu.js +2 -0
  267. package/dist/old-contributor-billing/config.d.ts +3 -0
  268. package/dist/old-contributor-billing/config.d.ts.map +1 -0
  269. package/dist/old-contributor-billing/config.js +4 -0
  270. package/dist/old-contributor-billing/editor.d.ts +3 -0
  271. package/dist/old-contributor-billing/editor.d.ts.map +1 -0
  272. package/dist/old-contributor-billing/editor.js +8 -0
  273. package/dist/old-contributor-billing/module.d.ts +3 -0
  274. package/dist/old-contributor-billing/module.d.ts.map +1 -0
  275. package/dist/old-contributor-billing/module.js +9 -0
  276. package/dist/old-contributor-billing/util.d.ts.map +1 -0
  277. package/dist/{editors/contributor-billing → old-contributor-billing}/util.js +11 -9
  278. package/dist/powerhouse.manifest.json +6 -41
  279. package/dist/processors/index.d.ts +1 -6
  280. package/dist/processors/index.d.ts.map +1 -1
  281. package/dist/processors/index.js +1 -18
  282. package/dist/scripts/contributor-billing/createExpenseReportCsv.d.ts.map +1 -1
  283. package/dist/scripts/contributor-billing/createExpenseReportCsv.js +24 -24
  284. package/dist/scripts/contributor-billing/createXeroCsv.d.ts.map +1 -1
  285. package/dist/scripts/contributor-billing/createXeroCsv.js +52 -46
  286. package/dist/scripts/invoice/autoTagging.d.ts +1 -1
  287. package/dist/scripts/invoice/autoTagging.d.ts.map +1 -1
  288. package/dist/scripts/invoice/autoTagging.js +168 -138
  289. package/dist/scripts/invoice/exampleBatchTxn.js +16 -16
  290. package/dist/scripts/invoice/gnosisTransactionBuilder.d.ts.map +1 -1
  291. package/dist/scripts/invoice/gnosisTransactionBuilder.js +32 -25
  292. package/dist/scripts/invoice/pdfToClaudeAI.d.ts.map +1 -1
  293. package/dist/scripts/invoice/pdfToClaudeAI.js +36 -30
  294. package/dist/scripts/invoice/requestFinance.d.ts.map +1 -1
  295. package/dist/scripts/invoice/requestFinance.js +13 -13
  296. package/dist/style.css +407 -13659
  297. package/dist/subgraphs/billing-statement/resolvers.d.ts +1 -1
  298. package/dist/subgraphs/billing-statement/resolvers.d.ts.map +1 -1
  299. package/dist/subgraphs/billing-statement/resolvers.js +16 -5
  300. package/dist/subgraphs/billing-statement/schema.d.ts.map +1 -1
  301. package/dist/subgraphs/billing-statement/schema.js +12 -67
  302. package/dist/subgraphs/expense-report/resolvers.d.ts +1 -1
  303. package/dist/subgraphs/expense-report/resolvers.d.ts.map +1 -1
  304. package/dist/subgraphs/expense-report/resolvers.js +4 -5
  305. package/dist/subgraphs/expense-report/schema.d.ts.map +1 -1
  306. package/dist/subgraphs/expense-report/schema.js +5 -48
  307. package/dist/subgraphs/index.d.ts +1 -0
  308. package/dist/subgraphs/index.d.ts.map +1 -1
  309. package/dist/subgraphs/index.js +1 -0
  310. package/dist/subgraphs/integrations/resolvers.d.ts +1 -1
  311. package/dist/subgraphs/integrations/resolvers.d.ts.map +1 -1
  312. package/dist/subgraphs/integrations/resolvers.js +4 -5
  313. package/dist/subgraphs/integrations/schema.d.ts.map +1 -1
  314. package/dist/subgraphs/integrations/schema.js +3 -43
  315. package/dist/subgraphs/invoice/index.d.ts.map +1 -1
  316. package/dist/subgraphs/invoice/index.js +1 -20
  317. package/dist/subgraphs/invoice/resolvers.d.ts +1 -1
  318. package/dist/subgraphs/invoice/resolvers.d.ts.map +1 -1
  319. package/dist/subgraphs/invoice/resolvers.js +4 -9
  320. package/dist/subgraphs/invoice/schema.d.ts.map +1 -1
  321. package/dist/subgraphs/invoice/schema.js +14 -232
  322. package/dist/subgraphs/{invoice → invoice-addon}/customResolvers.d.ts +1 -1
  323. package/dist/subgraphs/invoice-addon/customResolvers.d.ts.map +1 -0
  324. package/dist/subgraphs/{invoice → invoice-addon}/customResolvers.js +38 -34
  325. package/dist/subgraphs/invoice-addon/index.d.ts +11 -0
  326. package/dist/subgraphs/invoice-addon/index.d.ts.map +1 -0
  327. package/dist/subgraphs/invoice-addon/index.js +11 -0
  328. package/dist/subgraphs/invoice-addon/resolvers.d.ts +3 -0
  329. package/dist/subgraphs/invoice-addon/resolvers.d.ts.map +1 -0
  330. package/dist/subgraphs/invoice-addon/resolvers.js +12 -0
  331. package/dist/subgraphs/invoice-addon/schema.d.ts +3 -0
  332. package/dist/subgraphs/invoice-addon/schema.d.ts.map +1 -0
  333. package/dist/subgraphs/invoice-addon/schema.js +52 -0
  334. package/package.json +9 -20
  335. package/dist/document-models/expense-report/gen/expense-report/actions.d.ts +0 -8
  336. package/dist/document-models/expense-report/gen/expense-report/actions.d.ts.map +0 -1
  337. package/dist/document-models/expense-report/gen/expense-report/actions.js +0 -1
  338. package/dist/document-models/expense-report/gen/expense-report/creators.d.ts +0 -4
  339. package/dist/document-models/expense-report/gen/expense-report/creators.d.ts.map +0 -1
  340. package/dist/document-models/expense-report/gen/expense-report/creators.js +0 -3
  341. package/dist/document-models/expense-report/gen/expense-report/error.d.ts +0 -2
  342. package/dist/document-models/expense-report/gen/expense-report/error.d.ts.map +0 -1
  343. package/dist/document-models/expense-report/gen/expense-report/error.js +0 -1
  344. package/dist/document-models/expense-report/gen/expense-report/operations.d.ts +0 -7
  345. package/dist/document-models/expense-report/gen/expense-report/operations.d.ts.map +0 -1
  346. package/dist/document-models/expense-report/gen/expense-report/operations.js +0 -3
  347. package/dist/document-models/expense-report/src/tests/expense-report.test.d.ts +0 -6
  348. package/dist/document-models/expense-report/src/tests/expense-report.test.d.ts.map +0 -1
  349. package/dist/document-models/expense-report/src/tests/expense-report.test.js +0 -24
  350. package/dist/editors/contributor-billing/components/InvoiceTable/HeaderControls.d.ts.map +0 -1
  351. package/dist/editors/contributor-billing/components/InvoiceTable/HeaderStats.d.ts.map +0 -1
  352. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTable.d.ts.map +0 -1
  353. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTableRow.d.ts.map +0 -1
  354. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTableSection.d.ts.map +0 -1
  355. package/dist/editors/contributor-billing/components/InvoiceTable/RowActionMenu.d.ts.map +0 -1
  356. package/dist/editors/contributor-billing/components/InvoiceTable/RowActionMenu.js +0 -2
  357. package/dist/editors/contributor-billing/util.d.ts.map +0 -1
  358. package/dist/editors/hooks/useBillingStatementDocument.d.ts +0 -4
  359. package/dist/editors/hooks/useBillingStatementDocument.d.ts.map +0 -1
  360. package/dist/editors/hooks/useBillingStatementDocument.js +0 -8
  361. package/dist/editors/hooks/useExpenseReportDocument.d.ts +0 -4
  362. package/dist/editors/hooks/useExpenseReportDocument.d.ts.map +0 -1
  363. package/dist/editors/hooks/useExpenseReportDocument.js +0 -8
  364. package/dist/editors/hooks/useIntegrationsDocument.d.ts +0 -4
  365. package/dist/editors/hooks/useIntegrationsDocument.d.ts.map +0 -1
  366. package/dist/editors/hooks/useIntegrationsDocument.js +0 -8
  367. package/dist/editors/hooks/useInvoiceDocument.d.ts +0 -4
  368. package/dist/editors/hooks/useInvoiceDocument.d.ts.map +0 -1
  369. package/dist/editors/hooks/useInvoiceDocument.js +0 -8
  370. package/dist/editors/integrations/config.d.ts +0 -3
  371. package/dist/editors/integrations/config.d.ts.map +0 -1
  372. package/dist/editors/integrations/config.js +0 -3
  373. package/dist/editors/invoice/exportSAFTPT.d.ts +0 -184
  374. package/dist/editors/invoice/exportSAFTPT.d.ts.map +0 -1
  375. package/dist/editors/invoice/exportSAFTPT.js +0 -548
  376. package/dist/processors/line-item-processor/index.d.ts +0 -11
  377. package/dist/processors/line-item-processor/index.d.ts.map +0 -1
  378. package/dist/processors/line-item-processor/index.js +0 -36
  379. package/dist/subgraphs/invoice/customResolvers.d.ts.map +0 -1
  380. package/editors/invoice/assets/custom.d.ts +0 -4
  381. package/editors/invoice/assets/powerhouseLogo.png +0 -0
  382. /package/dist/editors/contributor-billing/components/{InvoiceTable/HeaderStats.d.ts → HeaderStats.d.ts} +0 -0
  383. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/HeaderControls.d.ts +0 -0
  384. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/HeaderControls.js +0 -0
  385. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTable.d.ts +0 -0
  386. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTable.js +0 -0
  387. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTableRow.d.ts +0 -0
  388. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTableRow.js +0 -0
  389. /package/dist/{editors/contributor-billing → old-contributor-billing}/components/InvoiceTable/InvoiceTableSection.d.ts +0 -0
  390. /package/dist/{editors/contributor-billing → old-contributor-billing}/util.d.ts +0 -0
@@ -2,16 +2,103 @@
2
2
  * This is a scaffold file meant for customization:
3
3
  * - change it by adding new tests or modifying the existing ones
4
4
  */
5
- import { initialGlobalState, initialLocalState, createDocument, } from "../../gen/utils.js";
6
- describe("Billing Statement Document Model", () => {
7
- it("should create a new Billing Statement document", () => {
8
- const document = createDocument();
5
+ /**
6
+ * This is a scaffold file meant for customization:
7
+ * - change it by adding new tests or modifying the existing ones
8
+ */
9
+ import { describe, it, expect } from "vitest";
10
+ import { utils, initialGlobalState, initialLocalState, billingStatementDocumentType, isBillingStatementDocument, assertIsBillingStatementDocument, isBillingStatementState, assertIsBillingStatementState, } from "@powerhousedao/contributor-billing/document-models/billing-statement";
11
+ import { ZodError } from "zod";
12
+ describe("BillingStatement Document Model", () => {
13
+ it("should create a new BillingStatement document", () => {
14
+ const document = utils.createDocument();
9
15
  expect(document).toBeDefined();
10
- expect(document.header.documentType).toBe("powerhouse/billing-statement");
16
+ expect(document.header.documentType).toBe(billingStatementDocumentType);
11
17
  });
12
- it("should create a new Billing Statement document with a valid initial state", () => {
13
- const document = createDocument();
18
+ it("should create a new BillingStatement document with a valid initial state", () => {
19
+ const document = utils.createDocument();
14
20
  expect(document.state.global).toStrictEqual(initialGlobalState);
15
21
  expect(document.state.local).toStrictEqual(initialLocalState);
22
+ expect(isBillingStatementDocument(document)).toBe(true);
23
+ expect(isBillingStatementState(document.state)).toBe(true);
24
+ });
25
+ it("should reject a document that is not a BillingStatement document", () => {
26
+ const wrongDocumentType = utils.createDocument();
27
+ wrongDocumentType.header.documentType = "the-wrong-thing-1234";
28
+ try {
29
+ expect(assertIsBillingStatementDocument(wrongDocumentType)).toThrow();
30
+ expect(isBillingStatementDocument(wrongDocumentType)).toBe(false);
31
+ }
32
+ catch (error) {
33
+ expect(error).toBeInstanceOf(ZodError);
34
+ }
16
35
  });
36
+ const wrongState = utils.createDocument();
37
+ // @ts-expect-error - we are testing the error case
38
+ wrongState.state.global = {
39
+ ...{ notWhat: "you want" },
40
+ };
41
+ try {
42
+ expect(isBillingStatementState(wrongState.state)).toBe(false);
43
+ expect(assertIsBillingStatementState(wrongState.state)).toThrow();
44
+ expect(isBillingStatementDocument(wrongState)).toBe(false);
45
+ expect(assertIsBillingStatementDocument(wrongState)).toThrow();
46
+ }
47
+ catch (error) {
48
+ expect(error).toBeInstanceOf(ZodError);
49
+ }
50
+ const wrongInitialState = utils.createDocument();
51
+ // @ts-expect-error - we are testing the error case
52
+ wrongInitialState.initialState.global = {
53
+ ...{ notWhat: "you want" },
54
+ };
55
+ try {
56
+ expect(isBillingStatementState(wrongInitialState.state)).toBe(false);
57
+ expect(assertIsBillingStatementState(wrongInitialState.state)).toThrow();
58
+ expect(isBillingStatementDocument(wrongInitialState)).toBe(false);
59
+ expect(assertIsBillingStatementDocument(wrongInitialState)).toThrow();
60
+ }
61
+ catch (error) {
62
+ expect(error).toBeInstanceOf(ZodError);
63
+ }
64
+ const missingIdInHeader = utils.createDocument();
65
+ // @ts-expect-error - we are testing the error case
66
+ delete missingIdInHeader.header.id;
67
+ try {
68
+ expect(isBillingStatementDocument(missingIdInHeader)).toBe(false);
69
+ expect(assertIsBillingStatementDocument(missingIdInHeader)).toThrow();
70
+ }
71
+ catch (error) {
72
+ expect(error).toBeInstanceOf(ZodError);
73
+ }
74
+ const missingNameInHeader = utils.createDocument();
75
+ // @ts-expect-error - we are testing the error case
76
+ delete missingNameInHeader.header.name;
77
+ try {
78
+ expect(isBillingStatementDocument(missingNameInHeader)).toBe(false);
79
+ expect(assertIsBillingStatementDocument(missingNameInHeader)).toThrow();
80
+ }
81
+ catch (error) {
82
+ expect(error).toBeInstanceOf(ZodError);
83
+ }
84
+ const missingCreatedAtUtcIsoInHeader = utils.createDocument();
85
+ // @ts-expect-error - we are testing the error case
86
+ delete missingCreatedAtUtcIsoInHeader.header.createdAtUtcIso;
87
+ try {
88
+ expect(isBillingStatementDocument(missingCreatedAtUtcIsoInHeader)).toBe(false);
89
+ expect(assertIsBillingStatementDocument(missingCreatedAtUtcIsoInHeader)).toThrow();
90
+ }
91
+ catch (error) {
92
+ expect(error).toBeInstanceOf(ZodError);
93
+ }
94
+ const missingLastModifiedAtUtcIsoInHeader = utils.createDocument();
95
+ // @ts-expect-error - we are testing the error case
96
+ delete missingLastModifiedAtUtcIsoInHeader.header.lastModifiedAtUtcIso;
97
+ try {
98
+ expect(isBillingStatementDocument(missingLastModifiedAtUtcIsoInHeader)).toBe(false);
99
+ expect(assertIsBillingStatementDocument(missingLastModifiedAtUtcIsoInHeader)).toThrow();
100
+ }
101
+ catch (error) {
102
+ expect(error).toBeInstanceOf(ZodError);
103
+ }
17
104
  });
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Tests for Billing Statement operations
2
+ * This is a scaffold file meant for customization:
3
+ * - change it by adding new tests or modifying the existing ones
3
4
  */
4
5
  export {};
5
6
  //# sourceMappingURL=general.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.test.d.ts","sourceRoot":"","sources":["../../../../../document-models/billing-statement/src/tests/general.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
1
+ {"version":3,"file":"general.test.d.ts","sourceRoot":"","sources":["../../../../../document-models/billing-statement/src/tests/general.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,94 +1,39 @@
1
1
  /**
2
- * Tests for Billing Statement operations
2
+ * This is a scaffold file meant for customization:
3
+ * - change it by adding new tests or modifying the existing ones
3
4
  */
4
- import { createDocument } from "../../gen/utils.js";
5
- import {} from "../../gen/schema/index.js";
6
- import { reducer } from "../../gen/reducer.js";
7
- import * as creators from "../../gen/general/creators.js";
8
- describe("Billing Statement Operations", () => {
9
- let document;
10
- beforeEach(() => {
11
- document = createDocument();
5
+ import { describe, it, expect } from "vitest";
6
+ import { generateMock } from "@powerhousedao/codegen";
7
+ import { reducer, utils, isBillingStatementDocument, editBillingStatement, EditBillingStatementInputSchema, editContributor, EditContributorInputSchema, editStatus, EditStatusInputSchema, } from "@powerhousedao/contributor-billing/document-models/billing-statement";
8
+ describe("General Operations", () => {
9
+ it("should handle editBillingStatement operation", () => {
10
+ const document = utils.createDocument();
11
+ const input = generateMock(EditBillingStatementInputSchema());
12
+ const updatedDocument = reducer(document, editBillingStatement(input));
13
+ expect(isBillingStatementDocument(updatedDocument)).toBe(true);
14
+ expect(updatedDocument.operations.global).toHaveLength(1);
15
+ expect(updatedDocument.operations.global[0].action.type).toBe("EDIT_BILLING_STATEMENT");
16
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
17
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
12
18
  });
13
- describe("editBillingStatement", () => {
14
- it("should update billing statement with all fields", () => {
15
- const input = {
16
- dateIssued: "2024-03-20T10:00:00Z",
17
- dateDue: "2024-04-20T10:00:00Z",
18
- currency: "USD",
19
- notes: "Test billing statement notes"
20
- };
21
- const updatedDocument = reducer(document, creators.editBillingStatement(input));
22
- // Verify operation was recorded
23
- expect(updatedDocument.operations.global).toHaveLength(1);
24
- expect(updatedDocument.operations.global[0].type).toBe("EDIT_BILLING_STATEMENT");
25
- expect(updatedDocument.operations.global[0].input).toStrictEqual(input);
26
- expect(updatedDocument.operations.global[0].index).toEqual(0);
27
- // Verify state was updated
28
- expect(updatedDocument.state.global.dateIssued).toBe(input.dateIssued);
29
- expect(updatedDocument.state.global.dateDue).toBe(input.dateDue);
30
- expect(updatedDocument.state.global.currency).toBe(input.currency);
31
- expect(updatedDocument.state.global.notes).toBe(input.notes);
32
- });
33
- it("should update billing statement with partial fields", () => {
34
- const input = {
35
- dateIssued: "2024-03-20T10:00:00Z",
36
- currency: "EUR"
37
- };
38
- const updatedDocument = reducer(document, creators.editBillingStatement(input));
39
- // Verify operation was recorded
40
- expect(updatedDocument.operations.global).toHaveLength(1);
41
- expect(updatedDocument.operations.global[0].type).toBe("EDIT_BILLING_STATEMENT");
42
- expect(updatedDocument.operations.global[0].input).toStrictEqual(input);
43
- // Verify only specified fields were updated
44
- expect(updatedDocument.state.global.dateIssued).toBe(input.dateIssued);
45
- expect(updatedDocument.state.global.currency).toBe(input.currency);
46
- // Other fields should remain unchanged
47
- expect(updatedDocument.state.global.dateDue).toBe(document.state.global.dateDue);
48
- expect(updatedDocument.state.global.notes).toBe(document.state.global.notes);
49
- });
19
+ it("should handle editContributor operation", () => {
20
+ const document = utils.createDocument();
21
+ const input = generateMock(EditContributorInputSchema());
22
+ const updatedDocument = reducer(document, editContributor(input));
23
+ expect(isBillingStatementDocument(updatedDocument)).toBe(true);
24
+ expect(updatedDocument.operations.global).toHaveLength(1);
25
+ expect(updatedDocument.operations.global[0].action.type).toBe("EDIT_CONTRIBUTOR");
26
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
27
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
50
28
  });
51
- describe("editContributor", () => {
52
- it("should update contributor ID", () => {
53
- const input = {
54
- contributor: "PHID-USER-123456789"
55
- };
56
- const updatedDocument = reducer(document, creators.editContributor(input));
57
- // Verify operation was recorded
58
- expect(updatedDocument.operations.global).toHaveLength(1);
59
- expect(updatedDocument.operations.global[0].type).toBe("EDIT_CONTRIBUTOR");
60
- expect(updatedDocument.operations.global[0].input).toStrictEqual(input);
61
- // Verify state was updated
62
- expect(updatedDocument.state.global.contributor).toBe(input.contributor);
63
- });
64
- });
65
- describe("editStatus", () => {
66
- it("should update billing statement status", () => {
67
- const input = {
68
- status: "ISSUED"
69
- };
70
- const updatedDocument = reducer(document, creators.editStatus(input));
71
- // Verify operation was recorded
72
- expect(updatedDocument.operations.global).toHaveLength(1);
73
- expect(updatedDocument.operations.global[0].type).toBe("EDIT_STATUS");
74
- expect(updatedDocument.operations.global[0].input).toStrictEqual(input);
75
- // Verify state was updated
76
- expect(updatedDocument.state.global.status).toBe(input.status);
77
- });
78
- it("should handle all possible status transitions", () => {
79
- const statuses = [
80
- "DRAFT",
81
- "ISSUED",
82
- "ACCEPTED",
83
- "REJECTED",
84
- "PAID"
85
- ];
86
- let currentDocument = document;
87
- for (const status of statuses) {
88
- const input = { status };
89
- currentDocument = reducer(currentDocument, creators.editStatus(input));
90
- expect(currentDocument.state.global.status).toBe(status);
91
- }
92
- });
29
+ it("should handle editStatus operation", () => {
30
+ const document = utils.createDocument();
31
+ const input = generateMock(EditStatusInputSchema());
32
+ const updatedDocument = reducer(document, editStatus(input));
33
+ expect(isBillingStatementDocument(updatedDocument)).toBe(true);
34
+ expect(updatedDocument.operations.global).toHaveLength(1);
35
+ expect(updatedDocument.operations.global[0].action.type).toBe("EDIT_STATUS");
36
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
37
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
93
38
  });
94
39
  });
@@ -2,131 +2,28 @@
2
2
  * This is a scaffold file meant for customization:
3
3
  * - change it by adding new tests or modifying the existing ones
4
4
  */
5
- import * as utils from "../../gen/utils.js";
6
- import {} from "../../gen/schema/index.js";
7
- import { reducer } from "../../gen/reducer.js";
8
- import * as creators from "../../gen/line-items/creators.js";
9
- import { generateId } from "document-model";
10
- describe("Billing Statement Line Items Operations", () => {
11
- let document;
12
- beforeEach(() => {
13
- document = utils.createDocument();
5
+ import { describe, it, expect } from "vitest";
6
+ import { generateMock } from "@powerhousedao/codegen";
7
+ import { reducer, utils, isBillingStatementDocument, addLineItem, AddLineItemInputSchema, editLineItem, EditLineItemInputSchema, } from "@powerhousedao/contributor-billing/document-models/billing-statement";
8
+ describe("LineItems Operations", () => {
9
+ it("should handle addLineItem operation", () => {
10
+ const document = utils.createDocument();
11
+ const input = generateMock(AddLineItemInputSchema());
12
+ const updatedDocument = reducer(document, addLineItem(input));
13
+ expect(isBillingStatementDocument(updatedDocument)).toBe(true);
14
+ expect(updatedDocument.operations.global).toHaveLength(1);
15
+ expect(updatedDocument.operations.global[0].action.type).toBe("ADD_LINE_ITEM");
16
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
17
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
14
18
  });
15
- describe("addLineItem", () => {
16
- it("should add a new line item and update totals", () => {
17
- const input = {
18
- id: generateId(),
19
- description: "Test Line Item",
20
- quantity: 2,
21
- unit: "HOUR",
22
- unitPricePwt: 10,
23
- unitPriceCash: 20,
24
- totalPricePwt: 20,
25
- totalPriceCash: 40,
26
- };
27
- const updatedDocument = reducer(document, creators.addLineItem(input));
28
- // Verify operation was recorded
29
- expect(updatedDocument.operations.global).toHaveLength(1);
30
- expect(updatedDocument.operations.global[0].type).toBe("ADD_LINE_ITEM");
31
- expect(updatedDocument.operations.global[0].input).toStrictEqual(input);
32
- // Verify state was updated
33
- expect(updatedDocument.state.global.lineItems).toHaveLength(1);
34
- const addedItem = updatedDocument.state.global.lineItems[0];
35
- expect(addedItem.description).toBe(input.description);
36
- expect(addedItem.quantity).toBe(input.quantity);
37
- expect(addedItem.unitPricePwt).toBe(input.unitPricePwt);
38
- expect(addedItem.unitPriceCash).toBe(input.unitPriceCash);
39
- expect(addedItem.totalPricePwt).toBe(input.totalPricePwt);
40
- expect(addedItem.totalPriceCash).toBe(input.totalPriceCash);
41
- expect(addedItem.lineItemTag).toEqual([]);
42
- // Verify totals were updated
43
- expect(updatedDocument.state.global.totalCash).toBe(input.totalPriceCash);
44
- expect(updatedDocument.state.global.totalPowt).toBe(input.totalPricePwt);
45
- });
46
- });
47
- describe("editLineItem", () => {
48
- it("should edit an existing line item and update totals", () => {
49
- // First, add a line item
50
- const addInput = {
51
- id: generateId(),
52
- description: "Original Line Item",
53
- quantity: 1,
54
- unit: "HOUR",
55
- unitPricePwt: 10,
56
- unitPriceCash: 20,
57
- totalPricePwt: 10,
58
- totalPriceCash: 20,
59
- };
60
- let updatedDocument = reducer(document, creators.addLineItem(addInput));
61
- const lineItemId = updatedDocument.state.global.lineItems[0].id;
62
- // Now edit the line item
63
- const editInput = {
64
- id: lineItemId,
65
- description: "Updated Line Item",
66
- quantity: 3,
67
- unit: "HOUR",
68
- unitPricePwt: 15,
69
- unitPriceCash: 25,
70
- totalPricePwt: 45,
71
- totalPriceCash: 75,
72
- };
73
- updatedDocument = reducer(updatedDocument, creators.editLineItem(editInput));
74
- // Verify operation was recorded
75
- expect(updatedDocument.operations.global).toHaveLength(2);
76
- expect(updatedDocument.operations.global[1].type).toBe("EDIT_LINE_ITEM");
77
- expect(updatedDocument.operations.global[1].input).toStrictEqual(editInput);
78
- // Verify state was updated
79
- expect(updatedDocument.state.global.lineItems).toHaveLength(1);
80
- const editedItem = updatedDocument.state.global.lineItems[0];
81
- expect(editedItem.description).toBe(editInput.description);
82
- expect(editedItem.quantity).toBe(editInput.quantity);
83
- expect(editedItem.unitPricePwt).toBe(editInput.unitPricePwt);
84
- expect(editedItem.unitPriceCash).toBe(editInput.unitPriceCash);
85
- expect(editedItem.totalPricePwt).toBe(editInput.totalPricePwt);
86
- expect(editedItem.totalPriceCash).toBe(editInput.totalPriceCash);
87
- // Verify totals were updated
88
- expect(updatedDocument.state.global.totalCash).toBe(editInput.totalPriceCash);
89
- expect(updatedDocument.state.global.totalPowt).toBe(editInput.totalPricePwt);
90
- });
91
- it("should handle partial updates to a line item", () => {
92
- // First, add a line item
93
- const addInput = {
94
- id: generateId(),
95
- description: "Original Line Item",
96
- quantity: 1,
97
- unit: "HOUR",
98
- unitPricePwt: 10,
99
- unitPriceCash: 20,
100
- totalPricePwt: 10,
101
- totalPriceCash: 20,
102
- };
103
- let updatedDocument = reducer(document, creators.addLineItem(addInput));
104
- const lineItemId = updatedDocument.state.global.lineItems[0].id;
105
- // Now edit the line item with partial fields
106
- const editInput = {
107
- id: lineItemId,
108
- description: "Updated Description",
109
- quantity: 2,
110
- unit: "UNIT",
111
- };
112
- updatedDocument = reducer(updatedDocument, creators.editLineItem(editInput));
113
- // Verify operation was recorded
114
- expect(updatedDocument.operations.global).toHaveLength(2);
115
- expect(updatedDocument.operations.global[1].type).toBe("EDIT_LINE_ITEM");
116
- expect(updatedDocument.operations.global[1].input).toStrictEqual(editInput);
117
- // Verify state was updated
118
- expect(updatedDocument.state.global.lineItems).toHaveLength(1);
119
- const editedItem = updatedDocument.state.global.lineItems[0];
120
- expect(editedItem.description).toBe(editInput.description);
121
- expect(editedItem.quantity).toBe(editInput.quantity);
122
- // Other fields should remain unchanged
123
- expect(editedItem.unitPricePwt).toBe(addInput.unitPricePwt);
124
- expect(editedItem.unitPriceCash).toBe(addInput.unitPriceCash);
125
- // Verify totals were updated based on new quantity
126
- expect(editInput.quantity).not.toBeNull();
127
- expect(editInput.quantity).not.toBeUndefined();
128
- expect(updatedDocument.state.global.totalCash).toBe(editInput.quantity * addInput.unitPriceCash);
129
- expect(updatedDocument.state.global.totalPowt).toBe(editInput.quantity * addInput.unitPricePwt);
130
- });
19
+ it("should handle editLineItem operation", () => {
20
+ const document = utils.createDocument();
21
+ const input = generateMock(EditLineItemInputSchema());
22
+ const updatedDocument = reducer(document, editLineItem(input));
23
+ expect(isBillingStatementDocument(updatedDocument)).toBe(true);
24
+ expect(updatedDocument.operations.global).toHaveLength(1);
25
+ expect(updatedDocument.operations.global[0].action.type).toBe("EDIT_LINE_ITEM");
26
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
27
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
131
28
  });
132
29
  });
@@ -2,52 +2,18 @@
2
2
  * This is a scaffold file meant for customization:
3
3
  * - change it by adding new tests or modifying the existing ones
4
4
  */
5
- import * as utils from "../../gen/utils.js";
6
- import {} from "../../gen/schema/index.js";
7
- import { reducer } from "../../gen/reducer.js";
8
- import * as creators from "../../gen/tags/creators.js";
9
- import * as lineItemCreators from "../../gen/line-items/creators.js";
10
- import { generateId } from "document-model";
11
- describe("Billing Statement Tags Operations", () => {
12
- let document;
13
- beforeEach(() => {
14
- document = utils.createDocument();
15
- });
16
- describe("editLineItemTag", () => {
17
- it("should edit a line item tag", () => {
18
- // First, add a line item
19
- const addInput = {
20
- id: generateId(),
21
- description: "Test Line Item",
22
- quantity: 1,
23
- unit: "HOUR",
24
- unitPricePwt: 10,
25
- unitPriceCash: 20,
26
- totalPricePwt: 10,
27
- totalPriceCash: 20,
28
- };
29
- let updatedDocument = reducer(document, lineItemCreators.addLineItem(addInput));
30
- const lineItemId = updatedDocument.state.global.lineItems[0].id;
31
- // Now edit the line item tag
32
- const input = {
33
- lineItemId: lineItemId,
34
- dimension: "category",
35
- value: "expense",
36
- label: "Office Supplies",
37
- };
38
- updatedDocument = reducer(updatedDocument, creators.editLineItemTag(input));
39
- // Verify operation was recorded
40
- expect(updatedDocument.operations.global).toHaveLength(2);
41
- expect(updatedDocument.operations.global[1].type).toBe("EDIT_LINE_ITEM_TAG");
42
- expect(updatedDocument.operations.global[1].input).toStrictEqual(input);
43
- // Verify state was updated
44
- const lineItem = updatedDocument.state.global.lineItems.find(item => item.id === input.lineItemId);
45
- expect(lineItem).toBeDefined();
46
- expect(lineItem?.lineItemTag).toContainEqual({
47
- dimension: input.dimension,
48
- value: input.value,
49
- label: input.label,
50
- });
51
- });
5
+ import { describe, it, expect } from "vitest";
6
+ import { generateMock } from "@powerhousedao/codegen";
7
+ import { reducer, utils, isBillingStatementDocument, editLineItemTag, EditLineItemTagInputSchema, } from "@powerhousedao/contributor-billing/document-models/billing-statement";
8
+ describe("Tags Operations", () => {
9
+ it("should handle editLineItemTag operation", () => {
10
+ const document = utils.createDocument();
11
+ const input = generateMock(EditLineItemTagInputSchema());
12
+ const updatedDocument = reducer(document, editLineItemTag(input));
13
+ expect(isBillingStatementDocument(updatedDocument)).toBe(true);
14
+ expect(updatedDocument.operations.global).toHaveLength(1);
15
+ expect(updatedDocument.operations.global[0].action.type).toBe("EDIT_LINE_ITEM_TAG");
16
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
17
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
52
18
  });
53
19
  });
@@ -1,7 +1,7 @@
1
+ import { Invoice } from "./invoice/module.js";
1
2
  import { BillingStatement } from "./billing-statement/module.js";
2
- import { ExpenseReport } from "./expense-report/module.js";
3
3
  import { Integrations } from "./integrations/module.js";
4
- import { Invoice } from "./invoice/module.js";
4
+ import { ExpenseReport } from "./expense-report/module.js";
5
5
  export const documentModels = [
6
6
  BillingStatement,
7
7
  ExpenseReport,
@@ -1 +1 @@
1
- {"version":3,"file":"document-model.d.ts","sourceRoot":"","sources":["../../../../document-models/expense-report/gen/document-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,eAAO,MAAM,aAAa,EAAE,wBAkO3B,CAAC"}
1
+ {"version":3,"file":"document-model.d.ts","sourceRoot":"","sources":["../../../../document-models/expense-report/gen/document-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,eAAO,MAAM,aAAa,EAAE,wBAyN3B,CAAC"}