@baruk/core 0.1.0 → 0.2.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 (429) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/dist/auth/password-reset.d.ts.map +1 -1
  3. package/dist/auth/password-reset.js +2 -4
  4. package/dist/auth/password-reset.js.map +1 -1
  5. package/dist/auth/password.d.ts +2 -18
  6. package/dist/auth/password.d.ts.map +1 -1
  7. package/dist/auth/password.js +12 -51
  8. package/dist/auth/password.js.map +1 -1
  9. package/dist/auth/service.d.ts +0 -12
  10. package/dist/auth/service.d.ts.map +1 -1
  11. package/dist/auth/service.js +3 -36
  12. package/dist/auth/service.js.map +1 -1
  13. package/dist/auth/session-token.d.ts +5 -2
  14. package/dist/auth/session-token.d.ts.map +1 -1
  15. package/dist/auth/session-token.js +7 -12
  16. package/dist/auth/session-token.js.map +1 -1
  17. package/dist/billing/dunning.d.ts +33 -0
  18. package/dist/billing/dunning.d.ts.map +1 -0
  19. package/dist/billing/dunning.js +49 -0
  20. package/dist/billing/dunning.js.map +1 -0
  21. package/dist/billing/provider/asaas.d.ts +15 -0
  22. package/dist/billing/provider/asaas.d.ts.map +1 -0
  23. package/dist/billing/provider/asaas.js +121 -0
  24. package/dist/billing/provider/asaas.js.map +1 -0
  25. package/dist/billing/provider/manual.d.ts +14 -0
  26. package/dist/billing/provider/manual.d.ts.map +1 -0
  27. package/dist/billing/provider/manual.js +24 -0
  28. package/dist/billing/provider/manual.js.map +1 -0
  29. package/dist/billing/provider/registry.d.ts +12 -0
  30. package/dist/billing/provider/registry.d.ts.map +1 -0
  31. package/dist/billing/provider/registry.js +22 -0
  32. package/dist/billing/provider/registry.js.map +1 -0
  33. package/dist/billing/provider/types.d.ts +76 -0
  34. package/dist/billing/provider/types.d.ts.map +1 -0
  35. package/dist/billing/provider/types.js +9 -0
  36. package/dist/billing/provider/types.js.map +1 -0
  37. package/dist/billing/receivable.d.ts +108 -0
  38. package/dist/billing/receivable.d.ts.map +1 -0
  39. package/dist/billing/receivable.js +2 -0
  40. package/dist/billing/receivable.js.map +1 -0
  41. package/dist/billing/repository.d.ts +97 -0
  42. package/dist/billing/repository.d.ts.map +1 -0
  43. package/dist/billing/repository.js +167 -0
  44. package/dist/billing/repository.js.map +1 -0
  45. package/dist/cjs/audit/audit.js +31 -0
  46. package/dist/cjs/audit/audit.js.map +1 -0
  47. package/dist/cjs/audit/repository.js +32 -0
  48. package/dist/cjs/audit/repository.js.map +1 -0
  49. package/dist/cjs/auth/password-reset.js +58 -0
  50. package/dist/cjs/auth/password-reset.js.map +1 -0
  51. package/dist/cjs/auth/password.js +32 -0
  52. package/dist/cjs/auth/password.js.map +1 -0
  53. package/dist/cjs/auth/service.js +191 -0
  54. package/dist/cjs/auth/service.js.map +1 -0
  55. package/dist/cjs/auth/session-token.js +18 -0
  56. package/dist/cjs/auth/session-token.js.map +1 -0
  57. package/dist/cjs/billing/dunning.js +54 -0
  58. package/dist/cjs/billing/dunning.js.map +1 -0
  59. package/dist/cjs/billing/provider/asaas.js +125 -0
  60. package/dist/cjs/billing/provider/asaas.js.map +1 -0
  61. package/dist/cjs/billing/provider/manual.js +28 -0
  62. package/dist/cjs/billing/provider/manual.js.map +1 -0
  63. package/dist/cjs/billing/provider/registry.js +27 -0
  64. package/dist/cjs/billing/provider/registry.js.map +1 -0
  65. package/dist/cjs/billing/provider/types.js +10 -0
  66. package/dist/cjs/billing/provider/types.js.map +1 -0
  67. package/dist/cjs/billing/receivable.js +3 -0
  68. package/dist/cjs/billing/receivable.js.map +1 -0
  69. package/dist/cjs/billing/repository.js +180 -0
  70. package/dist/cjs/billing/repository.js.map +1 -0
  71. package/dist/cjs/clients/repository.js +123 -0
  72. package/dist/cjs/clients/repository.js.map +1 -0
  73. package/dist/cjs/commercial-catalog/catalog.js +108 -0
  74. package/dist/cjs/commercial-catalog/catalog.js.map +1 -0
  75. package/dist/cjs/commercial-catalog/consumption-contracts.js +10 -0
  76. package/dist/cjs/commercial-catalog/consumption-contracts.js.map +1 -0
  77. package/dist/cjs/commercial-catalog/coupon.js +53 -0
  78. package/dist/cjs/commercial-catalog/coupon.js.map +1 -0
  79. package/dist/cjs/commercial-catalog/index.js +16 -0
  80. package/dist/cjs/commercial-catalog/index.js.map +1 -0
  81. package/dist/cjs/commercial-catalog/offer-application.js +53 -0
  82. package/dist/cjs/commercial-catalog/offer-application.js.map +1 -0
  83. package/dist/cjs/commercial-catalog/types.js +26 -0
  84. package/dist/cjs/commercial-catalog/types.js.map +1 -0
  85. package/dist/cjs/crm/repository.js +195 -0
  86. package/dist/cjs/crm/repository.js.map +1 -0
  87. package/dist/cjs/dashboard/repository.js +39 -0
  88. package/dist/cjs/dashboard/repository.js.map +1 -0
  89. package/dist/cjs/db/client.js +27 -0
  90. package/dist/cjs/db/client.js.map +1 -0
  91. package/dist/cjs/db/context.js +43 -0
  92. package/dist/cjs/db/context.js.map +1 -0
  93. package/dist/cjs/db/load-env.js +47 -0
  94. package/dist/cjs/db/load-env.js.map +1 -0
  95. package/dist/cjs/db/seed.js +69 -0
  96. package/dist/cjs/db/seed.js.map +1 -0
  97. package/dist/cjs/entitlements/decision.js +203 -0
  98. package/dist/cjs/entitlements/decision.js.map +1 -0
  99. package/dist/cjs/entitlements/derive.js +46 -0
  100. package/dist/cjs/entitlements/derive.js.map +1 -0
  101. package/dist/cjs/entitlements/index.js +23 -0
  102. package/dist/cjs/entitlements/index.js.map +1 -0
  103. package/dist/cjs/entitlements/sources.js +60 -0
  104. package/dist/cjs/entitlements/sources.js.map +1 -0
  105. package/dist/cjs/entitlements/standing.js +42 -0
  106. package/dist/cjs/entitlements/standing.js.map +1 -0
  107. package/dist/cjs/entitlements/types.js +16 -0
  108. package/dist/cjs/entitlements/types.js.map +1 -0
  109. package/dist/cjs/import/clients-import.js +147 -0
  110. package/dist/cjs/import/clients-import.js.map +1 -0
  111. package/dist/cjs/index.js +335 -0
  112. package/dist/cjs/index.js.map +1 -0
  113. package/dist/cjs/mail/dedup-store.js +56 -0
  114. package/dist/cjs/mail/dedup-store.js.map +1 -0
  115. package/dist/cjs/mail/index.js +24 -0
  116. package/dist/cjs/mail/index.js.map +1 -0
  117. package/dist/cjs/mail/provider.js +251 -0
  118. package/dist/cjs/mail/provider.js.map +1 -0
  119. package/dist/cjs/mail/resend-client.js +103 -0
  120. package/dist/cjs/mail/resend-client.js.map +1 -0
  121. package/dist/cjs/mail/resend.js +21 -0
  122. package/dist/cjs/mail/resend.js.map +1 -0
  123. package/dist/cjs/mail/sanitize.js +56 -0
  124. package/dist/cjs/mail/sanitize.js.map +1 -0
  125. package/dist/cjs/mail/sender-resolver.js +15 -0
  126. package/dist/cjs/mail/sender-resolver.js.map +1 -0
  127. package/dist/cjs/mail/template-renderer.js +21 -0
  128. package/dist/cjs/mail/template-renderer.js.map +1 -0
  129. package/dist/cjs/mail/types.js +38 -0
  130. package/dist/cjs/mail/types.js.map +1 -0
  131. package/dist/cjs/notifications/repository.js +49 -0
  132. package/dist/cjs/notifications/repository.js.map +1 -0
  133. package/dist/cjs/onboarding/domain.js +370 -0
  134. package/dist/cjs/onboarding/domain.js.map +1 -0
  135. package/dist/cjs/onboarding/interaction-review.js +425 -0
  136. package/dist/cjs/onboarding/interaction-review.js.map +1 -0
  137. package/dist/cjs/onboarding/persistence.js +444 -0
  138. package/dist/cjs/onboarding/persistence.js.map +1 -0
  139. package/dist/cjs/onboarding/portal-actions.js +157 -0
  140. package/dist/cjs/onboarding/portal-actions.js.map +1 -0
  141. package/dist/cjs/onboarding/portal.js +177 -0
  142. package/dist/cjs/onboarding/portal.js.map +1 -0
  143. package/dist/cjs/package.json +3 -0
  144. package/dist/cjs/portal/repository.js +37 -0
  145. package/dist/cjs/portal/repository.js.map +1 -0
  146. package/dist/cjs/pricing-engine/bundle.js +49 -0
  147. package/dist/cjs/pricing-engine/bundle.js.map +1 -0
  148. package/dist/cjs/pricing-engine/errors.js +48 -0
  149. package/dist/cjs/pricing-engine/errors.js.map +1 -0
  150. package/dist/cjs/pricing-engine/index.js +30 -0
  151. package/dist/cjs/pricing-engine/index.js.map +1 -0
  152. package/dist/cjs/pricing-engine/money.js +69 -0
  153. package/dist/cjs/pricing-engine/money.js.map +1 -0
  154. package/dist/cjs/pricing-engine/pipeline.js +330 -0
  155. package/dist/cjs/pricing-engine/pipeline.js.map +1 -0
  156. package/dist/cjs/pricing-engine/proration.js +53 -0
  157. package/dist/cjs/pricing-engine/proration.js.map +1 -0
  158. package/dist/cjs/pricing-engine/shadow.js +58 -0
  159. package/dist/cjs/pricing-engine/shadow.js.map +1 -0
  160. package/dist/cjs/pricing-engine/types.js +34 -0
  161. package/dist/cjs/pricing-engine/types.js.map +1 -0
  162. package/dist/cjs/products/catalog.js +10 -0
  163. package/dist/cjs/products/catalog.js.map +1 -0
  164. package/dist/cjs/products/repository.js +61 -0
  165. package/dist/cjs/products/repository.js.map +1 -0
  166. package/dist/cjs/rbac/authorize.js +36 -0
  167. package/dist/cjs/rbac/authorize.js.map +1 -0
  168. package/dist/cjs/rbac/catalog.js +455 -0
  169. package/dist/cjs/rbac/catalog.js.map +1 -0
  170. package/dist/cjs/requests/repository.js +114 -0
  171. package/dist/cjs/requests/repository.js.map +1 -0
  172. package/dist/cjs/subscription-billing/dunning.js +26 -0
  173. package/dist/cjs/subscription-billing/dunning.js.map +1 -0
  174. package/dist/cjs/subscription-billing/events.js +45 -0
  175. package/dist/cjs/subscription-billing/events.js.map +1 -0
  176. package/dist/cjs/subscription-billing/index.js +62 -0
  177. package/dist/cjs/subscription-billing/index.js.map +1 -0
  178. package/dist/cjs/subscription-billing/plans.js +88 -0
  179. package/dist/cjs/subscription-billing/plans.js.map +1 -0
  180. package/dist/cjs/subscription-billing/product-config.js +54 -0
  181. package/dist/cjs/subscription-billing/product-config.js.map +1 -0
  182. package/dist/cjs/subscription-billing/provider/asaas.js +233 -0
  183. package/dist/cjs/subscription-billing/provider/asaas.js.map +1 -0
  184. package/dist/cjs/subscription-billing/provider/disabled.js +46 -0
  185. package/dist/cjs/subscription-billing/provider/disabled.js.map +1 -0
  186. package/dist/cjs/subscription-billing/provider/registry.js +29 -0
  187. package/dist/cjs/subscription-billing/provider/registry.js.map +1 -0
  188. package/dist/cjs/subscription-billing/reconcile.js +198 -0
  189. package/dist/cjs/subscription-billing/reconcile.js.map +1 -0
  190. package/dist/cjs/subscription-billing/repository.js +359 -0
  191. package/dist/cjs/subscription-billing/repository.js.map +1 -0
  192. package/dist/cjs/subscription-billing/service.js +838 -0
  193. package/dist/cjs/subscription-billing/service.js.map +1 -0
  194. package/dist/cjs/subscription-billing/types.js +28 -0
  195. package/dist/cjs/subscription-billing/types.js.map +1 -0
  196. package/dist/cjs/tenancy/provisioning.js +126 -0
  197. package/dist/cjs/tenancy/provisioning.js.map +1 -0
  198. package/dist/cjs/users/repository.js +83 -0
  199. package/dist/cjs/users/repository.js.map +1 -0
  200. package/dist/cjs/vault/crypto.js +94 -0
  201. package/dist/cjs/vault/crypto.js.map +1 -0
  202. package/dist/cjs/vault/repository.js +120 -0
  203. package/dist/cjs/vault/repository.js.map +1 -0
  204. package/dist/commercial-catalog/catalog.d.ts +27 -0
  205. package/dist/commercial-catalog/catalog.d.ts.map +1 -0
  206. package/dist/commercial-catalog/catalog.js +104 -0
  207. package/dist/commercial-catalog/catalog.js.map +1 -0
  208. package/dist/commercial-catalog/consumption-contracts.d.ts +33 -0
  209. package/dist/commercial-catalog/consumption-contracts.d.ts.map +1 -0
  210. package/dist/commercial-catalog/consumption-contracts.js +9 -0
  211. package/dist/commercial-catalog/consumption-contracts.js.map +1 -0
  212. package/dist/commercial-catalog/coupon.d.ts +27 -0
  213. package/dist/commercial-catalog/coupon.d.ts.map +1 -0
  214. package/dist/commercial-catalog/coupon.js +47 -0
  215. package/dist/commercial-catalog/coupon.js.map +1 -0
  216. package/dist/commercial-catalog/index.d.ts +10 -0
  217. package/dist/commercial-catalog/index.d.ts.map +1 -0
  218. package/dist/commercial-catalog/index.js +5 -0
  219. package/dist/commercial-catalog/index.js.map +1 -0
  220. package/dist/commercial-catalog/offer-application.d.ts +39 -0
  221. package/dist/commercial-catalog/offer-application.d.ts.map +1 -0
  222. package/dist/commercial-catalog/offer-application.js +50 -0
  223. package/dist/commercial-catalog/offer-application.js.map +1 -0
  224. package/dist/commercial-catalog/types.d.ts +155 -0
  225. package/dist/commercial-catalog/types.d.ts.map +1 -0
  226. package/dist/commercial-catalog/types.js +23 -0
  227. package/dist/commercial-catalog/types.js.map +1 -0
  228. package/dist/crm/repository.d.ts +109 -0
  229. package/dist/crm/repository.d.ts.map +1 -0
  230. package/dist/crm/repository.js +181 -0
  231. package/dist/crm/repository.js.map +1 -0
  232. package/dist/db/context.d.ts +2 -0
  233. package/dist/db/context.d.ts.map +1 -1
  234. package/dist/db/context.js +3 -0
  235. package/dist/db/context.js.map +1 -1
  236. package/dist/db/migrate.js +7 -2
  237. package/dist/db/migrate.js.map +1 -1
  238. package/dist/db/seed.js +4 -1
  239. package/dist/db/seed.js.map +1 -1
  240. package/dist/entitlements/decision.d.ts +86 -0
  241. package/dist/entitlements/decision.d.ts.map +1 -0
  242. package/dist/entitlements/decision.js +196 -0
  243. package/dist/entitlements/decision.js.map +1 -0
  244. package/dist/entitlements/derive.d.ts +30 -0
  245. package/dist/entitlements/derive.d.ts.map +1 -0
  246. package/dist/entitlements/derive.js +42 -0
  247. package/dist/entitlements/derive.js.map +1 -0
  248. package/dist/entitlements/index.d.ts +10 -0
  249. package/dist/entitlements/index.d.ts.map +1 -0
  250. package/dist/entitlements/index.js +7 -0
  251. package/dist/entitlements/index.js.map +1 -0
  252. package/dist/entitlements/sources.d.ts +30 -0
  253. package/dist/entitlements/sources.d.ts.map +1 -0
  254. package/dist/entitlements/sources.js +55 -0
  255. package/dist/entitlements/sources.js.map +1 -0
  256. package/dist/entitlements/standing.d.ts +22 -0
  257. package/dist/entitlements/standing.d.ts.map +1 -0
  258. package/dist/entitlements/standing.js +38 -0
  259. package/dist/entitlements/standing.js.map +1 -0
  260. package/dist/entitlements/types.d.ts +26 -0
  261. package/dist/entitlements/types.d.ts.map +1 -0
  262. package/dist/entitlements/types.js +15 -0
  263. package/dist/entitlements/types.js.map +1 -0
  264. package/dist/index.d.ts +74 -3
  265. package/dist/index.d.ts.map +1 -1
  266. package/dist/index.js +51 -4
  267. package/dist/index.js.map +1 -1
  268. package/dist/mail/dedup-store.d.ts +25 -0
  269. package/dist/mail/dedup-store.d.ts.map +1 -0
  270. package/dist/mail/dedup-store.js +51 -0
  271. package/dist/mail/dedup-store.js.map +1 -0
  272. package/dist/mail/index.d.ts +10 -0
  273. package/dist/mail/index.d.ts.map +1 -0
  274. package/dist/mail/index.js +9 -0
  275. package/dist/mail/index.js.map +1 -0
  276. package/dist/mail/provider.d.ts +31 -0
  277. package/dist/mail/provider.d.ts.map +1 -0
  278. package/dist/mail/provider.js +248 -0
  279. package/dist/mail/provider.js.map +1 -0
  280. package/dist/mail/resend-client.d.ts +16 -0
  281. package/dist/mail/resend-client.d.ts.map +1 -0
  282. package/dist/mail/resend-client.js +100 -0
  283. package/dist/mail/resend-client.js.map +1 -0
  284. package/dist/mail/resend.d.ts.map +1 -1
  285. package/dist/mail/resend.js +2 -0
  286. package/dist/mail/resend.js.map +1 -1
  287. package/dist/mail/sanitize.d.ts +17 -0
  288. package/dist/mail/sanitize.d.ts.map +1 -0
  289. package/dist/mail/sanitize.js +51 -0
  290. package/dist/mail/sanitize.js.map +1 -0
  291. package/dist/mail/sender-resolver.d.ts +8 -0
  292. package/dist/mail/sender-resolver.d.ts.map +1 -0
  293. package/dist/mail/sender-resolver.js +11 -0
  294. package/dist/mail/sender-resolver.js.map +1 -0
  295. package/dist/mail/template-renderer.d.ts +10 -0
  296. package/dist/mail/template-renderer.d.ts.map +1 -0
  297. package/dist/mail/template-renderer.js +17 -0
  298. package/dist/mail/template-renderer.js.map +1 -0
  299. package/dist/mail/types.d.ts +143 -0
  300. package/dist/mail/types.d.ts.map +1 -0
  301. package/dist/mail/types.js +34 -0
  302. package/dist/mail/types.js.map +1 -0
  303. package/dist/onboarding/domain.d.ts +146 -0
  304. package/dist/onboarding/domain.d.ts.map +1 -0
  305. package/dist/onboarding/domain.js +348 -0
  306. package/dist/onboarding/domain.js.map +1 -0
  307. package/dist/onboarding/interaction-review.d.ts +123 -0
  308. package/dist/onboarding/interaction-review.d.ts.map +1 -0
  309. package/dist/onboarding/interaction-review.js +413 -0
  310. package/dist/onboarding/interaction-review.js.map +1 -0
  311. package/dist/onboarding/persistence.d.ts +106 -0
  312. package/dist/onboarding/persistence.d.ts.map +1 -0
  313. package/dist/onboarding/persistence.js +430 -0
  314. package/dist/onboarding/persistence.js.map +1 -0
  315. package/dist/onboarding/portal-actions.d.ts +48 -0
  316. package/dist/onboarding/portal-actions.d.ts.map +1 -0
  317. package/dist/onboarding/portal-actions.js +153 -0
  318. package/dist/onboarding/portal-actions.js.map +1 -0
  319. package/dist/onboarding/portal.d.ts +58 -0
  320. package/dist/onboarding/portal.d.ts.map +1 -0
  321. package/dist/onboarding/portal.js +170 -0
  322. package/dist/onboarding/portal.js.map +1 -0
  323. package/dist/pricing-engine/bundle.d.ts +22 -0
  324. package/dist/pricing-engine/bundle.d.ts.map +1 -0
  325. package/dist/pricing-engine/bundle.js +44 -0
  326. package/dist/pricing-engine/bundle.js.map +1 -0
  327. package/dist/pricing-engine/errors.d.ts +32 -0
  328. package/dist/pricing-engine/errors.d.ts.map +1 -0
  329. package/dist/pricing-engine/errors.js +44 -0
  330. package/dist/pricing-engine/errors.js.map +1 -0
  331. package/dist/pricing-engine/index.d.ts +12 -0
  332. package/dist/pricing-engine/index.d.ts.map +1 -0
  333. package/dist/pricing-engine/index.js +8 -0
  334. package/dist/pricing-engine/index.js.map +1 -0
  335. package/dist/pricing-engine/money.d.ts +32 -0
  336. package/dist/pricing-engine/money.d.ts.map +1 -0
  337. package/dist/pricing-engine/money.js +58 -0
  338. package/dist/pricing-engine/money.js.map +1 -0
  339. package/dist/pricing-engine/pipeline.d.ts +3 -0
  340. package/dist/pricing-engine/pipeline.d.ts.map +1 -0
  341. package/dist/pricing-engine/pipeline.js +327 -0
  342. package/dist/pricing-engine/pipeline.js.map +1 -0
  343. package/dist/pricing-engine/proration.d.ts +3 -0
  344. package/dist/pricing-engine/proration.d.ts.map +1 -0
  345. package/dist/pricing-engine/proration.js +50 -0
  346. package/dist/pricing-engine/proration.js.map +1 -0
  347. package/dist/pricing-engine/shadow.d.ts +51 -0
  348. package/dist/pricing-engine/shadow.d.ts.map +1 -0
  349. package/dist/pricing-engine/shadow.js +54 -0
  350. package/dist/pricing-engine/shadow.js.map +1 -0
  351. package/dist/pricing-engine/types.d.ts +184 -0
  352. package/dist/pricing-engine/types.d.ts.map +1 -0
  353. package/dist/pricing-engine/types.js +31 -0
  354. package/dist/pricing-engine/types.js.map +1 -0
  355. package/dist/rbac/authorize.d.ts +3 -6
  356. package/dist/rbac/authorize.d.ts.map +1 -1
  357. package/dist/rbac/authorize.js +4 -8
  358. package/dist/rbac/authorize.js.map +1 -1
  359. package/dist/rbac/catalog.d.ts.map +1 -1
  360. package/dist/rbac/catalog.js +414 -21
  361. package/dist/rbac/catalog.js.map +1 -1
  362. package/dist/subscription-billing/dunning.d.ts +18 -0
  363. package/dist/subscription-billing/dunning.d.ts.map +1 -0
  364. package/dist/subscription-billing/dunning.js +28 -0
  365. package/dist/subscription-billing/dunning.js.map +1 -0
  366. package/dist/subscription-billing/events.d.ts +58 -0
  367. package/dist/subscription-billing/events.d.ts.map +1 -0
  368. package/dist/subscription-billing/events.js +38 -0
  369. package/dist/subscription-billing/events.js.map +1 -0
  370. package/dist/subscription-billing/index.d.ts +18 -0
  371. package/dist/subscription-billing/index.d.ts.map +1 -0
  372. package/dist/subscription-billing/index.js +16 -0
  373. package/dist/subscription-billing/index.js.map +1 -0
  374. package/dist/subscription-billing/plans.d.ts +34 -0
  375. package/dist/subscription-billing/plans.d.ts.map +1 -0
  376. package/dist/subscription-billing/plans.js +85 -0
  377. package/dist/subscription-billing/plans.js.map +1 -0
  378. package/dist/subscription-billing/product-config.d.ts +61 -0
  379. package/dist/subscription-billing/product-config.d.ts.map +1 -0
  380. package/dist/subscription-billing/product-config.js +50 -0
  381. package/dist/subscription-billing/product-config.js.map +1 -0
  382. package/dist/subscription-billing/provider/asaas.d.ts +26 -0
  383. package/dist/subscription-billing/provider/asaas.d.ts.map +1 -0
  384. package/dist/subscription-billing/provider/asaas.js +229 -0
  385. package/dist/subscription-billing/provider/asaas.js.map +1 -0
  386. package/dist/subscription-billing/provider/disabled.d.ts +30 -0
  387. package/dist/subscription-billing/provider/disabled.d.ts.map +1 -0
  388. package/dist/subscription-billing/provider/disabled.js +42 -0
  389. package/dist/subscription-billing/provider/disabled.js.map +1 -0
  390. package/dist/subscription-billing/provider/registry.d.ts +10 -0
  391. package/dist/subscription-billing/provider/registry.d.ts.map +1 -0
  392. package/dist/subscription-billing/provider/registry.js +26 -0
  393. package/dist/subscription-billing/provider/registry.js.map +1 -0
  394. package/dist/subscription-billing/reconcile.d.ts +45 -0
  395. package/dist/subscription-billing/reconcile.d.ts.map +1 -0
  396. package/dist/subscription-billing/reconcile.js +192 -0
  397. package/dist/subscription-billing/reconcile.js.map +1 -0
  398. package/dist/subscription-billing/repository.d.ts +168 -0
  399. package/dist/subscription-billing/repository.d.ts.map +1 -0
  400. package/dist/subscription-billing/repository.js +336 -0
  401. package/dist/subscription-billing/repository.js.map +1 -0
  402. package/dist/subscription-billing/service.d.ts +175 -0
  403. package/dist/subscription-billing/service.d.ts.map +1 -0
  404. package/dist/subscription-billing/service.js +818 -0
  405. package/dist/subscription-billing/service.js.map +1 -0
  406. package/dist/subscription-billing/types.d.ts +161 -0
  407. package/dist/subscription-billing/types.d.ts.map +1 -0
  408. package/dist/subscription-billing/types.js +24 -0
  409. package/dist/subscription-billing/types.js.map +1 -0
  410. package/dist/vault/crypto.d.ts +22 -0
  411. package/dist/vault/crypto.d.ts.map +1 -0
  412. package/dist/vault/crypto.js +88 -0
  413. package/dist/vault/crypto.js.map +1 -0
  414. package/dist/vault/repository.d.ts +45 -0
  415. package/dist/vault/repository.d.ts.map +1 -0
  416. package/dist/vault/repository.js +111 -0
  417. package/dist/vault/repository.js.map +1 -0
  418. package/package.json +23 -13
  419. package/src/db/migrations/0012_vault.sql +51 -0
  420. package/src/db/migrations/0013_crm.sql +67 -0
  421. package/src/db/migrations/0014_billing.sql +146 -0
  422. package/src/db/migrations/0015_merchant_billing_ar.sql +201 -0
  423. package/src/db/migrations/0016_office_onboarding.sql +162 -0
  424. package/src/db/migrations/0017_office_onboarding_api.sql +21 -0
  425. package/src/db/migrations/0018_office_onboarding_portal_actions.sql +60 -0
  426. package/src/db/migrations/0019_office_onboarding_interaction_review.sql +134 -0
  427. package/src/db/migrations/0020_saas_billing.sql +157 -0
  428. package/src/db/migrations/0021_saas_billing_indexes.sql +23 -0
  429. package/src/db/migrations/0022_saas_billing_multi_product.sql +75 -0
@@ -0,0 +1,430 @@
1
+ import { AppError, uuidv7 } from '@baruk/shared';
2
+ import { appendAudit } from '../audit/audit.js';
3
+ import { withContext } from '../db/context.js';
4
+ import { addItem, addTask, blockOnboarding, cancelOnboarding, completeItem, completeOnboarding, completeTask, createOnboarding, requestDocument, receiveDocument, rejectDocument, rejectItem, startItem, markItemNotApplicable, validateDocument, startOnboarding, unblockOnboarding, } from './domain.js';
5
+ /** Política fail-closed até a capability ser ativada por configuração canônica. */
6
+ export const onboardingDisabledByDefault = {
7
+ isEnabled: () => false,
8
+ };
9
+ export const onboardingEnabledForTests = {
10
+ isEnabled: () => true,
11
+ };
12
+ export class OnboardingFeatureDisabledError extends AppError {
13
+ constructor() {
14
+ super('A capability office_onboarding está desativada', {
15
+ status: 404,
16
+ code: 'ONBOARDING_FEATURE_DISABLED',
17
+ });
18
+ this.name = 'OnboardingFeatureDisabledError';
19
+ }
20
+ }
21
+ export class OnboardingConcurrencyError extends AppError {
22
+ constructor() {
23
+ super('O onboarding foi alterado por outra operação', {
24
+ status: 409,
25
+ code: 'ONBOARDING_VERSION_CONFLICT',
26
+ });
27
+ this.name = 'OnboardingConcurrencyError';
28
+ }
29
+ }
30
+ export async function reserveOnboardingApiIdempotency(db, input) {
31
+ return withContext(db, { tenantId: input.tenantId }, async (tx) => {
32
+ await tx `
33
+ INSERT INTO onboarding_api_idempotency
34
+ (tenant_id, operation, idempotency_key, request_fingerprint)
35
+ VALUES (${input.tenantId}, ${input.operation}, ${input.key}, ${input.fingerprint})
36
+ ON CONFLICT (tenant_id, operation, idempotency_key) DO NOTHING
37
+ `;
38
+ const rows = await tx `
39
+ SELECT request_fingerprint, response, completed_at
40
+ FROM onboarding_api_idempotency
41
+ WHERE tenant_id = ${input.tenantId}
42
+ AND operation = ${input.operation}
43
+ AND idempotency_key = ${input.key}
44
+ `;
45
+ const row = rows[0];
46
+ if (!row)
47
+ return { kind: 'in_progress' };
48
+ if (String(row.request_fingerprint) !== input.fingerprint)
49
+ return { kind: 'conflict' };
50
+ if (row.response !== null && row.response !== undefined)
51
+ return { kind: 'replay', response: row.response };
52
+ return { kind: 'new' };
53
+ });
54
+ }
55
+ export async function completeOnboardingApiIdempotency(db, input) {
56
+ await withContext(db, { tenantId: input.tenantId }, (tx) => tx `
57
+ UPDATE onboarding_api_idempotency
58
+ SET response = ${tx.json(input.response)}, completed_at = now()
59
+ WHERE tenant_id = ${input.tenantId}
60
+ AND operation = ${input.operation}
61
+ AND idempotency_key = ${input.key}
62
+ `.then(() => undefined));
63
+ }
64
+ export async function releaseOnboardingApiIdempotency(db, input) {
65
+ await withContext(db, { tenantId: input.tenantId }, (tx) => tx `
66
+ DELETE FROM onboarding_api_idempotency
67
+ WHERE tenant_id = ${input.tenantId}
68
+ AND operation = ${input.operation}
69
+ AND idempotency_key = ${input.key}
70
+ AND response IS NULL
71
+ `.then(() => undefined));
72
+ }
73
+ function mapOnboarding(row) {
74
+ return {
75
+ id: String(row.id),
76
+ tenantId: String(row.tenant_id),
77
+ clientId: String(row.client_id),
78
+ status: row.status,
79
+ ownerId: row.owner_id ? String(row.owner_id) : null,
80
+ startedAt: row.started_at ? new Date(String(row.started_at)).toISOString() : null,
81
+ dueAt: row.due_at ? new Date(String(row.due_at)).toISOString() : null,
82
+ blockedAt: row.blocked_at ? new Date(String(row.blocked_at)).toISOString() : null,
83
+ completedAt: row.completed_at ? new Date(String(row.completed_at)).toISOString() : null,
84
+ cancelledAt: row.cancelled_at ? new Date(String(row.cancelled_at)).toISOString() : null,
85
+ blockedReason: row.blocked_reason ? String(row.blocked_reason) : null,
86
+ cancellationReason: row.cancellation_reason ? String(row.cancellation_reason) : null,
87
+ version: Number(row.version),
88
+ items: [],
89
+ tasks: [],
90
+ documentRequirements: [],
91
+ };
92
+ }
93
+ function mapItem(row) {
94
+ return {
95
+ id: String(row.id),
96
+ onboardingId: String(row.onboarding_id),
97
+ title: String(row.title),
98
+ description: row.description ? String(row.description) : null,
99
+ status: row.status,
100
+ required: Boolean(row.required),
101
+ assignedTo: row.assigned_to ? String(row.assigned_to) : null,
102
+ dueAt: row.due_at ? new Date(String(row.due_at)).toISOString() : null,
103
+ completedAt: row.completed_at ? new Date(String(row.completed_at)).toISOString() : null,
104
+ rejectionReason: row.rejection_reason ? String(row.rejection_reason) : null,
105
+ order: Number(row.item_order),
106
+ visibility: row.visibility,
107
+ version: Number(row.version),
108
+ };
109
+ }
110
+ function mapTask(row) {
111
+ return {
112
+ id: String(row.id),
113
+ onboardingId: String(row.onboarding_id),
114
+ clientId: String(row.client_id),
115
+ title: String(row.title),
116
+ description: row.description ? String(row.description) : null,
117
+ status: row.status,
118
+ priority: row.priority,
119
+ assignedTo: row.assigned_to ? String(row.assigned_to) : null,
120
+ dueAt: row.due_at ? new Date(String(row.due_at)).toISOString() : null,
121
+ completedAt: row.completed_at ? new Date(String(row.completed_at)).toISOString() : null,
122
+ version: Number(row.version),
123
+ };
124
+ }
125
+ function mapDocument(row) {
126
+ return {
127
+ id: String(row.id),
128
+ onboardingId: String(row.onboarding_id),
129
+ type: String(row.type),
130
+ label: String(row.label),
131
+ status: row.status,
132
+ requestedAt: new Date(String(row.requested_at)).toISOString(),
133
+ receivedAt: row.received_at ? new Date(String(row.received_at)).toISOString() : null,
134
+ validatedAt: row.validated_at ? new Date(String(row.validated_at)).toISOString() : null,
135
+ rejectedAt: row.rejected_at ? new Date(String(row.rejected_at)).toISOString() : null,
136
+ rejectionReason: row.rejection_reason ? String(row.rejection_reason) : null,
137
+ expiresAt: row.expires_at ? new Date(String(row.expires_at)).toISOString() : null,
138
+ canonicalDocumentId: row.canonical_document_id ? String(row.canonical_document_id) : null,
139
+ };
140
+ }
141
+ export async function getOnboarding(tx, id) {
142
+ const rows = await tx `
143
+ SELECT * FROM onboarding_instance WHERE id = ${id}
144
+ `;
145
+ if (!rows[0])
146
+ return null;
147
+ const onboarding = mapOnboarding(rows[0]);
148
+ onboarding.items.push(...(await tx `
149
+ SELECT * FROM onboarding_item
150
+ WHERE onboarding_id = ${id}
151
+ AND (NULLIF(current_setting('app.current_client', true), '') IS NULL OR visibility = 'portal')
152
+ ORDER BY item_order, created_at
153
+ `).map(mapItem));
154
+ onboarding.tasks.push(...(await tx `
155
+ SELECT * FROM onboarding_task WHERE onboarding_id = ${id} ORDER BY created_at
156
+ `).map(mapTask));
157
+ onboarding.documentRequirements.push(...(await tx `
158
+ SELECT * FROM onboarding_document_requirement WHERE onboarding_id = ${id} ORDER BY requested_at
159
+ `).map(mapDocument));
160
+ return onboarding;
161
+ }
162
+ export async function listOnboardings(tx, filter = {}) {
163
+ const rows = await tx `
164
+ SELECT * FROM onboarding_instance
165
+ WHERE (${filter.status ?? null}::text IS NULL OR status = ${filter.status ?? null})
166
+ AND (${filter.clientId ?? null}::uuid IS NULL OR client_id = ${filter.clientId ?? null})
167
+ AND (${filter.ownerId ?? null}::uuid IS NULL OR owner_id = ${filter.ownerId ?? null})
168
+ AND (${filter.dueBefore ?? null}::timestamptz IS NULL OR due_at <= ${filter.dueBefore ?? null})
169
+ AND (${filter.dueAfter ?? null}::timestamptz IS NULL OR due_at >= ${filter.dueAfter ?? null})
170
+ AND (${filter.overdue ?? null}::boolean IS NULL OR ${filter.overdue ?? false} = false OR (
171
+ due_at < now() AND status NOT IN ('completed', 'cancelled')
172
+ ))
173
+ ORDER BY created_at DESC
174
+ LIMIT ${Math.min(filter.limit ?? 50, 100)} OFFSET ${Math.max(filter.offset ?? 0, 0)}
175
+ `;
176
+ const result = [];
177
+ for (const row of rows) {
178
+ const item = await getOnboarding(tx, String(row.id));
179
+ if (item)
180
+ result.push(item);
181
+ }
182
+ return result;
183
+ }
184
+ export async function listOnboardingTimeline(tx, onboardingId, limit = 50, offset = 0) {
185
+ const rows = await tx `
186
+ SELECT event_id, event_type, event_version, occurred_at, actor_id, correlation_id,
187
+ entity_type, entity_id, payload, metadata, count(*) OVER() AS total
188
+ FROM onboarding_event
189
+ WHERE onboarding_id = ${onboardingId}
190
+ ORDER BY occurred_at ASC, event_id ASC
191
+ LIMIT ${Math.min(limit, 100)} OFFSET ${Math.max(offset, 0)}
192
+ `;
193
+ return {
194
+ items: rows.map((row) => ({
195
+ eventId: String(row.event_id),
196
+ eventType: String(row.event_type),
197
+ eventVersion: Number(row.event_version),
198
+ occurredAt: new Date(String(row.occurred_at)).toISOString(),
199
+ actorId: row.actor_id ? String(row.actor_id) : null,
200
+ correlationId: String(row.correlation_id),
201
+ entityType: String(row.entity_type),
202
+ entityId: String(row.entity_id),
203
+ payload: (row.payload ?? {}),
204
+ metadata: (row.metadata ?? {}),
205
+ })),
206
+ total: rows[0] ? Number(rows[0].total) : 0,
207
+ };
208
+ }
209
+ async function insertEvents(tx, events, clientId) {
210
+ for (const item of events) {
211
+ const onboardingId = item.entityType === 'onboarding' ? item.entityId : String(item.payload.onboardingId);
212
+ await tx `
213
+ INSERT INTO onboarding_event
214
+ (event_id, tenant_id, onboarding_id, client_id, actor_id, event_type, event_version,
215
+ occurred_at, correlation_id, causation_id, entity_type, entity_id, payload, metadata)
216
+ VALUES
217
+ (${item.eventId}, ${item.tenantId}, ${onboardingId},
218
+ ${clientId}, ${item.actorId}, ${item.eventType}, ${item.eventVersion}, ${item.occurredAt},
219
+ ${item.correlationId}, ${item.causationId}, ${item.entityType}, ${item.entityId},
220
+ ${tx.json(item.payload)}, ${tx.json(item.metadata)})
221
+ ON CONFLICT (event_id) DO NOTHING
222
+ `;
223
+ }
224
+ }
225
+ async function replaceChildren(tx, onboarding) {
226
+ await tx `DELETE FROM onboarding_item WHERE tenant_id = ${onboarding.tenantId} AND onboarding_id = ${onboarding.id}`;
227
+ await tx `DELETE FROM onboarding_task WHERE tenant_id = ${onboarding.tenantId} AND onboarding_id = ${onboarding.id}`;
228
+ await tx `DELETE FROM onboarding_document_requirement WHERE tenant_id = ${onboarding.tenantId} AND onboarding_id = ${onboarding.id}`;
229
+ for (const item of onboarding.items) {
230
+ await tx `
231
+ INSERT INTO onboarding_item
232
+ (id, tenant_id, onboarding_id, client_id, title, description, status, required, assigned_to,
233
+ due_at, completed_at, rejection_reason, item_order, visibility, version)
234
+ VALUES (${item.id}, ${onboarding.tenantId}, ${onboarding.id}, ${onboarding.clientId}, ${item.title},
235
+ ${item.description}, ${item.status}, ${item.required}, ${item.assignedTo}, ${item.dueAt},
236
+ ${item.completedAt}, ${item.rejectionReason}, ${item.order}, ${item.visibility}, ${item.version})
237
+ `;
238
+ }
239
+ for (const task of onboarding.tasks) {
240
+ await tx `
241
+ INSERT INTO onboarding_task
242
+ (id, tenant_id, onboarding_id, client_id, title, description, status, priority, assigned_to,
243
+ due_at, completed_at, version)
244
+ VALUES (${task.id}, ${onboarding.tenantId}, ${onboarding.id}, ${onboarding.clientId}, ${task.title},
245
+ ${task.description}, ${task.status}, ${task.priority}, ${task.assignedTo}, ${task.dueAt},
246
+ ${task.completedAt}, ${task.version})
247
+ `;
248
+ }
249
+ for (const document of onboarding.documentRequirements) {
250
+ await tx `
251
+ INSERT INTO onboarding_document_requirement
252
+ (id, tenant_id, onboarding_id, client_id, type, label, status, requested_at, received_at,
253
+ validated_at, rejected_at, rejection_reason, expires_at, canonical_document_id)
254
+ VALUES (${document.id}, ${onboarding.tenantId}, ${onboarding.id}, ${onboarding.clientId}, ${document.type},
255
+ ${document.label}, ${document.status}, ${document.requestedAt}, ${document.receivedAt},
256
+ ${document.validatedAt}, ${document.rejectedAt}, ${document.rejectionReason}, ${document.expiresAt},
257
+ ${document.canonicalDocumentId})
258
+ `;
259
+ }
260
+ }
261
+ export async function createOnboardingRecord(tx, onboarding) {
262
+ await tx `
263
+ INSERT INTO onboarding_instance
264
+ (id, tenant_id, client_id, status, owner_id, due_at, version)
265
+ VALUES (${onboarding.id}, ${onboarding.tenantId}, ${onboarding.clientId}, ${onboarding.status},
266
+ ${onboarding.ownerId}, ${onboarding.dueAt}, ${onboarding.version})
267
+ `;
268
+ }
269
+ export async function saveOnboarding(tx, onboarding, expectedVersion) {
270
+ const rows = await tx `
271
+ UPDATE onboarding_instance SET
272
+ status = ${onboarding.status}, owner_id = ${onboarding.ownerId}, started_at = ${onboarding.startedAt},
273
+ due_at = ${onboarding.dueAt}, blocked_at = ${onboarding.blockedAt}, completed_at = ${onboarding.completedAt},
274
+ cancelled_at = ${onboarding.cancelledAt}, blocked_reason = ${onboarding.blockedReason},
275
+ cancellation_reason = ${onboarding.cancellationReason}, version = ${onboarding.version}, updated_at = now()
276
+ WHERE tenant_id = ${onboarding.tenantId} AND id = ${onboarding.id} AND version = ${expectedVersion}
277
+ RETURNING id
278
+ `;
279
+ if (!rows[0])
280
+ throw new OnboardingConcurrencyError();
281
+ await replaceChildren(tx, onboarding);
282
+ }
283
+ async function commitChange(tx, onboarding, events, action, actorId, expectedVersion) {
284
+ await saveOnboarding(tx, onboarding, expectedVersion);
285
+ await insertEvents(tx, events, onboarding.clientId);
286
+ await appendAudit(tx, {
287
+ actorId,
288
+ action,
289
+ resourceType: 'onboarding',
290
+ resourceId: onboarding.id,
291
+ metadata: { version: onboarding.version, eventCount: events.length },
292
+ });
293
+ return onboarding;
294
+ }
295
+ export function createOnboardingApplication(db, policy = onboardingDisabledByDefault, idFactory = { next: uuidv7 }) {
296
+ async function run(tenantId, context, operation, clientId) {
297
+ if (!policy.isEnabled(tenantId))
298
+ throw new OnboardingFeatureDisabledError();
299
+ return withContext(db, { tenantId, userId: context.actorId, clientId }, operation);
300
+ }
301
+ async function load(tx, id) {
302
+ const onboarding = await getOnboarding(tx, id);
303
+ if (!onboarding)
304
+ throw new Error('Onboarding não encontrado');
305
+ return onboarding;
306
+ }
307
+ const mutate = (fn, action) => (tenantId, id, context) => run(tenantId, context, async (tx) => {
308
+ const onboarding = await load(tx, id);
309
+ const expected = context.expectedVersion ?? onboarding.version;
310
+ const change = fn(onboarding, context);
311
+ return commitChange(tx, onboarding, change.events, action, context.actorId, expected);
312
+ });
313
+ return {
314
+ async create(input, context) {
315
+ return run(input.tenantId, context, async (tx) => {
316
+ const change = createOnboarding(input, context, idFactory);
317
+ await createOnboardingRecord(tx, change.value);
318
+ await insertEvents(tx, change.events, change.value.clientId);
319
+ await appendAudit(tx, {
320
+ actorId: context.actorId,
321
+ action: 'onboarding.create',
322
+ resourceType: 'onboarding',
323
+ resourceId: change.value.id,
324
+ });
325
+ return change.value;
326
+ });
327
+ },
328
+ async get(tenantId, id, clientId) {
329
+ if (!policy.isEnabled(tenantId))
330
+ throw new OnboardingFeatureDisabledError();
331
+ return withContext(db, { tenantId, clientId }, (tx) => getOnboarding(tx, id));
332
+ },
333
+ async list(tenantId, filter) {
334
+ if (!policy.isEnabled(tenantId))
335
+ throw new OnboardingFeatureDisabledError();
336
+ return withContext(db, { tenantId, clientId: filter?.clientId }, (tx) => listOnboardings(tx, filter));
337
+ },
338
+ async timeline(tenantId, id, limit, offset, clientId) {
339
+ if (!policy.isEnabled(tenantId))
340
+ throw new OnboardingFeatureDisabledError();
341
+ return withContext(db, { tenantId, clientId }, async (tx) => {
342
+ if (!(await getOnboarding(tx, id)))
343
+ throw new Error('Onboarding não encontrado');
344
+ return listOnboardingTimeline(tx, id, limit, offset);
345
+ });
346
+ },
347
+ start: mutate((o, c) => startOnboarding(o, c, idFactory), 'onboarding.start'),
348
+ block: (tenantId, id, reason, context) => run(tenantId, context, async (tx) => {
349
+ const o = await load(tx, id);
350
+ const v = context.expectedVersion ?? o.version;
351
+ const c = blockOnboarding(o, reason, context, idFactory);
352
+ return commitChange(tx, o, c.events, 'onboarding.block', context.actorId, v);
353
+ }),
354
+ unblock: mutate((o, c) => unblockOnboarding(o, c, idFactory), 'onboarding.unblock'),
355
+ complete: mutate((o, c) => completeOnboarding(o, c, idFactory), 'onboarding.complete'),
356
+ cancel: (tenantId, id, reason, context) => run(tenantId, context, async (tx) => {
357
+ const o = await load(tx, id);
358
+ const v = context.expectedVersion ?? o.version;
359
+ const c = cancelOnboarding(o, reason, context, idFactory);
360
+ return commitChange(tx, o, c.events, 'onboarding.cancel', context.actorId, v);
361
+ }),
362
+ addItem: (tenantId, id, input, context) => run(tenantId, context, async (tx) => {
363
+ const o = await load(tx, id);
364
+ const v = context.expectedVersion ?? o.version;
365
+ const c = addItem(o, input, context, idFactory);
366
+ return commitChange(tx, o, c.events, 'onboarding.item.create', context.actorId, v);
367
+ }),
368
+ completeItem: (tenantId, id, itemId, context) => run(tenantId, context, async (tx) => {
369
+ const o = await load(tx, id);
370
+ const v = context.expectedVersion ?? o.version;
371
+ const c = completeItem(o, itemId, context, idFactory);
372
+ return commitChange(tx, o, c.events, 'onboarding.item.complete', context.actorId, v);
373
+ }),
374
+ startItem: (tenantId, id, itemId, context) => run(tenantId, context, async (tx) => {
375
+ const o = await load(tx, id);
376
+ const v = context.expectedVersion ?? o.version;
377
+ const c = startItem(o, itemId, context, idFactory);
378
+ return commitChange(tx, o, c.events, 'onboarding.item.start', context.actorId, v);
379
+ }),
380
+ rejectItem: (tenantId, id, itemId, reason, context) => run(tenantId, context, async (tx) => {
381
+ const o = await load(tx, id);
382
+ const v = context.expectedVersion ?? o.version;
383
+ const c = rejectItem(o, itemId, reason, context, idFactory);
384
+ return commitChange(tx, o, c.events, 'onboarding.item.reject', context.actorId, v);
385
+ }),
386
+ markItemNotApplicable: (tenantId, id, itemId, context) => run(tenantId, context, async (tx) => {
387
+ const o = await load(tx, id);
388
+ const v = context.expectedVersion ?? o.version;
389
+ const c = markItemNotApplicable(o, itemId, context, idFactory);
390
+ return commitChange(tx, o, c.events, 'onboarding.item.not_applicable', context.actorId, v);
391
+ }),
392
+ addTask: (tenantId, id, input, context) => run(tenantId, context, async (tx) => {
393
+ const o = await load(tx, id);
394
+ const v = context.expectedVersion ?? o.version;
395
+ const c = addTask(o, input, context, idFactory);
396
+ return commitChange(tx, o, c.events, 'onboarding.task.create', context.actorId, v);
397
+ }),
398
+ completeTask: (tenantId, id, taskId, context) => run(tenantId, context, async (tx) => {
399
+ const o = await load(tx, id);
400
+ const v = context.expectedVersion ?? o.version;
401
+ const c = completeTask(o, taskId, context, idFactory);
402
+ return commitChange(tx, o, c.events, 'onboarding.task.complete', context.actorId, v);
403
+ }),
404
+ requestDocument: (tenantId, id, input, context) => run(tenantId, context, async (tx) => {
405
+ const o = await load(tx, id);
406
+ const v = context.expectedVersion ?? o.version;
407
+ const c = requestDocument(o, input, context, idFactory);
408
+ return commitChange(tx, o, c.events, 'onboarding.document.request', context.actorId, v);
409
+ }),
410
+ receiveDocument: (tenantId, id, requirementId, context) => run(tenantId, context, async (tx) => {
411
+ const o = await load(tx, id);
412
+ const v = context.expectedVersion ?? o.version;
413
+ const c = receiveDocument(o, requirementId, context, idFactory);
414
+ return commitChange(tx, o, c.events, 'onboarding.document.received', context.actorId, v);
415
+ }),
416
+ validateDocument: (tenantId, id, requirementId, context) => run(tenantId, context, async (tx) => {
417
+ const o = await load(tx, id);
418
+ const v = context.expectedVersion ?? o.version;
419
+ const c = validateDocument(o, requirementId, context, idFactory);
420
+ return commitChange(tx, o, c.events, 'onboarding.document.validate', context.actorId, v);
421
+ }),
422
+ rejectDocument: (tenantId, id, requirementId, reason, context) => run(tenantId, context, async (tx) => {
423
+ const o = await load(tx, id);
424
+ const v = context.expectedVersion ?? o.version;
425
+ const c = rejectDocument(o, requirementId, reason, context, idFactory);
426
+ return commitChange(tx, o, c.events, 'onboarding.document.reject', context.actorId, v);
427
+ }),
428
+ };
429
+ }
430
+ //# sourceMappingURL=persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/onboarding/persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { Tx } from '../db/client.js';
2
+ export type PortalInteractionKind = 'response' | 'comment' | 'external_delivery_confirmation' | 'office_public_reply';
3
+ export type PortalInteractionStatus = 'submitted' | 'under_review' | 'needs_clarification' | 'accepted' | 'superseded';
4
+ export type ExternalChannel = 'email' | 'whatsapp' | 'in_person' | 'other';
5
+ export interface PortalInteractionContext {
6
+ tenantId: string;
7
+ clientId: string;
8
+ actorId: string;
9
+ correlationId: string;
10
+ requestId?: string;
11
+ }
12
+ export interface PortalInteractionDTO {
13
+ id: string;
14
+ kind: PortalInteractionKind;
15
+ status: PortalInteractionStatus;
16
+ text: string | null;
17
+ channel: ExternalChannel | null;
18
+ deliveredAt: string | null;
19
+ createdAt: string;
20
+ updatedAt: string;
21
+ publicAuthorLabel: string;
22
+ relatedItemId: string | null;
23
+ relatedRequirementId: string | null;
24
+ allowedActions: string[];
25
+ }
26
+ export declare function createPortalInteraction(tx: Tx, ctx: PortalInteractionContext, input: {
27
+ kind: 'response';
28
+ onboardingId: string;
29
+ itemId: string;
30
+ text: string;
31
+ supersedesId?: string;
32
+ } | {
33
+ kind: 'comment';
34
+ onboardingId: string;
35
+ text: string;
36
+ } | {
37
+ kind: 'external_delivery_confirmation';
38
+ onboardingId: string;
39
+ requirementId: string;
40
+ channel: ExternalChannel;
41
+ deliveredAt: string;
42
+ note?: string;
43
+ }): Promise<PortalInteractionDTO>;
44
+ export declare function listPortalInteractions(tx: Tx, ctx: PortalInteractionContext, onboardingId: string, limit?: number, offset?: number): Promise<{
45
+ items: PortalInteractionDTO[];
46
+ total: number;
47
+ }>;
48
+ //# sourceMappingURL=portal-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-actions.d.ts","sourceRoot":"","sources":["../../src/onboarding/portal-actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAG1C,MAAM,MAAM,qBAAqB,GAC/B,UAAU,GAAG,SAAS,GAAG,gCAAgC,GAAG,qBAAqB,CAAC;AACpF,MAAM,MAAM,uBAAuB,GACjC,WAAW,GAAG,cAAc,GAAG,qBAAqB,GAAG,UAAU,GAAG,YAAY,CAAC;AACnF,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAE3E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,uBAAuB,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAsFD,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvD;IACE,IAAI,EAAE,gCAAgC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACJ,OAAO,CAAC,oBAAoB,CAAC,CA6D/B;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,wBAAwB,EAC7B,YAAY,EAAE,MAAM,EACpB,KAAK,SAAK,EACV,MAAM,SAAI,GACT,OAAO,CAAC;IAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAwB3D"}