@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,143 @@
1
+ export type EmailAddress = string;
2
+ /** "queued" não existe (RFC §4.1/§4.6 — a capability é síncrona e 1:1; fila é responsabilidade do consumidor). */
3
+ export type DeliveryStatus = 'sent' | 'failed' | 'skipped';
4
+ /**
5
+ * Códigos organizados por retryability (RFC §5), não por causa técnica:
6
+ * - transitório (retry seguro): "timeout" | "provider-unavailable"
7
+ * - permanente (retry nunca resolve): "invalid-recipient" | "provider-rejected"
8
+ * - "unknown" trata-se como permanente por padrão
9
+ */
10
+ export type DeliveryErrorCode = 'timeout' | 'provider-unavailable' | 'invalid-recipient' | 'provider-rejected' | 'unknown';
11
+ export interface DeliveryResult {
12
+ status: DeliveryStatus;
13
+ /** id retornado pelo provider (ex.: id do Resend), presente apenas quando status === 'sent'. */
14
+ providerId?: string;
15
+ /**
16
+ * status === 'skipped' DEVE ser tratado pelo consumidor como "não entregue" (falha suave),
17
+ * nunca como sucesso (RFC §5, R2).
18
+ */
19
+ error?: {
20
+ code: DeliveryErrorCode;
21
+ /** Nunca contém a credencial do provider (invariante, RFC §4.2). */
22
+ message: string;
23
+ };
24
+ }
25
+ export interface SendTransactionalEmailInput {
26
+ to: EmailAddress;
27
+ /** id resolvido pelo TemplateRenderer do consumidor (RFC §4.3). */
28
+ template: string;
29
+ data: Record<string, unknown>;
30
+ /**
31
+ * Dedup só se aplica quando fornecida explicitamente (RFC §4.2, G2).
32
+ * Sem idempotencyKey, nenhuma deduplicação é feita.
33
+ */
34
+ idempotencyKey?: string;
35
+ tag?: string;
36
+ /** Maior precedência de resolução de remetente (RFC §4.5). */
37
+ from?: EmailAddress;
38
+ /** Usado pelo SenderResolver quando `from` não é fornecido (RFC §4.5). */
39
+ brand?: string;
40
+ replyTo?: EmailAddress;
41
+ }
42
+ export interface TransactionalEmailCapability {
43
+ sendTransactionalEmail(input: SendTransactionalEmailInput): Promise<DeliveryResult>;
44
+ }
45
+ export interface RenderedEmail {
46
+ subject: string;
47
+ html: string;
48
+ text?: string;
49
+ }
50
+ /** Ponto de extensão plugável — motor de template fica fora do core (RFC §4.3). */
51
+ export interface TemplateRenderer {
52
+ render(template: string, data: Record<string, unknown>): RenderedEmail;
53
+ }
54
+ /** Ponto de extensão plugável — resolução de remetente por marca/tenant (RFC §4.5). */
55
+ export interface SenderResolver {
56
+ resolveFrom(brand?: string | undefined): EmailAddress;
57
+ }
58
+ /** Ponto de extensão plugável — tracking/observação fica fora do core (RFC §4.8). */
59
+ export interface DeliveryHook {
60
+ beforeSend?(input: SendTransactionalEmailInput): SendTransactionalEmailInput;
61
+ afterSend?(input: SendTransactionalEmailInput, result: DeliveryResult): void;
62
+ }
63
+ /**
64
+ * "shared": store comum entre instâncias — garante o invariante de dedup de fato.
65
+ * "in-memory": cache local por instância — best-effort, NÃO garante dedup sob múltiplas réplicas
66
+ * (RFC §4.2 exige que essa distinção seja declarada explicitamente, não assumida).
67
+ */
68
+ export type DedupStoreMode = 'shared' | 'in-memory';
69
+ export interface DedupEntry {
70
+ result: DeliveryResult;
71
+ expiresAt: number;
72
+ }
73
+ /**
74
+ * Resultado de `DedupStore.reserve` (Bloqueador 2 — Auditoria Codex, RFC §4.2, refinado na
75
+ * Certification Round 2 — 2026-07-21).
76
+ * `acquired: true` — este chamador se tornou o dono do envio: deve enviar e, ao final,
77
+ * chamar `set` com o resultado (sucesso ou falha) para liberar a reserva.
78
+ * `acquired: false` — já existe uma entrada: `entry` traz o resultado assentado quando
79
+ * disponível, ou `null` quando outra chamada está em andamento e ainda não terminou
80
+ * (só pode ocorrer entre processos/réplicas diferentes — dentro do mesmo processo Node,
81
+ * `reserve` nunca retorna `entry: null`, porque o Provider já resolve a coalescência
82
+ * local antes de chegar a chamar `reserve` uma segunda vez para a mesma chave).
83
+ *
84
+ * **Contrato real do Provider canônico para `entry: null`** (Certification Round 2 —
85
+ * antes desta versão, o Provider tratava esse caso como "pode enviar", o que reenviava
86
+ * às cegas e quebrava o próprio invariante de dedup): o Provider aguarda de forma limitada
87
+ * (`remoteReservationPollIntervalMs`/`remoteReservationMaxWaitMs`) por um resultado assentado
88
+ * antes de decidir qualquer coisa; se o tempo se esgota, tenta assumir a reserva (presumindo-a
89
+ * órfã) e, falhando isso também, devolve `DeliveryResult` `failed`/`provider-unavailable`
90
+ * (retryable) em vez de enviar de novo. Uma implementação `mode: 'shared'` real precisa expirar
91
+ * reservas órfãs via TTL no próprio store para que a segunda tentativa de `reserve` funcione.
92
+ */
93
+ export type DedupReservation = {
94
+ acquired: true;
95
+ } | {
96
+ acquired: false;
97
+ entry: DedupEntry | null;
98
+ };
99
+ export interface DedupStore {
100
+ readonly mode: DedupStoreMode;
101
+ /** DEVE retornar `null` para entradas já expiradas — o Provider não reconfere `expiresAt`. */
102
+ get(key: string): Promise<DedupEntry | null> | DedupEntry | null;
103
+ set(key: string, entry: DedupEntry): Promise<void> | void;
104
+ /**
105
+ * Operação atômica de "reservar ou ler" — é o mecanismo real de deduplicação sob
106
+ * concorrência (Bloqueador 2). Implementações `mode: 'shared'` DEVEM usar um primitivo
107
+ * atômico do próprio store (ex.: `SETNX`/Lua no Redis, `INSERT ... ON CONFLICT DO NOTHING`
108
+ * no Postgres) para que a garantia valha entre processos/réplicas, não só dentro de um
109
+ * processo Node. `InMemoryDedupStore` (`mode: 'in-memory'`) só garante atomicidade dentro
110
+ * do mesmo processo — nunca prometa mais que isso para um store que não seja distribuído.
111
+ */
112
+ reserve(key: string, ttlMs: number): Promise<DedupReservation> | DedupReservation;
113
+ }
114
+ /**
115
+ * Versão do contrato público desta capability (RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001 §12, SemVer próprio
116
+ * de capability — independente da versão do pacote `@baruk/core`, que versiona o motor inteiro, não uma
117
+ * capability isolada). `0.2.1`: hardening pré-certificação (Capability Certification 001, Auditoria Codex)
118
+ * — sanitização de segredos, dedup atômica, validação de endereço, exceções internas contidas. `0.2.2`:
119
+ * hardening pós-Certification Round 2 — sanitização genérica estendida (URI-embedded credentials, token
120
+ * estruturado, alta entropia) e coalescência distribuída real (espera limitada por reserva remota em
121
+ * andamento, nunca reenvio às cegas). Nenhuma das duas mudou assinatura pública (patch, não minor/major).
122
+ */
123
+ export declare const TRANSACTIONAL_EMAIL_CONTRACT_VERSION = "0.2.2";
124
+ /** Janela mínima de deduplicação exigida pela RFC §4.2 (24h) — implementações podem manter por mais tempo, nunca menos. */
125
+ export declare const MIN_DEDUP_WINDOW_MS: number;
126
+ /** Timeout padrão do Provider (RFC §5 — herdado empiricamente da implementação mais madura do inventário). */
127
+ export declare const DEFAULT_TIMEOUT_MS = 12000;
128
+ /**
129
+ * Default de poll ao aguardar uma reserva remota em andamento num `DedupStore` `mode: 'shared'`
130
+ * (Bloqueador 2 — Certification Round 2). Baixo o suficiente para não atrasar percebivelmente
131
+ * o caso comum (reserva local, sem espera nenhuma).
132
+ */
133
+ export declare const DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS = 200;
134
+ /**
135
+ * Default de tempo máximo de espera por uma reserva remota antes de tentar assumi-la e,
136
+ * falhando isso, devolver falha determinística retryable (Bloqueador 2 — Certification Round 2).
137
+ * Maior que `DEFAULT_TIMEOUT_MS` — dá à instância dona tempo de terminar o próprio envio
138
+ * (que pode levar até `DEFAULT_TIMEOUT_MS`) antes desta instância desistir de esperar.
139
+ */
140
+ export declare const DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS = 15000;
141
+ /** Utilitário de conveniência para o consumidor decidir retry — não usado internamente pelo core (RFC §5). */
142
+ export declare function isRetryableError(code: DeliveryErrorCode): boolean;
143
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ // cap.communication.transactional-email — contrato canônico (RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001 v0.2).
2
+ // Ver docs/governance/RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001.md no repo baruk-ecosystem.
3
+ /**
4
+ * Versão do contrato público desta capability (RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001 §12, SemVer próprio
5
+ * de capability — independente da versão do pacote `@baruk/core`, que versiona o motor inteiro, não uma
6
+ * capability isolada). `0.2.1`: hardening pré-certificação (Capability Certification 001, Auditoria Codex)
7
+ * — sanitização de segredos, dedup atômica, validação de endereço, exceções internas contidas. `0.2.2`:
8
+ * hardening pós-Certification Round 2 — sanitização genérica estendida (URI-embedded credentials, token
9
+ * estruturado, alta entropia) e coalescência distribuída real (espera limitada por reserva remota em
10
+ * andamento, nunca reenvio às cegas). Nenhuma das duas mudou assinatura pública (patch, não minor/major).
11
+ */
12
+ export const TRANSACTIONAL_EMAIL_CONTRACT_VERSION = '0.2.2';
13
+ /** Janela mínima de deduplicação exigida pela RFC §4.2 (24h) — implementações podem manter por mais tempo, nunca menos. */
14
+ export const MIN_DEDUP_WINDOW_MS = 24 * 60 * 60 * 1000;
15
+ /** Timeout padrão do Provider (RFC §5 — herdado empiricamente da implementação mais madura do inventário). */
16
+ export const DEFAULT_TIMEOUT_MS = 12_000;
17
+ /**
18
+ * Default de poll ao aguardar uma reserva remota em andamento num `DedupStore` `mode: 'shared'`
19
+ * (Bloqueador 2 — Certification Round 2). Baixo o suficiente para não atrasar percebivelmente
20
+ * o caso comum (reserva local, sem espera nenhuma).
21
+ */
22
+ export const DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS = 200;
23
+ /**
24
+ * Default de tempo máximo de espera por uma reserva remota antes de tentar assumi-la e,
25
+ * falhando isso, devolver falha determinística retryable (Bloqueador 2 — Certification Round 2).
26
+ * Maior que `DEFAULT_TIMEOUT_MS` — dá à instância dona tempo de terminar o próprio envio
27
+ * (que pode levar até `DEFAULT_TIMEOUT_MS`) antes desta instância desistir de esperar.
28
+ */
29
+ export const DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS = 15_000;
30
+ /** Utilitário de conveniência para o consumidor decidir retry — não usado internamente pelo core (RFC §5). */
31
+ export function isRetryableError(code) {
32
+ return code === 'timeout' || code === 'provider-unavailable';
33
+ }
34
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mail/types.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,yFAAyF;AA6HzF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAC;AAE5D,2HAA2H;AAC3H,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD,8GAA8G;AAC9G,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,2CAA2C,GAAG,GAAG,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,MAAM,CAAC;AAE7D,8GAA8G;AAC9G,MAAM,UAAU,gBAAgB,CAAC,IAAuB;IACtD,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,sBAAsB,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,146 @@
1
+ import { AppError } from '@baruk/shared';
2
+ export type OnboardingStatus = 'draft' | 'active' | 'blocked' | 'completed' | 'cancelled';
3
+ export type OnboardingItemStatus = 'pending' | 'in_progress' | 'completed' | 'rejected' | 'not_applicable';
4
+ export type OnboardingTaskStatus = 'pending' | 'in_progress' | 'completed' | 'cancelled';
5
+ export type OnboardingTaskPriority = 'low' | 'normal' | 'high' | 'urgent';
6
+ export type DocumentRequirementStatus = 'requested' | 'received' | 'validated' | 'rejected';
7
+ export interface OnboardingClock {
8
+ now(): string;
9
+ }
10
+ export interface OnboardingIdFactory {
11
+ next(): string;
12
+ }
13
+ export interface OnboardingOperationContext {
14
+ actorId: string;
15
+ correlationId: string;
16
+ clock: OnboardingClock;
17
+ expectedVersion?: number;
18
+ expectedItemVersion?: number;
19
+ }
20
+ export interface Onboarding {
21
+ readonly id: string;
22
+ readonly tenantId: string;
23
+ readonly clientId: string;
24
+ status: OnboardingStatus;
25
+ ownerId: string | null;
26
+ startedAt: string | null;
27
+ dueAt: string | null;
28
+ blockedAt: string | null;
29
+ completedAt: string | null;
30
+ cancelledAt: string | null;
31
+ blockedReason: string | null;
32
+ cancellationReason: string | null;
33
+ version: number;
34
+ readonly items: OnboardingItem[];
35
+ readonly tasks: OnboardingTask[];
36
+ readonly documentRequirements: DocumentRequirement[];
37
+ }
38
+ export interface OnboardingItem {
39
+ readonly id: string;
40
+ readonly onboardingId: string;
41
+ title: string;
42
+ description: string | null;
43
+ status: OnboardingItemStatus;
44
+ required: boolean;
45
+ assignedTo: string | null;
46
+ dueAt: string | null;
47
+ completedAt: string | null;
48
+ rejectionReason: string | null;
49
+ order: number;
50
+ visibility: 'internal' | 'portal';
51
+ version: number;
52
+ }
53
+ export interface OnboardingTask {
54
+ readonly id: string;
55
+ readonly onboardingId: string;
56
+ readonly clientId: string;
57
+ title: string;
58
+ description: string | null;
59
+ status: OnboardingTaskStatus;
60
+ priority: OnboardingTaskPriority;
61
+ assignedTo: string | null;
62
+ dueAt: string | null;
63
+ completedAt: string | null;
64
+ version: number;
65
+ }
66
+ export interface DocumentRequirement {
67
+ readonly id: string;
68
+ readonly onboardingId: string;
69
+ type: string;
70
+ label: string;
71
+ status: DocumentRequirementStatus;
72
+ requestedAt: string;
73
+ receivedAt: string | null;
74
+ validatedAt: string | null;
75
+ rejectedAt: string | null;
76
+ rejectionReason: string | null;
77
+ expiresAt: string | null;
78
+ canonicalDocumentId: string | null;
79
+ }
80
+ export interface OnboardingEvent {
81
+ readonly eventId: string;
82
+ readonly eventType: string;
83
+ readonly eventVersion: 1;
84
+ readonly occurredAt: string;
85
+ readonly tenantId: string;
86
+ readonly actorId: string;
87
+ readonly entityType: 'onboarding' | 'onboarding_item' | 'onboarding_task' | 'document_requirement';
88
+ readonly entityId: string;
89
+ readonly correlationId: string;
90
+ readonly causationId: string | null;
91
+ readonly payload: Readonly<Record<string, string | number | boolean | null>>;
92
+ readonly metadata: Readonly<Record<string, string | number | boolean | null>>;
93
+ }
94
+ export interface DomainChange<T> {
95
+ readonly value: T;
96
+ readonly events: readonly OnboardingEvent[];
97
+ }
98
+ export declare class OnboardingDomainError extends AppError {
99
+ constructor(code: string, message: string, details?: unknown);
100
+ }
101
+ export interface CreateOnboardingInput {
102
+ tenantId: string;
103
+ clientId: string;
104
+ ownerId?: string | null;
105
+ dueAt?: string | null;
106
+ }
107
+ export declare function createOnboarding(input: CreateOnboardingInput, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<Onboarding>;
108
+ export declare function startOnboarding(onboarding: Onboarding, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<Onboarding>;
109
+ export declare function blockOnboarding(onboarding: Onboarding, reason: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<Onboarding>;
110
+ export declare function unblockOnboarding(onboarding: Onboarding, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<Onboarding>;
111
+ export declare function completeOnboarding(onboarding: Onboarding, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<Onboarding>;
112
+ export declare function cancelOnboarding(onboarding: Onboarding, reason: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<Onboarding>;
113
+ export interface AddItemInput {
114
+ title: string;
115
+ description?: string | null;
116
+ required?: boolean;
117
+ assignedTo?: string | null;
118
+ dueAt?: string | null;
119
+ order?: number;
120
+ visibility?: 'internal' | 'portal';
121
+ }
122
+ export declare function addItem(onboarding: Onboarding, input: AddItemInput, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<OnboardingItem>;
123
+ export declare function completeItem(onboarding: Onboarding, itemId: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<OnboardingItem>;
124
+ export declare function startItem(onboarding: Onboarding, itemId: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<OnboardingItem>;
125
+ export declare function markItemNotApplicable(onboarding: Onboarding, itemId: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<OnboardingItem>;
126
+ export declare function rejectItem(onboarding: Onboarding, itemId: string, reason: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<OnboardingItem>;
127
+ export interface AddTaskInput {
128
+ title: string;
129
+ description?: string | null;
130
+ priority?: OnboardingTaskPriority;
131
+ assignedTo?: string | null;
132
+ dueAt?: string | null;
133
+ }
134
+ export declare function addTask(onboarding: Onboarding, input: AddTaskInput, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<OnboardingTask>;
135
+ export declare function completeTask(onboarding: Onboarding, taskId: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<OnboardingTask>;
136
+ export declare function isOverdue(onboarding: Onboarding, now: string): boolean;
137
+ export interface AddDocumentRequirementInput {
138
+ type: string;
139
+ label: string;
140
+ expiresAt?: string | null;
141
+ }
142
+ export declare function requestDocument(onboarding: Onboarding, input: AddDocumentRequirementInput, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<DocumentRequirement>;
143
+ export declare function receiveDocument(onboarding: Onboarding, requirementId: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<DocumentRequirement>;
144
+ export declare function validateDocument(onboarding: Onboarding, requirementId: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<DocumentRequirement>;
145
+ export declare function rejectDocument(onboarding: Onboarding, requirementId: string, reason: string, context: OnboardingOperationContext, idFactory: OnboardingIdFactory): DomainChange<DocumentRequirement>;
146
+ //# sourceMappingURL=domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/onboarding/domain.ts"],"names":[],"mappings":"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"}