@temboplus/afloat 0.1.57 → 0.1.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +42 -246
  3. package/esm/_dnt.test_shims.d.ts.map +1 -0
  4. package/esm/deps/jsr.io/@std/assert/1.0.10/almost_equals.d.ts.map +1 -0
  5. package/esm/deps/jsr.io/@std/assert/1.0.10/array_includes.d.ts.map +1 -0
  6. package/esm/deps/jsr.io/@std/assert/1.0.10/assert.d.ts.map +1 -0
  7. package/esm/deps/jsr.io/@std/assert/1.0.10/assertion_error.d.ts.map +1 -0
  8. package/esm/deps/jsr.io/@std/assert/1.0.10/equal.d.ts.map +1 -0
  9. package/esm/deps/jsr.io/@std/assert/1.0.10/equals.d.ts.map +1 -0
  10. package/esm/deps/jsr.io/@std/assert/1.0.10/exists.d.ts.map +1 -0
  11. package/esm/deps/jsr.io/@std/assert/1.0.10/fail.d.ts.map +1 -0
  12. package/esm/deps/jsr.io/@std/assert/1.0.10/false.d.ts.map +1 -0
  13. package/esm/deps/jsr.io/@std/assert/1.0.10/greater.d.ts.map +1 -0
  14. package/esm/deps/jsr.io/@std/assert/1.0.10/greater_or_equal.d.ts.map +1 -0
  15. package/esm/deps/jsr.io/@std/assert/1.0.10/instance_of.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/assert/1.0.10/is_error.d.ts.map +1 -0
  17. package/esm/deps/jsr.io/@std/assert/1.0.10/less.d.ts.map +1 -0
  18. package/esm/deps/jsr.io/@std/assert/1.0.10/less_or_equal.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/assert/1.0.10/match.d.ts.map +1 -0
  20. package/esm/deps/jsr.io/@std/assert/1.0.10/mod.d.ts.map +1 -0
  21. package/esm/deps/jsr.io/@std/assert/1.0.10/not_equals.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/assert/1.0.10/not_instance_of.d.ts.map +1 -0
  23. package/esm/deps/jsr.io/@std/assert/1.0.10/not_match.d.ts.map +1 -0
  24. package/esm/deps/jsr.io/@std/assert/1.0.10/not_strict_equals.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@std/assert/1.0.10/object_match.d.ts.map +1 -0
  26. package/esm/deps/jsr.io/@std/assert/1.0.10/rejects.d.ts.map +1 -0
  27. package/esm/deps/jsr.io/@std/assert/1.0.10/strict_equals.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@std/assert/1.0.10/string_includes.d.ts.map +1 -0
  29. package/esm/deps/jsr.io/@std/assert/1.0.10/throws.d.ts.map +1 -0
  30. package/esm/deps/jsr.io/@std/assert/1.0.10/unimplemented.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/assert/1.0.10/unreachable.d.ts.map +1 -0
  32. package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
  33. package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
  35. package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
  36. package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
  38. package/esm/mod.d.ts +8 -0
  39. package/esm/mod.d.ts.map +1 -0
  40. package/esm/mod.js +7 -0
  41. package/esm/package.json +3 -0
  42. package/{dist/lib/error/error.api.d.ts → esm/src/errors/api_error.d.ts} +1 -0
  43. package/esm/src/errors/api_error.d.ts.map +1 -0
  44. package/esm/src/errors/api_error.js +90 -0
  45. package/esm/src/errors/index.d.ts +3 -0
  46. package/esm/src/errors/index.d.ts.map +1 -0
  47. package/esm/src/errors/index.js +2 -0
  48. package/{dist/lib/error/error.permission.d.ts → esm/src/errors/permission_error.d.ts} +2 -1
  49. package/esm/src/errors/permission_error.d.ts.map +1 -0
  50. package/esm/src/errors/permission_error.js +70 -0
  51. package/{dist/features/admin/admin.contract.d.ts → esm/src/features/admin/contract.d.ts} +77 -41
  52. package/esm/src/features/admin/contract.d.ts.map +1 -0
  53. package/esm/src/features/admin/contract.js +210 -0
  54. package/esm/src/features/admin/index.d.ts +4 -0
  55. package/esm/src/features/admin/index.d.ts.map +1 -0
  56. package/esm/src/features/admin/index.js +3 -0
  57. package/esm/src/features/admin/repository.d.ts +114 -0
  58. package/esm/src/features/admin/repository.d.ts.map +1 -0
  59. package/esm/src/features/admin/repository.js +248 -0
  60. package/{dist/features/admin/admin.dtos.d.ts → esm/src/features/admin/schemas.d.ts} +9 -8
  61. package/esm/src/features/admin/schemas.d.ts.map +1 -0
  62. package/esm/src/features/admin/schemas.js +206 -0
  63. package/{dist/features/auth/access/access.api-contract.d.ts → esm/src/features/auth/access/contract.d.ts} +1 -0
  64. package/esm/src/features/auth/access/contract.d.ts.map +1 -0
  65. package/esm/src/features/auth/access/contract.js +14 -0
  66. package/esm/src/features/auth/access/repository.d.ts +11 -0
  67. package/esm/src/features/auth/access/repository.d.ts.map +1 -0
  68. package/esm/src/features/auth/access/repository.js +25 -0
  69. package/{dist/features/auth/auth.contract.d.ts → esm/src/features/auth/contract.d.ts} +8 -12
  70. package/esm/src/features/auth/contract.d.ts.map +1 -0
  71. package/esm/src/features/auth/contract.js +43 -0
  72. package/{dist/features/auth/identity/identity.api-contract.d.ts → esm/src/features/auth/identity/contract.d.ts} +1 -0
  73. package/esm/src/features/auth/identity/contract.d.ts.map +1 -0
  74. package/esm/src/features/auth/identity/contract.js +17 -0
  75. package/esm/src/features/auth/identity/repository.d.ts +22 -0
  76. package/esm/src/features/auth/identity/repository.d.ts.map +1 -0
  77. package/esm/src/features/auth/identity/repository.js +30 -0
  78. package/esm/src/features/auth/index.d.ts +6 -0
  79. package/esm/src/features/auth/index.d.ts.map +1 -0
  80. package/esm/src/features/auth/index.js +5 -0
  81. package/esm/src/features/auth/manager.d.ts +105 -0
  82. package/esm/src/features/auth/manager.d.ts.map +1 -0
  83. package/esm/src/features/auth/manager.js +181 -0
  84. package/{dist/features/auth/profile/profile.api-contract.d.ts → esm/src/features/auth/profile/contract.d.ts} +6 -8
  85. package/esm/src/features/auth/profile/contract.d.ts.map +1 -0
  86. package/esm/src/features/auth/profile/contract.js +14 -0
  87. package/esm/src/features/auth/profile/repository.d.ts +11 -0
  88. package/esm/src/features/auth/profile/repository.d.ts.map +1 -0
  89. package/esm/src/features/auth/profile/repository.js +25 -0
  90. package/esm/src/features/auth/repository.d.ts +30 -0
  91. package/esm/src/features/auth/repository.d.ts.map +1 -0
  92. package/esm/src/features/auth/repository.js +69 -0
  93. package/{dist/features/auth/storage/client-store.d.ts → esm/src/features/auth/storage/client_store.d.ts} +3 -2
  94. package/esm/src/features/auth/storage/client_store.d.ts.map +1 -0
  95. package/esm/src/features/auth/storage/client_store.js +46 -0
  96. package/{dist/features/auth/storage/client-token-handler.d.ts → esm/src/features/auth/storage/client_token_handler.d.ts} +2 -1
  97. package/esm/src/features/auth/storage/client_token_handler.d.ts.map +1 -0
  98. package/esm/src/features/auth/storage/client_token_handler.js +36 -0
  99. package/esm/src/features/auth/storage/server_store.d.ts +24 -0
  100. package/esm/src/features/auth/storage/server_store.d.ts.map +1 -0
  101. package/esm/src/features/auth/storage/server_store.js +34 -0
  102. package/esm/src/features/auth/storage/server_token_handler.d.ts +36 -0
  103. package/esm/src/features/auth/storage/server_token_handler.d.ts.map +1 -0
  104. package/esm/src/features/auth/storage/server_token_handler.js +115 -0
  105. package/{dist → esm/src}/features/auth/storage/types.d.ts +2 -1
  106. package/esm/src/features/auth/storage/types.d.ts.map +1 -0
  107. package/esm/src/features/auth/storage/types.js +1 -0
  108. package/{dist/features/contact/contact.api-contract.d.ts → esm/src/features/contact/contract.d.ts} +45 -101
  109. package/esm/src/features/contact/contract.d.ts.map +1 -0
  110. package/esm/src/features/contact/contract.js +49 -0
  111. package/esm/src/features/contact/index.d.ts +2 -0
  112. package/esm/src/features/contact/index.d.ts.map +1 -0
  113. package/esm/src/features/contact/index.js +1 -0
  114. package/esm/src/features/contact/repository.d.ts +58 -0
  115. package/esm/src/features/contact/repository.d.ts.map +1 -0
  116. package/esm/src/features/contact/repository.js +108 -0
  117. package/{dist/features/payout/payout.api-contract.d.ts → esm/src/features/payout/contract.d.ts} +187 -351
  118. package/esm/src/features/payout/contract.d.ts.map +1 -0
  119. package/esm/src/features/payout/contract.js +75 -0
  120. package/esm/src/features/payout/index.d.ts +2 -0
  121. package/esm/src/features/payout/index.d.ts.map +1 -0
  122. package/esm/src/features/payout/index.js +1 -0
  123. package/esm/src/features/payout/repository.d.ts +67 -0
  124. package/esm/src/features/payout/repository.d.ts.map +1 -0
  125. package/esm/src/features/payout/repository.js +163 -0
  126. package/{dist/features/wallet/wallet.contract.d.ts → esm/src/features/wallet/contract.d.ts} +7 -9
  127. package/esm/src/features/wallet/contract.d.ts.map +1 -0
  128. package/esm/src/features/wallet/contract.js +38 -0
  129. package/esm/src/features/wallet/index.d.ts +2 -0
  130. package/esm/src/features/wallet/index.d.ts.map +1 -0
  131. package/esm/src/features/wallet/index.js +1 -0
  132. package/esm/src/features/wallet/repository.d.ts +57 -0
  133. package/esm/src/features/wallet/repository.d.ts.map +1 -0
  134. package/esm/src/features/wallet/repository.js +93 -0
  135. package/{dist/models/contact.model.d.ts → esm/src/models/contact/derivatives/contact.d.ts} +16 -23
  136. package/esm/src/models/contact/derivatives/contact.d.ts.map +1 -0
  137. package/esm/src/models/contact/derivatives/contact.js +266 -0
  138. package/esm/src/models/contact/derivatives/contact.test.d.ts.map +1 -0
  139. package/esm/src/models/contact/derivatives/contact_info.d.ts +188 -0
  140. package/esm/src/models/contact/derivatives/contact_info.d.ts.map +1 -0
  141. package/esm/src/models/contact/derivatives/contact_info.js +255 -0
  142. package/esm/src/models/contact/derivatives/contact_info.test.d.ts.map +1 -0
  143. package/esm/src/models/contact/index.d.ts +5 -0
  144. package/esm/src/models/contact/index.d.ts.map +1 -0
  145. package/esm/src/models/contact/index.js +4 -0
  146. package/esm/src/models/contact/schemas.d.ts +66 -0
  147. package/esm/src/models/contact/schemas.d.ts.map +1 -0
  148. package/esm/src/models/contact/schemas.js +64 -0
  149. package/esm/src/models/contact/validation.d.ts +37 -0
  150. package/esm/src/models/contact/validation.d.ts.map +1 -0
  151. package/esm/src/models/contact/validation.js +146 -0
  152. package/esm/src/models/contact/validation.test.d.ts.map +1 -0
  153. package/esm/src/models/index.d.ts +7 -0
  154. package/esm/src/models/index.d.ts.map +1 -0
  155. package/esm/src/models/index.js +6 -0
  156. package/esm/src/models/payout/api.d.ts +29 -0
  157. package/esm/src/models/payout/api.d.ts.map +1 -0
  158. package/esm/src/models/payout/api.js +1 -0
  159. package/esm/src/models/payout/channel.d.ts +58 -0
  160. package/esm/src/models/payout/channel.d.ts.map +1 -0
  161. package/esm/src/models/payout/channel.js +53 -0
  162. package/{dist/models/payout.model.d.ts → esm/src/models/payout/derivatives/payout.d.ts} +17 -13
  163. package/esm/src/models/payout/derivatives/payout.d.ts.map +1 -0
  164. package/esm/src/models/payout/derivatives/payout.js +265 -0
  165. package/esm/src/models/payout/derivatives/payout.test.d.ts.map +1 -0
  166. package/esm/src/models/payout/index.d.ts +6 -0
  167. package/esm/src/models/payout/index.d.ts.map +1 -0
  168. package/esm/src/models/payout/index.js +5 -0
  169. package/esm/src/models/payout/schemas.d.ts +156 -0
  170. package/esm/src/models/payout/schemas.d.ts.map +1 -0
  171. package/esm/src/models/payout/schemas.js +105 -0
  172. package/esm/src/models/payout/status.d.ts +33 -0
  173. package/esm/src/models/payout/status.d.ts.map +1 -0
  174. package/esm/src/models/payout/status.js +34 -0
  175. package/{dist → esm/src}/models/permission.d.ts +2 -1
  176. package/esm/src/models/permission.d.ts.map +1 -0
  177. package/esm/src/models/permission.js +50 -0
  178. package/{dist/models/role.model.d.ts → esm/src/models/role.d.ts} +10 -2
  179. package/esm/src/models/role.d.ts.map +1 -0
  180. package/esm/src/models/role.js +73 -0
  181. package/esm/src/models/user/authenticated-user.d.ts +77 -0
  182. package/esm/src/models/user/authenticated-user.d.ts.map +1 -0
  183. package/esm/src/models/user/authenticated-user.js +226 -0
  184. package/esm/src/models/user/index.d.ts +4 -0
  185. package/esm/src/models/user/index.d.ts.map +1 -0
  186. package/esm/src/models/user/index.js +3 -0
  187. package/{dist/models/managed-user.model.d.ts → esm/src/models/user/managed-user.d.ts} +3 -3
  188. package/esm/src/models/user/managed-user.d.ts.map +1 -0
  189. package/esm/src/models/user/managed-user.js +255 -0
  190. package/{dist/models/profile.model.d.ts → esm/src/models/user/profile.d.ts} +43 -37
  191. package/esm/src/models/user/profile.d.ts.map +1 -0
  192. package/esm/src/models/user/profile.js +334 -0
  193. package/esm/src/models/wallet/index.d.ts +4 -0
  194. package/esm/src/models/wallet/index.d.ts.map +1 -0
  195. package/esm/src/models/wallet/index.js +3 -0
  196. package/esm/src/models/wallet/schemas.d.ts +95 -0
  197. package/esm/src/models/wallet/schemas.d.ts.map +1 -0
  198. package/esm/src/models/wallet/schemas.js +35 -0
  199. package/esm/src/models/wallet/statement_entry.d.ts +160 -0
  200. package/esm/src/models/wallet/statement_entry.d.ts.map +1 -0
  201. package/esm/src/models/wallet/statement_entry.js +255 -0
  202. package/{dist/models/wallet.model.d.ts → esm/src/models/wallet/wallet.d.ts} +46 -3
  203. package/esm/src/models/wallet/wallet.d.ts.map +1 -0
  204. package/esm/src/models/wallet/wallet.js +279 -0
  205. package/{dist/lib/api/base-repository.d.ts → esm/src/shared/base_repository.d.ts} +42 -137
  206. package/esm/src/shared/base_repository.d.ts.map +1 -0
  207. package/esm/src/shared/base_repository.js +153 -0
  208. package/{dist/lib/api/common-responses.d.ts → esm/src/shared/common_responses.d.ts} +1 -0
  209. package/esm/src/shared/common_responses.d.ts.map +1 -0
  210. package/esm/src/shared/common_responses.js +10 -0
  211. package/esm/src/shared/index.d.ts +3 -0
  212. package/esm/src/shared/index.d.ts.map +1 -0
  213. package/esm/src/shared/index.js +2 -0
  214. package/esm/src/shared/token_required_repository.d.ts +78 -0
  215. package/esm/src/shared/token_required_repository.d.ts.map +1 -0
  216. package/esm/src/shared/token_required_repository.js +128 -0
  217. package/package.json +25 -47
  218. package/script/_dnt.test_shims.d.ts.map +1 -0
  219. package/script/deps/jsr.io/@std/assert/1.0.10/almost_equals.d.ts.map +1 -0
  220. package/script/deps/jsr.io/@std/assert/1.0.10/array_includes.d.ts.map +1 -0
  221. package/script/deps/jsr.io/@std/assert/1.0.10/assert.d.ts.map +1 -0
  222. package/script/deps/jsr.io/@std/assert/1.0.10/assertion_error.d.ts.map +1 -0
  223. package/script/deps/jsr.io/@std/assert/1.0.10/equal.d.ts.map +1 -0
  224. package/script/deps/jsr.io/@std/assert/1.0.10/equals.d.ts.map +1 -0
  225. package/script/deps/jsr.io/@std/assert/1.0.10/exists.d.ts.map +1 -0
  226. package/script/deps/jsr.io/@std/assert/1.0.10/fail.d.ts.map +1 -0
  227. package/script/deps/jsr.io/@std/assert/1.0.10/false.d.ts.map +1 -0
  228. package/script/deps/jsr.io/@std/assert/1.0.10/greater.d.ts.map +1 -0
  229. package/script/deps/jsr.io/@std/assert/1.0.10/greater_or_equal.d.ts.map +1 -0
  230. package/script/deps/jsr.io/@std/assert/1.0.10/instance_of.d.ts.map +1 -0
  231. package/script/deps/jsr.io/@std/assert/1.0.10/is_error.d.ts.map +1 -0
  232. package/script/deps/jsr.io/@std/assert/1.0.10/less.d.ts.map +1 -0
  233. package/script/deps/jsr.io/@std/assert/1.0.10/less_or_equal.d.ts.map +1 -0
  234. package/script/deps/jsr.io/@std/assert/1.0.10/match.d.ts.map +1 -0
  235. package/script/deps/jsr.io/@std/assert/1.0.10/mod.d.ts.map +1 -0
  236. package/script/deps/jsr.io/@std/assert/1.0.10/not_equals.d.ts.map +1 -0
  237. package/script/deps/jsr.io/@std/assert/1.0.10/not_instance_of.d.ts.map +1 -0
  238. package/script/deps/jsr.io/@std/assert/1.0.10/not_match.d.ts.map +1 -0
  239. package/script/deps/jsr.io/@std/assert/1.0.10/not_strict_equals.d.ts.map +1 -0
  240. package/script/deps/jsr.io/@std/assert/1.0.10/object_match.d.ts.map +1 -0
  241. package/script/deps/jsr.io/@std/assert/1.0.10/rejects.d.ts.map +1 -0
  242. package/script/deps/jsr.io/@std/assert/1.0.10/strict_equals.d.ts.map +1 -0
  243. package/script/deps/jsr.io/@std/assert/1.0.10/string_includes.d.ts.map +1 -0
  244. package/script/deps/jsr.io/@std/assert/1.0.10/throws.d.ts.map +1 -0
  245. package/script/deps/jsr.io/@std/assert/1.0.10/unimplemented.d.ts.map +1 -0
  246. package/script/deps/jsr.io/@std/assert/1.0.10/unreachable.d.ts.map +1 -0
  247. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
  248. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
  249. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
  250. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
  251. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
  252. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
  253. package/script/mod.d.ts +8 -0
  254. package/script/mod.d.ts.map +1 -0
  255. package/script/mod.js +23 -0
  256. package/script/package.json +3 -0
  257. package/script/src/errors/api_error.d.ts +63 -0
  258. package/script/src/errors/api_error.d.ts.map +1 -0
  259. package/script/src/errors/api_error.js +94 -0
  260. package/script/src/errors/index.d.ts +3 -0
  261. package/script/src/errors/index.d.ts.map +1 -0
  262. package/script/src/errors/index.js +18 -0
  263. package/script/src/errors/permission_error.d.ts +48 -0
  264. package/script/src/errors/permission_error.d.ts.map +1 -0
  265. package/script/src/errors/permission_error.js +74 -0
  266. package/script/src/features/admin/contract.d.ts +842 -0
  267. package/script/src/features/admin/contract.d.ts.map +1 -0
  268. package/script/src/features/admin/contract.js +213 -0
  269. package/script/src/features/admin/index.d.ts +4 -0
  270. package/script/src/features/admin/index.d.ts.map +1 -0
  271. package/script/src/features/admin/index.js +19 -0
  272. package/script/src/features/admin/repository.d.ts +114 -0
  273. package/script/src/features/admin/repository.d.ts.map +1 -0
  274. package/script/src/features/admin/repository.js +252 -0
  275. package/script/src/features/admin/schemas.d.ts +146 -0
  276. package/script/src/features/admin/schemas.d.ts.map +1 -0
  277. package/script/src/features/admin/schemas.js +209 -0
  278. package/script/src/features/auth/access/contract.d.ts +14 -0
  279. package/script/src/features/auth/access/contract.d.ts.map +1 -0
  280. package/script/src/features/auth/access/contract.js +17 -0
  281. package/script/src/features/auth/access/repository.d.ts +11 -0
  282. package/script/src/features/auth/access/repository.d.ts.map +1 -0
  283. package/script/src/features/auth/access/repository.js +29 -0
  284. package/script/src/features/auth/contract.d.ts +112 -0
  285. package/script/src/features/auth/contract.d.ts.map +1 -0
  286. package/script/src/features/auth/contract.js +46 -0
  287. package/script/src/features/auth/identity/contract.d.ts +23 -0
  288. package/script/src/features/auth/identity/contract.d.ts.map +1 -0
  289. package/script/src/features/auth/identity/contract.js +20 -0
  290. package/script/src/features/auth/identity/repository.d.ts +22 -0
  291. package/script/src/features/auth/identity/repository.d.ts.map +1 -0
  292. package/script/src/features/auth/identity/repository.js +34 -0
  293. package/script/src/features/auth/index.d.ts +6 -0
  294. package/script/src/features/auth/index.d.ts.map +1 -0
  295. package/script/src/features/auth/index.js +21 -0
  296. package/script/src/features/auth/manager.d.ts +105 -0
  297. package/script/src/features/auth/manager.d.ts.map +1 -0
  298. package/script/src/features/auth/manager.js +185 -0
  299. package/script/src/features/auth/profile/contract.d.ts +37 -0
  300. package/script/src/features/auth/profile/contract.d.ts.map +1 -0
  301. package/script/src/features/auth/profile/contract.js +17 -0
  302. package/script/src/features/auth/profile/repository.d.ts +11 -0
  303. package/script/src/features/auth/profile/repository.d.ts.map +1 -0
  304. package/script/src/features/auth/profile/repository.js +29 -0
  305. package/script/src/features/auth/repository.d.ts +30 -0
  306. package/script/src/features/auth/repository.d.ts.map +1 -0
  307. package/script/src/features/auth/repository.js +73 -0
  308. package/script/src/features/auth/storage/client_store.d.ts +30 -0
  309. package/script/src/features/auth/storage/client_store.d.ts.map +1 -0
  310. package/script/src/features/auth/storage/client_store.js +51 -0
  311. package/script/src/features/auth/storage/client_token_handler.d.ts +32 -0
  312. package/script/src/features/auth/storage/client_token_handler.d.ts.map +1 -0
  313. package/script/src/features/auth/storage/client_token_handler.js +40 -0
  314. package/script/src/features/auth/storage/server_store.d.ts +24 -0
  315. package/script/src/features/auth/storage/server_store.d.ts.map +1 -0
  316. package/script/src/features/auth/storage/server_store.js +38 -0
  317. package/script/src/features/auth/storage/server_token_handler.d.ts +36 -0
  318. package/script/src/features/auth/storage/server_token_handler.d.ts.map +1 -0
  319. package/script/src/features/auth/storage/server_token_handler.js +119 -0
  320. package/script/src/features/auth/storage/types.d.ts +42 -0
  321. package/script/src/features/auth/storage/types.d.ts.map +1 -0
  322. package/script/src/features/auth/storage/types.js +2 -0
  323. package/script/src/features/contact/contract.d.ts +170 -0
  324. package/script/src/features/contact/contract.d.ts.map +1 -0
  325. package/script/src/features/contact/contract.js +52 -0
  326. package/script/src/features/contact/index.d.ts +2 -0
  327. package/script/src/features/contact/index.d.ts.map +1 -0
  328. package/script/src/features/contact/index.js +17 -0
  329. package/script/src/features/contact/repository.d.ts +58 -0
  330. package/script/src/features/contact/repository.d.ts.map +1 -0
  331. package/script/src/features/contact/repository.js +112 -0
  332. package/script/src/features/payout/contract.d.ts +623 -0
  333. package/script/src/features/payout/contract.d.ts.map +1 -0
  334. package/script/src/features/payout/contract.js +78 -0
  335. package/script/src/features/payout/index.d.ts +2 -0
  336. package/script/src/features/payout/index.d.ts.map +1 -0
  337. package/script/src/features/payout/index.js +17 -0
  338. package/script/src/features/payout/repository.d.ts +67 -0
  339. package/script/src/features/payout/repository.d.ts.map +1 -0
  340. package/script/src/features/payout/repository.js +167 -0
  341. package/script/src/features/wallet/contract.d.ts +137 -0
  342. package/script/src/features/wallet/contract.d.ts.map +1 -0
  343. package/script/src/features/wallet/contract.js +41 -0
  344. package/script/src/features/wallet/index.d.ts +2 -0
  345. package/script/src/features/wallet/index.d.ts.map +1 -0
  346. package/script/src/features/wallet/index.js +17 -0
  347. package/script/src/features/wallet/repository.d.ts +57 -0
  348. package/script/src/features/wallet/repository.d.ts.map +1 -0
  349. package/script/src/features/wallet/repository.js +97 -0
  350. package/script/src/models/contact/derivatives/contact.d.ts +172 -0
  351. package/script/src/models/contact/derivatives/contact.d.ts.map +1 -0
  352. package/script/src/models/contact/derivatives/contact.js +270 -0
  353. package/script/src/models/contact/derivatives/contact.test.d.ts.map +1 -0
  354. package/script/src/models/contact/derivatives/contact_info.d.ts +188 -0
  355. package/script/src/models/contact/derivatives/contact_info.d.ts.map +1 -0
  356. package/script/src/models/contact/derivatives/contact_info.js +260 -0
  357. package/script/src/models/contact/derivatives/contact_info.test.d.ts.map +1 -0
  358. package/script/src/models/contact/index.d.ts +5 -0
  359. package/script/src/models/contact/index.d.ts.map +1 -0
  360. package/script/src/models/contact/index.js +20 -0
  361. package/script/src/models/contact/schemas.d.ts +66 -0
  362. package/script/src/models/contact/schemas.d.ts.map +1 -0
  363. package/script/src/models/contact/schemas.js +67 -0
  364. package/script/src/models/contact/validation.d.ts +37 -0
  365. package/script/src/models/contact/validation.d.ts.map +1 -0
  366. package/script/src/models/contact/validation.js +153 -0
  367. package/script/src/models/contact/validation.test.d.ts.map +1 -0
  368. package/script/src/models/index.d.ts +7 -0
  369. package/script/src/models/index.d.ts.map +1 -0
  370. package/script/src/models/index.js +22 -0
  371. package/script/src/models/payout/api.d.ts +29 -0
  372. package/script/src/models/payout/api.d.ts.map +1 -0
  373. package/script/src/models/payout/api.js +2 -0
  374. package/script/src/models/payout/channel.d.ts +58 -0
  375. package/script/src/models/payout/channel.d.ts.map +1 -0
  376. package/script/src/models/payout/channel.js +56 -0
  377. package/script/src/models/payout/derivatives/payout.d.ts +158 -0
  378. package/script/src/models/payout/derivatives/payout.d.ts.map +1 -0
  379. package/script/src/models/payout/derivatives/payout.js +269 -0
  380. package/script/src/models/payout/derivatives/payout.test.d.ts.map +1 -0
  381. package/script/src/models/payout/index.d.ts +6 -0
  382. package/script/src/models/payout/index.d.ts.map +1 -0
  383. package/script/src/models/payout/index.js +21 -0
  384. package/script/src/models/payout/schemas.d.ts +156 -0
  385. package/script/src/models/payout/schemas.d.ts.map +1 -0
  386. package/script/src/models/payout/schemas.js +108 -0
  387. package/script/src/models/payout/status.d.ts +33 -0
  388. package/script/src/models/payout/status.d.ts.map +1 -0
  389. package/script/src/models/payout/status.js +37 -0
  390. package/script/src/models/permission.d.ts +55 -0
  391. package/script/src/models/permission.d.ts.map +1 -0
  392. package/script/src/models/permission.js +53 -0
  393. package/script/src/models/role.d.ts +21 -0
  394. package/script/src/models/role.d.ts.map +1 -0
  395. package/script/src/models/role.js +77 -0
  396. package/script/src/models/user/authenticated-user.d.ts +77 -0
  397. package/script/src/models/user/authenticated-user.d.ts.map +1 -0
  398. package/script/src/models/user/authenticated-user.js +230 -0
  399. package/script/src/models/user/index.d.ts +4 -0
  400. package/script/src/models/user/index.d.ts.map +1 -0
  401. package/script/src/models/user/index.js +19 -0
  402. package/script/src/models/user/managed-user.d.ts +108 -0
  403. package/script/src/models/user/managed-user.d.ts.map +1 -0
  404. package/script/src/models/user/managed-user.js +260 -0
  405. package/script/src/models/user/profile.d.ts +161 -0
  406. package/script/src/models/user/profile.d.ts.map +1 -0
  407. package/script/src/models/user/profile.js +338 -0
  408. package/script/src/models/wallet/index.d.ts +4 -0
  409. package/script/src/models/wallet/index.d.ts.map +1 -0
  410. package/script/src/models/wallet/index.js +19 -0
  411. package/script/src/models/wallet/schemas.d.ts +95 -0
  412. package/script/src/models/wallet/schemas.d.ts.map +1 -0
  413. package/script/src/models/wallet/schemas.js +38 -0
  414. package/script/src/models/wallet/statement_entry.d.ts +160 -0
  415. package/script/src/models/wallet/statement_entry.d.ts.map +1 -0
  416. package/script/src/models/wallet/statement_entry.js +259 -0
  417. package/script/src/models/wallet/wallet.d.ts +147 -0
  418. package/script/src/models/wallet/wallet.d.ts.map +1 -0
  419. package/script/src/models/wallet/wallet.js +283 -0
  420. package/script/src/shared/base_repository.d.ts +80 -0
  421. package/script/src/shared/base_repository.d.ts.map +1 -0
  422. package/script/src/shared/base_repository.js +157 -0
  423. package/script/src/shared/common_responses.d.ts +13 -0
  424. package/script/src/shared/common_responses.d.ts.map +1 -0
  425. package/script/src/shared/common_responses.js +13 -0
  426. package/script/src/shared/index.d.ts +3 -0
  427. package/script/src/shared/index.d.ts.map +1 -0
  428. package/script/src/shared/index.js +18 -0
  429. package/script/src/shared/token_required_repository.d.ts +78 -0
  430. package/script/src/shared/token_required_repository.d.ts.map +1 -0
  431. package/script/src/shared/token_required_repository.js +132 -0
  432. package/dist/features/admin/admin.repository.d.ts +0 -179
  433. package/dist/features/admin/index.d.ts +0 -2
  434. package/dist/features/auth/access/access.repository.d.ts +0 -55
  435. package/dist/features/auth/auth.manager.d.ts +0 -249
  436. package/dist/features/auth/auth.repository.d.ts +0 -66
  437. package/dist/features/auth/auth.store.d.ts +0 -139
  438. package/dist/features/auth/identity/identity.repository.d.ts +0 -58
  439. package/dist/features/auth/index.d.ts +0 -5
  440. package/dist/features/auth/profile/profile.dtos.d.ts +0 -80
  441. package/dist/features/auth/profile/profile.repository.d.ts +0 -56
  442. package/dist/features/contact/contact-input-handler.d.ts +0 -16
  443. package/dist/features/contact/contact.dtos.d.ts +0 -90
  444. package/dist/features/contact/contact.repository.d.ts +0 -116
  445. package/dist/features/contact/index.d.ts +0 -2
  446. package/dist/features/payout/index.d.ts +0 -3
  447. package/dist/features/payout/payout-channel-handler.d.ts +0 -108
  448. package/dist/features/payout/payout.dtos.d.ts +0 -365
  449. package/dist/features/payout/payout.repository.d.ts +0 -193
  450. package/dist/features/wallet/index.d.ts +0 -4
  451. package/dist/features/wallet/wallet-manager.session.d.ts +0 -143
  452. package/dist/features/wallet/wallet.dtos.d.ts +0 -204
  453. package/dist/features/wallet/wallet.repository.d.ts +0 -120
  454. package/dist/features/wallet/wallet.utils.d.ts +0 -17
  455. package/dist/index.cjs.js +0 -2
  456. package/dist/index.cjs.js.map +0 -1
  457. package/dist/index.d.ts +0 -7
  458. package/dist/index.esm.js +0 -2
  459. package/dist/index.esm.js.map +0 -1
  460. package/dist/lib/api/index.d.ts +0 -2
  461. package/dist/lib/error/error.utils.d.ts +0 -22
  462. package/dist/lib/error/index.d.ts +0 -3
  463. package/dist/models/contact-info.model.d.ts +0 -817
  464. package/dist/models/index.d.ts +0 -10
  465. package/dist/models/statement-entry.model.d.ts +0 -195
  466. package/dist/models/user.model.d.ts +0 -65
@@ -0,0 +1,115 @@
1
+ import { Profile, User } from "../../../models/index.js";
2
+ import { profileContract } from "../profile/contract.js";
3
+ import { identityContract } from "../identity/contract.js";
4
+ import { TokenRequiredRepository } from "../../../shared/token_required_repository.js";
5
+ import { accessContract } from "../access/contract.js";
6
+ /**
7
+ * Server-side implementation of TokenHandler.
8
+ * Manages tokens in memory for the duration of a request.
9
+ * Uses TokenRequiredRepository instead of repositories that rely on AfloatAuth.
10
+ * @implements {TokenHandler}
11
+ */
12
+ export class ServerTokenHandler {
13
+ /**
14
+ * Creates a new instance of ServerTokenHandler.
15
+ * @param {string} [token] - Optional initial token value
16
+ */
17
+ constructor(token) {
18
+ Object.defineProperty(this, "token", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+ Object.defineProperty(this, "accessRepo", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
30
+ Object.defineProperty(this, "profileRepo", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: void 0
35
+ });
36
+ Object.defineProperty(this, "identityRepo", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: void 0
41
+ });
42
+ this.token = token;
43
+ this.accessRepo = new TokenRequiredRepository("auth", accessContract, this.token);
44
+ this.profileRepo = new TokenRequiredRepository("profile", profileContract, this.token);
45
+ this.identityRepo = new TokenRequiredRepository("login", identityContract, this.token);
46
+ }
47
+ /**
48
+ * Returns the stored token.
49
+ * @returns {string | undefined} The current token or undefined if not set
50
+ */
51
+ getUserToken() {
52
+ return this.token;
53
+ }
54
+ /**
55
+ * Stores the provided token in memory.
56
+ * @param {string} token - The token to store
57
+ */
58
+ setUserToken(token) {
59
+ this.token = token;
60
+ this.accessRepo.setToken(token);
61
+ this.profileRepo.setToken(token);
62
+ this.identityRepo.setToken(token);
63
+ }
64
+ clearToken() {
65
+ this.token = "";
66
+ this.accessRepo.setToken("");
67
+ this.profileRepo.setToken("");
68
+ this.identityRepo.setToken("");
69
+ }
70
+ /**
71
+ * Fetches and constructs the full user data
72
+ * @returns {Promise<User>}
73
+ */
74
+ async constructUser(token) {
75
+ if (!this.token) {
76
+ throw new Error("Token is required to construct user");
77
+ }
78
+ this.setUserToken(token);
79
+ try {
80
+ // Fetch all data concurrently with Promise.all
81
+ const [access, profileResult, identityResult] = await Promise.all([
82
+ this.accessRepo.client.getAccessList(),
83
+ this.profileRepo.client.getCurrentProfile(),
84
+ this.identityRepo.client.getUserCredentials(),
85
+ ]);
86
+ // Extract and validate response data
87
+ const accessList = this.accessRepo.handleResponse(access, 200);
88
+ const profileData = this.profileRepo.handleResponse(profileResult, 200);
89
+ const identityData = this.identityRepo.handleResponse(identityResult, 200);
90
+ // Create profile object
91
+ const profile = Profile.from(profileData);
92
+ if (!profile) {
93
+ throw new Error("Failed to create profile from response data");
94
+ }
95
+ // Construct and return user object
96
+ const user = User.from({
97
+ token: this.token,
98
+ profile,
99
+ access: accessList,
100
+ resetPassword: false,
101
+ ...identityData,
102
+ });
103
+ if (!user) {
104
+ throw new Error("Failed to construct user");
105
+ }
106
+ return user;
107
+ }
108
+ catch (error) {
109
+ const message = error instanceof Error
110
+ ? error.message
111
+ : "Unknown error occurred";
112
+ throw new Error(`Error constructing user: ${message}`);
113
+ }
114
+ }
115
+ }
@@ -1,4 +1,4 @@
1
- import type { User } from "@/models/user.model";
1
+ import type { User } from "../../../models/user/index.js";
2
2
  /**
3
3
  * Interface defining the contract for auth storage implementations.
4
4
  * This allows for different storage strategies in different environments.
@@ -39,3 +39,4 @@ export interface TokenHandler {
39
39
  */
40
40
  clearToken(): void;
41
41
  }
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/src/features/auth/storage/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,OAAO,IAAI,IAAI,GAAG,SAAS,CAAC;IAE5B;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;IAEnC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;CACpB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -9,61 +9,54 @@ import { z } from "zod";
9
9
  * @property {Object} deleteContact - Delete a contact (DELETE /:id)
10
10
  */
11
11
  export declare const contract: {
12
- createContact: {
12
+ postContact: {
13
13
  method: "POST";
14
14
  body: z.ZodObject<{
15
15
  displayName: z.ZodString;
16
16
  accountNo: z.ZodString;
17
17
  channel: z.ZodString;
18
- countryCode: z.ZodDefault<z.ZodString>;
19
- type: z.ZodNativeEnum<typeof import("./contact.dtos").ContactType>;
20
- }, "strip", z.ZodTypeAny, {
21
- type: import("./contact.dtos").ContactType;
18
+ type: z.ZodEnum<["Bank", "Mobile"]>;
19
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
20
+ type: "Bank" | "Mobile";
22
21
  displayName: string;
23
22
  accountNo: string;
24
23
  channel: string;
25
- countryCode: string;
26
24
  }, {
27
- type: import("./contact.dtos").ContactType;
25
+ type: "Bank" | "Mobile";
28
26
  displayName: string;
29
27
  accountNo: string;
30
28
  channel: string;
31
- countryCode?: string | undefined;
32
29
  }>;
33
30
  path: "/";
34
31
  responses: {
35
32
  [x: number]: import("@ts-rest/core").AppRouteResponse;
36
33
  201: z.ZodObject<{
37
- id: z.ZodString;
38
- profileId: z.ZodString;
39
- createdAt: z.ZodString;
40
- updatedAt: z.ZodString;
41
- } & {
42
34
  displayName: z.ZodString;
43
35
  accountNo: z.ZodString;
44
36
  channel: z.ZodString;
45
- countryCode: z.ZodDefault<z.ZodString>;
46
- type: z.ZodNativeEnum<typeof import("./contact.dtos").ContactType>;
47
- }, "strip", z.ZodTypeAny, {
48
- type: import("./contact.dtos").ContactType;
37
+ type: z.ZodEnum<["Bank", "Mobile"]>;
38
+ id: z.ZodString;
39
+ profileId: z.ZodString;
40
+ createdAt: z.ZodDate;
41
+ updatedAt: z.ZodDate;
42
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
43
+ type: "Bank" | "Mobile";
49
44
  id: string;
50
45
  displayName: string;
51
46
  accountNo: string;
52
47
  channel: string;
53
48
  profileId: string;
54
- countryCode: string;
55
- createdAt: string;
56
- updatedAt: string;
49
+ createdAt: Date;
50
+ updatedAt: Date;
57
51
  }, {
58
- type: import("./contact.dtos").ContactType;
52
+ type: "Bank" | "Mobile";
59
53
  id: string;
60
54
  displayName: string;
61
55
  accountNo: string;
62
56
  channel: string;
63
57
  profileId: string;
64
- createdAt: string;
65
- updatedAt: string;
66
- countryCode?: string | undefined;
58
+ createdAt: Date;
59
+ updatedAt: Date;
67
60
  }>;
68
61
  };
69
62
  };
@@ -73,55 +66,48 @@ export declare const contract: {
73
66
  displayName: z.ZodString;
74
67
  accountNo: z.ZodString;
75
68
  channel: z.ZodString;
76
- countryCode: z.ZodDefault<z.ZodString>;
77
- type: z.ZodNativeEnum<typeof import("./contact.dtos").ContactType>;
78
- }, "strip", z.ZodTypeAny, {
79
- type: import("./contact.dtos").ContactType;
69
+ type: z.ZodEnum<["Bank", "Mobile"]>;
70
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
71
+ type: "Bank" | "Mobile";
80
72
  displayName: string;
81
73
  accountNo: string;
82
74
  channel: string;
83
- countryCode: string;
84
75
  }, {
85
- type: import("./contact.dtos").ContactType;
76
+ type: "Bank" | "Mobile";
86
77
  displayName: string;
87
78
  accountNo: string;
88
79
  channel: string;
89
- countryCode?: string | undefined;
90
80
  }>;
91
81
  path: "/:id";
92
82
  responses: {
93
83
  [x: number]: import("@ts-rest/core").AppRouteResponse;
94
84
  200: z.ZodObject<{
95
- id: z.ZodString;
96
- profileId: z.ZodString;
97
- createdAt: z.ZodString;
98
- updatedAt: z.ZodString;
99
- } & {
100
85
  displayName: z.ZodString;
101
86
  accountNo: z.ZodString;
102
87
  channel: z.ZodString;
103
- countryCode: z.ZodDefault<z.ZodString>;
104
- type: z.ZodNativeEnum<typeof import("./contact.dtos").ContactType>;
105
- }, "strip", z.ZodTypeAny, {
106
- type: import("./contact.dtos").ContactType;
88
+ type: z.ZodEnum<["Bank", "Mobile"]>;
89
+ id: z.ZodString;
90
+ profileId: z.ZodString;
91
+ createdAt: z.ZodDate;
92
+ updatedAt: z.ZodDate;
93
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
94
+ type: "Bank" | "Mobile";
107
95
  id: string;
108
96
  displayName: string;
109
97
  accountNo: string;
110
98
  channel: string;
111
99
  profileId: string;
112
- countryCode: string;
113
- createdAt: string;
114
- updatedAt: string;
100
+ createdAt: Date;
101
+ updatedAt: Date;
115
102
  }, {
116
- type: import("./contact.dtos").ContactType;
103
+ type: "Bank" | "Mobile";
117
104
  id: string;
118
105
  displayName: string;
119
106
  accountNo: string;
120
107
  channel: string;
121
108
  profileId: string;
122
- createdAt: string;
123
- updatedAt: string;
124
- countryCode?: string | undefined;
109
+ createdAt: Date;
110
+ updatedAt: Date;
125
111
  }>;
126
112
  };
127
113
  };
@@ -138,76 +124,33 @@ export declare const contract: {
138
124
  responses: {
139
125
  [x: number]: import("@ts-rest/core").AppRouteResponse;
140
126
  200: z.ZodArray<z.ZodObject<{
141
- id: z.ZodString;
142
- profileId: z.ZodString;
143
- createdAt: z.ZodString;
144
- updatedAt: z.ZodString;
145
- } & {
146
127
  displayName: z.ZodString;
147
128
  accountNo: z.ZodString;
148
129
  channel: z.ZodString;
149
- countryCode: z.ZodDefault<z.ZodString>;
150
- type: z.ZodNativeEnum<typeof import("./contact.dtos").ContactType>;
151
- }, "strip", z.ZodTypeAny, {
152
- type: import("./contact.dtos").ContactType;
153
- id: string;
154
- displayName: string;
155
- accountNo: string;
156
- channel: string;
157
- profileId: string;
158
- countryCode: string;
159
- createdAt: string;
160
- updatedAt: string;
161
- }, {
162
- type: import("./contact.dtos").ContactType;
163
- id: string;
164
- displayName: string;
165
- accountNo: string;
166
- channel: string;
167
- profileId: string;
168
- createdAt: string;
169
- updatedAt: string;
170
- countryCode?: string | undefined;
171
- }>, "many">;
172
- };
173
- };
174
- getByID: {
175
- method: "GET";
176
- path: "/:id";
177
- responses: {
178
- [x: number]: import("@ts-rest/core").AppRouteResponse;
179
- 200: z.ZodObject<{
130
+ type: z.ZodEnum<["Bank", "Mobile"]>;
180
131
  id: z.ZodString;
181
132
  profileId: z.ZodString;
182
- createdAt: z.ZodString;
183
- updatedAt: z.ZodString;
184
- } & {
185
- displayName: z.ZodString;
186
- accountNo: z.ZodString;
187
- channel: z.ZodString;
188
- countryCode: z.ZodDefault<z.ZodString>;
189
- type: z.ZodNativeEnum<typeof import("./contact.dtos").ContactType>;
190
- }, "strip", z.ZodTypeAny, {
191
- type: import("./contact.dtos").ContactType;
133
+ createdAt: z.ZodDate;
134
+ updatedAt: z.ZodDate;
135
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
136
+ type: "Bank" | "Mobile";
192
137
  id: string;
193
138
  displayName: string;
194
139
  accountNo: string;
195
140
  channel: string;
196
141
  profileId: string;
197
- countryCode: string;
198
- createdAt: string;
199
- updatedAt: string;
142
+ createdAt: Date;
143
+ updatedAt: Date;
200
144
  }, {
201
- type: import("./contact.dtos").ContactType;
145
+ type: "Bank" | "Mobile";
202
146
  id: string;
203
147
  displayName: string;
204
148
  accountNo: string;
205
149
  channel: string;
206
150
  profileId: string;
207
- createdAt: string;
208
- updatedAt: string;
209
- countryCode?: string | undefined;
210
- }>;
151
+ createdAt: Date;
152
+ updatedAt: Date;
153
+ }>, "many">;
211
154
  };
212
155
  };
213
156
  deleteContact: {
@@ -224,3 +167,4 @@ export declare const contract: {
224
167
  * Export type for use in client implementations
225
168
  */
226
169
  export type ContactAPI = typeof contract;
170
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/src/features/contact/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCnB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { z } from "zod";
2
+ import { initContract } from "@ts-rest/core";
3
+ import { commonAPIResponses } from "../../shared/index.js";
4
+ import { ContactSchemas } from "../../models/index.js";
5
+ /**
6
+ * Contact API contract
7
+ * Defines the REST endpoints for managing contacts
8
+ *
9
+ * @property {Object} postContact - Create a new contact (POST /)
10
+ * @property {Object} editContact - Update an existing contact (PATCH /:id)
11
+ * @property {Object} getContacts - Retrieve contacts list (GET /)
12
+ * @property {Object} deleteContact - Delete a contact (DELETE /:id)
13
+ */
14
+ export const contract = initContract().router({
15
+ postContact: {
16
+ method: "POST",
17
+ path: "/",
18
+ body: ContactSchemas.contactInput,
19
+ responses: {
20
+ 201: ContactSchemas.contactData,
21
+ },
22
+ },
23
+ editContact: {
24
+ method: "PATCH",
25
+ path: "/:id",
26
+ body: ContactSchemas.contactInput,
27
+ responses: {
28
+ 200: ContactSchemas.contactData,
29
+ },
30
+ },
31
+ getContacts: {
32
+ method: "GET",
33
+ path: "/",
34
+ query: z.object({ orderByDesc: z.string() }),
35
+ responses: {
36
+ 200: z.array(ContactSchemas.contactData),
37
+ },
38
+ },
39
+ deleteContact: {
40
+ method: "DELETE",
41
+ path: "/:id",
42
+ body: z.object({}),
43
+ responses: {
44
+ 200: z.object({}),
45
+ },
46
+ },
47
+ }, {
48
+ commonResponses: commonAPIResponses,
49
+ });
@@ -0,0 +1,2 @@
1
+ export * from "./repository.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/features/contact/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./repository.js";
@@ -0,0 +1,58 @@
1
+ import { BaseRepository } from "../../shared/base_repository.js";
2
+ import { contract } from "./contract.js";
3
+ import { Contact, type ContactInput } from "../../models/contact/index.js";
4
+ import type { AfloatAuth } from "../auth/manager.js";
5
+ /**
6
+ * Repository class for managing `Contact` data through API interactions.
7
+ * Extends the `BaseRepository` to leverage shared functionality.
8
+ */
9
+ export declare class ContactRepository extends BaseRepository<typeof contract> {
10
+ /**
11
+ * Creates an instance of `ContactRepository` using the contact contract.
12
+ * @param {Object} [props] - Optional constructor properties
13
+ * @param {AfloatAuth} [props.auth] - Optional auth instance to use
14
+ * @param {string} [props.root] - Optional API root URL
15
+ */
16
+ constructor(props?: {
17
+ auth?: AfloatAuth;
18
+ root?: string;
19
+ });
20
+ /**
21
+ * Creates a new contact record.
22
+ * @param {ContactInput} input - The data required to create a new contact.
23
+ * @returns {Promise<Contact>} A promise that resolves to the newly created contact.
24
+ * @throws {PermissionError} If the user lacks required permissions
25
+ * @throws {APIError} If the response status code is not 201.
26
+ */
27
+ create(input: ContactInput): Promise<Contact>;
28
+ /**
29
+ * Updates an existing contact record by ID.
30
+ * @param {string} id - The unique identifier of the contact to edit.
31
+ * @param {ContactInput} input - The data to update the contact with.
32
+ * @returns {Promise<Contact>} A promise that resolves to the updated contact.
33
+ * @throws {PermissionError} If the user lacks required permissions
34
+ * @throws {APIError} If the response status code is not 200.
35
+ */
36
+ edit(id: string, input: ContactInput): Promise<Contact>;
37
+ /**
38
+ * Deletes a contact record by ID.
39
+ * @param {string} id - The unique identifier of the contact to remove.
40
+ * @returns {Promise<void>} A promise that resolves when the deletion is complete.
41
+ * @throws {PermissionError} If the user lacks required permissions
42
+ * @throws {APIError} If the response status code is not 200.
43
+ */
44
+ remove(id: string): Promise<void>;
45
+ /**
46
+ * Retrieves all contacts
47
+ * Results are ordered in descending order by default.
48
+ *
49
+ * @returns {Promise<Contact[]>} A promise that resolves to an array of contacts.
50
+ * @throws {PermissionError} If the user lacks required permissions
51
+ * @throws {APIError} If the response status code is not 200 or the range is invalid.
52
+ * @example
53
+ * const repository = new ContactRepository();
54
+ * repository.getAll().then(contacts => console.log(contacts));
55
+ */
56
+ getAll(): Promise<Contact[]>;
57
+ }
58
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../src/src/features/contact/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,OAAO,EAEP,KAAK,YAAY,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,OAAO,QAAQ,CAAC;IACpE;;;;;OAKG;gBACS,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAIxD;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBnD;;;;;;;OAOG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB7D;;;;;;OAMG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAevC;;;;;;;;;;OAUG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;CAgBnC"}
@@ -0,0 +1,108 @@
1
+ import { BaseRepository } from "../../shared/base_repository.js";
2
+ import { contract } from "./contract.js";
3
+ import { Contact, } from "../../models/contact/index.js";
4
+ import { Permissions } from "../../models/index.js";
5
+ import { PermissionError } from "../../errors/index.js";
6
+ /**
7
+ * Repository class for managing `Contact` data through API interactions.
8
+ * Extends the `BaseRepository` to leverage shared functionality.
9
+ */
10
+ export class ContactRepository extends BaseRepository {
11
+ /**
12
+ * Creates an instance of `ContactRepository` using the contact contract.
13
+ * @param {Object} [props] - Optional constructor properties
14
+ * @param {AfloatAuth} [props.auth] - Optional auth instance to use
15
+ * @param {string} [props.root] - Optional API root URL
16
+ */
17
+ constructor(props) {
18
+ super("contact", contract, props);
19
+ }
20
+ /**
21
+ * Creates a new contact record.
22
+ * @param {ContactInput} input - The data required to create a new contact.
23
+ * @returns {Promise<Contact>} A promise that resolves to the newly created contact.
24
+ * @throws {PermissionError} If the user lacks required permissions
25
+ * @throws {APIError} If the response status code is not 201.
26
+ */
27
+ async create(input) {
28
+ const auth = this.getAuthForPermissionCheck();
29
+ const requiredPerm = Permissions.Contact.Create;
30
+ if (!auth.checkPermission(requiredPerm)) {
31
+ throw new PermissionError({
32
+ message: "You are not authorized to add contacts.",
33
+ requiredPermissions: [requiredPerm],
34
+ });
35
+ }
36
+ const result = await this.client.postContact({ body: input });
37
+ const data = this.handleResponse(result, 201);
38
+ return Contact.create(data);
39
+ }
40
+ /**
41
+ * Updates an existing contact record by ID.
42
+ * @param {string} id - The unique identifier of the contact to edit.
43
+ * @param {ContactInput} input - The data to update the contact with.
44
+ * @returns {Promise<Contact>} A promise that resolves to the updated contact.
45
+ * @throws {PermissionError} If the user lacks required permissions
46
+ * @throws {APIError} If the response status code is not 200.
47
+ */
48
+ async edit(id, input) {
49
+ const auth = this.getAuthForPermissionCheck();
50
+ const requiredPerm = Permissions.Contact.Update;
51
+ if (!auth.checkPermission(requiredPerm)) {
52
+ throw new PermissionError({
53
+ message: "You are not authorized to update contacts.",
54
+ requiredPermissions: [requiredPerm],
55
+ });
56
+ }
57
+ const result = await this.client.editContact({
58
+ params: { id },
59
+ body: input,
60
+ });
61
+ const data = this.handleResponse(result, 200);
62
+ return Contact.create(data);
63
+ }
64
+ /**
65
+ * Deletes a contact record by ID.
66
+ * @param {string} id - The unique identifier of the contact to remove.
67
+ * @returns {Promise<void>} A promise that resolves when the deletion is complete.
68
+ * @throws {PermissionError} If the user lacks required permissions
69
+ * @throws {APIError} If the response status code is not 200.
70
+ */
71
+ async remove(id) {
72
+ const auth = this.getAuthForPermissionCheck();
73
+ const requiredPerm = Permissions.Contact.Delete;
74
+ if (!auth.checkPermission(requiredPerm)) {
75
+ throw new PermissionError({
76
+ message: "You are not authorized to delete contacts.",
77
+ requiredPermissions: [requiredPerm],
78
+ });
79
+ }
80
+ const result = await this.client.deleteContact({ params: { id } });
81
+ this.handleResponse(result, 200);
82
+ }
83
+ /**
84
+ * Retrieves all contacts
85
+ * Results are ordered in descending order by default.
86
+ *
87
+ * @returns {Promise<Contact[]>} A promise that resolves to an array of contacts.
88
+ * @throws {PermissionError} If the user lacks required permissions
89
+ * @throws {APIError} If the response status code is not 200 or the range is invalid.
90
+ * @example
91
+ * const repository = new ContactRepository();
92
+ * repository.getAll().then(contacts => console.log(contacts));
93
+ */
94
+ async getAll() {
95
+ const auth = this.getAuthForPermissionCheck();
96
+ const requiredPerm = Permissions.Contact.List;
97
+ if (!auth.checkPermission(requiredPerm)) {
98
+ throw new PermissionError({
99
+ message: "You are not authorized to view contacts.",
100
+ requiredPermissions: [requiredPerm],
101
+ });
102
+ }
103
+ const query = { orderByDesc: "createdAt" };
104
+ const result = await this.client.getContacts({ query });
105
+ const data = this.handleResponse(result, 200);
106
+ return Contact.createMany(data);
107
+ }
108
+ }