@temboplus/afloat 0.1.77-beta.9 → 0.1.79

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 (415) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +42 -246
  3. package/esm/mod.d.ts +8 -0
  4. package/esm/mod.d.ts.map +1 -0
  5. package/esm/mod.js +7 -0
  6. package/esm/package.json +3 -0
  7. package/{dist/lib/error/error.api.d.ts → esm/src/errors/api_error.d.ts} +1 -0
  8. package/esm/src/errors/api_error.d.ts.map +1 -0
  9. package/esm/src/errors/api_error.js +90 -0
  10. package/esm/src/errors/index.d.ts +3 -0
  11. package/esm/src/errors/index.d.ts.map +1 -0
  12. package/esm/src/errors/index.js +2 -0
  13. package/{dist/lib/error/error.permission.d.ts → esm/src/errors/permission_error.d.ts} +2 -1
  14. package/esm/src/errors/permission_error.d.ts.map +1 -0
  15. package/esm/src/errors/permission_error.js +70 -0
  16. package/{dist/modules/team-member/team-member.contract.d.ts → esm/src/features/admin/contract.d.ts} +158 -233
  17. package/esm/src/features/admin/contract.d.ts.map +1 -0
  18. package/esm/src/features/admin/contract.js +210 -0
  19. package/esm/src/features/admin/index.d.ts +4 -0
  20. package/esm/src/features/admin/index.d.ts.map +1 -0
  21. package/esm/src/features/admin/index.js +3 -0
  22. package/esm/src/features/admin/repository.d.ts +114 -0
  23. package/esm/src/features/admin/repository.d.ts.map +1 -0
  24. package/esm/src/features/admin/repository.js +248 -0
  25. package/esm/src/features/admin/schemas.d.ts +146 -0
  26. package/esm/src/features/admin/schemas.d.ts.map +1 -0
  27. package/esm/src/features/admin/schemas.js +206 -0
  28. package/esm/src/features/auth/access/contract.d.ts +14 -0
  29. package/esm/src/features/auth/access/contract.d.ts.map +1 -0
  30. package/esm/src/features/auth/access/contract.js +14 -0
  31. package/esm/src/features/auth/access/repository.d.ts +11 -0
  32. package/esm/src/features/auth/access/repository.d.ts.map +1 -0
  33. package/esm/src/features/auth/access/repository.js +25 -0
  34. package/{dist/modules/auth/auth.contract.d.ts → esm/src/features/auth/contract.d.ts} +19 -16
  35. package/esm/src/features/auth/contract.d.ts.map +1 -0
  36. package/esm/src/features/auth/contract.js +43 -0
  37. package/esm/src/features/auth/identity/contract.d.ts +23 -0
  38. package/esm/src/features/auth/identity/contract.d.ts.map +1 -0
  39. package/esm/src/features/auth/identity/contract.js +17 -0
  40. package/esm/src/features/auth/identity/repository.d.ts +22 -0
  41. package/esm/src/features/auth/identity/repository.d.ts.map +1 -0
  42. package/esm/src/features/auth/identity/repository.js +30 -0
  43. package/esm/src/features/auth/index.d.ts +6 -0
  44. package/esm/src/features/auth/index.d.ts.map +1 -0
  45. package/esm/src/features/auth/index.js +5 -0
  46. package/esm/src/features/auth/manager.d.ts +105 -0
  47. package/esm/src/features/auth/manager.d.ts.map +1 -0
  48. package/esm/src/features/auth/manager.js +181 -0
  49. package/{dist/modules/profile/profile.api-contract.d.ts → esm/src/features/auth/profile/contract.d.ts} +6 -8
  50. package/esm/src/features/auth/profile/contract.d.ts.map +1 -0
  51. package/esm/src/features/auth/profile/contract.js +14 -0
  52. package/esm/src/features/auth/profile/repository.d.ts +11 -0
  53. package/esm/src/features/auth/profile/repository.d.ts.map +1 -0
  54. package/esm/src/features/auth/profile/repository.js +25 -0
  55. package/esm/src/features/auth/repository.d.ts +30 -0
  56. package/esm/src/features/auth/repository.d.ts.map +1 -0
  57. package/esm/src/features/auth/repository.js +69 -0
  58. package/{dist/modules/auth/storage/client-store.d.ts → esm/src/features/auth/storage/client_store.d.ts} +2 -1
  59. package/esm/src/features/auth/storage/client_store.d.ts.map +1 -0
  60. package/esm/src/features/auth/storage/client_store.js +46 -0
  61. package/{dist/modules/auth/storage/client-token-handler.d.ts → esm/src/features/auth/storage/client_token_handler.d.ts} +1 -0
  62. package/esm/src/features/auth/storage/client_token_handler.d.ts.map +1 -0
  63. package/esm/src/features/auth/storage/client_token_handler.js +36 -0
  64. package/esm/src/features/auth/storage/server_store.d.ts +24 -0
  65. package/esm/src/features/auth/storage/server_store.d.ts.map +1 -0
  66. package/esm/src/features/auth/storage/server_store.js +34 -0
  67. package/esm/src/features/auth/storage/server_token_handler.d.ts +36 -0
  68. package/esm/src/features/auth/storage/server_token_handler.d.ts.map +1 -0
  69. package/esm/src/features/auth/storage/server_token_handler.js +115 -0
  70. package/{dist/modules → esm/src/features}/auth/storage/types.d.ts +2 -1
  71. package/esm/src/features/auth/storage/types.d.ts.map +1 -0
  72. package/esm/src/features/auth/storage/types.js +1 -0
  73. package/{dist/modules/contact/contact.api-contract.d.ts → esm/src/features/contact/contract.d.ts} +55 -88
  74. package/esm/src/features/contact/contract.d.ts.map +1 -0
  75. package/esm/src/features/contact/contract.js +49 -0
  76. package/esm/src/features/contact/index.d.ts +2 -0
  77. package/esm/src/features/contact/index.d.ts.map +1 -0
  78. package/esm/src/features/contact/index.js +1 -0
  79. package/esm/src/features/contact/repository.d.ts +58 -0
  80. package/esm/src/features/contact/repository.d.ts.map +1 -0
  81. package/esm/src/features/contact/repository.js +108 -0
  82. package/{dist/modules/payout/payout.api-contract.d.ts → esm/src/features/payout/contract.d.ts} +197 -340
  83. package/esm/src/features/payout/contract.d.ts.map +1 -0
  84. package/esm/src/features/payout/contract.js +75 -0
  85. package/esm/src/features/payout/index.d.ts +2 -0
  86. package/esm/src/features/payout/index.d.ts.map +1 -0
  87. package/esm/src/features/payout/index.js +1 -0
  88. package/esm/src/features/payout/repository.d.ts +67 -0
  89. package/esm/src/features/payout/repository.d.ts.map +1 -0
  90. package/esm/src/features/payout/repository.js +163 -0
  91. package/{dist/modules/wallet/wallet.contract.d.ts → esm/src/features/wallet/contract.d.ts} +11 -13
  92. package/esm/src/features/wallet/contract.d.ts.map +1 -0
  93. package/esm/src/features/wallet/contract.js +38 -0
  94. package/esm/src/features/wallet/index.d.ts +2 -0
  95. package/esm/src/features/wallet/index.d.ts.map +1 -0
  96. package/esm/src/features/wallet/index.js +1 -0
  97. package/esm/src/features/wallet/repository.d.ts +57 -0
  98. package/esm/src/features/wallet/repository.d.ts.map +1 -0
  99. package/esm/src/features/wallet/repository.js +93 -0
  100. package/esm/src/models/contact/derivatives/contact.d.ts +172 -0
  101. package/esm/src/models/contact/derivatives/contact.d.ts.map +1 -0
  102. package/esm/src/models/contact/derivatives/contact.js +266 -0
  103. package/esm/src/models/contact/derivatives/contact_info.d.ts +188 -0
  104. package/esm/src/models/contact/derivatives/contact_info.d.ts.map +1 -0
  105. package/esm/src/models/contact/derivatives/contact_info.js +255 -0
  106. package/esm/src/models/contact/index.d.ts +5 -0
  107. package/esm/src/models/contact/index.d.ts.map +1 -0
  108. package/esm/src/models/contact/index.js +4 -0
  109. package/esm/src/models/contact/schemas.d.ts +66 -0
  110. package/esm/src/models/contact/schemas.d.ts.map +1 -0
  111. package/esm/src/models/contact/schemas.js +64 -0
  112. package/esm/src/models/contact/validation.d.ts +37 -0
  113. package/esm/src/models/contact/validation.d.ts.map +1 -0
  114. package/esm/src/models/contact/validation.js +146 -0
  115. package/esm/src/models/index.d.ts +7 -0
  116. package/esm/src/models/index.d.ts.map +1 -0
  117. package/esm/src/models/index.js +6 -0
  118. package/esm/src/models/payout/api.d.ts +29 -0
  119. package/esm/src/models/payout/api.d.ts.map +1 -0
  120. package/esm/src/models/payout/api.js +1 -0
  121. package/esm/src/models/payout/channel.d.ts +58 -0
  122. package/esm/src/models/payout/channel.d.ts.map +1 -0
  123. package/esm/src/models/payout/channel.js +53 -0
  124. package/esm/src/models/payout/derivatives/payout.d.ts +158 -0
  125. package/esm/src/models/payout/derivatives/payout.d.ts.map +1 -0
  126. package/esm/src/models/payout/derivatives/payout.js +271 -0
  127. package/esm/src/models/payout/index.d.ts +7 -0
  128. package/esm/src/models/payout/index.d.ts.map +1 -0
  129. package/esm/src/models/payout/index.js +6 -0
  130. package/esm/src/models/payout/narration.d.ts +164 -0
  131. package/esm/src/models/payout/narration.d.ts.map +1 -0
  132. package/esm/src/models/payout/narration.js +308 -0
  133. package/esm/src/models/payout/schemas.d.ts +156 -0
  134. package/esm/src/models/payout/schemas.d.ts.map +1 -0
  135. package/esm/src/models/payout/schemas.js +105 -0
  136. package/esm/src/models/payout/status.d.ts +33 -0
  137. package/esm/src/models/payout/status.d.ts.map +1 -0
  138. package/esm/src/models/payout/status.js +34 -0
  139. package/{dist/modules/login/permission.type.d.ts → esm/src/models/permission.d.ts} +9 -8
  140. package/esm/src/models/permission.d.ts.map +1 -0
  141. package/esm/src/models/permission.js +50 -0
  142. package/esm/src/models/role.d.ts +21 -0
  143. package/esm/src/models/role.d.ts.map +1 -0
  144. package/esm/src/models/role.js +73 -0
  145. package/esm/src/models/user/authenticated-user.d.ts +77 -0
  146. package/esm/src/models/user/authenticated-user.d.ts.map +1 -0
  147. package/esm/src/models/user/authenticated-user.js +226 -0
  148. package/esm/src/models/user/index.d.ts +4 -0
  149. package/esm/src/models/user/index.d.ts.map +1 -0
  150. package/esm/src/models/user/index.js +3 -0
  151. package/esm/src/models/user/managed-user.d.ts +108 -0
  152. package/esm/src/models/user/managed-user.d.ts.map +1 -0
  153. package/esm/src/models/user/managed-user.js +255 -0
  154. package/{dist/modules/profile/profile.model.d.ts → esm/src/models/user/profile.d.ts} +52 -81
  155. package/esm/src/models/user/profile.d.ts.map +1 -0
  156. package/esm/src/models/user/profile.js +334 -0
  157. package/esm/src/models/wallet/index.d.ts +4 -0
  158. package/esm/src/models/wallet/index.d.ts.map +1 -0
  159. package/esm/src/models/wallet/index.js +3 -0
  160. package/esm/src/models/wallet/schemas.d.ts +95 -0
  161. package/esm/src/models/wallet/schemas.d.ts.map +1 -0
  162. package/esm/src/models/wallet/schemas.js +35 -0
  163. package/esm/src/models/wallet/statement_entry.d.ts +160 -0
  164. package/esm/src/models/wallet/statement_entry.d.ts.map +1 -0
  165. package/esm/src/models/wallet/statement_entry.js +255 -0
  166. package/{dist/modules/wallet/wallet.model.d.ts → esm/src/models/wallet/wallet.d.ts} +37 -31
  167. package/esm/src/models/wallet/wallet.d.ts.map +1 -0
  168. package/esm/src/models/wallet/wallet.js +279 -0
  169. package/esm/src/shared/base_repository.d.ts +80 -0
  170. package/esm/src/shared/base_repository.d.ts.map +1 -0
  171. package/esm/src/shared/base_repository.js +153 -0
  172. package/esm/src/shared/common_responses.d.ts +13 -0
  173. package/esm/src/shared/common_responses.d.ts.map +1 -0
  174. package/esm/src/shared/common_responses.js +10 -0
  175. package/esm/src/shared/index.d.ts +3 -0
  176. package/esm/src/shared/index.d.ts.map +1 -0
  177. package/esm/src/shared/index.js +2 -0
  178. package/esm/src/shared/token_required_repository.d.ts +78 -0
  179. package/esm/src/shared/token_required_repository.d.ts.map +1 -0
  180. package/esm/src/shared/token_required_repository.js +128 -0
  181. package/package.json +23 -49
  182. package/script/mod.d.ts +8 -0
  183. package/script/mod.d.ts.map +1 -0
  184. package/script/mod.js +23 -0
  185. package/script/npm/src/mod.d.ts +8 -0
  186. package/script/npm/src/mod.d.ts.map +1 -0
  187. package/script/npm/src/mod.js +23 -0
  188. package/script/npm/src/src/errors/api_error.d.ts +63 -0
  189. package/script/npm/src/src/errors/api_error.d.ts.map +1 -0
  190. package/script/npm/src/src/errors/api_error.js +94 -0
  191. package/script/npm/src/src/errors/index.d.ts +3 -0
  192. package/script/npm/src/src/errors/index.d.ts.map +1 -0
  193. package/script/npm/src/src/errors/index.js +18 -0
  194. package/script/npm/src/src/errors/permission_error.d.ts +48 -0
  195. package/script/npm/src/src/errors/permission_error.d.ts.map +1 -0
  196. package/script/npm/src/src/errors/permission_error.js +74 -0
  197. package/script/npm/src/src/features/admin/contract.d.ts +842 -0
  198. package/script/npm/src/src/features/admin/contract.d.ts.map +1 -0
  199. package/script/npm/src/src/features/admin/contract.js +213 -0
  200. package/script/npm/src/src/features/admin/index.d.ts +4 -0
  201. package/script/npm/src/src/features/admin/index.d.ts.map +1 -0
  202. package/script/npm/src/src/features/admin/index.js +19 -0
  203. package/script/npm/src/src/features/admin/repository.d.ts +114 -0
  204. package/script/npm/src/src/features/admin/repository.d.ts.map +1 -0
  205. package/script/npm/src/src/features/admin/repository.js +252 -0
  206. package/script/npm/src/src/features/admin/schemas.d.ts +146 -0
  207. package/script/npm/src/src/features/admin/schemas.d.ts.map +1 -0
  208. package/script/npm/src/src/features/admin/schemas.js +209 -0
  209. package/script/npm/src/src/features/auth/access/contract.d.ts +14 -0
  210. package/script/npm/src/src/features/auth/access/contract.d.ts.map +1 -0
  211. package/script/npm/src/src/features/auth/access/contract.js +17 -0
  212. package/script/npm/src/src/features/auth/access/repository.d.ts +11 -0
  213. package/script/npm/src/src/features/auth/access/repository.d.ts.map +1 -0
  214. package/script/npm/src/src/features/auth/access/repository.js +29 -0
  215. package/script/npm/src/src/features/auth/contract.d.ts +112 -0
  216. package/script/npm/src/src/features/auth/contract.d.ts.map +1 -0
  217. package/script/npm/src/src/features/auth/contract.js +46 -0
  218. package/script/npm/src/src/features/auth/identity/contract.d.ts +23 -0
  219. package/script/npm/src/src/features/auth/identity/contract.d.ts.map +1 -0
  220. package/script/npm/src/src/features/auth/identity/contract.js +20 -0
  221. package/script/npm/src/src/features/auth/identity/repository.d.ts +22 -0
  222. package/script/npm/src/src/features/auth/identity/repository.d.ts.map +1 -0
  223. package/script/npm/src/src/features/auth/identity/repository.js +34 -0
  224. package/script/npm/src/src/features/auth/index.d.ts +6 -0
  225. package/script/npm/src/src/features/auth/index.d.ts.map +1 -0
  226. package/script/npm/src/src/features/auth/index.js +21 -0
  227. package/script/npm/src/src/features/auth/manager.d.ts +105 -0
  228. package/script/npm/src/src/features/auth/manager.d.ts.map +1 -0
  229. package/script/npm/src/src/features/auth/manager.js +185 -0
  230. package/script/npm/src/src/features/auth/profile/contract.d.ts +37 -0
  231. package/script/npm/src/src/features/auth/profile/contract.d.ts.map +1 -0
  232. package/script/npm/src/src/features/auth/profile/contract.js +17 -0
  233. package/script/npm/src/src/features/auth/profile/repository.d.ts +11 -0
  234. package/script/npm/src/src/features/auth/profile/repository.d.ts.map +1 -0
  235. package/script/npm/src/src/features/auth/profile/repository.js +29 -0
  236. package/script/npm/src/src/features/auth/repository.d.ts +30 -0
  237. package/script/npm/src/src/features/auth/repository.d.ts.map +1 -0
  238. package/script/npm/src/src/features/auth/repository.js +73 -0
  239. package/script/npm/src/src/features/auth/storage/client_store.d.ts +30 -0
  240. package/script/npm/src/src/features/auth/storage/client_store.d.ts.map +1 -0
  241. package/script/npm/src/src/features/auth/storage/client_store.js +51 -0
  242. package/script/npm/src/src/features/auth/storage/client_token_handler.d.ts +32 -0
  243. package/script/npm/src/src/features/auth/storage/client_token_handler.d.ts.map +1 -0
  244. package/script/npm/src/src/features/auth/storage/client_token_handler.js +40 -0
  245. package/script/npm/src/src/features/auth/storage/server_store.d.ts +24 -0
  246. package/script/npm/src/src/features/auth/storage/server_store.d.ts.map +1 -0
  247. package/script/npm/src/src/features/auth/storage/server_store.js +38 -0
  248. package/script/npm/src/src/features/auth/storage/server_token_handler.d.ts +36 -0
  249. package/script/npm/src/src/features/auth/storage/server_token_handler.d.ts.map +1 -0
  250. package/script/npm/src/src/features/auth/storage/server_token_handler.js +119 -0
  251. package/script/npm/src/src/features/auth/storage/types.d.ts +42 -0
  252. package/script/npm/src/src/features/auth/storage/types.d.ts.map +1 -0
  253. package/script/npm/src/src/features/auth/storage/types.js +2 -0
  254. package/script/npm/src/src/features/contact/contract.d.ts +170 -0
  255. package/script/npm/src/src/features/contact/contract.d.ts.map +1 -0
  256. package/script/npm/src/src/features/contact/contract.js +52 -0
  257. package/script/npm/src/src/features/contact/index.d.ts +2 -0
  258. package/script/npm/src/src/features/contact/index.d.ts.map +1 -0
  259. package/script/npm/src/src/features/contact/index.js +17 -0
  260. package/script/npm/src/src/features/contact/repository.d.ts +58 -0
  261. package/script/npm/src/src/features/contact/repository.d.ts.map +1 -0
  262. package/script/npm/src/src/features/contact/repository.js +112 -0
  263. package/script/npm/src/src/features/payout/contract.d.ts +623 -0
  264. package/script/npm/src/src/features/payout/contract.d.ts.map +1 -0
  265. package/script/npm/src/src/features/payout/contract.js +78 -0
  266. package/script/npm/src/src/features/payout/index.d.ts +2 -0
  267. package/script/npm/src/src/features/payout/index.d.ts.map +1 -0
  268. package/script/npm/src/src/features/payout/index.js +17 -0
  269. package/script/npm/src/src/features/payout/repository.d.ts +67 -0
  270. package/script/npm/src/src/features/payout/repository.d.ts.map +1 -0
  271. package/script/npm/src/src/features/payout/repository.js +167 -0
  272. package/script/npm/src/src/features/wallet/contract.d.ts +137 -0
  273. package/script/npm/src/src/features/wallet/contract.d.ts.map +1 -0
  274. package/script/npm/src/src/features/wallet/contract.js +41 -0
  275. package/script/npm/src/src/features/wallet/index.d.ts +2 -0
  276. package/script/npm/src/src/features/wallet/index.d.ts.map +1 -0
  277. package/script/npm/src/src/features/wallet/index.js +17 -0
  278. package/script/npm/src/src/features/wallet/repository.d.ts +57 -0
  279. package/script/npm/src/src/features/wallet/repository.d.ts.map +1 -0
  280. package/script/npm/src/src/features/wallet/repository.js +97 -0
  281. package/script/npm/src/src/models/contact/derivatives/contact.d.ts +172 -0
  282. package/script/npm/src/src/models/contact/derivatives/contact.d.ts.map +1 -0
  283. package/script/npm/src/src/models/contact/derivatives/contact.js +270 -0
  284. package/script/npm/src/src/models/contact/derivatives/contact_info.d.ts +188 -0
  285. package/script/npm/src/src/models/contact/derivatives/contact_info.d.ts.map +1 -0
  286. package/script/npm/src/src/models/contact/derivatives/contact_info.js +260 -0
  287. package/script/npm/src/src/models/contact/index.d.ts +5 -0
  288. package/script/npm/src/src/models/contact/index.d.ts.map +1 -0
  289. package/script/npm/src/src/models/contact/index.js +20 -0
  290. package/script/npm/src/src/models/contact/schemas.d.ts +66 -0
  291. package/script/npm/src/src/models/contact/schemas.d.ts.map +1 -0
  292. package/script/npm/src/src/models/contact/schemas.js +67 -0
  293. package/script/npm/src/src/models/contact/validation.d.ts +37 -0
  294. package/script/npm/src/src/models/contact/validation.d.ts.map +1 -0
  295. package/script/npm/src/src/models/contact/validation.js +153 -0
  296. package/script/npm/src/src/models/index.d.ts +7 -0
  297. package/script/npm/src/src/models/index.d.ts.map +1 -0
  298. package/script/npm/src/src/models/index.js +22 -0
  299. package/script/npm/src/src/models/payout/api.d.ts +29 -0
  300. package/script/npm/src/src/models/payout/api.d.ts.map +1 -0
  301. package/script/npm/src/src/models/payout/api.js +2 -0
  302. package/script/npm/src/src/models/payout/channel.d.ts +58 -0
  303. package/script/npm/src/src/models/payout/channel.d.ts.map +1 -0
  304. package/script/npm/src/src/models/payout/channel.js +56 -0
  305. package/script/npm/src/src/models/payout/derivatives/payout.d.ts +158 -0
  306. package/script/npm/src/src/models/payout/derivatives/payout.d.ts.map +1 -0
  307. package/script/npm/src/src/models/payout/derivatives/payout.js +275 -0
  308. package/script/npm/src/src/models/payout/index.d.ts +7 -0
  309. package/script/npm/src/src/models/payout/index.d.ts.map +1 -0
  310. package/script/npm/src/src/models/payout/index.js +22 -0
  311. package/script/npm/src/src/models/payout/narration.d.ts +164 -0
  312. package/script/npm/src/src/models/payout/narration.d.ts.map +1 -0
  313. package/script/npm/src/src/models/payout/narration.js +312 -0
  314. package/script/npm/src/src/models/payout/schemas.d.ts +156 -0
  315. package/script/npm/src/src/models/payout/schemas.d.ts.map +1 -0
  316. package/script/npm/src/src/models/payout/schemas.js +108 -0
  317. package/script/npm/src/src/models/payout/status.d.ts +33 -0
  318. package/script/npm/src/src/models/payout/status.d.ts.map +1 -0
  319. package/script/npm/src/src/models/payout/status.js +37 -0
  320. package/script/npm/src/src/models/permission.d.ts +55 -0
  321. package/script/npm/src/src/models/permission.d.ts.map +1 -0
  322. package/script/npm/src/src/models/permission.js +53 -0
  323. package/script/npm/src/src/models/role.d.ts +21 -0
  324. package/script/npm/src/src/models/role.d.ts.map +1 -0
  325. package/script/npm/src/src/models/role.js +77 -0
  326. package/script/npm/src/src/models/user/authenticated-user.d.ts +77 -0
  327. package/script/npm/src/src/models/user/authenticated-user.d.ts.map +1 -0
  328. package/script/npm/src/src/models/user/authenticated-user.js +230 -0
  329. package/script/npm/src/src/models/user/index.d.ts +4 -0
  330. package/script/npm/src/src/models/user/index.d.ts.map +1 -0
  331. package/script/npm/src/src/models/user/index.js +19 -0
  332. package/script/npm/src/src/models/user/managed-user.d.ts +108 -0
  333. package/script/npm/src/src/models/user/managed-user.d.ts.map +1 -0
  334. package/script/npm/src/src/models/user/managed-user.js +260 -0
  335. package/script/npm/src/src/models/user/profile.d.ts +161 -0
  336. package/script/npm/src/src/models/user/profile.d.ts.map +1 -0
  337. package/script/npm/src/src/models/user/profile.js +338 -0
  338. package/script/npm/src/src/models/wallet/index.d.ts +4 -0
  339. package/script/npm/src/src/models/wallet/index.d.ts.map +1 -0
  340. package/script/npm/src/src/models/wallet/index.js +19 -0
  341. package/script/npm/src/src/models/wallet/schemas.d.ts +95 -0
  342. package/script/npm/src/src/models/wallet/schemas.d.ts.map +1 -0
  343. package/script/npm/src/src/models/wallet/schemas.js +38 -0
  344. package/script/npm/src/src/models/wallet/statement_entry.d.ts +160 -0
  345. package/script/npm/src/src/models/wallet/statement_entry.d.ts.map +1 -0
  346. package/script/npm/src/src/models/wallet/statement_entry.js +259 -0
  347. package/script/npm/src/src/models/wallet/wallet.d.ts +147 -0
  348. package/script/npm/src/src/models/wallet/wallet.d.ts.map +1 -0
  349. package/script/npm/src/src/models/wallet/wallet.js +283 -0
  350. package/script/npm/src/src/shared/base_repository.d.ts +80 -0
  351. package/script/npm/src/src/shared/base_repository.d.ts.map +1 -0
  352. package/script/npm/src/src/shared/base_repository.js +157 -0
  353. package/script/npm/src/src/shared/common_responses.d.ts +13 -0
  354. package/script/npm/src/src/shared/common_responses.d.ts.map +1 -0
  355. package/script/npm/src/src/shared/common_responses.js +13 -0
  356. package/script/npm/src/src/shared/index.d.ts +3 -0
  357. package/script/npm/src/src/shared/index.d.ts.map +1 -0
  358. package/script/npm/src/src/shared/index.js +18 -0
  359. package/script/npm/src/src/shared/token_required_repository.d.ts +78 -0
  360. package/script/npm/src/src/shared/token_required_repository.d.ts.map +1 -0
  361. package/script/npm/src/src/shared/token_required_repository.js +132 -0
  362. package/script/package.json +3 -0
  363. package/dist/index.cjs.js +0 -2
  364. package/dist/index.cjs.js.map +0 -1
  365. package/dist/index.d.ts +0 -10
  366. package/dist/index.esm.js +0 -2
  367. package/dist/index.esm.js.map +0 -1
  368. package/dist/lib/api/base-repository.d.ts +0 -175
  369. package/dist/lib/api/index.d.ts +0 -1
  370. package/dist/lib/error/error.utils.d.ts +0 -22
  371. package/dist/lib/error/index.d.ts +0 -3
  372. package/dist/lib/query/index.d.ts +0 -4
  373. package/dist/lib/query/pagination/pagination.d.ts +0 -73
  374. package/dist/lib/query/pagination/pagination.schemas.d.ts +0 -83
  375. package/dist/lib/query/query.builder.d.ts +0 -71
  376. package/dist/lib/query/query.types.d.ts +0 -36
  377. package/dist/modules/auth/auth.manager.d.ts +0 -249
  378. package/dist/modules/auth/auth.repository.d.ts +0 -83
  379. package/dist/modules/auth/auth.store.d.ts +0 -139
  380. package/dist/modules/auth/company-membership.model.d.ts +0 -171
  381. package/dist/modules/auth/index.d.ts +0 -4
  382. package/dist/modules/auth/user.model.d.ts +0 -363
  383. package/dist/modules/contact/contact-info.model.d.ts +0 -485
  384. package/dist/modules/contact/contact-input-handler.d.ts +0 -16
  385. package/dist/modules/contact/contact.dtos.d.ts +0 -84
  386. package/dist/modules/contact/contact.model.d.ts +0 -441
  387. package/dist/modules/contact/contact.repository.d.ts +0 -116
  388. package/dist/modules/contact/index.d.ts +0 -4
  389. package/dist/modules/login/index.d.ts +0 -4
  390. package/dist/modules/login/login.api-contract.d.ts +0 -51
  391. package/dist/modules/login/login.dtos.d.ts +0 -85
  392. package/dist/modules/login/login.model.d.ts +0 -168
  393. package/dist/modules/login/login.repository.d.ts +0 -58
  394. package/dist/modules/payout/index.d.ts +0 -5
  395. package/dist/modules/payout/payout-channel-handler.d.ts +0 -82
  396. package/dist/modules/payout/payout.dtos.d.ts +0 -605
  397. package/dist/modules/payout/payout.model.d.ts +0 -379
  398. package/dist/modules/payout/payout.query.d.ts +0 -133
  399. package/dist/modules/payout/payout.repository.d.ts +0 -181
  400. package/dist/modules/profile/index.d.ts +0 -3
  401. package/dist/modules/profile/profile.dtos.d.ts +0 -80
  402. package/dist/modules/profile/profile.repository.d.ts +0 -56
  403. package/dist/modules/team-member/index.d.ts +0 -4
  404. package/dist/modules/team-member/role.model.d.ts +0 -61
  405. package/dist/modules/team-member/team-member.dtos.d.ts +0 -261
  406. package/dist/modules/team-member/team-member.model.d.ts +0 -237
  407. package/dist/modules/team-member/team-member.repository.d.ts +0 -179
  408. package/dist/modules/wallet/index.d.ts +0 -7
  409. package/dist/modules/wallet/narration.model.d.ts +0 -225
  410. package/dist/modules/wallet/statement-entry.model.d.ts +0 -299
  411. package/dist/modules/wallet/wallet-manager.session.d.ts +0 -143
  412. package/dist/modules/wallet/wallet.dtos.d.ts +0 -204
  413. package/dist/modules/wallet/wallet.query.d.ts +0 -95
  414. package/dist/modules/wallet/wallet.repository.d.ts +0 -205
  415. package/dist/modules/wallet/wallet.utils.d.ts +0 -17
@@ -0,0 +1,105 @@
1
+ import { z } from "zod";
2
+ import { PAYOUT_APPROVAL_STATUS, PAYOUT_STATUS, } from "./status.js";
3
+ /**
4
+ * Creates a Zod schema that transforms null values to undefined
5
+ * This is useful when dealing with APIs that return null but you want to use undefined in your codebase
6
+ *
7
+ * @template T - The type of Zod schema being transformed
8
+ * @param {T} schema - The original Zod schema to transform
9
+ * @returns {MakeOptionalResult<T>} A new schema that:
10
+ * - Accepts the original type or null as input
11
+ * - Outputs the original type or undefined
12
+ * - Automatically transforms null to undefined during validation
13
+ *
14
+ * @example
15
+ * const userSchema = z.object({
16
+ * name: makeOptional(z.string()), // accepts: string | null, outputs: string | undefined
17
+ * });
18
+ *
19
+ * // These are all valid:
20
+ * userSchema.parse({ name: "John" }) // { name: "John" }
21
+ * userSchema.parse({ name: null }) // { name: undefined }
22
+ */
23
+ const makeOptional = (schema) => schema.nullable().transform((val) => val === null ? undefined : val);
24
+ /**
25
+ * Schema for identifying users in the payout process
26
+ * Used to track who created or actioned a payout
27
+ */
28
+ const identifierSchema = z.object({
29
+ name: z.string(),
30
+ identity: z.string(),
31
+ });
32
+ /**
33
+ * Schema for payout status
34
+ * Defines all possible states a payout can be in
35
+ */
36
+ const payoutStatusSchema = z.enum([
37
+ PAYOUT_STATUS.CREATED,
38
+ PAYOUT_STATUS.PAID,
39
+ PAYOUT_STATUS.FAILED,
40
+ PAYOUT_STATUS.REJECTED,
41
+ PAYOUT_STATUS.PENDING,
42
+ PAYOUT_STATUS.QUEUED,
43
+ PAYOUT_STATUS.REVERSED,
44
+ ]);
45
+ /**
46
+ * Schema for payout approval status
47
+ * Defines all possible approval states
48
+ */
49
+ const approvalPayoutStatusSchema = z.enum([
50
+ PAYOUT_APPROVAL_STATUS.APPROVED,
51
+ PAYOUT_APPROVAL_STATUS.PENDING,
52
+ PAYOUT_APPROVAL_STATUS.REJECTED,
53
+ ]);
54
+ /**
55
+ * Base schema for payout operations
56
+ * Contains common fields used across all payout operations
57
+ */
58
+ const basePayoutSchema = z.object({
59
+ channel: z.string(),
60
+ msisdn: z.string(),
61
+ amount: z.coerce.number(),
62
+ description: z.string(),
63
+ notes: makeOptional(z.string()).optional(),
64
+ });
65
+ /**
66
+ * Schema for creating a new payout
67
+ * Extends base payout schema with payee information
68
+ */
69
+ const payoutInputSchema = basePayoutSchema.extend({
70
+ payeeName: z.string(),
71
+ });
72
+ /**
73
+ * Schema for complete payout record
74
+ * Extends base payout schema with additional fields for:
75
+ * - Identification (id, profileId)
76
+ * - Status tracking
77
+ * - Timestamps
78
+ * - Approval information
79
+ * - User tracking (created by, actioned by)
80
+ */
81
+ const payoutSchema = basePayoutSchema.extend({
82
+ id: z.string(),
83
+ profileId: z.string(),
84
+ payeeName: z.string(),
85
+ status: payoutStatusSchema,
86
+ statusMessage: z.string(),
87
+ partnerReference: makeOptional(z.string()).optional(),
88
+ createdAt: z.coerce.date(),
89
+ updatedAt: z.coerce.date(),
90
+ actionedAt: z.coerce.date().nullish(),
91
+ approvalStatus: approvalPayoutStatusSchema,
92
+ createdBy: makeOptional(identifierSchema).optional(),
93
+ actionedBy: makeOptional(identifierSchema).optional(),
94
+ });
95
+ /**
96
+ * Export object containing all payout-related schemas
97
+ * Used for validation and type checking throughout the application
98
+ */
99
+ export const PayoutSchemas = {
100
+ payoutData: payoutSchema, // Complete payout record schema
101
+ payoutInput: payoutInputSchema, // New payout input schema
102
+ payoutTransactionStatus: payoutStatusSchema, // Payout status enum schema
103
+ payoutApprovalStatus: approvalPayoutStatusSchema, // Approval status enum schema
104
+ payoutApprover: identifierSchema, // Identifier schema for approvers
105
+ };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Represents the current status of a payout transaction.
3
+ * @enum {string}
4
+ * @readonly
5
+ */
6
+ export declare enum PAYOUT_STATUS {
7
+ QUEUED = "QUEUED",
8
+ /** Payout is awaiting processing */
9
+ PENDING = "PENDING",
10
+ /** Payout has been successfully processed */
11
+ PAID = "PAID",
12
+ /** Payout processing has failed */
13
+ FAILED = "FAILED",
14
+ /** Payout has been rejected */
15
+ REJECTED = "REJECTED",
16
+ /** Payout has been initially created but not yet processed */
17
+ CREATED = "CREATED",
18
+ REVERSED = "REVERSED"
19
+ }
20
+ /**
21
+ * Represents the approval status for payouts that require authorization.
22
+ * @enum {string}
23
+ * @readonly
24
+ */
25
+ export declare enum PAYOUT_APPROVAL_STATUS {
26
+ /** Payout is awaiting approval decision */
27
+ PENDING = "Pending",
28
+ /** Payout has been approved */
29
+ APPROVED = "Approved",
30
+ /** Payout has been rejected during approval process */
31
+ REJECTED = "Rejected"
32
+ }
33
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,aAAa;IACvB,MAAM,WAAW;IAEjB,oCAAoC;IACpC,OAAO,YAAY;IACnB,6CAA6C;IAC7C,IAAI,SAAS;IACb,mCAAmC;IACnC,MAAM,WAAW;IACjB,+BAA+B;IAC/B,QAAQ,aAAa;IACrB,8DAA8D;IAC9D,OAAO,YAAY;IAEnB,QAAQ,aAAa;CACtB;AAED;;;;GAIG;AACH,oBAAY,sBAAsB;IAChC,2CAA2C;IAC3C,OAAO,YAAY;IACnB,+BAA+B;IAC/B,QAAQ,aAAa;IACrB,uDAAuD;IACvD,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Represents the current status of a payout transaction.
3
+ * @enum {string}
4
+ * @readonly
5
+ */
6
+ export var PAYOUT_STATUS;
7
+ (function (PAYOUT_STATUS) {
8
+ PAYOUT_STATUS["QUEUED"] = "QUEUED";
9
+ /** Payout is awaiting processing */
10
+ PAYOUT_STATUS["PENDING"] = "PENDING";
11
+ /** Payout has been successfully processed */
12
+ PAYOUT_STATUS["PAID"] = "PAID";
13
+ /** Payout processing has failed */
14
+ PAYOUT_STATUS["FAILED"] = "FAILED";
15
+ /** Payout has been rejected */
16
+ PAYOUT_STATUS["REJECTED"] = "REJECTED";
17
+ /** Payout has been initially created but not yet processed */
18
+ PAYOUT_STATUS["CREATED"] = "CREATED";
19
+ PAYOUT_STATUS["REVERSED"] = "REVERSED";
20
+ })(PAYOUT_STATUS || (PAYOUT_STATUS = {}));
21
+ /**
22
+ * Represents the approval status for payouts that require authorization.
23
+ * @enum {string}
24
+ * @readonly
25
+ */
26
+ export var PAYOUT_APPROVAL_STATUS;
27
+ (function (PAYOUT_APPROVAL_STATUS) {
28
+ /** Payout is awaiting approval decision */
29
+ PAYOUT_APPROVAL_STATUS["PENDING"] = "Pending";
30
+ /** Payout has been approved */
31
+ PAYOUT_APPROVAL_STATUS["APPROVED"] = "Approved";
32
+ /** Payout has been rejected during approval process */
33
+ PAYOUT_APPROVAL_STATUS["REJECTED"] = "Rejected";
34
+ })(PAYOUT_APPROVAL_STATUS || (PAYOUT_APPROVAL_STATUS = {}));
@@ -38,17 +38,18 @@ export declare const Permissions: {
38
38
  readonly ViewRoles: "role.findAll";
39
39
  readonly ViewRole: "role.findById";
40
40
  };
41
- readonly TeamManagement: {
42
- readonly ViewMembers: "login.findAll";
43
- readonly ViewMember: "login.findById";
44
- readonly CreateMember: "login.create";
45
- readonly UpdateMember: "login.update";
46
- readonly ArchiveMember: "login.archive";
47
- readonly UnArchiveMember: "login.unarchive";
41
+ readonly UserManagement: {
42
+ readonly ViewUsers: "login.findAll";
43
+ readonly ViewUser: "login.findById";
44
+ readonly CreateUser: "login.create";
45
+ readonly UpdateUser: "login.update";
46
+ readonly ArchiveUser: "login.archive";
47
+ readonly UnArchiveUser: "login.unarchive";
48
48
  readonly ResetPassword: "login.resetPassword";
49
49
  };
50
50
  };
51
51
  /**
52
52
  * Permission Type
53
53
  */
54
- export type Permission = (typeof Permissions.Profile)[keyof typeof Permissions.Profile] | (typeof Permissions.Contact)[keyof typeof Permissions.Contact] | (typeof Permissions.Payment)[keyof typeof Permissions.Payment] | (typeof Permissions.Payout)[keyof typeof Permissions.Payout] | (typeof Permissions.Transfer)[keyof typeof Permissions.Transfer] | (typeof Permissions.TeamManagement)[keyof typeof Permissions.TeamManagement] | (typeof Permissions.Role)[keyof typeof Permissions.Role] | (typeof Permissions.Wallet)[keyof typeof Permissions.Wallet];
54
+ export type Permission = typeof Permissions.Profile[keyof typeof Permissions.Profile] | typeof Permissions.Contact[keyof typeof Permissions.Contact] | typeof Permissions.Payment[keyof typeof Permissions.Payment] | typeof Permissions.Payout[keyof typeof Permissions.Payout] | typeof Permissions.Transfer[keyof typeof Permissions.Transfer] | typeof Permissions.UserManagement[keyof typeof Permissions.UserManagement] | typeof Permissions.Role[keyof typeof Permissions.Role] | typeof Permissions.Wallet[keyof typeof Permissions.Wallet];
55
+ //# sourceMappingURL=permission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/src/models/permission.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Cd,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,OAAO,WAAW,CAAC,OAAO,CAAC,GAC5D,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,OAAO,WAAW,CAAC,OAAO,CAAC,GAC5D,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,OAAO,WAAW,CAAC,OAAO,CAAC,GAC5D,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,OAAO,WAAW,CAAC,MAAM,CAAC,GAC1D,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,OAAO,WAAW,CAAC,QAAQ,CAAC,GAC9D,OAAO,WAAW,CAAC,cAAc,CAAC,MAAM,OAAO,WAAW,CAAC,cAAc,CAAC,GAC1E,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,OAAO,WAAW,CAAC,IAAI,CAAC,GACtD,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * All Afloat Permissions
3
+ */
4
+ export const Permissions = {
5
+ Profile: {
6
+ ViewCurrent: "profile.getCurrent",
7
+ Update: "profile.update",
8
+ },
9
+ Contact: {
10
+ View: "contact.findById",
11
+ List: "contact.findAll",
12
+ Create: "contact.create",
13
+ Update: "contact.update",
14
+ Delete: "contact.delete",
15
+ },
16
+ Payment: {
17
+ View: "payment.findById",
18
+ List: "payment.findAll",
19
+ Create: "payment.create",
20
+ },
21
+ Payout: {
22
+ View: "payout.findById",
23
+ List: "payout.findAll",
24
+ Create: "payout.create",
25
+ Approve: "payout.approve",
26
+ },
27
+ Transfer: {
28
+ View: "transfer.findById",
29
+ List: "transfer.findAll",
30
+ Create: "transfer.create",
31
+ Approve: "transfer.approve",
32
+ },
33
+ Wallet: {
34
+ ViewBalance: "wallet.getBalance",
35
+ ViewStatement: "wallet.getStatement",
36
+ },
37
+ Role: {
38
+ ViewRoles: "role.findAll",
39
+ ViewRole: "role.findById",
40
+ },
41
+ UserManagement: {
42
+ ViewUsers: "login.findAll",
43
+ ViewUser: "login.findById",
44
+ CreateUser: "login.create",
45
+ UpdateUser: "login.update",
46
+ ArchiveUser: "login.archive",
47
+ UnArchiveUser: "login.unarchive",
48
+ ResetPassword: "login.resetPassword",
49
+ },
50
+ }; // Make it deeply readonly
@@ -0,0 +1,21 @@
1
+ export interface RoleData {
2
+ id: string;
3
+ name: string;
4
+ description?: string;
5
+ access: string[];
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ }
9
+ export declare class Role {
10
+ readonly id: string;
11
+ readonly name: string;
12
+ readonly description?: string;
13
+ readonly permissions: ReadonlySet<string>;
14
+ readonly createdAt: Date;
15
+ readonly updatedAt: Date;
16
+ constructor(data: RoleData);
17
+ hasPermission(permission: string): boolean;
18
+ static from(data: any): Role | undefined;
19
+ toJSON(): any;
20
+ }
21
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../../src/src/models/role.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,IAAI;IACf,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,SAAgB,SAAS,EAAE,IAAI,CAAC;IAChC,SAAgB,SAAS,EAAE,IAAI,CAAC;gBAEpB,IAAI,EAAE,QAAQ;IAS1B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI1C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS;IAYxC,MAAM,IAAI,GAAG;CAUd"}
@@ -0,0 +1,73 @@
1
+ // deno-lint-ignore-file no-explicit-any
2
+ // ====================== Role Entity ====================== //
3
+ export class Role {
4
+ constructor(data) {
5
+ Object.defineProperty(this, "id", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: void 0
10
+ });
11
+ Object.defineProperty(this, "name", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: void 0
16
+ });
17
+ Object.defineProperty(this, "description", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: void 0
22
+ });
23
+ Object.defineProperty(this, "permissions", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: void 0
28
+ });
29
+ Object.defineProperty(this, "createdAt", {
30
+ enumerable: true,
31
+ configurable: true,
32
+ writable: true,
33
+ value: void 0
34
+ });
35
+ Object.defineProperty(this, "updatedAt", {
36
+ enumerable: true,
37
+ configurable: true,
38
+ writable: true,
39
+ value: void 0
40
+ });
41
+ this.id = data.id;
42
+ this.name = data.name;
43
+ this.description = data.description;
44
+ this.permissions = new Set(data.access);
45
+ this.createdAt = new Date(data.createdAt);
46
+ this.updatedAt = new Date(data.updatedAt);
47
+ }
48
+ hasPermission(permission) {
49
+ return this.permissions.has(permission);
50
+ }
51
+ static from(data) {
52
+ try {
53
+ if (!data?.id || !data?.name || !Array.isArray(data?.access)) {
54
+ return undefined;
55
+ }
56
+ return new Role(data);
57
+ }
58
+ catch (error) {
59
+ console.error("Error creating Role:", error);
60
+ return undefined;
61
+ }
62
+ }
63
+ toJSON() {
64
+ return {
65
+ id: this.id,
66
+ name: this.name,
67
+ description: this.description,
68
+ access: Array.from(this.permissions),
69
+ createdAt: this.createdAt.toISOString(),
70
+ updatedAt: this.updatedAt.toISOString(),
71
+ };
72
+ }
73
+ }
@@ -0,0 +1,77 @@
1
+ import { Profile } from "./profile.js";
2
+ /**
3
+ * Represents a user in Afloat.
4
+ *
5
+ * This class centralizes user-related logic, simplifying interaction
6
+ * with user-related data and ensuring consistent permission checks across the application.
7
+ */
8
+ export declare class User {
9
+ /**
10
+ * Logged-in user name
11
+ */
12
+ name: string;
13
+ /**
14
+ * Logged-in identity: phone-number or email address
15
+ */
16
+ identity: string;
17
+ /**
18
+ * The user's Afloat profile, containing personal information such as name, contact details, and account information.
19
+ */
20
+ profile: Profile;
21
+ /**
22
+ * The user's authentication token. This token must be passed in the request headers
23
+ * for all authenticated API endpoints.
24
+ */
25
+ token: string;
26
+ /**
27
+ * Indicates whether the user is required to change their default password.
28
+ *
29
+ * Afloat users are initially provided with a default username and password. After the first
30
+ * successful login, `resetPassword` will be set to `true` to prompt the user to set a new password.
31
+ */
32
+ resetPassword: boolean;
33
+ /**
34
+ * A map of permission keys to boolean values, indicating whether the user has access
35
+ * to specific actions or features in the system.
36
+ */
37
+ private permissionsMap;
38
+ /**
39
+ * Creates a new instance of the `User` class.
40
+ *
41
+ * @param userData - An object containing the user's profile, token,
42
+ * permissions (access list), and the `resetPassword` flag.
43
+ */
44
+ private constructor();
45
+ /**
46
+ * Checks if the user has a specific permission.
47
+ *
48
+ * @param permission - The permission key to check.
49
+ * @returns `true` if the user has the specified permission, otherwise `false`.
50
+ */
51
+ can(permission: string): boolean;
52
+ /**
53
+ * Serializes the `User` instance to a JSON string.
54
+ *
55
+ * @returns A JSON string representation of the `User` instance, including:
56
+ * - `profile`: The user's profile information. (Requires profile.toJSON() method)
57
+ * - `token`: The user's authentication token.
58
+ * - `resetPassword`: Indicates whether the user must reset their password.
59
+ * - `permissions`: An array of permission keys the user has.
60
+ */
61
+ toJSON(): string;
62
+ /**
63
+ * Creates a new `User` instance from a JSON string.
64
+ *
65
+ * @param jsonString - A JSON string containing user data.
66
+ * @returns A `User` instance reconstructed from the JSON data, or undefined if jsonString is invalid.
67
+ */
68
+ static fromJSON(jsonString: string): User | undefined;
69
+ /**
70
+ * Creates a new `User` instance from a data object, JSON string, or object with a Profile instance/object.
71
+ *
72
+ * @param data - The data object, JSON string, or object with Profile instance/object containing user information.
73
+ * @returns A `User` instance, or undefined if data is invalid.
74
+ */
75
+ static from(data: any): User | undefined;
76
+ }
77
+ //# sourceMappingURL=authenticated-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticated-user.d.ts","sourceRoot":"","sources":["../../../../src/src/models/user/authenticated-user.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,IAAI;IACf;;OAEG;IACI,IAAI,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACI,QAAQ,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,OAAO,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACI,KAAK,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACI,aAAa,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,OAAO,CAAC,cAAc,CAA0B;IAEhD;;;;;OAKG;IACH,OAAO;IAwBP;;;;;OAKG;IACI,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIvC;;;;;;;;OAQG;IACI,MAAM,IAAI,MAAM;IAavB;;;;;OAKG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAS5D;;;;;OAKG;WACW,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS;CA4FhD"}
@@ -0,0 +1,226 @@
1
+ // deno-lint-ignore-file no-explicit-any
2
+ import { Permissions } from "../permission.js";
3
+ import { Profile } from "./profile.js";
4
+ /**
5
+ * Represents a user in Afloat.
6
+ *
7
+ * This class centralizes user-related logic, simplifying interaction
8
+ * with user-related data and ensuring consistent permission checks across the application.
9
+ */
10
+ export class User {
11
+ /**
12
+ * Creates a new instance of the `User` class.
13
+ *
14
+ * @param userData - An object containing the user's profile, token,
15
+ * permissions (access list), and the `resetPassword` flag.
16
+ */
17
+ constructor(data) {
18
+ /**
19
+ * Logged-in user name
20
+ */
21
+ Object.defineProperty(this, "name", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: void 0
26
+ });
27
+ /**
28
+ * Logged-in identity: phone-number or email address
29
+ */
30
+ Object.defineProperty(this, "identity", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: void 0
35
+ });
36
+ /**
37
+ * The user's Afloat profile, containing personal information such as name, contact details, and account information.
38
+ */
39
+ Object.defineProperty(this, "profile", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: void 0
44
+ });
45
+ /**
46
+ * The user's authentication token. This token must be passed in the request headers
47
+ * for all authenticated API endpoints.
48
+ */
49
+ Object.defineProperty(this, "token", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: void 0
54
+ });
55
+ /**
56
+ * Indicates whether the user is required to change their default password.
57
+ *
58
+ * Afloat users are initially provided with a default username and password. After the first
59
+ * successful login, `resetPassword` will be set to `true` to prompt the user to set a new password.
60
+ */
61
+ Object.defineProperty(this, "resetPassword", {
62
+ enumerable: true,
63
+ configurable: true,
64
+ writable: true,
65
+ value: void 0
66
+ });
67
+ /**
68
+ * A map of permission keys to boolean values, indicating whether the user has access
69
+ * to specific actions or features in the system.
70
+ */
71
+ Object.defineProperty(this, "permissionsMap", {
72
+ enumerable: true,
73
+ configurable: true,
74
+ writable: true,
75
+ value: void 0
76
+ });
77
+ const { profile, token, access, resetPassword, name, identity } = data;
78
+ this.profile = profile;
79
+ this.token = token;
80
+ this.resetPassword = resetPassword;
81
+ this.name = name;
82
+ this.identity = identity;
83
+ this.permissionsMap = {};
84
+ for (const group of Object.values(Permissions)) {
85
+ for (const perm of Object.values(group)) {
86
+ this.permissionsMap[perm] = access.includes(perm);
87
+ }
88
+ }
89
+ }
90
+ /**
91
+ * Checks if the user has a specific permission.
92
+ *
93
+ * @param permission - The permission key to check.
94
+ * @returns `true` if the user has the specified permission, otherwise `false`.
95
+ */
96
+ can(permission) {
97
+ return this.permissionsMap[permission] ?? false;
98
+ }
99
+ /**
100
+ * Serializes the `User` instance to a JSON string.
101
+ *
102
+ * @returns A JSON string representation of the `User` instance, including:
103
+ * - `profile`: The user's profile information. (Requires profile.toJSON() method)
104
+ * - `token`: The user's authentication token.
105
+ * - `resetPassword`: Indicates whether the user must reset their password.
106
+ * - `permissions`: An array of permission keys the user has.
107
+ */
108
+ toJSON() {
109
+ return JSON.stringify({
110
+ profile: this.profile.toObject(),
111
+ token: this.token,
112
+ resetPassword: this.resetPassword,
113
+ name: this.name,
114
+ identity: this.identity,
115
+ permissions: Object.keys(this.permissionsMap).filter((key) => this.permissionsMap[key]),
116
+ });
117
+ }
118
+ /**
119
+ * Creates a new `User` instance from a JSON string.
120
+ *
121
+ * @param jsonString - A JSON string containing user data.
122
+ * @returns A `User` instance reconstructed from the JSON data, or undefined if jsonString is invalid.
123
+ */
124
+ static fromJSON(jsonString) {
125
+ try {
126
+ return User.from(JSON.parse(jsonString));
127
+ }
128
+ catch (e) {
129
+ console.error("Invalid JSON string:", e);
130
+ return undefined;
131
+ }
132
+ }
133
+ /**
134
+ * Creates a new `User` instance from a data object, JSON string, or object with a Profile instance/object.
135
+ *
136
+ * @param data - The data object, JSON string, or object with Profile instance/object containing user information.
137
+ * @returns A `User` instance, or undefined if data is invalid.
138
+ */
139
+ static from(data) {
140
+ let parsedData;
141
+ // Parse JSON string if needed
142
+ if (typeof data === "string") {
143
+ try {
144
+ parsedData = JSON.parse(data);
145
+ }
146
+ catch (error) {
147
+ console.error("Invalid JSON string:", error);
148
+ return undefined;
149
+ }
150
+ }
151
+ else {
152
+ parsedData = data;
153
+ }
154
+ if (!parsedData) {
155
+ console.error("Data is null or undefined.");
156
+ return undefined;
157
+ }
158
+ // Handle different profile formats
159
+ let profile;
160
+ let rawProfile = parsedData.profile;
161
+ // Handle stringified profile (the case in the provided sample)
162
+ if (typeof rawProfile === "string") {
163
+ try {
164
+ // Attempt to parse the stringified profile
165
+ rawProfile = JSON.parse(rawProfile);
166
+ }
167
+ catch (error) {
168
+ console.error("Failed to parse profile JSON string:", error);
169
+ return undefined;
170
+ }
171
+ }
172
+ // Create Profile instance based on what we received
173
+ if (Profile.is(rawProfile)) {
174
+ // Already a Profile instance
175
+ profile = rawProfile;
176
+ }
177
+ else if (typeof rawProfile === "object" && rawProfile !== null) {
178
+ // Convert object to Profile instance
179
+ profile = Profile.from(rawProfile);
180
+ if (!profile) {
181
+ console.error("Failed to create Profile from data:", rawProfile);
182
+ return undefined;
183
+ }
184
+ }
185
+ else if (typeof rawProfile === "string") {
186
+ profile = Profile.fromJSON(rawProfile);
187
+ if (!profile) {
188
+ console.error("Failed to create Profile from JSON data:", rawProfile);
189
+ return undefined;
190
+ }
191
+ }
192
+ else {
193
+ console.error("Invalid profile format:", typeof rawProfile);
194
+ return undefined;
195
+ }
196
+ // Validate other required fields
197
+ if (!parsedData.token || typeof parsedData.token !== "string" ||
198
+ !parsedData.name || typeof parsedData.name !== "string" ||
199
+ !parsedData.identity || typeof parsedData.identity !== "string" ||
200
+ !Array.isArray(parsedData.permissions) &&
201
+ !Array.isArray(parsedData.access) ||
202
+ typeof parsedData.resetPassword !== "boolean") {
203
+ console.error("Missing or invalid required User fields:", {
204
+ token: typeof parsedData.token,
205
+ name: typeof parsedData.name,
206
+ identity: typeof parsedData.identity,
207
+ permissions: Array.isArray(parsedData.permissions),
208
+ access: Array.isArray(parsedData.access),
209
+ resetPassword: typeof parsedData.resetPassword,
210
+ });
211
+ return undefined;
212
+ }
213
+ // Support both 'permissions' and 'access' field names
214
+ const access = parsedData.access || parsedData.permissions;
215
+ // Create and return the User instance
216
+ const args = {
217
+ profile: profile,
218
+ token: parsedData.token,
219
+ access: access,
220
+ resetPassword: parsedData.resetPassword,
221
+ name: parsedData.name,
222
+ identity: parsedData.identity,
223
+ };
224
+ return new User(args);
225
+ }
226
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./profile.js";
2
+ export * from "./authenticated-user.js";
3
+ export * from "./managed-user.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/models/user/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}