@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 @@
1
+ {"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../../src/rbac/authorize.ts"],"names":[],"mappings":";;AAQA,sBAEC;AAED,4CAIC;AAOD,kDAUC;AAjCD,0CAA+C;AAG/C;;;;GAIG;AACH,SAAgB,KAAK,CAAC,WAAgC,EAAE,QAAgB;IACtE,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,gBAAgB,CAAC,WAAgC,EAAE,QAAgB;IACjF,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,uBAAc,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,mBAAmB,CAAC,EAAM,EAAE,MAAc;IAC9D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAmB;;;;;yBAKjB,MAAM;;GAE5B,CAAC;IACF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,455 @@
1
+ "use strict";
2
+ /**
3
+ * Catálogo de permissões e papéis de sistema (04-rbac-permissions.md).
4
+ * É a fonte que o seed materializa no banco. A vertical registra permissões
5
+ * adicionais via seu próprio seed — sem alterar o Core.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.SYSTEM_ROLES = exports.ALL_PERMISSION_KEYS = exports.PERMISSIONS = void 0;
9
+ exports.PERMISSIONS = [
10
+ {
11
+ key: 'portal.onboarding.read',
12
+ resource: 'portal.onboarding',
13
+ action: 'read',
14
+ description: 'Ver o próprio onboarding no Portal',
15
+ },
16
+ {
17
+ key: 'portal.onboarding.timeline.read',
18
+ resource: 'portal.onboarding.timeline',
19
+ action: 'read',
20
+ description: 'Ver a timeline pública do próprio onboarding',
21
+ },
22
+ {
23
+ key: 'portal.onboarding.document_requirement.read',
24
+ resource: 'portal.onboarding.document_requirement',
25
+ action: 'read',
26
+ description: 'Ver requisitos documentais públicos',
27
+ },
28
+ {
29
+ key: 'portal.onboarding.response.create',
30
+ resource: 'portal.onboarding.response',
31
+ action: 'create',
32
+ description: 'Responder pendências públicas do próprio onboarding',
33
+ },
34
+ {
35
+ key: 'portal.onboarding.response.read',
36
+ resource: 'portal.onboarding.response',
37
+ action: 'read',
38
+ description: 'Ver respostas públicas do próprio onboarding',
39
+ },
40
+ {
41
+ key: 'portal.onboarding.comment.create',
42
+ resource: 'portal.onboarding.comment',
43
+ action: 'create',
44
+ description: 'Enviar comentário público no próprio onboarding',
45
+ },
46
+ {
47
+ key: 'portal.onboarding.comment.read',
48
+ resource: 'portal.onboarding.comment',
49
+ action: 'read',
50
+ description: 'Ver comentários públicos do próprio onboarding',
51
+ },
52
+ {
53
+ key: 'portal.onboarding.external_delivery.confirm',
54
+ resource: 'portal.onboarding.external_delivery',
55
+ action: 'create',
56
+ description: 'Informar envio externo de documento solicitado',
57
+ },
58
+ { key: 'client.read', resource: 'client', action: 'read', description: 'Ver clientes' },
59
+ {
60
+ key: 'client.write',
61
+ resource: 'client',
62
+ action: 'write',
63
+ description: 'Criar/editar clientes',
64
+ },
65
+ { key: 'client.delete', resource: 'client', action: 'delete', description: 'Remover clientes' },
66
+ {
67
+ key: 'client.import',
68
+ resource: 'client',
69
+ action: 'manage',
70
+ description: 'Importar clientes (CSV)',
71
+ },
72
+ { key: 'request.read', resource: 'request', action: 'read', description: 'Ver solicitações' },
73
+ {
74
+ key: 'request.create',
75
+ resource: 'request',
76
+ action: 'write',
77
+ description: 'Criar solicitações',
78
+ },
79
+ {
80
+ key: 'request.comment',
81
+ resource: 'request',
82
+ action: 'write',
83
+ description: 'Comentar solicitações',
84
+ },
85
+ {
86
+ key: 'request.status.update',
87
+ resource: 'request',
88
+ action: 'manage',
89
+ description: 'Alterar status de solicitações',
90
+ },
91
+ {
92
+ key: 'user.manage',
93
+ resource: 'user',
94
+ action: 'manage',
95
+ description: 'Gerenciar usuários e memberships',
96
+ },
97
+ { key: 'document.read', resource: 'document', action: 'read', description: 'Ver documentos' },
98
+ {
99
+ key: 'document.write',
100
+ resource: 'document',
101
+ action: 'write',
102
+ description: 'Enviar documentos',
103
+ },
104
+ {
105
+ key: 'finance.charge.create',
106
+ resource: 'finance',
107
+ action: 'write',
108
+ description: 'Emitir cobranças',
109
+ },
110
+ {
111
+ key: 'vault.credential.decrypt',
112
+ resource: 'vault',
113
+ action: 'manage',
114
+ description: 'Descriptografar credencial do cofre',
115
+ },
116
+ {
117
+ key: 'communication.send',
118
+ resource: 'communication',
119
+ action: 'write',
120
+ description: 'Enviar comunicações',
121
+ },
122
+ { key: 'audit.read', resource: 'audit', action: 'read', description: 'Ler trilha de auditoria' },
123
+ {
124
+ key: 'tenant.settings.update',
125
+ resource: 'tenant',
126
+ action: 'manage',
127
+ description: 'Alterar configurações do tenant',
128
+ },
129
+ {
130
+ key: 'rbac.role.update',
131
+ resource: 'rbac',
132
+ action: 'manage',
133
+ description: 'Gerenciar papéis e permissões',
134
+ },
135
+ { key: 'user.invite', resource: 'user', action: 'manage', description: 'Convidar usuários' },
136
+ // ── Office Engines (Sprint Platinum) ──────────────────────────────────────
137
+ {
138
+ key: 'crm.read',
139
+ resource: 'crm',
140
+ action: 'read',
141
+ description: 'Ver leads e pipeline comercial',
142
+ },
143
+ {
144
+ key: 'crm.write',
145
+ resource: 'crm',
146
+ action: 'write',
147
+ description: 'Criar/editar leads e negócios',
148
+ },
149
+ { key: 'crm.delete', resource: 'crm', action: 'delete', description: 'Remover leads e negócios' },
150
+ {
151
+ key: 'billing.read',
152
+ resource: 'billing',
153
+ action: 'read',
154
+ description: 'Ver honorários, cobranças e assinaturas',
155
+ },
156
+ {
157
+ key: 'billing.write',
158
+ resource: 'billing',
159
+ action: 'write',
160
+ description: 'Gerenciar cobranças e assinaturas',
161
+ },
162
+ {
163
+ key: 'billing.fee.manage',
164
+ resource: 'billing',
165
+ action: 'manage',
166
+ description: 'Gerenciar acordos de honorários',
167
+ },
168
+ {
169
+ key: 'billing.dunning.manage',
170
+ resource: 'billing',
171
+ action: 'manage',
172
+ description: 'Gerenciar régua de inadimplência',
173
+ },
174
+ {
175
+ key: 'vault.read',
176
+ resource: 'vault',
177
+ action: 'read',
178
+ description: 'Listar credenciais do cofre (metadados)',
179
+ },
180
+ {
181
+ key: 'vault.write',
182
+ resource: 'vault',
183
+ action: 'write',
184
+ description: 'Criar/editar credenciais do cofre',
185
+ },
186
+ {
187
+ key: 'communication.read',
188
+ resource: 'communication',
189
+ action: 'read',
190
+ description: 'Ver mensagens enviadas',
191
+ },
192
+ {
193
+ key: 'communication.template.manage',
194
+ resource: 'communication',
195
+ action: 'manage',
196
+ description: 'Gerenciar modelos de mensagem',
197
+ },
198
+ {
199
+ key: 'automation.read',
200
+ resource: 'automation',
201
+ action: 'read',
202
+ description: 'Ver automações e jobs',
203
+ },
204
+ {
205
+ key: 'automation.manage',
206
+ resource: 'automation',
207
+ action: 'manage',
208
+ description: 'Gerenciar automações e jobs',
209
+ },
210
+ {
211
+ key: 'integration.read',
212
+ resource: 'integration',
213
+ action: 'read',
214
+ description: 'Ver integrações configuradas',
215
+ },
216
+ {
217
+ key: 'integration.manage',
218
+ resource: 'integration',
219
+ action: 'manage',
220
+ description: 'Configurar integrações externas',
221
+ },
222
+ {
223
+ key: 'compliance.read',
224
+ resource: 'compliance',
225
+ action: 'read',
226
+ description: 'Ver obrigações, certificados e procurações',
227
+ },
228
+ {
229
+ key: 'compliance.write',
230
+ resource: 'compliance',
231
+ action: 'write',
232
+ description: 'Gerenciar obrigações, certificados e procurações',
233
+ },
234
+ {
235
+ key: 'office.onboarding.read',
236
+ resource: 'office.onboarding',
237
+ action: 'read',
238
+ description: 'Ver onboardings do Office',
239
+ },
240
+ {
241
+ key: 'office.onboarding.create',
242
+ resource: 'office.onboarding',
243
+ action: 'write',
244
+ description: 'Criar onboardings do Office',
245
+ },
246
+ {
247
+ key: 'office.onboarding.manage',
248
+ resource: 'office.onboarding',
249
+ action: 'manage',
250
+ description: 'Gerenciar itens e transições de onboarding',
251
+ },
252
+ {
253
+ key: 'office.onboarding.complete',
254
+ resource: 'office.onboarding',
255
+ action: 'manage',
256
+ description: 'Concluir onboardings do Office',
257
+ },
258
+ {
259
+ key: 'office.onboarding.cancel',
260
+ resource: 'office.onboarding',
261
+ action: 'manage',
262
+ description: 'Cancelar onboardings do Office',
263
+ },
264
+ {
265
+ key: 'office.onboarding.task.manage',
266
+ resource: 'office.onboarding.task',
267
+ action: 'manage',
268
+ description: 'Gerenciar tarefas de onboarding',
269
+ },
270
+ {
271
+ key: 'office.onboarding.document.manage',
272
+ resource: 'office.onboarding.document',
273
+ action: 'manage',
274
+ description: 'Gerenciar requisitos documentais de onboarding',
275
+ },
276
+ {
277
+ key: 'office.onboarding.timeline.read',
278
+ resource: 'office.onboarding.timeline',
279
+ action: 'read',
280
+ description: 'Ver timeline de onboarding',
281
+ },
282
+ {
283
+ key: 'office.onboarding.interaction.read',
284
+ resource: 'office.onboarding.interaction',
285
+ action: 'read',
286
+ description: 'Ver interações públicas de onboarding',
287
+ },
288
+ {
289
+ key: 'office.onboarding.interaction.review',
290
+ resource: 'office.onboarding.interaction',
291
+ action: 'review',
292
+ description: 'Revisar interações públicas de onboarding',
293
+ },
294
+ {
295
+ key: 'office.onboarding.interaction.assign',
296
+ resource: 'office.onboarding.interaction',
297
+ action: 'assign',
298
+ description: 'Atribuir revisão de interação',
299
+ },
300
+ {
301
+ key: 'office.onboarding.interaction.reply',
302
+ resource: 'office.onboarding.interaction',
303
+ action: 'reply',
304
+ description: 'Responder publicamente a uma interação',
305
+ },
306
+ {
307
+ key: 'office.onboarding.interaction.resolve',
308
+ resource: 'office.onboarding.interaction',
309
+ action: 'resolve',
310
+ description: 'Resolver uma interação revisada',
311
+ },
312
+ {
313
+ key: 'office.onboarding.interaction.internal_note.create',
314
+ resource: 'office.onboarding.interaction.internal_note',
315
+ action: 'create',
316
+ description: 'Adicionar observação interna à revisão',
317
+ },
318
+ ];
319
+ exports.ALL_PERMISSION_KEYS = exports.PERMISSIONS.map((p) => p.key);
320
+ const ALL = exports.ALL_PERMISSION_KEYS;
321
+ /** Papéis de sistema (seed, imutáveis). São templates globais (tenant_id NULL). */
322
+ exports.SYSTEM_ROLES = [
323
+ { key: 'owner', name: 'Owner', permissions: ALL },
324
+ {
325
+ key: 'admin',
326
+ name: 'Administrador',
327
+ permissions: ALL.filter((p) => p !== 'tenant.settings.update'),
328
+ },
329
+ {
330
+ key: 'accountant',
331
+ name: 'Contador',
332
+ permissions: [
333
+ 'client.read',
334
+ 'client.write',
335
+ 'client.import',
336
+ 'document.read',
337
+ 'document.write',
338
+ 'communication.send',
339
+ 'communication.read',
340
+ 'vault.credential.decrypt',
341
+ 'vault.read',
342
+ 'request.read',
343
+ 'request.create',
344
+ 'request.comment',
345
+ 'request.status.update',
346
+ 'crm.read',
347
+ 'crm.write',
348
+ 'billing.read',
349
+ 'billing.write',
350
+ 'billing.fee.manage',
351
+ 'compliance.read',
352
+ 'compliance.write',
353
+ 'office.onboarding.read',
354
+ 'office.onboarding.create',
355
+ 'office.onboarding.manage',
356
+ 'office.onboarding.complete',
357
+ 'office.onboarding.cancel',
358
+ 'office.onboarding.task.manage',
359
+ 'office.onboarding.document.manage',
360
+ 'office.onboarding.timeline.read',
361
+ 'office.onboarding.interaction.read',
362
+ 'office.onboarding.interaction.review',
363
+ 'office.onboarding.interaction.assign',
364
+ 'office.onboarding.interaction.reply',
365
+ 'office.onboarding.interaction.resolve',
366
+ 'office.onboarding.interaction.internal_note.create',
367
+ 'automation.read',
368
+ ],
369
+ },
370
+ {
371
+ key: 'assistant',
372
+ name: 'Assistente',
373
+ permissions: [
374
+ 'client.read',
375
+ 'document.read',
376
+ 'document.write',
377
+ 'request.read',
378
+ 'request.comment',
379
+ 'crm.read',
380
+ 'billing.read',
381
+ 'compliance.read',
382
+ 'communication.read',
383
+ 'office.onboarding.read',
384
+ 'office.onboarding.timeline.read',
385
+ 'office.onboarding.interaction.read',
386
+ 'office.onboarding.interaction.review',
387
+ 'office.onboarding.interaction.assign',
388
+ 'office.onboarding.interaction.reply',
389
+ 'office.onboarding.interaction.resolve',
390
+ 'office.onboarding.interaction.internal_note.create',
391
+ ],
392
+ },
393
+ {
394
+ key: 'finance',
395
+ name: 'Financeiro',
396
+ permissions: [
397
+ 'client.read',
398
+ 'finance.charge.create',
399
+ 'billing.read',
400
+ 'billing.write',
401
+ 'billing.fee.manage',
402
+ 'billing.dunning.manage',
403
+ 'communication.send',
404
+ ],
405
+ },
406
+ {
407
+ key: 'communication',
408
+ name: 'Comunicação',
409
+ permissions: [
410
+ 'client.read',
411
+ 'communication.send',
412
+ 'communication.read',
413
+ 'communication.template.manage',
414
+ 'request.read',
415
+ 'request.comment',
416
+ 'crm.read',
417
+ ],
418
+ },
419
+ {
420
+ key: 'readonly',
421
+ name: 'Somente leitura',
422
+ permissions: [
423
+ 'client.read',
424
+ 'document.read',
425
+ 'request.read',
426
+ 'crm.read',
427
+ 'billing.read',
428
+ 'compliance.read',
429
+ 'communication.read',
430
+ 'automation.read',
431
+ 'integration.read',
432
+ 'office.onboarding.read',
433
+ 'office.onboarding.timeline.read',
434
+ ],
435
+ },
436
+ {
437
+ key: 'client_titular',
438
+ name: 'Cliente — Titular',
439
+ permissions: [
440
+ 'document.read',
441
+ 'communication.send',
442
+ 'request.read',
443
+ 'request.comment',
444
+ 'portal.onboarding.read',
445
+ 'portal.onboarding.timeline.read',
446
+ 'portal.onboarding.document_requirement.read',
447
+ 'portal.onboarding.response.create',
448
+ 'portal.onboarding.response.read',
449
+ 'portal.onboarding.comment.create',
450
+ 'portal.onboarding.comment.read',
451
+ 'portal.onboarding.external_delivery.confirm',
452
+ ],
453
+ },
454
+ ];
455
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/rbac/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRequest = createRequest;
4
+ exports.listRequests = listRequests;
5
+ exports.getRequest = getRequest;
6
+ exports.updateRequestStatus = updateRequestStatus;
7
+ exports.addComment = addComment;
8
+ exports.listComments = listComments;
9
+ const shared_1 = require("@baruk/shared");
10
+ function mapRow(r) {
11
+ return {
12
+ id: r.id,
13
+ tenantId: r.tenant_id,
14
+ clientId: r.client_id,
15
+ title: r.title,
16
+ description: r.description,
17
+ category: r.category,
18
+ competenceLabel: r.competence_label,
19
+ priority: r.priority,
20
+ status: r.status,
21
+ dueDate: r.due_date ? r.due_date.toISOString().slice(0, 10) : null,
22
+ responsibleUserId: r.responsible_user_id,
23
+ createdBy: r.created_by,
24
+ createdAt: r.created_at.toISOString(),
25
+ updatedAt: r.updated_at.toISOString(),
26
+ };
27
+ }
28
+ async function createRequest(tx, input) {
29
+ const rows = await tx `
30
+ INSERT INTO service_request (
31
+ id, tenant_id, client_id, title, description, category, competence_label,
32
+ priority, status, due_date, responsible_user_id, created_by
33
+ ) VALUES (
34
+ ${(0, shared_1.uuidv7)()}, current_setting('app.current_tenant')::uuid, ${input.clientId},
35
+ ${input.title}, ${input.description ?? null}, ${input.category ?? 'geral'},
36
+ ${input.competenceLabel ?? null}, ${input.priority ?? 'medium'},
37
+ ${input.status ?? 'sent'}, ${input.dueDate ?? null},
38
+ ${input.responsibleUserId ?? null}, ${input.createdBy ?? null}
39
+ )
40
+ RETURNING *
41
+ `;
42
+ return mapRow(rows[0]);
43
+ }
44
+ async function listRequests(tx, filter = {}) {
45
+ const limit = Math.min(filter.limit ?? 20, 100);
46
+ const offset = filter.offset ?? 0;
47
+ const like = filter.search ? `%${filter.search}%` : null;
48
+ const rows = await tx `
49
+ SELECT sr.*, count(*) OVER() AS total
50
+ FROM service_request sr
51
+ WHERE sr.deleted_at IS NULL
52
+ AND (${filter.clientId ?? null}::uuid IS NULL OR sr.client_id = ${filter.clientId ?? null})
53
+ AND (${filter.status ?? null}::text IS NULL OR sr.status = ${filter.status ?? null})
54
+ AND (${like}::text IS NULL OR sr.title ILIKE ${like} OR sr.description ILIKE ${like})
55
+ ORDER BY sr.created_at DESC
56
+ LIMIT ${limit} OFFSET ${offset}
57
+ `;
58
+ const total = rows[0] ? Number(rows[0].total) : 0;
59
+ return { items: rows.map(mapRow), total };
60
+ }
61
+ async function getRequest(tx, id, clientId) {
62
+ const rows = await tx `
63
+ SELECT * FROM service_request
64
+ WHERE id = ${id} AND deleted_at IS NULL
65
+ AND (${clientId ?? null}::uuid IS NULL OR client_id = ${clientId ?? null})
66
+ `;
67
+ if (!rows[0])
68
+ throw new shared_1.NotFoundError('Solicitação não encontrada');
69
+ return mapRow(rows[0]);
70
+ }
71
+ async function updateRequestStatus(tx, id, status, clientId) {
72
+ const rows = await tx `
73
+ UPDATE service_request
74
+ SET status = ${status}, updated_at = now(), version = version + 1
75
+ WHERE id = ${id} AND deleted_at IS NULL
76
+ AND (${clientId ?? null}::uuid IS NULL OR client_id = ${clientId ?? null})
77
+ RETURNING id
78
+ `;
79
+ return rows.count;
80
+ }
81
+ async function addComment(tx, input) {
82
+ const rows = await tx `
83
+ INSERT INTO request_comment (id, tenant_id, request_id, author_user_id, author_kind, body)
84
+ VALUES (
85
+ ${(0, shared_1.uuidv7)()}, current_setting('app.current_tenant')::uuid, ${input.requestId},
86
+ ${input.authorUserId ?? null}, ${input.authorKind ?? 'staff'}, ${input.body}
87
+ )
88
+ RETURNING id, request_id, author_user_id, author_kind, body, created_at
89
+ `;
90
+ const r = rows[0];
91
+ return {
92
+ id: r.id,
93
+ requestId: r.request_id,
94
+ authorUserId: r.author_user_id,
95
+ authorKind: r.author_kind,
96
+ body: r.body,
97
+ createdAt: r.created_at.toISOString(),
98
+ };
99
+ }
100
+ async function listComments(tx, requestId) {
101
+ const rows = await tx `
102
+ SELECT id, request_id, author_user_id, author_kind, body, created_at
103
+ FROM request_comment WHERE request_id = ${requestId} ORDER BY created_at ASC
104
+ `;
105
+ return rows.map((r) => ({
106
+ id: r.id,
107
+ requestId: r.request_id,
108
+ authorUserId: r.author_user_id,
109
+ authorKind: r.author_kind,
110
+ body: r.body,
111
+ createdAt: r.created_at.toISOString(),
112
+ }));
113
+ }
114
+ //# sourceMappingURL=repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/requests/repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_DUNNING_STEPS = void 0;
4
+ exports.dunningStepsAsEvents = dunningStepsAsEvents;
5
+ const events_js_1 = require("./events.js");
6
+ const dunning_js_1 = require("../billing/dunning.js");
7
+ Object.defineProperty(exports, "DEFAULT_DUNNING_STEPS", { enumerable: true, get: function () { return dunning_js_1.DEFAULT_DUNNING_STEPS; } });
8
+ /**
9
+ * Converte os passos vencidos de uma assinatura `past_due` em eventos de dominio.
10
+ * Cada passo vencido vira 1 `subscription.past_due` com `data.dunningStep` —
11
+ * um unico tipo de evento no catalogo (RFC §8.3), o detalhe do passo vai no payload.
12
+ */
13
+ function dunningStepsAsEvents(subscription, today, executed = new Set(), steps = dunning_js_1.DEFAULT_DUNNING_STEPS) {
14
+ if (subscription.status !== 'past_due' || !subscription.currentPeriodEnd)
15
+ return [];
16
+ const due = (0, dunning_js_1.dueDunningSteps)(steps, { dueDate: subscription.currentPeriodEnd, status: subscription.status }, today, executed);
17
+ return due.map((step, index) => (0, events_js_1.createDomainEvent)({
18
+ type: 'subscription.past_due',
19
+ subscriptionId: subscription.subscriptionId,
20
+ tenantId: subscription.tenantId,
21
+ previousSequence: subscription.sequence + index,
22
+ occurredAt: today,
23
+ data: { dunningStep: step },
24
+ }));
25
+ }
26
+ //# sourceMappingURL=dunning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dunning.js","sourceRoot":"","sources":["../../../src/subscription-billing/dunning.ts"],"names":[],"mappings":";;;AAkBA,oDAoBC;AAtCD,2CAAkE;AAClE,sDAAsH;AAS7G,sGATA,kCAAqB,OASA;AAG9B;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,YAA0B,EAC1B,KAAa,EACb,WAAgC,IAAI,GAAG,EAAE,EACzC,QAAgC,kCAAqB;IAErD,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,gBAAgB;QAAE,OAAO,EAAE,CAAC;IAEpF,MAAM,GAAG,GAAG,IAAA,4BAAe,EAAC,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,IAAA,6BAAiB,EAAC;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,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InMemoryEventPublisher = exports.NoopEventPublisher = exports.MANDATORY_EVENT_TYPES = void 0;
4
+ exports.createDomainEvent = createDomainEvent;
5
+ exports.isMandatoryEvent = isMandatoryEvent;
6
+ const shared_1 = require("@baruk/shared");
7
+ /** Obrigatorio = algum consumidor (sempre Entitlements) fica incorreto sem o evento (RFC §8.3). */
8
+ exports.MANDATORY_EVENT_TYPES = new Set([
9
+ 'subscription.trial_started',
10
+ 'subscription.activated',
11
+ 'subscription.past_due',
12
+ 'subscription.plan_changed',
13
+ 'subscription.canceled',
14
+ ]);
15
+ /** Cria um evento com envelope completo e `sequence` corretamente incrementado. */
16
+ function createDomainEvent(input) {
17
+ return {
18
+ eventId: (0, shared_1.uuidv7)(),
19
+ type: input.type,
20
+ occurredAt: input.occurredAt,
21
+ subscriptionId: input.subscriptionId,
22
+ tenantId: input.tenantId,
23
+ sequence: input.previousSequence + 1,
24
+ causationEventId: input.causationEventId,
25
+ data: input.data,
26
+ };
27
+ }
28
+ function isMandatoryEvent(type) {
29
+ return exports.MANDATORY_EVENT_TYPES.has(type);
30
+ }
31
+ class NoopEventPublisher {
32
+ async publish() {
33
+ // intencionalmente vazio — ambiente sem mensageria configurada (dry-run/teste).
34
+ }
35
+ }
36
+ exports.NoopEventPublisher = NoopEventPublisher;
37
+ /** Publicador em memoria — util em testes para inspecionar o que foi publicado. */
38
+ class InMemoryEventPublisher {
39
+ published = [];
40
+ async publish(event) {
41
+ this.published.push(event);
42
+ }
43
+ }
44
+ exports.InMemoryEventPublisher = InMemoryEventPublisher;
45
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/subscription-billing/events.ts"],"names":[],"mappings":";;;AA6DA,8CAWC;AAED,4CAEC;AA5ED,0CAAuC;AAqBvC,mGAAmG;AACtF,QAAA,qBAAqB,GAAuC,IAAI,GAAG,CAAC;IAC/E,4BAA4B;IAC5B,wBAAwB;IACxB,uBAAuB;IACvB,2BAA2B;IAC3B,uBAAuB;CACxB,CAAC,CAAC;AAgCH,mFAAmF;AACnF,SAAgB,iBAAiB,CAAkC,KAA8B;IAC/F,OAAO;QACL,OAAO,EAAE,IAAA,eAAM,GAAE;QACjB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,gBAAgB,GAAG,CAAC;QACpC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAA2B;IAC1D,OAAO,6BAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAWD,MAAa,kBAAkB;IAC7B,KAAK,CAAC,OAAO;QACX,gFAAgF;IAClF,CAAC;CACF;AAJD,gDAIC;AAED,mFAAmF;AACnF,MAAa,sBAAsB;IACxB,SAAS,GAAkB,EAAE,CAAC;IAEvC,KAAK,CAAC,OAAO,CAAC,KAAkB;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF;AAND,wDAMC"}