@temboplus/afloat 0.1.0

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 (335) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +21 -0
  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 +7 -0
  39. package/esm/mod.d.ts.map +1 -0
  40. package/esm/mod.js +6 -0
  41. package/esm/package.json +3 -0
  42. package/esm/src/errors/api_error.d.ts +63 -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/esm/src/errors/permission_error.d.ts +48 -0
  49. package/esm/src/errors/permission_error.d.ts.map +1 -0
  50. package/esm/src/errors/permission_error.js +70 -0
  51. package/esm/src/features/auth/contract.d.ts +123 -0
  52. package/esm/src/features/auth/contract.d.ts.map +1 -0
  53. package/esm/src/features/auth/contract.js +50 -0
  54. package/esm/src/features/auth/index.d.ts +2 -0
  55. package/esm/src/features/auth/index.d.ts.map +1 -0
  56. package/esm/src/features/auth/index.js +1 -0
  57. package/esm/src/features/auth/manager.d.ts +71 -0
  58. package/esm/src/features/auth/manager.d.ts.map +1 -0
  59. package/esm/src/features/auth/manager.js +118 -0
  60. package/esm/src/features/auth/repository.d.ts +30 -0
  61. package/esm/src/features/auth/repository.d.ts.map +1 -0
  62. package/esm/src/features/auth/repository.js +94 -0
  63. package/esm/src/features/contact/contract.d.ts +170 -0
  64. package/esm/src/features/contact/contract.d.ts.map +1 -0
  65. package/esm/src/features/contact/contract.js +49 -0
  66. package/esm/src/features/contact/index.d.ts +2 -0
  67. package/esm/src/features/contact/index.d.ts.map +1 -0
  68. package/esm/src/features/contact/index.js +1 -0
  69. package/esm/src/features/contact/repository.d.ts +47 -0
  70. package/esm/src/features/contact/repository.d.ts.map +1 -0
  71. package/esm/src/features/contact/repository.js +94 -0
  72. package/esm/src/features/files-gen/contract.d.ts +67 -0
  73. package/esm/src/features/files-gen/contract.d.ts.map +1 -0
  74. package/esm/src/features/files-gen/contract.js +40 -0
  75. package/esm/src/features/files-gen/repository.d.ts +47 -0
  76. package/esm/src/features/files-gen/repository.d.ts.map +1 -0
  77. package/esm/src/features/files-gen/repository.js +48 -0
  78. package/esm/src/features/payout/contract.d.ts +623 -0
  79. package/esm/src/features/payout/contract.d.ts.map +1 -0
  80. package/esm/src/features/payout/contract.js +75 -0
  81. package/esm/src/features/payout/index.d.ts +2 -0
  82. package/esm/src/features/payout/index.d.ts.map +1 -0
  83. package/esm/src/features/payout/index.js +1 -0
  84. package/esm/src/features/payout/repository.d.ts +62 -0
  85. package/esm/src/features/payout/repository.d.ts.map +1 -0
  86. package/esm/src/features/payout/repository.js +158 -0
  87. package/esm/src/features/wallet/contract.d.ts +103 -0
  88. package/esm/src/features/wallet/contract.d.ts.map +1 -0
  89. package/esm/src/features/wallet/contract.js +35 -0
  90. package/esm/src/features/wallet/index.d.ts +2 -0
  91. package/esm/src/features/wallet/index.d.ts.map +1 -0
  92. package/esm/src/features/wallet/index.js +1 -0
  93. package/esm/src/features/wallet/repository.d.ts +74 -0
  94. package/esm/src/features/wallet/repository.d.ts.map +1 -0
  95. package/esm/src/features/wallet/repository.js +132 -0
  96. package/esm/src/models/contact/derivatives/contact.d.ts +168 -0
  97. package/esm/src/models/contact/derivatives/contact.d.ts.map +1 -0
  98. package/esm/src/models/contact/derivatives/contact.js +260 -0
  99. package/esm/src/models/contact/derivatives/contact.test.d.ts.map +1 -0
  100. package/esm/src/models/contact/derivatives/contact_info.d.ts +188 -0
  101. package/esm/src/models/contact/derivatives/contact_info.d.ts.map +1 -0
  102. package/esm/src/models/contact/derivatives/contact_info.js +255 -0
  103. package/esm/src/models/contact/derivatives/contact_info.test.d.ts.map +1 -0
  104. package/esm/src/models/contact/index.d.ts +5 -0
  105. package/esm/src/models/contact/index.d.ts.map +1 -0
  106. package/esm/src/models/contact/index.js +4 -0
  107. package/esm/src/models/contact/schemas.d.ts +66 -0
  108. package/esm/src/models/contact/schemas.d.ts.map +1 -0
  109. package/esm/src/models/contact/schemas.js +64 -0
  110. package/esm/src/models/contact/validation.d.ts +37 -0
  111. package/esm/src/models/contact/validation.d.ts.map +1 -0
  112. package/esm/src/models/contact/validation.js +139 -0
  113. package/esm/src/models/contact/validation.test.d.ts.map +1 -0
  114. package/esm/src/models/index.d.ts +6 -0
  115. package/esm/src/models/index.d.ts.map +1 -0
  116. package/esm/src/models/index.js +5 -0
  117. package/esm/src/models/payout/api.d.ts +29 -0
  118. package/esm/src/models/payout/api.d.ts.map +1 -0
  119. package/esm/src/models/payout/api.js +1 -0
  120. package/esm/src/models/payout/channel.d.ts +58 -0
  121. package/esm/src/models/payout/channel.d.ts.map +1 -0
  122. package/esm/src/models/payout/channel.js +46 -0
  123. package/esm/src/models/payout/derivatives/payout.d.ts +156 -0
  124. package/esm/src/models/payout/derivatives/payout.d.ts.map +1 -0
  125. package/esm/src/models/payout/derivatives/payout.js +261 -0
  126. package/esm/src/models/payout/derivatives/payout.test.d.ts.map +1 -0
  127. package/esm/src/models/payout/index.d.ts +6 -0
  128. package/esm/src/models/payout/index.d.ts.map +1 -0
  129. package/esm/src/models/payout/index.js +5 -0
  130. package/esm/src/models/payout/schemas.d.ts +154 -0
  131. package/esm/src/models/payout/schemas.d.ts.map +1 -0
  132. package/esm/src/models/payout/schemas.js +103 -0
  133. package/esm/src/models/payout/status.d.ts +31 -0
  134. package/esm/src/models/payout/status.d.ts.map +1 -0
  135. package/esm/src/models/payout/status.js +32 -0
  136. package/esm/src/models/permission.d.ts +42 -0
  137. package/esm/src/models/permission.d.ts.map +1 -0
  138. package/esm/src/models/permission.js +37 -0
  139. package/esm/src/models/user/index.d.ts +3 -0
  140. package/esm/src/models/user/index.d.ts.map +1 -0
  141. package/esm/src/models/user/index.js +2 -0
  142. package/esm/src/models/user/profile.d.ts +38 -0
  143. package/esm/src/models/user/profile.d.ts.map +1 -0
  144. package/esm/src/models/user/profile.js +25 -0
  145. package/esm/src/models/user/user.d.ts +80 -0
  146. package/esm/src/models/user/user.d.ts.map +1 -0
  147. package/esm/src/models/user/user.js +149 -0
  148. package/esm/src/models/wallet/guards.d.ts +11 -0
  149. package/esm/src/models/wallet/guards.d.ts.map +1 -0
  150. package/esm/src/models/wallet/guards.js +14 -0
  151. package/esm/src/models/wallet/index.d.ts +4 -0
  152. package/esm/src/models/wallet/index.d.ts.map +1 -0
  153. package/esm/src/models/wallet/index.js +3 -0
  154. package/esm/src/models/wallet/schemas.d.ts +50 -0
  155. package/esm/src/models/wallet/schemas.d.ts.map +1 -0
  156. package/esm/src/models/wallet/schemas.js +64 -0
  157. package/esm/src/models/wallet/statement.d.ts +27 -0
  158. package/esm/src/models/wallet/statement.d.ts.map +1 -0
  159. package/esm/src/models/wallet/statement.js +13 -0
  160. package/esm/src/shared/base_repository.d.ts +56 -0
  161. package/esm/src/shared/base_repository.d.ts.map +1 -0
  162. package/esm/src/shared/base_repository.js +95 -0
  163. package/esm/src/shared/common_responses.d.ts +13 -0
  164. package/esm/src/shared/common_responses.d.ts.map +1 -0
  165. package/esm/src/shared/common_responses.js +10 -0
  166. package/esm/src/shared/index.d.ts +3 -0
  167. package/esm/src/shared/index.d.ts.map +1 -0
  168. package/esm/src/shared/index.js +2 -0
  169. package/package.json +40 -0
  170. package/script/_dnt.test_shims.d.ts.map +1 -0
  171. package/script/deps/jsr.io/@std/assert/1.0.10/almost_equals.d.ts.map +1 -0
  172. package/script/deps/jsr.io/@std/assert/1.0.10/array_includes.d.ts.map +1 -0
  173. package/script/deps/jsr.io/@std/assert/1.0.10/assert.d.ts.map +1 -0
  174. package/script/deps/jsr.io/@std/assert/1.0.10/assertion_error.d.ts.map +1 -0
  175. package/script/deps/jsr.io/@std/assert/1.0.10/equal.d.ts.map +1 -0
  176. package/script/deps/jsr.io/@std/assert/1.0.10/equals.d.ts.map +1 -0
  177. package/script/deps/jsr.io/@std/assert/1.0.10/exists.d.ts.map +1 -0
  178. package/script/deps/jsr.io/@std/assert/1.0.10/fail.d.ts.map +1 -0
  179. package/script/deps/jsr.io/@std/assert/1.0.10/false.d.ts.map +1 -0
  180. package/script/deps/jsr.io/@std/assert/1.0.10/greater.d.ts.map +1 -0
  181. package/script/deps/jsr.io/@std/assert/1.0.10/greater_or_equal.d.ts.map +1 -0
  182. package/script/deps/jsr.io/@std/assert/1.0.10/instance_of.d.ts.map +1 -0
  183. package/script/deps/jsr.io/@std/assert/1.0.10/is_error.d.ts.map +1 -0
  184. package/script/deps/jsr.io/@std/assert/1.0.10/less.d.ts.map +1 -0
  185. package/script/deps/jsr.io/@std/assert/1.0.10/less_or_equal.d.ts.map +1 -0
  186. package/script/deps/jsr.io/@std/assert/1.0.10/match.d.ts.map +1 -0
  187. package/script/deps/jsr.io/@std/assert/1.0.10/mod.d.ts.map +1 -0
  188. package/script/deps/jsr.io/@std/assert/1.0.10/not_equals.d.ts.map +1 -0
  189. package/script/deps/jsr.io/@std/assert/1.0.10/not_instance_of.d.ts.map +1 -0
  190. package/script/deps/jsr.io/@std/assert/1.0.10/not_match.d.ts.map +1 -0
  191. package/script/deps/jsr.io/@std/assert/1.0.10/not_strict_equals.d.ts.map +1 -0
  192. package/script/deps/jsr.io/@std/assert/1.0.10/object_match.d.ts.map +1 -0
  193. package/script/deps/jsr.io/@std/assert/1.0.10/rejects.d.ts.map +1 -0
  194. package/script/deps/jsr.io/@std/assert/1.0.10/strict_equals.d.ts.map +1 -0
  195. package/script/deps/jsr.io/@std/assert/1.0.10/string_includes.d.ts.map +1 -0
  196. package/script/deps/jsr.io/@std/assert/1.0.10/throws.d.ts.map +1 -0
  197. package/script/deps/jsr.io/@std/assert/1.0.10/unimplemented.d.ts.map +1 -0
  198. package/script/deps/jsr.io/@std/assert/1.0.10/unreachable.d.ts.map +1 -0
  199. package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +1 -0
  200. package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +1 -0
  201. package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +1 -0
  202. package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +1 -0
  203. package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +1 -0
  204. package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +1 -0
  205. package/script/mod.d.ts +7 -0
  206. package/script/mod.d.ts.map +1 -0
  207. package/script/mod.js +22 -0
  208. package/script/package.json +3 -0
  209. package/script/src/errors/api_error.d.ts +63 -0
  210. package/script/src/errors/api_error.d.ts.map +1 -0
  211. package/script/src/errors/api_error.js +94 -0
  212. package/script/src/errors/index.d.ts +3 -0
  213. package/script/src/errors/index.d.ts.map +1 -0
  214. package/script/src/errors/index.js +18 -0
  215. package/script/src/errors/permission_error.d.ts +48 -0
  216. package/script/src/errors/permission_error.d.ts.map +1 -0
  217. package/script/src/errors/permission_error.js +74 -0
  218. package/script/src/features/auth/contract.d.ts +123 -0
  219. package/script/src/features/auth/contract.d.ts.map +1 -0
  220. package/script/src/features/auth/contract.js +53 -0
  221. package/script/src/features/auth/index.d.ts +2 -0
  222. package/script/src/features/auth/index.d.ts.map +1 -0
  223. package/script/src/features/auth/index.js +17 -0
  224. package/script/src/features/auth/manager.d.ts +71 -0
  225. package/script/src/features/auth/manager.d.ts.map +1 -0
  226. package/script/src/features/auth/manager.js +122 -0
  227. package/script/src/features/auth/repository.d.ts +30 -0
  228. package/script/src/features/auth/repository.d.ts.map +1 -0
  229. package/script/src/features/auth/repository.js +98 -0
  230. package/script/src/features/contact/contract.d.ts +170 -0
  231. package/script/src/features/contact/contract.d.ts.map +1 -0
  232. package/script/src/features/contact/contract.js +52 -0
  233. package/script/src/features/contact/index.d.ts +2 -0
  234. package/script/src/features/contact/index.d.ts.map +1 -0
  235. package/script/src/features/contact/index.js +17 -0
  236. package/script/src/features/contact/repository.d.ts +47 -0
  237. package/script/src/features/contact/repository.d.ts.map +1 -0
  238. package/script/src/features/contact/repository.js +98 -0
  239. package/script/src/features/files-gen/contract.d.ts +67 -0
  240. package/script/src/features/files-gen/contract.d.ts.map +1 -0
  241. package/script/src/features/files-gen/contract.js +43 -0
  242. package/script/src/features/files-gen/repository.d.ts +47 -0
  243. package/script/src/features/files-gen/repository.d.ts.map +1 -0
  244. package/script/src/features/files-gen/repository.js +52 -0
  245. package/script/src/features/payout/contract.d.ts +623 -0
  246. package/script/src/features/payout/contract.d.ts.map +1 -0
  247. package/script/src/features/payout/contract.js +78 -0
  248. package/script/src/features/payout/index.d.ts +2 -0
  249. package/script/src/features/payout/index.d.ts.map +1 -0
  250. package/script/src/features/payout/index.js +17 -0
  251. package/script/src/features/payout/repository.d.ts +62 -0
  252. package/script/src/features/payout/repository.d.ts.map +1 -0
  253. package/script/src/features/payout/repository.js +162 -0
  254. package/script/src/features/wallet/contract.d.ts +103 -0
  255. package/script/src/features/wallet/contract.d.ts.map +1 -0
  256. package/script/src/features/wallet/contract.js +38 -0
  257. package/script/src/features/wallet/index.d.ts +2 -0
  258. package/script/src/features/wallet/index.d.ts.map +1 -0
  259. package/script/src/features/wallet/index.js +17 -0
  260. package/script/src/features/wallet/repository.d.ts +74 -0
  261. package/script/src/features/wallet/repository.d.ts.map +1 -0
  262. package/script/src/features/wallet/repository.js +136 -0
  263. package/script/src/models/contact/derivatives/contact.d.ts +168 -0
  264. package/script/src/models/contact/derivatives/contact.d.ts.map +1 -0
  265. package/script/src/models/contact/derivatives/contact.js +264 -0
  266. package/script/src/models/contact/derivatives/contact.test.d.ts.map +1 -0
  267. package/script/src/models/contact/derivatives/contact_info.d.ts +188 -0
  268. package/script/src/models/contact/derivatives/contact_info.d.ts.map +1 -0
  269. package/script/src/models/contact/derivatives/contact_info.js +260 -0
  270. package/script/src/models/contact/derivatives/contact_info.test.d.ts.map +1 -0
  271. package/script/src/models/contact/index.d.ts +5 -0
  272. package/script/src/models/contact/index.d.ts.map +1 -0
  273. package/script/src/models/contact/index.js +20 -0
  274. package/script/src/models/contact/schemas.d.ts +66 -0
  275. package/script/src/models/contact/schemas.d.ts.map +1 -0
  276. package/script/src/models/contact/schemas.js +67 -0
  277. package/script/src/models/contact/validation.d.ts +37 -0
  278. package/script/src/models/contact/validation.d.ts.map +1 -0
  279. package/script/src/models/contact/validation.js +146 -0
  280. package/script/src/models/contact/validation.test.d.ts.map +1 -0
  281. package/script/src/models/index.d.ts +6 -0
  282. package/script/src/models/index.d.ts.map +1 -0
  283. package/script/src/models/index.js +21 -0
  284. package/script/src/models/payout/api.d.ts +29 -0
  285. package/script/src/models/payout/api.d.ts.map +1 -0
  286. package/script/src/models/payout/api.js +2 -0
  287. package/script/src/models/payout/channel.d.ts +58 -0
  288. package/script/src/models/payout/channel.d.ts.map +1 -0
  289. package/script/src/models/payout/channel.js +49 -0
  290. package/script/src/models/payout/derivatives/payout.d.ts +156 -0
  291. package/script/src/models/payout/derivatives/payout.d.ts.map +1 -0
  292. package/script/src/models/payout/derivatives/payout.js +265 -0
  293. package/script/src/models/payout/derivatives/payout.test.d.ts.map +1 -0
  294. package/script/src/models/payout/index.d.ts +6 -0
  295. package/script/src/models/payout/index.d.ts.map +1 -0
  296. package/script/src/models/payout/index.js +21 -0
  297. package/script/src/models/payout/schemas.d.ts +154 -0
  298. package/script/src/models/payout/schemas.d.ts.map +1 -0
  299. package/script/src/models/payout/schemas.js +106 -0
  300. package/script/src/models/payout/status.d.ts +31 -0
  301. package/script/src/models/payout/status.d.ts.map +1 -0
  302. package/script/src/models/payout/status.js +35 -0
  303. package/script/src/models/permission.d.ts +42 -0
  304. package/script/src/models/permission.d.ts.map +1 -0
  305. package/script/src/models/permission.js +40 -0
  306. package/script/src/models/user/index.d.ts +3 -0
  307. package/script/src/models/user/index.d.ts.map +1 -0
  308. package/script/src/models/user/index.js +18 -0
  309. package/script/src/models/user/profile.d.ts +38 -0
  310. package/script/src/models/user/profile.d.ts.map +1 -0
  311. package/script/src/models/user/profile.js +28 -0
  312. package/script/src/models/user/user.d.ts +80 -0
  313. package/script/src/models/user/user.d.ts.map +1 -0
  314. package/script/src/models/user/user.js +153 -0
  315. package/script/src/models/wallet/guards.d.ts +11 -0
  316. package/script/src/models/wallet/guards.d.ts.map +1 -0
  317. package/script/src/models/wallet/guards.js +17 -0
  318. package/script/src/models/wallet/index.d.ts +4 -0
  319. package/script/src/models/wallet/index.d.ts.map +1 -0
  320. package/script/src/models/wallet/index.js +19 -0
  321. package/script/src/models/wallet/schemas.d.ts +50 -0
  322. package/script/src/models/wallet/schemas.d.ts.map +1 -0
  323. package/script/src/models/wallet/schemas.js +67 -0
  324. package/script/src/models/wallet/statement.d.ts +27 -0
  325. package/script/src/models/wallet/statement.d.ts.map +1 -0
  326. package/script/src/models/wallet/statement.js +16 -0
  327. package/script/src/shared/base_repository.d.ts +56 -0
  328. package/script/src/shared/base_repository.d.ts.map +1 -0
  329. package/script/src/shared/base_repository.js +99 -0
  330. package/script/src/shared/common_responses.d.ts +13 -0
  331. package/script/src/shared/common_responses.d.ts.map +1 -0
  332. package/script/src/shared/common_responses.js +13 -0
  333. package/script/src/shared/index.d.ts +3 -0
  334. package/script/src/shared/index.d.ts.map +1 -0
  335. package/script/src/shared/index.js +18 -0
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Payout = void 0;
4
+ const frontend_core_1 = require("@temboplus/frontend-core");
5
+ const schemas_js_1 = require("../schemas.js");
6
+ const index_js_1 = require("../../contact/index.js");
7
+ const status_js_1 = require("../status.js");
8
+ const channel_js_1 = require("../channel.js");
9
+ /**
10
+ * Payout class that wraps the Zod schema and provides additional functionality
11
+ */
12
+ class Payout {
13
+ /**
14
+ * Private constructor - use static methods to create instances
15
+ */
16
+ constructor(data) {
17
+ Object.defineProperty(this, "data", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: void 0
22
+ });
23
+ this.data = schemas_js_1.PayoutSchemas.payoutData.parse(data);
24
+ }
25
+ // Getters for all properties
26
+ /** Unique identifier for the payout */
27
+ get id() {
28
+ return this.data.id;
29
+ }
30
+ /** Profile identifier associated with this payout */
31
+ get profileId() {
32
+ return this.data.profileId;
33
+ }
34
+ /** Name of the payee/recipient */
35
+ get payeeName() {
36
+ return this.data.payeeName;
37
+ }
38
+ /** Payment channel used for this payout */
39
+ get channel() {
40
+ return this.data.channel;
41
+ }
42
+ /** Mobile number or bank account identifier */
43
+ get msisdn() {
44
+ return this.data.msisdn;
45
+ }
46
+ /**
47
+ * Amount to be paid out
48
+ * @returns {Amount} Amount object representing the payout value
49
+ */
50
+ get amount() {
51
+ return frontend_core_1.Amount.from(this.data.amount);
52
+ }
53
+ /** Description of the payout purpose */
54
+ get description() {
55
+ return this.data.description;
56
+ }
57
+ /** Optional additional notes about the payout */
58
+ get notes() {
59
+ return this.data.notes;
60
+ }
61
+ /**
62
+ * Current status of the payout
63
+ * Derived from both approval status and transaction status:
64
+ * - Returns REJECTED if approval status is "Rejected"
65
+ * - Returns FAILED if approved but transaction failed
66
+ * - Returns PAID if approved and transaction succeeded
67
+ * - Returns PENDING if awaiting approval
68
+ * - Falls back to transaction status in other cases
69
+ *
70
+ * @returns {PAYOUT_STATUS} Current status of the payout
71
+ * @see {@link PAYOUT_STATUS} for all possible status values
72
+ */
73
+ get status() {
74
+ if (this.data.approvalStatus === "Rejected") {
75
+ return status_js_1.PAYOUT_STATUS.REJECTED;
76
+ }
77
+ if (this.data.approvalStatus === "Approved") {
78
+ if (this.data.status === "FAILED") {
79
+ return status_js_1.PAYOUT_STATUS.FAILED;
80
+ }
81
+ return status_js_1.PAYOUT_STATUS.PAID;
82
+ }
83
+ if (this.data.approvalStatus === "Pending") {
84
+ return status_js_1.PAYOUT_STATUS.PENDING;
85
+ }
86
+ return this.data.status;
87
+ }
88
+ /** Status message providing details about current state */
89
+ get statusMessage() {
90
+ return this.data.statusMessage;
91
+ }
92
+ /** Optional reference ID from payment partner */
93
+ get partnerReference() {
94
+ return this.data.partnerReference;
95
+ }
96
+ /** Timestamp when payout was created */
97
+ get createdAt() {
98
+ return this.data.createdAt;
99
+ }
100
+ /** Timestamp when payout was last updated */
101
+ get updatedAt() {
102
+ return this.data.updatedAt;
103
+ }
104
+ /** Current approval status of the payout */
105
+ get approvalStatus() {
106
+ return this.data.approvalStatus;
107
+ }
108
+ /** Information about who created the payout */
109
+ get createdBy() {
110
+ return this.data.createdBy;
111
+ }
112
+ /** Information about who last actioned the payout */
113
+ get actionedBy() {
114
+ return this.data.actionedBy;
115
+ }
116
+ /**
117
+ * Constructs contact information based on payout channel
118
+ *
119
+ * @returns {ContactInfo | undefined} Contact information object:
120
+ * - MobileContactInfo for mobile money payouts
121
+ * - BankContactInfo for bank transfers
122
+ * - undefined if contact info cannot be constructed
123
+ *
124
+ * @remarks
125
+ * For bank payouts, expects msisdn in format "SWIFTCODE:ACCOUNTNUMBER"
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * // Mobile payout
130
+ * payout.contactInfo // Returns MobileContactInfo with phone details
131
+ *
132
+ * // Bank payout
133
+ * payout.contactInfo // Returns BankContactInfo with bank and account details
134
+ * ```
135
+ */
136
+ get contactInfo() {
137
+ let contactInfo;
138
+ // extracting mobile contact information
139
+ const phone = frontend_core_1.PhoneNumber.from(this.data.msisdn);
140
+ if (phone) {
141
+ contactInfo = new index_js_1.MobileContactInfo(this.data.payeeName, phone);
142
+ }
143
+ // extracting bank contact information
144
+ const isBankPayout = this.data.channel === channel_js_1.createPayoutChannelCode.bank() ||
145
+ this.data.channel === channel_js_1.createPayoutChannelCode.verto();
146
+ if (isBankPayout) {
147
+ // getting bank information from payout msisdn
148
+ const text = this.data.msisdn.trim().split(":");
149
+ try {
150
+ const swiftcode = text[0];
151
+ const accNo = text[1];
152
+ const bank = frontend_core_1.Bank.fromSWIFTCode(swiftcode);
153
+ if (bank) {
154
+ contactInfo = new index_js_1.BankContactInfo(this.data.payeeName, bank, accNo);
155
+ }
156
+ }
157
+ catch (_) {
158
+ //
159
+ }
160
+ }
161
+ return contactInfo;
162
+ }
163
+ /**
164
+ * Creates a Payout instance from raw data
165
+ * @throws {ZodError} if validation fails
166
+ */
167
+ static create(data) {
168
+ return new Payout(data);
169
+ }
170
+ /**
171
+ * Creates multiple Payout instances from an array of raw data
172
+ * @throws {ZodError} if validation fails for any item
173
+ */
174
+ static createMany(dataArray) {
175
+ return dataArray.map((data) => new Payout(data));
176
+ }
177
+ /**
178
+ * Creates a Payout instance from raw data without throwing
179
+ * @returns {Payout | null} Payout instance or null if validation fails
180
+ */
181
+ static createSafe(data) {
182
+ try {
183
+ return new Payout(data);
184
+ }
185
+ catch {
186
+ return null;
187
+ }
188
+ }
189
+ /**
190
+ * Checks if an unknown value contains valid data to construct a Payout instance.
191
+ * This is useful when validating raw data structures before instantiation.
192
+ *
193
+ * @param {unknown} obj - The value containing potential payout data
194
+ * @returns {obj is Payout} Type predicate indicating if a Payout can be constructed
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * const rawData = await fetchPayoutData();
199
+ * if (Payout.canConstruct(rawData)) {
200
+ * const payout = Payout.create(rawData);
201
+ * // TypeScript knows payout is valid here
202
+ * console.log(payout.amount.toString());
203
+ * }
204
+ * ```
205
+ *
206
+ * @throws {never} This method never throws errors
207
+ *
208
+ * @remarks
209
+ * This method performs strict validation against the {@link PayoutData} schema
210
+ */
211
+ static canConstruct(obj) {
212
+ if (!obj || typeof obj !== "object")
213
+ return false;
214
+ const result = schemas_js_1.PayoutSchemas.payoutData.safeParse(obj);
215
+ if (!result.success)
216
+ return false;
217
+ const payout = Payout.createSafe(result.data);
218
+ return payout !== null;
219
+ }
220
+ /**
221
+ * Validates if an unknown value is a Payout instance.
222
+ * This is a runtime type guard that ensures proper object structure and data validity.
223
+ *
224
+ * @param {unknown} obj - The value to validate
225
+ * @returns {obj is Payout} Type predicate indicating if the value is a valid Payout
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * const maybePayout = getPayoutFromCache();
230
+ * if (Payout.is(maybePayout)) {
231
+ * // TypeScript knows maybePayout is a Payout here
232
+ * console.log(maybePayout.status);
233
+ * }
234
+ * ```
235
+ *
236
+ * @throws {never} This method never throws errors
237
+ *
238
+ * @remarks
239
+ * This method performs a complete structural validation:
240
+ * 1. Checks if the value is an object
241
+ * 2. Verifies presence of internal data property
242
+ * 3. Validates the data against PayoutData schema
243
+ * 4. Ensures the object is a proper Payout instance
244
+ *
245
+ * Use this method when:
246
+ * - Validating cached Payout instances
247
+ * - Checking serialized Payout objects
248
+ * - Verifying API responses
249
+ * - Type narrowing in conditional blocks
250
+ */
251
+ static is(obj) {
252
+ if (!obj || typeof obj !== "object")
253
+ return false;
254
+ if (!("data" in obj))
255
+ return false;
256
+ return Payout.canConstruct(obj.data);
257
+ }
258
+ /**
259
+ * Converts Payout instance to a plain object
260
+ */
261
+ toJSON() {
262
+ return { ...this.data };
263
+ }
264
+ }
265
+ exports.Payout = Payout;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payout.test.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/payout/derivatives/payout.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * from "./status.js";
2
+ export * from "./schemas.js";
3
+ export * from "./channel.js";
4
+ export * from "./api.js";
5
+ export * from "./derivatives/payout.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./status.js"), exports);
18
+ __exportStar(require("./schemas.js"), exports);
19
+ __exportStar(require("./channel.js"), exports);
20
+ __exportStar(require("./api.js"), exports);
21
+ __exportStar(require("./derivatives/payout.js"), exports);
@@ -0,0 +1,154 @@
1
+ import { z } from "zod";
2
+ import { PAYOUT_APPROVAL_STATUS, PAYOUT_STATUS } from "./status.js";
3
+ /**
4
+ * Type definition for identifier schema
5
+ * Used for tracking who created or actioned a payout
6
+ * Contains a name and unique identity string
7
+ */
8
+ type IdentifierType = z.ZodObject<{
9
+ name: z.ZodString;
10
+ identity: z.ZodString;
11
+ }>;
12
+ /**
13
+ * Type definition for payout status enum
14
+ * Represents all possible states of a payout:
15
+ *
16
+ * @see {@link PAYOUT_STATUS} for the enum definition in "@models/payout/status.ts"
17
+ */
18
+ type PayoutStatusType = z.ZodEnum<[
19
+ typeof PAYOUT_STATUS.CREATED,
20
+ typeof PAYOUT_STATUS.PAID,
21
+ typeof PAYOUT_STATUS.FAILED,
22
+ typeof PAYOUT_STATUS.REJECTED,
23
+ typeof PAYOUT_STATUS.PENDING
24
+ ]>;
25
+ /**
26
+ * Type definition for payout approval status enum
27
+ * Represents the approval state of a payout:
28
+ *
29
+ * @see {@link PAYOUT_APPROVAL_STATUS} for the enum definition in "@models/payout/status.ts"
30
+ */
31
+ type ApprovalPayoutStatusType = z.ZodEnum<[
32
+ typeof PAYOUT_APPROVAL_STATUS.APPROVED,
33
+ typeof PAYOUT_APPROVAL_STATUS.PENDING,
34
+ typeof PAYOUT_APPROVAL_STATUS.REJECTED
35
+ ]>;
36
+ /**
37
+ * Type definition for payout input schema
38
+ * Extends the base payout type with payee information required for creating new payouts
39
+ *
40
+ * @extends {BasePayoutType}
41
+ * @property {z.ZodString} payeeName - Name of the payment recipient
42
+ */
43
+ type PayoutInputType = z.ZodObject<{
44
+ channel: z.ZodString;
45
+ msisdn: z.ZodString;
46
+ amount: z.ZodNumber;
47
+ description: z.ZodString;
48
+ notes: Optional<z.ZodString>;
49
+ payeeName: z.ZodString;
50
+ }>;
51
+ /**
52
+ * Type definition for complete payout schema
53
+ * Extends the base payout type with additional fields for tracking
54
+ * the full lifecycle of a payout transaction
55
+ *
56
+ * @extends {BasePayoutType}
57
+ * @property {z.ZodString} id - Unique identifier for the payout
58
+ * @property {z.ZodString} profileId - ID of the profile initiating the payout
59
+ * @property {z.ZodString} payeeName - Name of the payment recipient
60
+ * @property {PayoutStatusType} status - Current status of the payout
61
+ * @property {z.ZodString} statusMessage - Detailed message about the current status
62
+ * @property {z.ZodString} partnerReference - Optional reference from payment partner
63
+ * @property {z.ZodDate} createdAt - Timestamp of payout creation
64
+ * @property {z.ZodDate} updatedAt - Timestamp of last payout update
65
+ * @property {ApprovalPayoutStatusType} approvalStatus - Current approval state
66
+ * @property {IdentifierType} createdBy - User who created the payout
67
+ * @property {IdentifierType} actionedBy - User who last actioned the payout
68
+ */
69
+ type PayoutType = z.ZodObject<{
70
+ channel: z.ZodString;
71
+ msisdn: z.ZodString;
72
+ amount: z.ZodNumber;
73
+ description: z.ZodString;
74
+ notes: Optional<z.ZodString>;
75
+ id: z.ZodString;
76
+ profileId: z.ZodString;
77
+ payeeName: z.ZodString;
78
+ status: PayoutStatusType;
79
+ statusMessage: z.ZodString;
80
+ partnerReference: Optional<z.ZodString>;
81
+ createdAt: z.ZodDate;
82
+ updatedAt: z.ZodDate;
83
+ approvalStatus: ApprovalPayoutStatusType;
84
+ createdBy: Optional<IdentifierType>;
85
+ actionedBy: Optional<IdentifierType>;
86
+ }>;
87
+ /**
88
+ * Type representing a Zod schema that transforms nullable values to undefined
89
+ * @template T - The original Zod schema type
90
+ * @property {z.ZodNullable<T>} - The nullable version of the input schema
91
+ * @property {T["_output"] | undefined} - The output type, allowing the original type or undefined
92
+ * @property {T["_input"] | null} - The input type, allowing the original type or null
93
+ */
94
+ type MakeOptionalResult<T extends z.ZodType> = z.ZodEffects<z.ZodNullable<T>, T["_output"] | undefined, T["_input"] | null>;
95
+ /**
96
+ * Type representing a fully optional field that transforms nulls to undefined
97
+ * @template T - The original Zod schema type
98
+ * Combines MakeOptionalResult with ZodOptional to allow both:
99
+ * 1. The field to be optional (can be omitted from object)
100
+ * 2. When present, the value can be null (transformed to undefined) or the original type
101
+ */
102
+ type Optional<T extends z.ZodType> = z.ZodOptional<MakeOptionalResult<T>>;
103
+ /**
104
+ * Schema for identifying users in the payout process
105
+ * Used to track who created or actioned a payout
106
+ */
107
+ declare const identifierSchema: IdentifierType;
108
+ /**
109
+ * Type definition inferred from identifierSchema
110
+ * Represents the structure of a user who actions the payout
111
+ */
112
+ type PayoutApprover = z.infer<typeof identifierSchema>;
113
+ /**
114
+ * Type definition inferred from payoutInputSchema
115
+ * Represents the structure of data required to create a new payout
116
+ */
117
+ type PayoutInput = z.infer<typeof payoutInputSchema>;
118
+ /**
119
+ * Schema for creating a new payout
120
+ * Extends base payout schema with payee information
121
+ */
122
+ declare const payoutInputSchema: PayoutInputType;
123
+ /**
124
+ * Type definition inferred from payoutSchema
125
+ * Represents the complete payout record structure
126
+ */
127
+ type PayoutData = z.infer<typeof payoutSchema>;
128
+ /**
129
+ * Schema for complete payout record
130
+ * Extends base payout schema with additional fields for:
131
+ * - Identification (id, profileId)
132
+ * - Status tracking
133
+ * - Timestamps
134
+ * - Approval information
135
+ * - User tracking (created by, actioned by)
136
+ */
137
+ declare const payoutSchema: PayoutType;
138
+ /**
139
+ * Export object containing all payout-related schemas
140
+ * Used for validation and type checking throughout the application
141
+ */
142
+ export declare const PayoutSchemas: {
143
+ readonly payoutData: PayoutType;
144
+ readonly payoutInput: PayoutInputType;
145
+ readonly payoutTransactionStatus: PayoutStatusType;
146
+ readonly payoutApprovalStatus: ApprovalPayoutStatusType;
147
+ readonly payoutApprover: IdentifierType;
148
+ };
149
+ /**
150
+ * Export types for use in other parts of the application
151
+ * These types can be used for type checking and documentation
152
+ */
153
+ export type { PayoutApprover, PayoutData, PayoutInput };
154
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PayoutSchemas = void 0;
4
+ const zod_1 = require("zod");
5
+ const status_js_1 = require("./status.js");
6
+ /**
7
+ * Creates a Zod schema that transforms null values to undefined
8
+ * This is useful when dealing with APIs that return null but you want to use undefined in your codebase
9
+ *
10
+ * @template T - The type of Zod schema being transformed
11
+ * @param {T} schema - The original Zod schema to transform
12
+ * @returns {MakeOptionalResult<T>} A new schema that:
13
+ * - Accepts the original type or null as input
14
+ * - Outputs the original type or undefined
15
+ * - Automatically transforms null to undefined during validation
16
+ *
17
+ * @example
18
+ * const userSchema = z.object({
19
+ * name: makeOptional(z.string()), // accepts: string | null, outputs: string | undefined
20
+ * });
21
+ *
22
+ * // These are all valid:
23
+ * userSchema.parse({ name: "John" }) // { name: "John" }
24
+ * userSchema.parse({ name: null }) // { name: undefined }
25
+ */
26
+ const makeOptional = (schema) => schema.nullable().transform((val) => val === null ? undefined : val);
27
+ /**
28
+ * Schema for identifying users in the payout process
29
+ * Used to track who created or actioned a payout
30
+ */
31
+ const identifierSchema = zod_1.z.object({
32
+ name: zod_1.z.string(),
33
+ identity: zod_1.z.string(),
34
+ });
35
+ /**
36
+ * Schema for payout status
37
+ * Defines all possible states a payout can be in
38
+ */
39
+ const payoutStatusSchema = zod_1.z.enum([
40
+ status_js_1.PAYOUT_STATUS.CREATED,
41
+ status_js_1.PAYOUT_STATUS.PAID,
42
+ status_js_1.PAYOUT_STATUS.FAILED,
43
+ status_js_1.PAYOUT_STATUS.REJECTED,
44
+ status_js_1.PAYOUT_STATUS.PENDING,
45
+ ]);
46
+ /**
47
+ * Schema for payout approval status
48
+ * Defines all possible approval states
49
+ */
50
+ const approvalPayoutStatusSchema = zod_1.z.enum([
51
+ status_js_1.PAYOUT_APPROVAL_STATUS.APPROVED,
52
+ status_js_1.PAYOUT_APPROVAL_STATUS.PENDING,
53
+ status_js_1.PAYOUT_APPROVAL_STATUS.REJECTED,
54
+ ]);
55
+ /**
56
+ * Base schema for payout operations
57
+ * Contains common fields used across all payout operations
58
+ */
59
+ const basePayoutSchema = zod_1.z.object({
60
+ channel: zod_1.z.string(),
61
+ msisdn: zod_1.z.string(),
62
+ amount: zod_1.z.coerce.number(),
63
+ description: zod_1.z.string(),
64
+ notes: makeOptional(zod_1.z.string()).optional(),
65
+ });
66
+ /**
67
+ * Schema for creating a new payout
68
+ * Extends base payout schema with payee information
69
+ */
70
+ const payoutInputSchema = basePayoutSchema.extend({
71
+ payeeName: zod_1.z.string(),
72
+ });
73
+ /**
74
+ * Schema for complete payout record
75
+ * Extends base payout schema with additional fields for:
76
+ * - Identification (id, profileId)
77
+ * - Status tracking
78
+ * - Timestamps
79
+ * - Approval information
80
+ * - User tracking (created by, actioned by)
81
+ */
82
+ const payoutSchema = basePayoutSchema.extend({
83
+ id: zod_1.z.string(),
84
+ profileId: zod_1.z.string(),
85
+ payeeName: zod_1.z.string(),
86
+ status: payoutStatusSchema,
87
+ statusMessage: zod_1.z.string(),
88
+ partnerReference: makeOptional(zod_1.z.string()).optional(),
89
+ createdAt: zod_1.z.coerce.date(),
90
+ updatedAt: zod_1.z.coerce.date(),
91
+ actionedAt: makeOptional(zod_1.z.coerce.date()).optional(),
92
+ approvalStatus: approvalPayoutStatusSchema,
93
+ createdBy: makeOptional(identifierSchema).optional(),
94
+ actionedBy: makeOptional(identifierSchema).optional(),
95
+ });
96
+ /**
97
+ * Export object containing all payout-related schemas
98
+ * Used for validation and type checking throughout the application
99
+ */
100
+ exports.PayoutSchemas = {
101
+ payoutData: payoutSchema, // Complete payout record schema
102
+ payoutInput: payoutInputSchema, // New payout input schema
103
+ payoutTransactionStatus: payoutStatusSchema, // Payout status enum schema
104
+ payoutApprovalStatus: approvalPayoutStatusSchema, // Approval status enum schema
105
+ payoutApprover: identifierSchema, // Identifier schema for approvers
106
+ };
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Represents the current status of a payout transaction.
3
+ * @enum {string}
4
+ * @readonly
5
+ */
6
+ export declare enum PAYOUT_STATUS {
7
+ /** Payout is awaiting processing */
8
+ PENDING = "PENDING",
9
+ /** Payout has been successfully processed */
10
+ PAID = "PAID",
11
+ /** Payout processing has failed */
12
+ FAILED = "FAILED",
13
+ /** Payout has been rejected */
14
+ REJECTED = "REJECTED",
15
+ /** Payout has been initially created but not yet processed */
16
+ CREATED = "CREATED"
17
+ }
18
+ /**
19
+ * Represents the approval status for payouts that require authorization.
20
+ * @enum {string}
21
+ * @readonly
22
+ */
23
+ export declare enum PAYOUT_APPROVAL_STATUS {
24
+ /** Payout is awaiting approval decision */
25
+ PENDING = "Pending",
26
+ /** Payout has been approved */
27
+ APPROVED = "Approved",
28
+ /** Payout has been rejected during approval process */
29
+ REJECTED = "Rejected"
30
+ }
31
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,aAAa;IACvB,oCAAoC;IACpC,OAAO,YAAY;IACnB,6CAA6C;IAC7C,IAAI,SAAS;IACb,mCAAmC;IACnC,MAAM,WAAW;IACjB,+BAA+B;IAC/B,QAAQ,aAAa;IACrB,8DAA8D;IAC9D,OAAO,YAAY;CACpB;AAED;;;;GAIG;AACH,oBAAY,sBAAsB;IAChC,2CAA2C;IAC3C,OAAO,YAAY;IACnB,+BAA+B;IAC/B,QAAQ,aAAa;IACrB,uDAAuD;IACvD,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PAYOUT_APPROVAL_STATUS = exports.PAYOUT_STATUS = void 0;
4
+ /**
5
+ * Represents the current status of a payout transaction.
6
+ * @enum {string}
7
+ * @readonly
8
+ */
9
+ var PAYOUT_STATUS;
10
+ (function (PAYOUT_STATUS) {
11
+ /** Payout is awaiting processing */
12
+ PAYOUT_STATUS["PENDING"] = "PENDING";
13
+ /** Payout has been successfully processed */
14
+ PAYOUT_STATUS["PAID"] = "PAID";
15
+ /** Payout processing has failed */
16
+ PAYOUT_STATUS["FAILED"] = "FAILED";
17
+ /** Payout has been rejected */
18
+ PAYOUT_STATUS["REJECTED"] = "REJECTED";
19
+ /** Payout has been initially created but not yet processed */
20
+ PAYOUT_STATUS["CREATED"] = "CREATED";
21
+ })(PAYOUT_STATUS || (exports.PAYOUT_STATUS = PAYOUT_STATUS = {}));
22
+ /**
23
+ * Represents the approval status for payouts that require authorization.
24
+ * @enum {string}
25
+ * @readonly
26
+ */
27
+ var PAYOUT_APPROVAL_STATUS;
28
+ (function (PAYOUT_APPROVAL_STATUS) {
29
+ /** Payout is awaiting approval decision */
30
+ PAYOUT_APPROVAL_STATUS["PENDING"] = "Pending";
31
+ /** Payout has been approved */
32
+ PAYOUT_APPROVAL_STATUS["APPROVED"] = "Approved";
33
+ /** Payout has been rejected during approval process */
34
+ PAYOUT_APPROVAL_STATUS["REJECTED"] = "Rejected";
35
+ })(PAYOUT_APPROVAL_STATUS || (exports.PAYOUT_APPROVAL_STATUS = PAYOUT_APPROVAL_STATUS = {}));
@@ -0,0 +1,42 @@
1
+ /**
2
+ * All Afloat Permissions
3
+ */
4
+ export declare const Permissions: {
5
+ readonly Profile: {
6
+ readonly ViewCurrent: "profile.getCurrent";
7
+ readonly Update: "profile.update";
8
+ };
9
+ readonly Contact: {
10
+ readonly View: "contact.findById";
11
+ readonly List: "contact.findAll";
12
+ readonly Create: "contact.create";
13
+ readonly Update: "contact.update";
14
+ readonly Delete: "contact.delete";
15
+ };
16
+ readonly Payment: {
17
+ readonly View: "payment.findById";
18
+ readonly List: "payment.findAll";
19
+ readonly Create: "payment.create";
20
+ };
21
+ readonly Payout: {
22
+ readonly View: "payout.findById";
23
+ readonly List: "payout.findAll";
24
+ readonly Create: "payout.create";
25
+ readonly Approve: "payout.approve";
26
+ };
27
+ readonly Transfer: {
28
+ readonly View: "transfer.findById";
29
+ readonly List: "transfer.findAll";
30
+ readonly Create: "transfer.create";
31
+ readonly Approve: "transfer.approve";
32
+ };
33
+ readonly Wallet: {
34
+ readonly ViewBalance: "wallet.getBalance";
35
+ readonly ViewStatement: "wallet.getStatement";
36
+ };
37
+ };
38
+ /**
39
+ * Permission Type
40
+ */
41
+ export type Permission = typeof Permissions.Profile[keyof typeof Permissions.Profile] | typeof Permissions.Contact[keyof typeof Permissions.Contact] | typeof Permissions.Payment[keyof typeof Permissions.Payment] | typeof Permissions.Payout[keyof typeof Permissions.Payout] | typeof Permissions.Transfer[keyof typeof Permissions.Transfer] | typeof Permissions.Wallet[keyof typeof Permissions.Wallet];
42
+ //# sourceMappingURL=permission.d.ts.map