@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
package/dist/index.d.ts CHANGED
@@ -14,27 +14,98 @@ export type { ProductAccess } from './products/repository.js';
14
14
  export { PRODUCTS } from './products/catalog.js';
15
15
  export type { ProductDef } from './products/catalog.js';
16
16
  export type { AuthContext, AuthUser, MembershipView, LoginResult } from './auth/service.js';
17
- export { toPrincipal, toMembership } from './auth/service.js';
18
- export { hashPassword, verifyPassword, hashPasswordAsync, verifyPasswordAsync } from './auth/password.js';
17
+ export { hashPassword, verifyPassword } from './auth/password.js';
19
18
  export { generateSessionToken, hashToken } from './auth/session-token.js';
20
19
  export { requestPasswordReset, resetPassword } from './auth/password-reset.js';
21
20
  export { sendEmail } from './mail/resend.js';
22
21
  export type { EmailMessage } from './mail/resend.js';
22
+ export { createTransactionalEmailProvider, InMemoryDedupStore, buildDedupKey, StaticSenderResolver, PassthroughTemplateRenderer, DEFAULT_TIMEOUT_MS, MIN_DEDUP_WINDOW_MS, TRANSACTIONAL_EMAIL_CONTRACT_VERSION, isRetryableError, } from './mail/index.js';
23
+ export type { TransactionalEmailProviderConfig, TransactionalEmailCapability, SendTransactionalEmailInput, DeliveryResult, DeliveryStatus, DeliveryErrorCode, DedupStore, DedupEntry, DedupReservation, DedupStoreMode, SenderResolver, TemplateRenderer, DeliveryHook, RenderedEmail, } from './mail/index.js';
23
24
  export { appendAudit } from './audit/audit.js';
24
25
  export type { AuditEntry } from './audit/audit.js';
25
26
  export { listAudit } from './audit/repository.js';
26
27
  export type { AuditRow } from './audit/repository.js';
27
28
  export { createClient, listClients, listClientsPaged, getClient, renameClient, updateClient, softDeleteClient, findClientIdByDocument, } from './clients/repository.js';
28
29
  export type { ClientRecord, CreateClientInput, UpdateClientInput, ListClientsFilter, } from './clients/repository.js';
30
+ export { createOnboardingApplication, getOnboarding, listOnboardings, listOnboardingTimeline, reserveOnboardingApiIdempotency, completeOnboardingApiIdempotency, releaseOnboardingApiIdempotency, onboardingDisabledByDefault, onboardingEnabledForTests, OnboardingFeatureDisabledError, OnboardingConcurrencyError, } from './onboarding/persistence.js';
31
+ export type { OnboardingApplication, OnboardingFeaturePolicy, OnboardingTimelineRow, IdempotencyReservation, OnboardingListFilter, } from './onboarding/persistence.js';
32
+ export * from './onboarding/domain.js';
33
+ export { getPortalOnboarding, listPortalOnboardings, listPortalTimeline, PortalOnboardingFeatureDisabledError, } from './onboarding/portal.js';
34
+ export type { PortalOnboardingDetail, PortalOnboardingItem, PortalOnboardingListItem, PortalDocumentRequirement, PortalTimelineEvent, } from './onboarding/portal.js';
29
35
  export { createRequest, listRequests, getRequest, updateRequestStatus, addComment, listComments, } from './requests/repository.js';
30
36
  export type { ServiceRequestRecord, CreateRequestInput, ListRequestFilter, RequestStatus, RequestPriority, CommentRecord, } from './requests/repository.js';
31
37
  export { createNotification, listNotifications, unreadCount, markNotificationRead, } from './notifications/repository.js';
32
38
  export type { NotificationRecord } from './notifications/repository.js';
33
39
  export { getPortalClientId, ensurePortalAccess, listPortalUserIds } from './portal/repository.js';
40
+ export { createPortalInteraction, listPortalInteractions, type PortalInteractionContext, type PortalInteractionDTO, type ExternalChannel, } from './onboarding/portal-actions.js';
41
+ export { listAdminInteractionReviews, getAdminInteractionMetrics, getAdminInteractionReview, startReview, assignInteraction, acceptReview, requestClarification, resolveReview, addInternalNote, createPublicReply, } from './onboarding/interaction-review.js';
42
+ export type { AdminInteractionListItemDTO, AdminInteractionDetailDTO, AdminInternalNoteDTO, AdminPublicReplyDTO, InteractionReviewContext, InteractionReviewFilters, InteractionReviewMetricsFilters, AdminInteractionMetricsDTO, InteractionReviewStatus, InteractionReviewPriority, ResolutionType, } from './onboarding/interaction-review.js';
34
43
  export { listTenantMembers, setUserRole, setMembershipStatus } from './users/repository.js';
35
44
  export type { TenantMember } from './users/repository.js';
36
45
  export { getCoreStats } from './dashboard/repository.js';
37
46
  export type { CoreDashboardStats } from './dashboard/repository.js';
38
47
  export { parseClientsCsv, planImport, commitImport } from './import/clients-import.js';
39
- export type { ImportPlan, ImportResult, ParsedClientRow, ImportIssue } from './import/clients-import.js';
48
+ export type { ImportPlan, ImportResult, ParsedClientRow, ImportIssue, } from './import/clients-import.js';
49
+ export { createCredential, listCredentials, getCredentialMeta, revealSecret, rotateSecret, softDeleteCredential, listExpiringCredentials, } from './vault/repository.js';
50
+ export type { CredentialMeta, VaultCategory, CreateCredentialInput } from './vault/repository.js';
51
+ export { loadVaultKeyring, parseKeyring, encryptSecret, decryptSecret } from './vault/crypto.js';
52
+ export type { Keyring, EncryptedSecret } from './vault/crypto.js';
53
+ export { CRM_STAGES, createLead, listLeads, getLead, updateLead, moveLeadStage, linkLeadToClient, softDeleteLead, addActivity, listActivities, completeTask, pipelineSummary, } from './crm/repository.js';
54
+ export type { LeadRecord, LeadStage, LeadStatus, CreateLeadInput, UpdateLeadInput, ListLeadsFilter, ActivityRecord, ActivityKind, AddActivityInput, } from './crm/repository.js';
55
+ export { createFeeAgreement, listFeeAgreements, setFeeStatus, createCharge, listCharges, getCharge, markChargePaid, markChargePaidByExternal, setChargeStatus, billingSummary, listOpenCharges, } from './billing/repository.js';
56
+ export type { FeeAgreementRecord, CreateFeeInput, Periodicity, FeeStatus, ChargeRecord, CreateChargeInput, ListChargesFilter, ChargeStatus, } from './billing/repository.js';
57
+ export { resolveBillingProvider, registerBillingProvider, availableProviders, } from './billing/provider/registry.js';
58
+ export type { ProviderFactory } from './billing/provider/registry.js';
59
+ export type { BillingProvider, BillingMethod, ChargeRequest, ChargeResult, SubscriptionRequest, SubscriptionResult, WebhookEvent, ProviderConfig, } from './billing/provider/types.js';
60
+ export { ManualProvider } from './billing/provider/manual.js';
61
+ export { AsaasProvider } from './billing/provider/asaas.js';
62
+ export { DEFAULT_DUNNING_STEPS, dueDunningSteps, stepKey } from './billing/dunning.js';
63
+ export type { DunningStep, DunningStepDue, DunningChannel, DunningChargeView, } from './billing/dunning.js';
64
+ export type { ReceivableStatus, ReceivableRecord, ReceivableItemRecord, PaymentStatus, PaymentRecord, SettlementRecord, ReconciliationStatus, ReconciliationRecord, ProviderAccountEnvironment, ProviderAccountStatus, PaymentProviderAccountRecord, WebhookEventStatus, WebhookEventRecord, } from './billing/receivable.js';
65
+ export type { SubscriptionPeriodicity, PricingModel, Plan, SubscriptionStatus, SubscriptionItem, Subscription, BillingMode, NormalizedInvoiceStatus, NormalizedSubStatus, EnsureCustomerInput, ProviderCustomer, CreateCheckoutInput, ProviderCheckout, ProviderInvoice, EventAttribution, WebhookHeaders, NormalizedWebhookEvent, SubscriptionProviderConfig, PaymentGatewayProvider, ProviderErrorCode, } from './subscription-billing/types.js';
66
+ export { isRetryableProviderError, CANONICAL_PROVIDER_ERROR_MESSAGES, SUBSCRIPTION_BILLING_CONTRACT_VERSION, } from './subscription-billing/types.js';
67
+ export type { SubscriptionEventType, DomainEvent, CreateEventInput, EventPublisher, } from './subscription-billing/events.js';
68
+ export { createDomainEvent, isMandatoryEvent, MANDATORY_EVENT_TYPES, NoopEventPublisher, InMemoryEventPublisher, } from './subscription-billing/events.js';
69
+ export type { ReconcileInput, ReconcileResult } from './subscription-billing/reconcile.js';
70
+ export { applySubscriptionEvent, changePlan, cancelSubscription, startTrial, } from './subscription-billing/reconcile.js';
71
+ export { dunningStepsAsEvents } from './subscription-billing/dunning.js';
72
+ export { createProductBillingRegistry, singleProductRegistry, } from './subscription-billing/product-config.js';
73
+ export type { BillingConfigScope, ProductBillingConfig, ProductBillingRegistry, } from './subscription-billing/product-config.js';
74
+ export type { BillingConfigSource } from './subscription-billing/service.js';
75
+ export { DEFAULT_PRODUCT_KEY } from './subscription-billing/plans.js';
76
+ export { resolveSubscriptionBillingProvider } from './subscription-billing/provider/registry.js';
77
+ export type { SubscriptionProviderFactory } from './subscription-billing/provider/registry.js';
78
+ export { AsaasSubscriptionProvider } from './subscription-billing/provider/asaas.js';
79
+ export { DisabledSubscriptionProvider } from './subscription-billing/provider/disabled.js';
80
+ export type { ProductLineCode, ProductLineStatus, ProductLineRecord, PlanFranchises, CommercialPlan, ModuleClass, ModuleRecord, BundleRecord, CouponEffectType, CouponRecord, CommercialPriceTableStatus, CommercialPriceTargetType, CommercialPriceItem, CommercialPriceScope, CommercialPriceTable, OfferRecord, PriceQuote, } from './commercial-catalog/types.js';
81
+ export { KNOWN_ACTIVE_PRODUCT_LINES } from './commercial-catalog/types.js';
82
+ export type { CatalogValidationError, OfferValidationInput } from './commercial-catalog/catalog.js';
83
+ export { validateOffer, resolvePriceQuote } from './commercial-catalog/catalog.js';
84
+ export type { CouponApplicationError } from './commercial-catalog/coupon.js';
85
+ export { validateCoupon, applyCouponToQuote, couponTrialExtensionDays, couponFreeModule, } from './commercial-catalog/coupon.js';
86
+ export type { ApplyOfferInput, ApplyOfferResult } from './commercial-catalog/offer-application.js';
87
+ export { applyOffer } from './commercial-catalog/offer-application.js';
88
+ export type { ConsumptionUsageType, ConsumptionEventContract, ConsumptionFranchise, ExcessPolicy, ConsumptionExcessRule, } from './commercial-catalog/consumption-contracts.js';
89
+ export type { EntitlementSource, EntitlementRecord } from './entitlements/types.js';
90
+ export type { TargetModuleGrant, DeriveEntitlementsInput } from './entitlements/derive.js';
91
+ export { deriveEntitlements, hasActiveEntitlement } from './entitlements/derive.js';
92
+ export { CANONICAL_ENTITLEMENT_SOURCES, LEGACY_SOURCE_ALIAS, normalizeEntitlementSource, sourcePrecedence, } from './entitlements/sources.js';
93
+ export type { NormalizedSource } from './entitlements/sources.js';
94
+ export { normalizeSubscriptionStanding, isStandingOk } from './entitlements/standing.js';
95
+ export type { AccessLevel as EntitlementAccessLevel, SubscriptionStanding, } from './entitlements/standing.js';
96
+ export { ENTITLEMENTS_CONTRACT_VERSION, can as canEntitlement, explainDecision, getEffectiveEntitlements, getLimits, } from './entitlements/decision.js';
97
+ export type { ReasonCode as EntitlementReasonCode, EntitlementSubject, EntitlementContext, DecisionResult as EntitlementDecisionResult, LimitDefinition, GrantedLimit, UsageSnapshot, LimitView, } from './entitlements/decision.js';
98
+ export type { Cents } from './pricing-engine/money.js';
99
+ export { roundHalfEven, reaisToCents, centsToReais, addCents, subtractCents, multiplyByQuantity, applyPercent, prorateByDays, clampNonNegative, } from './pricing-engine/money.js';
100
+ export type { PricingErrorCode, PricingErrorClass } from './pricing-engine/errors.js';
101
+ export { PricingEngineError } from './pricing-engine/errors.js';
102
+ export type { EngineResult, PricingRuleStep, ItemOrigin, PricingQuoteItem, PricingQuoteDiscount, PricingQuoteTax, TrialContext, NegotiatedContract, BundlePricingRuleKind, BundlePricingRule, PricingCouponRule, PricingCampaignRule, ProrationReason, ProrationTiming, ProrationInput, ProrationResult, PricingRequest, PricingQuote, } from './pricing-engine/types.js';
103
+ export { PRICING_ENGINE_VERSION, PRICING_RULE_STEPS_IN_ORDER } from './pricing-engine/types.js';
104
+ export { assertBundleModulesCovered, freeModuleCodesForBundle, resolveBundleDiscount, } from './pricing-engine/bundle.js';
105
+ export { computeProration } from './pricing-engine/proration.js';
106
+ export { computePricingQuote } from './pricing-engine/pipeline.js';
107
+ export type { ShadowComparisonStatus, NormalizedQuoteForComparison, QuoteItemDiff, ShadowComparisonResult, } from './pricing-engine/shadow.js';
108
+ export { normalizeCanonicalQuote, compareQuotes } from './pricing-engine/shadow.js';
109
+ export { SAAS_PLANS, DEFAULT_TRIAL_DAYS, ensureSaasPlanCatalog, listPublicPlans, getPlan as getSaasPlan, getSubscription as getSaasSubscription, getSubscriptionByTenant as getSaasSubscriptionByTenant, listInvoices as listSaasInvoices, listBillingEvents as listSaasBillingEvents, withOperatorContext, seedSaasPlans, signupSelfService, subscriptionOverview, standingFor, entitlementsForPlan, startCheckout as startSaasCheckout, processWebhook as processSaasWebhook, changePlanForTenant, cancelForTenant, reactivateForTenant, backofficeListSubscriptions, backofficeOverview, backofficeListWebhookEvents, backofficeActivateSubscription, retryFailedWebhookEvents, runBillingCron, } from './subscription-billing/index.js';
110
+ export type { SaasPlanDef, SaasPlanRow, SubscriptionRow as SaasSubscriptionRow, SaasInvoiceRow, BackofficeSubscriptionRow, BackofficeSummary, SaasBillingConfig, SignupInput, SignupResult, SubscriptionStanding as SaasSubscriptionStanding, SubscriptionOverview, CheckoutResult as SaasCheckoutResult, WebhookProcessResult, CronReport, } from './subscription-billing/index.js';
40
111
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnF,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGnF,OAAO,EACL,KAAK,EACL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EACL,gCAAgC,EAChC,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,mBAAmB,EACnB,oCAAoC,EACpC,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,gCAAgC,EAChC,4BAA4B,EAC5B,2BAA2B,EAC3B,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,2BAA2B,EAC3B,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,+BAA+B,EAC/B,gCAAgC,EAChC,+BAA+B,EAC/B,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oCAAoC,GACrC,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,+BAA+B,EAC/B,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,GACf,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACvF,YAAY,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjG,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACvF,YAAY,EACV,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAK9B,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAIjC,YAAY,EACV,uBAAuB,EACvB,YAAY,EACZ,IAAI,EACJ,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,wBAAwB,EACxB,iCAAiC,EACjC,qCAAqC,GACtC,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,UAAU,GACX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AACjG,YAAY,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAM3F,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,UAAU,GACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACnF,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AACvE,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,GACtB,MAAM,+CAA+C,CAAC;AAKvD,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpF,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAMpF,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACzF,YAAY,EACV,WAAW,IAAI,sBAAsB,EACrC,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,6BAA6B,EAC7B,GAAG,IAAI,cAAc,EACrB,eAAe,EACf,wBAAwB,EACxB,SAAS,GACV,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,UAAU,IAAI,qBAAqB,EACnC,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,IAAI,yBAAyB,EAC3C,eAAe,EACf,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,4BAA4B,CAAC;AAOpC,YAAY,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,YAAY,EACV,YAAY,EACZ,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,YAAY,EACV,sBAAsB,EACtB,4BAA4B,EAC5B,aAAa,EACb,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGpF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,OAAO,IAAI,WAAW,EACtB,eAAe,IAAI,mBAAmB,EACtC,uBAAuB,IAAI,2BAA2B,EACtD,YAAY,IAAI,gBAAgB,EAChC,iBAAiB,IAAI,qBAAqB,EAC1C,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,aAAa,IAAI,iBAAiB,EAClC,cAAc,IAAI,kBAAkB,EACpC,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,EACxB,cAAc,GACf,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,WAAW,EACX,WAAW,EACX,eAAe,IAAI,mBAAmB,EACtC,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,oBAAoB,IAAI,wBAAwB,EAChD,oBAAoB,EACpB,cAAc,IAAI,kBAAkB,EACpC,oBAAoB,EACpB,UAAU,GACX,MAAM,iCAAiC,CAAC"}
package/dist/index.js CHANGED
@@ -13,28 +13,75 @@ export { login, logout, authenticate, selectTenant, listMemberships, sessionMemb
13
13
  // Produtos / entitlements (IAM multiproduto)
14
14
  export { listProductsForUser, ensureProductCatalog, ensureTenantProduct, } from './products/repository.js';
15
15
  export { PRODUCTS } from './products/catalog.js';
16
- // Convergência de contratos (RFC-IDENTITY-003 §3.5) — adaptadores para os canônicos @baruk/identity.
17
- export { toPrincipal, toMembership } from './auth/service.js';
18
- // Contrato público SÍNCRONO (compat pré-R1) + variantes async canônicas (RFC-IDENTITY-003 §3.2, aditivo).
19
- export { hashPassword, verifyPassword, hashPasswordAsync, verifyPasswordAsync } from './auth/password.js';
16
+ export { hashPassword, verifyPassword } from './auth/password.js';
20
17
  export { generateSessionToken, hashToken } from './auth/session-token.js';
21
18
  export { requestPasswordReset, resetPassword } from './auth/password-reset.js';
22
19
  export { sendEmail } from './mail/resend.js';
20
+ // cap.communication.transactional-email — Provider canônico (RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001 v0.2)
21
+ export { createTransactionalEmailProvider, InMemoryDedupStore, buildDedupKey, StaticSenderResolver, PassthroughTemplateRenderer, DEFAULT_TIMEOUT_MS, MIN_DEDUP_WINDOW_MS, TRANSACTIONAL_EMAIL_CONTRACT_VERSION, isRetryableError, } from './mail/index.js';
23
22
  // Auditoria
24
23
  export { appendAudit } from './audit/audit.js';
25
24
  export { listAudit } from './audit/repository.js';
26
25
  // Clientes (entidade de negócio tenant-scoped)
27
26
  export { createClient, listClients, listClientsPaged, getClient, renameClient, updateClient, softDeleteClient, findClientIdByDocument, } from './clients/repository.js';
27
+ // Office — Client Onboarding (persistência e application layer)
28
+ export { createOnboardingApplication, getOnboarding, listOnboardings, listOnboardingTimeline, reserveOnboardingApiIdempotency, completeOnboardingApiIdempotency, releaseOnboardingApiIdempotency, onboardingDisabledByDefault, onboardingEnabledForTests, OnboardingFeatureDisabledError, OnboardingConcurrencyError, } from './onboarding/persistence.js';
29
+ export * from './onboarding/domain.js';
30
+ export { getPortalOnboarding, listPortalOnboardings, listPortalTimeline, PortalOnboardingFeatureDisabledError, } from './onboarding/portal.js';
28
31
  // Solicitações (ciclo operacional escritório↔cliente)
29
32
  export { createRequest, listRequests, getRequest, updateRequestStatus, addComment, listComments, } from './requests/repository.js';
30
33
  // Notificações
31
34
  export { createNotification, listNotifications, unreadCount, markNotificationRead, } from './notifications/repository.js';
32
35
  // Portal do cliente
33
36
  export { getPortalClientId, ensurePortalAccess, listPortalUserIds } from './portal/repository.js';
37
+ export { createPortalInteraction, listPortalInteractions, } from './onboarding/portal-actions.js';
38
+ export { listAdminInteractionReviews, getAdminInteractionMetrics, getAdminInteractionReview, startReview, assignInteraction, acceptReview, requestClarification, resolveReview, addInternalNote, createPublicReply, } from './onboarding/interaction-review.js';
34
39
  // Usuários / memberships
35
40
  export { listTenantMembers, setUserRole, setMembershipStatus } from './users/repository.js';
36
41
  // Dashboard (stats agnósticas)
37
42
  export { getCoreStats } from './dashboard/repository.js';
38
43
  // Importação de clientes (CSV)
39
44
  export { parseClientsCsv, planImport, commitImport } from './import/clients-import.js';
45
+ // ── Office Engines (Sprint Platinum) ─────────────────────────────────────────
46
+ // Vault Engine — cofre de credenciais criptografado (AES-256-GCM).
47
+ export { createCredential, listCredentials, getCredentialMeta, revealSecret, rotateSecret, softDeleteCredential, listExpiringCredentials, } from './vault/repository.js';
48
+ export { loadVaultKeyring, parseKeyring, encryptSecret, decryptSecret } from './vault/crypto.js';
49
+ // CRM Engine — funil comercial (leads, pipeline, timeline).
50
+ export { CRM_STAGES, createLead, listLeads, getLead, updateLead, moveLeadStage, linkLeadToClient, softDeleteLead, addActivity, listActivities, completeTask, pipelineSummary, } from './crm/repository.js';
51
+ // Billing Engine — honorários, cobranças, assinaturas (Provider Pattern).
52
+ export { createFeeAgreement, listFeeAgreements, setFeeStatus, createCharge, listCharges, getCharge, markChargePaid, markChargePaidByExternal, setChargeStatus, billingSummary, listOpenCharges, } from './billing/repository.js';
53
+ export { resolveBillingProvider, registerBillingProvider, availableProviders, } from './billing/provider/registry.js';
54
+ export { ManualProvider } from './billing/provider/manual.js';
55
+ export { AsaasProvider } from './billing/provider/asaas.js';
56
+ export { DEFAULT_DUNNING_STEPS, dueDunningSteps, stepKey } from './billing/dunning.js';
57
+ export { isRetryableProviderError, CANONICAL_PROVIDER_ERROR_MESSAGES, SUBSCRIPTION_BILLING_CONTRACT_VERSION, } from './subscription-billing/types.js';
58
+ export { createDomainEvent, isMandatoryEvent, MANDATORY_EVENT_TYPES, NoopEventPublisher, InMemoryEventPublisher, } from './subscription-billing/events.js';
59
+ export { applySubscriptionEvent, changePlan, cancelSubscription, startTrial, } from './subscription-billing/reconcile.js';
60
+ export { dunningStepsAsEvents } from './subscription-billing/dunning.js';
61
+ export { createProductBillingRegistry, singleProductRegistry, } from './subscription-billing/product-config.js';
62
+ export { DEFAULT_PRODUCT_KEY } from './subscription-billing/plans.js';
63
+ export { resolveSubscriptionBillingProvider } from './subscription-billing/provider/registry.js';
64
+ export { AsaasSubscriptionProvider } from './subscription-billing/provider/asaas.js';
65
+ export { DisabledSubscriptionProvider } from './subscription-billing/provider/disabled.js';
66
+ export { KNOWN_ACTIVE_PRODUCT_LINES } from './commercial-catalog/types.js';
67
+ export { validateOffer, resolvePriceQuote } from './commercial-catalog/catalog.js';
68
+ export { validateCoupon, applyCouponToQuote, couponTrialExtensionDays, couponFreeModule, } from './commercial-catalog/coupon.js';
69
+ export { applyOffer } from './commercial-catalog/offer-application.js';
70
+ export { deriveEntitlements, hasActiveEntitlement } from './entitlements/derive.js';
71
+ // Contrato canônico 1.0.0 do cap.entitlements.access — extensão ADITIVA sobre o
72
+ // bloco acima (nada anterior mudou). Trazido de `eco/r1-core-identity-convergence`
73
+ // para o release 0.2.0: o consumidor Baruk Rep/Ind já integrou este contrato em
74
+ // shadow, e sem estes símbolos o pacote publicado não resolve os imports dele.
75
+ export { CANONICAL_ENTITLEMENT_SOURCES, LEGACY_SOURCE_ALIAS, normalizeEntitlementSource, sourcePrecedence, } from './entitlements/sources.js';
76
+ export { normalizeSubscriptionStanding, isStandingOk } from './entitlements/standing.js';
77
+ export { ENTITLEMENTS_CONTRACT_VERSION, can as canEntitlement, explainDecision, getEffectiveEntitlements, getLimits, } from './entitlements/decision.js';
78
+ export { roundHalfEven, reaisToCents, centsToReais, addCents, subtractCents, multiplyByQuantity, applyPercent, prorateByDays, clampNonNegative, } from './pricing-engine/money.js';
79
+ export { PricingEngineError } from './pricing-engine/errors.js';
80
+ export { PRICING_ENGINE_VERSION, PRICING_RULE_STEPS_IN_ORDER } from './pricing-engine/types.js';
81
+ export { assertBundleModulesCovered, freeModuleCodesForBundle, resolveBundleDiscount, } from './pricing-engine/bundle.js';
82
+ export { computeProration } from './pricing-engine/proration.js';
83
+ export { computePricingQuote } from './pricing-engine/pipeline.js';
84
+ export { normalizeCanonicalQuote, compareQuotes } from './pricing-engine/shadow.js';
85
+ // BILL-01 (Fase 17) — Billing SaaS: persistência, serviço, backoffice e cron.
86
+ export { SAAS_PLANS, DEFAULT_TRIAL_DAYS, ensureSaasPlanCatalog, listPublicPlans, getPlan as getSaasPlan, getSubscription as getSaasSubscription, getSubscriptionByTenant as getSaasSubscriptionByTenant, listInvoices as listSaasInvoices, listBillingEvents as listSaasBillingEvents, withOperatorContext, seedSaasPlans, signupSelfService, subscriptionOverview, standingFor, entitlementsForPlan, startCheckout as startSaasCheckout, processWebhook as processSaasWebhook, changePlanForTenant, cancelForTenant, reactivateForTenant, backofficeListSubscriptions, backofficeOverview, backofficeListWebhookEvents, backofficeActivateSubscription, retryFailedWebhookEvents, runBillingCron, } from './subscription-billing/index.js';
40
87
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,mCAAmC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,4BAA4B;AAC5B,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO;AACP,OAAO,EACL,KAAK,EACL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,6CAA6C;AAC7C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,qGAAqG;AACrG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,0GAA0G;AAC1G,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,+CAA+C;AAC/C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAQjC,sDAAsD;AACtD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,0BAA0B,CAAC;AAUlC,eAAe;AACf,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAGvC,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAElG,yBAAyB;AACzB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5F,+BAA+B;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,+BAA+B;AAC/B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { DedupEntry, DedupReservation, DedupStore } from './types.js';
2
+ /**
3
+ * Implementação default — cache local por instância.
4
+ * `mode: 'in-memory'` é declarado explicitamente para que nenhum consumidor assuma
5
+ * dedup garantido sob múltiplas réplicas (RFC §4.2, G2). Um deploy horizontalmente
6
+ * escalado que precise da garantia real deve fornecer um DedupStore com
7
+ * `mode: 'shared'` (ex.: Redis/Postgres) via `TransactionalEmailProviderConfig.dedupStore`.
8
+ *
9
+ * `reserve` (Bloqueador 2) é atômico dentro deste processo: `get`/`has`/`add` sobre os
10
+ * `Map`/`Set` internos são chamadas síncronas — o motor JS executa cada uma até o fim
11
+ * sem interleaving, então duas chamadas concorrentes (`Promise.all`) nunca observam um
12
+ * estado intermediário. A garantia NÃO se estende a múltiplas réplicas/processos —
13
+ * exatamente o que `mode: 'in-memory'` já declara.
14
+ */
15
+ export declare class InMemoryDedupStore implements DedupStore {
16
+ readonly mode: "in-memory";
17
+ private readonly entries;
18
+ /** Reservas em andamento (sem resultado ainda) — chave -> instante em que a reserva expira caso órfã. */
19
+ private readonly reservationsInFlight;
20
+ get(key: string): DedupEntry | null;
21
+ set(key: string, entry: DedupEntry): void;
22
+ reserve(key: string, ttlMs: number): DedupReservation;
23
+ }
24
+ export declare function buildDedupKey(to: string, template: string, idempotencyKey: string): string;
25
+ //# sourceMappingURL=dedup-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedup-store.d.ts","sourceRoot":"","sources":["../../src/mail/dedup-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3E;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACnD,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,yGAAyG;IACzG,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAElE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAUnC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAKzC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB;CAgBtD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAE1F"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Implementação default — cache local por instância.
3
+ * `mode: 'in-memory'` é declarado explicitamente para que nenhum consumidor assuma
4
+ * dedup garantido sob múltiplas réplicas (RFC §4.2, G2). Um deploy horizontalmente
5
+ * escalado que precise da garantia real deve fornecer um DedupStore com
6
+ * `mode: 'shared'` (ex.: Redis/Postgres) via `TransactionalEmailProviderConfig.dedupStore`.
7
+ *
8
+ * `reserve` (Bloqueador 2) é atômico dentro deste processo: `get`/`has`/`add` sobre os
9
+ * `Map`/`Set` internos são chamadas síncronas — o motor JS executa cada uma até o fim
10
+ * sem interleaving, então duas chamadas concorrentes (`Promise.all`) nunca observam um
11
+ * estado intermediário. A garantia NÃO se estende a múltiplas réplicas/processos —
12
+ * exatamente o que `mode: 'in-memory'` já declara.
13
+ */
14
+ export class InMemoryDedupStore {
15
+ mode = 'in-memory';
16
+ entries = new Map();
17
+ /** Reservas em andamento (sem resultado ainda) — chave -> instante em que a reserva expira caso órfã. */
18
+ reservationsInFlight = new Map();
19
+ get(key) {
20
+ const entry = this.entries.get(key);
21
+ if (!entry)
22
+ return null;
23
+ if (entry.expiresAt <= Date.now()) {
24
+ this.entries.delete(key);
25
+ return null;
26
+ }
27
+ return entry;
28
+ }
29
+ set(key, entry) {
30
+ this.entries.set(key, entry);
31
+ this.reservationsInFlight.delete(key);
32
+ }
33
+ reserve(key, ttlMs) {
34
+ const existing = this.get(key);
35
+ if (existing) {
36
+ return { acquired: false, entry: existing };
37
+ }
38
+ const reservationExpiresAt = this.reservationsInFlight.get(key);
39
+ // Reserva órfã (processo anterior morreu antes de chamar `set`) — expira e libera a chave
40
+ // em vez de bloquear envios para sempre; não é o mecanismo de dedup em si, só limpeza.
41
+ if (reservationExpiresAt !== undefined && reservationExpiresAt > Date.now()) {
42
+ return { acquired: false, entry: null };
43
+ }
44
+ this.reservationsInFlight.set(key, Date.now() + ttlMs);
45
+ return { acquired: true };
46
+ }
47
+ }
48
+ export function buildDedupKey(to, template, idempotencyKey) {
49
+ return `${to}::${template}::${idempotencyKey}`;
50
+ }
51
+ //# sourceMappingURL=dedup-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedup-store.js","sourceRoot":"","sources":["../../src/mail/dedup-store.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,WAAoB,CAAC;IACpB,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACzD,yGAAyG;IACxF,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElE,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAiB;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,KAAa;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChE,0FAA0F;QAC1F,uFAAuF;QACvF,IAAI,oBAAoB,KAAK,SAAS,IAAI,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QACvD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,QAAgB,EAAE,cAAsB;IAChF,OAAO,GAAG,EAAE,KAAK,QAAQ,KAAK,cAAc,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { sendEmail } from './resend.js';
2
+ export type { EmailMessage } from './resend.js';
3
+ export { createTransactionalEmailProvider } from './provider.js';
4
+ export type { TransactionalEmailProviderConfig } from './provider.js';
5
+ export { InMemoryDedupStore, buildDedupKey } from './dedup-store.js';
6
+ export { StaticSenderResolver } from './sender-resolver.js';
7
+ export { PassthroughTemplateRenderer } from './template-renderer.js';
8
+ export type { DedupEntry, DedupReservation, DedupStore, DedupStoreMode, DeliveryErrorCode, DeliveryHook, DeliveryResult, DeliveryStatus, EmailAddress, RenderedEmail, SendTransactionalEmailInput, SenderResolver, TemplateRenderer, TransactionalEmailCapability, } from './types.js';
9
+ export { DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS, DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS, DEFAULT_TIMEOUT_MS, MIN_DEDUP_WINDOW_MS, TRANSACTIONAL_EMAIL_CONTRACT_VERSION, isRetryableError, } from './types.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mail/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sCAAsC,EACtC,2CAA2C,EAC3C,kBAAkB,EAClB,mBAAmB,EACnB,oCAAoC,EACpC,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Wrapper mínimo original (mantido — consumido hoje por apps/api/src/routes/auth.ts).
2
+ export { sendEmail } from './resend.js';
3
+ // cap.communication.transactional-email — Provider canônico (RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001 v0.2).
4
+ export { createTransactionalEmailProvider } from './provider.js';
5
+ export { InMemoryDedupStore, buildDedupKey } from './dedup-store.js';
6
+ export { StaticSenderResolver } from './sender-resolver.js';
7
+ export { PassthroughTemplateRenderer } from './template-renderer.js';
8
+ export { DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS, DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS, DEFAULT_TIMEOUT_MS, MIN_DEDUP_WINDOW_MS, TRANSACTIONAL_EMAIL_CONTRACT_VERSION, isRetryableError, } from './types.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mail/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,2GAA2G;AAC3G,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAkBrE,OAAO,EACL,sCAAsC,EACtC,2CAA2C,EAC3C,kBAAkB,EAClB,mBAAmB,EACnB,oCAAoC,EACpC,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { type DedupStore, type DeliveryHook, type EmailAddress, type SenderResolver, type TemplateRenderer, type TransactionalEmailCapability } from './types.js';
2
+ export interface TransactionalEmailProviderConfig {
3
+ /** `undefined`/vazio => todo envio retorna `skipped`, nunca lança (RFC §5). */
4
+ apiKey: string | undefined;
5
+ defaultFrom: EmailAddress;
6
+ templateRenderer?: TemplateRenderer;
7
+ senderResolver?: SenderResolver;
8
+ hooks?: DeliveryHook[];
9
+ dedupStore?: DedupStore;
10
+ timeoutMs?: number;
11
+ /**
12
+ * Intervalo de poll (ms) ao aguardar o resultado de uma reserva remota em andamento
13
+ * (`dedupStore.reserve` retornando `acquired: false, entry: null` — outra instância/réplica
14
+ * está processando a mesma `idempotencyKey` num `DedupStore` `mode: 'shared'`).
15
+ * Bloqueador 2 — Certification Round 2. Default: `DEFAULT_REMOTE_RESERVATION_POLL_INTERVAL_MS`.
16
+ */
17
+ remoteReservationPollIntervalMs?: number;
18
+ /**
19
+ * Tempo máximo (ms) de espera por essa mesma reserva remota antes de desistir e tratar
20
+ * o caso como falha transitória (`provider-unavailable`, retryable) — nunca reenviar às cegas.
21
+ * Default: `DEFAULT_REMOTE_RESERVATION_MAX_WAIT_MS`.
22
+ */
23
+ remoteReservationMaxWaitMs?: number;
24
+ }
25
+ /**
26
+ * Provider canônico de `cap.communication.transactional-email` (RFC-CAPABILITY-TRANSACTIONAL-EMAIL-001 v0.2).
27
+ * Extensões (`templateRenderer`/`senderResolver`/`hooks`/`dedupStore`) são injetadas na construção,
28
+ * nunca descobertas por convenção (RFC §4.7).
29
+ */
30
+ export declare function createTransactionalEmailProvider(config: TransactionalEmailProviderConfig): TransactionalEmailCapability;
31
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/mail/provider.ts"],"names":[],"mappings":"AAKA,OAAO,EAOL,KAAK,UAAU,EAEf,KAAK,YAAY,EAEjB,KAAK,YAAY,EAGjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EAClC,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gCAAgC;IAC/C,+EAA+E;IAC/E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,YAAY,CAAC;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAgCD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,gCAAgC,GACvC,4BAA4B,CAwO9B"}