@temboplus/afloat 0.1.61 → 0.1.63
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.
- package/README.md +246 -42
- package/{esm/src/features/admin/contract.d.ts → dist/features/admin/admin.contract.d.ts} +41 -77
- package/{script/npm/src/src/features/admin/schemas.d.ts → dist/features/admin/admin.dtos.d.ts} +8 -9
- package/dist/features/admin/admin.repository.d.ts +179 -0
- package/dist/features/admin/index.d.ts +2 -0
- package/{esm/src/features/auth/access/contract.d.ts → dist/features/auth/access/access.api-contract.d.ts} +0 -1
- package/dist/features/auth/access/access.repository.d.ts +55 -0
- package/{esm/src/features/auth/contract.d.ts → dist/features/auth/auth.contract.d.ts} +12 -8
- package/dist/features/auth/auth.manager.d.ts +249 -0
- package/dist/features/auth/auth.repository.d.ts +66 -0
- package/dist/features/auth/auth.store.d.ts +139 -0
- package/{script/npm/src/src/features/auth/identity/contract.d.ts → dist/features/auth/identity/identity.api-contract.d.ts} +0 -1
- package/dist/features/auth/identity/identity.repository.d.ts +58 -0
- package/dist/features/auth/index.d.ts +5 -0
- package/{script/npm/src/src/features/auth/profile/contract.d.ts → dist/features/auth/profile/profile.api-contract.d.ts} +8 -6
- package/dist/features/auth/profile/profile.dtos.d.ts +80 -0
- package/dist/features/auth/profile/profile.repository.d.ts +56 -0
- package/{script/npm/src/src/features/auth/storage/client_store.d.ts → dist/features/auth/storage/client-store.d.ts} +2 -3
- package/{esm/src/features/auth/storage/client_token_handler.d.ts → dist/features/auth/storage/client-token-handler.d.ts} +1 -2
- package/{script/npm/src/src → dist}/features/auth/storage/types.d.ts +1 -2
- package/dist/features/contact/contact-input-handler.d.ts +16 -0
- package/{esm/src/features/contact/contract.d.ts → dist/features/contact/contact.api-contract.d.ts} +101 -45
- package/dist/features/contact/contact.dtos.d.ts +90 -0
- package/dist/features/contact/contact.repository.d.ts +116 -0
- package/dist/features/contact/index.d.ts +2 -0
- package/dist/features/payout/index.d.ts +3 -0
- package/dist/features/payout/payout-channel-handler.d.ts +108 -0
- package/{esm/src/features/payout/contract.d.ts → dist/features/payout/payout.api-contract.d.ts} +351 -187
- package/dist/features/payout/payout.dtos.d.ts +365 -0
- package/dist/features/payout/payout.repository.d.ts +193 -0
- package/dist/features/wallet/index.d.ts +4 -0
- package/dist/features/wallet/wallet-manager.session.d.ts +143 -0
- package/{script/npm/src/src/features/wallet/contract.d.ts → dist/features/wallet/wallet.contract.d.ts} +9 -7
- package/dist/features/wallet/wallet.dtos.d.ts +204 -0
- package/dist/features/wallet/wallet.repository.d.ts +173 -0
- package/dist/features/wallet/wallet.utils.d.ts +17 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/{esm/src/shared/base_repository.d.ts → dist/lib/api/base-repository.d.ts} +137 -42
- package/{script/npm/src/src/shared/common_responses.d.ts → dist/lib/api/common-responses.d.ts} +0 -1
- package/dist/lib/api/index.d.ts +2 -0
- package/{esm/src/errors/api_error.d.ts → dist/lib/error/error.api.d.ts} +0 -1
- package/{script/npm/src/src/errors/permission_error.d.ts → dist/lib/error/error.permission.d.ts} +1 -2
- package/dist/lib/error/error.utils.d.ts +22 -0
- package/dist/lib/error/index.d.ts +3 -0
- package/dist/models/contact-info.model.d.ts +817 -0
- package/{script/npm/src/src/models/contact/derivatives/contact.d.ts → dist/models/contact.model.d.ts} +23 -16
- package/dist/models/index.d.ts +11 -0
- package/{esm/src/models/user/managed-user.d.ts → dist/models/managed-user.model.d.ts} +3 -3
- package/dist/models/narration.model.d.ts +184 -0
- package/{script/npm/src/src/models/payout/derivatives/payout.d.ts → dist/models/payout.model.d.ts} +14 -16
- package/{esm/src → dist}/models/permission.d.ts +1 -2
- package/{script/npm/src/src/models/user/profile.d.ts → dist/models/profile.model.d.ts} +37 -43
- package/{script/npm/src/src/models/role.d.ts → dist/models/role.model.d.ts} +2 -10
- package/dist/models/statement-entry.model.d.ts +248 -0
- package/dist/models/user.model.d.ts +65 -0
- package/{script/npm/src/src/models/wallet/wallet.d.ts → dist/models/wallet.model.d.ts} +3 -46
- package/package.json +47 -24
- package/LICENSE +0 -7
- package/esm/mod.d.ts +0 -8
- package/esm/mod.d.ts.map +0 -1
- package/esm/mod.js +0 -7
- package/esm/package.json +0 -3
- package/esm/src/errors/api_error.d.ts.map +0 -1
- package/esm/src/errors/api_error.js +0 -90
- package/esm/src/errors/index.d.ts +0 -3
- package/esm/src/errors/index.d.ts.map +0 -1
- package/esm/src/errors/index.js +0 -2
- package/esm/src/errors/permission_error.d.ts +0 -48
- package/esm/src/errors/permission_error.d.ts.map +0 -1
- package/esm/src/errors/permission_error.js +0 -70
- package/esm/src/features/admin/contract.d.ts.map +0 -1
- package/esm/src/features/admin/contract.js +0 -210
- package/esm/src/features/admin/index.d.ts +0 -4
- package/esm/src/features/admin/index.d.ts.map +0 -1
- package/esm/src/features/admin/index.js +0 -3
- package/esm/src/features/admin/repository.d.ts +0 -114
- package/esm/src/features/admin/repository.d.ts.map +0 -1
- package/esm/src/features/admin/repository.js +0 -248
- package/esm/src/features/admin/schemas.d.ts +0 -146
- package/esm/src/features/admin/schemas.d.ts.map +0 -1
- package/esm/src/features/admin/schemas.js +0 -206
- package/esm/src/features/auth/access/contract.d.ts.map +0 -1
- package/esm/src/features/auth/access/contract.js +0 -14
- package/esm/src/features/auth/access/repository.d.ts +0 -11
- package/esm/src/features/auth/access/repository.d.ts.map +0 -1
- package/esm/src/features/auth/access/repository.js +0 -25
- package/esm/src/features/auth/contract.d.ts.map +0 -1
- package/esm/src/features/auth/contract.js +0 -43
- package/esm/src/features/auth/identity/contract.d.ts +0 -23
- package/esm/src/features/auth/identity/contract.d.ts.map +0 -1
- package/esm/src/features/auth/identity/contract.js +0 -17
- package/esm/src/features/auth/identity/repository.d.ts +0 -22
- package/esm/src/features/auth/identity/repository.d.ts.map +0 -1
- package/esm/src/features/auth/identity/repository.js +0 -30
- package/esm/src/features/auth/index.d.ts +0 -6
- package/esm/src/features/auth/index.d.ts.map +0 -1
- package/esm/src/features/auth/index.js +0 -5
- package/esm/src/features/auth/manager.d.ts +0 -105
- package/esm/src/features/auth/manager.d.ts.map +0 -1
- package/esm/src/features/auth/manager.js +0 -181
- package/esm/src/features/auth/profile/contract.d.ts +0 -37
- package/esm/src/features/auth/profile/contract.d.ts.map +0 -1
- package/esm/src/features/auth/profile/contract.js +0 -14
- package/esm/src/features/auth/profile/repository.d.ts +0 -11
- package/esm/src/features/auth/profile/repository.d.ts.map +0 -1
- package/esm/src/features/auth/profile/repository.js +0 -25
- package/esm/src/features/auth/repository.d.ts +0 -30
- package/esm/src/features/auth/repository.d.ts.map +0 -1
- package/esm/src/features/auth/repository.js +0 -69
- package/esm/src/features/auth/storage/client_store.d.ts +0 -30
- package/esm/src/features/auth/storage/client_store.d.ts.map +0 -1
- package/esm/src/features/auth/storage/client_store.js +0 -46
- package/esm/src/features/auth/storage/client_token_handler.d.ts.map +0 -1
- package/esm/src/features/auth/storage/client_token_handler.js +0 -36
- package/esm/src/features/auth/storage/server_store.d.ts +0 -24
- package/esm/src/features/auth/storage/server_store.d.ts.map +0 -1
- package/esm/src/features/auth/storage/server_store.js +0 -34
- package/esm/src/features/auth/storage/server_token_handler.d.ts +0 -36
- package/esm/src/features/auth/storage/server_token_handler.d.ts.map +0 -1
- package/esm/src/features/auth/storage/server_token_handler.js +0 -115
- package/esm/src/features/auth/storage/types.d.ts +0 -42
- package/esm/src/features/auth/storage/types.d.ts.map +0 -1
- package/esm/src/features/auth/storage/types.js +0 -1
- package/esm/src/features/contact/contract.d.ts.map +0 -1
- package/esm/src/features/contact/contract.js +0 -49
- package/esm/src/features/contact/index.d.ts +0 -2
- package/esm/src/features/contact/index.d.ts.map +0 -1
- package/esm/src/features/contact/index.js +0 -1
- package/esm/src/features/contact/repository.d.ts +0 -58
- package/esm/src/features/contact/repository.d.ts.map +0 -1
- package/esm/src/features/contact/repository.js +0 -108
- package/esm/src/features/payout/contract.d.ts.map +0 -1
- package/esm/src/features/payout/contract.js +0 -75
- package/esm/src/features/payout/index.d.ts +0 -2
- package/esm/src/features/payout/index.d.ts.map +0 -1
- package/esm/src/features/payout/index.js +0 -1
- package/esm/src/features/payout/repository.d.ts +0 -67
- package/esm/src/features/payout/repository.d.ts.map +0 -1
- package/esm/src/features/payout/repository.js +0 -163
- package/esm/src/features/wallet/contract.d.ts +0 -137
- package/esm/src/features/wallet/contract.d.ts.map +0 -1
- package/esm/src/features/wallet/contract.js +0 -38
- package/esm/src/features/wallet/index.d.ts +0 -2
- package/esm/src/features/wallet/index.d.ts.map +0 -1
- package/esm/src/features/wallet/index.js +0 -1
- package/esm/src/features/wallet/repository.d.ts +0 -57
- package/esm/src/features/wallet/repository.d.ts.map +0 -1
- package/esm/src/features/wallet/repository.js +0 -93
- package/esm/src/models/contact/derivatives/contact.d.ts +0 -172
- package/esm/src/models/contact/derivatives/contact.d.ts.map +0 -1
- package/esm/src/models/contact/derivatives/contact.js +0 -266
- package/esm/src/models/contact/derivatives/contact_info.d.ts +0 -188
- package/esm/src/models/contact/derivatives/contact_info.d.ts.map +0 -1
- package/esm/src/models/contact/derivatives/contact_info.js +0 -255
- package/esm/src/models/contact/index.d.ts +0 -5
- package/esm/src/models/contact/index.d.ts.map +0 -1
- package/esm/src/models/contact/index.js +0 -4
- package/esm/src/models/contact/schemas.d.ts +0 -66
- package/esm/src/models/contact/schemas.d.ts.map +0 -1
- package/esm/src/models/contact/schemas.js +0 -64
- package/esm/src/models/contact/validation.d.ts +0 -37
- package/esm/src/models/contact/validation.d.ts.map +0 -1
- package/esm/src/models/contact/validation.js +0 -146
- package/esm/src/models/index.d.ts +0 -7
- package/esm/src/models/index.d.ts.map +0 -1
- package/esm/src/models/index.js +0 -6
- package/esm/src/models/payout/api.d.ts +0 -29
- package/esm/src/models/payout/api.d.ts.map +0 -1
- package/esm/src/models/payout/api.js +0 -1
- package/esm/src/models/payout/channel.d.ts +0 -58
- package/esm/src/models/payout/channel.d.ts.map +0 -1
- package/esm/src/models/payout/channel.js +0 -53
- package/esm/src/models/payout/derivatives/payout.d.ts +0 -158
- package/esm/src/models/payout/derivatives/payout.d.ts.map +0 -1
- package/esm/src/models/payout/derivatives/payout.js +0 -265
- package/esm/src/models/payout/index.d.ts +0 -7
- package/esm/src/models/payout/index.d.ts.map +0 -1
- package/esm/src/models/payout/index.js +0 -6
- package/esm/src/models/payout/narration.d.ts +0 -164
- package/esm/src/models/payout/narration.d.ts.map +0 -1
- package/esm/src/models/payout/narration.js +0 -308
- package/esm/src/models/payout/schemas.d.ts +0 -156
- package/esm/src/models/payout/schemas.d.ts.map +0 -1
- package/esm/src/models/payout/schemas.js +0 -105
- package/esm/src/models/payout/status.d.ts +0 -33
- package/esm/src/models/payout/status.d.ts.map +0 -1
- package/esm/src/models/payout/status.js +0 -34
- package/esm/src/models/permission.d.ts.map +0 -1
- package/esm/src/models/permission.js +0 -50
- package/esm/src/models/role.d.ts +0 -21
- package/esm/src/models/role.d.ts.map +0 -1
- package/esm/src/models/role.js +0 -73
- package/esm/src/models/user/authenticated-user.d.ts +0 -77
- package/esm/src/models/user/authenticated-user.d.ts.map +0 -1
- package/esm/src/models/user/authenticated-user.js +0 -226
- package/esm/src/models/user/index.d.ts +0 -4
- package/esm/src/models/user/index.d.ts.map +0 -1
- package/esm/src/models/user/index.js +0 -3
- package/esm/src/models/user/managed-user.d.ts.map +0 -1
- package/esm/src/models/user/managed-user.js +0 -255
- package/esm/src/models/user/profile.d.ts +0 -161
- package/esm/src/models/user/profile.d.ts.map +0 -1
- package/esm/src/models/user/profile.js +0 -334
- package/esm/src/models/wallet/index.d.ts +0 -4
- package/esm/src/models/wallet/index.d.ts.map +0 -1
- package/esm/src/models/wallet/index.js +0 -3
- package/esm/src/models/wallet/schemas.d.ts +0 -95
- package/esm/src/models/wallet/schemas.d.ts.map +0 -1
- package/esm/src/models/wallet/schemas.js +0 -35
- package/esm/src/models/wallet/statement_entry.d.ts +0 -160
- package/esm/src/models/wallet/statement_entry.d.ts.map +0 -1
- package/esm/src/models/wallet/statement_entry.js +0 -255
- package/esm/src/models/wallet/wallet.d.ts +0 -147
- package/esm/src/models/wallet/wallet.d.ts.map +0 -1
- package/esm/src/models/wallet/wallet.js +0 -279
- package/esm/src/shared/base_repository.d.ts.map +0 -1
- package/esm/src/shared/base_repository.js +0 -153
- package/esm/src/shared/common_responses.d.ts +0 -13
- package/esm/src/shared/common_responses.d.ts.map +0 -1
- package/esm/src/shared/common_responses.js +0 -10
- package/esm/src/shared/index.d.ts +0 -3
- package/esm/src/shared/index.d.ts.map +0 -1
- package/esm/src/shared/index.js +0 -2
- package/esm/src/shared/token_required_repository.d.ts +0 -78
- package/esm/src/shared/token_required_repository.d.ts.map +0 -1
- package/esm/src/shared/token_required_repository.js +0 -128
- package/script/mod.d.ts +0 -8
- package/script/mod.d.ts.map +0 -1
- package/script/mod.js +0 -23
- package/script/npm/src/mod.d.ts +0 -8
- package/script/npm/src/mod.d.ts.map +0 -1
- package/script/npm/src/mod.js +0 -23
- package/script/npm/src/src/errors/api_error.d.ts +0 -63
- package/script/npm/src/src/errors/api_error.d.ts.map +0 -1
- package/script/npm/src/src/errors/api_error.js +0 -94
- package/script/npm/src/src/errors/index.d.ts +0 -3
- package/script/npm/src/src/errors/index.d.ts.map +0 -1
- package/script/npm/src/src/errors/index.js +0 -18
- package/script/npm/src/src/errors/permission_error.d.ts.map +0 -1
- package/script/npm/src/src/errors/permission_error.js +0 -74
- package/script/npm/src/src/features/admin/contract.d.ts +0 -842
- package/script/npm/src/src/features/admin/contract.d.ts.map +0 -1
- package/script/npm/src/src/features/admin/contract.js +0 -213
- package/script/npm/src/src/features/admin/index.d.ts +0 -4
- package/script/npm/src/src/features/admin/index.d.ts.map +0 -1
- package/script/npm/src/src/features/admin/index.js +0 -19
- package/script/npm/src/src/features/admin/repository.d.ts +0 -114
- package/script/npm/src/src/features/admin/repository.d.ts.map +0 -1
- package/script/npm/src/src/features/admin/repository.js +0 -252
- package/script/npm/src/src/features/admin/schemas.d.ts.map +0 -1
- package/script/npm/src/src/features/admin/schemas.js +0 -209
- package/script/npm/src/src/features/auth/access/contract.d.ts +0 -14
- package/script/npm/src/src/features/auth/access/contract.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/access/contract.js +0 -17
- package/script/npm/src/src/features/auth/access/repository.d.ts +0 -11
- package/script/npm/src/src/features/auth/access/repository.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/access/repository.js +0 -29
- package/script/npm/src/src/features/auth/contract.d.ts +0 -112
- package/script/npm/src/src/features/auth/contract.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/contract.js +0 -46
- package/script/npm/src/src/features/auth/identity/contract.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/identity/contract.js +0 -20
- package/script/npm/src/src/features/auth/identity/repository.d.ts +0 -22
- package/script/npm/src/src/features/auth/identity/repository.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/identity/repository.js +0 -34
- package/script/npm/src/src/features/auth/index.d.ts +0 -6
- package/script/npm/src/src/features/auth/index.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/index.js +0 -21
- package/script/npm/src/src/features/auth/manager.d.ts +0 -105
- package/script/npm/src/src/features/auth/manager.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/manager.js +0 -185
- package/script/npm/src/src/features/auth/profile/contract.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/profile/contract.js +0 -17
- package/script/npm/src/src/features/auth/profile/repository.d.ts +0 -11
- package/script/npm/src/src/features/auth/profile/repository.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/profile/repository.js +0 -29
- package/script/npm/src/src/features/auth/repository.d.ts +0 -30
- package/script/npm/src/src/features/auth/repository.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/repository.js +0 -73
- package/script/npm/src/src/features/auth/storage/client_store.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/storage/client_store.js +0 -51
- package/script/npm/src/src/features/auth/storage/client_token_handler.d.ts +0 -32
- package/script/npm/src/src/features/auth/storage/client_token_handler.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/storage/client_token_handler.js +0 -40
- package/script/npm/src/src/features/auth/storage/server_store.d.ts +0 -24
- package/script/npm/src/src/features/auth/storage/server_store.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/storage/server_store.js +0 -38
- package/script/npm/src/src/features/auth/storage/server_token_handler.d.ts +0 -36
- package/script/npm/src/src/features/auth/storage/server_token_handler.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/storage/server_token_handler.js +0 -119
- package/script/npm/src/src/features/auth/storage/types.d.ts.map +0 -1
- package/script/npm/src/src/features/auth/storage/types.js +0 -2
- package/script/npm/src/src/features/contact/contract.d.ts +0 -170
- package/script/npm/src/src/features/contact/contract.d.ts.map +0 -1
- package/script/npm/src/src/features/contact/contract.js +0 -52
- package/script/npm/src/src/features/contact/index.d.ts +0 -2
- package/script/npm/src/src/features/contact/index.d.ts.map +0 -1
- package/script/npm/src/src/features/contact/index.js +0 -17
- package/script/npm/src/src/features/contact/repository.d.ts +0 -58
- package/script/npm/src/src/features/contact/repository.d.ts.map +0 -1
- package/script/npm/src/src/features/contact/repository.js +0 -112
- package/script/npm/src/src/features/payout/contract.d.ts +0 -623
- package/script/npm/src/src/features/payout/contract.d.ts.map +0 -1
- package/script/npm/src/src/features/payout/contract.js +0 -78
- package/script/npm/src/src/features/payout/index.d.ts +0 -2
- package/script/npm/src/src/features/payout/index.d.ts.map +0 -1
- package/script/npm/src/src/features/payout/index.js +0 -17
- package/script/npm/src/src/features/payout/repository.d.ts +0 -67
- package/script/npm/src/src/features/payout/repository.d.ts.map +0 -1
- package/script/npm/src/src/features/payout/repository.js +0 -167
- package/script/npm/src/src/features/wallet/contract.d.ts.map +0 -1
- package/script/npm/src/src/features/wallet/contract.js +0 -41
- package/script/npm/src/src/features/wallet/index.d.ts +0 -2
- package/script/npm/src/src/features/wallet/index.d.ts.map +0 -1
- package/script/npm/src/src/features/wallet/index.js +0 -17
- package/script/npm/src/src/features/wallet/repository.d.ts +0 -57
- package/script/npm/src/src/features/wallet/repository.d.ts.map +0 -1
- package/script/npm/src/src/features/wallet/repository.js +0 -97
- package/script/npm/src/src/models/contact/derivatives/contact.d.ts.map +0 -1
- package/script/npm/src/src/models/contact/derivatives/contact.js +0 -270
- package/script/npm/src/src/models/contact/derivatives/contact_info.d.ts +0 -188
- package/script/npm/src/src/models/contact/derivatives/contact_info.d.ts.map +0 -1
- package/script/npm/src/src/models/contact/derivatives/contact_info.js +0 -260
- package/script/npm/src/src/models/contact/index.d.ts +0 -5
- package/script/npm/src/src/models/contact/index.d.ts.map +0 -1
- package/script/npm/src/src/models/contact/index.js +0 -20
- package/script/npm/src/src/models/contact/schemas.d.ts +0 -66
- package/script/npm/src/src/models/contact/schemas.d.ts.map +0 -1
- package/script/npm/src/src/models/contact/schemas.js +0 -67
- package/script/npm/src/src/models/contact/validation.d.ts +0 -37
- package/script/npm/src/src/models/contact/validation.d.ts.map +0 -1
- package/script/npm/src/src/models/contact/validation.js +0 -153
- package/script/npm/src/src/models/index.d.ts +0 -7
- package/script/npm/src/src/models/index.d.ts.map +0 -1
- package/script/npm/src/src/models/index.js +0 -22
- package/script/npm/src/src/models/payout/api.d.ts +0 -29
- package/script/npm/src/src/models/payout/api.d.ts.map +0 -1
- package/script/npm/src/src/models/payout/api.js +0 -2
- package/script/npm/src/src/models/payout/channel.d.ts +0 -58
- package/script/npm/src/src/models/payout/channel.d.ts.map +0 -1
- package/script/npm/src/src/models/payout/channel.js +0 -56
- package/script/npm/src/src/models/payout/derivatives/payout.d.ts.map +0 -1
- package/script/npm/src/src/models/payout/derivatives/payout.js +0 -269
- package/script/npm/src/src/models/payout/index.d.ts +0 -7
- package/script/npm/src/src/models/payout/index.d.ts.map +0 -1
- package/script/npm/src/src/models/payout/index.js +0 -22
- package/script/npm/src/src/models/payout/narration.d.ts +0 -164
- package/script/npm/src/src/models/payout/narration.d.ts.map +0 -1
- package/script/npm/src/src/models/payout/narration.js +0 -312
- package/script/npm/src/src/models/payout/schemas.d.ts +0 -156
- package/script/npm/src/src/models/payout/schemas.d.ts.map +0 -1
- package/script/npm/src/src/models/payout/schemas.js +0 -108
- package/script/npm/src/src/models/payout/status.d.ts +0 -33
- package/script/npm/src/src/models/payout/status.d.ts.map +0 -1
- package/script/npm/src/src/models/payout/status.js +0 -37
- package/script/npm/src/src/models/permission.d.ts +0 -55
- package/script/npm/src/src/models/permission.d.ts.map +0 -1
- package/script/npm/src/src/models/permission.js +0 -53
- package/script/npm/src/src/models/role.d.ts.map +0 -1
- package/script/npm/src/src/models/role.js +0 -77
- package/script/npm/src/src/models/user/authenticated-user.d.ts +0 -77
- package/script/npm/src/src/models/user/authenticated-user.d.ts.map +0 -1
- package/script/npm/src/src/models/user/authenticated-user.js +0 -230
- package/script/npm/src/src/models/user/index.d.ts +0 -4
- package/script/npm/src/src/models/user/index.d.ts.map +0 -1
- package/script/npm/src/src/models/user/index.js +0 -19
- package/script/npm/src/src/models/user/managed-user.d.ts +0 -108
- package/script/npm/src/src/models/user/managed-user.d.ts.map +0 -1
- package/script/npm/src/src/models/user/managed-user.js +0 -260
- package/script/npm/src/src/models/user/profile.d.ts.map +0 -1
- package/script/npm/src/src/models/user/profile.js +0 -338
- package/script/npm/src/src/models/wallet/index.d.ts +0 -4
- package/script/npm/src/src/models/wallet/index.d.ts.map +0 -1
- package/script/npm/src/src/models/wallet/index.js +0 -19
- package/script/npm/src/src/models/wallet/schemas.d.ts +0 -95
- package/script/npm/src/src/models/wallet/schemas.d.ts.map +0 -1
- package/script/npm/src/src/models/wallet/schemas.js +0 -38
- package/script/npm/src/src/models/wallet/statement_entry.d.ts +0 -160
- package/script/npm/src/src/models/wallet/statement_entry.d.ts.map +0 -1
- package/script/npm/src/src/models/wallet/statement_entry.js +0 -259
- package/script/npm/src/src/models/wallet/wallet.d.ts.map +0 -1
- package/script/npm/src/src/models/wallet/wallet.js +0 -283
- package/script/npm/src/src/shared/base_repository.d.ts +0 -80
- package/script/npm/src/src/shared/base_repository.d.ts.map +0 -1
- package/script/npm/src/src/shared/base_repository.js +0 -157
- package/script/npm/src/src/shared/common_responses.d.ts.map +0 -1
- package/script/npm/src/src/shared/common_responses.js +0 -13
- package/script/npm/src/src/shared/index.d.ts +0 -3
- package/script/npm/src/src/shared/index.d.ts.map +0 -1
- package/script/npm/src/src/shared/index.js +0 -18
- package/script/npm/src/src/shared/token_required_repository.d.ts +0 -78
- package/script/npm/src/src/shared/token_required_repository.d.ts.map +0 -1
- package/script/npm/src/src/shared/token_required_repository.js +0 -132
- package/script/package.json +0 -3
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { BaseRepository } from "../../shared/index.js";
|
|
2
|
-
import { contract } from "./contract.js";
|
|
3
|
-
import { PAYOUT_APPROVAL_STATUS, } from "../../models/payout/index.js";
|
|
4
|
-
import { Permissions } from "../../models/permission.js";
|
|
5
|
-
import { APIError, PermissionError } from "../../errors/index.js";
|
|
6
|
-
import { Payout } from "../../models/payout/derivatives/payout.js";
|
|
7
|
-
/**
|
|
8
|
-
* Repository class for managing payout operations including creation, approval,
|
|
9
|
-
* rejection, and retrieval of payouts.
|
|
10
|
-
* @extends {BaseRepository<PayoutAPI>}
|
|
11
|
-
*/
|
|
12
|
-
export class PayoutRepository extends BaseRepository {
|
|
13
|
-
/**
|
|
14
|
-
* Creates an instance of PayoutRepository initialized with the payout contract.
|
|
15
|
-
* @param {Object} [props] - Optional constructor properties
|
|
16
|
-
* @param {AfloatAuth} [props.auth] - Optional auth instance to use
|
|
17
|
-
*/
|
|
18
|
-
constructor(props) {
|
|
19
|
-
super("payout", contract, { auth: props?.auth });
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Retrieves a paginated list of payouts with optional filtering for pending status.
|
|
23
|
-
* @param {GetPayoutsAPIArgs} [args] - Optional arguments for filtering and pagination
|
|
24
|
-
* @param {number} [args.rangeStart=0] - Starting index for pagination
|
|
25
|
-
* @param {number} [args.rangeEnd=10] - Ending index for pagination
|
|
26
|
-
* @param {boolean} [args.pending] - Filter for pending payouts only
|
|
27
|
-
* @throws {PermissionError} If user lacks the Payout.List permission
|
|
28
|
-
* @throws {APIError} If range is invalid or if the fetch operation fails
|
|
29
|
-
* @returns {Promise<{results: Payout[]; total: number}>} Paginated payout results and total count
|
|
30
|
-
*/
|
|
31
|
-
async getAll(args) {
|
|
32
|
-
const auth = this.getAuthForPermissionCheck();
|
|
33
|
-
const requiredPerm = Permissions.Payout.List;
|
|
34
|
-
if (!auth.checkPermission(requiredPerm)) {
|
|
35
|
-
throw new PermissionError({
|
|
36
|
-
message: "You are not authorized to view payouts.",
|
|
37
|
-
requiredPermissions: [requiredPerm],
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
const rangeStart = args?.rangeStart ?? 0;
|
|
41
|
-
const rangeEnd = args?.rangeEnd ?? 10;
|
|
42
|
-
const pendingStatus = PAYOUT_APPROVAL_STATUS.PENDING;
|
|
43
|
-
const query = {
|
|
44
|
-
rangeStart,
|
|
45
|
-
rangeEnd,
|
|
46
|
-
eager: "[createdBy,actionedBy]",
|
|
47
|
-
orderByDesc: "createdAt",
|
|
48
|
-
};
|
|
49
|
-
if (args?.pending) {
|
|
50
|
-
Object.assign(query, { approvalStatus: pendingStatus });
|
|
51
|
-
}
|
|
52
|
-
if (rangeEnd <= rangeStart) {
|
|
53
|
-
throw new APIError({
|
|
54
|
-
message: "Invalid range: end-date must be greater than start-date",
|
|
55
|
-
statusCode: 400,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
const result = await this.client.getPayouts({ query: query });
|
|
59
|
-
if (result.status === 200) {
|
|
60
|
-
return {
|
|
61
|
-
results: Payout.createMany(result.body.results),
|
|
62
|
-
total: result.body.total,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
throw APIError.unknown("An error occured while fetching payouts");
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Creates a new payout with the provided input data.
|
|
69
|
-
* @param {PayoutInput} input - The payout creation data
|
|
70
|
-
* @throws {PermissionError} If user lacks the Payout.Create permission
|
|
71
|
-
* @throws {APIError} If the input is invalid or if the creation operation fails
|
|
72
|
-
* @returns {Promise<Payout>} The created payout
|
|
73
|
-
*/
|
|
74
|
-
async pay(input) {
|
|
75
|
-
const auth = this.getAuthForPermissionCheck();
|
|
76
|
-
const requiredPerm = Permissions.Payout.Create;
|
|
77
|
-
if (!auth.checkPermission(requiredPerm)) {
|
|
78
|
-
throw new PermissionError({
|
|
79
|
-
message: "You are not authorized to create payouts.",
|
|
80
|
-
requiredPermissions: [requiredPerm],
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
const result = await this.client.postPayout({ body: input });
|
|
84
|
-
if (result.status === 201)
|
|
85
|
-
return Payout.create(result.body);
|
|
86
|
-
if (result.status === 400) {
|
|
87
|
-
throw new APIError(result.body);
|
|
88
|
-
}
|
|
89
|
-
throw APIError.unknown();
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Approves a payout with optional notes.
|
|
93
|
-
* @param {string} id - The ID of the payout to approve
|
|
94
|
-
* @param {Object} [args] - Optional arguments
|
|
95
|
-
* @param {string} [args.notes] - Optional notes for the approval
|
|
96
|
-
* @throws {PermissionError} If user lacks the Payout.Approve permission
|
|
97
|
-
* @throws {APIError} If payout is not found, already approved, or if the operation fails
|
|
98
|
-
* @returns {Promise<Payout>} The approved payout
|
|
99
|
-
*/
|
|
100
|
-
async approve(id, args) {
|
|
101
|
-
const auth = this.getAuthForPermissionCheck();
|
|
102
|
-
const requiredPerm = Permissions.Payout.Approve;
|
|
103
|
-
if (!auth.checkPermission(requiredPerm)) {
|
|
104
|
-
throw new PermissionError({
|
|
105
|
-
message: "You are not authorized to approve or reject payouts.",
|
|
106
|
-
requiredPermissions: [requiredPerm],
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
const result = await this.client.approve({
|
|
110
|
-
params: { id },
|
|
111
|
-
body: { action: "Approve", notes: args?.notes },
|
|
112
|
-
});
|
|
113
|
-
if (result.status === 201) {
|
|
114
|
-
return Payout.create(result.body);
|
|
115
|
-
}
|
|
116
|
-
if (result.status === 404) {
|
|
117
|
-
throw new APIError({ message: "Payout not found", statusCode: 404 });
|
|
118
|
-
}
|
|
119
|
-
if (result.status === 409) {
|
|
120
|
-
throw new APIError({
|
|
121
|
-
message: "Payout already approved",
|
|
122
|
-
statusCode: 409,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
throw APIError.unknown();
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Rejects a payout with optional notes.
|
|
129
|
-
* @param {string} id - The ID of the payout to reject
|
|
130
|
-
* @param {Object} [args] - Optional arguments
|
|
131
|
-
* @param {string} [args.notes] - Optional notes for the rejection
|
|
132
|
-
* @throws {PermissionError} If user lacks the Payout.Approve permission
|
|
133
|
-
* @throws {APIError} If payout is not found, already rejected, or if the operation fails
|
|
134
|
-
* @returns {Promise<Payout>} The rejected payout
|
|
135
|
-
*/
|
|
136
|
-
async reject(id, args) {
|
|
137
|
-
const auth = this.getAuthForPermissionCheck();
|
|
138
|
-
const requiredPerm = Permissions.Payout.Approve;
|
|
139
|
-
if (!auth.checkPermission(requiredPerm)) {
|
|
140
|
-
throw new PermissionError({
|
|
141
|
-
message: "You are not authorized to approve or reject payouts.",
|
|
142
|
-
requiredPermissions: [requiredPerm],
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
const result = await this.client.approve({
|
|
146
|
-
params: { id },
|
|
147
|
-
body: { action: "Reject", notes: args?.notes },
|
|
148
|
-
});
|
|
149
|
-
if (result.status === 201) {
|
|
150
|
-
return Payout.create(result.body);
|
|
151
|
-
}
|
|
152
|
-
if (result.status === 404) {
|
|
153
|
-
throw new APIError({ message: "Payout not found", statusCode: 404 });
|
|
154
|
-
}
|
|
155
|
-
if (result.status === 409) {
|
|
156
|
-
throw new APIError({
|
|
157
|
-
message: "Payout already rejected",
|
|
158
|
-
statusCode: 409,
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
throw APIError.unknown();
|
|
162
|
-
}
|
|
163
|
-
}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const contract: {
|
|
3
|
-
getWallets: {
|
|
4
|
-
query: z.ZodObject<{
|
|
5
|
-
id: z.ZodOptional<z.ZodString>;
|
|
6
|
-
profileId: z.ZodOptional<z.ZodString>;
|
|
7
|
-
accountNo: z.ZodOptional<z.ZodString>;
|
|
8
|
-
accountName: z.ZodOptional<z.ZodString>;
|
|
9
|
-
channel: z.ZodOptional<z.ZodString>;
|
|
10
|
-
countryCode: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>>;
|
|
11
|
-
currencyCode: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>>;
|
|
12
|
-
}, "strip", z.ZodTypeAny, {
|
|
13
|
-
id?: string | undefined;
|
|
14
|
-
accountNo?: string | undefined;
|
|
15
|
-
channel?: string | undefined;
|
|
16
|
-
profileId?: string | undefined;
|
|
17
|
-
accountName?: string | undefined;
|
|
18
|
-
countryCode?: string | undefined;
|
|
19
|
-
currencyCode?: string | undefined;
|
|
20
|
-
}, {
|
|
21
|
-
id?: string | undefined;
|
|
22
|
-
accountNo?: string | undefined;
|
|
23
|
-
channel?: string | undefined;
|
|
24
|
-
profileId?: string | undefined;
|
|
25
|
-
accountName?: string | undefined;
|
|
26
|
-
countryCode?: string | undefined;
|
|
27
|
-
currencyCode?: string | undefined;
|
|
28
|
-
}>;
|
|
29
|
-
method: "GET";
|
|
30
|
-
path: "/";
|
|
31
|
-
responses: {
|
|
32
|
-
200: z.ZodArray<z.ZodObject<{
|
|
33
|
-
id: z.ZodString;
|
|
34
|
-
profileId: z.ZodString;
|
|
35
|
-
accountNo: z.ZodString;
|
|
36
|
-
accountName: z.ZodString;
|
|
37
|
-
channel: z.ZodString;
|
|
38
|
-
countryCode: z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>;
|
|
39
|
-
currencyCode: z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>;
|
|
40
|
-
createdAt: z.ZodString;
|
|
41
|
-
updatedAt: z.ZodString;
|
|
42
|
-
}, "strip", z.ZodTypeAny, {
|
|
43
|
-
id: string;
|
|
44
|
-
accountNo: string;
|
|
45
|
-
channel: string;
|
|
46
|
-
profileId: string;
|
|
47
|
-
createdAt: string;
|
|
48
|
-
updatedAt: string;
|
|
49
|
-
accountName: string;
|
|
50
|
-
countryCode: string;
|
|
51
|
-
currencyCode: string;
|
|
52
|
-
}, {
|
|
53
|
-
id: string;
|
|
54
|
-
accountNo: string;
|
|
55
|
-
channel: string;
|
|
56
|
-
profileId: string;
|
|
57
|
-
createdAt: string;
|
|
58
|
-
updatedAt: string;
|
|
59
|
-
accountName: string;
|
|
60
|
-
countryCode?: string | undefined;
|
|
61
|
-
currencyCode?: string | undefined;
|
|
62
|
-
}>, "many">;
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
getBalance: {
|
|
66
|
-
method: "POST";
|
|
67
|
-
body: z.ZodObject<{
|
|
68
|
-
accountNo: z.ZodOptional<z.ZodString>;
|
|
69
|
-
}, "strip", z.ZodTypeAny, {
|
|
70
|
-
accountNo?: string | undefined;
|
|
71
|
-
}, {
|
|
72
|
-
accountNo?: string | undefined;
|
|
73
|
-
}>;
|
|
74
|
-
path: "/balance";
|
|
75
|
-
responses: {
|
|
76
|
-
201: z.ZodObject<{
|
|
77
|
-
availableBalance: z.ZodNumber;
|
|
78
|
-
}, "strip", z.ZodTypeAny, {
|
|
79
|
-
availableBalance: number;
|
|
80
|
-
}, {
|
|
81
|
-
availableBalance: number;
|
|
82
|
-
}>;
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
getStatement: {
|
|
86
|
-
summary: "Get Wallet Statement";
|
|
87
|
-
method: "POST";
|
|
88
|
-
body: z.ZodObject<{
|
|
89
|
-
endDate: z.ZodDate;
|
|
90
|
-
startDate: z.ZodDate;
|
|
91
|
-
accountNo: z.ZodOptional<z.ZodString>;
|
|
92
|
-
}, "strip", z.ZodTypeAny, {
|
|
93
|
-
endDate: Date;
|
|
94
|
-
startDate: Date;
|
|
95
|
-
accountNo?: string | undefined;
|
|
96
|
-
}, {
|
|
97
|
-
endDate: Date;
|
|
98
|
-
startDate: Date;
|
|
99
|
-
accountNo?: string | undefined;
|
|
100
|
-
}>;
|
|
101
|
-
path: "/statement";
|
|
102
|
-
responses: {
|
|
103
|
-
201: z.ZodArray<z.ZodObject<{
|
|
104
|
-
accountNo: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, string | undefined>;
|
|
105
|
-
debitOrCredit: z.ZodString;
|
|
106
|
-
tranRefNo: z.ZodString;
|
|
107
|
-
narration: z.ZodString;
|
|
108
|
-
txnDate: z.ZodDate;
|
|
109
|
-
valueDate: z.ZodDate;
|
|
110
|
-
amountCredited: z.ZodNumber;
|
|
111
|
-
amountDebited: z.ZodNumber;
|
|
112
|
-
balance: z.ZodNumber;
|
|
113
|
-
}, "strip", z.ZodTypeAny, {
|
|
114
|
-
debitOrCredit: string;
|
|
115
|
-
tranRefNo: string;
|
|
116
|
-
narration: string;
|
|
117
|
-
txnDate: Date;
|
|
118
|
-
valueDate: Date;
|
|
119
|
-
amountCredited: number;
|
|
120
|
-
amountDebited: number;
|
|
121
|
-
balance: number;
|
|
122
|
-
accountNo?: string | undefined;
|
|
123
|
-
}, {
|
|
124
|
-
debitOrCredit: string;
|
|
125
|
-
tranRefNo: string;
|
|
126
|
-
narration: string;
|
|
127
|
-
txnDate: Date;
|
|
128
|
-
valueDate: Date;
|
|
129
|
-
amountCredited: number;
|
|
130
|
-
amountDebited: number;
|
|
131
|
-
balance: number;
|
|
132
|
-
accountNo?: string | undefined;
|
|
133
|
-
}>, "many">;
|
|
134
|
-
};
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/src/features/wallet/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCnB,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { initContract } from "@ts-rest/core";
|
|
3
|
-
import { WalletSchemas } from "../../models/wallet/index.js";
|
|
4
|
-
export const contract = initContract().router({
|
|
5
|
-
getWallets: {
|
|
6
|
-
method: "GET",
|
|
7
|
-
path: "/",
|
|
8
|
-
query: WalletSchemas.walletQuery,
|
|
9
|
-
responses: {
|
|
10
|
-
200: z.array(WalletSchemas.wallet),
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
getBalance: {
|
|
14
|
-
method: "POST",
|
|
15
|
-
path: "/balance",
|
|
16
|
-
body: z.object({
|
|
17
|
-
accountNo: z.string().optional(),
|
|
18
|
-
}),
|
|
19
|
-
responses: {
|
|
20
|
-
201: z.object({
|
|
21
|
-
availableBalance: z.coerce.number(),
|
|
22
|
-
}),
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
getStatement: {
|
|
26
|
-
method: "POST",
|
|
27
|
-
path: "/statement",
|
|
28
|
-
summary: "Get Wallet Statement",
|
|
29
|
-
body: z.object({
|
|
30
|
-
endDate: z.date(),
|
|
31
|
-
startDate: z.date(),
|
|
32
|
-
accountNo: z.string().optional(),
|
|
33
|
-
}),
|
|
34
|
-
responses: {
|
|
35
|
-
201: z.array(WalletSchemas.statementEntry),
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/features/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./repository.js";
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { BaseRepository } from "../../shared/base_repository.js";
|
|
2
|
-
import { contract } from "./contract.js";
|
|
3
|
-
import { Wallet, type WalletSchemas, WalletStatementEntry } from "../../models/wallet/index.js";
|
|
4
|
-
import type { AfloatAuth } from "../auth/manager.js";
|
|
5
|
-
import type z from "zod";
|
|
6
|
-
/**
|
|
7
|
-
* Repository class for managing wallet operations including balance checking,
|
|
8
|
-
* statement generation, and wallet information retrieval.
|
|
9
|
-
* @extends {BaseRepository<typeof contract>}
|
|
10
|
-
*/
|
|
11
|
-
export declare class WalletRepo extends BaseRepository<typeof contract> {
|
|
12
|
-
/**
|
|
13
|
-
* Creates an instance of WalletRepo initialized with the wallet contract.
|
|
14
|
-
* @param {Object} [options] - Optional configuration
|
|
15
|
-
* @param {string} [options.root] - Custom API root URL
|
|
16
|
-
* @param {AfloatAuth} [options.auth] - Auth instance to use
|
|
17
|
-
*/
|
|
18
|
-
constructor(props?: {
|
|
19
|
-
root?: string;
|
|
20
|
-
auth?: AfloatAuth;
|
|
21
|
-
});
|
|
22
|
-
/**
|
|
23
|
-
* Retrieves the current available balance for the wallet.
|
|
24
|
-
* @throws {PermissionError} If user lacks the ViewBalance permission
|
|
25
|
-
* @throws {Error} If the balance fetch operation fails
|
|
26
|
-
* @returns {Promise<number>} The available balance amount
|
|
27
|
-
*/
|
|
28
|
-
getBalance(props: {
|
|
29
|
-
accountNo?: string;
|
|
30
|
-
}): Promise<number>;
|
|
31
|
-
/**
|
|
32
|
-
* Retrieves all wallets associated with the current context.
|
|
33
|
-
* @throws {Error} If the wallet fetch operation fails
|
|
34
|
-
* @returns {Promise<Wallet[]>} Array of wallet objects
|
|
35
|
-
*/
|
|
36
|
-
getWallets(args?: z.infer<typeof WalletSchemas.walletQuery>): Promise<Wallet[]>;
|
|
37
|
-
/**
|
|
38
|
-
* Retrieves wallet statement items for a specified date range and account.
|
|
39
|
-
* If no range is provided, defaults to the current month (1st to 30th).
|
|
40
|
-
* @param {Object} props - The statement request properties
|
|
41
|
-
* @param {Object} [props.range] - Optional date range for the statement
|
|
42
|
-
* @param {Date} props.range.startDate - Start date for the statement period
|
|
43
|
-
* @param {Date} props.range.endDate - End date for the statement period
|
|
44
|
-
* @param {string} [props.accountNo] - Optional account number to fetch statement for
|
|
45
|
-
* @throws {PermissionError} If user lacks the ViewStatement permission
|
|
46
|
-
* @throws {Error} If the statement fetch operation fails
|
|
47
|
-
* @returns {Promise<WalletStatementEntry[]>} Array of statement items for the specified period
|
|
48
|
-
*/
|
|
49
|
-
getStatement(props: {
|
|
50
|
-
range?: {
|
|
51
|
-
startDate: Date;
|
|
52
|
-
endDate: Date;
|
|
53
|
-
};
|
|
54
|
-
accountNo?: string;
|
|
55
|
-
}): Promise<WalletStatementEntry[]>;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../src/src/features/wallet/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,MAAM,EACN,KAAK,aAAa,EAClB,oBAAoB,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,cAAc,CAAC,OAAO,QAAQ,CAAC;IAC7D;;;;;OAKG;gBACS,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE;IAOxD;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBhE;;;;OAIG;IACG,UAAU,CACd,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,WAAW,CAAC,GAC/C,OAAO,CAAC,MAAM,EAAE,CAAC;IAUpB;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,KAAK,EAAE;QACL,KAAK,CAAC,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,OAAO,EAAE,IAAI,CAAA;SAAE,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,oBAAoB,EAAE,CAAC;CA2BnC"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { BaseRepository } from "../../shared/base_repository.js";
|
|
2
|
-
import { contract } from "./contract.js";
|
|
3
|
-
import { Wallet, WalletStatementEntry, } from "../../models/wallet/index.js";
|
|
4
|
-
import { Permissions } from "../../models/permission.js";
|
|
5
|
-
import { PermissionError } from "../../errors/index.js";
|
|
6
|
-
/**
|
|
7
|
-
* Repository class for managing wallet operations including balance checking,
|
|
8
|
-
* statement generation, and wallet information retrieval.
|
|
9
|
-
* @extends {BaseRepository<typeof contract>}
|
|
10
|
-
*/
|
|
11
|
-
export class WalletRepo extends BaseRepository {
|
|
12
|
-
/**
|
|
13
|
-
* Creates an instance of WalletRepo initialized with the wallet contract.
|
|
14
|
-
* @param {Object} [options] - Optional configuration
|
|
15
|
-
* @param {string} [options.root] - Custom API root URL
|
|
16
|
-
* @param {AfloatAuth} [options.auth] - Auth instance to use
|
|
17
|
-
*/
|
|
18
|
-
constructor(props) {
|
|
19
|
-
super("wallet", contract, {
|
|
20
|
-
root: props?.root,
|
|
21
|
-
auth: props?.auth,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Retrieves the current available balance for the wallet.
|
|
26
|
-
* @throws {PermissionError} If user lacks the ViewBalance permission
|
|
27
|
-
* @throws {Error} If the balance fetch operation fails
|
|
28
|
-
* @returns {Promise<number>} The available balance amount
|
|
29
|
-
*/
|
|
30
|
-
async getBalance(props) {
|
|
31
|
-
const auth = this.getAuthForPermissionCheck();
|
|
32
|
-
const requirePerm = Permissions.Wallet.ViewBalance;
|
|
33
|
-
if (!auth.checkPermission(requirePerm)) {
|
|
34
|
-
throw new PermissionError({
|
|
35
|
-
message: "You are not authorized to view the account balance.",
|
|
36
|
-
requiredPermissions: [requirePerm],
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
const result = await this.client.getBalance({
|
|
40
|
-
body: { accountNo: props.accountNo },
|
|
41
|
-
});
|
|
42
|
-
if (result.status === 201) {
|
|
43
|
-
return result.body.availableBalance;
|
|
44
|
-
}
|
|
45
|
-
throw new Error("An error occured while fetching balance");
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Retrieves all wallets associated with the current context.
|
|
49
|
-
* @throws {Error} If the wallet fetch operation fails
|
|
50
|
-
* @returns {Promise<Wallet[]>} Array of wallet objects
|
|
51
|
-
*/
|
|
52
|
-
async getWallets(args) {
|
|
53
|
-
const result = await this.client.getWallets({ query: args });
|
|
54
|
-
if (result.status === 200) {
|
|
55
|
-
return result.body.map((w) => Wallet.from(w));
|
|
56
|
-
}
|
|
57
|
-
throw new Error("An error occured while fetching wallets");
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Retrieves wallet statement items for a specified date range and account.
|
|
61
|
-
* If no range is provided, defaults to the current month (1st to 30th).
|
|
62
|
-
* @param {Object} props - The statement request properties
|
|
63
|
-
* @param {Object} [props.range] - Optional date range for the statement
|
|
64
|
-
* @param {Date} props.range.startDate - Start date for the statement period
|
|
65
|
-
* @param {Date} props.range.endDate - End date for the statement period
|
|
66
|
-
* @param {string} [props.accountNo] - Optional account number to fetch statement for
|
|
67
|
-
* @throws {PermissionError} If user lacks the ViewStatement permission
|
|
68
|
-
* @throws {Error} If the statement fetch operation fails
|
|
69
|
-
* @returns {Promise<WalletStatementEntry[]>} Array of statement items for the specified period
|
|
70
|
-
*/
|
|
71
|
-
async getStatement(props) {
|
|
72
|
-
const auth = this.getAuthForPermissionCheck();
|
|
73
|
-
const requirePerm = Permissions.Wallet.ViewStatement;
|
|
74
|
-
if (!auth.checkPermission(requirePerm)) {
|
|
75
|
-
throw new PermissionError({
|
|
76
|
-
message: "You are not authorized to view the statement.",
|
|
77
|
-
requiredPermissions: [requirePerm],
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
const now = new Date();
|
|
81
|
-
const monthStart = new Date(now.getFullYear(), now.getMonth(), 1);
|
|
82
|
-
const monthEnd = new Date(now.getFullYear(), now.getMonth(), 30);
|
|
83
|
-
const range = props.range !== undefined
|
|
84
|
-
? { startDate: props.range.startDate, endDate: props.range.endDate }
|
|
85
|
-
: { startDate: monthStart, endDate: monthEnd };
|
|
86
|
-
const body = { ...range, accountNo: props.accountNo };
|
|
87
|
-
const result = await this.client.getStatement({ body });
|
|
88
|
-
if (result.status === 201) {
|
|
89
|
-
return result.body.map((e) => WalletStatementEntry.from(e));
|
|
90
|
-
}
|
|
91
|
-
throw new Error("An error occured while fetching statement");
|
|
92
|
-
}
|
|
93
|
-
}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { type ContactData, type ContactType } from "../schemas.js";
|
|
2
|
-
import { type ContactInfo } from "./contact_info.js";
|
|
3
|
-
/**
|
|
4
|
-
* Contact class that wraps the Zod schema and provides additional functionality
|
|
5
|
-
*/
|
|
6
|
-
export declare class Contact {
|
|
7
|
-
private readonly data;
|
|
8
|
-
/**
|
|
9
|
-
* Private constructor - use static methods to create instances
|
|
10
|
-
*/
|
|
11
|
-
private constructor();
|
|
12
|
-
/**
|
|
13
|
-
* Unique identifier for the contact
|
|
14
|
-
*/
|
|
15
|
-
get id(): string;
|
|
16
|
-
/**
|
|
17
|
-
* Profile identifier associated with this contact
|
|
18
|
-
*/
|
|
19
|
-
get profileId(): string;
|
|
20
|
-
/**
|
|
21
|
-
* Display name of the contact
|
|
22
|
-
*/
|
|
23
|
-
get displayName(): string;
|
|
24
|
-
/**
|
|
25
|
-
* Type of contact (Bank or Mobile)
|
|
26
|
-
*/
|
|
27
|
-
get type(): ContactType;
|
|
28
|
-
/**
|
|
29
|
-
* Creation timestamp of the contact
|
|
30
|
-
*/
|
|
31
|
-
get createdAt(): Date;
|
|
32
|
-
/**
|
|
33
|
-
* Update timestamp of the contact
|
|
34
|
-
*/
|
|
35
|
-
get updatedAt(): Date;
|
|
36
|
-
/**
|
|
37
|
-
* Detailed contact information based on contact type
|
|
38
|
-
*
|
|
39
|
-
* @returns {ContactInfo | undefined} Contact information object:
|
|
40
|
-
* - MobileContactInfo for mobile money contacts
|
|
41
|
-
* - BankContactInfo for bank contacts
|
|
42
|
-
* - undefined if contact information cannot be constructed
|
|
43
|
-
*
|
|
44
|
-
* @remarks
|
|
45
|
-
* For mobile contacts, constructs from phone number
|
|
46
|
-
* For bank contacts, constructs from SWIFT code and account number
|
|
47
|
-
*/
|
|
48
|
-
get info(): ContactInfo | undefined;
|
|
49
|
-
/**
|
|
50
|
-
* Payment channel for the contact
|
|
51
|
-
*
|
|
52
|
-
* @returns {string} Channel information:
|
|
53
|
-
* - For valid contacts, returns formatted channel from ContactInfo
|
|
54
|
-
* - For invalid contacts, falls back to account number
|
|
55
|
-
*/
|
|
56
|
-
get channel(): string;
|
|
57
|
-
/**
|
|
58
|
-
* Account number for the contact
|
|
59
|
-
*
|
|
60
|
-
* @returns {string} Account number:
|
|
61
|
-
* - For valid contacts, returns formatted account number from ContactInfo
|
|
62
|
-
* - For invalid contacts, falls back to raw account number
|
|
63
|
-
*/
|
|
64
|
-
get accNo(): string;
|
|
65
|
-
/**
|
|
66
|
-
* Account name for the contact
|
|
67
|
-
* Always returns the display name
|
|
68
|
-
*/
|
|
69
|
-
get accName(): string;
|
|
70
|
-
/**
|
|
71
|
-
* Label for the account number field based on contact type
|
|
72
|
-
*
|
|
73
|
-
* @returns {string} Appropriate label:
|
|
74
|
-
* - "Phone Number" for mobile contacts
|
|
75
|
-
* - "Bank Account Number" for bank contacts
|
|
76
|
-
* - "Account Number" as fallback
|
|
77
|
-
*/
|
|
78
|
-
get accNoLabel(): string;
|
|
79
|
-
/**
|
|
80
|
-
* Label for the channel field based on contact type
|
|
81
|
-
*
|
|
82
|
-
* @returns {string} Appropriate label:
|
|
83
|
-
* - "Channel" for mobile contacts
|
|
84
|
-
* - "Bank" for bank contacts
|
|
85
|
-
* - "Channel" as fallback
|
|
86
|
-
*/
|
|
87
|
-
get channelLabel(): string;
|
|
88
|
-
/**
|
|
89
|
-
* Label for the account name field based on contact type
|
|
90
|
-
*
|
|
91
|
-
* @returns {string} Appropriate label:
|
|
92
|
-
* - "Full Name" for mobile contacts
|
|
93
|
-
* - "Bank Account Name" for bank contacts
|
|
94
|
-
* - "Display Name" as fallback
|
|
95
|
-
*/
|
|
96
|
-
get accNameLabel(): string;
|
|
97
|
-
/**
|
|
98
|
-
* Creates a Contact instance from raw data
|
|
99
|
-
* @throws {ZodError} if validation fails
|
|
100
|
-
*/
|
|
101
|
-
static create(data: ContactData): Contact;
|
|
102
|
-
/**
|
|
103
|
-
* Creates multiple Contact instances from an array of raw data
|
|
104
|
-
* @throws {ZodError} if validation fails for any item
|
|
105
|
-
*/
|
|
106
|
-
static createMany(dataArray: ContactData[]): Contact[];
|
|
107
|
-
/**
|
|
108
|
-
* Creates a Contact instance from raw data without throwing
|
|
109
|
-
* @returns {Contact | null} Contact instance or null if validation fails
|
|
110
|
-
*/
|
|
111
|
-
static createSafe(data: ContactData): Contact | null;
|
|
112
|
-
/**
|
|
113
|
-
* Checks if an unknown value contains valid data to construct a Contact instance.
|
|
114
|
-
* This is useful when validating raw data structures before instantiation.
|
|
115
|
-
*
|
|
116
|
-
* @param {unknown} obj - The value containing potential contact data
|
|
117
|
-
* @returns {obj is Contact} Type predicate indicating if a Contact can be constructed
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
* ```typescript
|
|
121
|
-
* const rawData = await fetchFromAPI();
|
|
122
|
-
* if (Contact.canConstruct(rawData)) {
|
|
123
|
-
* const contact = Contact.create(rawData);
|
|
124
|
-
* // TypeScript knows contact is valid here
|
|
125
|
-
* console.log(contact.displayName);
|
|
126
|
-
* }
|
|
127
|
-
* ```
|
|
128
|
-
*
|
|
129
|
-
* @throws {never} This method never throws errors
|
|
130
|
-
*
|
|
131
|
-
* @remarks
|
|
132
|
-
* This method performs strict validation against the {@link ContactData} schema.
|
|
133
|
-
*/
|
|
134
|
-
static canConstruct(obj: unknown): obj is Contact;
|
|
135
|
-
/**
|
|
136
|
-
* Validates if an unknown value is a Contact instance.
|
|
137
|
-
* This is a runtime type guard that ensures proper object structure and data validity.
|
|
138
|
-
*
|
|
139
|
-
* @param {unknown} obj - The value to validate
|
|
140
|
-
* @returns {obj is Contact} Type predicate indicating if the value is a valid Contact
|
|
141
|
-
*
|
|
142
|
-
* @example
|
|
143
|
-
* ```typescript
|
|
144
|
-
* const maybeContact = getContactFromCache();
|
|
145
|
-
* if (Contact.is(maybeContact)) {
|
|
146
|
-
* // TypeScript knows maybeContact is a Contact here
|
|
147
|
-
* console.log(maybeContact.displayName);
|
|
148
|
-
* }
|
|
149
|
-
* ```
|
|
150
|
-
*
|
|
151
|
-
* @throws {never} This method never throws errors
|
|
152
|
-
*
|
|
153
|
-
* @remarks
|
|
154
|
-
* This method performs a complete structural validation:
|
|
155
|
-
* 1. Checks if the value is an object
|
|
156
|
-
* 2. Verifies presence of internal data property
|
|
157
|
-
* 3. Validates the data against ContactData schema
|
|
158
|
-
* 4. Ensures the object is a proper Contact instance
|
|
159
|
-
*
|
|
160
|
-
* Use this method when:
|
|
161
|
-
* - Validating cached Contact instances
|
|
162
|
-
* - Checking serialized Contact objects
|
|
163
|
-
* - Verifying API responses
|
|
164
|
-
* - Type narrowing in conditional blocks
|
|
165
|
-
*/
|
|
166
|
-
static is(obj: unknown): obj is Contact;
|
|
167
|
-
/**
|
|
168
|
-
* Converts Payout instance to a plain object
|
|
169
|
-
*/
|
|
170
|
-
toJSON(): ContactData;
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=contact.d.ts.map
|