@temboplus/afloat 0.1.81 → 0.2.0-beta.2

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 (413) hide show
  1. package/README.md +246 -42
  2. package/dist/index.cjs.js +2 -0
  3. package/dist/index.cjs.js.map +1 -0
  4. package/dist/index.d.ts +10 -0
  5. package/dist/index.esm.js +2 -0
  6. package/dist/index.esm.js.map +1 -0
  7. package/dist/lib/api/base-repository.d.ts +177 -0
  8. package/dist/lib/api/index.d.ts +1 -0
  9. package/{esm/src/errors/api_error.d.ts → dist/lib/error/error.api.d.ts} +0 -1
  10. package/{script/npm/src/src/errors/permission_error.d.ts → dist/lib/error/error.permission.d.ts} +1 -2
  11. package/dist/lib/error/error.utils.d.ts +22 -0
  12. package/dist/lib/error/index.d.ts +3 -0
  13. package/dist/lib/query/index.d.ts +4 -0
  14. package/dist/lib/query/pagination/pagination.d.ts +73 -0
  15. package/dist/lib/query/pagination/pagination.schemas.d.ts +83 -0
  16. package/dist/lib/query/query.builder.d.ts +75 -0
  17. package/dist/lib/query/query.types.d.ts +36 -0
  18. package/{esm/src/features/auth/contract.d.ts → dist/modules/auth/auth.contract.d.ts} +16 -19
  19. package/dist/modules/auth/auth.repository.d.ts +83 -0
  20. package/dist/modules/auth/company-membership.model.d.ts +171 -0
  21. package/dist/modules/auth/index.d.ts +3 -0
  22. package/dist/modules/auth/user.model.d.ts +363 -0
  23. package/dist/modules/beneficiary/beneficiary-info.model.d.ts +178 -0
  24. package/dist/modules/beneficiary/beneficiary-input-handler.d.ts +16 -0
  25. package/dist/modules/beneficiary/beneficiary.api-contract.d.ts +203 -0
  26. package/dist/modules/beneficiary/beneficiary.dtos.d.ts +84 -0
  27. package/dist/modules/beneficiary/beneficiary.model.d.ts +441 -0
  28. package/dist/modules/beneficiary/beneficiary.repository.d.ts +116 -0
  29. package/dist/modules/beneficiary/index.d.ts +6 -0
  30. package/dist/modules/login/index.d.ts +4 -0
  31. package/dist/modules/login/login.api-contract.d.ts +51 -0
  32. package/dist/modules/login/login.dtos.d.ts +85 -0
  33. package/dist/modules/login/login.model.d.ts +168 -0
  34. package/dist/modules/login/login.repository.d.ts +58 -0
  35. package/{esm/src/models/permission.d.ts → dist/modules/login/permission.type.d.ts} +9 -10
  36. package/dist/modules/payout/index.d.ts +5 -0
  37. package/dist/modules/payout/payout-channel-handler.d.ts +82 -0
  38. package/{esm/src/features/payout/contract.d.ts → dist/modules/payout/payout.api-contract.d.ts} +350 -207
  39. package/dist/modules/payout/payout.dtos.d.ts +607 -0
  40. package/dist/modules/payout/payout.model.d.ts +383 -0
  41. package/dist/modules/payout/payout.query.d.ts +134 -0
  42. package/dist/modules/payout/payout.repository.d.ts +204 -0
  43. package/dist/modules/profile/index.d.ts +3 -0
  44. package/{script/npm/src/src/features/auth/profile/contract.d.ts → dist/modules/profile/profile.api-contract.d.ts} +8 -6
  45. package/dist/modules/profile/profile.dtos.d.ts +80 -0
  46. package/{script/npm/src/src/models/user/profile.d.ts → dist/modules/profile/profile.model.d.ts} +81 -52
  47. package/dist/modules/profile/profile.repository.d.ts +56 -0
  48. package/dist/modules/team-member/index.d.ts +4 -0
  49. package/dist/modules/team-member/role.model.d.ts +61 -0
  50. package/{esm/src/features/admin/contract.d.ts → dist/modules/team-member/team-member.contract.d.ts} +229 -154
  51. package/dist/modules/team-member/team-member.dtos.d.ts +261 -0
  52. package/dist/modules/team-member/team-member.model.d.ts +237 -0
  53. package/dist/modules/team-member/team-member.repository.d.ts +179 -0
  54. package/dist/modules/wallet/index.d.ts +6 -0
  55. package/dist/modules/wallet/narration.model.d.ts +225 -0
  56. package/dist/modules/wallet/statement-entry.model.d.ts +299 -0
  57. package/{script/npm/src/src/features/wallet/contract.d.ts → dist/modules/wallet/wallet.contract.d.ts} +17 -15
  58. package/dist/modules/wallet/wallet.dtos.d.ts +204 -0
  59. package/{esm/src/models/wallet/wallet.d.ts → dist/modules/wallet/wallet.model.d.ts} +34 -40
  60. package/dist/modules/wallet/wallet.query.d.ts +95 -0
  61. package/dist/modules/wallet/wallet.repository.d.ts +205 -0
  62. package/dist/modules/wallet/wallet.utils.d.ts +17 -0
  63. package/package.json +49 -23
  64. package/LICENSE +0 -7
  65. package/esm/mod.d.ts +0 -8
  66. package/esm/mod.d.ts.map +0 -1
  67. package/esm/mod.js +0 -7
  68. package/esm/package.json +0 -3
  69. package/esm/src/errors/api_error.d.ts.map +0 -1
  70. package/esm/src/errors/api_error.js +0 -90
  71. package/esm/src/errors/index.d.ts +0 -3
  72. package/esm/src/errors/index.d.ts.map +0 -1
  73. package/esm/src/errors/index.js +0 -2
  74. package/esm/src/errors/permission_error.d.ts +0 -48
  75. package/esm/src/errors/permission_error.d.ts.map +0 -1
  76. package/esm/src/errors/permission_error.js +0 -70
  77. package/esm/src/features/admin/contract.d.ts.map +0 -1
  78. package/esm/src/features/admin/contract.js +0 -210
  79. package/esm/src/features/admin/index.d.ts +0 -4
  80. package/esm/src/features/admin/index.d.ts.map +0 -1
  81. package/esm/src/features/admin/index.js +0 -3
  82. package/esm/src/features/admin/repository.d.ts +0 -114
  83. package/esm/src/features/admin/repository.d.ts.map +0 -1
  84. package/esm/src/features/admin/repository.js +0 -248
  85. package/esm/src/features/admin/schemas.d.ts +0 -146
  86. package/esm/src/features/admin/schemas.d.ts.map +0 -1
  87. package/esm/src/features/admin/schemas.js +0 -206
  88. package/esm/src/features/auth/access/contract.d.ts +0 -14
  89. package/esm/src/features/auth/access/contract.d.ts.map +0 -1
  90. package/esm/src/features/auth/access/contract.js +0 -14
  91. package/esm/src/features/auth/access/repository.d.ts +0 -11
  92. package/esm/src/features/auth/access/repository.d.ts.map +0 -1
  93. package/esm/src/features/auth/access/repository.js +0 -25
  94. package/esm/src/features/auth/contract.d.ts.map +0 -1
  95. package/esm/src/features/auth/contract.js +0 -43
  96. package/esm/src/features/auth/identity/contract.d.ts +0 -23
  97. package/esm/src/features/auth/identity/contract.d.ts.map +0 -1
  98. package/esm/src/features/auth/identity/contract.js +0 -17
  99. package/esm/src/features/auth/identity/repository.d.ts +0 -22
  100. package/esm/src/features/auth/identity/repository.d.ts.map +0 -1
  101. package/esm/src/features/auth/identity/repository.js +0 -30
  102. package/esm/src/features/auth/index.d.ts +0 -6
  103. package/esm/src/features/auth/index.d.ts.map +0 -1
  104. package/esm/src/features/auth/index.js +0 -5
  105. package/esm/src/features/auth/manager.d.ts +0 -105
  106. package/esm/src/features/auth/manager.d.ts.map +0 -1
  107. package/esm/src/features/auth/manager.js +0 -181
  108. package/esm/src/features/auth/profile/contract.d.ts +0 -37
  109. package/esm/src/features/auth/profile/contract.d.ts.map +0 -1
  110. package/esm/src/features/auth/profile/contract.js +0 -14
  111. package/esm/src/features/auth/profile/repository.d.ts +0 -11
  112. package/esm/src/features/auth/profile/repository.d.ts.map +0 -1
  113. package/esm/src/features/auth/profile/repository.js +0 -25
  114. package/esm/src/features/auth/repository.d.ts +0 -30
  115. package/esm/src/features/auth/repository.d.ts.map +0 -1
  116. package/esm/src/features/auth/repository.js +0 -69
  117. package/esm/src/features/auth/storage/client_store.d.ts +0 -30
  118. package/esm/src/features/auth/storage/client_store.d.ts.map +0 -1
  119. package/esm/src/features/auth/storage/client_store.js +0 -46
  120. package/esm/src/features/auth/storage/client_token_handler.d.ts +0 -32
  121. package/esm/src/features/auth/storage/client_token_handler.d.ts.map +0 -1
  122. package/esm/src/features/auth/storage/client_token_handler.js +0 -36
  123. package/esm/src/features/auth/storage/server_store.d.ts +0 -24
  124. package/esm/src/features/auth/storage/server_store.d.ts.map +0 -1
  125. package/esm/src/features/auth/storage/server_store.js +0 -34
  126. package/esm/src/features/auth/storage/server_token_handler.d.ts +0 -36
  127. package/esm/src/features/auth/storage/server_token_handler.d.ts.map +0 -1
  128. package/esm/src/features/auth/storage/server_token_handler.js +0 -115
  129. package/esm/src/features/auth/storage/types.d.ts +0 -42
  130. package/esm/src/features/auth/storage/types.d.ts.map +0 -1
  131. package/esm/src/features/auth/storage/types.js +0 -1
  132. package/esm/src/features/contact/contract.d.ts +0 -170
  133. package/esm/src/features/contact/contract.d.ts.map +0 -1
  134. package/esm/src/features/contact/contract.js +0 -49
  135. package/esm/src/features/contact/index.d.ts +0 -2
  136. package/esm/src/features/contact/index.d.ts.map +0 -1
  137. package/esm/src/features/contact/index.js +0 -1
  138. package/esm/src/features/contact/repository.d.ts +0 -58
  139. package/esm/src/features/contact/repository.d.ts.map +0 -1
  140. package/esm/src/features/contact/repository.js +0 -108
  141. package/esm/src/features/payout/contract.d.ts.map +0 -1
  142. package/esm/src/features/payout/contract.js +0 -75
  143. package/esm/src/features/payout/index.d.ts +0 -2
  144. package/esm/src/features/payout/index.d.ts.map +0 -1
  145. package/esm/src/features/payout/index.js +0 -1
  146. package/esm/src/features/payout/repository.d.ts +0 -67
  147. package/esm/src/features/payout/repository.d.ts.map +0 -1
  148. package/esm/src/features/payout/repository.js +0 -179
  149. package/esm/src/features/wallet/contract.d.ts +0 -137
  150. package/esm/src/features/wallet/contract.d.ts.map +0 -1
  151. package/esm/src/features/wallet/contract.js +0 -38
  152. package/esm/src/features/wallet/index.d.ts +0 -2
  153. package/esm/src/features/wallet/index.d.ts.map +0 -1
  154. package/esm/src/features/wallet/index.js +0 -1
  155. package/esm/src/features/wallet/repository.d.ts +0 -57
  156. package/esm/src/features/wallet/repository.d.ts.map +0 -1
  157. package/esm/src/features/wallet/repository.js +0 -93
  158. package/esm/src/models/contact/derivatives/contact.d.ts +0 -172
  159. package/esm/src/models/contact/derivatives/contact.d.ts.map +0 -1
  160. package/esm/src/models/contact/derivatives/contact.js +0 -266
  161. package/esm/src/models/contact/derivatives/contact_info.d.ts +0 -188
  162. package/esm/src/models/contact/derivatives/contact_info.d.ts.map +0 -1
  163. package/esm/src/models/contact/derivatives/contact_info.js +0 -255
  164. package/esm/src/models/contact/index.d.ts +0 -5
  165. package/esm/src/models/contact/index.d.ts.map +0 -1
  166. package/esm/src/models/contact/index.js +0 -4
  167. package/esm/src/models/contact/schemas.d.ts +0 -66
  168. package/esm/src/models/contact/schemas.d.ts.map +0 -1
  169. package/esm/src/models/contact/schemas.js +0 -64
  170. package/esm/src/models/contact/validation.d.ts +0 -37
  171. package/esm/src/models/contact/validation.d.ts.map +0 -1
  172. package/esm/src/models/contact/validation.js +0 -146
  173. package/esm/src/models/index.d.ts +0 -7
  174. package/esm/src/models/index.d.ts.map +0 -1
  175. package/esm/src/models/index.js +0 -6
  176. package/esm/src/models/payout/api.d.ts +0 -29
  177. package/esm/src/models/payout/api.d.ts.map +0 -1
  178. package/esm/src/models/payout/api.js +0 -1
  179. package/esm/src/models/payout/channel.d.ts +0 -58
  180. package/esm/src/models/payout/channel.d.ts.map +0 -1
  181. package/esm/src/models/payout/channel.js +0 -53
  182. package/esm/src/models/payout/derivatives/payout.d.ts +0 -158
  183. package/esm/src/models/payout/derivatives/payout.d.ts.map +0 -1
  184. package/esm/src/models/payout/derivatives/payout.js +0 -271
  185. package/esm/src/models/payout/index.d.ts +0 -7
  186. package/esm/src/models/payout/index.d.ts.map +0 -1
  187. package/esm/src/models/payout/index.js +0 -6
  188. package/esm/src/models/payout/narration.d.ts +0 -164
  189. package/esm/src/models/payout/narration.d.ts.map +0 -1
  190. package/esm/src/models/payout/narration.js +0 -308
  191. package/esm/src/models/payout/schemas.d.ts +0 -156
  192. package/esm/src/models/payout/schemas.d.ts.map +0 -1
  193. package/esm/src/models/payout/schemas.js +0 -105
  194. package/esm/src/models/payout/status.d.ts +0 -33
  195. package/esm/src/models/payout/status.d.ts.map +0 -1
  196. package/esm/src/models/payout/status.js +0 -34
  197. package/esm/src/models/permission.d.ts.map +0 -1
  198. package/esm/src/models/permission.js +0 -50
  199. package/esm/src/models/role.d.ts +0 -21
  200. package/esm/src/models/role.d.ts.map +0 -1
  201. package/esm/src/models/role.js +0 -73
  202. package/esm/src/models/user/authenticated-user.d.ts +0 -77
  203. package/esm/src/models/user/authenticated-user.d.ts.map +0 -1
  204. package/esm/src/models/user/authenticated-user.js +0 -226
  205. package/esm/src/models/user/index.d.ts +0 -4
  206. package/esm/src/models/user/index.d.ts.map +0 -1
  207. package/esm/src/models/user/index.js +0 -3
  208. package/esm/src/models/user/managed-user.d.ts +0 -108
  209. package/esm/src/models/user/managed-user.d.ts.map +0 -1
  210. package/esm/src/models/user/managed-user.js +0 -255
  211. package/esm/src/models/user/profile.d.ts +0 -161
  212. package/esm/src/models/user/profile.d.ts.map +0 -1
  213. package/esm/src/models/user/profile.js +0 -334
  214. package/esm/src/models/wallet/index.d.ts +0 -4
  215. package/esm/src/models/wallet/index.d.ts.map +0 -1
  216. package/esm/src/models/wallet/index.js +0 -3
  217. package/esm/src/models/wallet/schemas.d.ts +0 -95
  218. package/esm/src/models/wallet/schemas.d.ts.map +0 -1
  219. package/esm/src/models/wallet/schemas.js +0 -35
  220. package/esm/src/models/wallet/statement_entry.d.ts +0 -160
  221. package/esm/src/models/wallet/statement_entry.d.ts.map +0 -1
  222. package/esm/src/models/wallet/statement_entry.js +0 -255
  223. package/esm/src/models/wallet/wallet.d.ts.map +0 -1
  224. package/esm/src/models/wallet/wallet.js +0 -279
  225. package/esm/src/shared/base_repository.d.ts +0 -80
  226. package/esm/src/shared/base_repository.d.ts.map +0 -1
  227. package/esm/src/shared/base_repository.js +0 -153
  228. package/esm/src/shared/common_responses.d.ts +0 -13
  229. package/esm/src/shared/common_responses.d.ts.map +0 -1
  230. package/esm/src/shared/common_responses.js +0 -10
  231. package/esm/src/shared/index.d.ts +0 -3
  232. package/esm/src/shared/index.d.ts.map +0 -1
  233. package/esm/src/shared/index.js +0 -2
  234. package/esm/src/shared/token_required_repository.d.ts +0 -78
  235. package/esm/src/shared/token_required_repository.d.ts.map +0 -1
  236. package/esm/src/shared/token_required_repository.js +0 -128
  237. package/script/mod.d.ts +0 -8
  238. package/script/mod.d.ts.map +0 -1
  239. package/script/mod.js +0 -23
  240. package/script/npm/src/mod.d.ts +0 -8
  241. package/script/npm/src/mod.d.ts.map +0 -1
  242. package/script/npm/src/mod.js +0 -23
  243. package/script/npm/src/src/errors/api_error.d.ts +0 -63
  244. package/script/npm/src/src/errors/api_error.d.ts.map +0 -1
  245. package/script/npm/src/src/errors/api_error.js +0 -94
  246. package/script/npm/src/src/errors/index.d.ts +0 -3
  247. package/script/npm/src/src/errors/index.d.ts.map +0 -1
  248. package/script/npm/src/src/errors/index.js +0 -18
  249. package/script/npm/src/src/errors/permission_error.d.ts.map +0 -1
  250. package/script/npm/src/src/errors/permission_error.js +0 -74
  251. package/script/npm/src/src/features/admin/contract.d.ts +0 -842
  252. package/script/npm/src/src/features/admin/contract.d.ts.map +0 -1
  253. package/script/npm/src/src/features/admin/contract.js +0 -213
  254. package/script/npm/src/src/features/admin/index.d.ts +0 -4
  255. package/script/npm/src/src/features/admin/index.d.ts.map +0 -1
  256. package/script/npm/src/src/features/admin/index.js +0 -19
  257. package/script/npm/src/src/features/admin/repository.d.ts +0 -114
  258. package/script/npm/src/src/features/admin/repository.d.ts.map +0 -1
  259. package/script/npm/src/src/features/admin/repository.js +0 -252
  260. package/script/npm/src/src/features/admin/schemas.d.ts +0 -146
  261. package/script/npm/src/src/features/admin/schemas.d.ts.map +0 -1
  262. package/script/npm/src/src/features/admin/schemas.js +0 -209
  263. package/script/npm/src/src/features/auth/access/contract.d.ts +0 -14
  264. package/script/npm/src/src/features/auth/access/contract.d.ts.map +0 -1
  265. package/script/npm/src/src/features/auth/access/contract.js +0 -17
  266. package/script/npm/src/src/features/auth/access/repository.d.ts +0 -11
  267. package/script/npm/src/src/features/auth/access/repository.d.ts.map +0 -1
  268. package/script/npm/src/src/features/auth/access/repository.js +0 -29
  269. package/script/npm/src/src/features/auth/contract.d.ts +0 -112
  270. package/script/npm/src/src/features/auth/contract.d.ts.map +0 -1
  271. package/script/npm/src/src/features/auth/contract.js +0 -46
  272. package/script/npm/src/src/features/auth/identity/contract.d.ts +0 -23
  273. package/script/npm/src/src/features/auth/identity/contract.d.ts.map +0 -1
  274. package/script/npm/src/src/features/auth/identity/contract.js +0 -20
  275. package/script/npm/src/src/features/auth/identity/repository.d.ts +0 -22
  276. package/script/npm/src/src/features/auth/identity/repository.d.ts.map +0 -1
  277. package/script/npm/src/src/features/auth/identity/repository.js +0 -34
  278. package/script/npm/src/src/features/auth/index.d.ts +0 -6
  279. package/script/npm/src/src/features/auth/index.d.ts.map +0 -1
  280. package/script/npm/src/src/features/auth/index.js +0 -21
  281. package/script/npm/src/src/features/auth/manager.d.ts +0 -105
  282. package/script/npm/src/src/features/auth/manager.d.ts.map +0 -1
  283. package/script/npm/src/src/features/auth/manager.js +0 -185
  284. package/script/npm/src/src/features/auth/profile/contract.d.ts.map +0 -1
  285. package/script/npm/src/src/features/auth/profile/contract.js +0 -17
  286. package/script/npm/src/src/features/auth/profile/repository.d.ts +0 -11
  287. package/script/npm/src/src/features/auth/profile/repository.d.ts.map +0 -1
  288. package/script/npm/src/src/features/auth/profile/repository.js +0 -29
  289. package/script/npm/src/src/features/auth/repository.d.ts +0 -30
  290. package/script/npm/src/src/features/auth/repository.d.ts.map +0 -1
  291. package/script/npm/src/src/features/auth/repository.js +0 -73
  292. package/script/npm/src/src/features/auth/storage/client_store.d.ts +0 -30
  293. package/script/npm/src/src/features/auth/storage/client_store.d.ts.map +0 -1
  294. package/script/npm/src/src/features/auth/storage/client_store.js +0 -51
  295. package/script/npm/src/src/features/auth/storage/client_token_handler.d.ts +0 -32
  296. package/script/npm/src/src/features/auth/storage/client_token_handler.d.ts.map +0 -1
  297. package/script/npm/src/src/features/auth/storage/client_token_handler.js +0 -40
  298. package/script/npm/src/src/features/auth/storage/server_store.d.ts +0 -24
  299. package/script/npm/src/src/features/auth/storage/server_store.d.ts.map +0 -1
  300. package/script/npm/src/src/features/auth/storage/server_store.js +0 -38
  301. package/script/npm/src/src/features/auth/storage/server_token_handler.d.ts +0 -36
  302. package/script/npm/src/src/features/auth/storage/server_token_handler.d.ts.map +0 -1
  303. package/script/npm/src/src/features/auth/storage/server_token_handler.js +0 -119
  304. package/script/npm/src/src/features/auth/storage/types.d.ts +0 -42
  305. package/script/npm/src/src/features/auth/storage/types.d.ts.map +0 -1
  306. package/script/npm/src/src/features/auth/storage/types.js +0 -2
  307. package/script/npm/src/src/features/contact/contract.d.ts +0 -170
  308. package/script/npm/src/src/features/contact/contract.d.ts.map +0 -1
  309. package/script/npm/src/src/features/contact/contract.js +0 -52
  310. package/script/npm/src/src/features/contact/index.d.ts +0 -2
  311. package/script/npm/src/src/features/contact/index.d.ts.map +0 -1
  312. package/script/npm/src/src/features/contact/index.js +0 -17
  313. package/script/npm/src/src/features/contact/repository.d.ts +0 -58
  314. package/script/npm/src/src/features/contact/repository.d.ts.map +0 -1
  315. package/script/npm/src/src/features/contact/repository.js +0 -112
  316. package/script/npm/src/src/features/payout/contract.d.ts +0 -623
  317. package/script/npm/src/src/features/payout/contract.d.ts.map +0 -1
  318. package/script/npm/src/src/features/payout/contract.js +0 -78
  319. package/script/npm/src/src/features/payout/index.d.ts +0 -2
  320. package/script/npm/src/src/features/payout/index.d.ts.map +0 -1
  321. package/script/npm/src/src/features/payout/index.js +0 -17
  322. package/script/npm/src/src/features/payout/repository.d.ts +0 -67
  323. package/script/npm/src/src/features/payout/repository.d.ts.map +0 -1
  324. package/script/npm/src/src/features/payout/repository.js +0 -183
  325. package/script/npm/src/src/features/wallet/contract.d.ts.map +0 -1
  326. package/script/npm/src/src/features/wallet/contract.js +0 -41
  327. package/script/npm/src/src/features/wallet/index.d.ts +0 -2
  328. package/script/npm/src/src/features/wallet/index.d.ts.map +0 -1
  329. package/script/npm/src/src/features/wallet/index.js +0 -17
  330. package/script/npm/src/src/features/wallet/repository.d.ts +0 -57
  331. package/script/npm/src/src/features/wallet/repository.d.ts.map +0 -1
  332. package/script/npm/src/src/features/wallet/repository.js +0 -97
  333. package/script/npm/src/src/models/contact/derivatives/contact.d.ts +0 -172
  334. package/script/npm/src/src/models/contact/derivatives/contact.d.ts.map +0 -1
  335. package/script/npm/src/src/models/contact/derivatives/contact.js +0 -270
  336. package/script/npm/src/src/models/contact/derivatives/contact_info.d.ts +0 -188
  337. package/script/npm/src/src/models/contact/derivatives/contact_info.d.ts.map +0 -1
  338. package/script/npm/src/src/models/contact/derivatives/contact_info.js +0 -260
  339. package/script/npm/src/src/models/contact/index.d.ts +0 -5
  340. package/script/npm/src/src/models/contact/index.d.ts.map +0 -1
  341. package/script/npm/src/src/models/contact/index.js +0 -20
  342. package/script/npm/src/src/models/contact/schemas.d.ts +0 -66
  343. package/script/npm/src/src/models/contact/schemas.d.ts.map +0 -1
  344. package/script/npm/src/src/models/contact/schemas.js +0 -67
  345. package/script/npm/src/src/models/contact/validation.d.ts +0 -37
  346. package/script/npm/src/src/models/contact/validation.d.ts.map +0 -1
  347. package/script/npm/src/src/models/contact/validation.js +0 -153
  348. package/script/npm/src/src/models/index.d.ts +0 -7
  349. package/script/npm/src/src/models/index.d.ts.map +0 -1
  350. package/script/npm/src/src/models/index.js +0 -22
  351. package/script/npm/src/src/models/payout/api.d.ts +0 -29
  352. package/script/npm/src/src/models/payout/api.d.ts.map +0 -1
  353. package/script/npm/src/src/models/payout/api.js +0 -2
  354. package/script/npm/src/src/models/payout/channel.d.ts +0 -58
  355. package/script/npm/src/src/models/payout/channel.d.ts.map +0 -1
  356. package/script/npm/src/src/models/payout/channel.js +0 -56
  357. package/script/npm/src/src/models/payout/derivatives/payout.d.ts +0 -158
  358. package/script/npm/src/src/models/payout/derivatives/payout.d.ts.map +0 -1
  359. package/script/npm/src/src/models/payout/derivatives/payout.js +0 -275
  360. package/script/npm/src/src/models/payout/index.d.ts +0 -7
  361. package/script/npm/src/src/models/payout/index.d.ts.map +0 -1
  362. package/script/npm/src/src/models/payout/index.js +0 -22
  363. package/script/npm/src/src/models/payout/narration.d.ts +0 -164
  364. package/script/npm/src/src/models/payout/narration.d.ts.map +0 -1
  365. package/script/npm/src/src/models/payout/narration.js +0 -312
  366. package/script/npm/src/src/models/payout/schemas.d.ts +0 -156
  367. package/script/npm/src/src/models/payout/schemas.d.ts.map +0 -1
  368. package/script/npm/src/src/models/payout/schemas.js +0 -108
  369. package/script/npm/src/src/models/payout/status.d.ts +0 -33
  370. package/script/npm/src/src/models/payout/status.d.ts.map +0 -1
  371. package/script/npm/src/src/models/payout/status.js +0 -37
  372. package/script/npm/src/src/models/permission.d.ts +0 -55
  373. package/script/npm/src/src/models/permission.d.ts.map +0 -1
  374. package/script/npm/src/src/models/permission.js +0 -53
  375. package/script/npm/src/src/models/role.d.ts +0 -21
  376. package/script/npm/src/src/models/role.d.ts.map +0 -1
  377. package/script/npm/src/src/models/role.js +0 -77
  378. package/script/npm/src/src/models/user/authenticated-user.d.ts +0 -77
  379. package/script/npm/src/src/models/user/authenticated-user.d.ts.map +0 -1
  380. package/script/npm/src/src/models/user/authenticated-user.js +0 -230
  381. package/script/npm/src/src/models/user/index.d.ts +0 -4
  382. package/script/npm/src/src/models/user/index.d.ts.map +0 -1
  383. package/script/npm/src/src/models/user/index.js +0 -19
  384. package/script/npm/src/src/models/user/managed-user.d.ts +0 -108
  385. package/script/npm/src/src/models/user/managed-user.d.ts.map +0 -1
  386. package/script/npm/src/src/models/user/managed-user.js +0 -260
  387. package/script/npm/src/src/models/user/profile.d.ts.map +0 -1
  388. package/script/npm/src/src/models/user/profile.js +0 -338
  389. package/script/npm/src/src/models/wallet/index.d.ts +0 -4
  390. package/script/npm/src/src/models/wallet/index.d.ts.map +0 -1
  391. package/script/npm/src/src/models/wallet/index.js +0 -19
  392. package/script/npm/src/src/models/wallet/schemas.d.ts +0 -95
  393. package/script/npm/src/src/models/wallet/schemas.d.ts.map +0 -1
  394. package/script/npm/src/src/models/wallet/schemas.js +0 -38
  395. package/script/npm/src/src/models/wallet/statement_entry.d.ts +0 -160
  396. package/script/npm/src/src/models/wallet/statement_entry.d.ts.map +0 -1
  397. package/script/npm/src/src/models/wallet/statement_entry.js +0 -259
  398. package/script/npm/src/src/models/wallet/wallet.d.ts +0 -147
  399. package/script/npm/src/src/models/wallet/wallet.d.ts.map +0 -1
  400. package/script/npm/src/src/models/wallet/wallet.js +0 -283
  401. package/script/npm/src/src/shared/base_repository.d.ts +0 -80
  402. package/script/npm/src/src/shared/base_repository.d.ts.map +0 -1
  403. package/script/npm/src/src/shared/base_repository.js +0 -157
  404. package/script/npm/src/src/shared/common_responses.d.ts +0 -13
  405. package/script/npm/src/src/shared/common_responses.d.ts.map +0 -1
  406. package/script/npm/src/src/shared/common_responses.js +0 -13
  407. package/script/npm/src/src/shared/index.d.ts +0 -3
  408. package/script/npm/src/src/shared/index.d.ts.map +0 -1
  409. package/script/npm/src/src/shared/index.js +0 -18
  410. package/script/npm/src/src/shared/token_required_repository.d.ts +0 -78
  411. package/script/npm/src/src/shared/token_required_repository.d.ts.map +0 -1
  412. package/script/npm/src/src/shared/token_required_repository.js +0 -132
  413. package/script/package.json +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/lib/error/error.api.ts","../src/modules/login/permission.type.ts","../src/lib/error/error.permission.ts","../node_modules/@ts-rest/core/index.esm.mjs","../src/lib/api/base-repository.ts","../src/lib/query/query.types.ts","../src/lib/query/query.builder.ts","../src/lib/query/pagination/pagination.schemas.ts","../src/lib/query/pagination/pagination.ts","../src/modules/profile/profile.dtos.ts","../src/modules/profile/profile.model.ts","../src/modules/login/login.dtos.ts","../src/modules/login/login.model.ts","../src/modules/team-member/role.model.ts","../src/modules/auth/company-membership.model.ts","../src/modules/auth/user.model.ts","../src/modules/auth/auth.contract.ts","../src/modules/login/login.api-contract.ts","../src/modules/login/login.repository.ts","../src/modules/team-member/team-member.dtos.ts","../src/modules/team-member/team-member.contract.ts","../src/modules/team-member/team-member.model.ts","../src/modules/team-member/team-member.repository.ts","../src/modules/beneficiary/beneficiary.dtos.ts","../src/modules/beneficiary/beneficiary-info.model.ts","../src/modules/beneficiary/beneficiary.model.ts","../src/modules/beneficiary/beneficiary-input-handler.ts","../src/modules/beneficiary/beneficiary.api-contract.ts","../src/modules/payout/payout.dtos.ts","../src/modules/payout/payout.model.ts","../src/modules/wallet/narration.model.ts","../src/modules/payout/payout-channel-handler.ts","../src/modules/payout/payout.api-contract.ts","../src/modules/payout/payout.query.ts","../src/modules/wallet/wallet.dtos.ts","../src/modules/wallet/wallet.model.ts","../src/modules/wallet/statement-entry.model.ts","../src/modules/wallet/wallet.contract.ts","../src/modules/wallet/wallet.query.ts","../src/modules/wallet/wallet.utils.ts","../src/modules/profile/profile.api-contract.ts","../src/modules/auth/auth.repository.ts","../src/modules/beneficiary/beneficiary.repository.ts","../src/modules/payout/payout.repository.ts","../src/modules/profile/profile.repository.ts","../src/modules/wallet/wallet.repository.ts","../src/lib/error/error.utils.ts"],"sourcesContent":[null,null,null,"import { z } from 'zod';\n\nconst isZodType = (obj) => {\n return typeof (obj === null || obj === void 0 ? void 0 : obj.safeParse) === 'function';\n};\nconst isZodObject = (obj) => {\n if (typeof (obj === null || obj === void 0 ? void 0 : obj.passthrough) === 'function') {\n return true;\n }\n if (typeof (obj === null || obj === void 0 ? void 0 : obj.innerType) === 'function') {\n return isZodObject(obj === null || obj === void 0 ? void 0 : obj.innerType());\n }\n return false;\n};\nconst isZodObjectStrict = (obj) => {\n return typeof (obj === null || obj === void 0 ? void 0 : obj.passthrough) === 'function';\n};\nconst extractZodObjectShape = (obj) => {\n if (!isZodObject(obj)) {\n throw new Error('Unknown zod object type');\n }\n if ('innerType' in obj) {\n return extractZodObjectShape(obj.innerType());\n }\n return obj.shape;\n};\nconst zodMerge = (objectA, objectB) => {\n if (isZodObjectStrict(objectA)) {\n if (isZodObjectStrict(objectB)) {\n return objectA.merge(objectB);\n }\n return objectA;\n }\n if (isZodObjectStrict(objectB)) {\n return objectB;\n }\n return Object.assign({}, objectA, objectB);\n};\nconst checkZodSchema = (data, schema, { passThroughExtraKeys = false } = {}) => {\n if (isZodType(schema)) {\n const result = schema.safeParse(data);\n if (result.success) {\n return {\n success: true,\n data: passThroughExtraKeys && typeof data === 'object'\n ? { ...data, ...result.data }\n : result.data,\n };\n }\n return {\n success: false,\n error: result.error,\n };\n }\n return {\n success: true,\n data: data,\n };\n};\n// Convert a ZodError to a plain object because ZodError extends Error and causes problems with NestJS\nconst zodErrorResponse = (error) => {\n return {\n name: error.name,\n issues: error.issues,\n };\n};\nconst ZodErrorSchema = z.object({\n name: z.literal('ZodError'),\n issues: z.array(z\n .object({\n path: z.array(z.union([z.string(), z.number()])),\n message: z.string().optional(),\n code: z.nativeEnum(z.ZodIssueCode),\n })\n // ZodIssuse type are complex and potentially unstable. So we don’t deal with his specific fields other than the common.\n .catchall(z.any())),\n});\n\nconst ContractNoBody = Symbol('ContractNoBody');\n/**\n * Differentiate between a route and a router\n *\n * @param obj\n * @returns\n */\nconst isAppRoute = (obj) => {\n return 'method' in obj && 'path' in obj;\n};\nconst isAppRouteQuery = (route) => {\n return route.method === 'GET';\n};\nconst isAppRouteMutation = (route) => {\n return !isAppRouteQuery(route);\n};\n/**\n *\n * @deprecated Please use {@link initContract} instead.\n */\nconst initTsRest = () => initContract();\nconst recursivelyApplyOptions = (router, options) => {\n return Object.fromEntries(Object.entries(router).map(([key, value]) => {\n var _a, _b, _c;\n if (isAppRoute(value)) {\n return [\n key,\n {\n ...value,\n path: (options === null || options === void 0 ? void 0 : options.pathPrefix)\n ? options.pathPrefix + value.path\n : value.path,\n headers: zodMerge(options === null || options === void 0 ? void 0 : options.baseHeaders, value.headers),\n strictStatusCodes: (_a = value.strictStatusCodes) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.strictStatusCodes,\n validateResponseOnClient: (_b = value.validateResponseOnClient) !== null && _b !== void 0 ? _b : options === null || options === void 0 ? void 0 : options.validateResponseOnClient,\n responses: {\n ...options === null || options === void 0 ? void 0 : options.commonResponses,\n ...value.responses,\n },\n metadata: (options === null || options === void 0 ? void 0 : options.metadata)\n ? {\n ...options === null || options === void 0 ? void 0 : options.metadata,\n ...((_c = value.metadata) !== null && _c !== void 0 ? _c : {}),\n }\n : value.metadata,\n },\n ];\n }\n else {\n return [key, recursivelyApplyOptions(value, options)];\n }\n }));\n};\nconst ContractPlainTypeRuntimeSymbol = Symbol('ContractPlainType');\n/**\n * Instantiate a ts-rest client, primarily to access `router`, `response`, and `body`\n *\n * @returns {ContractInstance}\n */\nconst initContract = () => {\n return {\n // @ts-expect-error - this is a type error, but it's not clear how to fix it\n router: (endpoints, options) => recursivelyApplyOptions(endpoints, options),\n query: (args) => args,\n mutation: (args) => args,\n responses: (args) => args,\n response: () => ContractPlainTypeRuntimeSymbol,\n body: () => ContractPlainTypeRuntimeSymbol,\n type: () => ContractPlainTypeRuntimeSymbol,\n otherResponse: ({ contentType, body, }) => ({\n contentType,\n body,\n }),\n noBody: () => ContractNoBody,\n };\n};\n\n/**\n * @param path - The URL e.g. /posts/:id\n * @param params - The params e.g. `{ id: string }`\n * @returns - The URL with the params e.g. /posts/123\n */\nconst insertParamsIntoPath = ({ path, params, }) => {\n const pathParams = params;\n return path.replace(/\\/?:([^/?]+)\\??/g, (matched, p) => pathParams[p]\n ? `${matched.startsWith('/') ? '/' : ''}${pathParams[p]}`\n : '');\n};\n\n/**\n *\n * @param query - Any JSON object\n * @param json - Use JSON.stringify to encode the query values\n * @returns - The query url segment, using explode array syntax, and deep object syntax\n */\nconst convertQueryParamsToUrlString = (query, json = false) => {\n const queryString = json\n ? encodeQueryParamsJson(query)\n : encodeQueryParams(query);\n return (queryString === null || queryString === void 0 ? void 0 : queryString.length) > 0 ? '?' + queryString : '';\n};\nconst encodeQueryParamsJson = (query) => {\n if (!query) {\n return '';\n }\n return Object.entries(query)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => {\n let encodedValue;\n // if value is a string and is not a reserved JSON value or a number, pass it without encoding\n // this makes strings look nicer in the URL (e.g. ?name=John instead of ?name=%22John%22)\n // this is also how OpenAPI will pass strings even if they are marked as application/json types\n if (typeof value === 'string' &&\n !['true', 'false', 'null'].includes(value.trim()) &&\n isNaN(Number(value))) {\n encodedValue = value;\n }\n else {\n encodedValue = JSON.stringify(value);\n }\n return `${encodeURIComponent(key)}=${encodeURIComponent(encodedValue)}`;\n })\n .join('&');\n};\nconst encodeQueryParams = (query) => {\n if (!query) {\n return '';\n }\n return (Object.keys(query)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .flatMap((key) => tokeniseValue(key, query[key]))\n .map(([key, value]) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n })\n .join('&'));\n};\n/**\n * A recursive function to convert an object/string/number/Date/whatever into an array of key=value pairs\n *\n * The output of this should be flatMap-able to a string of key=value pairs which can be\n * joined with & to form a query string\n *\n * This should be fully compatible with the \"qs\" library, but without the need to add a dependency\n */\nconst tokeniseValue = (key, value) => {\n if (Array.isArray(value)) {\n return value.flatMap((v, idx) => tokeniseValue(`${key}[${idx}]`, v));\n }\n if (value instanceof Date) {\n return [[`${key}`, value.toISOString()]];\n }\n if (value === null) {\n return [[`${key}`, '']];\n }\n if (value === undefined) {\n return [];\n }\n if (typeof value === 'object') {\n return Object.keys(value).flatMap((k) => \n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n tokeniseValue(`${key}[${k}]`, value[k]));\n }\n return [[`${key}`, `${value}`]];\n};\n/**\n *\n * @param query - A server-side query object where values have been encoded as JSON strings\n * @returns - The same object with the JSON strings decoded. Objects that were encoded using toJSON such as Dates will remain as strings\n */\nconst parseJsonQueryObject = (query) => {\n return Object.fromEntries(Object.entries(query).map(([key, value]) => {\n let parsedValue;\n // if json parse fails, treat the value as a string\n // this allows us to pass strings without having to surround them with quotes\n try {\n parsedValue = JSON.parse(value);\n }\n catch {\n parsedValue = value;\n }\n return [key, parsedValue];\n }));\n};\n\nclass UnknownStatusError extends Error {\n constructor(response, knownResponseStatuses) {\n const expectedStatuses = knownResponseStatuses.join(',');\n super(`Server returned unexpected response. Expected one of: ${expectedStatuses} got: ${response.status}`);\n this.response = response;\n }\n}\n\n/**\n * @deprecated Only safe to use on the client-side. Use `ServerInferResponses`/`ClientInferResponses` instead.\n */\nfunction getRouteResponses(router) {\n return {};\n}\n/**\n * Default fetch api implementation:\n *\n * Can be used as a reference for implementing your own fetcher,\n * or used in the \"api\" field of ClientArgs to allow you to hook\n * into the request to run custom logic\n */\nconst tsRestFetchApi = async ({ route, path, method, headers, body, validateResponse, fetchOptions, }) => {\n const result = await fetch(path, {\n ...fetchOptions,\n method,\n headers,\n body,\n });\n const contentType = result.headers.get('content-type');\n if ((contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/')) && (contentType === null || contentType === void 0 ? void 0 : contentType.includes('json'))) {\n const response = {\n status: result.status,\n body: await result.json(),\n headers: result.headers,\n };\n const responseSchema = route.responses[response.status];\n if ((validateResponse !== null && validateResponse !== void 0 ? validateResponse : route.validateResponseOnClient) &&\n isZodType(responseSchema)) {\n return {\n ...response,\n body: responseSchema.parse(response.body),\n };\n }\n return response;\n }\n if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('text/')) {\n return {\n status: result.status,\n body: await result.text(),\n headers: result.headers,\n };\n }\n return {\n status: result.status,\n body: await result.blob(),\n headers: result.headers,\n };\n};\nconst createFormData = (body) => {\n const formData = new FormData();\n const appendToFormData = (key, value) => {\n if (value instanceof File) {\n formData.append(key, value);\n }\n else {\n formData.append(key, JSON.stringify(value));\n }\n };\n Object.entries(body).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n for (const item of value) {\n appendToFormData(key, item);\n }\n }\n else {\n appendToFormData(key, value);\n }\n });\n return formData;\n};\nconst normalizeHeaders = (headers) => {\n return Object.fromEntries(Object.entries(headers).map(([k, v]) => [k.toLowerCase(), v]));\n};\nconst fetchApi = (options) => {\n const { path, clientArgs, route, body, query, extraInputArgs, headers, fetchOptions, } = options;\n const apiFetcher = clientArgs.api || tsRestFetchApi;\n const baseHeaders = clientArgs.baseHeaders &&\n Object.fromEntries(Object.entries(clientArgs.baseHeaders).map(([name, valueOrFunction]) => {\n if (typeof valueOrFunction === 'function') {\n return [name, valueOrFunction(options)];\n }\n else {\n return [name, valueOrFunction];\n }\n }));\n const combinedHeaders = {\n ...(baseHeaders && normalizeHeaders(baseHeaders)),\n ...normalizeHeaders(headers),\n };\n // Remove any headers that are set to undefined\n Object.keys(combinedHeaders).forEach((key) => {\n if (combinedHeaders[key] === undefined) {\n delete combinedHeaders[key];\n }\n });\n let fetcherArgs = {\n route,\n path,\n method: route.method,\n headers: combinedHeaders,\n body: undefined,\n rawBody: body,\n rawQuery: query,\n contentType: undefined,\n validateResponse: clientArgs.validateResponse,\n fetchOptions: {\n ...(clientArgs.credentials && { credentials: clientArgs.credentials }),\n ...fetchOptions,\n },\n ...((fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.signal) && { signal: fetchOptions.signal }),\n ...((fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.cache) && { cache: fetchOptions.cache }),\n ...(fetchOptions &&\n 'next' in fetchOptions &&\n !!(fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.next) && { next: fetchOptions.next }),\n };\n if (route.method !== 'GET') {\n if ('contentType' in route && route.contentType === 'multipart/form-data') {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'multipart/form-data',\n body: body instanceof FormData ? body : createFormData(body),\n };\n }\n else if ('contentType' in route &&\n route.contentType === 'application/x-www-form-urlencoded') {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'application/x-www-form-urlencoded',\n headers: {\n 'content-type': 'application/x-www-form-urlencoded',\n ...fetcherArgs.headers,\n },\n body: typeof body === 'string'\n ? body\n : new URLSearchParams(body),\n };\n }\n else if (body !== null && body !== undefined) {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'application/json',\n headers: {\n 'content-type': 'application/json',\n ...fetcherArgs.headers,\n },\n body: JSON.stringify(body),\n };\n }\n }\n return apiFetcher({\n ...fetcherArgs,\n ...extraInputArgs,\n });\n};\nconst evaluateFetchApiArgs = (route, clientArgs, inputArgs) => {\n const { query, params, body, headers, extraHeaders, overrideClientOptions, fetchOptions, \n // TODO: remove in 4.0\n cache, \n // TODO: remove in 4.0\n next, \n // extra input args\n ...extraInputArgs } = inputArgs || {};\n const overriddenClientArgs = {\n ...clientArgs,\n ...overrideClientOptions,\n };\n const completeUrl = getCompleteUrl(query, overriddenClientArgs.baseUrl, params, route, !!overriddenClientArgs.jsonQuery);\n return {\n path: completeUrl,\n clientArgs: overriddenClientArgs,\n route,\n body,\n query,\n extraInputArgs,\n fetchOptions: {\n ...(cache && { cache }),\n ...(next && { next }),\n ...fetchOptions,\n },\n headers: {\n ...extraHeaders,\n ...headers,\n },\n };\n};\n/**\n * @hidden\n */\nconst getCompleteUrl = (query, baseUrl, params, route, jsonQuery) => {\n const path = insertParamsIntoPath({\n path: route.path,\n params: params,\n });\n const queryComponent = convertQueryParamsToUrlString(query, jsonQuery);\n return `${baseUrl}${path}${queryComponent}`;\n};\nconst getRouteQuery = (route, clientArgs) => {\n const knownResponseStatuses = Object.keys(route.responses);\n return async (inputArgs) => {\n const fetchApiArgs = evaluateFetchApiArgs(route, clientArgs, inputArgs);\n const response = await fetchApi(fetchApiArgs);\n // TODO: in next major version, throw by default if `strictStatusCode` is enabled\n if (!clientArgs.throwOnUnknownStatus) {\n return response;\n }\n if (knownResponseStatuses.includes(response.status.toString())) {\n return response;\n }\n throw new UnknownStatusError(response, knownResponseStatuses);\n };\n};\nconst initClient = (router, args) => {\n return Object.fromEntries(Object.entries(router).map(([key, subRouter]) => {\n if (isAppRoute(subRouter)) {\n return [key, getRouteQuery(subRouter, args)];\n }\n else {\n return [key, initClient(subRouter, args)];\n }\n }));\n};\n\nclass ResponseValidationError extends Error {\n constructor(appRoute, cause) {\n super(`[ts-rest] Response validation failed for ${appRoute.method} ${appRoute.path}: ${cause.message}`);\n this.appRoute = appRoute;\n this.cause = cause;\n }\n}\n\nconst isAppRouteResponse = (value) => {\n return (value != null &&\n typeof value === 'object' &&\n 'status' in value &&\n typeof value.status === 'number');\n};\nconst isAppRouteOtherResponse = (response) => {\n return (response != null &&\n typeof response === 'object' &&\n 'contentType' in response);\n};\nconst isAppRouteNoBody = (response) => {\n return response === ContractNoBody;\n};\nconst validateResponse = ({ appRoute, response, }) => {\n if (isAppRouteResponse(response)) {\n const responseType = appRoute.responses[response.status];\n const responseSchema = isAppRouteOtherResponse(responseType)\n ? responseType.body\n : responseType;\n const responseValidation = checkZodSchema(response.body, responseSchema);\n if (!responseValidation.success) {\n throw new ResponseValidationError(appRoute, responseValidation.error);\n }\n return {\n status: response.status,\n body: responseValidation.data,\n };\n }\n return response;\n};\n\nclass TsRestResponseError extends Error {\n constructor(route, response) {\n super();\n this.statusCode = response.status;\n this.body = response.body;\n this.name = this.constructor.name;\n if (typeof response.body === 'string') {\n this.message = response.body;\n }\n else if (typeof response.body === 'object' &&\n response.body !== null &&\n 'message' in response.body &&\n typeof response.body.message === 'string') {\n this.message = response.body['message'];\n }\n else {\n this.message = 'Error';\n }\n }\n}\n\nconst isResponse = (response, contractEndpoint) => {\n return (typeof response === 'object' &&\n response !== null &&\n 'status' in response &&\n 'body' in response &&\n typeof response.status === 'number' &&\n response.status >= 200 &&\n response.status < 600 &&\n ((contractEndpoint === null || contractEndpoint === void 0 ? void 0 : contractEndpoint.strictStatusCodes)\n ? Object.keys(contractEndpoint.responses).includes(response.status.toString())\n : true));\n};\nconst isSuccessResponse = (response, contractEndpoint) => {\n return (isResponse(response, contractEndpoint) &&\n response.status >= 200 &&\n response.status < 300);\n};\nconst isErrorResponse = (response, contractEndpoint) => {\n return (isResponse(response, contractEndpoint) &&\n !isSuccessResponse(response, contractEndpoint));\n};\nconst isUnknownResponse = (response, contractEndpoint) => {\n return (isResponse(response) &&\n !Object.keys(contractEndpoint.responses).includes(response.status.toString()));\n};\nconst isUnknownSuccessResponse = (response, contractEndpoint) => {\n return (isSuccessResponse(response) && isUnknownResponse(response, contractEndpoint));\n};\nconst isUnknownErrorResponse = (response, contractEndpoint) => {\n return (isErrorResponse(response) && isUnknownResponse(response, contractEndpoint));\n};\nconst exhaustiveGuard = (response) => {\n throw new Error(`Unreachable code: Response status is ${response.status}`);\n};\n\nexport { ContractNoBody, ContractPlainTypeRuntimeSymbol, ResponseValidationError, TsRestResponseError, UnknownStatusError, ZodErrorSchema, checkZodSchema, convertQueryParamsToUrlString, encodeQueryParams, encodeQueryParamsJson, evaluateFetchApiArgs, exhaustiveGuard, extractZodObjectShape, fetchApi, getCompleteUrl, getRouteQuery, getRouteResponses, initClient, initContract, initTsRest, insertParamsIntoPath, isAppRoute, isAppRouteMutation, isAppRouteNoBody, isAppRouteOtherResponse, isAppRouteQuery, isAppRouteResponse, isErrorResponse, isResponse, isSuccessResponse, isUnknownErrorResponse, isUnknownResponse, isUnknownSuccessResponse, isZodObject, isZodObjectStrict, isZodType, parseJsonQueryObject, tsRestFetchApi, validateResponse, zodErrorResponse, zodMerge };\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["APIError","Error","statusCode","error","details","constructor","args","super","message","this","name","is","schema","safeParse","success","unknown","z","object","string","number","int","optional","Permissions","Profile","ViewCurrent","Update","Beneficiary","View","List","Create","Delete","Payment","Payout","Approve","Transfer","Wallet","ViewBalance","ViewStatement","Role","ViewRoles","ViewRole","TeamManagement","ViewMembers","ViewMember","CreateMember","UpdateMember","ArchiveMember","UnArchiveMember","ResetPassword","PermissionError","requiredPermissions","join","permissionSchema","union","enum","Object","values","literal","nullish","array","isZodObjectStrict","obj","passthrough","issues","path","code","nativeEnum","ZodIssueCode","catchall","any","ContractNoBody","Symbol","isAppRoute","recursivelyApplyOptions","router","options","fromEntries","entries","map","key","value","_a","_b","_c","objectA","objectB","pathPrefix","headers","baseHeaders","merge","assign","strictStatusCodes","validateResponseOnClient","responses","commonResponses","metadata","ContractPlainTypeRuntimeSymbol","initContract","endpoints","query","mutation","response","body","type","otherResponse","contentType","noBody","encodeQueryParamsJson","filter","undefined","encodedValue","includes","trim","isNaN","Number","JSON","stringify","encodeURIComponent","encodeQueryParams","keys","flatMap","tokeniseValue","Array","isArray","v","idx","Date","toISOString","k","UnknownStatusError","knownResponseStatuses","status","tsRestFetchApi","async","route","method","validateResponse","fetchOptions","result","fetch","get","json","responseSchema","parse","text","blob","createFormData","formData","FormData","appendToFormData","File","append","forEach","item","normalizeHeaders","toLowerCase","getCompleteUrl","baseUrl","params","jsonQuery","pathParams","replace","matched","p","startsWith","insertParamsIntoPath","queryComponent","queryString","length","convertQueryParamsToUrlString","getRouteQuery","clientArgs","inputArgs","fetchApiArgs","extraHeaders","overrideClientOptions","cache","next","extraInputArgs","overriddenClientArgs","evaluateFetchApiArgs","apiFetcher","api","valueOrFunction","combinedHeaders","fetcherArgs","rawBody","rawQuery","credentials","signal","URLSearchParams","fetchApi","throwOnUnknownStatus","toString","initClient","subRouter","globalTokenGetter","BaseRepository","contract","endpoint","root","token","getToken","client","clientConfig","uuidv4","setToken","getCurrentToken","handleResponse","successStatusCode","parsedResponse","record","data","FilterOperator","SortDirection","QUERY_BUILDER_TYPE","QueryBuilder","filters","sort","groupBy","count","page","limit","addFilter","criteria","where","field","operator","EQUALS","whereNot","NOT_EQUALS","whereLike","LIKE","whereLikeLower","LIKE_LOWER","whereContains","whereStartsWith","whereEndsWith","whereIn","IN","whereNull","IS_NULL","whereNotNull","IS_NOT_NULL","whereGreaterThan","GREATER_THAN","whereGreaterThanOrEqual","GREATER_THAN_OR_EQUAL","whereLessThan","LESS_THAN","whereLessThanOrEqual","LESS_THAN_OR_EQUAL","whereBetween","min","max","whereDateBetween","startDate","endDate","formattedStart","formattedEnd","addSort","orderBy","direction","ASC","orderByAsc","orderByDesc","DESC","paginate","relations","relationsArray","fields","fieldsArray","expression","countAs","alias","build","rangeStart","rangeEnd","ascFields","descFields","push","eager","clone","ClonedBuilder","create","PaginationParamsSchema","coerce","default","PaginationSchema","total","totalPages","hasNext","boolean","hasPrev","Pagination","Math","ceil","offset","isFirstPage","isLastPage","nextPage","prevPage","toJSON","ProfileDTOSchemas","profileDTOSchema","id","firstName","lastName","displayName","phone","accountNo","email","autoApprove","ProfileJSONSchema","nullable","version","_id","_firstName","_lastName","_displayName","_phone","_accountNo","_email","_autoApprove","getName","validate","console","from","maybeProfile","toJSONString","fromJSON","rawData","validationResult","flatten","isProfileJSON","LogInSchemas","loginDTO","profileId","identity","roleId","isActive","isArchived","resetPassword","createdAt","datetime","updatedAt","access","LogInJSONSchema","LogIn","_profileId","_name","_identity","_type","_roleId","_isActive","_isArchived","_resetPassword","_createdAt","_updatedAt","_access","dto","validated","isLogInJSON","RoleJSONSchema","description","permissions","Set","hasPermission","permission","has","isRoleJSON","CompanyMembershipJSONSchema","companyProfile","role","CompanyMembership","_companyProfile","_role","profile","isCompanyMembershipJSON","UserJSONSchema","logIn","User","_logIn","_membership","_token","_permissionMap","membership","can","canAny","some","canAll","every","canManageTeam","canViewRoles","companyMembership","isUserJSON","authContract","password","currentPassword","newPassword","identityContract","getUserCredentials","IdentityRepository","getIdentity","passwordSchema","regex","refine","pattern","test","roleSchema","teamMemberSchema","TeamManagementDTOSchemas","teamMember","teamMemberQueryParams","createTeamMemberRequest","updateTeamMemberRequest","resetPasswordRequest","sendNotification","createTeamMemberResponse","teamManagementContract","getTeamMembers","summary","getTeamMember","createTeamMember","errors","updateTeamMember","archiveTeamMember","unArchiveTeamMember","getRoles","getRole","TeamMemberJSONSchema","TeamMember","_","fromJson","jsonString","parsed","createMany","dataArray","Boolean","isAccountActive","isAccountArchived","needsPasswordReset","getAccountStatus","label","color","getRoleName","getCreatedDate","toLocaleDateString","getLastUpdateInfo","diffMs","getTime","diffDays","floor","roleData","isTeamMemberJSON","fromJSONArray","jsonArray","member","warn","toJSONArray","members","TeamMemberRepository","input","resetTeamMemberPassword","getAllTeamMembers","getAllRoles","BeneficiaryType","beneficiaryTypeSchema","beneficiaryInputSchema","channel","BeneficiaryDTOSchemas","beneficiaryDTO","beneficiaryInputDTO","beneficiaryType","MobileBeneficiaryInfoJSONSchema","phoneNumber","mnoId","BankBeneficiaryInfoJSONSchema","accName","swiftCode","countryCode","accNo","BeneficiaryInfoJSONSchema","discriminatedUnion","BeneficiaryInfoError","context","BaseBeneficiaryInfo","isMobile","Mobile","isBank","Bank","accountName","MobileBeneficiaryInfo","operation","e164Format","MNOUtils","requiresExplicitMNO","isValidMNOForCountry","validMNOs","getCountryMNOs","mno","getMNOByPhoneNumber","fromBeneficiaryDTO","info","phoneNumberString","PhoneNumber","fromPayoutDTO","CountryValidation","isISO2CountryCode","msisdn","defaultCountry","payeeName","mobileBeneficiaryInfo","phone_number","phoneObj","derivedMNO","validateMNOForPhoneNumber","getValidationDetails","isValid","warnings","accountNumber","getWithFormat","PhoneNumberFormat","E164","accountNameLabel","accountNumberLabel","channelLabel","channelId","channelName","getMNOById","mobileMoneyService","autoDetectedMNO","fromJSONString","isMobileBeneficiaryInfoJSON","BankBeneficiaryInfo","bank","BankValidation","validateAccountName","validateAccountNumber","getCountryFromSwiftCode","validateSwiftCode","split","swiftcode","bankBeneficiaryInfo","accNumber","shortName","isBankBeneficiaryInfoJSON","BeneficiaryJSONSchema","accNoLabel","accNameLabel","createSafe","canConstruct","isBeneficiaryJSON","MobileInputHandler","canHandle","createInput","BankInputHandler","ValidatedBeneficiaryInputFactory","handlers","resolve","handler","find","h","createBeneficiary","editBeneficiary","getBeneficiaries","getByID","deleteBeneficiary","PayoutChannel","PayoutStatus","PayoutApprovalStatus","AuthorizerSchema","PayoutStatusSchema","PayoutApprovalStatusSchema","BasePayoutSchema","amount","notes","PayoutInputDTOSchema","extend","PayoutDTOSchema","currencyCode","CurrencyValidation","isCurrencyCode","statusMessage","partnerReference","date","actionedAt","approvalStatus","createdBy","actionedBy","PayoutFiltersSchema","positive","sortBy","sortOrder","minAmount","maxAmount","search","PayoutDTOSchemas","PayoutDTO","PayoutInputDTO","PayoutAuthorizer","PayoutFilters","PayoutURLQueryParams","transform","val","parseInt","parseFloat","PayoutJSONSchema","Amount","REJECTED","FAILED","PAID","PENDING","beneficiaryInfo","contactInfo","payoutDTO","isPayoutJSON","payout","payouts","ECOBANK_PREFIX","NARR_V2_PREFIX","BANK_NARR_PREFIX","LEGACY_BANK_NARR_PREFIX","MOBILE_NARR_PREFIX","LEGACY_MOBILE_NARR_PREFIX","NarrationJSONSchema","Narration","mediumText","substring","shortText","generateDefaultPayoutNarration","generateMobilePayoutNarrationV2","generateBankPayoutNarrationV2","toUpperCase","getBeneficiaryDetails","bankResult","getBankBeneficiaryDetails","mobileResult","getMobileBeneficiaryDetails","narr","potentialSwift","slice","capitalizeFirstLetter","country","banks","BankService","getInstance","searchBanks","potentialPhone","username","TZMobileNumber","names","n","maybeNarration","toJson","isNarrationJSON","str","charAt","PAYOUT_CONSTANTS","SUPPORTED_COUNTRY_CODES","ERROR_MESSAGES","INVALID_PHONE_NUMBER","INELIGIBLE_FOR_PAYOUT","MOBILE_NUMBER_MNO_MISMATCH","UNSUPPORTED_COUNTRY_BANK","UNSUPPORTED_COUNTRY_MOBILE","NO_HANDLER_FOUND","PayoutInputUtils","processNotes","trimmedNotes","PayoutChannelCodeFactory","forBank","wallet","forMobile","PhoneNumberFactory","checkPayoutEligibility","operatorInfo","TZMNOId","VODACOM","TIGO","MobileMoneyPayoutHandler","receiver","MOBILE","Country","processedNotes","INTERNATIONAL_NUMERIC","numericValue","BankTransferPayoutHandler","BANK","PayoutInputFactory","getPayoutInput","createPayoutChannelCode","mobile","getPayouts","results","getPayoutsByApprovalStatus","postPayout","approve","action","getPayout","PayoutQuery","fromFilters","applyFilters","fromUrlParams","fromSearchParams","searchParams","paramObj","fromRequest","request","URL","url","isStringRecord","whereStatus","whereApprovalStatus","whereChannel","wherePending","whereApproved","APPROVED","whereRejected","wherePaid","whereFailed","whereAmountBetween","whereCurrencyCode","wherePayee","whereMsisdn","whereProfileId","wherePartnerReference","whereSearch","searchTerm","hasMin","hasMax","toFilters","extracted","extractFilterValues","extractSortField","extractSortOrder","isValidStatus","isValidApprovalStatus","toUrlParams","String","toSearchParams","toQueryString","withPagination","withSorting","withDateRange","withStatus","withApprovalStatus","withChannel","includeDefaultRelations","with","resetPage","hasFilters","getActiveFilters","current","makeOptional","WalletDTOSchemas","walletDTO","walletQuery","ISO2CountryCodesSet","currency","Currency","CurrencyCodesSet","statementEntry","debitOrCredit","tranRefNo","narration","txnDate","errorMap","valueDate","amountCredited","amountDebited","balance","WalletJSONSchema","_accountName","_channel","_countryCode","_currencyCode","createdAtDate","updatedAtDate","maybeWallet","isWalletJSON","WalletStatementEntryJSONSchema","AmountJSONSchema","WalletStatementEntry","_debitOrCredit","_tranRefNo","_narration","_txnDate","_valueDate","_amountCredited","_amountDebited","_balance","narrationInstance","validationData","restData","maybeEntry","equals","other","isPositive","creditedAmount","debitedAmount","balanceAmount","isFinite","isWalletStatementEntryJSON","entry","fromJsonArray","toJsonArray","getWallets","getBalance","availableBalance","getStatement","WalletQuery","whereId","whereAccountNo","whereAccountName","whereCountryCode","withId","withProfileId","withAccountNo","withCountryCode","withCurrencyCode","WalletUtils","getUniqueCountries","wallets","uniqueCountries","add","getWalletsByCountry","profileContract","getCurrentProfile","identityRepo","loginData","profileData","teamMemberRepo","user","updatePassword","getAccessList","edit","remove","getAll","payoutQuery","pagination","getAllPayouts","getPayoutsFromRequest","req","pay","getTransactionLimits","lessThan","greaterThan","reject","exists","props","rawWallets","walletData","now","monthStart","getFullYear","getMonth","monthEnd","dateRange","range","targetWallet","targetAccountNo","requestBody","reduce","acc","entryData","itemSchema","e","stack","getter"],"mappings":"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","x_google_ignoreList":[3]}
@@ -0,0 +1,10 @@
1
+ export * from "./lib/error/index.js";
2
+ export * from "./lib/api/index.js";
3
+ export * from "./lib/query/index.js";
4
+ export * from "./modules/auth/index.js";
5
+ export * from "./modules/beneficiary/index.js";
6
+ export * from "./modules/payout/index.js";
7
+ export * from "./modules/wallet/index.js";
8
+ export * from "./modules/team-member/index.js";
9
+ export * from "./modules/login/index.js";
10
+ export * from "./modules/profile/index.js";
@@ -0,0 +1,2 @@
1
+ import e,{z as t}from"zod";import{v4 as r}from"uuid";import{MNOUtils as n,PhoneNumber as o,CountryValidation as a,PhoneNumberFormat as s,BankValidation as i,Bank as c,CurrencyValidation as u,Amount as d,BankService as l,TZMobileNumber as m,PhoneNumberFactory as h,TZMNOId as p,Country as f,Currency as y,CurrencyCodesSet as g,ISO2CountryCodesSet as N,AmountJSONSchema as b}from"@temboplus/frontend-core";class w extends Error{statusCode;error;details;constructor(e){super(e.message),this.name="ApiError",this.statusCode=e.statusCode,this.error&&(this.error=e.error),e.details&&(this.details=e.details)}static is(e){return w.schema.safeParse(e).success}static unknown(e){return new w({message:e??"An unknown error occurred",statusCode:502})}static get schema(){return t.object({message:t.string(),statusCode:t.number().int(),error:t.string().optional(),details:t.object({}).optional()})}}const v={Profile:{ViewCurrent:"profile.getCurrent",Update:"profile.update"},Beneficiary:{View:"contact.findById",List:"contact.findAll",Create:"contact.create",Update:"contact.update",Delete:"contact.delete"},Payment:{View:"payment.findById",List:"payment.findAll",Create:"payment.create"},Payout:{View:"payout.findById",List:"payout.findAll",Create:"payout.create",Approve:"payout.approve"},Transfer:{View:"transfer.findById",List:"transfer.findAll",Create:"transfer.create",Approve:"transfer.approve"},Wallet:{ViewBalance:"wallet.getBalance",ViewStatement:"wallet.getStatement"},Role:{ViewRoles:"role.findAll",ViewRole:"role.findById"},TeamManagement:{ViewMembers:"login.findAll",ViewMember:"login.findById",CreateMember:"login.create",UpdateMember:"login.update",ArchiveMember:"login.archive",UnArchiveMember:"login.unarchive",ResetPassword:"login.resetPassword"}};class S extends Error{requiredPermissions;constructor(e){super(e.message??`Missing required permissions: ${e.requiredPermissions.join(", ")}`),this.name="PermissionError",this.requiredPermissions=e.requiredPermissions}static is(e){const r=t.union([t.enum(Object.values(v.Profile)),t.enum(Object.values(v.Beneficiary)),t.enum(Object.values(v.Payment)),t.enum(Object.values(v.Payout)),t.enum(Object.values(v.Transfer)),t.enum(Object.values(v.Wallet))]);return t.object({name:t.literal("PermissionError").nullish(),message:t.string(),requiredPermissions:t.array(r)}).safeParse(e).success}}function O(e){const t=e;return t&&"string"==typeof t.stack&&"string"==typeof t.message}const A=e=>"function"==typeof(null==e?void 0:e.passthrough);t.object({name:t.literal("ZodError"),issues:t.array(t.object({path:t.array(t.union([t.string(),t.number()])),message:t.string().optional(),code:t.nativeEnum(t.ZodIssueCode)}).catchall(t.any()))});const C=Symbol("ContractNoBody"),I=e=>"method"in e&&"path"in e,_=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,r])=>{var n,o,a,s,i;return I(r)?[e,{...r,path:(null==t?void 0:t.pathPrefix)?t.pathPrefix+r.path:r.path,headers:(s=null==t?void 0:t.baseHeaders,i=r.headers,A(s)?A(i)?s.merge(i):s:A(i)?i:Object.assign({},s,i)),strictStatusCodes:null!==(n=r.strictStatusCodes)&&void 0!==n?n:null==t?void 0:t.strictStatusCodes,validateResponseOnClient:null!==(o=r.validateResponseOnClient)&&void 0!==o?o:null==t?void 0:t.validateResponseOnClient,responses:{...null==t?void 0:t.commonResponses,...r.responses},metadata:(null==t?void 0:t.metadata)?{...null==t?void 0:t.metadata,...null!==(a=r.metadata)&&void 0!==a?a:{}}:r.metadata}]:[e,_(r,t)]})),P=Symbol("ContractPlainType"),E=()=>({router:(e,t)=>_(e,t),query:e=>e,mutation:e=>e,responses:e=>e,response:()=>P,body:()=>P,type:()=>P,otherResponse:({contentType:e,body:t})=>({contentType:e,body:t}),noBody:()=>C}),D=e=>e?Object.entries(e).filter(([,e])=>void 0!==e).map(([e,t])=>{let r;return r="string"==typeof t&&!["true","false","null"].includes(t.trim())&&isNaN(Number(t))?t:JSON.stringify(t),`${encodeURIComponent(e)}=${encodeURIComponent(r)}`}).join("&"):"",R=e=>e?Object.keys(e).flatMap(t=>T(t,e[t])).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&"):"",T=(e,t)=>Array.isArray(t)?t.flatMap((t,r)=>T(`${e}[${r}]`,t)):t instanceof Date?[[`${e}`,t.toISOString()]]:null===t?[[`${e}`,""]]:void 0===t?[]:"object"==typeof t?Object.keys(t).flatMap(r=>T(`${e}[${r}]`,t[r])):[[`${e}`,`${t}`]];class J extends Error{constructor(e,t){super(`Server returned unexpected response. Expected one of: ${t.join(",")} got: ${e.status}`),this.response=e}}const j=async({route:e,path:t,method:r,headers:n,body:o,validateResponse:a,fetchOptions:s})=>{const i=await fetch(t,{...s,method:r,headers:n,body:o}),c=i.headers.get("content-type");if((null==c?void 0:c.includes("application/"))&&(null==c?void 0:c.includes("json"))){const t={status:i.status,body:await i.json(),headers:i.headers},r=e.responses[t.status];return(null!=a?a:e.validateResponseOnClient)&&"function"==typeof(null==(u=r)?void 0:u.safeParse)?{...t,body:r.parse(t.body)}:t}var u;return(null==c?void 0:c.includes("text/"))?{status:i.status,body:await i.text(),headers:i.headers}:{status:i.status,body:await i.blob(),headers:i.headers}},B=e=>{const t=new FormData,r=(e,r)=>{r instanceof File?t.append(e,r):t.append(e,JSON.stringify(r))};return Object.entries(e).forEach(([e,t])=>{if(Array.isArray(t))for(const n of t)r(e,n);else r(e,t)}),t},M=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e.toLowerCase(),t])),F=(e,t,r,n,o)=>{const a=(({path:e,params:t})=>{const r=t;return e.replace(/\/?:([^/?]+)\??/g,(e,t)=>r[t]?`${e.startsWith("/")?"/":""}${r[t]}`:"")})({path:n.path,params:r}),s=((e,t=!1)=>{const r=t?D(e):R(e);return(null==r?void 0:r.length)>0?"?"+r:""})(e,o);return`${t}${a}${s}`},x=(e,t)=>{const r=Object.keys(e.responses);return async n=>{const o=((e,t,r)=>{const{query:n,params:o,body:a,headers:s,extraHeaders:i,overrideClientOptions:c,fetchOptions:u,cache:d,next:l,...m}=r||{},h={...t,...c};return{path:F(n,h.baseUrl,o,e,!!h.jsonQuery),clientArgs:h,route:e,body:a,query:n,extraInputArgs:m,fetchOptions:{...d&&{cache:d},...l&&{next:l},...u},headers:{...i,...s}}})(e,t,n),a=await(e=>{const{path:t,clientArgs:r,route:n,body:o,query:a,extraInputArgs:s,headers:i,fetchOptions:c}=e,u=r.api||j,d=r.baseHeaders&&Object.fromEntries(Object.entries(r.baseHeaders).map(([t,r])=>"function"==typeof r?[t,r(e)]:[t,r])),l={...d&&M(d),...M(i)};Object.keys(l).forEach(e=>{void 0===l[e]&&delete l[e]});let m={route:n,path:t,method:n.method,headers:l,body:void 0,rawBody:o,rawQuery:a,contentType:void 0,validateResponse:r.validateResponse,fetchOptions:{...r.credentials&&{credentials:r.credentials},...c},...(null==c?void 0:c.signal)&&{signal:c.signal},...(null==c?void 0:c.cache)&&{cache:c.cache},...c&&"next"in c&&!!(null==c?void 0:c.next)&&{next:c.next}};return"GET"!==n.method&&("contentType"in n&&"multipart/form-data"===n.contentType?m={...m,contentType:"multipart/form-data",body:o instanceof FormData?o:B(o)}:"contentType"in n&&"application/x-www-form-urlencoded"===n.contentType?m={...m,contentType:"application/x-www-form-urlencoded",headers:{"content-type":"application/x-www-form-urlencoded",...m.headers},body:"string"==typeof o?o:new URLSearchParams(o)}:null!=o&&(m={...m,contentType:"application/json",headers:{"content-type":"application/json",...m.headers},body:JSON.stringify(o)})),u({...m,...s})})(o);if(!t.throwOnUnknownStatus)return a;if(r.includes(a.status.toString()))return a;throw new J(a,r)}},k=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,r])=>I(r)?[e,x(r,t)]:[e,k(r,t)]));let $;const U=e=>{$=e};class L{contract;endpoint;root;token;constructor(e,t,r){this.contract=t,this.endpoint=e,this.root=r?.root,this.token=r?.token}getToken(){if(this.token&&this.token.trim().length>0)return this.token;if($){const e=$();if(e&&e.trim().length>0)return e}return""}get client(){const e={baseUrl:this.root?`${this.root}/${this.endpoint}`:`https://api.afloat.money/v1/${this.endpoint}`,baseHeaders:{token:this.getToken(),"x-request-id":r()}};return k(this.contract,e)}setToken(e){this.token=e}getCurrentToken(){return this.token}handleResponse(t,r){if(t.status===r)return t.body;if(400===t.status){const r=e.object({statusCode:e.number(),message:e.string(),error:e.string(),details:e.record(e.string()).optional()}).safeParse(t.body);if(r.success)throw new w(r.data);throw new w({message:"Bad request",statusCode:400,error:"BAD_REQUEST"})}if(401===t.status)throw new w({message:"You are not authenticated to perform this action. Please login again",statusCode:401,error:"UNAUTHORIZED"});if(403===t.status)throw new w({message:"You are not authorized to perform this action.",statusCode:403,error:"FORBIDDEN"});if(404===t.status)throw new w({message:"The requested resource was not found.",statusCode:404,error:"NOT_FOUND"});throw new w({message:"We encountered an error trying to process your request. Please try again later",statusCode:520,error:"UNKNOWN_ERROR"})}}var q,V;!function(e){e.EQUALS="eq",e.NOT_EQUALS="neq",e.LESS_THAN="lt",e.LESS_THAN_OR_EQUAL="lte",e.GREATER_THAN="gt",e.GREATER_THAN_OR_EQUAL="gte",e.LIKE="like",e.LIKE_LOWER="likeLower",e.IS_NULL="isNull",e.IS_NOT_NULL="isNotNull",e.IN="in"}(q||(q={})),function(e){e.ASC="asc",e.DESC="desc"}(V||(V={}));const W=Symbol("query-builder-type");class G{options={filters:[],sort:[],includes:[],groupBy:[],join:[],count:"*",page:1,limit:8};constructor(e={}){this.options={filters:e.filters||[],sort:e.sort||[],includes:e.includes||[],groupBy:e.groupBy||[],join:e.join||[],page:e.page,limit:e.limit}}[W]="query-builder";static is(e){return null!==e&&"object"==typeof e&&W in e&&"query-builder"===e[W]}addFilter(e){return this.options.filters=[...this.options.filters||[],e],this}where(e,t){return this.addFilter({field:e,operator:q.EQUALS,value:t})}whereNot(e,t){return this.addFilter({field:e,operator:q.NOT_EQUALS,value:t})}whereLike(e,t){return this.addFilter({field:e,operator:q.LIKE,value:t})}whereLikeLower(e,t){return this.addFilter({field:e,operator:q.LIKE_LOWER,value:t})}whereContains(e,t){return this.addFilter({field:e,operator:q.LIKE_LOWER,value:`%${t}%`})}whereStartsWith(e,t){return this.addFilter({field:e,operator:q.LIKE_LOWER,value:`${t}%`})}whereEndsWith(e,t){return this.addFilter({field:e,operator:q.LIKE_LOWER,value:`%${t}`})}whereIn(e,t){return this.addFilter({field:e,operator:q.IN,value:t})}whereNull(e){return this.addFilter({field:e,operator:q.IS_NULL})}whereNotNull(e){return this.addFilter({field:e,operator:q.IS_NOT_NULL})}whereGreaterThan(e,t){return this.addFilter({field:e,operator:q.GREATER_THAN,value:t})}whereGreaterThanOrEqual(e,t){return this.addFilter({field:e,operator:q.GREATER_THAN_OR_EQUAL,value:t})}whereLessThan(e,t){return this.addFilter({field:e,operator:q.LESS_THAN,value:t})}whereLessThanOrEqual(e,t){return this.addFilter({field:e,operator:q.LESS_THAN_OR_EQUAL,value:t})}whereBetween(e,t,r){return this.whereGreaterThanOrEqual(e,t).whereLessThanOrEqual(e,r)}whereDateBetween(e,t){if(e){const t=e instanceof Date?e.toISOString():e;this.whereGreaterThanOrEqual("createdAt",t)}if(t){const e=t instanceof Date?t.toISOString():t;this.whereLessThanOrEqual("createdAt",e)}return this}addSort(e){return this.options.sort=[...this.options.sort||[],e],this}orderBy(e,t=V.ASC){return this.addSort({field:e,direction:t})}orderByAsc(e){return this.orderBy(e,V.ASC)}orderByDesc(e){return this.orderBy(e,V.DESC)}paginate(e,t){return this.options.page=e,this.options.limit=t,this}with(e){const t=Array.isArray(e)?e:[e];return this.options.includes=[...this.options.includes||[],...t],this}join(e){const t=Array.isArray(e)?e:[e];return this.options.join=[...this.options.join||[],...t],this}groupBy(e){const t=Array.isArray(e)?e:[e];return this.options.groupBy=[...this.options.groupBy||[],...t],this}count(e="*"){return this.options.count=e,this}countAs(e,t){return this.options.count=`${e} as ${t}`,this}build(){const e={};if(void 0!==this.options.page&&void 0!==this.options.limit){const t=(this.options.page-1)*this.options.limit,r=t+this.options.limit-1;e.rangeStart=t,e.rangeEnd=r}if(this.options.filters&&this.options.filters.length>0)for(const t of this.options.filters)switch(t.operator){case q.IS_NULL:e[`${t.field}:isNull`]=1;break;case q.IS_NOT_NULL:e[`${t.field}:notNull`]=1;break;case q.IN:e[`${t.field}:in`]=Array.isArray(t.value)?t.value.join(","):t.value;break;case q.LIKE:e[`${t.field}:like`]=t.value;break;case q.LIKE_LOWER:e[`${t.field}:likeLower`]=t.value;break;case q.GREATER_THAN_OR_EQUAL:e[`${t.field}:gte`]=t.value;break;case q.LESS_THAN_OR_EQUAL:e[`${t.field}:lte`]=t.value;break;default:e[`${t.field}:${t.operator}`]=t.value}if(this.options.sort&&this.options.sort.length>0){const t=[],r=[];for(const e of this.options.sort)e.direction===V.ASC?t.push(e.field):r.push(e.field);t.length>0&&(e.orderBy=t.join(",")),r.length>0&&(e.orderByDesc=r.join(","))}return this.options.includes&&this.options.includes.length>0&&(1===this.options.includes.length?e.eager=this.options.includes[0]:e.eager=`[${this.options.includes.join(",")}]`),this.options.join&&this.options.join.length>0&&(e.join=this.options.join.join(",")),this.options.groupBy&&this.options.groupBy.length>0&&(e.groupBy=this.options.groupBy.join(",")),this.options.count&&(e.count=this.options.count),e}clone(){return new(0,this.constructor)({...this.options,filters:this.options.filters?[...this.options.filters]:[],sort:this.options.sort?[...this.options.sort]:[],includes:this.options.includes?[...this.options.includes]:[],groupBy:this.options.groupBy?[...this.options.groupBy]:[],join:this.options.join?[...this.options.join]:[]})}static create(e){return new G(e)}}const H=t.object({page:t.coerce.number().int().min(1).default(1),limit:t.coerce.number().int().min(1).max(100).default(10)}),Q=t.object({page:t.number().int().min(1),limit:t.number().int().min(1),total:t.number().int().min(0),totalPages:t.number().int().min(0),hasNext:t.boolean(),hasPrev:t.boolean()});function K(e){return t.object({results:t.array(e),pagination:Q})}class Y{page;limit;total;constructor(e,t,r){if(this.page=e,this.limit=t,this.total=r,e<1)throw new Error("Page must be >= 1");if(t<1)throw new Error("Limit must be >= 1");if(r<0)throw new Error("Total must be >= 0")}get totalPages(){return Math.ceil(this.total/this.limit)}get hasNext(){return this.page<this.totalPages}get hasPrev(){return this.page>1}get offset(){return(this.page-1)*this.limit}get isFirstPage(){return 1===this.page}get isLastPage(){return this.page===this.totalPages}nextPage(){return this.hasNext?new Y(this.page+1,this.limit,this.total):null}prevPage(){return this.hasPrev?new Y(this.page-1,this.limit,this.total):null}toJSON(){return{page:this.page,limit:this.limit,total:this.total,totalPages:this.totalPages,hasNext:this.hasNext,hasPrev:this.hasPrev}}}function Z(e,t,r,n){return{results:e,pagination:new Y(t,r,n)}}function z(e=1,t=10){return{results:[],pagination:new Y(e,t,0)}}const X={profileDTOSchema:t.object({id:t.string(),firstName:t.string().nullish(),lastName:t.string().nullish(),displayName:t.string(),phone:t.string().nullish(),accountNo:t.string().min(1),email:t.string().email().nullish(),autoApprove:t.boolean().nullish()})},ee=t.object({id:t.string(),firstName:t.string().nullable().optional(),lastName:t.string().nullable().optional(),displayName:t.string(),phone:t.string().nullable().optional(),accountNo:t.string(),email:t.string().nullable().optional(),autoApprove:t.boolean().nullable().optional(),version:t.string().optional().default("1.0")});class te{_id;_firstName;_lastName;_displayName;_phone;_accountNo;_email;_autoApprove;static get schema(){return X.profileDTOSchema}constructor(e){this._id=e.id,this._firstName=e.firstName,this._lastName=e.lastName,this._displayName=e.displayName,this._phone=e.phone,this._accountNo=e.accountNo,this._email=e.email,this._autoApprove=e.autoApprove}static create(e){return new te({id:e.id,firstName:e.firstName,lastName:e.lastName,displayName:e.displayName,phone:e.phone,accountNo:e.accountNo,email:e.email,autoApprove:e.autoApprove})}get id(){return this._id}get firstName(){return this._firstName}get lastName(){return this._lastName}get displayName(){return this._displayName}get phone(){return this._phone}get accountNo(){return this._accountNo}get email(){return this._email}get autoApprove(){return this._autoApprove}getName(){if(this._displayName&&""!==this._displayName.trim())return this._displayName;return`${this._firstName??""} ${this._lastName??""}`.trim()}validate(){try{return te.schema.safeParse(this.toJSON()).success}catch(e){return console.error("Profile validation error:",e),!1}}static from(e){try{return e?"object"!=typeof e?void console.error("Data is not an object"):e.id&&e.accountNo&&e.displayName?te.create({id:e.id,firstName:e.firstName,lastName:e.lastName,displayName:e.displayName,phone:e.phone,accountNo:e.accountNo,email:e.email,autoApprove:e.autoApprove}):void console.error("Missing required profile fields"):void console.error("Data is null or undefined")}catch(e){return void console.error("Error creating profile from object:",e)}}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;if("string"!=typeof t._id||"string"!=typeof t._displayName||"string"!=typeof t._accountNo)return!1;if(null!==t._firstName&&void 0!==t._firstName&&"string"!=typeof t._firstName)return!1;if(null!==t._lastName&&void 0!==t._lastName&&"string"!=typeof t._lastName)return!1;if(null!==t._email&&void 0!==t._email&&"string"!=typeof t._email)return!1;const r=t._phone;if(null!=r&&"string"!=typeof r)return!1;const n=t._autoApprove;return null==n||"boolean"==typeof n}toJSON(){return{id:this._id,firstName:this._firstName,lastName:this._lastName,displayName:this._displayName,phone:this._phone,accountNo:this._accountNo,email:this._email,autoApprove:this._autoApprove,version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ee.safeParse(t);if(!r.success)return void console.error("Invalid ProfileJSON:",r.error.flatten());const n=r.data;return te.from(n)}catch(e){return void console.error("Error parsing ProfileJSON:",e)}}static isProfileJSON(e){return ee.safeParse(e).success}}const re={loginDTO:e.object({id:e.string().min(1,"ID is required"),profileId:e.string().min(1,"Profile ID is required"),name:e.string().min(1,"Name is required"),identity:e.string().email("Identity must be a valid email address"),type:e.string().min(1,"Type is required"),roleId:e.string().min(1,"Role ID is required"),isActive:e.boolean(),isArchived:e.boolean(),resetPassword:e.boolean(),createdAt:e.string().datetime("Invalid creation timestamp"),updatedAt:e.string().datetime("Invalid update timestamp"),access:e.array(e.string())})},ne=t.object({id:t.string(),profileId:t.string(),name:t.string(),identity:t.string(),type:t.string(),roleId:t.string(),isActive:t.boolean(),isArchived:t.boolean(),resetPassword:t.boolean(),createdAt:t.string(),updatedAt:t.string(),access:t.array(t.string()),version:t.string().optional().default("1.0")});class oe{_id;_profileId;_name;_identity;_type;_roleId;_isActive;_isArchived;_resetPassword;_createdAt;_updatedAt;_access;constructor(e,t,r,n,o,a,s,i,c,u,d,l){this._id=e,this._profileId=t,this._name=r,this._identity=n,this._type=o,this._roleId=a,this._isActive=s,this._isArchived=i,this._resetPassword=c,this._createdAt=u,this._updatedAt=d,this._access=l}static from(e){const t=re.loginDTO.parse(e);return new oe(t.id,t.profileId,t.name,t.identity,t.type,t.roleId,t.isActive,t.isArchived,t.resetPassword,new Date(t.createdAt),new Date(t.updatedAt),t.access)}get id(){return this._id}get profileId(){return this._profileId}get name(){return this._name}get identity(){return this._identity}get type(){return this._type}get roleId(){return this._roleId}get isActive(){return this._isActive}get isArchived(){return this._isArchived}get resetPassword(){return this._resetPassword}get createdAt(){return this._createdAt}get updatedAt(){return this._updatedAt}get access(){return this._access}toJSON(){return{id:this._id,profileId:this._profileId,name:this._name,identity:this._identity,type:this._type,roleId:this._roleId,isActive:this._isActive,isArchived:this._isArchived,resetPassword:this._resetPassword,createdAt:this._createdAt.toISOString(),updatedAt:this._updatedAt.toISOString(),access:[...this._access],version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ne.safeParse(t);if(!r.success)return void console.error("Invalid LogInJSON:",r.error.flatten());const n=r.data;return oe.from({id:n.id,profileId:n.profileId,name:n.name,identity:n.identity,type:n.type,roleId:n.roleId,isActive:n.isActive,isArchived:n.isArchived,resetPassword:n.resetPassword,createdAt:n.createdAt,updatedAt:n.updatedAt,access:n.access})}catch(e){return void console.error("Error parsing LogInJSON:",e)}}static isLogInJSON(e){return ne.safeParse(e).success}}const ae=e.object({id:e.string(),name:e.string(),description:e.string().optional(),access:e.array(e.string()),createdAt:e.string(),updatedAt:e.string(),version:e.string().optional().default("1.0")});class se{id;name;description;permissions;createdAt;updatedAt;constructor(e){this.id=e.id,this.name=e.name,this.description=e.description,this.permissions=new Set(e.access),this.createdAt=new Date(e.createdAt),this.updatedAt=new Date(e.updatedAt)}hasPermission(e){return this.permissions.has(e)}static from(e){try{if(!e?.id||!e?.name||!Array.isArray(e?.access))return;return new se(e)}catch(e){return void console.error("Error creating Role:",e)}}toJSON(){return{id:this.id,name:this.name,description:this.description,access:Array.from(this.permissions),createdAt:this.createdAt.toISOString(),updatedAt:this.updatedAt.toISOString(),version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ae.safeParse(t);if(!r.success)return void console.error("Invalid RoleJSON:",r.error.flatten());const n=r.data;return se.from({id:n.id,name:n.name,description:n.description,access:n.access,createdAt:n.createdAt,updatedAt:n.updatedAt})}catch(e){return void console.error("Error parsing RoleJSON:",e)}}static isRoleJSON(e){return ae.safeParse(e).success}}const ie=e.object({companyProfile:ee,role:ae.optional(),version:e.string().optional().default("1.0")});class ce{_companyProfile;_role;constructor(e){this._companyProfile=e.companyProfile,this._role=e.role}static from(e){try{return te.is(e.companyProfile)?new ce(e):void console.error("Invalid company profile")}catch(e){return void console.error("Error creating CompanyMembership:",e)}}get companyProfile(){return this._companyProfile}get role(){return this._role}toJSON(){return{companyProfile:this._companyProfile.toJSON(),role:this._role?.toJSON(),version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ie.safeParse(t);if(!r.success)return void console.error("Invalid CompanyMembershipJSON:",r.error.flatten());const n=r.data,o=te.fromJSON(n.companyProfile),a=n.role?se.fromJSON(n.role):void 0;return o?ce.from({companyProfile:o,role:a}):void console.error("Failed to reconstruct Profile from CompanyMembershipJSON")}catch(e){return void console.error("Error parsing CompanyMembershipJSON:",e)}}static isCompanyMembershipJSON(e){return ie.safeParse(e).success}}const ue=e.object({logIn:ne,companyProfile:ee,role:ae.optional(),token:e.string().min(1),version:e.string().optional().default("1.0")});class de{_logIn;_membership;_token;_permissionMap;constructor(e){this._logIn=e.logIn,this._membership=e.membership,this._token=e.token,this._permissionMap={},this._logIn.access.forEach(e=>{this._permissionMap[e]=!0})}static from(e){try{if(!e.logIn||!e.companyProfile||!e.token)return void console.error("Missing required User fields");if("string"!=typeof e.token||""===e.token.trim())return void console.error("Invalid token");const t=ce.from({companyProfile:e.companyProfile,role:e.role});return t?new de({logIn:e.logIn,membership:t,token:e.token}):void console.error("Failed to create CompanyMembership")}catch(e){return void console.error("Error creating User:",e)}}get logIn(){return this._logIn}get membership(){return this._membership}get token(){return this._token}get id(){return this._logIn.id}get name(){return this._logIn.name}get identity(){return this._logIn.identity}get roleId(){return this._logIn.roleId}get resetPassword(){return this._logIn.resetPassword}get profile(){return this._membership.companyProfile}get role(){return this._membership.role}get access(){return this._logIn.access}can(e){return this._permissionMap[e]??!1}canAny(e){return e.some(e=>this.can(e))}canAll(e){return e.every(e=>this.can(e))}canManageTeam(){return this.can(v.TeamManagement.ViewMembers)}canViewRoles(){return this.can(v.Role.ViewRole)}toJSON(){return{logIn:this._logIn.toJSON(),companyProfile:this._membership.companyProfile.toJSON(),role:this._membership.role?.toJSON(),token:this._token,version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ue.safeParse(t);if(!r.success)return void console.error("Invalid UserJSON:",r.error.flatten());const n=r.data,o=oe.fromJSON(n.logIn),a=te.fromJSON(n.companyProfile),s=n.role?se.fromJSON(n.role):void 0;if(!o||!a)return void console.error("Failed to reconstruct nested objects from UserJSON");if(!n.token||""===n.token.trim())return void console.error("Invalid token in UserJSON");const i=ce.from({companyProfile:a,role:s});return i?new de({logIn:o,membership:i,token:n.token}):void console.error("Failed to create CompanyMembership from UserJSON")}catch(e){return void console.error("Error parsing UserJSON:",e)}}static isUserJSON(e){return ue.safeParse(e).success}}const le=E().router({logIn:{method:"POST",path:"/login",body:t.object({type:t.string().default("password"),identity:t.string().email(),password:t.string()}),responses:{201:t.object({profile:X.profileDTOSchema,token:t.string(),access:t.array(t.string()),resetPassword:t.boolean()}),400:t.object({})}},access:{method:"GET",path:"/access",responses:{200:t.string().array()}},resetPassword:{method:"PUT",path:"/password",body:t.object({currentPassword:t.string(),newPassword:t.string()}),responses:{}}}),me=E().router({getUserCredentials:{method:"GET",path:"/me",responses:{200:re.loginDTO}}});class he extends L{constructor(e){super("login",me,e)}async getIdentity(){const e=await this.client.getUserCredentials();if(200===e.status)return e.body;throw new Error(`Failed to get user identity. Status: ${e.status}`)}}const pe=t.string().min(8,"Password must be at least 8 characters long").max(128,"Password must not exceed 128 characters").regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[a-z]/,"Password must contain at least one lowercase letter").regex(/[0-9]/,"Password must contain at least one number").regex(/[!@#$%^&*()_+\-=\[\]{}|;:,.<>?]/,"Password must contain at least one special character (!@#$%^&*()_+-=[]{}|;:,.<>?)").refine(e=>![/(.)\1{2,}/,/123456|654321|abcdef|qwerty|password|admin|user/i,/^[0-9]+$/,/^[a-zA-Z]+$/].some(t=>t.test(e)),"Password contains weak patterns. Avoid repeated characters, common words, or simple sequences").refine(e=>!/(?:abc|bcd|cde|def|efg|fgh|ghi|hij|ijk|jkl|klm|lmn|mno|nop|opq|pqr|qrs|rst|stu|tuv|uvw|vwx|wxy|xyz|012|123|234|345|456|567|678|789)/i.test(e),"Password should not contain sequential characters").refine(e=>!/(?:qwer|wert|erty|rtyu|tyui|yuio|uiop|asdf|sdfg|dfgh|fghj|ghjk|hjkl|zxcv|xcvb|cvbn|vbnm)/i.test(e),"Password should not contain keyboard patterns"),fe=t.object({id:t.string().min(1),name:t.string().min(1,"Role name is required"),description:t.string().optional(),access:t.array(t.string()),createdAt:t.string().datetime("Invalid creation timestamp"),updatedAt:t.string().datetime("Invalid update timestamp")}),ye=t.object({id:t.string().min(1),name:t.string().min(1,"Team member name is required"),identity:t.string().email("Invalid email address"),type:t.string().min(1,"Team member type is required"),profileId:t.string().min(1,"Profile ID is required"),roleId:t.string().min(1,"Role ID is required"),resetPassword:t.boolean(),isActive:t.boolean(),isArchived:t.boolean(),role:fe.optional(),createdAt:t.string().datetime("Invalid creation timestamp"),updatedAt:t.string().datetime("Invalid update timestamp")}),ge={role:fe,teamMember:ye,teamMemberQueryParams:t.object({id:t.string().min(1).optional(),name:t.string().min(1).optional(),identity:t.string().email("Invalid email address").optional(),type:t.string().min(1).optional(),profileId:t.string().min(1).optional(),roleId:t.string().min(1).optional(),resetPassword:t.number().optional(),isActive:t.number().optional(),isArchived:t.number().optional(),createdAt:t.string().datetime("Invalid creation timestamp").optional(),updatedAt:t.string().datetime("Invalid update timestamp").optional(),eager:t.string().optional()}),createTeamMemberRequest:t.object({name:t.string().min(1,"Team member name is required"),identity:t.string().email("Valid email address is required"),password:pe.optional(),roleId:t.string().optional(),resetPassword:t.boolean().optional()}),updateTeamMemberRequest:t.object({name:t.string().min(1,"Team member name cannot be empty").optional(),roleId:t.string().min(1,"Role ID cannot be empty").optional(),password:pe.optional(),resetPassword:t.boolean().optional(),isActive:t.boolean().optional()}),resetPasswordRequest:t.object({newPassword:pe.optional(),sendNotification:t.boolean().optional()}),createTeamMemberResponse:t.object({id:t.string(),name:t.string(),identity:t.string(),type:t.string(),profileId:t.string(),resetPassword:t.boolean(),roleId:t.string(),isActive:t.boolean(),isArchived:t.boolean(),createdAt:t.string().datetime(),updatedAt:t.string().datetime()}),password:pe},Ne=E().router({getTeamMembers:{method:"GET",path:"/login",query:ge.teamMemberQueryParams,responses:{200:t.array(ge.teamMember),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()})},summary:"List all team members",description:"Retrieve a list of all team member accounts in the system"},getTeamMember:{method:"GET",path:"/login/:id",pathParams:t.object({id:t.string()}),query:ge.teamMemberQueryParams,responses:{200:ge.teamMember,401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Get team member details",description:"Retrieve detailed information about a specific team member"},createTeamMember:{method:"POST",path:"/login",body:ge.createTeamMemberRequest,responses:{201:ge.createTeamMemberResponse,400:t.object({message:t.string().optional(),errors:t.array(t.string()).optional()}),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),409:t.object({message:t.string().optional()})},summary:"Create new team member",description:"Create a new team member account with specified role and permissions"},updateTeamMember:{method:"PATCH",path:"/login/:id",pathParams:t.object({id:t.string()}),body:ge.updateTeamMemberRequest,responses:{200:ge.teamMember,400:t.object({message:t.string().optional(),errors:t.array(t.string()).optional()}),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Update team member",description:"Update team member information, role, status, or force password reset"},archiveTeamMember:{method:"POST",path:"/login/:id/archive",pathParams:t.object({id:t.string()}),body:t.object({}),responses:{200:ge.teamMember,401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Archive team member",description:"Archive (soft delete) a team member account"},unArchiveTeamMember:{method:"POST",path:"/login/:id/unarchive",pathParams:t.object({id:t.string()}),body:t.object({}),responses:{200:ge.teamMember,401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Unarchive team member",description:"Unarchive a previously archived team member account"},resetPassword:{method:"POST",path:"/login/:id/reset-password",pathParams:t.object({id:t.string()}),body:ge.resetPasswordRequest,responses:{200:t.object({success:t.boolean()}),400:t.object({message:t.string().optional()}),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Reset team member password",description:"Reset a team member's password and optionally send notification"},getRoles:{method:"GET",path:"/role",responses:{200:t.array(ge.role),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()})},summary:"List all roles",description:"Retrieve a list of all available roles in the system"},getRole:{method:"GET",path:"/role/:id",pathParams:t.object({id:t.string()}),responses:{200:ge.role,401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Get role details",description:"Retrieve detailed information about a specific role"}}),be=e.object({id:e.string(),name:e.string(),identity:e.string(),type:e.string(),profileId:e.string(),roleId:e.string(),resetPassword:e.boolean(),isActive:e.boolean(),isArchived:e.boolean(),role:ae.optional(),createdAt:e.string(),updatedAt:e.string(),version:e.string().optional().default("1.0")});class we{id;name;identity;type;profileId;roleId;resetPassword;isActive;isArchived;role;createdAt;updatedAt;permissions;constructor(e){if(this.id=e.id,this.name=e.name,this.identity=e.identity,this.type=e.type,this.profileId=e.profileId,this.roleId=e.roleId,this.resetPassword=e.resetPassword,this.isActive=e.isActive,this.isArchived=e.isArchived,this.createdAt=new Date(e.createdAt),this.updatedAt=new Date(e.updatedAt),this.permissions=new Set(e.role?.access??[]),e.role)try{this.role=new se(e.role)}catch(e){}}static from(e){try{return e?.id&&e?.name&&e?.identity&&e?.roleId?new we(e):void console.error("Missing required TeamMember fields:",e)}catch(e){return void console.error("Error creating TeamMember:",e)}}static fromJson(e){try{const t=JSON.parse(e);return we.from(t)}catch(e){return void console.error("Error parsing TeamMember JSON:",e)}}static createMany(e){return e.map(e=>we.from(e)).filter(Boolean)}can(e){return this.permissions.has(e)}canAny(e){return e.some(e=>this.permissions.has(e))}canAll(e){return e.every(e=>this.permissions.has(e))}isAccountActive(){return this.isActive}isAccountArchived(){return this.isArchived}needsPasswordReset(){return this.resetPassword}getAccountStatus(){return this.isArchived?{status:"archived",label:"Archived",color:"default",description:"Account has been archived and is no longer accessible"}:this.isActive?this.resetPassword?{status:"password_reset_required",label:"Password Reset Required",color:"warning",description:"User must reset their password on next login"}:{status:"active",label:"Active",color:"success",description:"Account is active and ready to use"}:{status:"inactive",label:"Inactive",color:"error",description:"Account has been deactivated by an administrator"}}getRoleName(){return this.role?.name??""}getCreatedDate(){return this.createdAt.toLocaleDateString()}getLastUpdateInfo(){const e=(new Date).getTime()-this.updatedAt.getTime(),t=Math.floor(e/864e5);return 0===t?"Today":1===t?"Yesterday":t<7?`${t} days ago`:t<30?`${Math.floor(t/7)} weeks ago`:this.updatedAt.toLocaleDateString()}toJSON(){return{id:this.id,name:this.name,identity:this.identity,type:this.type,profileId:this.profileId,roleId:this.roleId,resetPassword:this.resetPassword,isActive:this.isActive,isArchived:this.isArchived,role:this.role?.toJSON(),createdAt:this.createdAt.toISOString(),updatedAt:this.updatedAt.toISOString(),version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=be.safeParse(t);if(!r.success)return void console.error("Invalid TeamMemberJSON:",r.error.flatten());const n=r.data,o=n.role?{id:n.role.id,name:n.role.name,description:n.role.description,access:n.role.access,createdAt:n.role.createdAt,updatedAt:n.role.updatedAt}:void 0;return we.from({id:n.id,name:n.name,identity:n.identity,type:n.type,profileId:n.profileId,roleId:n.roleId,resetPassword:n.resetPassword,isActive:n.isActive,isArchived:n.isArchived,role:o,createdAt:n.createdAt,updatedAt:n.updatedAt})}catch(e){return void console.error("Error parsing TeamMemberJSON:",e)}}static isTeamMemberJSON(e){return be.safeParse(e).success}static fromJSONArray(e){try{const t="string"==typeof e?JSON.parse(e):e;return Array.isArray(t)?t.map(e=>we.fromJSON(e)).filter(e=>void 0!==e):(console.warn("fromJSONArray expects an array"),[])}catch(e){return console.error("Error parsing TeamMember JSON array:",e),[]}}static toJSONArray(e){return e.map(e=>e.toJSON())}}class ve extends L{constructor(e){super("admin",Ne,e)}async createTeamMember(e){const t=await this.client.createTeamMember({body:e});return this.handleResponse(t,201)}async updateTeamMember(e,t){const r=await this.client.updateTeamMember({params:{id:e},body:t}),n=this.handleResponse(r,200),o=we.from(n);if(!o)throw new Error("Invalid team member data received from server");return o}async archiveTeamMember(e){const t=await this.client.archiveTeamMember({params:{id:e}}),r=this.handleResponse(t,200),n=we.from(r);if(!n)throw new Error("Invalid team member data received from server");return n}async unArchiveTeamMember(e){const t=await this.client.unArchiveTeamMember({params:{id:e}}),r=this.handleResponse(t,200),n=we.from(r);if(!n)throw new Error("Invalid team member data received from server");return n}async resetTeamMemberPassword(e,t={}){const r=await this.client.resetPassword({params:{id:e},body:t});return this.handleResponse(r,200)}async getAllTeamMembers(e={eager:"role"}){const t=await this.client.getTeamMembers({query:e}),r=this.handleResponse(t,200);return we.createMany(r)}async getTeamMember(e,t={eager:"role"}){const r=await this.client.getTeamMember({params:{id:e},query:t}),n=this.handleResponse(r,200),o=we.from(n);if(!o)throw new Error("Invalid team member data received from server");return o}async getAllRoles(){const e=await this.client.getRoles();return this.handleResponse(e,200).map(e=>{const t=se.from(e);if(!t)throw new Error("Invalid role data received from server");return t})}async getRole(e){const t=await this.client.getRole({params:{id:e}}),r=this.handleResponse(t,200),n=se.from(r);if(!n)throw new Error("Invalid role data received from server");return n}}class Se extends L{constructor(e){super("auth",le,e)}async logIn(e,t){const r={type:"password",identity:e,password:t},n=await this.client.logIn({body:r});if(400===n.status)throw new w({message:"Invalid email or password",statusCode:400});if(201===n.status){const e=n.body.token,t=new he({token:e}),r=await t.getIdentity(),o=oe.from(r);if(!o)throw new w({message:"Failed to construct login credentials",statusCode:502});const a=n.body.profile,s=te.from(a);if(!s)throw new w({message:"Failed to construct user profile",statusCode:502});let i;if(o.access.includes(v.Role.ViewRole))try{const t=new ve({token:e});i=await t.getRole(o.roleId)}catch(e){console.warn("Failed to fetch role details:",e)}const c=de.from({logIn:o,companyProfile:s,role:i,token:e});if(!c)throw new w({message:"Failed to construct user session",statusCode:502});return c}throw new w({message:"An error occurred while trying to log in",statusCode:502})}async updatePassword(e,t){const r=await this.client.resetPassword({body:{currentPassword:e,newPassword:t}});if(200===r.status)return!0;if(400===r.status)throw new w({message:"Invalid current password",statusCode:400});throw new w({message:"An error occurred while trying to update password",statusCode:502})}async getAccessList(){const e=await this.client.access();if(200===e.status)return e.body;throw new Error(`Failed to get access list. Status: ${e.status}`)}}var Oe;!function(e){e.Bank="Bank",e.Mobile="Mobile"}(Oe||(Oe={}));const Ae=t.nativeEnum(Oe),Ce=t.object({displayName:t.string().min(1,"Display name is required"),accountNo:t.string().min(1,"Account number is required"),channel:t.string().min(1,"Channel is required"),type:Ae}),Ie={beneficiaryDTO:t.object({id:t.string().min(1,"Beneficiary id is required"),profileId:t.string(),createdAt:t.string().datetime(),updatedAt:t.string().datetime()}).merge(Ce),beneficiaryInputDTO:Ce,beneficiaryType:Ae},_e=t.object({type:t.literal("Mobile"),name:t.string().min(1),phoneNumber:t.string().regex(/^\+[1-9]\d{6,14}$/),mnoId:t.string().min(1),version:t.string().optional().default("1.0")}),Pe=t.object({type:t.literal("Bank"),accName:t.string().min(1),swiftCode:t.string().length(8),countryCode:t.string().length(2),accNo:t.string().min(1),version:t.string().optional().default("1.0")}),Ee=t.discriminatedUnion("type",[_e,Pe]);class De extends Error{context;constructor(e,t={}){super(e),this.context=t,this.name="BeneficiaryInfoError"}}class Re{type;countryCode;constructor(e,t){this.type=e,this.countryCode=t}toJSONString(){return JSON.stringify(this.toJSON())}get isMobile(){return this.type===Oe.Mobile}get isBank(){return this.type===Oe.Bank}get displayName(){return this.accountName}}class Te extends Re{name;phoneNumber;mnoId;constructor(e,t,r){if(super(Oe.Mobile,t.countryCode),this.name=e,this.phoneNumber=t,!e?.trim())throw new De("Name is required and cannot be empty",{operation:"constructor",countryCode:t.countryCode,phoneNumber:t.e164Format});if(!t?.validate())throw new De("Invalid phone number",{operation:"constructor",countryCode:t.countryCode,phoneNumber:t.e164Format});if(n.requiresExplicitMNO(t.countryCode)){if(!r)throw new De(`MNO must be explicitly provided for phone numbers in ${t.countryCode} due to Mobile Number Portability`,{phoneNumber:t.e164Format,countryCode:t.countryCode,operation:"constructor"});if(!n.isValidMNOForCountry(r,t.countryCode)){const e=n.getCountryMNOs(t.countryCode).map(e=>e.id);throw new De(`Invalid MNO ${r} for country ${t.countryCode}. Valid MNOs: ${e.join(", ")}`,{phoneNumber:t.e164Format,countryCode:t.countryCode,mnoId:r,operation:"constructor"})}this.mnoId=r}else{const e=n.getMNOByPhoneNumber(t.e164Format,t.countryCode);if(!e?.id)throw new De(`Failed to determine MNO for phone number ${t.e164Format}`,{phoneNumber:t.e164Format,countryCode:t.countryCode,operation:"constructor"});this.mnoId=e.id}}static from(e){try{return new Te(e.name,e.phoneNumber,e.mnoId)}catch(e){return void console.error("Failed to create MobileBeneficiaryInfo:",e)}}static fromBeneficiaryDTO(e){if("Mobile"!==e.type)return;let t=e.accountNo;t.startsWith("+")||(t=`+${t}`);const r=o.from(t);if(!r)return void console.error(`Failed to parse phone number ${t}`);const a=r.countryCode;try{let t;if(n.requiresExplicitMNO(a)){if(e.channel&&"string"==typeof e.channel){if(!n.isValidMNOForCountry(e.channel,a))return void console.warn(`Invalid MNO ${e.channel} for country ${a}`);t=e.channel}}else if(t=n.getMNOByPhoneNumber(r.e164Format,a)?.id,!t)return void console.warn(`Failed to auto-detect MNO for phone number ${r.e164Format}`);return Te.from({name:e.displayName,phoneNumber:r,mnoId:t})}catch(e){return void console.error(`Failed to create MobileBeneficiaryInfo: ${e}`)}}static fromPayoutDTO(e){try{if(!a.isISO2CountryCode(e.countryCode))return void console.error(`Invalid country code: ${e.countryCode}`);const t=o.from(e.msisdn,{defaultCountry:e.countryCode});if(!t)return void console.error(`Failed to parse phone number: ${e.msisdn}`);let r;if(n.requiresExplicitMNO(t.countryCode)){if(e.channel&&"string"==typeof e.channel){if(!n.isValidMNOForCountry(e.channel,t.countryCode))return void console.warn(`Invalid MNO ${e.channel} for country ${t.countryCode} in PayoutDTO`);r=e.channel}}else if(r=n.getMNOByPhoneNumber(t.e164Format,t.countryCode)?.id,!r)return void console.warn(`Failed to auto-detect MNO for phone number ${t.e164Format}`);return Te.from({name:e.payeeName,phoneNumber:t,mnoId:r})}catch(t){return void console.error("Failed to create MobileBeneficiaryInfo from PayoutDTO: ",e,t)}}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;if("string"!=typeof t.name||!t.name.trim())return!1;let r;if("string"==typeof t.phoneNumber)r=o.from(t.phoneNumber);else if("object"==typeof t.phoneNumber){const e=t.phoneNumber;o.is(e)&&(r=o.from(e.e164Format))}if(!r)return!1;const a=t.mnoId;if("string"!=typeof a)return!1;if(!n.isValidMNOForCountry(a,r.countryCode))return!1;if(n.requiresExplicitMNO(r.countryCode))return!0;{const e=n.getMNOByPhoneNumber(r.e164Format,r.countryCode);return e?.id===a}}validate(){try{return!!this.name?.trim()&&(!!this.phoneNumber?.validate()&&(!!n.isValidMNOForCountry(this.mnoId,this.countryCode)&&(!!n.requiresExplicitMNO(this.countryCode)||n.validateMNOForPhoneNumber(this.phoneNumber.e164Format,this.mnoId,this.countryCode))))}catch{return!1}}getValidationDetails(){const e=[];if(this.name?.trim()||e.push("Name is required"),this.phoneNumber?.validate()||e.push("Phone number is invalid"),n.isValidMNOForCountry(this.mnoId,this.countryCode)||e.push(`Invalid MNO ${this.mnoId} for country ${this.countryCode}`),!n.requiresExplicitMNO(this.countryCode)){const t=n.getMNOByPhoneNumber(this.phoneNumber.e164Format,this.countryCode);t?.id!==this.mnoId&&e.push("MNO doesn't match auto-detected value from phone number prefix")}return{isValid:0===e.length,errors:e,warnings:[]}}get accountName(){return this.name}get accountNumber(){return this.phoneNumber.getWithFormat(s.E164)}get accountNameLabel(){return"Name"}get accountNumberLabel(){return"Phone Number"}get channelLabel(){return"Channel"}get channelId(){return this.mnoId}get channelName(){const e=n.getMNOById(this.mnoId,this.countryCode);return e?.mobileMoneyService??e?.displayName??this.mnoId}toJSON(){return{type:"Mobile",name:this.name,phoneNumber:this.phoneNumber.e164Format,mnoId:this.mnoId,version:"1.0"}}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=_e.safeParse(t);if(!r.success)return void console.error("Invalid MobileBeneficiaryInfoJSON:",r.error.flatten());const a=r.data,s=o.from(a.phoneNumber);if(!s?.validate())return void console.warn("Invalid phone number in JSON");if(!n.isValidMNOForCountry(a.mnoId,s.countryCode))return void console.warn("Invalid MNO for country");if(!n.requiresExplicitMNO(s.countryCode)){const e=n.getMNOByPhoneNumber(s.e164Format,s.countryCode);if(e?.id!==a.mnoId)return void console.warn("MNO mismatch with auto-detected value")}return Te.from({name:a.name,phoneNumber:s,mnoId:a.mnoId})}catch(e){return void console.error("Error parsing MobileBeneficiaryInfoJSON:",e)}}static fromJSONString(e){return Te.fromJSON(e)}static isMobileBeneficiaryInfoJSON(e){return _e.safeParse(e).success}}class Je extends Re{accName;bank;accNo;constructor(e,t,r){if(super(Oe.Bank,t.countryCode),this.accName=e,this.bank=t,this.accNo=r,!i.validateAccountName(e))throw new De("Invalid account name",{operation:"constructor",countryCode:t.countryCode});if(!i.validateAccountNumber(r,t.countryCode))throw new De("Invalid account number",{operation:"constructor",countryCode:t.countryCode})}static from(e){try{return new Je(e.accName,e.bank,e.accNo)}catch(e){return void console.error("Failed to create BankBeneficiaryInfo:",e)}}static fromBeneficiaryDTO(e){if("Bank"!==e.type)return;const t=e.channel;if(!t||"string"!=typeof t)return void console.error("SWIFT code is required for bank beneficiaries");const r=i.getCountryFromSwiftCode(t);if(r)if(i.validateSwiftCode(t,r))try{const n=c.from(t,r);if(!n)throw new Error(`Bank with SWIFT code ${t} not found`);return Je.from({accName:e.displayName,bank:n,accNo:e.accountNo})}catch(e){return void console.error(`Failed to create BankBeneficiaryInfo: ${e}`)}else console.error(`Invalid SWIFT code ${t} for country ${r}`);else console.error(`Could not identify country from SWIFT code: ${t}`)}static fromPayoutDTO(e){try{if(!a.isISO2CountryCode(e.countryCode))return void console.error(`Invalid country code: ${e.countryCode}`);const t=e.msisdn.trim().split(":");if(2!==t.length)return void console.error("Invalid PayoutDTO format for bank - expected 'swiftcode:accountno'");const[r,n]=t;if(!i.validateSwiftCode(r,e.countryCode))return void console.error(`Invalid SWIFT code ${r} for country ${e.countryCode}`);const o=c.from(r,e.countryCode);return o?Je.from({accName:e.payeeName,bank:o,accNo:n}):void console.error(`Bank with SWIFT code ${r} not found`)}catch(t){return void console.error("Failed to create BankBeneficiaryInfo from PayoutDTO: ",e,t)}}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;if("string"!=typeof t.accName)return!1;if("string"!=typeof t.accNo)return!1;if(!t.bank||!c.is(t.bank))return!1;const r=t.accName,n=t.accNo,o=t.bank;return i.validateAccountName(r)&&i.validateAccountNumber(n,o.countryCode)}validate(){try{return i.validateAccountName(this.accName)&&i.validateAccountNumber(this.accNo,this.bank.countryCode)&&c.is(this.bank)}catch{return!1}}get accountName(){return this.accName}get accountNumber(){return this.accNo}get accountNameLabel(){return"Acc. Name"}get accountNumberLabel(){return"Bank Acc. No."}get channelLabel(){return"Bank"}get channelId(){return this.bank.swiftCode}get channelName(){return this.bank.shortName}toJSON(){return{type:"Bank",accName:this.accName,swiftCode:this.bank.swiftCode,countryCode:this.bank.countryCode,accNo:this.accNo,version:"1.0"}}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=Pe.safeParse(t);if(!r.success)return void console.error("Invalid BankBeneficiaryInfoJSON:",r.error.flatten());const n=r.data;if(!a.isISO2CountryCode(n.countryCode)||!i.validateSwiftCode(n.swiftCode,n.countryCode))return;const o=c.from(n.swiftCode,n.countryCode);if(!o)return;if(!i.validateAccountName(n.accName)||!i.validateAccountNumber(n.accNo,n.countryCode))return;return Je.from({accName:n.accName,bank:o,accNo:n.accNo})}catch(e){return void console.error("Error parsing BankBeneficiaryInfoJSON:",e)}}static fromJSONString(e){return Je.fromJSON(e)}static isBankBeneficiaryInfoJSON(e){return Pe.safeParse(e).success}}const je=t.object({data:Ie.beneficiaryDTO,version:t.string().optional().default("1.0")});class Be{data;constructor(e){this.data=Ie.beneficiaryDTO.parse(e)}get id(){return this.data.id}get profileId(){return this.data.profileId}get displayName(){return this.data.displayName}get type(){return this.data.type}get createdAt(){return new Date(this.data.createdAt)}get updatedAt(){return new Date(this.data.updatedAt)}get info(){return this.data.type===Oe.Mobile?Te.fromBeneficiaryDTO(this.data):this.data.type===Oe.Bank?Je.fromBeneficiaryDTO(this.data):void 0}get accNo(){const e=this.info;return e?e.accountNumber:this.data.accountNo}get accName(){return this.data.displayName}get accNoLabel(){const e=this.info;return e instanceof Te?"Phone Number":e instanceof Je?"Bank Account Number":"Account Number"}get channelLabel(){const e=this.info;return e instanceof Te?"Channel":e instanceof Je?"Bank":"Channel"}get accNameLabel(){const e=this.info;return e instanceof Te?"Full Name":e instanceof Je?"Bank Account Name":"Display Name"}get channelName(){const e=this.info;return e instanceof Te||e instanceof Je?e.channelName:""}static from(e){try{return new Be(e)}catch(e){return void console.error("Failed to create Beneficiary:",e)}}static create(e){return new Be(e)}static createMany(e){return e.map(e=>new Be(e))}static createSafe(e){try{return new Be(e)}catch{return null}}static canConstruct(e){if(!e||"object"!=typeof e)return!1;const t=Ie.beneficiaryDTO.safeParse(e);if(!t.success)return!1;return null!==Be.createSafe(t.data)}static is(e){return!(!e||"object"!=typeof e)&&("data"in e&&Be.canConstruct(e.data))}toJSON(){return{data:{...this.data},version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=je.safeParse(t);if(!r.success)return void console.error("Invalid BeneficiaryJSON:",r.error.flatten());const n=r.data;return Be.from(n.data)}catch(e){return void console.error("Error parsing BeneficiaryJSON:",e)}}static fromJSONString(e){return Be.fromJSON(e)}static isBeneficiaryJSON(e){return je.safeParse(e).success}}class Me{canHandle(e){return"Mobile"===e.type&&Te.is(e)}createInput(e){if(Te.is(e))return{type:Oe.Mobile,displayName:e.accountName,accountNo:e.accountNumber,channel:e.channelId};throw new Error("Expected Mobile Beneficiary Info")}}class Fe{canHandle(e){return"Bank"===e.type&&Je.is(e)}createInput(e){if(Je.is(e))return{type:Oe.Bank,displayName:e.accountName,accountNo:e.accountNumber,channel:e.channelId};throw new Error("Expected Bank Beneficiary Info")}}class xe{handlers=[new Me,new Fe];resolve(e){const t=this.handlers.find(t=>t.canHandle(e));if(!t)throw new Error("Please check your data and try again");return t.createInput(e)}}const ke=E().router({createBeneficiary:{method:"POST",path:"/",body:Ie.beneficiaryInputDTO,responses:{201:Ie.beneficiaryDTO}},editBeneficiary:{method:"PATCH",path:"/:id",body:Ie.beneficiaryInputDTO,responses:{200:Ie.beneficiaryDTO}},getBeneficiaries:{method:"GET",path:"/",query:t.object({orderByDesc:t.string()}),responses:{200:t.array(Ie.beneficiaryDTO)}},getByID:{method:"GET",path:"/:id",responses:{200:Ie.beneficiaryDTO}},deleteBeneficiary:{method:"DELETE",path:"/:id",body:t.object({}),responses:{200:t.object({})}}});class $e extends L{constructor(e){super("contact",ke,e)}async create(e){const t=(new xe).resolve(e),r=await this.client.createBeneficiary({body:t}),n=this.handleResponse(r,201);return Be.create(n)}async edit(e,t){const r=(new xe).resolve(t),n=await this.client.editBeneficiary({params:{id:e},body:r}),o=this.handleResponse(n,200);return Be.create(o)}async remove(e){const t=await this.client.deleteBeneficiary({params:{id:e}});this.handleResponse(t,200)}async getAll(){const e=await this.client.getBeneficiaries({query:{orderByDesc:"createdAt"}}),t=this.handleResponse(e,200);return Be.createMany(t)}async getByID(e){const t=await this.client.getByID({params:{id:e}}),r=this.handleResponse(t,200);return Be.create(r)}}var Ue,Le,qe;!function(e){e.MOBILE="Mobile",e.BANK="Bank"}(Ue||(Ue={})),function(e){e.CREATED="CREATED",e.PENDING="PENDING",e.PAID="PAID",e.FAILED="FAILED",e.REJECTED="REJECTED",e.REVERSED="REVERSED",e.QUEUED="QUEUED"}(Le||(Le={})),function(e){e.PENDING="Pending",e.APPROVED="Approved",e.REJECTED="Rejected"}(qe||(qe={}));const Ve=t.object({id:t.string(),name:t.string(),identity:t.string()}),We=t.nativeEnum(Le),Ge=t.nativeEnum(qe),He=t.object({channel:t.string(),msisdn:t.string(),amount:t.coerce.number(),description:t.string(),notes:t.string().nullish()}),Qe=He.extend({payeeName:t.string()}),Ke=He.extend({id:t.string(),profileId:t.string(),payeeName:t.string(),countryCode:t.string().default("TZ").refine(e=>a.isISO2CountryCode(e),{message:"Provided country code is not a valid ISO2 code."}),currencyCode:t.string().default("TZS").refine(e=>u.isCurrencyCode(e),{message:"Provided currency code is not a valid currency code."}),channel:t.string(),status:We,statusMessage:t.string(),partnerReference:t.string().nullish(),createdAt:t.coerce.date(),updatedAt:t.coerce.date(),actionedAt:t.coerce.date().nullish(),approvalStatus:Ge.nullish(),createdBy:Ve.nullish(),actionedBy:Ve.nullish()}),Ye=t.object({page:t.number().int().positive().default(1),limit:t.number().int().positive().max(100).default(10),sortBy:t.string().default("createdAt"),sortOrder:t.enum(["asc","desc"]).default("desc"),startDate:t.string().datetime().nullish(),endDate:t.string().datetime().nullish(),payeeName:t.string().nullish(),msisdn:t.string().nullish(),profileId:t.string().nullish(),id:t.string().nullish(),partnerReference:t.string().nullish(),channel:t.string().nullish(),currencyCode:t.string().nullish(),status:We.nullish(),approvalStatus:Ge.nullish(),minAmount:t.number().min(0).nullish(),maxAmount:t.number().min(0).nullish(),search:t.string().nullish()}),Ze={PayoutDTO:Ke,PayoutInputDTO:Qe,PayoutStatus:We,PayoutApprovalStatus:Ge,PayoutAuthorizer:Ve,PayoutFilters:Ye,PayoutURLQueryParams:t.object({page:t.string().transform(e=>parseInt(e)||1).optional(),limit:t.string().transform(e=>parseInt(e)||20).optional(),sortBy:t.string().default("createdAt"),sortOrder:t.enum(["asc","desc"]).default("desc"),startDate:t.string().optional(),endDate:t.string().optional(),payeeName:t.string().optional(),msisdn:t.string().optional(),profileId:t.string().optional(),id:t.string().optional(),partnerReference:t.string().optional(),channel:t.string().optional(),status:t.string().refine(e=>Object.values(Le).includes(e)).transform(e=>e).optional(),approvalStatus:t.string().refine(e=>Object.values(qe).includes(e)).transform(e=>e).optional(),minAmount:t.string().transform(e=>parseFloat(e)).optional(),maxAmount:t.string().transform(e=>parseFloat(e)).optional(),search:t.string().optional()})},ze=e.object({id:e.string(),profileId:e.string(),payeeName:e.string(),channel:e.string(),msisdn:e.string(),amount:e.number(),currencyCode:e.string(),countryCode:e.string(),description:e.string(),notes:e.string().nullish(),status:Ze.PayoutStatus,statusMessage:e.string(),partnerReference:e.string().nullish(),createdAt:e.string(),updatedAt:e.string(),actionedAt:e.string().nullish(),approvalStatus:Ze.PayoutApprovalStatus.nullish(),createdBy:Ze.PayoutAuthorizer.nullish(),actionedBy:Ze.PayoutAuthorizer.nullish(),version:e.string().optional().default("1.0")});class Xe{data;constructor(e){this.data=Ze.PayoutDTO.parse(e)}get id(){return this.data.id}get profileId(){return this.data.profileId}get payeeName(){return this.data.payeeName}get channel(){return this.data.channel}get msisdn(){return this.data.msisdn}get amount(){return d.from(this.data.amount,this.data.currencyCode)}get description(){return this.data.description}get notes(){return this.data.notes}get status(){return"Rejected"===this.data.approvalStatus?Le.REJECTED:"Approved"===this.data.approvalStatus?"FAILED"===this.data.status?Le.FAILED:Le.PAID:"Pending"===this.data.approvalStatus?Le.PENDING:this.data.status}get statusMessage(){return this.data.statusMessage}get partnerReference(){return this.data.partnerReference}get createdAt(){return this.data.createdAt}get updatedAt(){return this.data.updatedAt}get actionedAt(){return this.data.actionedAt}get approvalStatus(){return this.data.approvalStatus}get createdBy(){return this.data.createdBy}get actionedBy(){return this.data.actionedBy}get beneficiaryInfo(){return"TZ-BANK-B2C"===this.channel?Je.fromPayoutDTO(this.data):Te.fromPayoutDTO(this.data)}get contactInfo(){return this.beneficiaryInfo}static create(e){return new Xe(e)}static createMany(e){return e.map(e=>new Xe(e))}static createSafe(e){try{return new Xe(e)}catch{return null}}static canConstruct(e){if(!e||"object"!=typeof e)return!1;const t=Ze.PayoutDTO.safeParse(e);if(!t.success)return!1;return null!==Xe.createSafe(t.data)}static is(e){return!(!e||"object"!=typeof e)&&("data"in e&&Xe.canConstruct(e.data))}toJSON(){return{id:this.data.id,profileId:this.data.profileId,payeeName:this.data.payeeName,channel:this.data.channel,msisdn:this.data.msisdn,amount:this.data.amount,currencyCode:this.data.currencyCode,countryCode:this.data.countryCode,description:this.data.description,notes:this.data.notes,status:this.data.status,statusMessage:this.data.statusMessage,partnerReference:this.data.partnerReference,createdAt:this.data.createdAt.toISOString(),updatedAt:this.data.updatedAt.toISOString(),actionedAt:this.data.actionedAt?.toISOString()??null,approvalStatus:this.data.approvalStatus,createdBy:this.data.createdBy,actionedBy:this.data.actionedBy,version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ze.safeParse(t);if(!r.success)return void console.error("Invalid PayoutJSON:",r.error.flatten());const n=r.data,o=n.currencyCode;if(!u.isCurrencyCode(o))return void console.error("Invalid currency code:",o);const s=n.countryCode;if(!a.isISO2CountryCode(s))return void console.error("Invalid country code:",s);const i={id:n.id,profileId:n.profileId,payeeName:n.payeeName,channel:n.channel,msisdn:n.msisdn,amount:n.amount,currencyCode:o,countryCode:s,description:n.description,notes:n.notes,status:n.status,statusMessage:n.statusMessage,partnerReference:n.partnerReference,createdAt:new Date(n.createdAt),updatedAt:new Date(n.updatedAt),actionedAt:n.actionedAt?new Date(n.actionedAt):null,approvalStatus:n.approvalStatus,createdBy:n.createdBy,actionedBy:n.actionedBy};return Xe.create(i)}catch(e){return void console.error("Error parsing PayoutJSON:",e)}}static isPayoutJSON(e){return ze.safeParse(e).success}static fromJSONArray(e){try{const t="string"==typeof e?JSON.parse(e):e;return Array.isArray(t)?t.map(e=>Xe.fromJSON(e)).filter(e=>void 0!==e):(console.warn("fromJSONArray expects an array"),[])}catch(e){return console.error("Error parsing Payout JSON array:",e),[]}}static toJSONArray(e){return e.map(e=>e.toJSON())}}const et="MOBILE TRANSFER ",tt="PAYOUT",rt="PAYOUT TO BANK",nt="TO_BANK",ot="PAYOUT TO MOBILE",at="TO_MOMO",st=e.object({text:e.string(),version:e.string().optional().default("2.0")});class it{text;constructor(e){this.text=e}get mediumText(){return this.text.length>50?this.text.substring(0,47)+"...":this.text}get shortText(){return this.text.length>35?this.text.substring(0,32)+"...":this.text}static generateDefaultPayoutNarration(e){return Te.is(e)?it.generateMobilePayoutNarrationV2(e):Je.is(e)?it.generateBankPayoutNarrationV2(e):""}static generateMobilePayoutNarrationV2(e){const{phoneNumber:t,name:r}=e;return`${tt.toUpperCase()} ${t.e164Format.trim()} ${r.trim()}`.toUpperCase()}static generateBankPayoutNarrationV2(e){const{bank:t,accName:r,accNo:n}=e;return`${tt.toUpperCase()} ${t.swiftCode.trim()} ${n.trim()} ${r.trim()}`.toUpperCase()}getBeneficiaryDetails=()=>{const e=this.getBankBeneficiaryDetails(),t=this.getMobileBeneficiaryDetails();return e||(t||void 0)};getBankBeneficiaryDetails=()=>{let e=this.text.trim();e.startsWith(et)&&(e=e.substring(16));try{if(e.startsWith(tt)){const t=e.replace(tt,"").trim().split(" ");if(t.length>=3){const e=t[0],r=t[1],n=t.slice(2).map(ct).join(" ");if(e.length>=8&&e.length<=11&&/^[A-Z0-9]+$/i.test(e)){const t=i.getCountryFromSwiftCode(e);if(t){if(i.validateSwiftCode(e,t)){const o=c.from(e,t);if(r&&n&&o)return new Je(n,o,r)}}}}}if(e.startsWith(nt)){const t=e.split("=>")[1].trim(),r=JSON.parse(t),n=r.account_number,o=r.account_name,a=r.swift_code,s=i.getCountryFromSwiftCode(a);if(!s)return;if(!i.validateSwiftCode(a,s))return;const u=c.from(a,s);if(n&&o&&u)return new Je(o,u,n)}if(e.startsWith(rt)){const t=e.replace(rt,"").trim().split(" "),r=l.getInstance().searchBanks("TZ",t[0]),n=r.length>0?r[0]:void 0,o=t[1],a=t.slice(2).map(ct).join(" ");if(a&&o&&n)return new Je(a,n,o)}}catch(e){return}};getMobileBeneficiaryDetails=()=>{let e=this.text.trim();e.startsWith(et)&&(e=e.substring(16));try{if(e.startsWith(tt)){const t=e.replace(tt,"").trim().split(" ");if(t.length>=2){const e=t[0],r=t.slice(1).map(ct).join(" ");if(e.startsWith("+")){const t=o.from(e);if(t&&r)return new Te(r,t)}}}if(e.startsWith(at)){const t=e.split("=>")[1].trim(),r=JSON.parse(t),n=m.from(r.phone_number);let o=r.username;void 0===o&&(o="");let a=o.split(" ");if(a=a.filter(e=>e.trim().length>0),o=a.map(ct).join(" "),n&&o)return new Te(o,n)}if(e.startsWith(ot)){const t=e.replace(ot,"").trim().split(" "),r=m.from(t[0]),n=t.slice(1).map(ct).join(" ");if(r&&n)return new Te(n,r)}}catch(e){return}};static is(e){if(!e||"object"!=typeof e)return!1;const t=e;try{return"string"==typeof t.text&&"function"==typeof t.getBeneficiaryDetails&&"function"==typeof t.toJson}catch(e){return!1}}toJSON(){return{text:this.text,version:"2.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=st.safeParse(t);if(!r.success)return void console.error("Invalid NarrationJSON:",r.error.flatten());const n=r.data;return new it(n.text)}catch(e){return void console.error("Error parsing NarrationJSON:",e)}}static isNarrationJSON(e){return st.safeParse(e).success}toJson(){return this.toJSON()}static fromJson(e){return it.fromJSON(e)}}function ct(e){if(0===e.length)return e;return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}const ut={SUPPORTED_COUNTRY_CODES:["TZ","KE"],ERROR_MESSAGES:{INVALID_PHONE_NUMBER:"Invalid phone number",INELIGIBLE_FOR_PAYOUT:"The provided phone number is not eligible for payout. Please make sure it is a valid mobile number.",MOBILE_NUMBER_MNO_MISMATCH:"There is a mismatch between the phone number provided and the MNO used.",UNSUPPORTED_COUNTRY_BANK:"Only Tanzanian Banks are supported for now",UNSUPPORTED_COUNTRY_MOBILE:"Only Tanzanian mobile numbers are supported for now",NO_HANDLER_FOUND:"Cannot create payout input!"}};class dt{static processNotes(e){if(!e)return;const t=e.trim();return t.length>0?t:void 0}}class lt{static forBank(e,t){if(!ut.SUPPORTED_COUNTRY_CODES.includes(e.countryCode))throw new Error(ut.ERROR_MESSAGES.UNSUPPORTED_COUNTRY_BANK);return`${t.countryCode}-BANK-B2C`}static forMobile(e,t,r){if(!o.is(e))throw new Error(ut.ERROR_MESSAGES.INVALID_PHONE_NUMBER);if(!ut.SUPPORTED_COUNTRY_CODES.includes(e.countryCode))throw new Error(ut.ERROR_MESSAGES.UNSUPPORTED_COUNTRY_MOBILE);if(!h.checkPayoutEligibility(e))throw new Error(ut.ERROR_MESSAGES.INELIGIBLE_FOR_PAYOUT);const a=n.getMNOById(t,e.countryCode);if(!a)throw new Error(ut.ERROR_MESSAGES.MOBILE_NUMBER_MNO_MISMATCH);return a.id===p.VODACOM?`${r.countryCode}-${p.TIGO.toString().toUpperCase()}-B2C`:`${r.countryCode}-${a.id.toString().toUpperCase()}-B2C`}}class mt{canHandle(e,t,r){return e===Ue.MOBILE&&Te.is(t)&&r.countryCode===t.countryCode&&r.currencyCode===f.from(t.countryCode)?.currencyCode}createInput(e,t){const r=e.receiver,n=dt.processNotes(e.notes),o=r.phoneNumber;return{channel:lt.forMobile(o,r.mnoId,t),msisdn:o.getWithFormat(s.INTERNATIONAL_NUMERIC),description:n??it.generateDefaultPayoutNarration(r),payeeName:r.name,notes:n,amount:e.amount.numericValue}}}class ht{canHandle(e,t,r){return e===Ue.BANK&&Je.is(t)&&r.countryCode===t.countryCode&&r.currencyCode===f.from(t.countryCode)?.currencyCode}createInput(e,t){const r=e.receiver,n=dt.processNotes(e.notes);return{channel:lt.forBank(r,t),msisdn:`${r.bank.swiftCode}:${r.accNo}`,description:n??it.generateDefaultPayoutNarration(r),payeeName:r.accName,notes:n,amount:e.amount.numericValue}}}class pt{handlers=[new mt,new ht];getPayoutInput(e,t){const r=this.handlers.find(r=>r.canHandle(e.channel,e.receiver,t));if(!r)throw new Error(ut.ERROR_MESSAGES.NO_HANDLER_FOUND);return r.createInput({receiver:e.receiver,amount:e.amount,notes:e.notes},t)}}const ft={bank:lt.forBank,mobile:lt.forMobile},yt=E().router({getPayouts:{method:"GET",path:"",query:t.object({}),responses:{200:t.object({results:t.array(Ze.PayoutDTO),total:t.number()})}},getPayoutsByApprovalStatus:{method:"GET",path:"",query:t.object({rangeStart:t.number(),rangeEnd:t.number(),eager:t.string(),approvalStatus:Ze.PayoutApprovalStatus,orderByDesc:t.string()}),responses:{200:t.object({results:t.array(Ze.PayoutDTO),total:t.number()})}},postPayout:{method:"POST",path:"",body:Ze.PayoutInputDTO,responses:{201:Ze.PayoutDTO,400:w.schema}},approve:{method:"POST",path:"/:id/approve",body:t.object({action:t.enum(["Approve","Reject"]),notes:t.string().optional()}),responses:{201:Ze.PayoutDTO,404:t.object({}),409:t.object({})}},getPayout:{method:"GET",path:"/:id/",responses:{200:Ze.PayoutDTO,404:t.object({})}}});class gt extends G{static create(){return new gt}static fromFilters(e){return(new gt).applyFilters(e)}static fromUrlParams(e){try{const t=Ze.PayoutURLQueryParams.parse(e),r=Ze.PayoutFilters.parse(t);return gt.fromFilters(r)}catch(e){throw new Error("Invalid URL parameters. Please check your query string values.")}}static fromSearchParams(e){const t=Object.fromEntries(e.entries());return gt.fromUrlParams(t)}static fromRequest(e){const{searchParams:t}=new URL(e.url);return gt.fromSearchParams(t)}static from(e){try{return null==e?new gt:G.is(e)?new gt(e.options):e instanceof URLSearchParams?gt.fromSearchParams(e):this.isStringRecord(e)?gt.fromUrlParams(e):gt.fromFilters(e)}catch(e){throw new Error("Invalid input! Could not create a PayoutQuery instance.")}}static isStringRecord(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&!(e instanceof URLSearchParams)&&Object.values(e).every(e=>"string"==typeof e)}whereStatus(e){return this.where("status",e)}whereApprovalStatus(e){return this.where("approvalStatus",e)}whereChannel(e){return this.where("channel",e)}wherePending(){return this.whereApprovalStatus(qe.PENDING)}whereApproved(){return this.whereApprovalStatus(qe.APPROVED)}whereRejected(){return this.whereApprovalStatus(qe.REJECTED)}wherePaid(){return this.whereStatus(Le.PAID)}whereFailed(){return this.whereStatus(Le.FAILED)}whereAmountBetween(e,t){return e.currencyCode!==t.currencyCode||e.numericValue>t.numericValue?this:this.whereBetween("amount",e.numericValue,t.numericValue).whereCurrencyCode(e.currencyCode)}wherePayee(e){return this.whereContains("payeeName",e)}whereMsisdn(e){return this.whereContains("msisdn",e)}whereProfileId(e){return this.where("profileId",e)}wherePartnerReference(e){return this.whereContains("partnerReference",e)}whereSearch(e){return this.where("search",e)}whereCurrencyCode(e){return this.where("currencyCode",e)}applyFilters(e){if((e.page||e.limit)&&this.paginate(e.page||1,e.limit||20),e.sortBy&&e.sortOrder&&("asc"===e.sortOrder?this.orderByAsc(e.sortBy):this.orderByDesc(e.sortBy)),(e.startDate||e.endDate)&&this.whereDateBetween(e.startDate,e.endDate),e.status&&this.whereStatus(e.status),e.approvalStatus&&this.whereApprovalStatus(e.approvalStatus),e.channel&&this.whereChannel(e.channel),e.payeeName&&this.wherePayee(e.payeeName),e.msisdn&&this.whereMsisdn(e.msisdn),e.profileId&&this.whereProfileId(e.profileId),e.partnerReference&&this.wherePartnerReference(e.partnerReference),e.id&&this.where("id",e.id),void 0!==e.minAmount||void 0!==e.maxAmount){const t=void 0!==e.minAmount&&null!==e.minAmount,r=void 0!==e.maxAmount&&null!==e.maxAmount,{currencyCode:n}=e;if(!n||!u.isCurrencyCode(n))return console.warn("Amount filter requires a valid currency code"),this;if(t&&r){if(e.minAmount>e.maxAmount)return console.warn(`Invalid amount range: min (${e.minAmount}) > max (${e.maxAmount})`),this;const t=d.from(e.minAmount,n),r=d.from(e.maxAmount,n);t&&r&&this.whereAmountBetween(t,r)}else t?this.whereGreaterThanOrEqual("amount",e.minAmount).whereCurrencyCode(n):r&&this.whereLessThanOrEqual("amount",e.maxAmount).whereCurrencyCode(n)}return e.search&&this.whereSearch(e.search),this}toFilters(){const e=this.extractFilterValues();return{page:this.options.page||1,limit:this.options.limit||20,sortBy:this.extractSortField()||"createdAt",sortOrder:this.extractSortOrder()||"desc",startDate:e.startDate,endDate:e.endDate,payeeName:e.payeeName,msisdn:e.msisdn,profileId:e.profileId,id:e.id,partnerReference:e.partnerReference,channel:e.channel,status:this.isValidStatus(e.status)?e.status:void 0,approvalStatus:this.isValidApprovalStatus(e.approvalStatus)?e.approvalStatus:void 0,minAmount:e.minAmount,maxAmount:e.maxAmount,search:e.search}}toUrlParams(){const e=this.toFilters(),t={};return Object.entries(e).forEach(([e,r])=>{null!=r&&(t[e]=String(r))}),t}toSearchParams(){return new URLSearchParams(this.toUrlParams())}toQueryString(){return this.toSearchParams().toString()}withPagination(e,t){const r=this.clone();return r.paginate(e,t||r.options.limit||20),r}withSorting(e,t="desc"){const r=this.clone();return"asc"===t?r.orderByAsc(e):r.orderByDesc(e),r}withDateRange(e,t){const r=this.clone();return r.whereDateBetween(e,t),r}withStatus(e){const t=this.clone();return e&&t.whereStatus(e),t}withApprovalStatus(e){const t=this.clone();return e&&t.whereApprovalStatus(e),t}withChannel(e){const t=this.clone();return e&&t.whereChannel(e),t}includeDefaultRelations(){return this.with("[createdBy,actionedBy]")}resetPage(){return this.withPagination(1)}hasFilters(){const e=this.toFilters();return!!(e.startDate||e.endDate||e.payeeName||e.msisdn||e.profileId||e.id||e.partnerReference||e.channel||e.status||e.approvalStatus||e.minAmount||e.maxAmount||e.search)}getActiveFilters(){const e=[],t=this.toFilters();return t.status&&e.push(`Status: ${t.status}`),t.approvalStatus&&e.push(`Approval: ${t.approvalStatus}`),t.channel&&e.push(`Channel: ${t.channel}`),t.startDate&&t.endDate?e.push(`Date: ${t.startDate} to ${t.endDate}`):t.startDate?e.push(`From: ${t.startDate}`):t.endDate&&e.push(`Until: ${t.endDate}`),t.minAmount&&t.maxAmount?e.push(`Amount: ${t.minAmount} - ${t.maxAmount}`):t.minAmount?e.push(`Min Amount: ${t.minAmount}`):t.maxAmount&&e.push(`Max Amount: ${t.maxAmount}`),t.search&&e.push(`Search: "${t.search}"`),t.payeeName&&e.push(`Payee: ${t.payeeName}`),t.msisdn&&e.push(`MSISDN: ${t.msisdn}`),t.profileId&&e.push(`Profile: ${t.profileId}`),t.partnerReference&&e.push(`Ref: ${t.partnerReference}`),e}extractFilterValues(){const e={};if(!this.options.filters)return e;for(const t of this.options.filters)switch(t.field){case"createdAt":"gte"===t.operator?e.startDate=t.value:"lte"===t.operator&&(e.endDate=t.value);break;case"amount":"gte"===t.operator?e.minAmount=t.value:"lte"===t.operator&&(e.maxAmount=t.value);break;case"payeeName":case"msisdn":case"partnerReference":"likeLower"===t.operator&&"string"==typeof t.value?e[t.field]=t.value.replace(/%/g,""):"eq"===t.operator&&(e[t.field]=t.value);break;default:"eq"===t.operator&&(e[t.field]=t.value)}return e}extractSortField(){if(this.options.sort&&0!==this.options.sort.length)return this.options.sort[0].field}extractSortOrder(){if(this.options.sort&&0!==this.options.sort.length)return this.options.sort[0].direction}isValidStatus(e){return Object.values(Le).includes(e)}isValidApprovalStatus(e){return Object.values(qe).includes(e)}}class Nt extends L{constructor(e){super("payout",yt,e)}async getPayouts(e){try{const t=gt.from(e),r=t.build(),n=await this.client.getPayouts({query:r}),o=this.handleResponse(n,200),a=t.toFilters(),s=new Y(a.page??1,a.limit??10,o.total);return{results:Xe.createMany(o.results),pagination:s}}catch(e){throw new Error(`Failed to fetch payouts: ${e instanceof Error?e.message:"Unknown error"}`)}}async getAllPayouts(e){try{const t=gt.from(e).build();delete t.page,delete t.limit;const r=await this.client.getPayouts({query:t}),n=this.handleResponse(r,200);return Xe.createMany(n)}catch(e){throw new Error(`Failed to fetch all payouts: ${e instanceof Error?e.message:"Unknown error"}`)}}async getPayoutsFromRequest(e){const t=gt.fromRequest(e);return this.getPayouts(t)}async pay(e){const{wallet:t,channel:r,receiver:n,amount:o,notes:a}=e,{min:s,max:i}=d.getTransactionLimits(o.currencyCode);if(o.lessThan(s)||o.greaterThan(i))throw new w({statusCode:400,message:`Please make sure the amount is between ${s.label} - ${i.label}`});const c=(new pt).getPayoutInput({channel:r,receiver:n,amount:o,notes:a},t),u=await this.client.postPayout({body:c});if(201===u.status)return Xe.create(u.body);if(400===u.status)throw new w(u.body);throw w.unknown()}async approve(e){const t=await this.client.approve({params:{id:e.id},body:{action:"Approve",notes:e.notes}});if(201===t.status)return Xe.create(t.body);if(404===t.status)throw new w({message:"Payout not found",statusCode:404});if(409===t.status)throw new w({message:"Payout already approved",statusCode:409});throw w.unknown()}async reject(e){const t=await this.client.approve({params:{id:e.id},body:{action:"Reject",notes:e.notes}});if(201===t.status)return Xe.create(t.body);if(404===t.status)throw new w({message:"Payout not found",statusCode:404});if(409===t.status)throw new w({message:"Payout already rejected",statusCode:409});throw w.unknown()}async getByID(e){const t=await this.client.getPayout({params:{id:e}});if(200===t.status)return Xe.create(t.body);if(404===t.status)throw new w({message:"Payout not found",statusCode:404});throw w.unknown()}async count(e){const t=gt.from(e).build(),r=await this.client.getPayouts({query:t});return this.handleResponse(r,200).total}async exists(e){return await this.count(e)>0}}const bt=e=>e.optional().transform(e=>e??void 0),wt={walletDTO:t.object({id:t.string().min(1,{message:"Wallet ID is required."}),profileId:t.string().min(1,{message:"Profile ID is required."}),accountNo:t.string().min(1,{message:"Account number is required."}),accountName:t.string().min(1,{message:"Account name is required."}),channel:t.string().min(1,{message:"Channel is required."}),countryCode:t.string().default("TZ").refine(e=>a.isISO2CountryCode(e),{message:"Provided country code is not a valid ISO2 code."}),currencyCode:t.string().default("TZS").refine(e=>u.isCurrencyCode(e),{message:"Provided currency code is not a valid currency code."}),createdAt:t.string().datetime({message:"Creation timestamp must be a valid ISO 8601 datetime string."}),updatedAt:t.string().datetime({message:"Update timestamp must be a valid ISO 8601 datetime string."})}),walletQuery:t.object({id:t.string().optional(),profileId:t.string().optional(),accountNo:t.string().optional(),accountName:t.string().optional(),channel:t.string().optional(),countryCode:t.string().default("TZ").refine(e=>N.has(e),{message:"Provided country code is not a valid ISO2 code."}).optional(),currencyCode:t.string().default("TZS").refine(e=>{const t=y.from(e);return void 0!==t&&g.has(t.code)},{message:"Provided currency code is not a valid currency code."}).optional()}),statementEntry:t.object({accountNo:bt(t.string()),debitOrCredit:t.string().min(1,"Transaction type is required"),tranRefNo:t.string().min(1,"Transaction reference is required"),narration:t.string().min(1,"Transaction description is required"),txnDate:t.coerce.date({errorMap:()=>({message:"Invalid transaction date format"})}),valueDate:t.coerce.date({errorMap:()=>({message:"Invalid value date format"})}),amountCredited:t.number().min(0,"Credited amount must be non-negative"),amountDebited:t.number().min(0,"Debited amount must be non-negative"),balance:t.number(),currencyCode:bt(t.string().min(3,"Currency code must be at least 3 characters")).default("TZS")})},vt=e.object({id:e.string(),profileId:e.string(),accountNo:e.string(),accountName:e.string(),channel:e.string(),countryCode:e.string(),currencyCode:e.string(),createdAt:e.string(),updatedAt:e.string(),version:e.string().optional().default("1.0")});class St{_id;_profileId;_accountNo;_accountName;_channel;_countryCode;_currencyCode;_createdAt;_updatedAt;static get schema(){return wt.walletDTO}constructor(e){this._id=e.id,this._profileId=e.profileId,this._accountNo=e.accountNo,this._accountName=e.accountName,this._channel=e.channel,this._countryCode=e.countryCode,this._currencyCode=e.currencyCode,this._createdAt=e.createdAt,this._updatedAt=e.updatedAt}static create(e){const t=St.schema.safeParse(e);if(t.success)return new St(t.data);console.error("Wallet data validation failed:",t.error.flatten())}get id(){return this._id}get profileId(){return this._profileId}get accountNo(){return this._accountNo}get accountName(){return this._accountName}get channel(){return this._channel}get countryCode(){return this._countryCode}get currencyCode(){return this._currencyCode}get createdAt(){return this._createdAt}get updatedAt(){return this._updatedAt}get createdAtDate(){return new Date(this._createdAt)}get updatedAtDate(){return new Date(this._updatedAt)}validate(){const e=St.schema.safeParse(this.toJSON());return e.success||console.warn("Wallet instance validation failed:",e.error.flatten()),e.success}static from(e){if(e&&"object"==typeof e)return St.create({id:e.id,profileId:e.profileId,accountNo:e.accountNo,accountName:e.accountName,channel:e.channel,countryCode:e.countryCode,createdAt:e.createdAt,updatedAt:e.updatedAt,currencyCode:e.currencyCode});console.error("Invalid data provided to Wallet.from: Input must be an object.")}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;return"string"==typeof t._id&&"string"==typeof t._profileId&&"string"==typeof t._accountNo&&"string"==typeof t._accountName&&"string"==typeof t._channel&&"string"==typeof t._countryCode&&a.isISO2CountryCode(t._countryCode)&&"string"==typeof t._currencyCode&&u.isCurrencyCode(t._currencyCode)&&"string"==typeof t._createdAt&&"string"==typeof t._updatedAt}toJSON(){return{id:this._id,profileId:this._profileId,accountNo:this._accountNo,accountName:this._accountName,channel:this._channel,countryCode:this._countryCode,currencyCode:this._currencyCode,createdAt:this._createdAt,updatedAt:this._updatedAt,version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=vt.safeParse(t);if(!r.success)return void console.error("Invalid WalletJSON:",r.error.flatten());const n=r.data;return St.create(n)}catch(e){return void console.error("Error parsing WalletJSON:",e)}}static isWalletJSON(e){return vt.safeParse(e).success}}const Ot=e.object({accountNo:e.string().optional(),debitOrCredit:e.string(),tranRefNo:e.string(),narration:st,txnDate:e.string(),valueDate:e.string(),amountCredited:b,amountDebited:b,balance:b,currencyCode:e.string(),version:e.string().optional().default("2.0")});class At{_accountNo;_debitOrCredit;_tranRefNo;_narration;_txnDate;_valueDate;_amountCredited;_amountDebited;_balance;_currencyCode;static get schema(){return wt.statementEntry}constructor(e,t){this._accountNo=e.accountNo,this._debitOrCredit=e.debitOrCredit,this._tranRefNo=e.tranRefNo,this._narration=t,this._txnDate=e.txnDate,this._valueDate=e.valueDate,this._currencyCode=e.currencyCode;const r=y.from(e.currencyCode);if(!r)throw new Error(`Currency not found for code: ${e.currencyCode}`);const n=d.from(e.amountCredited,r.code),o=d.from(e.amountDebited,r.code),a=d.from(e.balance,r.code);if(!n||!o||!a)throw new Error(`Failed to create Amount instances with currency code: ${e.currencyCode}`);this._amountCredited=n,this._amountDebited=o,this._balance=a}static create(e){const t="string"==typeof e.narration?new it(e.narration):e.narration,r={...e,narration:t.text},n=At.schema.safeParse(r);if(n.success)try{const{narration:e,...r}=n.data;return new At(r,t)}catch(e){return void console.error("Failed to create WalletStatementEntry:",e)}else console.error("WalletStatementEntry data validation failed:",n.error.flatten())}get accountNo(){return this._accountNo}get debitOrCredit(){return this._debitOrCredit}get tranRefNo(){return this._tranRefNo}get narration(){return this._narration}get txnDate(){return this._txnDate}get valueDate(){return this._valueDate}get amountCredited(){return this._amountCredited}get amountDebited(){return this._amountDebited}get balance(){return this._balance}get currencyCode(){return this._currencyCode}validate(){const e={accountNo:this._accountNo,debitOrCredit:this._debitOrCredit,tranRefNo:this._tranRefNo,narration:this._narration.text,txnDate:this._txnDate,valueDate:this._valueDate,amountCredited:this._amountCredited.numericValue,amountDebited:this._amountDebited.numericValue,balance:this._balance.numericValue,currencyCode:this._currencyCode},t=At.schema.safeParse(e);return t.success||console.warn("WalletStatementEntry instance validation failed:",t.error.flatten()),t.success}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;try{return("string"==typeof t._accountNo||void 0===t._accountNo)&&"string"==typeof t._debitOrCredit&&"string"==typeof t._tranRefNo&&it.is(t._narration)&&t._txnDate instanceof Date&&t._valueDate instanceof Date&&d.is(t._amountCredited)&&d.is(t._amountDebited)&&d.is(t._balance)&&"string"==typeof t._currencyCode}catch(e){return!1}}equals(e){return this._tranRefNo===e._tranRefNo}clone(){return At.create({accountNo:this._accountNo,debitOrCredit:this._debitOrCredit,tranRefNo:this._tranRefNo,narration:this._narration,txnDate:this._txnDate,valueDate:this._valueDate,amountCredited:this._amountCredited.numericValue,amountDebited:this._amountDebited.numericValue,balance:this._balance.numericValue,currencyCode:this._currencyCode})}toString(){return`WalletStatementEntry(${this._tranRefNo}: ${this._debitOrCredit} ${this._amountCredited.isPositive()?this._amountCredited.label:this._amountDebited.label} on ${this._txnDate.toISOString().split("T")[0]}${this._narration})`}static from(e){if(e&&"object"==typeof e)try{let t,r,n,o,a=e.currencyCode||"TZS";if(e.amountCredited&&"object"==typeof e.amountCredited&&"value"in e.amountCredited){const o=d.fromJSON(e.amountCredited),s=d.fromJSON(e.amountDebited),i=d.fromJSON(e.balance);if(!o||!s||!i)return void console.error("Failed to deserialize Amount objects from JSON");t=o.numericValue,r=s.numericValue,n=i.numericValue,e.currencyCode||(a=o.currencyCode)}else if(t=Number(e.amountCredited),r=Number(e.amountDebited),n=Number(e.balance),!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(n))return void console.error("Invalid numeric values for amounts");if("string"==typeof e.narration)o=e.narration;else if(it.is(e.narration))o=e.narration;else{if(!it.isNarrationJSON(e.narration))return void console.error("Invalid narration data");{const t=it.fromJson(e.narration);if(!t)return void console.error("Failed to create Narration from NarrationJson");o=t}}return At.create({accountNo:e.accountNo,debitOrCredit:e.debitOrCredit,tranRefNo:e.tranRefNo,narration:o,txnDate:e.txnDate,valueDate:e.valueDate,amountCredited:t,amountDebited:r,balance:n,currencyCode:a})}catch(e){return void console.error("Error in WalletStatementEntry.from:",e)}else console.error("Invalid data provided to WalletStatementEntry.from: not an object or null.")}toJSON(){return{accountNo:this._accountNo,debitOrCredit:this._debitOrCredit,tranRefNo:this._tranRefNo,narration:this._narration.toJSON(),txnDate:this._txnDate.toISOString(),valueDate:this._valueDate.toISOString(),amountCredited:this._amountCredited.toJSON(),amountDebited:this._amountDebited.toJSON(),balance:this._balance.toJSON(),currencyCode:this._currencyCode,version:"2.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=Ot.safeParse(t);if(!r.success)return void console.error("Invalid WalletStatementEntryJSON:",r.error.flatten());const n=r.data,o=it.fromJSON(n.narration);if(!o)return void console.warn("Failed to deserialize narration");const a=d.fromJSON(n.amountCredited),s=d.fromJSON(n.amountDebited),i=d.fromJSON(n.balance);return a&&s&&i?a.currencyCode!==n.currencyCode||s.currencyCode!==n.currencyCode||i.currencyCode!==n.currencyCode?void console.warn("Currency code mismatch"):At.create({accountNo:n.accountNo,debitOrCredit:n.debitOrCredit,tranRefNo:n.tranRefNo,narration:o,txnDate:n.txnDate,valueDate:n.valueDate,amountCredited:a.numericValue,amountDebited:s.numericValue,balance:i.numericValue,currencyCode:n.currencyCode}):void console.warn("Failed to deserialize Amount objects")}catch(e){return void console.error("Error parsing WalletStatementEntryJSON:",e)}}static isWalletStatementEntryJSON(e){return Ot.safeParse(e).success}static fromJSONArray(e){try{const t="string"==typeof e?JSON.parse(e):e;return Array.isArray(t)?t.map(e=>At.fromJSON(e)).filter(e=>void 0!==e):(console.warn("fromJSONArray expects an array"),[])}catch(e){return console.error("Error parsing WalletStatementEntry JSON array:",e),[]}}static toJSONArray(e){return e.map(e=>e.toJSON())}toJson(){return this.toJSON()}static fromJson(e){return At.fromJSON(e)}static fromJsonArray(e){return At.fromJSONArray(e)}static toJsonArray(e){return At.toJSONArray(e)}}const Ct=E().router({getWallets:{method:"GET",path:"/",query:wt.walletQuery,responses:{200:t.array(St.schema)}},getBalance:{method:"POST",path:"/balance",body:t.object({accountNo:t.string().optional()}),responses:{201:t.object({availableBalance:t.number()})}},getStatement:{method:"POST",path:"/statement",summary:"Get Wallet Statement",body:t.object({endDate:t.date(),startDate:t.date(),accountNo:t.string().optional()}),responses:{201:t.array(At.schema)}}});class It extends G{static create(){return new It}static fromFilters(e){return(new It).applyFilters(e)}static fromUrlParams(e){try{const t=wt.walletQuery.parse(e);return It.fromFilters(t)}catch(e){throw new Error("Invalid URL parameters. Please check your query string values.")}}static fromSearchParams(e){const t=Object.fromEntries(e.entries());return It.fromUrlParams(t)}static fromRequest(e){const{searchParams:t}=new URL(e.url);return It.fromSearchParams(t)}static from(e){try{return null==e?new It:G.is(e)?new It(e.options):e instanceof URLSearchParams?It.fromSearchParams(e):this.isStringRecord(e)?It.fromUrlParams(e):It.fromFilters(e)}catch(e){throw new Error("Invalid input! Could not create a WalletQuery instance.")}}static isStringRecord(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&!(e instanceof URLSearchParams)&&Object.values(e).every(e=>"string"==typeof e)}whereId(e){return this.where("id",e)}whereProfileId(e){return this.where("profileId",e)}whereAccountNo(e){return this.where("accountNo",e)}whereAccountName(e){return this.whereContains("accountName",e)}whereChannel(e){return this.where("channel",e)}whereCountryCode(e){return this.where("countryCode",e)}whereCurrencyCode(e){return this.where("currencyCode",e)}applyFilters(e){return e.id&&this.whereId(e.id),e.profileId&&this.whereProfileId(e.profileId),e.accountNo&&this.whereAccountNo(e.accountNo),e.accountName&&this.whereAccountName(e.accountName),e.channel&&this.whereChannel(e.channel),e.countryCode&&this.whereCountryCode(e.countryCode),e.currencyCode&&this.whereCurrencyCode(e.currencyCode),this}toFilters(){const e=this.extractFilterValues();return{id:e.id,profileId:e.profileId,accountNo:e.accountNo,accountName:e.accountName,channel:e.channel,countryCode:e.countryCode,currencyCode:e.currencyCode}}toUrlParams(){const e=this.toFilters(),t={};return Object.entries(e).forEach(([e,r])=>{null!=r&&(t[e]=String(r))}),t}toSearchParams(){return new URLSearchParams(this.toUrlParams())}toQueryString(){return this.toSearchParams().toString()}withId(e){const t=this.clone();return t.whereId(e),t}withProfileId(e){const t=this.clone();return t.whereProfileId(e),t}withAccountNo(e){const t=this.clone();return t.whereAccountNo(e),t}withCountryCode(e){const t=this.clone();return t.whereCountryCode(e),t}withCurrencyCode(e){const t=this.clone();return t.whereCurrencyCode(e),t}hasFilters(){const e=this.toFilters();return!!(e.id||e.profileId||e.accountNo||e.accountName||e.channel||e.countryCode||e.currencyCode)}getActiveFilters(){const e=[],t=this.toFilters();return t.id&&e.push(`ID: ${t.id}`),t.profileId&&e.push(`Profile: ${t.profileId}`),t.accountNo&&e.push(`Account: ${t.accountNo}`),t.accountName&&e.push(`Name: ${t.accountName}`),t.channel&&e.push(`Channel: ${t.channel}`),t.countryCode&&e.push(`Country: ${t.countryCode}`),t.currencyCode&&e.push(`Currency: ${t.currencyCode}`),e}extractFilterValues(){const e={};if(!this.options.filters)return e;for(const t of this.options.filters)"eq"===t.operator?e[t.field]=t.value:"likeLower"===t.operator&&"string"==typeof t.value&&(e[t.field]=t.value.replace(/%/g,""));return e}}class _t extends L{constructor(e){super("wallet",Ct,e)}async getBalance(e){if(!e.wallet&&!e.accountNo)throw new Error("Either wallet or accountNo must be provided");if(e.wallet){const t=await this.client.getBalance({body:{accountNo:e.wallet.accountNo}});if(201===t.status){const r=t.body.availableBalance,n=d.from(r,e.wallet.currencyCode);if(n)return n}}if(e.accountNo){const t=await this.getWallets({accountNo:e.accountNo});if(0===t.length)throw new Error(`No wallet found for accountNo: ${e.accountNo}`);const r=t[0],n=await this.client.getBalance({body:{accountNo:e.accountNo}});if(201===n.status){const e=n.body.availableBalance,t=d.from(e,r.currencyCode);if(t)return t}}throw new Error("Failed to fetch balance")}async getWallets(e){const t=It.from(e).build(),r=await this.client.getWallets({query:t});if(200===r.status){const e=r.body;try{return e.map(e=>{const t=St.from(e);if(!t)throw new Error(`Invalid wallet data: ${JSON.stringify(e)}`);return t})}catch(e){throw console.error("[WalletRepository] Error processing wallet data:",e),new Error("Failed to process wallet data from API")}}throw new Error(`Failed to fetch wallets. Status: ${r.status}`)}async getByID(e){const t=It.create().whereId(e),r=await this.getWallets(t);return r.length>0?r[0]:void 0}async getStatement(e){if(!e.wallet&&!e.accountNo)throw new Error("Either wallet or accountNo must be provided");const t=new Date,r=new Date(t.getFullYear(),t.getMonth(),1),n=new Date(t.getFullYear(),t.getMonth()+1,0),o=e.range??{startDate:r,endDate:n};let a,s;if(e.wallet)a=e.wallet,s=e.wallet.accountNo;else{if(!e.accountNo)throw new Error("Either wallet or accountNo must be provided");{const t=await this.getWallets({accountNo:e.accountNo});if(0===t.length)throw new Error(`No wallet found for accountNo: ${e.accountNo}`);a=t[0],s=e.accountNo}}const i={...o,accountNo:s},c=await this.client.getStatement({body:i});if(201===c.status){return c.body.map(e=>({...e,currencyCode:a.currencyCode})).reduce((e,t)=>{const r=At.create(t);return r?e.push(r):console.warn("[WalletRepository] Skipping invalid statement entry:",t),e},[])}throw new Error(`Failed to fetch statement. Status: ${c.status}`)}async exists(e){return(await this.getWallets(e)).length>0}async count(e){return(await this.getWallets(e)).length}}const Pt={getUniqueCountries(e){const t=new Set;return e.forEach(e=>{e.countryCode&&t.add(e.countryCode)}),Array.from(t)},getWalletsByCountry:(e,t)=>e.filter(e=>e.countryCode===t)},Et=E().router({getCurrentProfile:{method:"GET",path:"/me",responses:{200:te.schema}}});class Dt extends L{constructor(e){super("profile",Et,e)}async getCurrentProfile(){const e=await this.client.getCurrentProfile();if(200===e.status){const t=te.from(e.body);if(t)return t;throw new Error("Invalid profile data received from server")}throw new Error(`Failed to get current profile. Status: ${e.status}`)}}export{w as APIError,Se as AuthRepository,rt as BANK_NARR_PREFIX,Je as BankBeneficiaryInfo,Pe as BankBeneficiaryInfoJSONSchema,L as BaseRepository,Be as Beneficiary,Ie as BeneficiaryDTOSchemas,Ee as BeneficiaryInfoJSONSchema,je as BeneficiaryJSONSchema,$e as BeneficiaryRepository,Oe as BeneficiaryType,ce as CompanyMembership,ie as CompanyMembershipJSONSchema,et as ECOBANK_PREFIX,q as FilterOperator,he as IdentityRepository,nt as LEGACY_BANK_NARR_PREFIX,at as LEGACY_MOBILE_NARR_PREFIX,oe as LogIn,ne as LogInJSONSchema,re as LogInSchemas,ot as MOBILE_NARR_PREFIX,Te as MobileBeneficiaryInfo,_e as MobileBeneficiaryInfoJSONSchema,tt as NARR_V2_PREFIX,it as Narration,st as NarrationJSONSchema,Y as Pagination,H as PaginationParamsSchema,Q as PaginationSchema,Xe as Payout,qe as PayoutApprovalStatus,Ue as PayoutChannel,Ze as PayoutDTOSchemas,pt as PayoutInputFactory,ze as PayoutJSONSchema,gt as PayoutQuery,Nt as PayoutRepository,Le as PayoutStatus,S as PermissionError,v as Permissions,te as Profile,X as ProfileDTOSchemas,ee as ProfileJSONSchema,Dt as ProfileRepository,W as QUERY_BUILDER_TYPE,G as QueryBuilder,se as Role,ae as RoleJSONSchema,V as SortDirection,ge as TeamManagementDTOSchemas,we as TeamMember,be as TeamMemberJSONSchema,ve as TeamMemberRepository,de as User,ue as UserJSONSchema,xe as ValidatedBeneficiaryInputFactory,St as Wallet,wt as WalletDTOSchemas,vt as WalletJSONSchema,_t as WalletRepository,At as WalletStatementEntry,Ot as WalletStatementEntryJSONSchema,Pt as WalletUtils,ke as contract,Z as createPaginatedResponse,K as createPaginatedResponseSchema,ft as createPayoutChannelCode,z as emptyPaginatedResponse,O as isError,U as setGlobalTokenGetter};
2
+ //# sourceMappingURL=index.esm.js.map