@baruk/core 0.1.0 → 0.3.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 +63 -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 +43 -0
  213. package/dist/commercial-catalog/coupon.d.ts.map +1 -0
  214. package/dist/commercial-catalog/coupon.js +57 -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 +175 -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
@@ -4,56 +4,449 @@
4
4
  * adicionais via seu próprio seed — sem alterar o Core.
5
5
  */
6
6
  export const PERMISSIONS = [
7
+ {
8
+ key: 'portal.onboarding.read',
9
+ resource: 'portal.onboarding',
10
+ action: 'read',
11
+ description: 'Ver o próprio onboarding no Portal',
12
+ },
13
+ {
14
+ key: 'portal.onboarding.timeline.read',
15
+ resource: 'portal.onboarding.timeline',
16
+ action: 'read',
17
+ description: 'Ver a timeline pública do próprio onboarding',
18
+ },
19
+ {
20
+ key: 'portal.onboarding.document_requirement.read',
21
+ resource: 'portal.onboarding.document_requirement',
22
+ action: 'read',
23
+ description: 'Ver requisitos documentais públicos',
24
+ },
25
+ {
26
+ key: 'portal.onboarding.response.create',
27
+ resource: 'portal.onboarding.response',
28
+ action: 'create',
29
+ description: 'Responder pendências públicas do próprio onboarding',
30
+ },
31
+ {
32
+ key: 'portal.onboarding.response.read',
33
+ resource: 'portal.onboarding.response',
34
+ action: 'read',
35
+ description: 'Ver respostas públicas do próprio onboarding',
36
+ },
37
+ {
38
+ key: 'portal.onboarding.comment.create',
39
+ resource: 'portal.onboarding.comment',
40
+ action: 'create',
41
+ description: 'Enviar comentário público no próprio onboarding',
42
+ },
43
+ {
44
+ key: 'portal.onboarding.comment.read',
45
+ resource: 'portal.onboarding.comment',
46
+ action: 'read',
47
+ description: 'Ver comentários públicos do próprio onboarding',
48
+ },
49
+ {
50
+ key: 'portal.onboarding.external_delivery.confirm',
51
+ resource: 'portal.onboarding.external_delivery',
52
+ action: 'create',
53
+ description: 'Informar envio externo de documento solicitado',
54
+ },
7
55
  { key: 'client.read', resource: 'client', action: 'read', description: 'Ver clientes' },
8
- { key: 'client.write', resource: 'client', action: 'write', description: 'Criar/editar clientes' },
56
+ {
57
+ key: 'client.write',
58
+ resource: 'client',
59
+ action: 'write',
60
+ description: 'Criar/editar clientes',
61
+ },
9
62
  { key: 'client.delete', resource: 'client', action: 'delete', description: 'Remover clientes' },
10
- { key: 'client.import', resource: 'client', action: 'manage', description: 'Importar clientes (CSV)' },
63
+ {
64
+ key: 'client.import',
65
+ resource: 'client',
66
+ action: 'manage',
67
+ description: 'Importar clientes (CSV)',
68
+ },
11
69
  { key: 'request.read', resource: 'request', action: 'read', description: 'Ver solicitações' },
12
- { key: 'request.create', resource: 'request', action: 'write', description: 'Criar solicitações' },
13
- { key: 'request.comment', resource: 'request', action: 'write', description: 'Comentar solicitações' },
14
- { key: 'request.status.update', resource: 'request', action: 'manage', description: 'Alterar status de solicitações' },
15
- { key: 'user.manage', resource: 'user', action: 'manage', description: 'Gerenciar usuários e memberships' },
70
+ {
71
+ key: 'request.create',
72
+ resource: 'request',
73
+ action: 'write',
74
+ description: 'Criar solicitações',
75
+ },
76
+ {
77
+ key: 'request.comment',
78
+ resource: 'request',
79
+ action: 'write',
80
+ description: 'Comentar solicitações',
81
+ },
82
+ {
83
+ key: 'request.status.update',
84
+ resource: 'request',
85
+ action: 'manage',
86
+ description: 'Alterar status de solicitações',
87
+ },
88
+ {
89
+ key: 'user.manage',
90
+ resource: 'user',
91
+ action: 'manage',
92
+ description: 'Gerenciar usuários e memberships',
93
+ },
16
94
  { key: 'document.read', resource: 'document', action: 'read', description: 'Ver documentos' },
17
- { key: 'document.write', resource: 'document', action: 'write', description: 'Enviar documentos' },
18
- { key: 'finance.charge.create', resource: 'finance', action: 'write', description: 'Emitir cobranças' },
19
- { key: 'vault.credential.decrypt', resource: 'vault', action: 'manage', description: 'Descriptografar credencial do cofre' },
20
- { key: 'communication.send', resource: 'communication', action: 'write', description: 'Enviar comunicações' },
95
+ {
96
+ key: 'document.write',
97
+ resource: 'document',
98
+ action: 'write',
99
+ description: 'Enviar documentos',
100
+ },
101
+ {
102
+ key: 'finance.charge.create',
103
+ resource: 'finance',
104
+ action: 'write',
105
+ description: 'Emitir cobranças',
106
+ },
107
+ {
108
+ key: 'vault.credential.decrypt',
109
+ resource: 'vault',
110
+ action: 'manage',
111
+ description: 'Descriptografar credencial do cofre',
112
+ },
113
+ {
114
+ key: 'communication.send',
115
+ resource: 'communication',
116
+ action: 'write',
117
+ description: 'Enviar comunicações',
118
+ },
21
119
  { key: 'audit.read', resource: 'audit', action: 'read', description: 'Ler trilha de auditoria' },
22
- { key: 'tenant.settings.update', resource: 'tenant', action: 'manage', description: 'Alterar configurações do tenant' },
23
- { key: 'rbac.role.update', resource: 'rbac', action: 'manage', description: 'Gerenciar papéis e permissões' },
120
+ {
121
+ key: 'tenant.settings.update',
122
+ resource: 'tenant',
123
+ action: 'manage',
124
+ description: 'Alterar configurações do tenant',
125
+ },
126
+ {
127
+ key: 'rbac.role.update',
128
+ resource: 'rbac',
129
+ action: 'manage',
130
+ description: 'Gerenciar papéis e permissões',
131
+ },
24
132
  { key: 'user.invite', resource: 'user', action: 'manage', description: 'Convidar usuários' },
133
+ // ── Office Engines (Sprint Platinum) ──────────────────────────────────────
134
+ {
135
+ key: 'crm.read',
136
+ resource: 'crm',
137
+ action: 'read',
138
+ description: 'Ver leads e pipeline comercial',
139
+ },
140
+ {
141
+ key: 'crm.write',
142
+ resource: 'crm',
143
+ action: 'write',
144
+ description: 'Criar/editar leads e negócios',
145
+ },
146
+ { key: 'crm.delete', resource: 'crm', action: 'delete', description: 'Remover leads e negócios' },
147
+ {
148
+ key: 'billing.read',
149
+ resource: 'billing',
150
+ action: 'read',
151
+ description: 'Ver honorários, cobranças e assinaturas',
152
+ },
153
+ {
154
+ key: 'billing.write',
155
+ resource: 'billing',
156
+ action: 'write',
157
+ description: 'Gerenciar cobranças e assinaturas',
158
+ },
159
+ {
160
+ key: 'billing.fee.manage',
161
+ resource: 'billing',
162
+ action: 'manage',
163
+ description: 'Gerenciar acordos de honorários',
164
+ },
165
+ {
166
+ key: 'billing.dunning.manage',
167
+ resource: 'billing',
168
+ action: 'manage',
169
+ description: 'Gerenciar régua de inadimplência',
170
+ },
171
+ {
172
+ key: 'vault.read',
173
+ resource: 'vault',
174
+ action: 'read',
175
+ description: 'Listar credenciais do cofre (metadados)',
176
+ },
177
+ {
178
+ key: 'vault.write',
179
+ resource: 'vault',
180
+ action: 'write',
181
+ description: 'Criar/editar credenciais do cofre',
182
+ },
183
+ {
184
+ key: 'communication.read',
185
+ resource: 'communication',
186
+ action: 'read',
187
+ description: 'Ver mensagens enviadas',
188
+ },
189
+ {
190
+ key: 'communication.template.manage',
191
+ resource: 'communication',
192
+ action: 'manage',
193
+ description: 'Gerenciar modelos de mensagem',
194
+ },
195
+ {
196
+ key: 'automation.read',
197
+ resource: 'automation',
198
+ action: 'read',
199
+ description: 'Ver automações e jobs',
200
+ },
201
+ {
202
+ key: 'automation.manage',
203
+ resource: 'automation',
204
+ action: 'manage',
205
+ description: 'Gerenciar automações e jobs',
206
+ },
207
+ {
208
+ key: 'integration.read',
209
+ resource: 'integration',
210
+ action: 'read',
211
+ description: 'Ver integrações configuradas',
212
+ },
213
+ {
214
+ key: 'integration.manage',
215
+ resource: 'integration',
216
+ action: 'manage',
217
+ description: 'Configurar integrações externas',
218
+ },
219
+ {
220
+ key: 'compliance.read',
221
+ resource: 'compliance',
222
+ action: 'read',
223
+ description: 'Ver obrigações, certificados e procurações',
224
+ },
225
+ {
226
+ key: 'compliance.write',
227
+ resource: 'compliance',
228
+ action: 'write',
229
+ description: 'Gerenciar obrigações, certificados e procurações',
230
+ },
231
+ {
232
+ key: 'office.onboarding.read',
233
+ resource: 'office.onboarding',
234
+ action: 'read',
235
+ description: 'Ver onboardings do Office',
236
+ },
237
+ {
238
+ key: 'office.onboarding.create',
239
+ resource: 'office.onboarding',
240
+ action: 'write',
241
+ description: 'Criar onboardings do Office',
242
+ },
243
+ {
244
+ key: 'office.onboarding.manage',
245
+ resource: 'office.onboarding',
246
+ action: 'manage',
247
+ description: 'Gerenciar itens e transições de onboarding',
248
+ },
249
+ {
250
+ key: 'office.onboarding.complete',
251
+ resource: 'office.onboarding',
252
+ action: 'manage',
253
+ description: 'Concluir onboardings do Office',
254
+ },
255
+ {
256
+ key: 'office.onboarding.cancel',
257
+ resource: 'office.onboarding',
258
+ action: 'manage',
259
+ description: 'Cancelar onboardings do Office',
260
+ },
261
+ {
262
+ key: 'office.onboarding.task.manage',
263
+ resource: 'office.onboarding.task',
264
+ action: 'manage',
265
+ description: 'Gerenciar tarefas de onboarding',
266
+ },
267
+ {
268
+ key: 'office.onboarding.document.manage',
269
+ resource: 'office.onboarding.document',
270
+ action: 'manage',
271
+ description: 'Gerenciar requisitos documentais de onboarding',
272
+ },
273
+ {
274
+ key: 'office.onboarding.timeline.read',
275
+ resource: 'office.onboarding.timeline',
276
+ action: 'read',
277
+ description: 'Ver timeline de onboarding',
278
+ },
279
+ {
280
+ key: 'office.onboarding.interaction.read',
281
+ resource: 'office.onboarding.interaction',
282
+ action: 'read',
283
+ description: 'Ver interações públicas de onboarding',
284
+ },
285
+ {
286
+ key: 'office.onboarding.interaction.review',
287
+ resource: 'office.onboarding.interaction',
288
+ action: 'review',
289
+ description: 'Revisar interações públicas de onboarding',
290
+ },
291
+ {
292
+ key: 'office.onboarding.interaction.assign',
293
+ resource: 'office.onboarding.interaction',
294
+ action: 'assign',
295
+ description: 'Atribuir revisão de interação',
296
+ },
297
+ {
298
+ key: 'office.onboarding.interaction.reply',
299
+ resource: 'office.onboarding.interaction',
300
+ action: 'reply',
301
+ description: 'Responder publicamente a uma interação',
302
+ },
303
+ {
304
+ key: 'office.onboarding.interaction.resolve',
305
+ resource: 'office.onboarding.interaction',
306
+ action: 'resolve',
307
+ description: 'Resolver uma interação revisada',
308
+ },
309
+ {
310
+ key: 'office.onboarding.interaction.internal_note.create',
311
+ resource: 'office.onboarding.interaction.internal_note',
312
+ action: 'create',
313
+ description: 'Adicionar observação interna à revisão',
314
+ },
25
315
  ];
26
316
  export const ALL_PERMISSION_KEYS = PERMISSIONS.map((p) => p.key);
27
317
  const ALL = ALL_PERMISSION_KEYS;
28
318
  /** Papéis de sistema (seed, imutáveis). São templates globais (tenant_id NULL). */
29
319
  export const SYSTEM_ROLES = [
30
320
  { key: 'owner', name: 'Owner', permissions: ALL },
31
- { key: 'admin', name: 'Administrador', permissions: ALL.filter((p) => p !== 'tenant.settings.update') },
321
+ {
322
+ key: 'admin',
323
+ name: 'Administrador',
324
+ permissions: ALL.filter((p) => p !== 'tenant.settings.update'),
325
+ },
32
326
  {
33
327
  key: 'accountant',
34
328
  name: 'Contador',
35
329
  permissions: [
36
- 'client.read', 'client.write', 'client.import', 'document.read', 'document.write',
37
- 'communication.send', 'vault.credential.decrypt',
38
- 'request.read', 'request.create', 'request.comment', 'request.status.update',
330
+ 'client.read',
331
+ 'client.write',
332
+ 'client.import',
333
+ 'document.read',
334
+ 'document.write',
335
+ 'communication.send',
336
+ 'communication.read',
337
+ 'vault.credential.decrypt',
338
+ 'vault.read',
339
+ 'request.read',
340
+ 'request.create',
341
+ 'request.comment',
342
+ 'request.status.update',
343
+ 'crm.read',
344
+ 'crm.write',
345
+ 'billing.read',
346
+ 'billing.write',
347
+ 'billing.fee.manage',
348
+ 'compliance.read',
349
+ 'compliance.write',
350
+ 'office.onboarding.read',
351
+ 'office.onboarding.create',
352
+ 'office.onboarding.manage',
353
+ 'office.onboarding.complete',
354
+ 'office.onboarding.cancel',
355
+ 'office.onboarding.task.manage',
356
+ 'office.onboarding.document.manage',
357
+ 'office.onboarding.timeline.read',
358
+ 'office.onboarding.interaction.read',
359
+ 'office.onboarding.interaction.review',
360
+ 'office.onboarding.interaction.assign',
361
+ 'office.onboarding.interaction.reply',
362
+ 'office.onboarding.interaction.resolve',
363
+ 'office.onboarding.interaction.internal_note.create',
364
+ 'automation.read',
39
365
  ],
40
366
  },
41
367
  {
42
368
  key: 'assistant',
43
369
  name: 'Assistente',
44
- permissions: ['client.read', 'document.read', 'document.write', 'request.read', 'request.comment'],
370
+ permissions: [
371
+ 'client.read',
372
+ 'document.read',
373
+ 'document.write',
374
+ 'request.read',
375
+ 'request.comment',
376
+ 'crm.read',
377
+ 'billing.read',
378
+ 'compliance.read',
379
+ 'communication.read',
380
+ 'office.onboarding.read',
381
+ 'office.onboarding.timeline.read',
382
+ 'office.onboarding.interaction.read',
383
+ 'office.onboarding.interaction.review',
384
+ 'office.onboarding.interaction.assign',
385
+ 'office.onboarding.interaction.reply',
386
+ 'office.onboarding.interaction.resolve',
387
+ 'office.onboarding.interaction.internal_note.create',
388
+ ],
389
+ },
390
+ {
391
+ key: 'finance',
392
+ name: 'Financeiro',
393
+ permissions: [
394
+ 'client.read',
395
+ 'finance.charge.create',
396
+ 'billing.read',
397
+ 'billing.write',
398
+ 'billing.fee.manage',
399
+ 'billing.dunning.manage',
400
+ 'communication.send',
401
+ ],
45
402
  },
46
- { key: 'finance', name: 'Financeiro', permissions: ['client.read', 'finance.charge.create'] },
47
403
  {
48
404
  key: 'communication',
49
405
  name: 'Comunicação',
50
- permissions: ['client.read', 'communication.send', 'request.read', 'request.comment'],
406
+ permissions: [
407
+ 'client.read',
408
+ 'communication.send',
409
+ 'communication.read',
410
+ 'communication.template.manage',
411
+ 'request.read',
412
+ 'request.comment',
413
+ 'crm.read',
414
+ ],
415
+ },
416
+ {
417
+ key: 'readonly',
418
+ name: 'Somente leitura',
419
+ permissions: [
420
+ 'client.read',
421
+ 'document.read',
422
+ 'request.read',
423
+ 'crm.read',
424
+ 'billing.read',
425
+ 'compliance.read',
426
+ 'communication.read',
427
+ 'automation.read',
428
+ 'integration.read',
429
+ 'office.onboarding.read',
430
+ 'office.onboarding.timeline.read',
431
+ ],
51
432
  },
52
- { key: 'readonly', name: 'Somente leitura', permissions: ['client.read', 'document.read', 'request.read'] },
53
433
  {
54
434
  key: 'client_titular',
55
435
  name: 'Cliente — Titular',
56
- permissions: ['document.read', 'communication.send', 'request.read', 'request.comment'],
436
+ permissions: [
437
+ 'document.read',
438
+ 'communication.send',
439
+ 'request.read',
440
+ 'request.comment',
441
+ 'portal.onboarding.read',
442
+ 'portal.onboarding.timeline.read',
443
+ 'portal.onboarding.document_requirement.read',
444
+ 'portal.onboarding.response.create',
445
+ 'portal.onboarding.response.read',
446
+ 'portal.onboarding.comment.create',
447
+ 'portal.onboarding.comment.read',
448
+ 'portal.onboarding.external_delivery.confirm',
449
+ ],
57
450
  },
58
451
  ];
59
452
  //# sourceMappingURL=catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/rbac/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/rbac/catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,CAAC,MAAM,WAAW,GAA6B;IACnD;QACE,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,oCAAoC;KAClD;IACD;QACE,GAAG,EAAE,iCAAiC;QACtC,QAAQ,EAAE,4BAA4B;QACtC,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,8CAA8C;KAC5D;IACD;QACE,GAAG,EAAE,6CAA6C;QAClD,QAAQ,EAAE,wCAAwC;QAClD,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,qCAAqC;KACnD;IACD;QACE,GAAG,EAAE,mCAAmC;QACxC,QAAQ,EAAE,4BAA4B;QACtC,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,GAAG,EAAE,iCAAiC;QACtC,QAAQ,EAAE,4BAA4B;QACtC,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,8CAA8C;KAC5D;IACD;QACE,GAAG,EAAE,kCAAkC;QACvC,QAAQ,EAAE,2BAA2B;QACrC,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,iDAAiD;KAC/D;IACD;QACE,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,2BAA2B;QACrC,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,gDAAgD;KAC9D;IACD;QACE,GAAG,EAAE,6CAA6C;QAClD,QAAQ,EAAE,qCAAqC;QAC/C,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gDAAgD;KAC9D;IACD,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE;IACvF;QACE,GAAG,EAAE,cAAc;QACnB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,uBAAuB;KACrC;IACD,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC/F;QACE,GAAG,EAAE,eAAe;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,yBAAyB;KACvC;IACD,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC7F;QACE,GAAG,EAAE,gBAAgB;QACrB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,uBAAuB;KACrC;IACD;QACE,GAAG,EAAE,uBAAuB;QAC5B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gCAAgC;KAC9C;IACD;QACE,GAAG,EAAE,aAAa;QAClB,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,kCAAkC;KAChD;IACD,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE;IAC7F;QACE,GAAG,EAAE,gBAAgB;QACrB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,mBAAmB;KACjC;IACD;QACE,GAAG,EAAE,uBAAuB;QAC5B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,kBAAkB;KAChC;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,qCAAqC;KACnD;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,qBAAqB;KACnC;IACD,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAChG;QACE,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,+BAA+B;KAC7C;IACD,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;IAC5F,6EAA6E;IAC7E;QACE,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,gCAAgC;KAC9C;IACD;QACE,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,+BAA+B;KAC7C;IACD,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;IACjG;QACE,GAAG,EAAE,cAAc;QACnB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,yCAAyC;KACvD;IACD;QACE,GAAG,EAAE,eAAe;QACpB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,mCAAmC;KACjD;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,kCAAkC;KAChD;IACD;QACE,GAAG,EAAE,YAAY;QACjB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,yCAAyC;KACvD;IACD;QACE,GAAG,EAAE,aAAa;QAClB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,mCAAmC;KACjD;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,wBAAwB;KACtC;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,+BAA+B;KAC7C;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,uBAAuB;KACrC;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,6BAA6B;KAC3C;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,8BAA8B;KAC5C;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,4CAA4C;KAC1D;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,kDAAkD;KAChE;IACD;QACE,GAAG,EAAE,wBAAwB;QAC7B,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,2BAA2B;KACzC;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,6BAA6B;KAC3C;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,4CAA4C;KAC1D;IACD;QACE,GAAG,EAAE,4BAA4B;QACjC,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gCAAgC;KAC9C;IACD;QACE,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gCAAgC;KAC9C;IACD;QACE,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,wBAAwB;QAClC,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,GAAG,EAAE,mCAAmC;QACxC,QAAQ,EAAE,4BAA4B;QACtC,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gDAAgD;KAC9D;IACD;QACE,GAAG,EAAE,iCAAiC;QACtC,QAAQ,EAAE,4BAA4B;QACtC,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,4BAA4B;KAC1C;IACD;QACE,GAAG,EAAE,oCAAoC;QACzC,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,uCAAuC;KACrD;IACD;QACE,GAAG,EAAE,sCAAsC;QAC3C,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,2CAA2C;KACzD;IACD;QACE,GAAG,EAAE,sCAAsC;QAC3C,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,+BAA+B;KAC7C;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,wCAAwC;KACtD;IACD;QACE,GAAG,EAAE,uCAAuC;QAC5C,QAAQ,EAAE,+BAA+B;QACzC,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,GAAG,EAAE,oDAAoD;QACzD,QAAQ,EAAE,6CAA6C;QACvD,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,wCAAwC;KACtD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAsB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAQpF,MAAM,GAAG,GAAG,mBAAmB,CAAC;AAEhC,mFAAmF;AACnF,MAAM,CAAC,MAAM,YAAY,GAAuB;IAC9C,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE;IACjD;QACE,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,wBAAwB,CAAC;KAC/D;IACD;QACE,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE;YACX,aAAa;YACb,cAAc;YACd,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,oBAAoB;YACpB,oBAAoB;YACpB,0BAA0B;YAC1B,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,iBAAiB;YACjB,uBAAuB;YACvB,UAAU;YACV,WAAW;YACX,cAAc;YACd,eAAe;YACf,oBAAoB;YACpB,iBAAiB;YACjB,kBAAkB;YAClB,wBAAwB;YACxB,0BAA0B;YAC1B,0BAA0B;YAC1B,4BAA4B;YAC5B,0BAA0B;YAC1B,+BAA+B;YAC/B,mCAAmC;YACnC,iCAAiC;YACjC,oCAAoC;YACpC,sCAAsC;YACtC,sCAAsC;YACtC,qCAAqC;YACrC,uCAAuC;YACvC,oDAAoD;YACpD,iBAAiB;SAClB;KACF;IACD;QACE,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE;YACX,aAAa;YACb,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,iBAAiB;YACjB,UAAU;YACV,cAAc;YACd,iBAAiB;YACjB,oBAAoB;YACpB,wBAAwB;YACxB,iCAAiC;YACjC,oCAAoC;YACpC,sCAAsC;YACtC,sCAAsC;YACtC,qCAAqC;YACrC,uCAAuC;YACvC,oDAAoD;SACrD;KACF;IACD;QACE,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE;YACX,aAAa;YACb,uBAAuB;YACvB,cAAc;YACd,eAAe;YACf,oBAAoB;YACpB,wBAAwB;YACxB,oBAAoB;SACrB;KACF;IACD;QACE,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE;YACX,aAAa;YACb,oBAAoB;YACpB,oBAAoB;YACpB,+BAA+B;YAC/B,cAAc;YACd,iBAAiB;YACjB,UAAU;SACX;KACF;IACD;QACE,GAAG,EAAE,UAAU;QACf,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE;YACX,aAAa;YACb,eAAe;YACf,cAAc;YACd,UAAU;YACV,cAAc;YACd,iBAAiB;YACjB,oBAAoB;YACpB,iBAAiB;YACjB,kBAAkB;YAClB,wBAAwB;YACxB,iCAAiC;SAClC;KACF;IACD;QACE,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE;YACX,eAAe;YACf,oBAAoB;YACpB,cAAc;YACd,iBAAiB;YACjB,wBAAwB;YACxB,iCAAiC;YACjC,6CAA6C;YAC7C,mCAAmC;YACnC,iCAAiC;YACjC,kCAAkC;YAClC,gCAAgC;YAChC,6CAA6C;SAC9C;KACF;CACF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type DomainEvent } from './events.js';
2
+ import { DEFAULT_DUNNING_STEPS, type DunningStep, type DunningStepDue } from '../billing/dunning.js';
3
+ import type { Subscription } from './types.js';
4
+ /**
5
+ * Regua de inadimplencia — REUSA `../billing/dunning.ts` (pura, generica, ja
6
+ * existente no Concern B) em vez de reimplementar (RFC §8.4, REUSE > CREATE).
7
+ * O Billing decide QUAIS passos estao vencidos; QUEM envia e outra Capability,
8
+ * assinando `subscription.past_due` — nenhuma referencia a canal de envio aqui.
9
+ */
10
+ export { DEFAULT_DUNNING_STEPS };
11
+ export type { DunningStep, DunningStepDue };
12
+ /**
13
+ * Converte os passos vencidos de uma assinatura `past_due` em eventos de dominio.
14
+ * Cada passo vencido vira 1 `subscription.past_due` com `data.dunningStep` —
15
+ * um unico tipo de evento no catalogo (RFC §8.3), o detalhe do passo vai no payload.
16
+ */
17
+ export declare function dunningStepsAsEvents(subscription: Subscription, today: string, executed?: ReadonlySet<string>, steps?: readonly DunningStep[]): DomainEvent[];
18
+ //# sourceMappingURL=dunning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dunning.d.ts","sourceRoot":"","sources":["../../src/subscription-billing/dunning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAmB,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,EACzC,KAAK,GAAE,SAAS,WAAW,EAA0B,GACpD,WAAW,EAAE,CAef"}
@@ -0,0 +1,28 @@
1
+ import { createDomainEvent } from './events.js';
2
+ import { DEFAULT_DUNNING_STEPS, dueDunningSteps } from '../billing/dunning.js';
3
+ /**
4
+ * Regua de inadimplencia — REUSA `../billing/dunning.ts` (pura, generica, ja
5
+ * existente no Concern B) em vez de reimplementar (RFC §8.4, REUSE > CREATE).
6
+ * O Billing decide QUAIS passos estao vencidos; QUEM envia e outra Capability,
7
+ * assinando `subscription.past_due` — nenhuma referencia a canal de envio aqui.
8
+ */
9
+ export { DEFAULT_DUNNING_STEPS };
10
+ /**
11
+ * Converte os passos vencidos de uma assinatura `past_due` em eventos de dominio.
12
+ * Cada passo vencido vira 1 `subscription.past_due` com `data.dunningStep` —
13
+ * um unico tipo de evento no catalogo (RFC §8.3), o detalhe do passo vai no payload.
14
+ */
15
+ export function dunningStepsAsEvents(subscription, today, executed = new Set(), steps = DEFAULT_DUNNING_STEPS) {
16
+ if (subscription.status !== 'past_due' || !subscription.currentPeriodEnd)
17
+ return [];
18
+ const due = dueDunningSteps(steps, { dueDate: subscription.currentPeriodEnd, status: subscription.status }, today, executed);
19
+ return due.map((step, index) => createDomainEvent({
20
+ type: 'subscription.past_due',
21
+ subscriptionId: subscription.subscriptionId,
22
+ tenantId: subscription.tenantId,
23
+ previousSequence: subscription.sequence + index,
24
+ occurredAt: today,
25
+ data: { dunningStep: step },
26
+ }));
27
+ }
28
+ //# sourceMappingURL=dunning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dunning.js","sourceRoot":"","sources":["../../src/subscription-billing/dunning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAyC,MAAM,uBAAuB,CAAC;AAGtH;;;;;GAKG;AACH,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAGjC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,YAA0B,EAC1B,KAAa,EACb,WAAgC,IAAI,GAAG,EAAE,EACzC,QAAgC,qBAAqB;IAErD,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,gBAAgB;QAAE,OAAO,EAAE,CAAC;IAEpF,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE7H,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC7B,iBAAiB,CAAC;QAChB,IAAI,EAAE,uBAAuB;QAC7B,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,gBAAgB,EAAE,YAAY,CAAC,QAAQ,GAAG,KAAK;QAC/C,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;KAC5B,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Eventos de domino (RFC-CAPABILITY-BILLING-001 §8) — o Billing publica FATOS,
3
+ * no passado, e nada mais. Mensageria real (barramento/fila/entrega) e
4
+ * `domain.developer-platform`, fora desta Capability; este arquivo so define o
5
+ * CONTRATO do evento. Nenhuma referencia a Communication/Entitlements aqui —
6
+ * inversao de controle (§8.1): quem precisa assina, o Billing nao conhece quem assina.
7
+ */
8
+ export type SubscriptionEventType = 'subscription.trial_started' | 'subscription.activated' | 'invoice.issued' | 'invoice.paid' | 'invoice.payment_failed' | 'subscription.past_due' | 'subscription.plan_changed' | 'subscription.renewed' | 'subscription.canceled' | 'invoice.refunded';
9
+ /** Obrigatorio = algum consumidor (sempre Entitlements) fica incorreto sem o evento (RFC §8.3). */
10
+ export declare const MANDATORY_EVENT_TYPES: ReadonlySet<SubscriptionEventType>;
11
+ /**
12
+ * Envelope canonico (RFC §8.2) — torna idempotencia, ordem e correlacao
13
+ * PROPRIEDADES DO CONTRATO, nao responsabilidade de cada consumidor.
14
+ */
15
+ export interface DomainEvent<TData = Record<string, unknown>> {
16
+ /** Idempotencia: unico e estavel; o consumidor deduplica por ele. */
17
+ eventId: string;
18
+ type: SubscriptionEventType;
19
+ /** Instante do fato (fonte da ordem temporal) — injetado, nunca `Date.now()` interno. */
20
+ occurredAt: string;
21
+ subscriptionId: string;
22
+ tenantId: string;
23
+ /** Ordem: monotonica POR subscriptionId — detecta evento fora de ordem/atrasado. */
24
+ sequence: number;
25
+ /** Correlacao causal: qual evento gerou este (ex.: `past_due` → `canceled`). */
26
+ causationEventId?: string;
27
+ data: TData;
28
+ }
29
+ export interface CreateEventInput<TData = Record<string, unknown>> {
30
+ type: SubscriptionEventType;
31
+ subscriptionId: string;
32
+ tenantId: string;
33
+ /** Sequence do evento ANTERIOR desta assinatura; o novo evento usa `previousSequence + 1`. */
34
+ previousSequence: number;
35
+ occurredAt: string;
36
+ causationEventId?: string;
37
+ data: TData;
38
+ }
39
+ /** Cria um evento com envelope completo e `sequence` corretamente incrementado. */
40
+ export declare function createDomainEvent<TData = Record<string, unknown>>(input: CreateEventInput<TData>): DomainEvent<TData>;
41
+ export declare function isMandatoryEvent(type: SubscriptionEventType): boolean;
42
+ /**
43
+ * Publicador de eventos — a Capability so define a interface; quem consome
44
+ * (fila real, `domain.developer-platform`) implementa. `NoopEventPublisher`
45
+ * existe so para testes/ambientes sem mensageria configurada.
46
+ */
47
+ export interface EventPublisher {
48
+ publish(event: DomainEvent): Promise<void>;
49
+ }
50
+ export declare class NoopEventPublisher implements EventPublisher {
51
+ publish(): Promise<void>;
52
+ }
53
+ /** Publicador em memoria — util em testes para inspecionar o que foi publicado. */
54
+ export declare class InMemoryEventPublisher implements EventPublisher {
55
+ readonly published: DomainEvent[];
56
+ publish(event: DomainEvent): Promise<void>;
57
+ }
58
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/subscription-billing/events.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAC7B,4BAA4B,GAC5B,wBAAwB,GACxB,gBAAgB,GAChB,cAAc,GACd,wBAAwB,GACxB,uBAAuB,GACvB,2BAA2B,GAC3B,sBAAsB,GACtB,uBAAuB,GACvB,kBAAkB,CAAC;AAEvB,mGAAmG;AACnG,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,qBAAqB,CAMnE,CAAC;AAEH;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,yFAAyF;IACzF,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,IAAI,EAAE,qBAAqB,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,KAAK,CAAC;CACb;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAWrH;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAErE;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED,mFAAmF;AACnF,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAM;IAEjC,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
@@ -0,0 +1,38 @@
1
+ import { uuidv7 } from '@baruk/shared';
2
+ /** Obrigatorio = algum consumidor (sempre Entitlements) fica incorreto sem o evento (RFC §8.3). */
3
+ export const MANDATORY_EVENT_TYPES = new Set([
4
+ 'subscription.trial_started',
5
+ 'subscription.activated',
6
+ 'subscription.past_due',
7
+ 'subscription.plan_changed',
8
+ 'subscription.canceled',
9
+ ]);
10
+ /** Cria um evento com envelope completo e `sequence` corretamente incrementado. */
11
+ export function createDomainEvent(input) {
12
+ return {
13
+ eventId: uuidv7(),
14
+ type: input.type,
15
+ occurredAt: input.occurredAt,
16
+ subscriptionId: input.subscriptionId,
17
+ tenantId: input.tenantId,
18
+ sequence: input.previousSequence + 1,
19
+ causationEventId: input.causationEventId,
20
+ data: input.data,
21
+ };
22
+ }
23
+ export function isMandatoryEvent(type) {
24
+ return MANDATORY_EVENT_TYPES.has(type);
25
+ }
26
+ export class NoopEventPublisher {
27
+ async publish() {
28
+ // intencionalmente vazio — ambiente sem mensageria configurada (dry-run/teste).
29
+ }
30
+ }
31
+ /** Publicador em memoria — util em testes para inspecionar o que foi publicado. */
32
+ export class InMemoryEventPublisher {
33
+ published = [];
34
+ async publish(event) {
35
+ this.published.push(event);
36
+ }
37
+ }
38
+ //# sourceMappingURL=events.js.map