@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,206 @@
1
+ import { z } from "zod";
2
+ // ====================== Custom Schema Definitions ====================== //
3
+ /**
4
+ * Custom password schema that enforces strong password requirements.
5
+ * Password must contain:
6
+ * - At least 8 characters
7
+ * - At least one uppercase letter
8
+ * - At least one lowercase letter
9
+ * - At least one number
10
+ * - At least one special character (!@#$%^&*()_+-=[]{}|;:,.<>?)
11
+ * - No common passwords or sequential patterns
12
+ */
13
+ const passwordSchema = z
14
+ .string()
15
+ .min(8, "Password must be at least 8 characters long")
16
+ .max(128, "Password must not exceed 128 characters")
17
+ .regex(/[A-Z]/, "Password must contain at least one uppercase letter")
18
+ .regex(/[a-z]/, "Password must contain at least one lowercase letter")
19
+ .regex(/[0-9]/, "Password must contain at least one number")
20
+ .regex(/[!@#$%^&*()_+\-=\[\]{}|;:,.<>?]/, "Password must contain at least one special character (!@#$%^&*()_+-=[]{}|;:,.<>?)")
21
+ .refine((password) => {
22
+ // Check for common weak patterns
23
+ const weakPatterns = [
24
+ /(.)\1{2,}/, // Three or more consecutive identical characters
25
+ /123456|654321|abcdef|qwerty|password|admin|user/i, // Common passwords
26
+ /^[0-9]+$/, // Only numbers
27
+ /^[a-zA-Z]+$/, // Only letters
28
+ ];
29
+ return !weakPatterns.some((pattern) => pattern.test(password));
30
+ }, "Password contains weak patterns. Avoid repeated characters, common words, or simple sequences")
31
+ .refine((password) => {
32
+ // Check for sequential characters (e.g., "abcd", "1234")
33
+ const hasSequential = /(?:abc|bcd|cde|def|efg|fgh|ghi|hij|ijk|jkl|klm|lmn|mno|nop|opq|pqr|qrs|rst|stu|tuv|uvw|vwx|wxy|xyz|012|123|234|345|456|567|678|789)/i
34
+ .test(password);
35
+ return !hasSequential;
36
+ }, "Password should not contain sequential characters")
37
+ .refine((password) => {
38
+ // Check for keyboard patterns (e.g., "qwer", "asdf")
39
+ const keyboardPatterns = /(?:qwer|wert|erty|rtyu|tyui|yuio|uiop|asdf|sdfg|dfgh|fghj|ghjk|hjkl|zxcv|xcvb|cvbn|vbnm)/i;
40
+ return !keyboardPatterns.test(password);
41
+ }, "Password should not contain keyboard patterns");
42
+ // ====================== Schema Definitions ====================== //
43
+ /**
44
+ * Schema definition for a role.
45
+ * Represents a user role with permissions in the system.
46
+ *
47
+ * @property {string} id - Unique identifier for the role
48
+ * @property {string} name - Display name of the role
49
+ * @property {string} description - Optional description of the role
50
+ * @property {string[]} access - Array of permission strings
51
+ * @property {string} createdAt - ISO datetime string of role creation
52
+ * @property {string} updatedAt - ISO datetime string of last role update
53
+ */
54
+ const roleSchema = z.object({
55
+ id: z.string().min(1),
56
+ name: z.string().min(1, "Role name is required"),
57
+ description: z.string().optional(),
58
+ access: z.array(z.string()),
59
+ createdAt: z.string().datetime("Invalid creation timestamp"),
60
+ updatedAt: z.string().datetime("Invalid update timestamp"),
61
+ });
62
+ /**
63
+ * Schema definition for a managed user account.
64
+ * Represents a user account from the admin management perspective.
65
+ *
66
+ * @property {string} id - Unique identifier for the user account
67
+ * @property {string} name - Full name of the user
68
+ * @property {string} identity - User's email address or phone number
69
+ * @property {string} type - Type of user account
70
+ * @property {string} profileId - ID of the associated profile
71
+ * @property {string} roleId - ID of the assigned role
72
+ * @property {boolean} resetPassword - Whether user must reset password on next login
73
+ * @property {boolean} isActive - Whether the account is currently active
74
+ * @property {Role} role - Full role object with permissions
75
+ * @property {string} createdAt - ISO datetime string of account creation
76
+ * @property {string} updatedAt - ISO datetime string of last account update
77
+ */
78
+ const managedUserSchema = z.object({
79
+ id: z.string().min(1),
80
+ name: z.string().min(1, "User name is required"),
81
+ identity: z.string().email("Invalid email address"),
82
+ type: z.string().min(1, "User type is required"),
83
+ profileId: z.string().min(1, "Profile ID is required"),
84
+ roleId: z.string().min(1, "Role ID is required"),
85
+ resetPassword: z.boolean(),
86
+ isActive: z.boolean(),
87
+ isArchived: z.boolean(),
88
+ role: roleSchema.optional(),
89
+ createdAt: z.string().datetime("Invalid creation timestamp"),
90
+ updatedAt: z.string().datetime("Invalid update timestamp"),
91
+ });
92
+ /**
93
+ * Schema definition for managed user query parameters.
94
+ * Contains all primitive fields from ManagedUserData for filtering/searching users.
95
+ * Excludes complex object fields like 'role' which are not suitable for query parameters.
96
+ *
97
+ * @property {string} id - Optional filter by user ID
98
+ * @property {string} name - Optional filter by user name (partial match)
99
+ * @property {string} identity - Optional filter by user identity (email/phone)
100
+ * @property {string} type - Optional filter by user type
101
+ * @property {string} profileId - Optional filter by profile ID
102
+ * @property {string} roleId - Optional filter by role ID
103
+ * @property {number} resetPassword - Optional filter by password reset requirement
104
+ * @property {number} isActive - Optional filter by account active status
105
+ * @property {number} isArchived - Optional filter by account archived status
106
+ * @property {string} createdAt - Optional filter by creation date (ISO datetime)
107
+ * @property {string} updatedAt - Optional filter by last update date (ISO datetime)
108
+ */
109
+ const managedUserQueryParamsSchema = z.object({
110
+ id: z.string().min(1).optional(),
111
+ name: z.string().min(1).optional(),
112
+ identity: z.string().email("Invalid email address").optional(),
113
+ type: z.string().min(1).optional(),
114
+ profileId: z.string().min(1).optional(),
115
+ roleId: z.string().min(1).optional(),
116
+ resetPassword: z.number().optional(),
117
+ isActive: z.number().optional(),
118
+ isArchived: z.number().optional(),
119
+ createdAt: z.string().datetime("Invalid creation timestamp").optional(),
120
+ updatedAt: z.string().datetime("Invalid update timestamp").optional(),
121
+ eager: z.string().optional(),
122
+ });
123
+ /**
124
+ * Schema definition for creating a new user account.
125
+ * Defines the required and optional fields for user creation.
126
+ *
127
+ * @property {string} name - Full name of the user
128
+ * @property {string} identity - User's email address
129
+ * @property {string} password - Initial password for the account
130
+ * @property {string} roleId - Optional role ID (defaults to system default)
131
+ * @property {boolean} resetPassword - Optional flag to force password reset (defaults to true)
132
+ */
133
+ const createUserRequestSchema = z.object({
134
+ name: z.string().min(1, "User name is required"),
135
+ identity: z.string().email("Valid email address is required"),
136
+ password: passwordSchema.optional(),
137
+ roleId: z.string().optional(),
138
+ resetPassword: z.boolean().optional(),
139
+ });
140
+ /**
141
+ * Schema definition for updating a user account.
142
+ * All fields are optional for partial updates.
143
+ *
144
+ * @property {string} name - Optional updated name
145
+ * @property {string} roleId - Optional updated role ID
146
+ * @property {string} password - Optional new password
147
+ * @property {boolean} resetPassword - Optional flag to force password reset
148
+ * @property {boolean} isActive - Optional account activation status
149
+ */
150
+ const updateUserRequestSchema = z.object({
151
+ name: z.string().min(1, "User name cannot be empty").optional(),
152
+ roleId: z.string().min(1, "Role ID cannot be empty").optional(),
153
+ password: passwordSchema.optional(),
154
+ resetPassword: z.boolean().optional(),
155
+ isActive: z.boolean().optional(),
156
+ });
157
+ /**
158
+ * Schema definition for resetting a user's password.
159
+ * Both fields are optional with system defaults.
160
+ *
161
+ * @property {string} newPassword - Optional new password (random generated if not provided)
162
+ * @property {boolean} sendNotification - Optional flag to send notification to user
163
+ */
164
+ const resetPasswordRequestSchema = z.object({
165
+ newPassword: passwordSchema.optional(),
166
+ sendNotification: z.boolean().optional(),
167
+ });
168
+ /**
169
+ * Schema definition for the response when creating a user.
170
+ * Returns basic user information without sensitive data.
171
+ *
172
+ * @property {string} id - Unique identifier for the created user
173
+ * @property {string} name - Full name of the user
174
+ * @property {string} identity - User's email address
175
+ * @property {string} type - Type of user account
176
+ * @property {string} profileId - ID of the associated profile
177
+ * @property {string} roleId - ID of the assigned role
178
+ * @property {boolean} isActive - Whether the account is active
179
+ * @property {string} createdAt - ISO datetime string of account creation
180
+ */
181
+ const createUserResponseSchema = z.object({
182
+ id: z.string(),
183
+ name: z.string(),
184
+ identity: z.string(),
185
+ type: z.string(),
186
+ profileId: z.string(),
187
+ roleId: z.string(),
188
+ isActive: z.boolean(),
189
+ isArchived: z.boolean(),
190
+ createdAt: z.string().datetime(),
191
+ });
192
+ // ====================== Schema Collections ====================== //
193
+ /**
194
+ * Collection of user management schemas for export.
195
+ * Provides access to all user and role validation schemas.
196
+ */
197
+ export const UserManagementSchemas = {
198
+ role: roleSchema,
199
+ managedUser: managedUserSchema,
200
+ managedUserQueryParams: managedUserQueryParamsSchema,
201
+ createUserRequest: createUserRequestSchema,
202
+ updateUserRequest: updateUserRequestSchema,
203
+ resetPasswordRequest: resetPasswordRequestSchema,
204
+ createUserResponse: createUserResponseSchema,
205
+ password: passwordSchema, // Export password schema for reuse
206
+ };
@@ -11,3 +11,4 @@ export declare const accessContract: {
11
11
  };
12
12
  };
13
13
  };
14
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../../src/src/features/auth/access/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAQzB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ import { initContract } from "@ts-rest/core";
3
+ /**
4
+ * Auth API contract
5
+ */
6
+ export const accessContract = initContract().router({
7
+ getAccessList: {
8
+ method: "GET",
9
+ path: "/access",
10
+ responses: {
11
+ 200: z.string().array(),
12
+ },
13
+ },
14
+ });
@@ -0,0 +1,11 @@
1
+ import { Profile } from "../../../models/index.js";
2
+ import { TokenRequiredRepository } from "../../../shared/token_required_repository.js";
3
+ import { accessContract } from "./contract.js";
4
+ export declare class AccessRepository extends TokenRequiredRepository<typeof accessContract> {
5
+ /**
6
+ * Initializes an instance of ProfileRepository.
7
+ */
8
+ constructor();
9
+ getCurrentProfile(token: string): Promise<Profile>;
10
+ }
11
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../src/src/features/auth/access/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,qBAAa,gBACX,SAAQ,uBAAuB,CAAC,OAAO,cAAc,CAAC;IACtD;;OAEG;;IAKG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAazD"}
@@ -0,0 +1,25 @@
1
+ import { Profile } from "../../../models/index.js";
2
+ import { APIError } from "../../../errors/api_error.js";
3
+ import { TokenRequiredRepository } from "../../../shared/token_required_repository.js";
4
+ import { accessContract } from "./contract.js";
5
+ export class AccessRepository extends TokenRequiredRepository {
6
+ /**
7
+ * Initializes an instance of ProfileRepository.
8
+ */
9
+ constructor() {
10
+ super("auth", accessContract, "");
11
+ }
12
+ async getCurrentProfile(token) {
13
+ this.setToken(token);
14
+ const result = await this.client.getAccessList();
15
+ if (result.status === 200) {
16
+ const profile = Profile.from(result.body);
17
+ if (profile)
18
+ return profile;
19
+ }
20
+ throw new APIError({
21
+ message: "An error occurred while trying to get the current access list",
22
+ statusCode: 502,
23
+ });
24
+ }
25
+ }
@@ -23,14 +23,13 @@ export declare const authContract: {
23
23
  201: z.ZodObject<{
24
24
  profile: z.ZodObject<{
25
25
  id: z.ZodString;
26
- firstName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
27
- lastName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
26
+ firstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
27
+ lastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
28
28
  displayName: z.ZodString;
29
- phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
29
+ phone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
30
30
  accountNo: z.ZodString;
31
- email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
32
- autoApprove: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
33
- }, "strip", z.ZodTypeAny, {
31
+ email: z.ZodNullable<z.ZodOptional<z.ZodString>>;
32
+ }, z.UnknownKeysParam, z.ZodTypeAny, {
34
33
  id: string;
35
34
  displayName: string;
36
35
  accountNo: string;
@@ -38,7 +37,6 @@ export declare const authContract: {
38
37
  lastName?: string | null | undefined;
39
38
  phone?: string | null | undefined;
40
39
  email?: string | null | undefined;
41
- autoApprove?: boolean | null | undefined;
42
40
  }, {
43
41
  id: string;
44
42
  displayName: string;
@@ -47,7 +45,6 @@ export declare const authContract: {
47
45
  lastName?: string | null | undefined;
48
46
  phone?: string | null | undefined;
49
47
  email?: string | null | undefined;
50
- autoApprove?: boolean | null | undefined;
51
48
  }>;
52
49
  token: z.ZodString;
53
50
  access: z.ZodArray<z.ZodString, "many">;
@@ -62,7 +59,6 @@ export declare const authContract: {
62
59
  lastName?: string | null | undefined;
63
60
  phone?: string | null | undefined;
64
61
  email?: string | null | undefined;
65
- autoApprove?: boolean | null | undefined;
66
62
  };
67
63
  token: string;
68
64
  access: string[];
@@ -76,7 +72,6 @@ export declare const authContract: {
76
72
  lastName?: string | null | undefined;
77
73
  phone?: string | null | undefined;
78
74
  email?: string | null | undefined;
79
- autoApprove?: boolean | null | undefined;
80
75
  };
81
76
  token: string;
82
77
  access: string[];
@@ -104,13 +99,14 @@ export declare const authContract: {
104
99
  currentPassword: z.ZodString;
105
100
  newPassword: z.ZodString;
106
101
  }, "strip", z.ZodTypeAny, {
107
- newPassword: string;
108
102
  currentPassword: string;
109
- }, {
110
103
  newPassword: string;
104
+ }, {
111
105
  currentPassword: string;
106
+ newPassword: string;
112
107
  }>;
113
108
  path: "/password";
114
109
  responses: {};
115
110
  };
116
111
  };
112
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/src/features/auth/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCvB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { z } from "zod";
2
+ import { initContract } from "@ts-rest/core";
3
+ import { Profile } from "../../models/index.js";
4
+ /**
5
+ * Auth API contract
6
+ */
7
+ export const authContract = initContract().router({
8
+ logIn: {
9
+ method: "POST",
10
+ path: "/login",
11
+ body: z.object({
12
+ type: z.string().default("password"),
13
+ identity: z.string().email(),
14
+ password: z.string(),
15
+ }),
16
+ responses: {
17
+ 201: z.object({
18
+ profile: Profile.schema,
19
+ token: z.string(),
20
+ access: z.array(z.string()),
21
+ resetPassword: z.boolean(),
22
+ }),
23
+ 400: z.object({}),
24
+ },
25
+ },
26
+ access: {
27
+ method: "GET",
28
+ path: "/access",
29
+ headers: z.object({ token: z.string() }),
30
+ responses: {
31
+ 200: z.string().array(),
32
+ },
33
+ },
34
+ resetPassword: {
35
+ method: "PUT",
36
+ path: "/password",
37
+ body: z.object({
38
+ currentPassword: z.string(),
39
+ newPassword: z.string(),
40
+ }),
41
+ responses: {},
42
+ },
43
+ });
@@ -20,3 +20,4 @@ export declare const identityContract: {
20
20
  };
21
21
  };
22
22
  };
23
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../../src/src/features/auth/identity/contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAW3B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { initContract } from "@ts-rest/core";
2
+ import { z } from "zod";
3
+ /**
4
+ * Identity API contract
5
+ */
6
+ export const identityContract = initContract().router({
7
+ getUserCredentials: {
8
+ method: "GET",
9
+ path: "/me",
10
+ responses: {
11
+ 200: z.object({
12
+ name: z.string(),
13
+ identity: z.string(),
14
+ }),
15
+ },
16
+ },
17
+ });
@@ -0,0 +1,22 @@
1
+ import { identityContract } from "./contract.js";
2
+ import type { ClientInferResponseBody } from "@ts-rest/core";
3
+ import { TokenRequiredRepository } from "../../../shared/token_required_repository.js";
4
+ type GetUserIdentityResponse = ClientInferResponseBody<typeof identityContract.getUserCredentials>;
5
+ /**
6
+ * Class representing the LoginRepository.
7
+ * Provides methods to retrieve user identity-related information.
8
+ */
9
+ export declare class LoginRepository extends TokenRequiredRepository<typeof identityContract> {
10
+ /**
11
+ * Initializes an instance of LoginRepository.
12
+ */
13
+ constructor();
14
+ /**
15
+ * Retrieves the user's login credentials.
16
+ * @returns A promise that resolves to the user's login credentials on success.
17
+ * @throws {APIError} If an error occurs while retrieving the credentials.
18
+ */
19
+ getIdentity(token: string): Promise<GetUserIdentityResponse>;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../src/src/features/auth/identity/repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAEvF,KAAK,uBAAuB,GAAG,uBAAuB,CACpD,OAAO,gBAAgB,CAAC,kBAAkB,CAC3C,CAAC;AAEF;;;GAGG;AACH,qBAAa,eACX,SAAQ,uBAAuB,CAAC,OAAO,gBAAgB,CAAC;IACxD;;OAEG;;IAKH;;;;OAIG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAUnE"}
@@ -0,0 +1,30 @@
1
+ import { APIError } from "../../../errors/api_error.js";
2
+ import { identityContract } from "./contract.js";
3
+ import { TokenRequiredRepository } from "../../../shared/token_required_repository.js";
4
+ /**
5
+ * Class representing the LoginRepository.
6
+ * Provides methods to retrieve user identity-related information.
7
+ */
8
+ export class LoginRepository extends TokenRequiredRepository {
9
+ /**
10
+ * Initializes an instance of LoginRepository.
11
+ */
12
+ constructor() {
13
+ super("login", identityContract, "");
14
+ }
15
+ /**
16
+ * Retrieves the user's login credentials.
17
+ * @returns A promise that resolves to the user's login credentials on success.
18
+ * @throws {APIError} If an error occurs while retrieving the credentials.
19
+ */
20
+ async getIdentity(token) {
21
+ this.setToken(token);
22
+ const result = await this.client.getUserCredentials();
23
+ if (result.status === 200)
24
+ return result.body;
25
+ throw new APIError({
26
+ message: "An error occurred while trying to get login credentials",
27
+ statusCode: 502,
28
+ });
29
+ }
30
+ }
@@ -0,0 +1,6 @@
1
+ export * from "./manager.js";
2
+ export * from "./repository.js";
3
+ export * from "./profile/repository.js";
4
+ export * from "./identity/repository.js";
5
+ export * from "./access/repository.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/features/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export * from "./manager.js";
2
+ export * from "./repository.js";
3
+ export * from "./profile/repository.js";
4
+ export * from "./identity/repository.js";
5
+ export * from "./access/repository.js";
@@ -0,0 +1,105 @@
1
+ import type { User } from "../../models/index.js";
2
+ import type { Permission } from "../../models/permission.js";
3
+ /**
4
+ * Global context to hold the current auth instance reference.
5
+ * This provides a way to access the auth instance across the application
6
+ * without directly coupling to the singleton pattern.
7
+ */
8
+ export declare const AuthContext: {
9
+ current: AfloatAuth | undefined;
10
+ };
11
+ /**
12
+ * Main authentication class that works in both client and server environments.
13
+ * Provides authentication functionality and user management.
14
+ */
15
+ export declare class AfloatAuth {
16
+ /** The auth store implementation */
17
+ private store;
18
+ /** The token handler implementation */
19
+ private tokenHandler;
20
+ /** client AfloatAuth instance */
21
+ private static _instance;
22
+ /**
23
+ * Private constructor to maintain control over instantiation.
24
+ * @param {AuthStore} store - The auth store implementation to use
25
+ * @param {TokenHandler} tokenHandler - The token handler implementation to use
26
+ */
27
+ private constructor();
28
+ /**
29
+ * Gets or creates the client-side singleton instance of AfloatAuth.
30
+ * This getter will automatically initialize the client instance if it hasn't been created yet.
31
+ * For server-side usage, use initializeServer() instead.
32
+ *
33
+ * @returns {AfloatAuth} The client-side singleton instance
34
+ * @example
35
+ * // Client-side usage
36
+ * const auth = AfloatAuth.instance;
37
+ *
38
+ * // Server-side usage (don't use .instance)
39
+ * const serverAuth = await AfloatAuth.initializeServer(token);
40
+ */
41
+ static get instance(): AfloatAuth;
42
+ /**
43
+ * Creates a new server-side instance of AfloatAuth.
44
+ * Unlike the client-side instance getter, this creates a new instance each time.
45
+ *
46
+ * @param {string} token - Authentication token
47
+ * @returns {Promise<AfloatAuth>} A new server-side instance
48
+ * @throws {Error} If token is invalid or required data cannot be fetched
49
+ */
50
+ static initializeServer(token: string): Promise<AfloatAuth>;
51
+ /**
52
+ * Gets the authentication repository instance.
53
+ * @private
54
+ * @returns {AuthRepository} The repository for auth operations
55
+ */
56
+ private get repo();
57
+ /**
58
+ * Gets the current authentication token.
59
+ * @returns {string | undefined} The current token or undefined if not authenticated
60
+ */
61
+ getUserToken(): string | undefined;
62
+ /**
63
+ * Gets the currently authenticated user.
64
+ * @returns {User | undefined} The current user or undefined if not authenticated
65
+ */
66
+ get currentUser(): User | undefined;
67
+ /**
68
+ * React hook for accessing the current user in client-side code.
69
+ * @throws {Error} If called in a server environment
70
+ * @returns {User | undefined} The current user or undefined if not authenticated
71
+ */
72
+ useCurrentUser(): User | undefined;
73
+ /**
74
+ * Checks if the current user has a specific permission.
75
+ * @param {Permission} perm - The permission to check
76
+ * @returns {boolean} True if the user has the permission, false otherwise
77
+ */
78
+ checkPermission(perm: Permission): boolean;
79
+ /**
80
+ * Authenticates a user with email and password.
81
+ * @param {string} email - The user's email
82
+ * @param {string} password - The user's password
83
+ * @returns {Promise<User>} Promise resolving to the authenticated user
84
+ * @throws Will throw an error if authentication fails
85
+ */
86
+ logIn(email: string, password: string): Promise<User>;
87
+ /**
88
+ * Updates the user's password.
89
+ * @param {string} current - The current password
90
+ * @param {string} updated - The new password
91
+ * @returns {Promise<boolean>} Promise resolving to true if successful
92
+ * @throws Will throw an error if the password update fails
93
+ */
94
+ resetPassword(current: string, updated: string): Promise<boolean>;
95
+ /**
96
+ * Logs out the current user.
97
+ */
98
+ logOut(): void;
99
+ /**
100
+ * Clears all authentication data.
101
+ * @private
102
+ */
103
+ private clearSavedData;
104
+ }
105
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/src/features/auth/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAU7D;;;;GAIG;AACH,eAAO,MAAM,WAAW;aAEA,UAAU,GAAG,SAAS;CAC7C,CAAC;AAEF;;;GAGG;AACH,qBAAa,UAAU;IACrB,oCAAoC;IACpC,OAAO,CAAC,KAAK,CAAY;IAEzB,uCAAuC;IACvC,OAAO,CAAC,YAAY,CAAe;IAEnC,iCAAiC;IACjC,OAAO,CAAC,MAAM,CAAC,SAAS,CAA2B;IAEnD;;;;OAIG;IACH,OAAO;IAKP;;;;;;;;;;;;OAYG;IACH,WAAkB,QAAQ,IAAI,UAAU,CAYvC;IAED;;;;;;;OAOG;WACiB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA8BxE;;;;OAIG;IACH,OAAO,KAAK,IAAI,GAEf;IAED;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;;OAGG;IACH,IAAI,WAAW,IAAI,IAAI,GAAG,SAAS,CAElC;IAED;;;;OAIG;IACH,cAAc,IAAI,IAAI,GAAG,SAAS;IAIlC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAI1C;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvE;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;;OAGG;IACH,OAAO,CAAC,cAAc;CAIvB"}