@temboplus/afloat 0.1.57 → 0.1.58

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 (466) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +42 -246
  3. package/esm/_dnt.test_shims.d.ts.map +1 -0
  4. package/esm/deps/jsr.io/@std/assert/1.0.10/almost_equals.d.ts.map +1 -0
  5. package/esm/deps/jsr.io/@std/assert/1.0.10/array_includes.d.ts.map +1 -0
  6. package/esm/deps/jsr.io/@std/assert/1.0.10/assert.d.ts.map +1 -0
  7. package/esm/deps/jsr.io/@std/assert/1.0.10/assertion_error.d.ts.map +1 -0
  8. package/esm/deps/jsr.io/@std/assert/1.0.10/equal.d.ts.map +1 -0
  9. package/esm/deps/jsr.io/@std/assert/1.0.10/equals.d.ts.map +1 -0
  10. package/esm/deps/jsr.io/@std/assert/1.0.10/exists.d.ts.map +1 -0
  11. package/esm/deps/jsr.io/@std/assert/1.0.10/fail.d.ts.map +1 -0
  12. package/esm/deps/jsr.io/@std/assert/1.0.10/false.d.ts.map +1 -0
  13. package/esm/deps/jsr.io/@std/assert/1.0.10/greater.d.ts.map +1 -0
  14. package/esm/deps/jsr.io/@std/assert/1.0.10/greater_or_equal.d.ts.map +1 -0
  15. package/esm/deps/jsr.io/@std/assert/1.0.10/instance_of.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/assert/1.0.10/is_error.d.ts.map +1 -0
  17. package/esm/deps/jsr.io/@std/assert/1.0.10/less.d.ts.map +1 -0
  18. package/esm/deps/jsr.io/@std/assert/1.0.10/less_or_equal.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/assert/1.0.10/match.d.ts.map +1 -0
  20. package/esm/deps/jsr.io/@std/assert/1.0.10/mod.d.ts.map +1 -0
  21. package/esm/deps/jsr.io/@std/assert/1.0.10/not_equals.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/assert/1.0.10/not_instance_of.d.ts.map +1 -0
  23. package/esm/deps/jsr.io/@std/assert/1.0.10/not_match.d.ts.map +1 -0
  24. package/esm/deps/jsr.io/@std/assert/1.0.10/not_strict_equals.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@std/assert/1.0.10/object_match.d.ts.map +1 -0
  26. package/esm/deps/jsr.io/@std/assert/1.0.10/rejects.d.ts.map +1 -0
  27. package/esm/deps/jsr.io/@std/assert/1.0.10/strict_equals.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@std/assert/1.0.10/string_includes.d.ts.map +1 -0
  29. package/esm/deps/jsr.io/@std/assert/1.0.10/throws.d.ts.map +1 -0
  30. package/esm/deps/jsr.io/@std/assert/1.0.10/unimplemented.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/assert/1.0.10/unreachable.d.ts.map +1 -0
  32. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
  33. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
  35. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
  36. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
  38. package/esm/mod.d.ts +8 -0
  39. package/esm/mod.d.ts.map +1 -0
  40. package/esm/mod.js +7 -0
  41. package/esm/package.json +3 -0
  42. package/{dist/lib/error/error.api.d.ts → esm/src/errors/api_error.d.ts} +1 -0
  43. package/esm/src/errors/api_error.d.ts.map +1 -0
  44. package/esm/src/errors/api_error.js +90 -0
  45. package/esm/src/errors/index.d.ts +3 -0
  46. package/esm/src/errors/index.d.ts.map +1 -0
  47. package/esm/src/errors/index.js +2 -0
  48. package/{dist/lib/error/error.permission.d.ts → esm/src/errors/permission_error.d.ts} +2 -1
  49. package/esm/src/errors/permission_error.d.ts.map +1 -0
  50. package/esm/src/errors/permission_error.js +70 -0
  51. package/{dist/features/admin/admin.contract.d.ts → esm/src/features/admin/contract.d.ts} +77 -41
  52. package/esm/src/features/admin/contract.d.ts.map +1 -0
  53. package/esm/src/features/admin/contract.js +210 -0
  54. package/esm/src/features/admin/index.d.ts +4 -0
  55. package/esm/src/features/admin/index.d.ts.map +1 -0
  56. package/esm/src/features/admin/index.js +3 -0
  57. package/esm/src/features/admin/repository.d.ts +114 -0
  58. package/esm/src/features/admin/repository.d.ts.map +1 -0
  59. package/esm/src/features/admin/repository.js +248 -0
  60. package/{dist/features/admin/admin.dtos.d.ts → esm/src/features/admin/schemas.d.ts} +9 -8
  61. package/esm/src/features/admin/schemas.d.ts.map +1 -0
  62. package/esm/src/features/admin/schemas.js +206 -0
  63. package/{dist/features/auth/access/access.api-contract.d.ts → esm/src/features/auth/access/contract.d.ts} +1 -0
  64. package/esm/src/features/auth/access/contract.d.ts.map +1 -0
  65. package/esm/src/features/auth/access/contract.js +14 -0
  66. package/esm/src/features/auth/access/repository.d.ts +11 -0
  67. package/esm/src/features/auth/access/repository.d.ts.map +1 -0
  68. package/esm/src/features/auth/access/repository.js +25 -0
  69. package/{dist/features/auth/auth.contract.d.ts → esm/src/features/auth/contract.d.ts} +8 -12
  70. package/esm/src/features/auth/contract.d.ts.map +1 -0
  71. package/esm/src/features/auth/contract.js +43 -0
  72. package/{dist/features/auth/identity/identity.api-contract.d.ts → esm/src/features/auth/identity/contract.d.ts} +1 -0
  73. package/esm/src/features/auth/identity/contract.d.ts.map +1 -0
  74. package/esm/src/features/auth/identity/contract.js +17 -0
  75. package/esm/src/features/auth/identity/repository.d.ts +22 -0
  76. package/esm/src/features/auth/identity/repository.d.ts.map +1 -0
  77. package/esm/src/features/auth/identity/repository.js +30 -0
  78. package/esm/src/features/auth/index.d.ts +6 -0
  79. package/esm/src/features/auth/index.d.ts.map +1 -0
  80. package/esm/src/features/auth/index.js +5 -0
  81. package/esm/src/features/auth/manager.d.ts +105 -0
  82. package/esm/src/features/auth/manager.d.ts.map +1 -0
  83. package/esm/src/features/auth/manager.js +181 -0
  84. package/{dist/features/auth/profile/profile.api-contract.d.ts → esm/src/features/auth/profile/contract.d.ts} +6 -8
  85. package/esm/src/features/auth/profile/contract.d.ts.map +1 -0
  86. package/esm/src/features/auth/profile/contract.js +14 -0
  87. package/esm/src/features/auth/profile/repository.d.ts +11 -0
  88. package/esm/src/features/auth/profile/repository.d.ts.map +1 -0
  89. package/esm/src/features/auth/profile/repository.js +25 -0
  90. package/esm/src/features/auth/repository.d.ts +30 -0
  91. package/esm/src/features/auth/repository.d.ts.map +1 -0
  92. package/esm/src/features/auth/repository.js +69 -0
  93. package/{dist/features/auth/storage/client-store.d.ts → esm/src/features/auth/storage/client_store.d.ts} +3 -2
  94. package/esm/src/features/auth/storage/client_store.d.ts.map +1 -0
  95. package/esm/src/features/auth/storage/client_store.js +46 -0
  96. package/{dist/features/auth/storage/client-token-handler.d.ts → esm/src/features/auth/storage/client_token_handler.d.ts} +2 -1
  97. package/esm/src/features/auth/storage/client_token_handler.d.ts.map +1 -0
  98. package/esm/src/features/auth/storage/client_token_handler.js +36 -0
  99. package/esm/src/features/auth/storage/server_store.d.ts +24 -0
  100. package/esm/src/features/auth/storage/server_store.d.ts.map +1 -0
  101. package/esm/src/features/auth/storage/server_store.js +34 -0
  102. package/esm/src/features/auth/storage/server_token_handler.d.ts +36 -0
  103. package/esm/src/features/auth/storage/server_token_handler.d.ts.map +1 -0
  104. package/esm/src/features/auth/storage/server_token_handler.js +115 -0
  105. package/{dist → esm/src}/features/auth/storage/types.d.ts +2 -1
  106. package/esm/src/features/auth/storage/types.d.ts.map +1 -0
  107. package/esm/src/features/auth/storage/types.js +1 -0
  108. package/{dist/features/contact/contact.api-contract.d.ts → esm/src/features/contact/contract.d.ts} +45 -101
  109. package/esm/src/features/contact/contract.d.ts.map +1 -0
  110. package/esm/src/features/contact/contract.js +49 -0
  111. package/esm/src/features/contact/index.d.ts +2 -0
  112. package/esm/src/features/contact/index.d.ts.map +1 -0
  113. package/esm/src/features/contact/index.js +1 -0
  114. package/esm/src/features/contact/repository.d.ts +58 -0
  115. package/esm/src/features/contact/repository.d.ts.map +1 -0
  116. package/esm/src/features/contact/repository.js +108 -0
  117. package/{dist/features/payout/payout.api-contract.d.ts → esm/src/features/payout/contract.d.ts} +187 -351
  118. package/esm/src/features/payout/contract.d.ts.map +1 -0
  119. package/esm/src/features/payout/contract.js +75 -0
  120. package/esm/src/features/payout/index.d.ts +2 -0
  121. package/esm/src/features/payout/index.d.ts.map +1 -0
  122. package/esm/src/features/payout/index.js +1 -0
  123. package/esm/src/features/payout/repository.d.ts +67 -0
  124. package/esm/src/features/payout/repository.d.ts.map +1 -0
  125. package/esm/src/features/payout/repository.js +163 -0
  126. package/{dist/features/wallet/wallet.contract.d.ts → esm/src/features/wallet/contract.d.ts} +7 -9
  127. package/esm/src/features/wallet/contract.d.ts.map +1 -0
  128. package/esm/src/features/wallet/contract.js +38 -0
  129. package/esm/src/features/wallet/index.d.ts +2 -0
  130. package/esm/src/features/wallet/index.d.ts.map +1 -0
  131. package/esm/src/features/wallet/index.js +1 -0
  132. package/esm/src/features/wallet/repository.d.ts +57 -0
  133. package/esm/src/features/wallet/repository.d.ts.map +1 -0
  134. package/esm/src/features/wallet/repository.js +93 -0
  135. package/{dist/models/contact.model.d.ts → esm/src/models/contact/derivatives/contact.d.ts} +16 -23
  136. package/esm/src/models/contact/derivatives/contact.d.ts.map +1 -0
  137. package/esm/src/models/contact/derivatives/contact.js +266 -0
  138. package/esm/src/models/contact/derivatives/contact.test.d.ts.map +1 -0
  139. package/esm/src/models/contact/derivatives/contact_info.d.ts +188 -0
  140. package/esm/src/models/contact/derivatives/contact_info.d.ts.map +1 -0
  141. package/esm/src/models/contact/derivatives/contact_info.js +255 -0
  142. package/esm/src/models/contact/derivatives/contact_info.test.d.ts.map +1 -0
  143. package/esm/src/models/contact/index.d.ts +5 -0
  144. package/esm/src/models/contact/index.d.ts.map +1 -0
  145. package/esm/src/models/contact/index.js +4 -0
  146. package/esm/src/models/contact/schemas.d.ts +66 -0
  147. package/esm/src/models/contact/schemas.d.ts.map +1 -0
  148. package/esm/src/models/contact/schemas.js +64 -0
  149. package/esm/src/models/contact/validation.d.ts +37 -0
  150. package/esm/src/models/contact/validation.d.ts.map +1 -0
  151. package/esm/src/models/contact/validation.js +146 -0
  152. package/esm/src/models/contact/validation.test.d.ts.map +1 -0
  153. package/esm/src/models/index.d.ts +7 -0
  154. package/esm/src/models/index.d.ts.map +1 -0
  155. package/esm/src/models/index.js +6 -0
  156. package/esm/src/models/payout/api.d.ts +29 -0
  157. package/esm/src/models/payout/api.d.ts.map +1 -0
  158. package/esm/src/models/payout/api.js +1 -0
  159. package/esm/src/models/payout/channel.d.ts +58 -0
  160. package/esm/src/models/payout/channel.d.ts.map +1 -0
  161. package/esm/src/models/payout/channel.js +53 -0
  162. package/{dist/models/payout.model.d.ts → esm/src/models/payout/derivatives/payout.d.ts} +15 -13
  163. package/esm/src/models/payout/derivatives/payout.d.ts.map +1 -0
  164. package/esm/src/models/payout/derivatives/payout.js +261 -0
  165. package/esm/src/models/payout/derivatives/payout.test.d.ts.map +1 -0
  166. package/esm/src/models/payout/index.d.ts +6 -0
  167. package/esm/src/models/payout/index.d.ts.map +1 -0
  168. package/esm/src/models/payout/index.js +5 -0
  169. package/esm/src/models/payout/schemas.d.ts +156 -0
  170. package/esm/src/models/payout/schemas.d.ts.map +1 -0
  171. package/esm/src/models/payout/schemas.js +105 -0
  172. package/esm/src/models/payout/status.d.ts +33 -0
  173. package/esm/src/models/payout/status.d.ts.map +1 -0
  174. package/esm/src/models/payout/status.js +34 -0
  175. package/{dist → esm/src}/models/permission.d.ts +2 -1
  176. package/esm/src/models/permission.d.ts.map +1 -0
  177. package/esm/src/models/permission.js +50 -0
  178. package/{dist/models/role.model.d.ts → esm/src/models/role.d.ts} +10 -2
  179. package/esm/src/models/role.d.ts.map +1 -0
  180. package/esm/src/models/role.js +73 -0
  181. package/esm/src/models/user/authenticated-user.d.ts +77 -0
  182. package/esm/src/models/user/authenticated-user.d.ts.map +1 -0
  183. package/esm/src/models/user/authenticated-user.js +226 -0
  184. package/esm/src/models/user/index.d.ts +4 -0
  185. package/esm/src/models/user/index.d.ts.map +1 -0
  186. package/esm/src/models/user/index.js +3 -0
  187. package/{dist/models/managed-user.model.d.ts → esm/src/models/user/managed-user.d.ts} +3 -3
  188. package/esm/src/models/user/managed-user.d.ts.map +1 -0
  189. package/esm/src/models/user/managed-user.js +255 -0
  190. package/{dist/models/profile.model.d.ts → esm/src/models/user/profile.d.ts} +43 -37
  191. package/esm/src/models/user/profile.d.ts.map +1 -0
  192. package/esm/src/models/user/profile.js +334 -0
  193. package/esm/src/models/wallet/index.d.ts +4 -0
  194. package/esm/src/models/wallet/index.d.ts.map +1 -0
  195. package/esm/src/models/wallet/index.js +3 -0
  196. package/esm/src/models/wallet/schemas.d.ts +95 -0
  197. package/esm/src/models/wallet/schemas.d.ts.map +1 -0
  198. package/esm/src/models/wallet/schemas.js +35 -0
  199. package/esm/src/models/wallet/statement_entry.d.ts +160 -0
  200. package/esm/src/models/wallet/statement_entry.d.ts.map +1 -0
  201. package/esm/src/models/wallet/statement_entry.js +255 -0
  202. package/{dist/models/wallet.model.d.ts → esm/src/models/wallet/wallet.d.ts} +46 -3
  203. package/esm/src/models/wallet/wallet.d.ts.map +1 -0
  204. package/esm/src/models/wallet/wallet.js +279 -0
  205. package/{dist/lib/api/base-repository.d.ts → esm/src/shared/base_repository.d.ts} +42 -137
  206. package/esm/src/shared/base_repository.d.ts.map +1 -0
  207. package/esm/src/shared/base_repository.js +153 -0
  208. package/{dist/lib/api/common-responses.d.ts → esm/src/shared/common_responses.d.ts} +1 -0
  209. package/esm/src/shared/common_responses.d.ts.map +1 -0
  210. package/esm/src/shared/common_responses.js +10 -0
  211. package/esm/src/shared/index.d.ts +3 -0
  212. package/esm/src/shared/index.d.ts.map +1 -0
  213. package/esm/src/shared/index.js +2 -0
  214. package/esm/src/shared/token_required_repository.d.ts +78 -0
  215. package/esm/src/shared/token_required_repository.d.ts.map +1 -0
  216. package/esm/src/shared/token_required_repository.js +128 -0
  217. package/package.json +25 -47
  218. package/script/_dnt.test_shims.d.ts.map +1 -0
  219. package/script/deps/jsr.io/@std/assert/1.0.10/almost_equals.d.ts.map +1 -0
  220. package/script/deps/jsr.io/@std/assert/1.0.10/array_includes.d.ts.map +1 -0
  221. package/script/deps/jsr.io/@std/assert/1.0.10/assert.d.ts.map +1 -0
  222. package/script/deps/jsr.io/@std/assert/1.0.10/assertion_error.d.ts.map +1 -0
  223. package/script/deps/jsr.io/@std/assert/1.0.10/equal.d.ts.map +1 -0
  224. package/script/deps/jsr.io/@std/assert/1.0.10/equals.d.ts.map +1 -0
  225. package/script/deps/jsr.io/@std/assert/1.0.10/exists.d.ts.map +1 -0
  226. package/script/deps/jsr.io/@std/assert/1.0.10/fail.d.ts.map +1 -0
  227. package/script/deps/jsr.io/@std/assert/1.0.10/false.d.ts.map +1 -0
  228. package/script/deps/jsr.io/@std/assert/1.0.10/greater.d.ts.map +1 -0
  229. package/script/deps/jsr.io/@std/assert/1.0.10/greater_or_equal.d.ts.map +1 -0
  230. package/script/deps/jsr.io/@std/assert/1.0.10/instance_of.d.ts.map +1 -0
  231. package/script/deps/jsr.io/@std/assert/1.0.10/is_error.d.ts.map +1 -0
  232. package/script/deps/jsr.io/@std/assert/1.0.10/less.d.ts.map +1 -0
  233. package/script/deps/jsr.io/@std/assert/1.0.10/less_or_equal.d.ts.map +1 -0
  234. package/script/deps/jsr.io/@std/assert/1.0.10/match.d.ts.map +1 -0
  235. package/script/deps/jsr.io/@std/assert/1.0.10/mod.d.ts.map +1 -0
  236. package/script/deps/jsr.io/@std/assert/1.0.10/not_equals.d.ts.map +1 -0
  237. package/script/deps/jsr.io/@std/assert/1.0.10/not_instance_of.d.ts.map +1 -0
  238. package/script/deps/jsr.io/@std/assert/1.0.10/not_match.d.ts.map +1 -0
  239. package/script/deps/jsr.io/@std/assert/1.0.10/not_strict_equals.d.ts.map +1 -0
  240. package/script/deps/jsr.io/@std/assert/1.0.10/object_match.d.ts.map +1 -0
  241. package/script/deps/jsr.io/@std/assert/1.0.10/rejects.d.ts.map +1 -0
  242. package/script/deps/jsr.io/@std/assert/1.0.10/strict_equals.d.ts.map +1 -0
  243. package/script/deps/jsr.io/@std/assert/1.0.10/string_includes.d.ts.map +1 -0
  244. package/script/deps/jsr.io/@std/assert/1.0.10/throws.d.ts.map +1 -0
  245. package/script/deps/jsr.io/@std/assert/1.0.10/unimplemented.d.ts.map +1 -0
  246. package/script/deps/jsr.io/@std/assert/1.0.10/unreachable.d.ts.map +1 -0
  247. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
  248. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
  249. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
  250. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
  251. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
  252. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
  253. package/script/mod.d.ts +8 -0
  254. package/script/mod.d.ts.map +1 -0
  255. package/script/mod.js +23 -0
  256. package/script/package.json +3 -0
  257. package/script/src/errors/api_error.d.ts +63 -0
  258. package/script/src/errors/api_error.d.ts.map +1 -0
  259. package/script/src/errors/api_error.js +94 -0
  260. package/script/src/errors/index.d.ts +3 -0
  261. package/script/src/errors/index.d.ts.map +1 -0
  262. package/script/src/errors/index.js +18 -0
  263. package/script/src/errors/permission_error.d.ts +48 -0
  264. package/script/src/errors/permission_error.d.ts.map +1 -0
  265. package/script/src/errors/permission_error.js +74 -0
  266. package/script/src/features/admin/contract.d.ts +842 -0
  267. package/script/src/features/admin/contract.d.ts.map +1 -0
  268. package/script/src/features/admin/contract.js +213 -0
  269. package/script/src/features/admin/index.d.ts +4 -0
  270. package/script/src/features/admin/index.d.ts.map +1 -0
  271. package/script/src/features/admin/index.js +19 -0
  272. package/script/src/features/admin/repository.d.ts +114 -0
  273. package/script/src/features/admin/repository.d.ts.map +1 -0
  274. package/script/src/features/admin/repository.js +252 -0
  275. package/script/src/features/admin/schemas.d.ts +146 -0
  276. package/script/src/features/admin/schemas.d.ts.map +1 -0
  277. package/script/src/features/admin/schemas.js +209 -0
  278. package/script/src/features/auth/access/contract.d.ts +14 -0
  279. package/script/src/features/auth/access/contract.d.ts.map +1 -0
  280. package/script/src/features/auth/access/contract.js +17 -0
  281. package/script/src/features/auth/access/repository.d.ts +11 -0
  282. package/script/src/features/auth/access/repository.d.ts.map +1 -0
  283. package/script/src/features/auth/access/repository.js +29 -0
  284. package/script/src/features/auth/contract.d.ts +112 -0
  285. package/script/src/features/auth/contract.d.ts.map +1 -0
  286. package/script/src/features/auth/contract.js +46 -0
  287. package/script/src/features/auth/identity/contract.d.ts +23 -0
  288. package/script/src/features/auth/identity/contract.d.ts.map +1 -0
  289. package/script/src/features/auth/identity/contract.js +20 -0
  290. package/script/src/features/auth/identity/repository.d.ts +22 -0
  291. package/script/src/features/auth/identity/repository.d.ts.map +1 -0
  292. package/script/src/features/auth/identity/repository.js +34 -0
  293. package/script/src/features/auth/index.d.ts +6 -0
  294. package/script/src/features/auth/index.d.ts.map +1 -0
  295. package/script/src/features/auth/index.js +21 -0
  296. package/script/src/features/auth/manager.d.ts +105 -0
  297. package/script/src/features/auth/manager.d.ts.map +1 -0
  298. package/script/src/features/auth/manager.js +185 -0
  299. package/script/src/features/auth/profile/contract.d.ts +37 -0
  300. package/script/src/features/auth/profile/contract.d.ts.map +1 -0
  301. package/script/src/features/auth/profile/contract.js +17 -0
  302. package/script/src/features/auth/profile/repository.d.ts +11 -0
  303. package/script/src/features/auth/profile/repository.d.ts.map +1 -0
  304. package/script/src/features/auth/profile/repository.js +29 -0
  305. package/script/src/features/auth/repository.d.ts +30 -0
  306. package/script/src/features/auth/repository.d.ts.map +1 -0
  307. package/script/src/features/auth/repository.js +73 -0
  308. package/script/src/features/auth/storage/client_store.d.ts +30 -0
  309. package/script/src/features/auth/storage/client_store.d.ts.map +1 -0
  310. package/script/src/features/auth/storage/client_store.js +51 -0
  311. package/script/src/features/auth/storage/client_token_handler.d.ts +32 -0
  312. package/script/src/features/auth/storage/client_token_handler.d.ts.map +1 -0
  313. package/script/src/features/auth/storage/client_token_handler.js +40 -0
  314. package/script/src/features/auth/storage/server_store.d.ts +24 -0
  315. package/script/src/features/auth/storage/server_store.d.ts.map +1 -0
  316. package/script/src/features/auth/storage/server_store.js +38 -0
  317. package/script/src/features/auth/storage/server_token_handler.d.ts +36 -0
  318. package/script/src/features/auth/storage/server_token_handler.d.ts.map +1 -0
  319. package/script/src/features/auth/storage/server_token_handler.js +119 -0
  320. package/script/src/features/auth/storage/types.d.ts +42 -0
  321. package/script/src/features/auth/storage/types.d.ts.map +1 -0
  322. package/script/src/features/auth/storage/types.js +2 -0
  323. package/script/src/features/contact/contract.d.ts +170 -0
  324. package/script/src/features/contact/contract.d.ts.map +1 -0
  325. package/script/src/features/contact/contract.js +52 -0
  326. package/script/src/features/contact/index.d.ts +2 -0
  327. package/script/src/features/contact/index.d.ts.map +1 -0
  328. package/script/src/features/contact/index.js +17 -0
  329. package/script/src/features/contact/repository.d.ts +58 -0
  330. package/script/src/features/contact/repository.d.ts.map +1 -0
  331. package/script/src/features/contact/repository.js +112 -0
  332. package/script/src/features/payout/contract.d.ts +623 -0
  333. package/script/src/features/payout/contract.d.ts.map +1 -0
  334. package/script/src/features/payout/contract.js +78 -0
  335. package/script/src/features/payout/index.d.ts +2 -0
  336. package/script/src/features/payout/index.d.ts.map +1 -0
  337. package/script/src/features/payout/index.js +17 -0
  338. package/script/src/features/payout/repository.d.ts +67 -0
  339. package/script/src/features/payout/repository.d.ts.map +1 -0
  340. package/script/src/features/payout/repository.js +167 -0
  341. package/script/src/features/wallet/contract.d.ts +137 -0
  342. package/script/src/features/wallet/contract.d.ts.map +1 -0
  343. package/script/src/features/wallet/contract.js +41 -0
  344. package/script/src/features/wallet/index.d.ts +2 -0
  345. package/script/src/features/wallet/index.d.ts.map +1 -0
  346. package/script/src/features/wallet/index.js +17 -0
  347. package/script/src/features/wallet/repository.d.ts +57 -0
  348. package/script/src/features/wallet/repository.d.ts.map +1 -0
  349. package/script/src/features/wallet/repository.js +97 -0
  350. package/script/src/models/contact/derivatives/contact.d.ts +172 -0
  351. package/script/src/models/contact/derivatives/contact.d.ts.map +1 -0
  352. package/script/src/models/contact/derivatives/contact.js +270 -0
  353. package/script/src/models/contact/derivatives/contact.test.d.ts.map +1 -0
  354. package/script/src/models/contact/derivatives/contact_info.d.ts +188 -0
  355. package/script/src/models/contact/derivatives/contact_info.d.ts.map +1 -0
  356. package/script/src/models/contact/derivatives/contact_info.js +260 -0
  357. package/script/src/models/contact/derivatives/contact_info.test.d.ts.map +1 -0
  358. package/script/src/models/contact/index.d.ts +5 -0
  359. package/script/src/models/contact/index.d.ts.map +1 -0
  360. package/script/src/models/contact/index.js +20 -0
  361. package/script/src/models/contact/schemas.d.ts +66 -0
  362. package/script/src/models/contact/schemas.d.ts.map +1 -0
  363. package/script/src/models/contact/schemas.js +67 -0
  364. package/script/src/models/contact/validation.d.ts +37 -0
  365. package/script/src/models/contact/validation.d.ts.map +1 -0
  366. package/script/src/models/contact/validation.js +153 -0
  367. package/script/src/models/contact/validation.test.d.ts.map +1 -0
  368. package/script/src/models/index.d.ts +7 -0
  369. package/script/src/models/index.d.ts.map +1 -0
  370. package/script/src/models/index.js +22 -0
  371. package/script/src/models/payout/api.d.ts +29 -0
  372. package/script/src/models/payout/api.d.ts.map +1 -0
  373. package/script/src/models/payout/api.js +2 -0
  374. package/script/src/models/payout/channel.d.ts +58 -0
  375. package/script/src/models/payout/channel.d.ts.map +1 -0
  376. package/script/src/models/payout/channel.js +56 -0
  377. package/script/src/models/payout/derivatives/payout.d.ts +156 -0
  378. package/script/src/models/payout/derivatives/payout.d.ts.map +1 -0
  379. package/script/src/models/payout/derivatives/payout.js +265 -0
  380. package/script/src/models/payout/derivatives/payout.test.d.ts.map +1 -0
  381. package/script/src/models/payout/index.d.ts +6 -0
  382. package/script/src/models/payout/index.d.ts.map +1 -0
  383. package/script/src/models/payout/index.js +21 -0
  384. package/script/src/models/payout/schemas.d.ts +156 -0
  385. package/script/src/models/payout/schemas.d.ts.map +1 -0
  386. package/script/src/models/payout/schemas.js +108 -0
  387. package/script/src/models/payout/status.d.ts +33 -0
  388. package/script/src/models/payout/status.d.ts.map +1 -0
  389. package/script/src/models/payout/status.js +37 -0
  390. package/script/src/models/permission.d.ts +55 -0
  391. package/script/src/models/permission.d.ts.map +1 -0
  392. package/script/src/models/permission.js +53 -0
  393. package/script/src/models/role.d.ts +21 -0
  394. package/script/src/models/role.d.ts.map +1 -0
  395. package/script/src/models/role.js +77 -0
  396. package/script/src/models/user/authenticated-user.d.ts +77 -0
  397. package/script/src/models/user/authenticated-user.d.ts.map +1 -0
  398. package/script/src/models/user/authenticated-user.js +230 -0
  399. package/script/src/models/user/index.d.ts +4 -0
  400. package/script/src/models/user/index.d.ts.map +1 -0
  401. package/script/src/models/user/index.js +19 -0
  402. package/script/src/models/user/managed-user.d.ts +108 -0
  403. package/script/src/models/user/managed-user.d.ts.map +1 -0
  404. package/script/src/models/user/managed-user.js +260 -0
  405. package/script/src/models/user/profile.d.ts +161 -0
  406. package/script/src/models/user/profile.d.ts.map +1 -0
  407. package/script/src/models/user/profile.js +338 -0
  408. package/script/src/models/wallet/index.d.ts +4 -0
  409. package/script/src/models/wallet/index.d.ts.map +1 -0
  410. package/script/src/models/wallet/index.js +19 -0
  411. package/script/src/models/wallet/schemas.d.ts +95 -0
  412. package/script/src/models/wallet/schemas.d.ts.map +1 -0
  413. package/script/src/models/wallet/schemas.js +38 -0
  414. package/script/src/models/wallet/statement_entry.d.ts +160 -0
  415. package/script/src/models/wallet/statement_entry.d.ts.map +1 -0
  416. package/script/src/models/wallet/statement_entry.js +259 -0
  417. package/script/src/models/wallet/wallet.d.ts +147 -0
  418. package/script/src/models/wallet/wallet.d.ts.map +1 -0
  419. package/script/src/models/wallet/wallet.js +283 -0
  420. package/script/src/shared/base_repository.d.ts +80 -0
  421. package/script/src/shared/base_repository.d.ts.map +1 -0
  422. package/script/src/shared/base_repository.js +157 -0
  423. package/script/src/shared/common_responses.d.ts +13 -0
  424. package/script/src/shared/common_responses.d.ts.map +1 -0
  425. package/script/src/shared/common_responses.js +13 -0
  426. package/script/src/shared/index.d.ts +3 -0
  427. package/script/src/shared/index.d.ts.map +1 -0
  428. package/script/src/shared/index.js +18 -0
  429. package/script/src/shared/token_required_repository.d.ts +78 -0
  430. package/script/src/shared/token_required_repository.d.ts.map +1 -0
  431. package/script/src/shared/token_required_repository.js +132 -0
  432. package/dist/features/admin/admin.repository.d.ts +0 -179
  433. package/dist/features/admin/index.d.ts +0 -2
  434. package/dist/features/auth/access/access.repository.d.ts +0 -55
  435. package/dist/features/auth/auth.manager.d.ts +0 -249
  436. package/dist/features/auth/auth.repository.d.ts +0 -66
  437. package/dist/features/auth/auth.store.d.ts +0 -139
  438. package/dist/features/auth/identity/identity.repository.d.ts +0 -58
  439. package/dist/features/auth/index.d.ts +0 -5
  440. package/dist/features/auth/profile/profile.dtos.d.ts +0 -80
  441. package/dist/features/auth/profile/profile.repository.d.ts +0 -56
  442. package/dist/features/contact/contact-input-handler.d.ts +0 -16
  443. package/dist/features/contact/contact.dtos.d.ts +0 -90
  444. package/dist/features/contact/contact.repository.d.ts +0 -116
  445. package/dist/features/contact/index.d.ts +0 -2
  446. package/dist/features/payout/index.d.ts +0 -3
  447. package/dist/features/payout/payout-channel-handler.d.ts +0 -108
  448. package/dist/features/payout/payout.dtos.d.ts +0 -365
  449. package/dist/features/payout/payout.repository.d.ts +0 -193
  450. package/dist/features/wallet/index.d.ts +0 -4
  451. package/dist/features/wallet/wallet-manager.session.d.ts +0 -143
  452. package/dist/features/wallet/wallet.dtos.d.ts +0 -204
  453. package/dist/features/wallet/wallet.repository.d.ts +0 -120
  454. package/dist/features/wallet/wallet.utils.d.ts +0 -17
  455. package/dist/index.cjs.js +0 -2
  456. package/dist/index.cjs.js.map +0 -1
  457. package/dist/index.d.ts +0 -7
  458. package/dist/index.esm.js +0 -2
  459. package/dist/index.esm.js.map +0 -1
  460. package/dist/lib/api/index.d.ts +0 -2
  461. package/dist/lib/error/error.utils.d.ts +0 -22
  462. package/dist/lib/error/index.d.ts +0 -3
  463. package/dist/models/contact-info.model.d.ts +0 -817
  464. package/dist/models/index.d.ts +0 -10
  465. package/dist/models/statement-entry.model.d.ts +0 -195
  466. package/dist/models/user.model.d.ts +0 -65
@@ -0,0 +1,58 @@
1
+ import { type TZPhoneNumber } from "@temboplus/frontend-core";
2
+ /**
3
+ * Represents the available channels through which payouts can be processed.
4
+ * @enum {string}
5
+ * @readonly
6
+ */
7
+ export declare enum PAYOUT_CHANNEL {
8
+ /** Payment processed through mobile money services */
9
+ MOBILE = "Mobile",
10
+ /** Payment processed through traditional banking channels */
11
+ BANK = "Bank",
12
+ /** Payment processed through CRDB named account */
13
+ CRDB_NAMED_ACC = "CRDB_NAMED_ACC"
14
+ }
15
+ /**
16
+ * Valid payout channel codes that can be used in the system
17
+ *
18
+ * @remarks
19
+ * - `TZ-BANK-B2C`: Code for bank transfers
20
+ * - `TZ-VERTO-B2C`: Code for Verto transfers
21
+ * - `TZ-${telecom}-B2C`: Pattern for mobile money transfers where the telecom company is the provider code
22
+ *
23
+ * @see {@link createPayoutChannelCode} for functions to generate valid codes
24
+ */
25
+ export type PayoutChannelCode = "TZ-BANK-B2C" | "TZ-VERTO-B2C" | `TZ-${string}-B2C`;
26
+ /**
27
+ * Utility functions to create standardized payout channel codes
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * // Create bank channel code
32
+ * const bankCode = createPayoutChannelCode.bank(); // Returns "TZ-BANK-B2C"
33
+ *
34
+ * // Create mobile channel code
35
+ * const mobileCode = createPayoutChannelCode.mobile(phoneNumber); // Returns "TZ-VODACOM-B2C" for Vodacom number
36
+ * ```
37
+ */
38
+ export declare const createPayoutChannelCode: {
39
+ /**
40
+ * Creates a bank transfer channel code
41
+ * @returns {"TZ-BANK-B2C"} Standard bank transfer code
42
+ */
43
+ bank: () => "TZ-BANK-B2C";
44
+ /**
45
+ * Creates a Verto transfer channel code
46
+ * @returns {"TZ-VERTO-B2C"} Standard Verto transfer code
47
+ */
48
+ verto: () => "TZ-VERTO-B2C";
49
+ /**
50
+ * Creates a mobile money channel code based on the telecom provider
51
+ * @param {TZPhoneNumber} phoneNumber - Phone number object containing telecom information
52
+ * @returns {PayoutChannelCode} Channel code in format "TZ-{TELECOM}-B2C"
53
+ *
54
+ * @see {@link TZPhoneNumber} from "@jsr/temboplus__tembo-core" for phone number structure
55
+ */
56
+ mobile: (phoneNumber: TZPhoneNumber) => PayoutChannelCode;
57
+ };
58
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE/E;;;;GAIG;AACH,oBAAY,cAAc;IACxB,sDAAsD;IACtD,MAAM,WAAW;IACjB,6DAA6D;IAC7D,IAAI,SAAS;IACb,mDAAmD;IACnD,cAAc,mBAAmB;CAClC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,cAAc,GACd,MAAM,MAAM,MAAM,CAAC;AAEvB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;gBACO,aAAa;IAEvB;;;OAGG;iBACQ,cAAc;IAEzB;;;;;;OAMG;0BAC4B,aAAa,KAAG,iBAAiB;CAOjE,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { NetworkOperator } from "@temboplus/frontend-core";
2
+ /**
3
+ * Represents the available channels through which payouts can be processed.
4
+ * @enum {string}
5
+ * @readonly
6
+ */
7
+ export var PAYOUT_CHANNEL;
8
+ (function (PAYOUT_CHANNEL) {
9
+ /** Payment processed through mobile money services */
10
+ PAYOUT_CHANNEL["MOBILE"] = "Mobile";
11
+ /** Payment processed through traditional banking channels */
12
+ PAYOUT_CHANNEL["BANK"] = "Bank";
13
+ /** Payment processed through CRDB named account */
14
+ PAYOUT_CHANNEL["CRDB_NAMED_ACC"] = "CRDB_NAMED_ACC";
15
+ })(PAYOUT_CHANNEL || (PAYOUT_CHANNEL = {}));
16
+ /**
17
+ * Utility functions to create standardized payout channel codes
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * // Create bank channel code
22
+ * const bankCode = createPayoutChannelCode.bank(); // Returns "TZ-BANK-B2C"
23
+ *
24
+ * // Create mobile channel code
25
+ * const mobileCode = createPayoutChannelCode.mobile(phoneNumber); // Returns "TZ-VODACOM-B2C" for Vodacom number
26
+ * ```
27
+ */
28
+ export const createPayoutChannelCode = {
29
+ /**
30
+ * Creates a bank transfer channel code
31
+ * @returns {"TZ-BANK-B2C"} Standard bank transfer code
32
+ */
33
+ bank: () => "TZ-BANK-B2C",
34
+ /**
35
+ * Creates a Verto transfer channel code
36
+ * @returns {"TZ-VERTO-B2C"} Standard Verto transfer code
37
+ */
38
+ verto: () => "TZ-VERTO-B2C",
39
+ /**
40
+ * Creates a mobile money channel code based on the telecom provider
41
+ * @param {TZPhoneNumber} phoneNumber - Phone number object containing telecom information
42
+ * @returns {PayoutChannelCode} Channel code in format "TZ-{TELECOM}-B2C"
43
+ *
44
+ * @see {@link TZPhoneNumber} from "@jsr/temboplus__tembo-core" for phone number structure
45
+ */
46
+ mobile: function (phoneNumber) {
47
+ //! fix: Channeling all Vodacom numbers to Tigo. Request from Mr. Tesha to solve some specific problem
48
+ if (phoneNumber.networkOperator.id === NetworkOperator.VODACOM) {
49
+ return `TZ-${NetworkOperator.TIGO.toString().toUpperCase()}-B2C`;
50
+ }
51
+ return `TZ-${phoneNumber.networkOperator.id.toString().toUpperCase()}-B2C`;
52
+ },
53
+ };
@@ -1,6 +1,7 @@
1
1
  import { Amount } from "@temboplus/frontend-core";
2
- import { PayoutApprovalStatus, PayoutAuthorizer, PayoutDTO, PayoutStatus } from "../features/payout/payout.dtos";
3
- import { ContactInfo } from "./contact-info.model";
2
+ import type { PayoutApprover, PayoutData } from "../index.js";
3
+ import { type ContactInfo } from "../../contact/index.js";
4
+ import { type PAYOUT_APPROVAL_STATUS, PAYOUT_STATUS } from "../status.js";
4
5
  /**
5
6
  * Payout class that wraps the Zod schema and provides additional functionality
6
7
  */
@@ -28,7 +29,7 @@ export declare class Payout {
28
29
  /** Description of the payout purpose */
29
30
  get description(): string;
30
31
  /** Optional additional notes about the payout */
31
- get notes(): string | undefined | null;
32
+ get notes(): string | undefined;
32
33
  /**
33
34
  * Current status of the payout
34
35
  * Derived from both approval status and transaction status:
@@ -41,21 +42,21 @@ export declare class Payout {
41
42
  * @returns {PAYOUT_STATUS} Current status of the payout
42
43
  * @see {@link PAYOUT_STATUS} for all possible status values
43
44
  */
44
- get status(): PayoutStatus;
45
+ get status(): PAYOUT_STATUS;
45
46
  /** Status message providing details about current state */
46
47
  get statusMessage(): string;
47
48
  /** Optional reference ID from payment partner */
48
- get partnerReference(): string | undefined | null;
49
+ get partnerReference(): string | undefined;
49
50
  /** Timestamp when payout was created */
50
51
  get createdAt(): Date;
51
52
  /** Timestamp when payout was last updated */
52
53
  get updatedAt(): Date;
53
54
  /** Current approval status of the payout */
54
- get approvalStatus(): PayoutApprovalStatus | undefined | null;
55
+ get approvalStatus(): PAYOUT_APPROVAL_STATUS;
55
56
  /** Information about who created the payout */
56
- get createdBy(): PayoutAuthorizer | undefined | null;
57
+ get createdBy(): PayoutApprover | undefined;
57
58
  /** Information about who last actioned the payout */
58
- get actionedBy(): PayoutAuthorizer | undefined | null;
59
+ get actionedBy(): PayoutApprover | undefined;
59
60
  /**
60
61
  * Constructs contact information based on payout channel
61
62
  *
@@ -68,7 +69,7 @@ export declare class Payout {
68
69
  * For bank payouts, expects msisdn in format "SWIFTCODE:ACCOUNTNUMBER"
69
70
  *
70
71
  * @example
71
- * ``
72
+ * ```ts
72
73
  * // Mobile payout
73
74
  * payout.contactInfo // Returns MobileContactInfo with phone details
74
75
  *
@@ -81,17 +82,17 @@ export declare class Payout {
81
82
  * Creates a Payout instance from raw data
82
83
  * @throws {ZodError} if validation fails
83
84
  */
84
- static create(data: PayoutDTO): Payout;
85
+ static create(data: PayoutData): Payout;
85
86
  /**
86
87
  * Creates multiple Payout instances from an array of raw data
87
88
  * @throws {ZodError} if validation fails for any item
88
89
  */
89
- static createMany(dataArray: PayoutDTO[]): Payout[];
90
+ static createMany(dataArray: PayoutData[]): Payout[];
90
91
  /**
91
92
  * Creates a Payout instance from raw data without throwing
92
93
  * @returns {Payout | null} Payout instance or null if validation fails
93
94
  */
94
- static createSafe(data: PayoutDTO): Payout | null;
95
+ static createSafe(data: PayoutData): Payout | null;
95
96
  /**
96
97
  * Checks if an unknown value contains valid data to construct a Payout instance.
97
98
  * This is useful when validating raw data structures before instantiation.
@@ -150,5 +151,6 @@ export declare class Payout {
150
151
  /**
151
152
  * Converts Payout instance to a plain object
152
153
  */
153
- toJSON(): PayoutDTO;
154
+ toJSON(): PayoutData;
154
155
  }
156
+ //# sourceMappingURL=payout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payout.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/payout/derivatives/payout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,sBAAsB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1E;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAElC;;OAEG;IACH,OAAO;IAKP,uCAAuC;IACvC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,qDAAqD;IACrD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,kCAAkC;IAClC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,2CAA2C;IAC3C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,+CAA+C;IAC/C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,wCAAwC;IACxC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,iDAAiD;IACjD,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED;;;;;;;;;;;OAWG;IACH,IAAI,MAAM,IAAI,aAAa,CAe1B;IAED,2DAA2D;IAC3D,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,iDAAiD;IACjD,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,wCAAwC;IACxC,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,6CAA6C;IAC7C,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,4CAA4C;IAC5C,IAAI,cAAc,IAAI,sBAAsB,CAE3C;IAED,+CAA+C;IAC/C,IAAI,SAAS,IAAI,cAAc,GAAG,SAAS,CAE1C;IAED,qDAAqD;IACrD,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAE3C;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CA8BzC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAIvC;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;IAIpD;;;OAGG;WACW,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAQzD;;;;;;;;;;;;;;;;;;;;;OAqBG;WACW,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM;IAUvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM;IAO7C;;OAEG;IACI,MAAM,IAAI,UAAU;CAG5B"}
@@ -0,0 +1,261 @@
1
+ import { Amount, Bank, TZPhoneNumber } from "@temboplus/frontend-core";
2
+ import { PayoutSchemas } from "../schemas.js";
3
+ import { BankContactInfo, MobileContactInfo, } from "../../contact/index.js";
4
+ import { PAYOUT_STATUS } from "../status.js";
5
+ import { createPayoutChannelCode } from "../channel.js";
6
+ /**
7
+ * Payout class that wraps the Zod schema and provides additional functionality
8
+ */
9
+ export class Payout {
10
+ /**
11
+ * Private constructor - use static methods to create instances
12
+ */
13
+ constructor(data) {
14
+ Object.defineProperty(this, "data", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: void 0
19
+ });
20
+ this.data = PayoutSchemas.payoutData.parse(data);
21
+ }
22
+ // Getters for all properties
23
+ /** Unique identifier for the payout */
24
+ get id() {
25
+ return this.data.id;
26
+ }
27
+ /** Profile identifier associated with this payout */
28
+ get profileId() {
29
+ return this.data.profileId;
30
+ }
31
+ /** Name of the payee/recipient */
32
+ get payeeName() {
33
+ return this.data.payeeName;
34
+ }
35
+ /** Payment channel used for this payout */
36
+ get channel() {
37
+ return this.data.channel;
38
+ }
39
+ /** Mobile number or bank account identifier */
40
+ get msisdn() {
41
+ return this.data.msisdn;
42
+ }
43
+ /**
44
+ * Amount to be paid out
45
+ * @returns {Amount} Amount object representing the payout value
46
+ */
47
+ get amount() {
48
+ return Amount.from(this.data.amount);
49
+ }
50
+ /** Description of the payout purpose */
51
+ get description() {
52
+ return this.data.description;
53
+ }
54
+ /** Optional additional notes about the payout */
55
+ get notes() {
56
+ return this.data.notes;
57
+ }
58
+ /**
59
+ * Current status of the payout
60
+ * Derived from both approval status and transaction status:
61
+ * - Returns REJECTED if approval status is "Rejected"
62
+ * - Returns FAILED if approved but transaction failed
63
+ * - Returns PAID if approved and transaction succeeded
64
+ * - Returns PENDING if awaiting approval
65
+ * - Falls back to transaction status in other cases
66
+ *
67
+ * @returns {PAYOUT_STATUS} Current status of the payout
68
+ * @see {@link PAYOUT_STATUS} for all possible status values
69
+ */
70
+ get status() {
71
+ if (this.data.approvalStatus === "Rejected") {
72
+ return PAYOUT_STATUS.REJECTED;
73
+ }
74
+ if (this.data.approvalStatus === "Approved") {
75
+ if (this.data.status === "FAILED") {
76
+ return PAYOUT_STATUS.FAILED;
77
+ }
78
+ return PAYOUT_STATUS.PAID;
79
+ }
80
+ if (this.data.approvalStatus === "Pending") {
81
+ return PAYOUT_STATUS.PENDING;
82
+ }
83
+ return this.data.status;
84
+ }
85
+ /** Status message providing details about current state */
86
+ get statusMessage() {
87
+ return this.data.statusMessage;
88
+ }
89
+ /** Optional reference ID from payment partner */
90
+ get partnerReference() {
91
+ return this.data.partnerReference;
92
+ }
93
+ /** Timestamp when payout was created */
94
+ get createdAt() {
95
+ return this.data.createdAt;
96
+ }
97
+ /** Timestamp when payout was last updated */
98
+ get updatedAt() {
99
+ return this.data.updatedAt;
100
+ }
101
+ /** Current approval status of the payout */
102
+ get approvalStatus() {
103
+ return this.data.approvalStatus;
104
+ }
105
+ /** Information about who created the payout */
106
+ get createdBy() {
107
+ return this.data.createdBy;
108
+ }
109
+ /** Information about who last actioned the payout */
110
+ get actionedBy() {
111
+ return this.data.actionedBy;
112
+ }
113
+ /**
114
+ * Constructs contact information based on payout channel
115
+ *
116
+ * @returns {ContactInfo | undefined} Contact information object:
117
+ * - MobileContactInfo for mobile money payouts
118
+ * - BankContactInfo for bank transfers
119
+ * - undefined if contact info cannot be constructed
120
+ *
121
+ * @remarks
122
+ * For bank payouts, expects msisdn in format "SWIFTCODE:ACCOUNTNUMBER"
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * // Mobile payout
127
+ * payout.contactInfo // Returns MobileContactInfo with phone details
128
+ *
129
+ * // Bank payout
130
+ * payout.contactInfo // Returns BankContactInfo with bank and account details
131
+ * ```
132
+ */
133
+ get contactInfo() {
134
+ let contactInfo;
135
+ // extracting mobile contact information
136
+ const phone = TZPhoneNumber.from(this.data.msisdn);
137
+ if (phone) {
138
+ contactInfo = new MobileContactInfo(this.data.payeeName, phone);
139
+ }
140
+ // extracting bank contact information
141
+ const isBankPayout = this.data.channel === createPayoutChannelCode.bank() ||
142
+ this.data.channel === createPayoutChannelCode.verto();
143
+ if (isBankPayout) {
144
+ // getting bank information from payout msisdn
145
+ const text = this.data.msisdn.trim().split(":");
146
+ try {
147
+ const swiftcode = text[0];
148
+ const accNo = text[1];
149
+ const bank = Bank.fromSWIFTCode(swiftcode);
150
+ if (bank) {
151
+ contactInfo = new BankContactInfo(this.data.payeeName, bank, accNo);
152
+ }
153
+ }
154
+ catch (_) {
155
+ //
156
+ }
157
+ }
158
+ return contactInfo;
159
+ }
160
+ /**
161
+ * Creates a Payout instance from raw data
162
+ * @throws {ZodError} if validation fails
163
+ */
164
+ static create(data) {
165
+ return new Payout(data);
166
+ }
167
+ /**
168
+ * Creates multiple Payout instances from an array of raw data
169
+ * @throws {ZodError} if validation fails for any item
170
+ */
171
+ static createMany(dataArray) {
172
+ return dataArray.map((data) => new Payout(data));
173
+ }
174
+ /**
175
+ * Creates a Payout instance from raw data without throwing
176
+ * @returns {Payout | null} Payout instance or null if validation fails
177
+ */
178
+ static createSafe(data) {
179
+ try {
180
+ return new Payout(data);
181
+ }
182
+ catch {
183
+ return null;
184
+ }
185
+ }
186
+ /**
187
+ * Checks if an unknown value contains valid data to construct a Payout instance.
188
+ * This is useful when validating raw data structures before instantiation.
189
+ *
190
+ * @param {unknown} obj - The value containing potential payout data
191
+ * @returns {obj is Payout} Type predicate indicating if a Payout can be constructed
192
+ *
193
+ * @example
194
+ * ```typescript
195
+ * const rawData = await fetchPayoutData();
196
+ * if (Payout.canConstruct(rawData)) {
197
+ * const payout = Payout.create(rawData);
198
+ * // TypeScript knows payout is valid here
199
+ * console.log(payout.amount.toString());
200
+ * }
201
+ * ```
202
+ *
203
+ * @throws {never} This method never throws errors
204
+ *
205
+ * @remarks
206
+ * This method performs strict validation against the {@link PayoutData} schema
207
+ */
208
+ static canConstruct(obj) {
209
+ if (!obj || typeof obj !== "object")
210
+ return false;
211
+ const result = PayoutSchemas.payoutData.safeParse(obj);
212
+ if (!result.success)
213
+ return false;
214
+ const payout = Payout.createSafe(result.data);
215
+ return payout !== null;
216
+ }
217
+ /**
218
+ * Validates if an unknown value is a Payout instance.
219
+ * This is a runtime type guard that ensures proper object structure and data validity.
220
+ *
221
+ * @param {unknown} obj - The value to validate
222
+ * @returns {obj is Payout} Type predicate indicating if the value is a valid Payout
223
+ *
224
+ * @example
225
+ * ```typescript
226
+ * const maybePayout = getPayoutFromCache();
227
+ * if (Payout.is(maybePayout)) {
228
+ * // TypeScript knows maybePayout is a Payout here
229
+ * console.log(maybePayout.status);
230
+ * }
231
+ * ```
232
+ *
233
+ * @throws {never} This method never throws errors
234
+ *
235
+ * @remarks
236
+ * This method performs a complete structural validation:
237
+ * 1. Checks if the value is an object
238
+ * 2. Verifies presence of internal data property
239
+ * 3. Validates the data against PayoutData schema
240
+ * 4. Ensures the object is a proper Payout instance
241
+ *
242
+ * Use this method when:
243
+ * - Validating cached Payout instances
244
+ * - Checking serialized Payout objects
245
+ * - Verifying API responses
246
+ * - Type narrowing in conditional blocks
247
+ */
248
+ static is(obj) {
249
+ if (!obj || typeof obj !== "object")
250
+ return false;
251
+ if (!("data" in obj))
252
+ return false;
253
+ return Payout.canConstruct(obj.data);
254
+ }
255
+ /**
256
+ * Converts Payout instance to a plain object
257
+ */
258
+ toJSON() {
259
+ return { ...this.data };
260
+ }
261
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payout.test.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/payout/derivatives/payout.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * from "./status.js";
2
+ export * from "./schemas.js";
3
+ export * from "./channel.js";
4
+ export * from "./api.js";
5
+ export * from "./derivatives/payout.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./status.js";
2
+ export * from "./schemas.js";
3
+ export * from "./channel.js";
4
+ export * from "./api.js";
5
+ export * from "./derivatives/payout.js";
@@ -0,0 +1,156 @@
1
+ import { z } from "zod";
2
+ import { PAYOUT_APPROVAL_STATUS, PAYOUT_STATUS } from "./status.js";
3
+ /**
4
+ * Type definition for identifier schema
5
+ * Used for tracking who created or actioned a payout
6
+ * Contains a name and unique identity string
7
+ */
8
+ type IdentifierType = z.ZodObject<{
9
+ name: z.ZodString;
10
+ identity: z.ZodString;
11
+ }>;
12
+ /**
13
+ * Type definition for payout status enum
14
+ * Represents all possible states of a payout:
15
+ *
16
+ * @see {@link PAYOUT_STATUS} for the enum definition in "@models/payout/status.ts"
17
+ */
18
+ type PayoutStatusType = z.ZodEnum<[
19
+ typeof PAYOUT_STATUS.CREATED,
20
+ typeof PAYOUT_STATUS.PAID,
21
+ typeof PAYOUT_STATUS.FAILED,
22
+ typeof PAYOUT_STATUS.REJECTED,
23
+ typeof PAYOUT_STATUS.PENDING,
24
+ typeof PAYOUT_STATUS.QUEUED,
25
+ typeof PAYOUT_STATUS.REVERSED
26
+ ]>;
27
+ /**
28
+ * Type definition for payout approval status enum
29
+ * Represents the approval state of a payout:
30
+ *
31
+ * @see {@link PAYOUT_APPROVAL_STATUS} for the enum definition in "@models/payout/status.ts"
32
+ */
33
+ type ApprovalPayoutStatusType = z.ZodEnum<[
34
+ typeof PAYOUT_APPROVAL_STATUS.APPROVED,
35
+ typeof PAYOUT_APPROVAL_STATUS.PENDING,
36
+ typeof PAYOUT_APPROVAL_STATUS.REJECTED
37
+ ]>;
38
+ /**
39
+ * Type definition for payout input schema
40
+ * Extends the base payout type with payee information required for creating new payouts
41
+ *
42
+ * @extends {BasePayoutType}
43
+ * @property {z.ZodString} payeeName - Name of the payment recipient
44
+ */
45
+ type PayoutInputType = z.ZodObject<{
46
+ channel: z.ZodString;
47
+ msisdn: z.ZodString;
48
+ amount: z.ZodNumber;
49
+ description: z.ZodString;
50
+ notes: Optional<z.ZodString>;
51
+ payeeName: z.ZodString;
52
+ }>;
53
+ /**
54
+ * Type definition for complete payout schema
55
+ * Extends the base payout type with additional fields for tracking
56
+ * the full lifecycle of a payout transaction
57
+ *
58
+ * @extends {BasePayoutType}
59
+ * @property {z.ZodString} id - Unique identifier for the payout
60
+ * @property {z.ZodString} profileId - ID of the profile initiating the payout
61
+ * @property {z.ZodString} payeeName - Name of the payment recipient
62
+ * @property {PayoutStatusType} status - Current status of the payout
63
+ * @property {z.ZodString} statusMessage - Detailed message about the current status
64
+ * @property {z.ZodString} partnerReference - Optional reference from payment partner
65
+ * @property {z.ZodDate} createdAt - Timestamp of payout creation
66
+ * @property {z.ZodDate} updatedAt - Timestamp of last payout update
67
+ * @property {ApprovalPayoutStatusType} approvalStatus - Current approval state
68
+ * @property {IdentifierType} createdBy - User who created the payout
69
+ * @property {IdentifierType} actionedBy - User who last actioned the payout
70
+ */
71
+ type PayoutType = z.ZodObject<{
72
+ channel: z.ZodString;
73
+ msisdn: z.ZodString;
74
+ amount: z.ZodNumber;
75
+ description: z.ZodString;
76
+ notes: Optional<z.ZodString>;
77
+ id: z.ZodString;
78
+ profileId: z.ZodString;
79
+ payeeName: z.ZodString;
80
+ status: PayoutStatusType;
81
+ statusMessage: z.ZodString;
82
+ partnerReference: Optional<z.ZodString>;
83
+ createdAt: z.ZodDate;
84
+ updatedAt: z.ZodDate;
85
+ approvalStatus: ApprovalPayoutStatusType;
86
+ createdBy: Optional<IdentifierType>;
87
+ actionedBy: Optional<IdentifierType>;
88
+ }>;
89
+ /**
90
+ * Type representing a Zod schema that transforms nullable values to undefined
91
+ * @template T - The original Zod schema type
92
+ * @property {z.ZodNullable<T>} - The nullable version of the input schema
93
+ * @property {T["_output"] | undefined} - The output type, allowing the original type or undefined
94
+ * @property {T["_input"] | null} - The input type, allowing the original type or null
95
+ */
96
+ type MakeOptionalResult<T extends z.ZodType> = z.ZodEffects<z.ZodNullable<T>, T["_output"] | undefined, T["_input"] | null>;
97
+ /**
98
+ * Type representing a fully optional field that transforms nulls to undefined
99
+ * @template T - The original Zod schema type
100
+ * Combines MakeOptionalResult with ZodOptional to allow both:
101
+ * 1. The field to be optional (can be omitted from object)
102
+ * 2. When present, the value can be null (transformed to undefined) or the original type
103
+ */
104
+ type Optional<T extends z.ZodType> = z.ZodOptional<MakeOptionalResult<T>>;
105
+ /**
106
+ * Schema for identifying users in the payout process
107
+ * Used to track who created or actioned a payout
108
+ */
109
+ declare const identifierSchema: IdentifierType;
110
+ /**
111
+ * Type definition inferred from identifierSchema
112
+ * Represents the structure of a user who actions the payout
113
+ */
114
+ type PayoutApprover = z.infer<typeof identifierSchema>;
115
+ /**
116
+ * Type definition inferred from payoutInputSchema
117
+ * Represents the structure of data required to create a new payout
118
+ */
119
+ type PayoutInput = z.infer<typeof payoutInputSchema>;
120
+ /**
121
+ * Schema for creating a new payout
122
+ * Extends base payout schema with payee information
123
+ */
124
+ declare const payoutInputSchema: PayoutInputType;
125
+ /**
126
+ * Type definition inferred from payoutSchema
127
+ * Represents the complete payout record structure
128
+ */
129
+ type PayoutData = z.infer<typeof payoutSchema>;
130
+ /**
131
+ * Schema for complete payout record
132
+ * Extends base payout schema with additional fields for:
133
+ * - Identification (id, profileId)
134
+ * - Status tracking
135
+ * - Timestamps
136
+ * - Approval information
137
+ * - User tracking (created by, actioned by)
138
+ */
139
+ declare const payoutSchema: PayoutType;
140
+ /**
141
+ * Export object containing all payout-related schemas
142
+ * Used for validation and type checking throughout the application
143
+ */
144
+ export declare const PayoutSchemas: {
145
+ readonly payoutData: PayoutType;
146
+ readonly payoutInput: PayoutInputType;
147
+ readonly payoutTransactionStatus: PayoutStatusType;
148
+ readonly payoutApprovalStatus: ApprovalPayoutStatusType;
149
+ readonly payoutApprover: IdentifierType;
150
+ };
151
+ /**
152
+ * Export types for use in other parts of the application
153
+ * These types can be used for type checking and documentation
154
+ */
155
+ export type { PayoutApprover, PayoutData, PayoutInput };
156
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/schemas.ts"],"names":[],"mappings":"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"}