@temboplus/afloat 0.1.81 → 0.2.0-beta.10
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 +206 -90
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/lib/api/base-repository.d.ts +177 -0
- package/dist/lib/api/index.d.ts +1 -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/lib/query/index.d.ts +4 -0
- package/dist/lib/query/pagination/pagination.d.ts +73 -0
- package/dist/lib/query/pagination/pagination.schemas.d.ts +83 -0
- package/dist/lib/query/query.builder.d.ts +80 -0
- package/dist/lib/query/query.types.d.ts +36 -0
- package/{esm/src/features/auth/contract.d.ts → dist/modules/auth/auth.contract.d.ts} +16 -19
- package/dist/modules/auth/auth.repository.d.ts +83 -0
- package/dist/modules/auth/company-membership.model.d.ts +171 -0
- package/dist/modules/auth/index.d.ts +3 -0
- package/dist/modules/auth/user.model.d.ts +363 -0
- package/dist/modules/beneficiary/beneficiary-info.model.d.ts +218 -0
- package/dist/modules/beneficiary/beneficiary-input-handler.d.ts +16 -0
- package/dist/modules/beneficiary/beneficiary.api-contract.d.ts +203 -0
- package/dist/modules/beneficiary/beneficiary.dtos.d.ts +84 -0
- package/dist/modules/beneficiary/beneficiary.model.d.ts +450 -0
- package/dist/modules/beneficiary/beneficiary.repository.d.ts +116 -0
- package/dist/modules/beneficiary/index.d.ts +6 -0
- package/dist/modules/login/index.d.ts +4 -0
- package/dist/modules/login/login.api-contract.d.ts +51 -0
- package/dist/modules/login/login.dtos.d.ts +85 -0
- package/dist/modules/login/login.model.d.ts +168 -0
- package/dist/modules/login/login.repository.d.ts +58 -0
- package/{esm/src/models/permission.d.ts → dist/modules/login/permission.type.d.ts} +9 -10
- package/dist/modules/payout/index.d.ts +5 -0
- package/dist/modules/payout/payout-channel-handler.d.ts +83 -0
- package/{esm/src/features/payout/contract.d.ts → dist/modules/payout/payout.api-contract.d.ts} +350 -207
- package/dist/modules/payout/payout.dtos.d.ts +607 -0
- package/dist/modules/payout/payout.model.d.ts +383 -0
- package/dist/modules/payout/payout.query.d.ts +185 -0
- package/dist/modules/payout/payout.repository.d.ts +204 -0
- package/dist/modules/profile/index.d.ts +3 -0
- package/{script/npm/src/src/features/auth/profile/contract.d.ts → dist/modules/profile/profile.api-contract.d.ts} +8 -6
- package/dist/modules/profile/profile.dtos.d.ts +80 -0
- package/{script/npm/src/src/models/user/profile.d.ts → dist/modules/profile/profile.model.d.ts} +81 -52
- package/dist/modules/profile/profile.repository.d.ts +56 -0
- package/dist/modules/team-member/index.d.ts +4 -0
- package/dist/modules/team-member/role.model.d.ts +61 -0
- package/{esm/src/features/admin/contract.d.ts → dist/modules/team-member/team-member.contract.d.ts} +229 -154
- package/dist/modules/team-member/team-member.dtos.d.ts +261 -0
- package/dist/modules/team-member/team-member.model.d.ts +237 -0
- package/dist/modules/team-member/team-member.repository.d.ts +179 -0
- package/dist/modules/wallet/index.d.ts +6 -0
- package/dist/modules/wallet/narration.model.d.ts +225 -0
- package/dist/modules/wallet/statement-entry.model.d.ts +299 -0
- package/{script/npm/src/src/features/wallet/contract.d.ts → dist/modules/wallet/wallet.contract.d.ts} +17 -15
- package/dist/modules/wallet/wallet.dtos.d.ts +204 -0
- package/{esm/src/models/wallet/wallet.d.ts → dist/modules/wallet/wallet.model.d.ts} +34 -40
- package/dist/modules/wallet/wallet.query.d.ts +126 -0
- package/dist/modules/wallet/wallet.repository.d.ts +205 -0
- package/dist/modules/wallet/wallet.utils.d.ts +17 -0
- package/package.json +47 -22
- 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 +0 -14
- 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 +0 -32
- 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 +0 -170
- 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 -179
- 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 -271
- 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 +0 -108
- 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.map +0 -1
- package/esm/src/models/wallet/wallet.js +0 -279
- package/esm/src/shared/base_repository.d.ts +0 -80
- 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 +0 -146
- 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 +0 -23
- 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 +0 -30
- 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 +0 -42
- 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 -183
- 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 +0 -172
- 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 +0 -158
- 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 -275
- 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 +0 -21
- 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 +0 -147
- 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 +0 -13
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/lib/error/error.api.ts","../src/modules/login/permission.type.ts","../src/lib/error/error.permission.ts","../node_modules/@ts-rest/core/index.esm.mjs","../src/lib/api/base-repository.ts","../src/lib/query/query.types.ts","../src/lib/query/query.builder.ts","../src/lib/query/pagination/pagination.schemas.ts","../src/lib/query/pagination/pagination.ts","../src/modules/profile/profile.dtos.ts","../src/modules/profile/profile.model.ts","../src/modules/login/login.dtos.ts","../src/modules/login/login.model.ts","../src/modules/team-member/role.model.ts","../src/modules/auth/company-membership.model.ts","../src/modules/auth/user.model.ts","../src/modules/auth/auth.contract.ts","../src/modules/login/login.api-contract.ts","../src/modules/login/login.repository.ts","../src/modules/team-member/team-member.dtos.ts","../src/modules/team-member/team-member.contract.ts","../src/modules/team-member/team-member.model.ts","../src/modules/team-member/team-member.repository.ts","../src/modules/beneficiary/beneficiary.dtos.ts","../src/modules/beneficiary/beneficiary-info.model.ts","../src/modules/beneficiary/beneficiary.model.ts","../src/modules/beneficiary/beneficiary-input-handler.ts","../src/modules/beneficiary/beneficiary.api-contract.ts","../src/modules/payout/payout.dtos.ts","../src/modules/payout/payout.model.ts","../src/modules/wallet/narration.model.ts","../src/modules/payout/payout-channel-handler.ts","../src/modules/payout/payout.api-contract.ts","../src/modules/payout/payout.query.ts","../src/modules/wallet/wallet.dtos.ts","../src/modules/wallet/wallet.model.ts","../src/modules/wallet/statement-entry.model.ts","../src/modules/wallet/wallet.contract.ts","../src/modules/wallet/wallet.query.ts","../src/modules/wallet/wallet.utils.ts","../src/modules/profile/profile.api-contract.ts","../src/modules/auth/auth.repository.ts","../src/modules/beneficiary/beneficiary.repository.ts","../src/modules/payout/payout.repository.ts","../src/modules/profile/profile.repository.ts","../src/modules/wallet/wallet.repository.ts","../src/lib/error/error.utils.ts"],"sourcesContent":[null,null,null,"import { z } from 'zod';\n\nconst isZodType = (obj) => {\n return typeof (obj === null || obj === void 0 ? void 0 : obj.safeParse) === 'function';\n};\nconst isZodObject = (obj) => {\n if (typeof (obj === null || obj === void 0 ? void 0 : obj.passthrough) === 'function') {\n return true;\n }\n if (typeof (obj === null || obj === void 0 ? void 0 : obj.innerType) === 'function') {\n return isZodObject(obj === null || obj === void 0 ? void 0 : obj.innerType());\n }\n return false;\n};\nconst isZodObjectStrict = (obj) => {\n return typeof (obj === null || obj === void 0 ? void 0 : obj.passthrough) === 'function';\n};\nconst extractZodObjectShape = (obj) => {\n if (!isZodObject(obj)) {\n throw new Error('Unknown zod object type');\n }\n if ('innerType' in obj) {\n return extractZodObjectShape(obj.innerType());\n }\n return obj.shape;\n};\nconst zodMerge = (objectA, objectB) => {\n if (isZodObjectStrict(objectA)) {\n if (isZodObjectStrict(objectB)) {\n return objectA.merge(objectB);\n }\n return objectA;\n }\n if (isZodObjectStrict(objectB)) {\n return objectB;\n }\n return Object.assign({}, objectA, objectB);\n};\nconst checkZodSchema = (data, schema, { passThroughExtraKeys = false } = {}) => {\n if (isZodType(schema)) {\n const result = schema.safeParse(data);\n if (result.success) {\n return {\n success: true,\n data: passThroughExtraKeys && typeof data === 'object'\n ? { ...data, ...result.data }\n : result.data,\n };\n }\n return {\n success: false,\n error: result.error,\n };\n }\n return {\n success: true,\n data: data,\n };\n};\n// Convert a ZodError to a plain object because ZodError extends Error and causes problems with NestJS\nconst zodErrorResponse = (error) => {\n return {\n name: error.name,\n issues: error.issues,\n };\n};\nconst ZodErrorSchema = z.object({\n name: z.literal('ZodError'),\n issues: z.array(z\n .object({\n path: z.array(z.union([z.string(), z.number()])),\n message: z.string().optional(),\n code: z.nativeEnum(z.ZodIssueCode),\n })\n // ZodIssuse type are complex and potentially unstable. So we don’t deal with his specific fields other than the common.\n .catchall(z.any())),\n});\n\nconst ContractNoBody = Symbol('ContractNoBody');\n/**\n * Differentiate between a route and a router\n *\n * @param obj\n * @returns\n */\nconst isAppRoute = (obj) => {\n return 'method' in obj && 'path' in obj;\n};\nconst isAppRouteQuery = (route) => {\n return route.method === 'GET';\n};\nconst isAppRouteMutation = (route) => {\n return !isAppRouteQuery(route);\n};\n/**\n *\n * @deprecated Please use {@link initContract} instead.\n */\nconst initTsRest = () => initContract();\nconst recursivelyApplyOptions = (router, options) => {\n return Object.fromEntries(Object.entries(router).map(([key, value]) => {\n var _a, _b, _c;\n if (isAppRoute(value)) {\n return [\n key,\n {\n ...value,\n path: (options === null || options === void 0 ? void 0 : options.pathPrefix)\n ? options.pathPrefix + value.path\n : value.path,\n headers: zodMerge(options === null || options === void 0 ? void 0 : options.baseHeaders, value.headers),\n strictStatusCodes: (_a = value.strictStatusCodes) !== null && _a !== void 0 ? _a : options === null || options === void 0 ? void 0 : options.strictStatusCodes,\n validateResponseOnClient: (_b = value.validateResponseOnClient) !== null && _b !== void 0 ? _b : options === null || options === void 0 ? void 0 : options.validateResponseOnClient,\n responses: {\n ...options === null || options === void 0 ? void 0 : options.commonResponses,\n ...value.responses,\n },\n metadata: (options === null || options === void 0 ? void 0 : options.metadata)\n ? {\n ...options === null || options === void 0 ? void 0 : options.metadata,\n ...((_c = value.metadata) !== null && _c !== void 0 ? _c : {}),\n }\n : value.metadata,\n },\n ];\n }\n else {\n return [key, recursivelyApplyOptions(value, options)];\n }\n }));\n};\nconst ContractPlainTypeRuntimeSymbol = Symbol('ContractPlainType');\n/**\n * Instantiate a ts-rest client, primarily to access `router`, `response`, and `body`\n *\n * @returns {ContractInstance}\n */\nconst initContract = () => {\n return {\n // @ts-expect-error - this is a type error, but it's not clear how to fix it\n router: (endpoints, options) => recursivelyApplyOptions(endpoints, options),\n query: (args) => args,\n mutation: (args) => args,\n responses: (args) => args,\n response: () => ContractPlainTypeRuntimeSymbol,\n body: () => ContractPlainTypeRuntimeSymbol,\n type: () => ContractPlainTypeRuntimeSymbol,\n otherResponse: ({ contentType, body, }) => ({\n contentType,\n body,\n }),\n noBody: () => ContractNoBody,\n };\n};\n\n/**\n * @param path - The URL e.g. /posts/:id\n * @param params - The params e.g. `{ id: string }`\n * @returns - The URL with the params e.g. /posts/123\n */\nconst insertParamsIntoPath = ({ path, params, }) => {\n const pathParams = params;\n return path.replace(/\\/?:([^/?]+)\\??/g, (matched, p) => pathParams[p]\n ? `${matched.startsWith('/') ? '/' : ''}${pathParams[p]}`\n : '');\n};\n\n/**\n *\n * @param query - Any JSON object\n * @param json - Use JSON.stringify to encode the query values\n * @returns - The query url segment, using explode array syntax, and deep object syntax\n */\nconst convertQueryParamsToUrlString = (query, json = false) => {\n const queryString = json\n ? encodeQueryParamsJson(query)\n : encodeQueryParams(query);\n return (queryString === null || queryString === void 0 ? void 0 : queryString.length) > 0 ? '?' + queryString : '';\n};\nconst encodeQueryParamsJson = (query) => {\n if (!query) {\n return '';\n }\n return Object.entries(query)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => {\n let encodedValue;\n // if value is a string and is not a reserved JSON value or a number, pass it without encoding\n // this makes strings look nicer in the URL (e.g. ?name=John instead of ?name=%22John%22)\n // this is also how OpenAPI will pass strings even if they are marked as application/json types\n if (typeof value === 'string' &&\n !['true', 'false', 'null'].includes(value.trim()) &&\n isNaN(Number(value))) {\n encodedValue = value;\n }\n else {\n encodedValue = JSON.stringify(value);\n }\n return `${encodeURIComponent(key)}=${encodeURIComponent(encodedValue)}`;\n })\n .join('&');\n};\nconst encodeQueryParams = (query) => {\n if (!query) {\n return '';\n }\n return (Object.keys(query)\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .flatMap((key) => tokeniseValue(key, query[key]))\n .map(([key, value]) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n })\n .join('&'));\n};\n/**\n * A recursive function to convert an object/string/number/Date/whatever into an array of key=value pairs\n *\n * The output of this should be flatMap-able to a string of key=value pairs which can be\n * joined with & to form a query string\n *\n * This should be fully compatible with the \"qs\" library, but without the need to add a dependency\n */\nconst tokeniseValue = (key, value) => {\n if (Array.isArray(value)) {\n return value.flatMap((v, idx) => tokeniseValue(`${key}[${idx}]`, v));\n }\n if (value instanceof Date) {\n return [[`${key}`, value.toISOString()]];\n }\n if (value === null) {\n return [[`${key}`, '']];\n }\n if (value === undefined) {\n return [];\n }\n if (typeof value === 'object') {\n return Object.keys(value).flatMap((k) => \n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n tokeniseValue(`${key}[${k}]`, value[k]));\n }\n return [[`${key}`, `${value}`]];\n};\n/**\n *\n * @param query - A server-side query object where values have been encoded as JSON strings\n * @returns - The same object with the JSON strings decoded. Objects that were encoded using toJSON such as Dates will remain as strings\n */\nconst parseJsonQueryObject = (query) => {\n return Object.fromEntries(Object.entries(query).map(([key, value]) => {\n let parsedValue;\n // if json parse fails, treat the value as a string\n // this allows us to pass strings without having to surround them with quotes\n try {\n parsedValue = JSON.parse(value);\n }\n catch {\n parsedValue = value;\n }\n return [key, parsedValue];\n }));\n};\n\nclass UnknownStatusError extends Error {\n constructor(response, knownResponseStatuses) {\n const expectedStatuses = knownResponseStatuses.join(',');\n super(`Server returned unexpected response. Expected one of: ${expectedStatuses} got: ${response.status}`);\n this.response = response;\n }\n}\n\n/**\n * @deprecated Only safe to use on the client-side. Use `ServerInferResponses`/`ClientInferResponses` instead.\n */\nfunction getRouteResponses(router) {\n return {};\n}\n/**\n * Default fetch api implementation:\n *\n * Can be used as a reference for implementing your own fetcher,\n * or used in the \"api\" field of ClientArgs to allow you to hook\n * into the request to run custom logic\n */\nconst tsRestFetchApi = async ({ route, path, method, headers, body, validateResponse, fetchOptions, }) => {\n const result = await fetch(path, {\n ...fetchOptions,\n method,\n headers,\n body,\n });\n const contentType = result.headers.get('content-type');\n if ((contentType === null || contentType === void 0 ? void 0 : contentType.includes('application/')) && (contentType === null || contentType === void 0 ? void 0 : contentType.includes('json'))) {\n const response = {\n status: result.status,\n body: await result.json(),\n headers: result.headers,\n };\n const responseSchema = route.responses[response.status];\n if ((validateResponse !== null && validateResponse !== void 0 ? validateResponse : route.validateResponseOnClient) &&\n isZodType(responseSchema)) {\n return {\n ...response,\n body: responseSchema.parse(response.body),\n };\n }\n return response;\n }\n if (contentType === null || contentType === void 0 ? void 0 : contentType.includes('text/')) {\n return {\n status: result.status,\n body: await result.text(),\n headers: result.headers,\n };\n }\n return {\n status: result.status,\n body: await result.blob(),\n headers: result.headers,\n };\n};\nconst createFormData = (body) => {\n const formData = new FormData();\n const appendToFormData = (key, value) => {\n if (value instanceof File) {\n formData.append(key, value);\n }\n else {\n formData.append(key, JSON.stringify(value));\n }\n };\n Object.entries(body).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n for (const item of value) {\n appendToFormData(key, item);\n }\n }\n else {\n appendToFormData(key, value);\n }\n });\n return formData;\n};\nconst normalizeHeaders = (headers) => {\n return Object.fromEntries(Object.entries(headers).map(([k, v]) => [k.toLowerCase(), v]));\n};\nconst fetchApi = (options) => {\n const { path, clientArgs, route, body, query, extraInputArgs, headers, fetchOptions, } = options;\n const apiFetcher = clientArgs.api || tsRestFetchApi;\n const baseHeaders = clientArgs.baseHeaders &&\n Object.fromEntries(Object.entries(clientArgs.baseHeaders).map(([name, valueOrFunction]) => {\n if (typeof valueOrFunction === 'function') {\n return [name, valueOrFunction(options)];\n }\n else {\n return [name, valueOrFunction];\n }\n }));\n const combinedHeaders = {\n ...(baseHeaders && normalizeHeaders(baseHeaders)),\n ...normalizeHeaders(headers),\n };\n // Remove any headers that are set to undefined\n Object.keys(combinedHeaders).forEach((key) => {\n if (combinedHeaders[key] === undefined) {\n delete combinedHeaders[key];\n }\n });\n let fetcherArgs = {\n route,\n path,\n method: route.method,\n headers: combinedHeaders,\n body: undefined,\n rawBody: body,\n rawQuery: query,\n contentType: undefined,\n validateResponse: clientArgs.validateResponse,\n fetchOptions: {\n ...(clientArgs.credentials && { credentials: clientArgs.credentials }),\n ...fetchOptions,\n },\n ...((fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.signal) && { signal: fetchOptions.signal }),\n ...((fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.cache) && { cache: fetchOptions.cache }),\n ...(fetchOptions &&\n 'next' in fetchOptions &&\n !!(fetchOptions === null || fetchOptions === void 0 ? void 0 : fetchOptions.next) && { next: fetchOptions.next }),\n };\n if (route.method !== 'GET') {\n if ('contentType' in route && route.contentType === 'multipart/form-data') {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'multipart/form-data',\n body: body instanceof FormData ? body : createFormData(body),\n };\n }\n else if ('contentType' in route &&\n route.contentType === 'application/x-www-form-urlencoded') {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'application/x-www-form-urlencoded',\n headers: {\n 'content-type': 'application/x-www-form-urlencoded',\n ...fetcherArgs.headers,\n },\n body: typeof body === 'string'\n ? body\n : new URLSearchParams(body),\n };\n }\n else if (body !== null && body !== undefined) {\n fetcherArgs = {\n ...fetcherArgs,\n contentType: 'application/json',\n headers: {\n 'content-type': 'application/json',\n ...fetcherArgs.headers,\n },\n body: JSON.stringify(body),\n };\n }\n }\n return apiFetcher({\n ...fetcherArgs,\n ...extraInputArgs,\n });\n};\nconst evaluateFetchApiArgs = (route, clientArgs, inputArgs) => {\n const { query, params, body, headers, extraHeaders, overrideClientOptions, fetchOptions, \n // TODO: remove in 4.0\n cache, \n // TODO: remove in 4.0\n next, \n // extra input args\n ...extraInputArgs } = inputArgs || {};\n const overriddenClientArgs = {\n ...clientArgs,\n ...overrideClientOptions,\n };\n const completeUrl = getCompleteUrl(query, overriddenClientArgs.baseUrl, params, route, !!overriddenClientArgs.jsonQuery);\n return {\n path: completeUrl,\n clientArgs: overriddenClientArgs,\n route,\n body,\n query,\n extraInputArgs,\n fetchOptions: {\n ...(cache && { cache }),\n ...(next && { next }),\n ...fetchOptions,\n },\n headers: {\n ...extraHeaders,\n ...headers,\n },\n };\n};\n/**\n * @hidden\n */\nconst getCompleteUrl = (query, baseUrl, params, route, jsonQuery) => {\n const path = insertParamsIntoPath({\n path: route.path,\n params: params,\n });\n const queryComponent = convertQueryParamsToUrlString(query, jsonQuery);\n return `${baseUrl}${path}${queryComponent}`;\n};\nconst getRouteQuery = (route, clientArgs) => {\n const knownResponseStatuses = Object.keys(route.responses);\n return async (inputArgs) => {\n const fetchApiArgs = evaluateFetchApiArgs(route, clientArgs, inputArgs);\n const response = await fetchApi(fetchApiArgs);\n // TODO: in next major version, throw by default if `strictStatusCode` is enabled\n if (!clientArgs.throwOnUnknownStatus) {\n return response;\n }\n if (knownResponseStatuses.includes(response.status.toString())) {\n return response;\n }\n throw new UnknownStatusError(response, knownResponseStatuses);\n };\n};\nconst initClient = (router, args) => {\n return Object.fromEntries(Object.entries(router).map(([key, subRouter]) => {\n if (isAppRoute(subRouter)) {\n return [key, getRouteQuery(subRouter, args)];\n }\n else {\n return [key, initClient(subRouter, args)];\n }\n }));\n};\n\nclass ResponseValidationError extends Error {\n constructor(appRoute, cause) {\n super(`[ts-rest] Response validation failed for ${appRoute.method} ${appRoute.path}: ${cause.message}`);\n this.appRoute = appRoute;\n this.cause = cause;\n }\n}\n\nconst isAppRouteResponse = (value) => {\n return (value != null &&\n typeof value === 'object' &&\n 'status' in value &&\n typeof value.status === 'number');\n};\nconst isAppRouteOtherResponse = (response) => {\n return (response != null &&\n typeof response === 'object' &&\n 'contentType' in response);\n};\nconst isAppRouteNoBody = (response) => {\n return response === ContractNoBody;\n};\nconst validateResponse = ({ appRoute, response, }) => {\n if (isAppRouteResponse(response)) {\n const responseType = appRoute.responses[response.status];\n const responseSchema = isAppRouteOtherResponse(responseType)\n ? responseType.body\n : responseType;\n const responseValidation = checkZodSchema(response.body, responseSchema);\n if (!responseValidation.success) {\n throw new ResponseValidationError(appRoute, responseValidation.error);\n }\n return {\n status: response.status,\n body: responseValidation.data,\n };\n }\n return response;\n};\n\nclass TsRestResponseError extends Error {\n constructor(route, response) {\n super();\n this.statusCode = response.status;\n this.body = response.body;\n this.name = this.constructor.name;\n if (typeof response.body === 'string') {\n this.message = response.body;\n }\n else if (typeof response.body === 'object' &&\n response.body !== null &&\n 'message' in response.body &&\n typeof response.body.message === 'string') {\n this.message = response.body['message'];\n }\n else {\n this.message = 'Error';\n }\n }\n}\n\nconst isResponse = (response, contractEndpoint) => {\n return (typeof response === 'object' &&\n response !== null &&\n 'status' in response &&\n 'body' in response &&\n typeof response.status === 'number' &&\n response.status >= 200 &&\n response.status < 600 &&\n ((contractEndpoint === null || contractEndpoint === void 0 ? void 0 : contractEndpoint.strictStatusCodes)\n ? Object.keys(contractEndpoint.responses).includes(response.status.toString())\n : true));\n};\nconst isSuccessResponse = (response, contractEndpoint) => {\n return (isResponse(response, contractEndpoint) &&\n response.status >= 200 &&\n response.status < 300);\n};\nconst isErrorResponse = (response, contractEndpoint) => {\n return (isResponse(response, contractEndpoint) &&\n !isSuccessResponse(response, contractEndpoint));\n};\nconst isUnknownResponse = (response, contractEndpoint) => {\n return (isResponse(response) &&\n !Object.keys(contractEndpoint.responses).includes(response.status.toString()));\n};\nconst isUnknownSuccessResponse = (response, contractEndpoint) => {\n return (isSuccessResponse(response) && isUnknownResponse(response, contractEndpoint));\n};\nconst isUnknownErrorResponse = (response, contractEndpoint) => {\n return (isErrorResponse(response) && isUnknownResponse(response, contractEndpoint));\n};\nconst exhaustiveGuard = (response) => {\n throw new Error(`Unreachable code: Response status is ${response.status}`);\n};\n\nexport { ContractNoBody, ContractPlainTypeRuntimeSymbol, ResponseValidationError, TsRestResponseError, UnknownStatusError, ZodErrorSchema, checkZodSchema, convertQueryParamsToUrlString, encodeQueryParams, encodeQueryParamsJson, evaluateFetchApiArgs, exhaustiveGuard, extractZodObjectShape, fetchApi, getCompleteUrl, getRouteQuery, getRouteResponses, initClient, initContract, initTsRest, insertParamsIntoPath, isAppRoute, isAppRouteMutation, isAppRouteNoBody, isAppRouteOtherResponse, isAppRouteQuery, isAppRouteResponse, isErrorResponse, isResponse, isSuccessResponse, isUnknownErrorResponse, isUnknownResponse, isUnknownSuccessResponse, isZodObject, isZodObjectStrict, isZodType, parseJsonQueryObject, tsRestFetchApi, validateResponse, zodErrorResponse, zodMerge };\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["APIError","Error","statusCode","error","details","constructor","args","super","message","this","name","is","schema","safeParse","success","unknown","z","object","string","number","int","optional","Permissions","Profile","ViewCurrent","Update","Beneficiary","View","List","Create","Delete","Payment","Payout","Approve","Transfer","Wallet","ViewBalance","ViewStatement","Role","ViewRoles","ViewRole","TeamManagement","ViewMembers","ViewMember","CreateMember","UpdateMember","ArchiveMember","UnArchiveMember","ResetPassword","PermissionError","requiredPermissions","join","permissionSchema","union","enum","Object","values","literal","nullish","array","isZodObjectStrict","obj","passthrough","issues","path","code","nativeEnum","ZodIssueCode","catchall","any","ContractNoBody","Symbol","isAppRoute","recursivelyApplyOptions","router","options","fromEntries","entries","map","key","value","_a","_b","_c","objectA","objectB","pathPrefix","headers","baseHeaders","merge","assign","strictStatusCodes","validateResponseOnClient","responses","commonResponses","metadata","ContractPlainTypeRuntimeSymbol","initContract","endpoints","query","mutation","response","body","type","otherResponse","contentType","noBody","encodeQueryParamsJson","filter","undefined","encodedValue","includes","trim","isNaN","Number","JSON","stringify","encodeURIComponent","encodeQueryParams","keys","flatMap","tokeniseValue","Array","isArray","v","idx","Date","toISOString","k","UnknownStatusError","knownResponseStatuses","status","tsRestFetchApi","async","route","method","validateResponse","fetchOptions","result","fetch","get","json","responseSchema","parse","text","blob","createFormData","formData","FormData","appendToFormData","File","append","forEach","item","normalizeHeaders","toLowerCase","getCompleteUrl","baseUrl","params","jsonQuery","pathParams","replace","matched","p","startsWith","insertParamsIntoPath","queryComponent","queryString","length","convertQueryParamsToUrlString","getRouteQuery","clientArgs","inputArgs","fetchApiArgs","extraHeaders","overrideClientOptions","cache","next","extraInputArgs","overriddenClientArgs","evaluateFetchApiArgs","apiFetcher","api","valueOrFunction","combinedHeaders","fetcherArgs","rawBody","rawQuery","credentials","signal","URLSearchParams","fetchApi","throwOnUnknownStatus","toString","initClient","subRouter","globalTokenGetter","BaseRepository","contract","endpoint","root","token","getToken","client","clientConfig","uuidv4","setToken","getCurrentToken","handleResponse","successStatusCode","parsedResponse","default","record","data","FilterOperator","SortDirection","QUERY_BUILDER_TYPE","QueryBuilder","filters","sort","groupBy","count","page","limit","addFilter","criteria","where","field","operator","EQUALS","whereNot","NOT_EQUALS","whereLike","LIKE","whereLikeLower","LIKE_LOWER","whereContains","whereStartsWith","whereEndsWith","whereIn","IN","whereNull","IS_NULL","whereNotNull","IS_NOT_NULL","whereGreaterThan","GREATER_THAN","whereGreaterThanOrEqual","GREATER_THAN_OR_EQUAL","whereLessThan","LESS_THAN","whereLessThanOrEqual","LESS_THAN_OR_EQUAL","whereBetween","min","max","whereDateBetween","startDate","endDate","formattedStart","formattedEnd","addSort","orderBy","direction","ASC","orderByAsc","orderByDesc","DESC","paginate","relations","relationsArray","fields","fieldsArray","expression","countAs","alias","build","rangeStart","rangeEnd","ascFields","descFields","push","eager","clone","ClonedBuilder","create","PaginationParamsSchema","coerce","PaginationSchema","total","totalPages","hasNext","boolean","hasPrev","Pagination","Math","ceil","offset","isFirstPage","isLastPage","nextPage","prevPage","toJSON","ProfileDTOSchemas","profileDTOSchema","id","firstName","lastName","displayName","phone","accountNo","email","autoApprove","ProfileJSONSchema","nullable","version","_id","_firstName","_lastName","_displayName","_phone","_accountNo","_email","_autoApprove","getName","validate","console","from","maybeProfile","toJSONString","fromJSON","rawData","validationResult","flatten","isProfileJSON","LogInSchemas","loginDTO","profileId","identity","roleId","isActive","isArchived","resetPassword","createdAt","datetime","updatedAt","access","LogInJSONSchema","LogIn","_profileId","_name","_identity","_type","_roleId","_isActive","_isArchived","_resetPassword","_createdAt","_updatedAt","_access","dto","validated","isLogInJSON","RoleJSONSchema","description","permissions","Set","hasPermission","permission","has","isRoleJSON","CompanyMembershipJSONSchema","companyProfile","role","CompanyMembership","_companyProfile","_role","profile","isCompanyMembershipJSON","UserJSONSchema","logIn","User","_logIn","_membership","_token","_permissionMap","membership","can","canAny","some","canAll","every","canManageTeam","canViewRoles","companyMembership","isUserJSON","authContract","password","currentPassword","newPassword","identityContract","getUserCredentials","IdentityRepository","getIdentity","passwordSchema","regex","refine","pattern","test","roleSchema","teamMemberSchema","TeamManagementDTOSchemas","teamMember","teamMemberQueryParams","createTeamMemberRequest","updateTeamMemberRequest","resetPasswordRequest","sendNotification","createTeamMemberResponse","teamManagementContract","getTeamMembers","summary","getTeamMember","createTeamMember","errors","updateTeamMember","archiveTeamMember","unArchiveTeamMember","getRoles","getRole","TeamMemberJSONSchema","TeamMember","_","fromJson","jsonString","parsed","createMany","dataArray","Boolean","isAccountActive","isAccountArchived","needsPasswordReset","getAccountStatus","label","color","getRoleName","getCreatedDate","toLocaleDateString","getLastUpdateInfo","diffMs","getTime","diffDays","floor","roleData","isTeamMemberJSON","fromJSONArray","jsonArray","member","warn","toJSONArray","members","TeamMemberRepository","input","resetTeamMemberPassword","getAllTeamMembers","getAllRoles","BeneficiaryType","beneficiaryTypeSchema","beneficiaryInputSchema","channel","BeneficiaryDTOSchemas","beneficiaryDTO","beneficiaryInputDTO","beneficiaryType","MobileBeneficiaryJSONSchema","phoneNumber","mnoId","BankBeneficiaryJSONSchema","accName","swiftCode","countryCode","accNo","BeneficiaryJSONSchema","discriminatedUnion","BeneficiaryError","context","BaseBeneficiary","isMobile","Mobile","isBank","Bank","accountName","MobileBeneficiaryInfo","resolved","resolveMnoId","checkInputs","isValid","operation","e164Format","MobileMoneyProviderHelpers","requiresExplicitProvider","detectProviderByPhoneNumber","validateProviderForPhoneNumber","warnings","pickMnoIdFromDTO","isProviderSupported","detected","fromBeneficiaryDTO","info","raw","PhoneNumber","fromPayoutDTO","CountryHelpers","isISO2Code","msisdn","defaultCountry","payeeName","o","getValidationDetails","accountNumber","getWithFormat","PhoneNumberFormat","E164","accountNameLabel","accountNumberLabel","channelLabel","channelId","channelName","provider","findById","mobileMoneyServiceName","mobileMoneyProvider","fromJSONString","s","isJSON","BankBeneficiaryInfo","bank","BankHelpers","validateAccountName","validateAccountNumber","getCountryFromSwiftCode","fromBIC","parts","split","bic","shortName","BeneficiaryInfo","_info","_infoComputed","accNoLabel","accNameLabel","createSafe","canConstruct","isBeneficiaryJSON","MobileInputHandler","canHandle","createInput","BankInputHandler","ValidatedBeneficiaryInputFactory","handlers","resolve","handler","find","h","createBeneficiary","editBeneficiary","getBeneficiaries","getByID","deleteBeneficiary","PayoutChannel","PayoutStatus","PayoutApprovalStatus","AuthorizerSchema","PayoutStatusSchema","PayoutApprovalStatusSchema","BasePayoutSchema","amount","notes","PayoutInputDTOSchema","extend","PayoutDTOSchema","currencyCode","CurrencyHelpers","isCode","statusMessage","partnerReference","date","actionedAt","approvalStatus","createdBy","actionedBy","PayoutFiltersSchema","positive","sortBy","sortOrder","minAmount","maxAmount","search","PayoutDTOSchemas","PayoutDTO","PayoutInputDTO","PayoutAuthorizer","PayoutFilters","PayoutURLQueryParams","transform","val","parseInt","parseFloat","PayoutJSONSchema","Amount","REJECTED","FAILED","PAID","PENDING","beneficiaryInfo","contactInfo","payoutDTO","isPayoutJSON","payout","payouts","ECOBANK_PREFIX","NARR_V2_PREFIX","BANK_NARR_PREFIX","LEGACY_BANK_NARR_PREFIX","MOBILE_NARR_PREFIX","LEGACY_MOBILE_NARR_PREFIX","NarrationJSONSchema","Narration","mediumText","substring","shortText","generateDefaultPayoutNarration","generateMobilePayoutNarrationV2","generateBankPayoutNarrationV2","toUpperCase","getBeneficiaryDetails","bankResult","getBankBeneficiaryDetails","mobileResult","getMobileBeneficiaryDetails","narr","potentialSwift","slice","capitalizeFirstLetter","country","validateSwiftCode","banks","BankRegistry","getInstance","searchBanks","potentialPhone","username","names","n","maybeNarration","toJson","isNarrationJSON","str","charAt","PAYOUT_CONSTANTS","SUPPORTED_COUNTRY_CODES","ERROR_MESSAGES","INVALID_PHONE_NUMBER","INELIGIBLE_FOR_PAYOUT","MOBILE_NUMBER_MNO_MISMATCH","UNSUPPORTED_COUNTRY_BANK","UNSUPPORTED_COUNTRY_MOBILE","NO_HANDLER_FOUND","PayoutInputUtils","processNotes","trimmedNotes","isPhoneEligibleForPayout","numberType","getNumberType","PhoneNumberType","MOBILE","FIXED_LINE_OR_MOBILE","PayoutChannelCodeFactory","forBank","wallet","forMobile","operatorInfo","MobileMoneyPayoutHandler","receiver","Country","fromCode","processedNotes","INTERNATIONAL_NUMERIC","numericValue","BankTransferPayoutHandler","BANK","PayoutInputFactory","getPayoutInput","createPayoutChannelCode","bind","mobile","getPayouts","results","getPayoutsByApprovalStatus","postPayout","approve","action","getPayout","PayoutQuery","fromFilters","applyFilters","fromUrlParams","fromSearchParams","searchParams","paramObj","fromRequest","request","URL","url","isStringRecord","whereStatus","whereApprovalStatus","whereChannel","wherePending","whereApproved","APPROVED","whereRejected","wherePaid","whereFailed","whereAmountBetween","wherePayee","whereMsisdn","whereProfileId","wherePartnerReference","whereSearch","searchTerm","whereCurrencyCode","hasMin","hasMax","toFilters","extracted","extractFilterValues","extractSortField","extractSortOrder","isValidStatus","isValidApprovalStatus","toUrlParams","String","toSearchParams","toQueryString","withPagination","withSorting","withDateRange","withStatus","withApprovalStatus","withChannel","includeDefaultRelations","with","resetPage","hasFilters","describeFilters","current","formatDate","formatSortField","isFinite","describeFiltersAsText","makeOptional","WalletDTOSchemas","walletDTO","walletQuery","ISO2CountryCodesSet","currency","Currency","CurrencyCodesSet","statementEntry","debitOrCredit","tranRefNo","narration","txnDate","errorMap","valueDate","amountCredited","amountDebited","balance","WalletJSONSchema","_accountName","_channel","_countryCode","_currencyCode","createdAtDate","updatedAtDate","maybeWallet","isWalletJSON","WalletStatementEntryJSONSchema","AmountJSONSchema","WalletStatementEntry","_debitOrCredit","_tranRefNo","_narration","_txnDate","_valueDate","_amountCredited","_amountDebited","_balance","narrationInstance","validationData","restData","maybeEntry","equals","other","isPositive","creditedAmount","debitedAmount","balanceAmount","isWalletStatementEntryJSON","entry","fromJsonArray","toJsonArray","getWallets","getBalance","availableBalance","getStatement","WalletQuery","whereId","whereAccountNo","whereAccountName","whereCountryCode","withId","withProfileId","withAccountNo","withCountryCode","withCurrencyCode","getActiveFilters","WalletUtils","getUniqueCountries","wallets","uniqueCountries","add","getWalletsByCountry","profileContract","getCurrentProfile","identityRepo","loginData","profileData","teamMemberRepo","user","updatePassword","getAccessList","edit","remove","getAll","payoutQuery","pagination","getAllPayouts","log","getPayoutsFromRequest","req","pay","limits","TemboCoverage","getTransactionLimits","TransactionDirection","PAYOUT","channelType","ChannelType","MOBILE_MONEY","lessThan","greaterThan","reject","exists","props","rawWallets","walletData","now","monthStart","getFullYear","getMonth","monthEnd","dateRange","range","targetWallet","targetAccountNo","requestBody","reduce","acc","entryData","itemSchema","e","stack","getter"],"mappings":"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","x_google_ignoreList":[3]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./lib/error/index.js";
|
|
2
|
+
export * from "./lib/api/index.js";
|
|
3
|
+
export * from "./lib/query/index.js";
|
|
4
|
+
export * from "./modules/auth/index.js";
|
|
5
|
+
export * from "./modules/beneficiary/index.js";
|
|
6
|
+
export * from "./modules/payout/index.js";
|
|
7
|
+
export * from "./modules/wallet/index.js";
|
|
8
|
+
export * from "./modules/team-member/index.js";
|
|
9
|
+
export * from "./modules/login/index.js";
|
|
10
|
+
export * from "./modules/profile/index.js";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e,{z as t}from"zod";import{v4 as r}from"uuid";import{MobileMoneyProviderHelpers as n,PhoneNumber as a,CountryHelpers as o,PhoneNumberFormat as s,BankHelpers as i,Bank as c,CurrencyHelpers as u,Amount as d,BankRegistry as l,PhoneNumberType as m,Country as h,TemboCoverage as p,ChannelType as f,TransactionDirection as y,Currency as g,CurrencyCodesSet as b,ISO2CountryCodesSet as N,AmountJSONSchema as v}from"@temboplus/frontend-core";class w extends Error{statusCode;error;details;constructor(e){super(e.message),this.name="ApiError",this.statusCode=e.statusCode,this.error&&(this.error=e.error),e.details&&(this.details=e.details)}static is(e){return w.schema.safeParse(e).success}static unknown(e){return new w({message:e??"An unknown error occurred",statusCode:502})}static get schema(){return t.object({message:t.string(),statusCode:t.number().int(),error:t.string().optional(),details:t.object({}).optional()})}}const S={Profile:{ViewCurrent:"profile.getCurrent",Update:"profile.update"},Beneficiary:{View:"contact.findById",List:"contact.findAll",Create:"contact.create",Update:"contact.update",Delete:"contact.delete"},Payment:{View:"payment.findById",List:"payment.findAll",Create:"payment.create"},Payout:{View:"payout.findById",List:"payout.findAll",Create:"payout.create",Approve:"payout.approve"},Transfer:{View:"transfer.findById",List:"transfer.findAll",Create:"transfer.create",Approve:"transfer.approve"},Wallet:{ViewBalance:"wallet.getBalance",ViewStatement:"wallet.getStatement"},Role:{ViewRoles:"role.findAll",ViewRole:"role.findById"},TeamManagement:{ViewMembers:"login.findAll",ViewMember:"login.findById",CreateMember:"login.create",UpdateMember:"login.update",ArchiveMember:"login.archive",UnArchiveMember:"login.unarchive",ResetPassword:"login.resetPassword"}};class A extends Error{requiredPermissions;constructor(e){super(e.message??`Missing required permissions: ${e.requiredPermissions.join(", ")}`),this.name="PermissionError",this.requiredPermissions=e.requiredPermissions}static is(e){const r=t.union([t.enum(Object.values(S.Profile)),t.enum(Object.values(S.Beneficiary)),t.enum(Object.values(S.Payment)),t.enum(Object.values(S.Payout)),t.enum(Object.values(S.Transfer)),t.enum(Object.values(S.Wallet))]);return t.object({name:t.literal("PermissionError").nullish(),message:t.string(),requiredPermissions:t.array(r)}).safeParse(e).success}}function O(e){const t=e;return t&&"string"==typeof t.stack&&"string"==typeof t.message}const I=e=>"function"==typeof(null==e?void 0:e.passthrough);t.object({name:t.literal("ZodError"),issues:t.array(t.object({path:t.array(t.union([t.string(),t.number()])),message:t.string().optional(),code:t.nativeEnum(t.ZodIssueCode)}).catchall(t.any()))});const C=Symbol("ContractNoBody"),_=e=>"method"in e&&"path"in e,P=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,r])=>{var n,a,o,s,i;return _(r)?[e,{...r,path:(null==t?void 0:t.pathPrefix)?t.pathPrefix+r.path:r.path,headers:(s=null==t?void 0:t.baseHeaders,i=r.headers,I(s)?I(i)?s.merge(i):s:I(i)?i:Object.assign({},s,i)),strictStatusCodes:null!==(n=r.strictStatusCodes)&&void 0!==n?n:null==t?void 0:t.strictStatusCodes,validateResponseOnClient:null!==(a=r.validateResponseOnClient)&&void 0!==a?a:null==t?void 0:t.validateResponseOnClient,responses:{...null==t?void 0:t.commonResponses,...r.responses},metadata:(null==t?void 0:t.metadata)?{...null==t?void 0:t.metadata,...null!==(o=r.metadata)&&void 0!==o?o:{}}:r.metadata}]:[e,P(r,t)]})),E=Symbol("ContractPlainType"),D=()=>({router:(e,t)=>P(e,t),query:e=>e,mutation:e=>e,responses:e=>e,response:()=>E,body:()=>E,type:()=>E,otherResponse:({contentType:e,body:t})=>({contentType:e,body:t}),noBody:()=>C}),T=e=>e?Object.entries(e).filter(([,e])=>void 0!==e).map(([e,t])=>{let r;return r="string"==typeof t&&!["true","false","null"].includes(t.trim())&&isNaN(Number(t))?t:JSON.stringify(t),`${encodeURIComponent(e)}=${encodeURIComponent(r)}`}).join("&"):"",R=e=>e?Object.keys(e).flatMap(t=>J(t,e[t])).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&"):"",J=(e,t)=>Array.isArray(t)?t.flatMap((t,r)=>J(`${e}[${r}]`,t)):t instanceof Date?[[`${e}`,t.toISOString()]]:null===t?[[`${e}`,""]]:void 0===t?[]:"object"==typeof t?Object.keys(t).flatMap(r=>J(`${e}[${r}]`,t[r])):[[`${e}`,`${t}`]];class B extends Error{constructor(e,t){super(`Server returned unexpected response. Expected one of: ${t.join(",")} got: ${e.status}`),this.response=e}}const j=async({route:e,path:t,method:r,headers:n,body:a,validateResponse:o,fetchOptions:s})=>{const i=await fetch(t,{...s,method:r,headers:n,body:a}),c=i.headers.get("content-type");if((null==c?void 0:c.includes("application/"))&&(null==c?void 0:c.includes("json"))){const t={status:i.status,body:await i.json(),headers:i.headers},r=e.responses[t.status];return(null!=o?o:e.validateResponseOnClient)&&"function"==typeof(null==(u=r)?void 0:u.safeParse)?{...t,body:r.parse(t.body)}:t}var u;return(null==c?void 0:c.includes("text/"))?{status:i.status,body:await i.text(),headers:i.headers}:{status:i.status,body:await i.blob(),headers:i.headers}},M=e=>{const t=new FormData,r=(e,r)=>{r instanceof File?t.append(e,r):t.append(e,JSON.stringify(r))};return Object.entries(e).forEach(([e,t])=>{if(Array.isArray(t))for(const n of t)r(e,n);else r(e,t)}),t},k=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e.toLowerCase(),t])),x=(e,t,r,n,a)=>{const o=(({path:e,params:t})=>{const r=t;return e.replace(/\/?:([^/?]+)\??/g,(e,t)=>r[t]?`${e.startsWith("/")?"/":""}${r[t]}`:"")})({path:n.path,params:r}),s=((e,t=!1)=>{const r=t?T(e):R(e);return(null==r?void 0:r.length)>0?"?"+r:""})(e,a);return`${t}${o}${s}`},F=(e,t)=>{const r=Object.keys(e.responses);return async n=>{const a=((e,t,r)=>{const{query:n,params:a,body:o,headers:s,extraHeaders:i,overrideClientOptions:c,fetchOptions:u,cache:d,next:l,...m}=r||{},h={...t,...c};return{path:x(n,h.baseUrl,a,e,!!h.jsonQuery),clientArgs:h,route:e,body:o,query:n,extraInputArgs:m,fetchOptions:{...d&&{cache:d},...l&&{next:l},...u},headers:{...i,...s}}})(e,t,n),o=await(e=>{const{path:t,clientArgs:r,route:n,body:a,query:o,extraInputArgs:s,headers:i,fetchOptions:c}=e,u=r.api||j,d=r.baseHeaders&&Object.fromEntries(Object.entries(r.baseHeaders).map(([t,r])=>"function"==typeof r?[t,r(e)]:[t,r])),l={...d&&k(d),...k(i)};Object.keys(l).forEach(e=>{void 0===l[e]&&delete l[e]});let m={route:n,path:t,method:n.method,headers:l,body:void 0,rawBody:a,rawQuery:o,contentType:void 0,validateResponse:r.validateResponse,fetchOptions:{...r.credentials&&{credentials:r.credentials},...c},...(null==c?void 0:c.signal)&&{signal:c.signal},...(null==c?void 0:c.cache)&&{cache:c.cache},...c&&"next"in c&&!!(null==c?void 0:c.next)&&{next:c.next}};return"GET"!==n.method&&("contentType"in n&&"multipart/form-data"===n.contentType?m={...m,contentType:"multipart/form-data",body:a instanceof FormData?a:M(a)}:"contentType"in n&&"application/x-www-form-urlencoded"===n.contentType?m={...m,contentType:"application/x-www-form-urlencoded",headers:{"content-type":"application/x-www-form-urlencoded",...m.headers},body:"string"==typeof a?a:new URLSearchParams(a)}:null!=a&&(m={...m,contentType:"application/json",headers:{"content-type":"application/json",...m.headers},body:JSON.stringify(a)})),u({...m,...s})})(a);if(!t.throwOnUnknownStatus)return o;if(r.includes(o.status.toString()))return o;throw new B(o,r)}},L=(e,t)=>Object.fromEntries(Object.entries(e).map(([e,r])=>_(r)?[e,F(r,t)]:[e,L(r,t)]));let U;const $=e=>{U=e};class q{contract;endpoint;root;token;constructor(e,t,r){this.contract=t,this.endpoint=e,this.root=r?.root,this.token=r?.token}getToken(){if(this.token&&this.token.trim().length>0)return this.token;if(U){const e=U();if(e&&e.trim().length>0)return e}return""}get client(){const e={baseUrl:this.root?`${this.root}/${this.endpoint}`:`https://api.afloat.money/v1/${this.endpoint}`,baseHeaders:{token:this.getToken(),"x-request-id":r()}};return L(this.contract,e)}setToken(e){this.token=e}getCurrentToken(){return this.token}handleResponse(t,r){if(t.status===r)return t.body;if(400===t.status){const r=e.object({statusCode:e.number(),message:e.string(),error:e.string(),details:e.record(e.string()).optional()}).safeParse(t.body);if(r.success)throw new w(r.data);throw new w({message:"Bad request",statusCode:400,error:"BAD_REQUEST"})}if(401===t.status)throw new w({message:"You are not authenticated to perform this action. Please login again",statusCode:401,error:"UNAUTHORIZED"});if(403===t.status)throw new w({message:"You are not authorized to perform this action.",statusCode:403,error:"FORBIDDEN"});if(404===t.status)throw new w({message:"The requested resource was not found.",statusCode:404,error:"NOT_FOUND"});throw new w({message:"We encountered an error trying to process your request. Please try again later",statusCode:520,error:"UNKNOWN_ERROR"})}}var V,W;!function(e){e.EQUALS="eq",e.NOT_EQUALS="neq",e.LESS_THAN="lt",e.LESS_THAN_OR_EQUAL="lte",e.GREATER_THAN="gt",e.GREATER_THAN_OR_EQUAL="gte",e.LIKE="like",e.LIKE_LOWER="likeLower",e.IS_NULL="isNull",e.IS_NOT_NULL="isNotNull",e.IN="in"}(V||(V={})),function(e){e.ASC="asc",e.DESC="desc"}(W||(W={}));const G=Symbol("query-builder-type");class H{options={filters:[],sort:[],includes:[],groupBy:[],join:[],count:"*"};constructor(e={}){this.options={filters:e.filters||[],sort:e.sort||[],includes:e.includes||[],groupBy:e.groupBy||[],join:e.join||[],page:e.page,limit:e.limit}}[G]="query-builder";static is(e){return null!==e&&"object"==typeof e&&G in e&&"query-builder"===e[G]}addFilter(e){return this.options.filters=[...this.options.filters||[],e],this}where(e,t){return this.addFilter({field:e,operator:V.EQUALS,value:t})}whereNot(e,t){return this.addFilter({field:e,operator:V.NOT_EQUALS,value:t})}whereLike(e,t){return this.addFilter({field:e,operator:V.LIKE,value:t})}whereLikeLower(e,t){return this.addFilter({field:e,operator:V.LIKE_LOWER,value:t})}whereContains(e,t){return this.addFilter({field:e,operator:V.LIKE_LOWER,value:`%${t}%`})}whereStartsWith(e,t){return this.addFilter({field:e,operator:V.LIKE_LOWER,value:`${t}%`})}whereEndsWith(e,t){return this.addFilter({field:e,operator:V.LIKE_LOWER,value:`%${t}`})}whereIn(e,t){return this.addFilter({field:e,operator:V.IN,value:t})}whereNull(e){return this.addFilter({field:e,operator:V.IS_NULL})}whereNotNull(e){return this.addFilter({field:e,operator:V.IS_NOT_NULL})}whereGreaterThan(e,t){return this.addFilter({field:e,operator:V.GREATER_THAN,value:t})}whereGreaterThanOrEqual(e,t){return this.addFilter({field:e,operator:V.GREATER_THAN_OR_EQUAL,value:t})}whereLessThan(e,t){return this.addFilter({field:e,operator:V.LESS_THAN,value:t})}whereLessThanOrEqual(e,t){return this.addFilter({field:e,operator:V.LESS_THAN_OR_EQUAL,value:t})}whereBetween(e,t,r){return this.whereGreaterThanOrEqual(e,t).whereLessThanOrEqual(e,r)}whereDateBetween(e,t){if(e){const t=e instanceof Date?e.toISOString():e;this.whereGreaterThanOrEqual("createdAt",t)}if(t){const e=t instanceof Date?t.toISOString():t;this.whereLessThanOrEqual("createdAt",e)}return this}addSort(e){return this.options.sort=[...this.options.sort||[],e],this}orderBy(e,t=W.ASC){return this.addSort({field:e,direction:t})}orderByAsc(e){return this.orderBy(e,W.ASC)}orderByDesc(e){return this.orderBy(e,W.DESC)}paginate(e,t){return this.options.page=e,this.options.limit=t,this}with(e){const t=Array.isArray(e)?e:[e];return this.options.includes=[...this.options.includes||[],...t],this}join(e){const t=Array.isArray(e)?e:[e];return this.options.join=[...this.options.join||[],...t],this}groupBy(e){const t=Array.isArray(e)?e:[e];return this.options.groupBy=[...this.options.groupBy||[],...t],this}count(e="*"){return this.options.count=e,this}countAs(e,t){return this.options.count=`${e} as ${t}`,this}build(){const e={};if(void 0!==this.options.page&&void 0!==this.options.limit){const t=(this.options.page-1)*this.options.limit,r=t+this.options.limit-1;e.rangeStart=t,e.rangeEnd=r}if(this.options.filters&&this.options.filters.length>0)for(const t of this.options.filters)switch(t.operator){case V.IS_NULL:e[`${t.field}:isNull`]=1;break;case V.IS_NOT_NULL:e[`${t.field}:notNull`]=1;break;case V.IN:e[`${t.field}:in`]=Array.isArray(t.value)?t.value.join(","):t.value;break;case V.LIKE:e[`${t.field}:like`]=t.value;break;case V.LIKE_LOWER:e[`${t.field}:likeLower`]=t.value;break;case V.GREATER_THAN_OR_EQUAL:e[`${t.field}:gte`]=t.value;break;case V.LESS_THAN_OR_EQUAL:e[`${t.field}:lte`]=t.value;break;default:e[`${t.field}:${t.operator}`]=t.value}if(this.options.sort&&this.options.sort.length>0){const t=[],r=[];for(const e of this.options.sort)e.direction===W.ASC?t.push(e.field):r.push(e.field);t.length>0&&(e.orderBy=t.join(",")),r.length>0&&(e.orderByDesc=r.join(","))}return this.options.includes&&this.options.includes.length>0&&(1===this.options.includes.length?e.eager=this.options.includes[0]:e.eager=`[${this.options.includes.join(",")}]`),this.options.join&&this.options.join.length>0&&(e.join=this.options.join.join(",")),this.options.groupBy&&this.options.groupBy.length>0&&(e.groupBy=this.options.groupBy.join(",")),this.options.count&&(e.count=this.options.count),e}clone(){return new(0,this.constructor)({...this.options,filters:this.options.filters?[...this.options.filters]:[],sort:this.options.sort?[...this.options.sort]:[],includes:this.options.includes?[...this.options.includes]:[],groupBy:this.options.groupBy?[...this.options.groupBy]:[],join:this.options.join?[...this.options.join]:[]})}static create(e){return new H(e)}}const Q=t.object({page:t.coerce.number().int().min(1).default(1),limit:t.coerce.number().int().min(1).max(100).default(10)}),Z=t.object({page:t.number().int().min(1),limit:t.number().int().min(1),total:t.number().int().min(0),totalPages:t.number().int().min(0),hasNext:t.boolean(),hasPrev:t.boolean()});function K(e){return t.object({results:t.array(e),pagination:Z})}class Y{page;limit;total;constructor(e,t,r){if(this.page=e,this.limit=t,this.total=r,e<1)throw new Error("Page must be >= 1");if(t<1)throw new Error("Limit must be >= 1");if(r<0)throw new Error("Total must be >= 0")}get totalPages(){return Math.ceil(this.total/this.limit)}get hasNext(){return this.page<this.totalPages}get hasPrev(){return this.page>1}get offset(){return(this.page-1)*this.limit}get isFirstPage(){return 1===this.page}get isLastPage(){return this.page===this.totalPages}nextPage(){return this.hasNext?new Y(this.page+1,this.limit,this.total):null}prevPage(){return this.hasPrev?new Y(this.page-1,this.limit,this.total):null}toJSON(){return{page:this.page,limit:this.limit,total:this.total,totalPages:this.totalPages,hasNext:this.hasNext,hasPrev:this.hasPrev}}}function z(e,t,r,n){return{results:e,pagination:new Y(t,r,n)}}function X(e=1,t=10){return{results:[],pagination:new Y(e,t,0)}}const ee={profileDTOSchema:t.object({id:t.string(),firstName:t.string().nullish(),lastName:t.string().nullish(),displayName:t.string(),phone:t.string().nullish(),accountNo:t.string().min(1),email:t.string().email().nullish(),autoApprove:t.boolean().nullish()})},te=t.object({id:t.string(),firstName:t.string().nullable().optional(),lastName:t.string().nullable().optional(),displayName:t.string(),phone:t.string().nullable().optional(),accountNo:t.string(),email:t.string().nullable().optional(),autoApprove:t.boolean().nullable().optional(),version:t.string().optional().default("1.0")});class re{_id;_firstName;_lastName;_displayName;_phone;_accountNo;_email;_autoApprove;static get schema(){return ee.profileDTOSchema}constructor(e){this._id=e.id,this._firstName=e.firstName,this._lastName=e.lastName,this._displayName=e.displayName,this._phone=e.phone,this._accountNo=e.accountNo,this._email=e.email,this._autoApprove=e.autoApprove}static create(e){return new re({id:e.id,firstName:e.firstName,lastName:e.lastName,displayName:e.displayName,phone:e.phone,accountNo:e.accountNo,email:e.email,autoApprove:e.autoApprove})}get id(){return this._id}get firstName(){return this._firstName}get lastName(){return this._lastName}get displayName(){return this._displayName}get phone(){return this._phone}get accountNo(){return this._accountNo}get email(){return this._email}get autoApprove(){return this._autoApprove}getName(){if(this._displayName&&""!==this._displayName.trim())return this._displayName;return`${this._firstName??""} ${this._lastName??""}`.trim()}validate(){try{return re.schema.safeParse(this.toJSON()).success}catch(e){return console.error("Profile validation error:",e),!1}}static from(e){try{return e?"object"!=typeof e?void console.error("Data is not an object"):e.id&&e.accountNo&&e.displayName?re.create({id:e.id,firstName:e.firstName,lastName:e.lastName,displayName:e.displayName,phone:e.phone,accountNo:e.accountNo,email:e.email,autoApprove:e.autoApprove}):void console.error("Missing required profile fields"):void console.error("Data is null or undefined")}catch(e){return void console.error("Error creating profile from object:",e)}}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;if("string"!=typeof t._id||"string"!=typeof t._displayName||"string"!=typeof t._accountNo)return!1;if(null!==t._firstName&&void 0!==t._firstName&&"string"!=typeof t._firstName)return!1;if(null!==t._lastName&&void 0!==t._lastName&&"string"!=typeof t._lastName)return!1;if(null!==t._email&&void 0!==t._email&&"string"!=typeof t._email)return!1;const r=t._phone;if(null!=r&&"string"!=typeof r)return!1;const n=t._autoApprove;return null==n||"boolean"==typeof n}toJSON(){return{id:this._id,firstName:this._firstName,lastName:this._lastName,displayName:this._displayName,phone:this._phone,accountNo:this._accountNo,email:this._email,autoApprove:this._autoApprove,version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=te.safeParse(t);if(!r.success)return void console.error("Invalid ProfileJSON:",r.error.flatten());const n=r.data;return re.from(n)}catch(e){return void console.error("Error parsing ProfileJSON:",e)}}static isProfileJSON(e){return te.safeParse(e).success}}const ne={loginDTO:e.object({id:e.string().min(1,"ID is required"),profileId:e.string().min(1,"Profile ID is required"),name:e.string().min(1,"Name is required"),identity:e.string().email("Identity must be a valid email address"),type:e.string().min(1,"Type is required"),roleId:e.string().min(1,"Role ID is required"),isActive:e.boolean(),isArchived:e.boolean(),resetPassword:e.boolean(),createdAt:e.string().datetime("Invalid creation timestamp"),updatedAt:e.string().datetime("Invalid update timestamp"),access:e.array(e.string())})},ae=t.object({id:t.string(),profileId:t.string(),name:t.string(),identity:t.string(),type:t.string(),roleId:t.string(),isActive:t.boolean(),isArchived:t.boolean(),resetPassword:t.boolean(),createdAt:t.string(),updatedAt:t.string(),access:t.array(t.string()),version:t.string().optional().default("1.0")});class oe{_id;_profileId;_name;_identity;_type;_roleId;_isActive;_isArchived;_resetPassword;_createdAt;_updatedAt;_access;constructor(e,t,r,n,a,o,s,i,c,u,d,l){this._id=e,this._profileId=t,this._name=r,this._identity=n,this._type=a,this._roleId=o,this._isActive=s,this._isArchived=i,this._resetPassword=c,this._createdAt=u,this._updatedAt=d,this._access=l}static from(e){const t=ne.loginDTO.parse(e);return new oe(t.id,t.profileId,t.name,t.identity,t.type,t.roleId,t.isActive,t.isArchived,t.resetPassword,new Date(t.createdAt),new Date(t.updatedAt),t.access)}get id(){return this._id}get profileId(){return this._profileId}get name(){return this._name}get identity(){return this._identity}get type(){return this._type}get roleId(){return this._roleId}get isActive(){return this._isActive}get isArchived(){return this._isArchived}get resetPassword(){return this._resetPassword}get createdAt(){return this._createdAt}get updatedAt(){return this._updatedAt}get access(){return this._access}toJSON(){return{id:this._id,profileId:this._profileId,name:this._name,identity:this._identity,type:this._type,roleId:this._roleId,isActive:this._isActive,isArchived:this._isArchived,resetPassword:this._resetPassword,createdAt:this._createdAt.toISOString(),updatedAt:this._updatedAt.toISOString(),access:[...this._access],version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ae.safeParse(t);if(!r.success)return void console.error("Invalid LogInJSON:",r.error.flatten());const n=r.data;return oe.from({id:n.id,profileId:n.profileId,name:n.name,identity:n.identity,type:n.type,roleId:n.roleId,isActive:n.isActive,isArchived:n.isArchived,resetPassword:n.resetPassword,createdAt:n.createdAt,updatedAt:n.updatedAt,access:n.access})}catch(e){return void console.error("Error parsing LogInJSON:",e)}}static isLogInJSON(e){return ae.safeParse(e).success}}const se=e.object({id:e.string(),name:e.string(),description:e.string().optional(),access:e.array(e.string()),createdAt:e.string(),updatedAt:e.string(),version:e.string().optional().default("1.0")});class ie{id;name;description;permissions;createdAt;updatedAt;constructor(e){this.id=e.id,this.name=e.name,this.description=e.description,this.permissions=new Set(e.access),this.createdAt=new Date(e.createdAt),this.updatedAt=new Date(e.updatedAt)}hasPermission(e){return this.permissions.has(e)}static from(e){try{if(!e?.id||!e?.name||!Array.isArray(e?.access))return;return new ie(e)}catch(e){return void console.error("Error creating Role:",e)}}toJSON(){return{id:this.id,name:this.name,description:this.description,access:Array.from(this.permissions),createdAt:this.createdAt.toISOString(),updatedAt:this.updatedAt.toISOString(),version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=se.safeParse(t);if(!r.success)return void console.error("Invalid RoleJSON:",r.error.flatten());const n=r.data;return ie.from({id:n.id,name:n.name,description:n.description,access:n.access,createdAt:n.createdAt,updatedAt:n.updatedAt})}catch(e){return void console.error("Error parsing RoleJSON:",e)}}static isRoleJSON(e){return se.safeParse(e).success}}const ce=e.object({companyProfile:te,role:se.optional(),version:e.string().optional().default("1.0")});class ue{_companyProfile;_role;constructor(e){this._companyProfile=e.companyProfile,this._role=e.role}static from(e){try{return re.is(e.companyProfile)?new ue(e):void console.error("Invalid company profile")}catch(e){return void console.error("Error creating CompanyMembership:",e)}}get companyProfile(){return this._companyProfile}get role(){return this._role}toJSON(){return{companyProfile:this._companyProfile.toJSON(),role:this._role?.toJSON(),version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ce.safeParse(t);if(!r.success)return void console.error("Invalid CompanyMembershipJSON:",r.error.flatten());const n=r.data,a=re.fromJSON(n.companyProfile),o=n.role?ie.fromJSON(n.role):void 0;return a?ue.from({companyProfile:a,role:o}):void console.error("Failed to reconstruct Profile from CompanyMembershipJSON")}catch(e){return void console.error("Error parsing CompanyMembershipJSON:",e)}}static isCompanyMembershipJSON(e){return ce.safeParse(e).success}}const de=e.object({logIn:ae,companyProfile:te,role:se.optional(),token:e.string().min(1),version:e.string().optional().default("1.0")});class le{_logIn;_membership;_token;_permissionMap;constructor(e){this._logIn=e.logIn,this._membership=e.membership,this._token=e.token,this._permissionMap={},this._logIn.access.forEach(e=>{this._permissionMap[e]=!0})}static from(e){try{if(!e.logIn||!e.companyProfile||!e.token)return void console.error("Missing required User fields");if("string"!=typeof e.token||""===e.token.trim())return void console.error("Invalid token");const t=ue.from({companyProfile:e.companyProfile,role:e.role});return t?new le({logIn:e.logIn,membership:t,token:e.token}):void console.error("Failed to create CompanyMembership")}catch(e){return void console.error("Error creating User:",e)}}get logIn(){return this._logIn}get membership(){return this._membership}get token(){return this._token}get id(){return this._logIn.id}get name(){return this._logIn.name}get identity(){return this._logIn.identity}get roleId(){return this._logIn.roleId}get resetPassword(){return this._logIn.resetPassword}get profile(){return this._membership.companyProfile}get role(){return this._membership.role}get access(){return this._logIn.access}can(e){return this._permissionMap[e]??!1}canAny(e){return e.some(e=>this.can(e))}canAll(e){return e.every(e=>this.can(e))}canManageTeam(){return this.can(S.TeamManagement.ViewMembers)}canViewRoles(){return this.can(S.Role.ViewRole)}toJSON(){return{logIn:this._logIn.toJSON(),companyProfile:this._membership.companyProfile.toJSON(),role:this._membership.role?.toJSON(),token:this._token,version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=de.safeParse(t);if(!r.success)return void console.error("Invalid UserJSON:",r.error.flatten());const n=r.data,a=oe.fromJSON(n.logIn),o=re.fromJSON(n.companyProfile),s=n.role?ie.fromJSON(n.role):void 0;if(!a||!o)return void console.error("Failed to reconstruct nested objects from UserJSON");if(!n.token||""===n.token.trim())return void console.error("Invalid token in UserJSON");const i=ue.from({companyProfile:o,role:s});return i?new le({logIn:a,membership:i,token:n.token}):void console.error("Failed to create CompanyMembership from UserJSON")}catch(e){return void console.error("Error parsing UserJSON:",e)}}static isUserJSON(e){return de.safeParse(e).success}}const me=D().router({logIn:{method:"POST",path:"/login",body:t.object({type:t.string().default("password"),identity:t.string().email(),password:t.string()}),responses:{201:t.object({profile:ee.profileDTOSchema,token:t.string(),access:t.array(t.string()),resetPassword:t.boolean()}),400:t.object({})}},access:{method:"GET",path:"/access",responses:{200:t.string().array()}},resetPassword:{method:"PUT",path:"/password",body:t.object({currentPassword:t.string(),newPassword:t.string()}),responses:{}}}),he=D().router({getUserCredentials:{method:"GET",path:"/me",responses:{200:ne.loginDTO}}});class pe extends q{constructor(e){super("login",he,e)}async getIdentity(){const e=await this.client.getUserCredentials();if(200===e.status)return e.body;throw new Error(`Failed to get user identity. Status: ${e.status}`)}}const fe=t.string().min(8,"Password must be at least 8 characters long").max(128,"Password must not exceed 128 characters").regex(/[A-Z]/,"Password must contain at least one uppercase letter").regex(/[a-z]/,"Password must contain at least one lowercase letter").regex(/[0-9]/,"Password must contain at least one number").regex(/[!@#$%^&*()_+\-=\[\]{}|;:,.<>?]/,"Password must contain at least one special character (!@#$%^&*()_+-=[]{}|;:,.<>?)").refine(e=>![/(.)\1{2,}/,/123456|654321|abcdef|qwerty|password|admin|user/i,/^[0-9]+$/,/^[a-zA-Z]+$/].some(t=>t.test(e)),"Password contains weak patterns. Avoid repeated characters, common words, or simple sequences").refine(e=>!/(?:abc|bcd|cde|def|efg|fgh|ghi|hij|ijk|jkl|klm|lmn|mno|nop|opq|pqr|qrs|rst|stu|tuv|uvw|vwx|wxy|xyz|012|123|234|345|456|567|678|789)/i.test(e),"Password should not contain sequential characters").refine(e=>!/(?:qwer|wert|erty|rtyu|tyui|yuio|uiop|asdf|sdfg|dfgh|fghj|ghjk|hjkl|zxcv|xcvb|cvbn|vbnm)/i.test(e),"Password should not contain keyboard patterns"),ye=t.object({id:t.string().min(1),name:t.string().min(1,"Role name is required"),description:t.string().optional(),access:t.array(t.string()),createdAt:t.string().datetime("Invalid creation timestamp"),updatedAt:t.string().datetime("Invalid update timestamp")}),ge=t.object({id:t.string().min(1),name:t.string().min(1,"Team member name is required"),identity:t.string().email("Invalid email address"),type:t.string().min(1,"Team member type is required"),profileId:t.string().min(1,"Profile ID is required"),roleId:t.string().min(1,"Role ID is required"),resetPassword:t.boolean(),isActive:t.boolean(),isArchived:t.boolean(),role:ye.optional(),createdAt:t.string().datetime("Invalid creation timestamp"),updatedAt:t.string().datetime("Invalid update timestamp")}),be={role:ye,teamMember:ge,teamMemberQueryParams:t.object({id:t.string().min(1).optional(),name:t.string().min(1).optional(),identity:t.string().email("Invalid email address").optional(),type:t.string().min(1).optional(),profileId:t.string().min(1).optional(),roleId:t.string().min(1).optional(),resetPassword:t.number().optional(),isActive:t.number().optional(),isArchived:t.number().optional(),createdAt:t.string().datetime("Invalid creation timestamp").optional(),updatedAt:t.string().datetime("Invalid update timestamp").optional(),eager:t.string().optional()}),createTeamMemberRequest:t.object({name:t.string().min(1,"Team member name is required"),identity:t.string().email("Valid email address is required"),password:fe.optional(),roleId:t.string().optional(),resetPassword:t.boolean().optional()}),updateTeamMemberRequest:t.object({name:t.string().min(1,"Team member name cannot be empty").optional(),roleId:t.string().min(1,"Role ID cannot be empty").optional(),password:fe.optional(),resetPassword:t.boolean().optional(),isActive:t.boolean().optional()}),resetPasswordRequest:t.object({newPassword:fe.optional(),sendNotification:t.boolean().optional()}),createTeamMemberResponse:t.object({id:t.string(),name:t.string(),identity:t.string(),type:t.string(),profileId:t.string(),resetPassword:t.boolean(),roleId:t.string(),isActive:t.boolean(),isArchived:t.boolean(),createdAt:t.string().datetime(),updatedAt:t.string().datetime()}),password:fe},Ne=D().router({getTeamMembers:{method:"GET",path:"/login",query:be.teamMemberQueryParams,responses:{200:t.array(be.teamMember),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()})},summary:"List all team members",description:"Retrieve a list of all team member accounts in the system"},getTeamMember:{method:"GET",path:"/login/:id",pathParams:t.object({id:t.string()}),query:be.teamMemberQueryParams,responses:{200:be.teamMember,401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Get team member details",description:"Retrieve detailed information about a specific team member"},createTeamMember:{method:"POST",path:"/login",body:be.createTeamMemberRequest,responses:{201:be.createTeamMemberResponse,400:t.object({message:t.string().optional(),errors:t.array(t.string()).optional()}),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),409:t.object({message:t.string().optional()})},summary:"Create new team member",description:"Create a new team member account with specified role and permissions"},updateTeamMember:{method:"PATCH",path:"/login/:id",pathParams:t.object({id:t.string()}),body:be.updateTeamMemberRequest,responses:{200:be.teamMember,400:t.object({message:t.string().optional(),errors:t.array(t.string()).optional()}),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Update team member",description:"Update team member information, role, status, or force password reset"},archiveTeamMember:{method:"POST",path:"/login/:id/archive",pathParams:t.object({id:t.string()}),body:t.object({}),responses:{200:be.teamMember,401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Archive team member",description:"Archive (soft delete) a team member account"},unArchiveTeamMember:{method:"POST",path:"/login/:id/unarchive",pathParams:t.object({id:t.string()}),body:t.object({}),responses:{200:be.teamMember,401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Unarchive team member",description:"Unarchive a previously archived team member account"},resetPassword:{method:"POST",path:"/login/:id/reset-password",pathParams:t.object({id:t.string()}),body:be.resetPasswordRequest,responses:{200:t.object({success:t.boolean()}),400:t.object({message:t.string().optional()}),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Reset team member password",description:"Reset a team member's password and optionally send notification"},getRoles:{method:"GET",path:"/role",responses:{200:t.array(be.role),401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()})},summary:"List all roles",description:"Retrieve a list of all available roles in the system"},getRole:{method:"GET",path:"/role/:id",pathParams:t.object({id:t.string()}),responses:{200:be.role,401:t.object({message:t.string().optional()}),403:t.object({message:t.string().optional()}),404:t.object({message:t.string().optional()})},summary:"Get role details",description:"Retrieve detailed information about a specific role"}}),ve=e.object({id:e.string(),name:e.string(),identity:e.string(),type:e.string(),profileId:e.string(),roleId:e.string(),resetPassword:e.boolean(),isActive:e.boolean(),isArchived:e.boolean(),role:se.optional(),createdAt:e.string(),updatedAt:e.string(),version:e.string().optional().default("1.0")});class we{id;name;identity;type;profileId;roleId;resetPassword;isActive;isArchived;role;createdAt;updatedAt;permissions;constructor(e){if(this.id=e.id,this.name=e.name,this.identity=e.identity,this.type=e.type,this.profileId=e.profileId,this.roleId=e.roleId,this.resetPassword=e.resetPassword,this.isActive=e.isActive,this.isArchived=e.isArchived,this.createdAt=new Date(e.createdAt),this.updatedAt=new Date(e.updatedAt),this.permissions=new Set(e.role?.access??[]),e.role)try{this.role=new ie(e.role)}catch(e){}}static from(e){try{return e?.id&&e?.name&&e?.identity&&e?.roleId?new we(e):void console.error("Missing required TeamMember fields:",e)}catch(e){return void console.error("Error creating TeamMember:",e)}}static fromJson(e){try{const t=JSON.parse(e);return we.from(t)}catch(e){return void console.error("Error parsing TeamMember JSON:",e)}}static createMany(e){return e.map(e=>we.from(e)).filter(Boolean)}can(e){return this.permissions.has(e)}canAny(e){return e.some(e=>this.permissions.has(e))}canAll(e){return e.every(e=>this.permissions.has(e))}isAccountActive(){return this.isActive}isAccountArchived(){return this.isArchived}needsPasswordReset(){return this.resetPassword}getAccountStatus(){return this.isArchived?{status:"archived",label:"Archived",color:"default",description:"Account has been archived and is no longer accessible"}:this.isActive?this.resetPassword?{status:"password_reset_required",label:"Password Reset Required",color:"warning",description:"User must reset their password on next login"}:{status:"active",label:"Active",color:"success",description:"Account is active and ready to use"}:{status:"inactive",label:"Inactive",color:"error",description:"Account has been deactivated by an administrator"}}getRoleName(){return this.role?.name??""}getCreatedDate(){return this.createdAt.toLocaleDateString()}getLastUpdateInfo(){const e=(new Date).getTime()-this.updatedAt.getTime(),t=Math.floor(e/864e5);return 0===t?"Today":1===t?"Yesterday":t<7?`${t} days ago`:t<30?`${Math.floor(t/7)} weeks ago`:this.updatedAt.toLocaleDateString()}toJSON(){return{id:this.id,name:this.name,identity:this.identity,type:this.type,profileId:this.profileId,roleId:this.roleId,resetPassword:this.resetPassword,isActive:this.isActive,isArchived:this.isArchived,role:this.role?.toJSON(),createdAt:this.createdAt.toISOString(),updatedAt:this.updatedAt.toISOString(),version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ve.safeParse(t);if(!r.success)return void console.error("Invalid TeamMemberJSON:",r.error.flatten());const n=r.data,a=n.role?{id:n.role.id,name:n.role.name,description:n.role.description,access:n.role.access,createdAt:n.role.createdAt,updatedAt:n.role.updatedAt}:void 0;return we.from({id:n.id,name:n.name,identity:n.identity,type:n.type,profileId:n.profileId,roleId:n.roleId,resetPassword:n.resetPassword,isActive:n.isActive,isArchived:n.isArchived,role:a,createdAt:n.createdAt,updatedAt:n.updatedAt})}catch(e){return void console.error("Error parsing TeamMemberJSON:",e)}}static isTeamMemberJSON(e){return ve.safeParse(e).success}static fromJSONArray(e){try{const t="string"==typeof e?JSON.parse(e):e;return Array.isArray(t)?t.map(e=>we.fromJSON(e)).filter(e=>void 0!==e):(console.warn("fromJSONArray expects an array"),[])}catch(e){return console.error("Error parsing TeamMember JSON array:",e),[]}}static toJSONArray(e){return e.map(e=>e.toJSON())}}class Se extends q{constructor(e){super("admin",Ne,e)}async createTeamMember(e){const t=await this.client.createTeamMember({body:e});return this.handleResponse(t,201)}async updateTeamMember(e,t){const r=await this.client.updateTeamMember({params:{id:e},body:t}),n=this.handleResponse(r,200),a=we.from(n);if(!a)throw new Error("Invalid team member data received from server");return a}async archiveTeamMember(e){const t=await this.client.archiveTeamMember({params:{id:e}}),r=this.handleResponse(t,200),n=we.from(r);if(!n)throw new Error("Invalid team member data received from server");return n}async unArchiveTeamMember(e){const t=await this.client.unArchiveTeamMember({params:{id:e}}),r=this.handleResponse(t,200),n=we.from(r);if(!n)throw new Error("Invalid team member data received from server");return n}async resetTeamMemberPassword(e,t={}){const r=await this.client.resetPassword({params:{id:e},body:t});return this.handleResponse(r,200)}async getAllTeamMembers(e={eager:"role"}){const t=await this.client.getTeamMembers({query:e}),r=this.handleResponse(t,200);return we.createMany(r)}async getTeamMember(e,t={eager:"role"}){const r=await this.client.getTeamMember({params:{id:e},query:t}),n=this.handleResponse(r,200),a=we.from(n);if(!a)throw new Error("Invalid team member data received from server");return a}async getAllRoles(){const e=await this.client.getRoles();return this.handleResponse(e,200).map(e=>{const t=ie.from(e);if(!t)throw new Error("Invalid role data received from server");return t})}async getRole(e){const t=await this.client.getRole({params:{id:e}}),r=this.handleResponse(t,200),n=ie.from(r);if(!n)throw new Error("Invalid role data received from server");return n}}class Ae extends q{constructor(e){super("auth",me,e)}async logIn(e,t){const r={type:"password",identity:e,password:t},n=await this.client.logIn({body:r});if(400===n.status)throw new w({message:"Invalid email or password",statusCode:400});if(201===n.status){const e=n.body.token,t=new pe({token:e}),r=await t.getIdentity(),a=oe.from(r);if(!a)throw new w({message:"Failed to construct login credentials",statusCode:502});const o=n.body.profile,s=re.from(o);if(!s)throw new w({message:"Failed to construct user profile",statusCode:502});let i;if(a.access.includes(S.Role.ViewRole))try{const t=new Se({token:e});i=await t.getRole(a.roleId)}catch(e){console.warn("Failed to fetch role details:",e)}const c=le.from({logIn:a,companyProfile:s,role:i,token:e});if(!c)throw new w({message:"Failed to construct user session",statusCode:502});return c}throw new w({message:"An error occurred while trying to log in",statusCode:502})}async updatePassword(e,t){const r=await this.client.resetPassword({body:{currentPassword:e,newPassword:t}});if(200===r.status)return!0;if(400===r.status)throw new w({message:"Invalid current password",statusCode:400});throw new w({message:"An error occurred while trying to update password",statusCode:502})}async getAccessList(){const e=await this.client.access();if(200===e.status)return e.body;throw new Error(`Failed to get access list. Status: ${e.status}`)}}var Oe;!function(e){e.Bank="Bank",e.Mobile="Mobile"}(Oe||(Oe={}));const Ie=t.nativeEnum(Oe),Ce=t.object({displayName:t.string().min(1,"Display name is required"),accountNo:t.string().min(1,"Account number is required"),channel:t.string().min(1,"Channel is required"),type:Ie}),_e={beneficiaryDTO:t.object({id:t.string().min(1,"Beneficiary id is required"),profileId:t.string(),createdAt:t.string().datetime(),updatedAt:t.string().datetime()}).merge(Ce),beneficiaryInputDTO:Ce,beneficiaryType:Ie},Pe=t.object({type:t.literal("Mobile"),name:t.string().min(1),phoneNumber:t.string().regex(/^\+[1-9]\d{6,14}$/),mnoId:t.string().min(1),version:t.string().optional().default("1.0")}),Ee=t.object({type:t.literal("Bank"),accName:t.string().min(1),swiftCode:t.string().length(8),countryCode:t.string().length(2),accNo:t.string().min(1),version:t.string().optional().default("1.0")}),De=t.discriminatedUnion("type",[Pe,Ee]);class Te extends Error{context;constructor(e,t={}){super(e),this.context=t,this.name="BeneficiaryError"}}class Re{type;countryCode;constructor(e,t){this.type=e,this.countryCode=t}toJSONString(){return JSON.stringify(this.toJSON())}get isMobile(){return this.type===Oe.Mobile}get isBank(){return this.type===Oe.Bank}get displayName(){return this.accountName}}class Je extends Re{name;phoneNumber;mnoId;constructor(e,t,r){super(Oe.Mobile,t.countryCode),this.name=e,this.phoneNumber=t;const n=Je.resolveMnoId(t,r),a=Je.checkInputs(e,t,n);if(!a.isValid)throw new Te(a.errors[0],{operation:"constructor",countryCode:t.countryCode,phoneNumber:t.e164Format,mnoId:n});this.mnoId=n}static resolveMnoId(e,t){return n.requiresExplicitProvider(e.countryCode)?t:n.detectProviderByPhoneNumber(e)?.id}static checkInputs(e,t,r){const a=[];return e?.trim()||a.push("Name is required and cannot be empty"),t?.validate()||a.push("Invalid phone number"),r?n.validateProviderForPhoneNumber(t,r)||a.push(`Invalid MNO ${r} for phone number ${t.e164Format}`):a.push(n.requiresExplicitProvider(t.countryCode)?`MNO must be explicitly provided for phone numbers in ${t.countryCode}`:`Failed to determine MNO for phone number ${t.e164Format}`),{isValid:0===a.length,errors:a,warnings:[]}}static pickMnoIdFromDTO(e,t){if(n.requiresExplicitProvider(e.countryCode)){if("string"!=typeof t)return;return n.isProviderSupported(e.countryCode,t)?t:void console.warn(`Invalid MNO ${t} for country ${e.countryCode}`)}const r=n.detectProviderByPhoneNumber(e);if(r)return r.id;console.warn(`Failed to auto-detect MNO for phone number ${e.e164Format}`)}static from(e){try{return new Je(e.name,e.phoneNumber,e.mnoId)}catch(e){return void console.error("Failed to create MobileBeneficiaryInfo:",e)}}static fromBeneficiaryDTO(e){if(e.type!==Oe.Mobile)return;const t=e.accountNo.startsWith("+")?e.accountNo:`+${e.accountNo}`,r=a.from(t);if(!r)return void console.error(`Failed to parse phone number ${t}`);const n=Je.pickMnoIdFromDTO(r,e.channel);return n?Je.from({name:e.displayName,phoneNumber:r,mnoId:n}):void 0}static fromPayoutDTO(e){if(!o.isISO2Code(e.countryCode))return void console.error(`Invalid country code: ${e.countryCode}`);const t=a.from(e.msisdn,{defaultCountry:e.countryCode});if(!t)return void console.error(`Failed to parse phone number: ${e.msisdn}`);const r=Je.pickMnoIdFromDTO(t,e.channel);return r?Je.from({name:e.payeeName,phoneNumber:t,mnoId:r}):void 0}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;return t.type===Oe.Mobile&&(!("string"!=typeof t.name||!t.name.trim())&&(!!a.is(t.phoneNumber)&&("string"==typeof t.mnoId&&n.isProviderSupported(t.phoneNumber.countryCode,t.mnoId))))}validate(){return Je.checkInputs(this.name,this.phoneNumber,this.mnoId).isValid}getValidationDetails(){return Je.checkInputs(this.name,this.phoneNumber,this.mnoId)}get accountName(){return this.name}get accountNumber(){return this.phoneNumber.getWithFormat(s.E164)}get accountNameLabel(){return"Name"}get accountNumberLabel(){return"Phone Number"}get channelLabel(){return"Channel"}get channelId(){return this.mnoId}get channelName(){const e=n.findById(this.mnoId,this.countryCode);return e?.mobileMoneyServiceName??e?.displayName??this.mnoId}get mobileMoneyProvider(){return n.findById(this.mnoId,this.countryCode)}toJSON(){return{type:"Mobile",name:this.name,phoneNumber:this.phoneNumber.e164Format,mnoId:this.mnoId,version:"1.0"}}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=Pe.safeParse(t);if(!r.success)return void console.error("Invalid MobileBeneficiaryJSON:",r.error.flatten());const n=a.from(r.data.phoneNumber);if(!n)return;return Je.from({name:r.data.name,phoneNumber:n,mnoId:r.data.mnoId})}catch(e){return void console.error("Error parsing MobileBeneficiaryJSON:",e)}}static fromJSONString(e){return Je.fromJSON(e)}static isJSON(e){return Pe.safeParse(e).success}}class Be extends Re{accName;bank;accNo;constructor(e,t,r){super(Oe.Bank,t.countryCode),this.accName=e,this.bank=t,this.accNo=r;const n=Be.checkInputs(e,t,r);if(!n.isValid)throw new Te(n.errors[0],{operation:"constructor",countryCode:t.countryCode})}static checkInputs(e,t,r){const n=[];return i.validateAccountName(e)||n.push("Invalid account name"),c.is(t)?i.validateAccountNumber(r,t.countryCode)||n.push("Invalid account number"):n.push("Invalid bank reference"),{isValid:0===n.length,errors:n,warnings:[]}}static from(e){try{return new Be(e.accName,e.bank,e.accNo)}catch(e){return void console.error("Failed to create BankBeneficiaryInfo:",e)}}static fromBeneficiaryDTO(e){if(e.type!==Oe.Bank)return;const t=e.channel;if(!t||"string"!=typeof t)return void console.error("SWIFT code is required for bank beneficiaries");const r=i.getCountryFromSwiftCode(t);if(!r)return void console.error(`Could not identify country from SWIFT code: ${t}`);const n=c.fromBIC(t,r);if(n)return Be.from({accName:e.displayName,bank:n,accNo:e.accountNo});console.error(`Bank with SWIFT code ${t} not found`)}static fromPayoutDTO(e){if(!o.isISO2Code(e.countryCode))return void console.error(`Invalid country code: ${e.countryCode}`);const t=e.msisdn.trim().split(":");if(2!==t.length)return void console.error("Invalid PayoutDTO format for bank — expected 'swiftcode:accountno'");const[r,n]=t,a=c.fromBIC(r,e.countryCode);if(a)return Be.from({accName:e.payeeName,bank:a,accNo:n});console.error(`Bank with SWIFT code ${r} not found`)}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;return t.type===Oe.Bank&&("string"==typeof t.accName&&("string"==typeof t.accNo&&(!!c.is(t.bank)&&(i.validateAccountName(t.accName)&&i.validateAccountNumber(t.accNo,t.bank.countryCode)))))}validate(){return Be.checkInputs(this.accName,this.bank,this.accNo).isValid}getValidationDetails(){return Be.checkInputs(this.accName,this.bank,this.accNo)}get accountName(){return this.accName}get accountNumber(){return this.accNo}get accountNameLabel(){return"Acc. Name"}get accountNumberLabel(){return"Bank Acc. No."}get channelLabel(){return"Bank"}get channelId(){return this.bank.bic}get channelName(){return this.bank.shortName}toJSON(){return{type:"Bank",accName:this.accName,swiftCode:this.bank.bic,countryCode:this.bank.countryCode,accNo:this.accNo,version:"1.0"}}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=Ee.safeParse(t);if(!r.success)return void console.error("Invalid BankBeneficiaryJSON:",r.error.flatten());const n=r.data;if(!o.isISO2Code(n.countryCode))return;const a=c.fromBIC(n.swiftCode,n.countryCode);if(!a)return;return Be.from({accName:n.accName,bank:a,accNo:n.accNo})}catch(e){return void console.error("Error parsing BankBeneficiaryJSON:",e)}}static fromJSONString(e){return Be.fromJSON(e)}static isJSON(e){return Ee.safeParse(e).success}}const je={fromBeneficiaryDTO:e=>e.type===Oe.Mobile?Je.fromBeneficiaryDTO(e):Be.fromBeneficiaryDTO(e),fromPayoutDTO:e=>e.msisdn.includes(":")?Be.fromPayoutDTO(e):Je.fromPayoutDTO(e),fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=De.safeParse(t);if(!r.success)return;return"Mobile"===r.data.type?Je.fromJSON(r.data):Be.fromJSON(r.data)}catch{return}},fromJSONString:e=>je.fromJSON(e),is:e=>Je.is(e)||Be.is(e),isJSON:e=>De.safeParse(e).success},Me=t.object({data:_e.beneficiaryDTO,version:t.string().optional().default("1.0")});class ke{data;_info;_infoComputed=!1;constructor(e){this.data=_e.beneficiaryDTO.parse(e)}get id(){return this.data.id}get profileId(){return this.data.profileId}get displayName(){return this.data.displayName}get type(){return this.data.type}get createdAt(){return new Date(this.data.createdAt)}get updatedAt(){return new Date(this.data.updatedAt)}get info(){return this._infoComputed||(this._infoComputed=!0,this.data.type===Oe.Mobile?this._info=Je.fromBeneficiaryDTO(this.data):this.data.type===Oe.Bank&&(this._info=Be.fromBeneficiaryDTO(this.data))),this._info}get accNo(){const e=this.info;return e?e.accountNumber:this.data.accountNo}get accName(){return this.data.displayName}get accNoLabel(){return this.type===Oe.Mobile?"Phone Number":this.type===Oe.Bank?"Bank Account Number":"Account Number"}get channelLabel(){return this.type===Oe.Mobile?"Channel":this.type===Oe.Bank?"Bank":"Channel"}get accNameLabel(){return this.type===Oe.Mobile?"Full Name":this.type===Oe.Bank?"Bank Account Name":"Display Name"}get channelName(){return this.info?.channelName??""}static from(e){try{return new ke(e)}catch(e){return void console.error("Failed to create Beneficiary:",e)}}static create(e){return new ke(e)}static createMany(e){return e.map(e=>new ke(e))}static createSafe(e){return ke.from(e)??null}static canConstruct(e){return _e.beneficiaryDTO.safeParse(e).success}static is(e){return!(!e||"object"!=typeof e)&&("data"in e&&ke.canConstruct(e.data))}toJSON(){return{data:{...this.data},version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=Me.safeParse(t);if(!r.success)return void console.error("Invalid BeneficiaryJSON:",r.error.flatten());const n=r.data;return ke.from(n.data)}catch(e){return void console.error("Error parsing BeneficiaryJSON:",e)}}static fromJSONString(e){return ke.fromJSON(e)}static isBeneficiaryJSON(e){return Me.safeParse(e).success}}class xe{canHandle(e){return"Mobile"===e.type&&Je.is(e)}createInput(e){if(Je.is(e))return{type:Oe.Mobile,displayName:e.accountName,accountNo:e.accountNumber,channel:e.channelId};throw new Error("Expected Mobile BeneficiaryInfo Info")}}class Fe{canHandle(e){return"Bank"===e.type&&Be.is(e)}createInput(e){if(Be.is(e))return{type:Oe.Bank,displayName:e.accountName,accountNo:e.accountNumber,channel:e.channelId};throw new Error("Expected Bank BeneficiaryInfo Info")}}class Le{handlers=[new xe,new Fe];resolve(e){const t=this.handlers.find(t=>t.canHandle(e));if(!t)throw new Error("Please check your data and try again");return t.createInput(e)}}const Ue=D().router({createBeneficiary:{method:"POST",path:"/",body:_e.beneficiaryInputDTO,responses:{201:_e.beneficiaryDTO}},editBeneficiary:{method:"PATCH",path:"/:id",body:_e.beneficiaryInputDTO,responses:{200:_e.beneficiaryDTO}},getBeneficiaries:{method:"GET",path:"/",query:t.object({orderByDesc:t.string()}),responses:{200:t.array(_e.beneficiaryDTO)}},getByID:{method:"GET",path:"/:id",responses:{200:_e.beneficiaryDTO}},deleteBeneficiary:{method:"DELETE",path:"/:id",body:t.object({}),responses:{200:t.object({})}}});class $e extends q{constructor(e){super("contact",Ue,e)}async create(e){const t=(new Le).resolve(e),r=await this.client.createBeneficiary({body:t}),n=this.handleResponse(r,201);return ke.create(n)}async edit(e,t){const r=(new Le).resolve(t),n=await this.client.editBeneficiary({params:{id:e},body:r}),a=this.handleResponse(n,200);return ke.create(a)}async remove(e){const t=await this.client.deleteBeneficiary({params:{id:e}});this.handleResponse(t,200)}async getAll(){const e=await this.client.getBeneficiaries({query:{orderByDesc:"createdAt"}}),t=this.handleResponse(e,200);return ke.createMany(t)}async getByID(e){const t=await this.client.getByID({params:{id:e}}),r=this.handleResponse(t,200);return ke.create(r)}}var qe,Ve,We;!function(e){e.MOBILE="Mobile",e.BANK="Bank"}(qe||(qe={})),function(e){e.CREATED="CREATED",e.PENDING="PENDING",e.PAID="PAID",e.FAILED="FAILED",e.REJECTED="REJECTED",e.REVERSED="REVERSED",e.QUEUED="QUEUED"}(Ve||(Ve={})),function(e){e.PENDING="Pending",e.APPROVED="Approved",e.REJECTED="Rejected"}(We||(We={}));const Ge=t.object({id:t.string(),name:t.string(),identity:t.string()}),He=t.nativeEnum(Ve),Qe=t.nativeEnum(We),Ze=t.object({channel:t.string(),msisdn:t.string(),amount:t.coerce.number(),description:t.string(),notes:t.string().nullish()}),Ke=Ze.extend({payeeName:t.string()}),Ye=Ze.extend({id:t.string(),profileId:t.string(),payeeName:t.string(),countryCode:t.string().default("TZ").refine(e=>o.isISO2Code(e),{message:"Provided country code is not a valid ISO2 code."}),currencyCode:t.string().default("TZS").refine(e=>u.isCode(e),{message:"Provided currency code is not a valid currency code."}),channel:t.string(),status:He,statusMessage:t.string(),partnerReference:t.string().nullish(),createdAt:t.coerce.date(),updatedAt:t.coerce.date(),actionedAt:t.coerce.date().nullish(),approvalStatus:Qe.nullish(),createdBy:Ge.nullish(),actionedBy:Ge.nullish()}),ze=t.object({page:t.number().int().positive().default(1),limit:t.number().int().positive().max(100).default(10),sortBy:t.string().default("createdAt"),sortOrder:t.enum(["asc","desc"]).default("desc"),startDate:t.string().datetime().nullish(),endDate:t.string().datetime().nullish(),payeeName:t.string().nullish(),msisdn:t.string().nullish(),profileId:t.string().nullish(),id:t.string().nullish(),partnerReference:t.string().nullish(),channel:t.string().nullish(),currencyCode:t.string().nullish(),status:He.nullish(),approvalStatus:Qe.nullish(),minAmount:t.number().min(0).nullish(),maxAmount:t.number().min(0).nullish(),search:t.string().nullish()}),Xe={PayoutDTO:Ye,PayoutInputDTO:Ke,PayoutStatus:He,PayoutApprovalStatus:Qe,PayoutAuthorizer:Ge,PayoutFilters:ze,PayoutURLQueryParams:t.object({page:t.string().transform(e=>parseInt(e)||1).optional(),limit:t.string().transform(e=>parseInt(e)||20).optional(),sortBy:t.string().default("createdAt"),sortOrder:t.enum(["asc","desc"]).default("desc"),startDate:t.string().optional(),endDate:t.string().optional(),payeeName:t.string().optional(),msisdn:t.string().optional(),profileId:t.string().optional(),id:t.string().optional(),partnerReference:t.string().optional(),channel:t.string().optional(),status:t.string().refine(e=>Object.values(Ve).includes(e)).transform(e=>e).optional(),approvalStatus:t.string().refine(e=>Object.values(We).includes(e)).transform(e=>e).optional(),minAmount:t.string().transform(e=>parseFloat(e)).optional(),maxAmount:t.string().transform(e=>parseFloat(e)).optional(),search:t.string().optional()})},et=e.object({id:e.string(),profileId:e.string(),payeeName:e.string(),channel:e.string(),msisdn:e.string(),amount:e.number(),currencyCode:e.string(),countryCode:e.string(),description:e.string(),notes:e.string().nullish(),status:Xe.PayoutStatus,statusMessage:e.string(),partnerReference:e.string().nullish(),createdAt:e.string(),updatedAt:e.string(),actionedAt:e.string().nullish(),approvalStatus:Xe.PayoutApprovalStatus.nullish(),createdBy:Xe.PayoutAuthorizer.nullish(),actionedBy:Xe.PayoutAuthorizer.nullish(),version:e.string().optional().default("1.0")});class tt{data;constructor(e){this.data=Xe.PayoutDTO.parse(e)}get id(){return this.data.id}get profileId(){return this.data.profileId}get payeeName(){return this.data.payeeName}get channel(){return this.data.channel}get msisdn(){return this.data.msisdn}get amount(){return d.from(this.data.amount,this.data.currencyCode)}get description(){return this.data.description}get notes(){return this.data.notes}get status(){return"Rejected"===this.data.approvalStatus?Ve.REJECTED:"Approved"===this.data.approvalStatus?"FAILED"===this.data.status?Ve.FAILED:Ve.PAID:"Pending"===this.data.approvalStatus?Ve.PENDING:this.data.status}get statusMessage(){return this.data.statusMessage}get partnerReference(){return this.data.partnerReference}get createdAt(){return this.data.createdAt}get updatedAt(){return this.data.updatedAt}get actionedAt(){return this.data.actionedAt}get approvalStatus(){return this.data.approvalStatus}get createdBy(){return this.data.createdBy}get actionedBy(){return this.data.actionedBy}get beneficiaryInfo(){return"TZ-BANK-B2C"===this.channel?Be.fromPayoutDTO(this.data):Je.fromPayoutDTO(this.data)}get contactInfo(){return this.beneficiaryInfo}static create(e){return new tt(e)}static createMany(e){return e.map(e=>new tt(e))}static createSafe(e){try{return new tt(e)}catch{return null}}static canConstruct(e){if(!e||"object"!=typeof e)return!1;const t=Xe.PayoutDTO.safeParse(e);if(!t.success)return!1;return null!==tt.createSafe(t.data)}static is(e){return!(!e||"object"!=typeof e)&&("data"in e&&tt.canConstruct(e.data))}toJSON(){return{id:this.data.id,profileId:this.data.profileId,payeeName:this.data.payeeName,channel:this.data.channel,msisdn:this.data.msisdn,amount:this.data.amount,currencyCode:this.data.currencyCode,countryCode:this.data.countryCode,description:this.data.description,notes:this.data.notes,status:this.data.status,statusMessage:this.data.statusMessage,partnerReference:this.data.partnerReference,createdAt:this.data.createdAt.toISOString(),updatedAt:this.data.updatedAt.toISOString(),actionedAt:this.data.actionedAt?.toISOString()??null,approvalStatus:this.data.approvalStatus,createdBy:this.data.createdBy,actionedBy:this.data.actionedBy,version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=et.safeParse(t);if(!r.success)return void console.error("Invalid PayoutJSON:",r.error.flatten());const n=r.data,a=n.currencyCode;if(!u.isCode(a))return void console.error("Invalid currency code:",a);const s=n.countryCode;if(!o.isISO2Code(s))return void console.error("Invalid country code:",s);const i={id:n.id,profileId:n.profileId,payeeName:n.payeeName,channel:n.channel,msisdn:n.msisdn,amount:n.amount,currencyCode:a,countryCode:s,description:n.description,notes:n.notes,status:n.status,statusMessage:n.statusMessage,partnerReference:n.partnerReference,createdAt:new Date(n.createdAt),updatedAt:new Date(n.updatedAt),actionedAt:n.actionedAt?new Date(n.actionedAt):null,approvalStatus:n.approvalStatus,createdBy:n.createdBy,actionedBy:n.actionedBy};return tt.create(i)}catch(e){return void console.error("Error parsing PayoutJSON:",e)}}static isPayoutJSON(e){return et.safeParse(e).success}static fromJSONArray(e){try{const t="string"==typeof e?JSON.parse(e):e;return Array.isArray(t)?t.map(e=>tt.fromJSON(e)).filter(e=>void 0!==e):(console.warn("fromJSONArray expects an array"),[])}catch(e){return console.error("Error parsing Payout JSON array:",e),[]}}static toJSONArray(e){return e.map(e=>e.toJSON())}}const rt="MOBILE TRANSFER ",nt="PAYOUT",at="PAYOUT TO BANK",ot="TO_BANK",st="PAYOUT TO MOBILE",it="TO_MOMO",ct=e.object({text:e.string(),version:e.string().optional().default("2.0")});class ut{text;constructor(e){this.text=e}get mediumText(){return this.text.length>50?this.text.substring(0,47)+"...":this.text}get shortText(){return this.text.length>35?this.text.substring(0,32)+"...":this.text}static generateDefaultPayoutNarration(e){return Je.is(e)?ut.generateMobilePayoutNarrationV2(e):Be.is(e)?ut.generateBankPayoutNarrationV2(e):""}static generateMobilePayoutNarrationV2(e){const{phoneNumber:t,name:r}=e;return`${nt.toUpperCase()} ${t.e164Format.trim()} ${r.trim()}`.toUpperCase()}static generateBankPayoutNarrationV2(e){const{bank:t,accName:r,accNo:n}=e;return`${nt.toUpperCase()} ${t.bic.trim()} ${n.trim()} ${r.trim()}`.toUpperCase()}getBeneficiaryDetails=()=>{const e=this.getBankBeneficiaryDetails(),t=this.getMobileBeneficiaryDetails();return e||(t||void 0)};getBankBeneficiaryDetails=()=>{let e=this.text.trim();e.startsWith(rt)&&(e=e.substring(16));try{if(e.startsWith(nt)){const t=e.replace(nt,"").trim().split(" ");if(t.length>=3){const e=t[0],r=t[1],n=t.slice(2).map(dt).join(" ");if(e.length>=8&&e.length<=11&&/^[A-Z0-9]+$/i.test(e)){const t=i.getCountryFromSwiftCode(e);if(t){if(i.validateSwiftCode(e,t)){const a=c.fromBIC(e,t);if(r&&n&&a)return new Be(n,a,r)}}}}}if(e.startsWith(ot)){const t=e.split("=>")[1].trim(),r=JSON.parse(t),n=r.account_number,a=r.account_name,o=r.swift_code,s=i.getCountryFromSwiftCode(o);if(!s)return;if(!i.validateSwiftCode(o,s))return;const u=c.fromBIC(o,s);if(n&&a&&u)return new Be(a,u,n)}if(e.startsWith(at)){const t=e.replace(at,"").trim().split(" "),r=l.getInstance().searchBanks("TZ",t[0]),n=r.length>0?r[0]:void 0,a=t[1],o=t.slice(2).map(dt).join(" ");if(o&&a&&n)return new Be(o,n,a)}}catch(e){return}};getMobileBeneficiaryDetails=()=>{let e=this.text.trim();e.startsWith(rt)&&(e=e.substring(16));try{if(e.startsWith(nt)){const t=e.replace(nt,"").trim().split(" ");if(t.length>=2){const e=t[0],r=t.slice(1).map(dt).join(" ");if(e.startsWith("+")){const t=a.from(e);if(t&&r)return new Je(r,t)}}}if(e.startsWith(it)){const t=e.split("=>")[1].trim(),r=JSON.parse(t),n=a.from(r.phone_number,{defaultCountry:"TZ"});let o=r.username;void 0===o&&(o="");let s=o.split(" ");if(s=s.filter(e=>e.trim().length>0),o=s.map(dt).join(" "),n&&o)return new Je(o,n)}if(e.startsWith(st)){const t=e.replace(st,"").trim().split(" "),r=a.from(t[0],{defaultCountry:"TZ"}),n=t.slice(1).map(dt).join(" ");if(r&&n)return new Je(n,r)}}catch(e){return}};static is(e){if(!e||"object"!=typeof e)return!1;const t=e;try{return"string"==typeof t.text&&"function"==typeof t.getBeneficiaryDetails&&"function"==typeof t.toJson}catch(e){return!1}}toJSON(){return{text:this.text,version:"2.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=ct.safeParse(t);if(!r.success)return void console.error("Invalid NarrationJSON:",r.error.flatten());const n=r.data;return new ut(n.text)}catch(e){return void console.error("Error parsing NarrationJSON:",e)}}static isNarrationJSON(e){return ct.safeParse(e).success}toJson(){return this.toJSON()}static fromJson(e){return ut.fromJSON(e)}}function dt(e){if(0===e.length)return e;return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}const lt={SUPPORTED_COUNTRY_CODES:["TZ","KE"],ERROR_MESSAGES:{INVALID_PHONE_NUMBER:"Invalid phone number",INELIGIBLE_FOR_PAYOUT:"The provided phone number is not eligible for payout. Please make sure it is a valid mobile number.",MOBILE_NUMBER_MNO_MISMATCH:"There is a mismatch between the phone number provided and the MNO used.",UNSUPPORTED_COUNTRY_BANK:"Only TZ and KE banks are supported for now",UNSUPPORTED_COUNTRY_MOBILE:"Only TZ and KE mobile numbers are supported for now",NO_HANDLER_FOUND:"Cannot create payout input!"}};class mt{static processNotes(e){if(!e)return;const t=e.trim();return t.length>0?t:void 0}static isPhoneEligibleForPayout(e){const t=e.getNumberType();return t===m.MOBILE||t===m.FIXED_LINE_OR_MOBILE}}class ht{static forBank(e,t){if(!lt.SUPPORTED_COUNTRY_CODES.includes(e.countryCode))throw new Error(lt.ERROR_MESSAGES.UNSUPPORTED_COUNTRY_BANK);return`${t.countryCode}-BANK-B2C`}static forMobile(e,t,r){if(!a.is(e))throw new Error(lt.ERROR_MESSAGES.INVALID_PHONE_NUMBER);if(!lt.SUPPORTED_COUNTRY_CODES.includes(e.countryCode))throw new Error(lt.ERROR_MESSAGES.UNSUPPORTED_COUNTRY_MOBILE);if(!mt.isPhoneEligibleForPayout(e))throw new Error(lt.ERROR_MESSAGES.INELIGIBLE_FOR_PAYOUT);const o=n.findById(t,e.countryCode);if(!o)throw new Error(lt.ERROR_MESSAGES.MOBILE_NUMBER_MNO_MISMATCH);return"VODACOM"===o.id?`${r.countryCode}-TIGO-B2C`:`${r.countryCode}-${o.id}-B2C`}}class pt{canHandle(e,t,r){return e===qe.MOBILE&&Je.is(t)&&r.countryCode===t.countryCode&&r.currencyCode===h.fromCode(t.countryCode)?.currencyCode}createInput(e,t){const r=e.receiver,n=mt.processNotes(e.notes),a=r.phoneNumber;return{channel:ht.forMobile(a,r.mnoId,t),msisdn:a.getWithFormat(s.INTERNATIONAL_NUMERIC),description:n??ut.generateDefaultPayoutNarration(r),payeeName:r.name,notes:n,amount:e.amount.numericValue}}}class ft{canHandle(e,t,r){return e===qe.BANK&&Be.is(t)&&r.countryCode===t.countryCode&&r.currencyCode===h.fromCode(t.countryCode)?.currencyCode}createInput(e,t){const r=e.receiver,n=mt.processNotes(e.notes);return{channel:ht.forBank(r,t),msisdn:`${r.bank.bic}:${r.accNo}`,description:n??ut.generateDefaultPayoutNarration(r),payeeName:r.accName,notes:n,amount:e.amount.numericValue}}}class yt{handlers=[new pt,new ft];getPayoutInput(e,t){const r=this.handlers.find(r=>r.canHandle(e.channel,e.receiver,t));if(!r)throw new Error(lt.ERROR_MESSAGES.NO_HANDLER_FOUND);return r.createInput({receiver:e.receiver,amount:e.amount,notes:e.notes},t)}}const gt={bank:ht.forBank.bind(ht),mobile:ht.forMobile.bind(ht)},bt=D().router({getPayouts:{method:"GET",path:"",query:t.object({}),responses:{200:t.object({results:t.array(Xe.PayoutDTO),total:t.number()})}},getPayoutsByApprovalStatus:{method:"GET",path:"",query:t.object({rangeStart:t.number(),rangeEnd:t.number(),eager:t.string(),approvalStatus:Xe.PayoutApprovalStatus,orderByDesc:t.string()}),responses:{200:t.object({results:t.array(Xe.PayoutDTO),total:t.number()})}},postPayout:{method:"POST",path:"",body:Xe.PayoutInputDTO,responses:{201:Xe.PayoutDTO,400:w.schema}},approve:{method:"POST",path:"/:id/approve",body:t.object({action:t.enum(["Approve","Reject"]),notes:t.string().optional()}),responses:{201:Xe.PayoutDTO,404:t.object({}),409:t.object({})}},getPayout:{method:"GET",path:"/:id/",responses:{200:Xe.PayoutDTO,404:t.object({})}}});class Nt extends H{static create(){return new Nt}static fromFilters(e){return(new Nt).applyFilters(e)}static fromUrlParams(e){try{const t=Xe.PayoutURLQueryParams.parse(e),r=Xe.PayoutFilters.parse(t);return Nt.fromFilters(r)}catch(e){throw new Error("Invalid URL parameters. Please check your query string values.")}}static fromSearchParams(e){const t=Object.fromEntries(e.entries());return Nt.fromUrlParams(t)}static fromRequest(e){const{searchParams:t}=new URL(e.url);return Nt.fromSearchParams(t)}static from(e){try{return null==e?new Nt:H.is(e)?new Nt(e.options):e instanceof URLSearchParams?Nt.fromSearchParams(e):this.isStringRecord(e)?Nt.fromUrlParams(e):Nt.fromFilters(e)}catch(e){throw new Error("Invalid input! Could not create a PayoutQuery instance.")}}static isStringRecord(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&!(e instanceof URLSearchParams)&&Object.values(e).every(e=>"string"==typeof e)}whereStatus(e){return this.where("status",e)}whereApprovalStatus(e){return this.where("approvalStatus",e)}whereChannel(e){return this.where("channel",e)}wherePending(){return this.whereApprovalStatus(We.PENDING)}whereApproved(){return this.whereApprovalStatus(We.APPROVED)}whereRejected(){return this.whereApprovalStatus(We.REJECTED)}wherePaid(){return this.whereStatus(Ve.PAID)}whereFailed(){return this.whereStatus(Ve.FAILED)}whereAmountBetween(e,t){return e.currencyCode!==t.currencyCode||e.numericValue>t.numericValue?this:this.whereBetween("amount",e.numericValue,t.numericValue)}wherePayee(e){return this.whereContains("payeeName",e)}whereMsisdn(e){return this.whereContains("msisdn",e)}whereProfileId(e){return this.where("profileId",e)}wherePartnerReference(e){return this.whereContains("partnerReference",e)}whereSearch(e){return this.where("search",e)}whereCurrencyCode(e){return this.where("currencyCode",e)}applyFilters(e){if((e.page||e.limit)&&this.paginate(e.page||1,e.limit||20),e.sortBy&&e.sortOrder&&("asc"===e.sortOrder?this.orderByAsc(e.sortBy):this.orderByDesc(e.sortBy)),(e.startDate||e.endDate)&&this.whereDateBetween(e.startDate,e.endDate),e.status&&this.whereStatus(e.status),e.approvalStatus&&this.whereApprovalStatus(e.approvalStatus),e.channel&&this.whereChannel(e.channel),e.payeeName&&this.wherePayee(e.payeeName),e.msisdn&&this.whereMsisdn(e.msisdn),e.profileId&&this.whereProfileId(e.profileId),e.partnerReference&&this.wherePartnerReference(e.partnerReference),e.id&&this.where("id",e.id),void 0!==e.minAmount||void 0!==e.maxAmount){const t=void 0!==e.minAmount&&null!==e.minAmount,r=void 0!==e.maxAmount&&null!==e.maxAmount,{currencyCode:n}=e,a=n||"TZS";if(!u.isCode(a))return console.warn("Amount filter requires a valid currency code"),this;if(t&&r){if(e.minAmount>e.maxAmount)return console.warn(`Invalid amount range: min (${e.minAmount}) > max (${e.maxAmount})`),this;const t=d.from(e.minAmount,a),r=d.from(e.maxAmount,a);t&&r&&this.whereAmountBetween(t,r)}else t?this.whereGreaterThanOrEqual("amount",e.minAmount):r&&this.whereLessThanOrEqual("amount",e.maxAmount)}return e.search&&this.whereSearch(e.search),this}toFilters(){const e=this.extractFilterValues();return{page:this.options.page||1,limit:this.options.limit||20,sortBy:this.extractSortField()||"createdAt",sortOrder:this.extractSortOrder()||"desc",startDate:e.startDate,endDate:e.endDate,payeeName:e.payeeName,msisdn:e.msisdn,profileId:e.profileId,id:e.id,partnerReference:e.partnerReference,channel:e.channel,status:this.isValidStatus(e.status)?e.status:void 0,approvalStatus:this.isValidApprovalStatus(e.approvalStatus)?e.approvalStatus:void 0,minAmount:e.minAmount,maxAmount:e.maxAmount,search:e.search}}toUrlParams(){const e=this.toFilters(),t={};return Object.entries(e).forEach(([e,r])=>{null!=r&&(t[e]=String(r))}),t}toSearchParams(){return new URLSearchParams(this.toUrlParams())}toQueryString(){return this.toSearchParams().toString()}withPagination(e,t){const r=this.clone();return r.paginate(e,t||r.options.limit||20),r}withSorting(e,t="desc"){const r=this.clone();return"asc"===t?r.orderByAsc(e):r.orderByDesc(e),r}withDateRange(e,t){const r=this.clone();return r.whereDateBetween(e,t),r}withStatus(e){const t=this.clone();return e&&t.whereStatus(e),t}withApprovalStatus(e){const t=this.clone();return e&&t.whereApprovalStatus(e),t}withChannel(e){const t=this.clone();return e&&t.whereChannel(e),t}includeDefaultRelations(){return this.with("[createdBy,actionedBy]")}resetPage(){return this.withPagination(1)}hasFilters(){const e=this.toFilters();return!!(e.startDate||e.endDate||e.payeeName||e.msisdn||e.profileId||e.id||e.partnerReference||e.channel||e.status||e.approvalStatus||e.minAmount||e.maxAmount||e.search)}describeFilters(e){const t=[],r=this.toFilters(),n=e?.formatDate??(e=>e);if(r.sortBy){const e="asc"===r.sortOrder?"Ascending":"Descending";t.push({label:"Sort",value:`${this.formatSortField(r.sortBy)} (${e})`})}if(r.startDate&&r.endDate?t.push({label:"Date Range",value:`${n(r.startDate)} — ${n(r.endDate)}`}):r.startDate?t.push({label:"From",value:n(r.startDate)}):r.endDate&&t.push({label:"Until",value:n(r.endDate)}),r.status&&t.push({label:"Status",value:r.status}),r.approvalStatus&&t.push({label:"Approval Status",value:r.approvalStatus}),r.channel&&t.push({label:"Channel",value:r.channel}),void 0!==r.minAmount&&void 0!==r.maxAmount){const e=Number(r.minAmount),n=Number(r.maxAmount);if(Number.isFinite(e)&&Number.isFinite(n)){const r=d.from(e,"TZS"),a=d.from(n,"TZS");r&&a&&t.push({label:"Amount Range",value:`${r.label} — ${a.label}`})}}else if(void 0!==r.minAmount){const e=Number(r.minAmount);if(Number.isFinite(e)){const r=d.from(e,"TZS");r&&t.push({label:"Minimum Amount",value:r.label})}}else if(void 0!==r.maxAmount){const e=Number(r.maxAmount);if(Number.isFinite(e)){const r=d.from(e,"TZS");r&&t.push({label:"Maximum Amount",value:r.label})}}return r.search&&t.push({label:"Search",value:`"${r.search}"`}),r.payeeName&&t.push({label:"Beneficiary Name",value:r.payeeName}),r.msisdn&&t.push({label:"MSISDN",value:r.msisdn}),r.profileId&&t.push({label:"Profile",value:r.profileId}),r.partnerReference&&t.push({label:"Reference",value:r.partnerReference}),t}describeFiltersAsText(){return this.describeFilters().map(e=>`${e.label}: ${e.value}`)}formatSortField(e){return{createdAt:"Date Created",updatedAt:"Date Updated",amount:"Amount",payeeName:"Beneficiary Name",status:"Status"}[e]??e}build(){return super.build()}extractFilterValues(){const e={};if(!this.options.filters)return e;for(const t of this.options.filters)switch(t.field){case"createdAt":"gte"===t.operator?e.startDate=t.value:"lte"===t.operator&&(e.endDate=t.value);break;case"amount":"gte"===t.operator?e.minAmount=t.value:"lte"===t.operator&&(e.maxAmount=t.value);break;case"payeeName":case"msisdn":case"partnerReference":"likeLower"===t.operator&&"string"==typeof t.value?e[t.field]=t.value.replace(/%/g,""):"eq"===t.operator&&(e[t.field]=t.value);break;default:"eq"===t.operator&&(e[t.field]=t.value)}return e}extractSortField(){if(this.options.sort&&0!==this.options.sort.length)return this.options.sort[0].field}extractSortOrder(){if(this.options.sort&&0!==this.options.sort.length)return this.options.sort[0].direction}isValidStatus(e){return Object.values(Ve).includes(e)}isValidApprovalStatus(e){return Object.values(We).includes(e)}}class vt extends q{constructor(e){super("payout",bt,e)}async getPayouts(e){try{const t=Nt.from(e),r=t.build(),n=await this.client.getPayouts({query:r}),a=this.handleResponse(n,200),o=t.toFilters(),s=new Y(o.page??1,o.limit??10,a.total);return{results:tt.createMany(a.results),pagination:s}}catch(e){throw new Error(`Failed to fetch payouts: ${e instanceof Error?e.message:"Unknown error"}`)}}async getAllPayouts(e){try{const t=Nt.from(e).build();delete t.rangeStart,delete t.rangeEnd;const r=await this.client.getPayouts({query:t}),n=this.handleResponse(r,200);return tt.createMany(n)}catch(e){throw console.log("error: ",e),new Error(`Failed to fetch all payouts: ${e instanceof Error?e.message:"Unknown error"}`)}}async getPayoutsFromRequest(e){const t=Nt.fromRequest(e);return this.getPayouts(t)}async pay(e){const{wallet:t,channel:r,receiver:n,amount:a,notes:o}=e,s=p.getTransactionLimits({countryCode:t.countryCode,currencyCode:a.currencyCode,direction:y.PAYOUT,channelType:r===qe.BANK?f.BANK:f.MOBILE_MONEY});if(!s)throw new w({statusCode:400,message:`Payout limits are not configured for ${t.countryCode} ${a.currencyCode} ${r} payouts`});const{min:i,max:c}=s;if(a.lessThan(i)||a.greaterThan(c))throw new w({statusCode:400,message:`Please make sure the amount is between ${i.label} - ${c.label}`});const u=(new yt).getPayoutInput({channel:r,receiver:n,amount:a,notes:o},t),d=await this.client.postPayout({body:u});if(201===d.status)return tt.create(d.body);if(400===d.status)throw new w(d.body);throw w.unknown()}async approve(e){const t=await this.client.approve({params:{id:e.id},body:{action:"Approve",notes:e.notes}});if(201===t.status)return tt.create(t.body);if(404===t.status)throw new w({message:"Payout not found",statusCode:404});if(409===t.status)throw new w({message:"Payout already approved",statusCode:409});throw w.unknown()}async reject(e){const t=await this.client.approve({params:{id:e.id},body:{action:"Reject",notes:e.notes}});if(201===t.status)return tt.create(t.body);if(404===t.status)throw new w({message:"Payout not found",statusCode:404});if(409===t.status)throw new w({message:"Payout already rejected",statusCode:409});throw w.unknown()}async getByID(e){const t=await this.client.getPayout({params:{id:e}});if(200===t.status)return tt.create(t.body);if(404===t.status)throw new w({message:"Payout not found",statusCode:404});throw w.unknown()}async count(e){const t=Nt.from(e).build(),r=await this.client.getPayouts({query:t});return this.handleResponse(r,200).total}async exists(e){return await this.count(e)>0}}const wt=e=>e.optional().transform(e=>e??void 0),St={walletDTO:t.object({id:t.string().min(1,{message:"Wallet ID is required."}),profileId:t.string().min(1,{message:"Profile ID is required."}),accountNo:t.string().min(1,{message:"Account number is required."}),accountName:t.string().min(1,{message:"Account name is required."}),channel:t.string().min(1,{message:"Channel is required."}),countryCode:t.string().default("TZ").refine(e=>o.isISO2Code(e),{message:"Provided country code is not a valid ISO2 code."}),currencyCode:t.string().default("TZS").refine(e=>u.isCode(e),{message:"Provided currency code is not a valid currency code."}),createdAt:t.string().datetime({message:"Creation timestamp must be a valid ISO 8601 datetime string."}),updatedAt:t.string().datetime({message:"Update timestamp must be a valid ISO 8601 datetime string."})}),walletQuery:t.object({id:t.string().optional(),profileId:t.string().optional(),accountNo:t.string().optional(),accountName:t.string().optional(),channel:t.string().optional(),countryCode:t.string().default("TZ").refine(e=>N.has(e),{message:"Provided country code is not a valid ISO2 code."}).optional(),currencyCode:t.string().default("TZS").refine(e=>{const t=g.fromCode(e);return void 0!==t&&b.has(t.code)},{message:"Provided currency code is not a valid currency code."}).optional()}),statementEntry:t.object({accountNo:wt(t.string()),debitOrCredit:t.string().min(1,"Transaction type is required"),tranRefNo:t.string().min(1,"Transaction reference is required"),narration:t.string().min(1,"Transaction description is required"),txnDate:t.coerce.date({errorMap:()=>({message:"Invalid transaction date format"})}),valueDate:t.coerce.date({errorMap:()=>({message:"Invalid value date format"})}),amountCredited:t.number().min(0,"Credited amount must be non-negative"),amountDebited:t.number().min(0,"Debited amount must be non-negative"),balance:t.number(),currencyCode:wt(t.string().min(3,"Currency code must be at least 3 characters")).default("TZS")})},At=e.object({id:e.string(),profileId:e.string(),accountNo:e.string(),accountName:e.string(),channel:e.string(),countryCode:e.string(),currencyCode:e.string(),createdAt:e.string(),updatedAt:e.string(),version:e.string().optional().default("1.0")});class Ot{_id;_profileId;_accountNo;_accountName;_channel;_countryCode;_currencyCode;_createdAt;_updatedAt;static get schema(){return St.walletDTO}constructor(e){this._id=e.id,this._profileId=e.profileId,this._accountNo=e.accountNo,this._accountName=e.accountName,this._channel=e.channel,this._countryCode=e.countryCode,this._currencyCode=e.currencyCode,this._createdAt=e.createdAt,this._updatedAt=e.updatedAt}static create(e){const t=Ot.schema.safeParse(e);if(t.success)return new Ot(t.data);console.error("Wallet data validation failed:",t.error.flatten())}get id(){return this._id}get profileId(){return this._profileId}get accountNo(){return this._accountNo}get accountName(){return this._accountName}get channel(){return this._channel}get countryCode(){return this._countryCode}get currencyCode(){return this._currencyCode}get createdAt(){return this._createdAt}get updatedAt(){return this._updatedAt}get createdAtDate(){return new Date(this._createdAt)}get updatedAtDate(){return new Date(this._updatedAt)}validate(){const e=Ot.schema.safeParse(this.toJSON());return e.success||console.warn("Wallet instance validation failed:",e.error.flatten()),e.success}static from(e){if(e&&"object"==typeof e)return Ot.create({id:e.id,profileId:e.profileId,accountNo:e.accountNo,accountName:e.accountName,channel:e.channel,countryCode:e.countryCode,createdAt:e.createdAt,updatedAt:e.updatedAt,currencyCode:e.currencyCode});console.error("Invalid data provided to Wallet.from: Input must be an object.")}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;return"string"==typeof t._id&&"string"==typeof t._profileId&&"string"==typeof t._accountNo&&"string"==typeof t._accountName&&"string"==typeof t._channel&&"string"==typeof t._countryCode&&o.isISO2Code(t._countryCode)&&"string"==typeof t._currencyCode&&u.isCode(t._currencyCode)&&"string"==typeof t._createdAt&&"string"==typeof t._updatedAt}toJSON(){return{id:this._id,profileId:this._profileId,accountNo:this._accountNo,accountName:this._accountName,channel:this._channel,countryCode:this._countryCode,currencyCode:this._currencyCode,createdAt:this._createdAt,updatedAt:this._updatedAt,version:"1.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=At.safeParse(t);if(!r.success)return void console.error("Invalid WalletJSON:",r.error.flatten());const n=r.data;return Ot.create(n)}catch(e){return void console.error("Error parsing WalletJSON:",e)}}static isWalletJSON(e){return At.safeParse(e).success}}const It=e.object({accountNo:e.string().optional(),debitOrCredit:e.string(),tranRefNo:e.string(),narration:ct,txnDate:e.string(),valueDate:e.string(),amountCredited:v,amountDebited:v,balance:v,currencyCode:e.string(),version:e.string().optional().default("2.0")});class Ct{_accountNo;_debitOrCredit;_tranRefNo;_narration;_txnDate;_valueDate;_amountCredited;_amountDebited;_balance;_currencyCode;static get schema(){return St.statementEntry}constructor(e,t){this._accountNo=e.accountNo,this._debitOrCredit=e.debitOrCredit,this._tranRefNo=e.tranRefNo,this._narration=t,this._txnDate=e.txnDate,this._valueDate=e.valueDate,this._currencyCode=e.currencyCode;const r=g.fromCode(e.currencyCode);if(!r)throw new Error(`Currency not found for code: ${e.currencyCode}`);const n=d.from(e.amountCredited,r.code),a=d.from(e.amountDebited,r.code),o=d.from(e.balance,r.code);if(!n||!a||!o)throw new Error(`Failed to create Amount instances with currency code: ${e.currencyCode}`);this._amountCredited=n,this._amountDebited=a,this._balance=o}static create(e){const t="string"==typeof e.narration?new ut(e.narration):e.narration,r={...e,narration:t.text},n=Ct.schema.safeParse(r);if(n.success)try{const{narration:e,...r}=n.data;return new Ct(r,t)}catch(e){return void console.error("Failed to create WalletStatementEntry:",e)}else console.error("WalletStatementEntry data validation failed:",n.error.flatten())}get accountNo(){return this._accountNo}get debitOrCredit(){return this._debitOrCredit}get tranRefNo(){return this._tranRefNo}get narration(){return this._narration}get txnDate(){return this._txnDate}get valueDate(){return this._valueDate}get amountCredited(){return this._amountCredited}get amountDebited(){return this._amountDebited}get balance(){return this._balance}get currencyCode(){return this._currencyCode}validate(){const e={accountNo:this._accountNo,debitOrCredit:this._debitOrCredit,tranRefNo:this._tranRefNo,narration:this._narration.text,txnDate:this._txnDate,valueDate:this._valueDate,amountCredited:this._amountCredited.numericValue,amountDebited:this._amountDebited.numericValue,balance:this._balance.numericValue,currencyCode:this._currencyCode},t=Ct.schema.safeParse(e);return t.success||console.warn("WalletStatementEntry instance validation failed:",t.error.flatten()),t.success}static is(e){if(!e||"object"!=typeof e)return!1;const t=e;try{return("string"==typeof t._accountNo||void 0===t._accountNo)&&"string"==typeof t._debitOrCredit&&"string"==typeof t._tranRefNo&&ut.is(t._narration)&&t._txnDate instanceof Date&&t._valueDate instanceof Date&&d.is(t._amountCredited)&&d.is(t._amountDebited)&&d.is(t._balance)&&"string"==typeof t._currencyCode}catch(e){return!1}}equals(e){return this._tranRefNo===e._tranRefNo}clone(){return Ct.create({accountNo:this._accountNo,debitOrCredit:this._debitOrCredit,tranRefNo:this._tranRefNo,narration:this._narration,txnDate:this._txnDate,valueDate:this._valueDate,amountCredited:this._amountCredited.numericValue,amountDebited:this._amountDebited.numericValue,balance:this._balance.numericValue,currencyCode:this._currencyCode})}toString(){return`WalletStatementEntry(${this._tranRefNo}: ${this._debitOrCredit} ${this._amountCredited.isPositive()?this._amountCredited.label:this._amountDebited.label} on ${this._txnDate.toISOString().split("T")[0]}${this._narration})`}static from(e){if(e&&"object"==typeof e)try{let t,r,n,a,o=e.currencyCode||"TZS";if(e.amountCredited&&"object"==typeof e.amountCredited&&"value"in e.amountCredited){const a=d.fromJSON(e.amountCredited),s=d.fromJSON(e.amountDebited),i=d.fromJSON(e.balance);if(!a||!s||!i)return void console.error("Failed to deserialize Amount objects from JSON");t=a.numericValue,r=s.numericValue,n=i.numericValue,e.currencyCode||(o=a.currencyCode)}else if(t=Number(e.amountCredited),r=Number(e.amountDebited),n=Number(e.balance),!Number.isFinite(t)||!Number.isFinite(r)||!Number.isFinite(n))return void console.error("Invalid numeric values for amounts");if("string"==typeof e.narration)a=e.narration;else if(ut.is(e.narration))a=e.narration;else{if(!ut.isNarrationJSON(e.narration))return void console.error("Invalid narration data");{const t=ut.fromJson(e.narration);if(!t)return void console.error("Failed to create Narration from NarrationJson");a=t}}return Ct.create({accountNo:e.accountNo,debitOrCredit:e.debitOrCredit,tranRefNo:e.tranRefNo,narration:a,txnDate:e.txnDate,valueDate:e.valueDate,amountCredited:t,amountDebited:r,balance:n,currencyCode:o})}catch(e){return void console.error("Error in WalletStatementEntry.from:",e)}else console.error("Invalid data provided to WalletStatementEntry.from: not an object or null.")}toJSON(){return{accountNo:this._accountNo,debitOrCredit:this._debitOrCredit,tranRefNo:this._tranRefNo,narration:this._narration.toJSON(),txnDate:this._txnDate.toISOString(),valueDate:this._valueDate.toISOString(),amountCredited:this._amountCredited.toJSON(),amountDebited:this._amountDebited.toJSON(),balance:this._balance.toJSON(),currencyCode:this._currencyCode,version:"2.0"}}toJSONString(){return JSON.stringify(this.toJSON())}static fromJSON(e){try{const t="string"==typeof e?JSON.parse(e):e,r=It.safeParse(t);if(!r.success)return void console.error("Invalid WalletStatementEntryJSON:",r.error.flatten());const n=r.data,a=ut.fromJSON(n.narration);if(!a)return void console.warn("Failed to deserialize narration");const o=d.fromJSON(n.amountCredited),s=d.fromJSON(n.amountDebited),i=d.fromJSON(n.balance);return o&&s&&i?o.currencyCode!==n.currencyCode||s.currencyCode!==n.currencyCode||i.currencyCode!==n.currencyCode?void console.warn("Currency code mismatch"):Ct.create({accountNo:n.accountNo,debitOrCredit:n.debitOrCredit,tranRefNo:n.tranRefNo,narration:a,txnDate:n.txnDate,valueDate:n.valueDate,amountCredited:o.numericValue,amountDebited:s.numericValue,balance:i.numericValue,currencyCode:n.currencyCode}):void console.warn("Failed to deserialize Amount objects")}catch(e){return void console.error("Error parsing WalletStatementEntryJSON:",e)}}static isWalletStatementEntryJSON(e){return It.safeParse(e).success}static fromJSONArray(e){try{const t="string"==typeof e?JSON.parse(e):e;return Array.isArray(t)?t.map(e=>Ct.fromJSON(e)).filter(e=>void 0!==e):(console.warn("fromJSONArray expects an array"),[])}catch(e){return console.error("Error parsing WalletStatementEntry JSON array:",e),[]}}static toJSONArray(e){return e.map(e=>e.toJSON())}toJson(){return this.toJSON()}static fromJson(e){return Ct.fromJSON(e)}static fromJsonArray(e){return Ct.fromJSONArray(e)}static toJsonArray(e){return Ct.toJSONArray(e)}}const _t=D().router({getWallets:{method:"GET",path:"/",query:St.walletQuery,responses:{200:t.array(Ot.schema)}},getBalance:{method:"POST",path:"/balance",body:t.object({accountNo:t.string().optional()}),responses:{201:t.object({availableBalance:t.number()})}},getStatement:{method:"POST",path:"/statement",summary:"Get Wallet Statement",body:t.object({endDate:t.date(),startDate:t.date(),accountNo:t.string().optional()}),responses:{201:t.array(Ct.schema)}}});class Pt extends H{static create(){return new Pt}static fromFilters(e){return(new Pt).applyFilters(e)}static fromUrlParams(e){try{const t=St.walletQuery.parse(e);return Pt.fromFilters(t)}catch(e){throw new Error("Invalid URL parameters. Please check your query string values.")}}static fromSearchParams(e){const t=Object.fromEntries(e.entries());return Pt.fromUrlParams(t)}static fromRequest(e){const{searchParams:t}=new URL(e.url);return Pt.fromSearchParams(t)}static from(e){try{return null==e?new Pt:H.is(e)?new Pt(e.options):e instanceof URLSearchParams?Pt.fromSearchParams(e):this.isStringRecord(e)?Pt.fromUrlParams(e):Pt.fromFilters(e)}catch(e){throw new Error("Invalid input! Could not create a WalletQuery instance.")}}static isStringRecord(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&!(e instanceof URLSearchParams)&&Object.values(e).every(e=>"string"==typeof e)}whereId(e){return this.where("id",e)}whereProfileId(e){return this.where("profileId",e)}whereAccountNo(e){return this.where("accountNo",e)}whereAccountName(e){return this.whereContains("accountName",e)}whereChannel(e){return this.where("channel",e)}whereCountryCode(e){return this.where("countryCode",e)}whereCurrencyCode(e){return this.where("currencyCode",e)}applyFilters(e){return e.id&&this.whereId(e.id),e.profileId&&this.whereProfileId(e.profileId),e.accountNo&&this.whereAccountNo(e.accountNo),e.accountName&&this.whereAccountName(e.accountName),e.channel&&this.whereChannel(e.channel),e.countryCode&&this.whereCountryCode(e.countryCode),e.currencyCode&&this.whereCurrencyCode(e.currencyCode),this}toFilters(){const e=this.extractFilterValues();return{id:e.id,profileId:e.profileId,accountNo:e.accountNo,accountName:e.accountName,channel:e.channel,countryCode:e.countryCode,currencyCode:e.currencyCode}}toUrlParams(){const e=this.toFilters(),t={};return Object.entries(e).forEach(([e,r])=>{null!=r&&(t[e]=String(r))}),t}toSearchParams(){return new URLSearchParams(this.toUrlParams())}toQueryString(){return this.toSearchParams().toString()}withId(e){const t=this.clone();return t.whereId(e),t}withProfileId(e){const t=this.clone();return t.whereProfileId(e),t}withAccountNo(e){const t=this.clone();return t.whereAccountNo(e),t}withCountryCode(e){const t=this.clone();return t.whereCountryCode(e),t}withCurrencyCode(e){const t=this.clone();return t.whereCurrencyCode(e),t}hasFilters(){const e=this.toFilters();return!!(e.id||e.profileId||e.accountNo||e.accountName||e.channel||e.countryCode||e.currencyCode)}getActiveFilters(){const e=[],t=this.toFilters();return t.id&&e.push(`ID: ${t.id}`),t.profileId&&e.push(`Profile: ${t.profileId}`),t.accountNo&&e.push(`Account: ${t.accountNo}`),t.accountName&&e.push(`Name: ${t.accountName}`),t.channel&&e.push(`Channel: ${t.channel}`),t.countryCode&&e.push(`Country: ${t.countryCode}`),t.currencyCode&&e.push(`Currency: ${t.currencyCode}`),e}build(){return super.build()}extractFilterValues(){const e={};if(!this.options.filters)return e;for(const t of this.options.filters)"eq"===t.operator?e[t.field]=t.value:"likeLower"===t.operator&&"string"==typeof t.value&&(e[t.field]=t.value.replace(/%/g,""));return e}}class Et extends q{constructor(e){super("wallet",_t,e)}async getBalance(e){if(!e.wallet&&!e.accountNo)throw new Error("Either wallet or accountNo must be provided");if(e.wallet){const t=await this.client.getBalance({body:{accountNo:e.wallet.accountNo}});if(201===t.status){const r=t.body.availableBalance,n=d.from(r,e.wallet.currencyCode);if(n)return n}}if(e.accountNo){const t=await this.getWallets({accountNo:e.accountNo});if(0===t.length)throw new Error(`No wallet found for accountNo: ${e.accountNo}`);const r=t[0],n=await this.client.getBalance({body:{accountNo:e.accountNo}});if(201===n.status){const e=n.body.availableBalance,t=d.from(e,r.currencyCode);if(t)return t}}throw new Error("Failed to fetch balance")}async getWallets(e){const t=Pt.from(e).build(),r=await this.client.getWallets({query:t});if(200===r.status){const e=r.body;try{return e.map(e=>{const t=Ot.from(e);if(!t)throw new Error(`Invalid wallet data: ${JSON.stringify(e)}`);return t})}catch(e){throw console.error("[WalletRepository] Error processing wallet data:",e),new Error("Failed to process wallet data from API")}}throw new Error(`Failed to fetch wallets. Status: ${r.status}`)}async getByID(e){const t=Pt.create().whereId(e),r=await this.getWallets(t);return r.length>0?r[0]:void 0}async getStatement(e){if(!e.wallet&&!e.accountNo)throw new Error("Either wallet or accountNo must be provided");const t=new Date,r=new Date(t.getFullYear(),t.getMonth(),1),n=new Date(t.getFullYear(),t.getMonth()+1,0),a=e.range??{startDate:r,endDate:n};let o,s;if(e.wallet)o=e.wallet,s=e.wallet.accountNo;else{if(!e.accountNo)throw new Error("Either wallet or accountNo must be provided");{const t=await this.getWallets({accountNo:e.accountNo});if(0===t.length)throw new Error(`No wallet found for accountNo: ${e.accountNo}`);o=t[0],s=e.accountNo}}const i={...a,accountNo:s},c=await this.client.getStatement({body:i});if(201===c.status){return c.body.map(e=>({...e,currencyCode:o.currencyCode})).reduce((e,t)=>{const r=Ct.create(t);return r?e.push(r):console.warn("[WalletRepository] Skipping invalid statement entry:",t),e},[])}throw new Error(`Failed to fetch statement. Status: ${c.status}`)}async exists(e){return(await this.getWallets(e)).length>0}async count(e){return(await this.getWallets(e)).length}}const Dt={getUniqueCountries(e){const t=new Set;return e.forEach(e=>{e.countryCode&&t.add(e.countryCode)}),Array.from(t)},getWalletsByCountry:(e,t)=>e.filter(e=>e.countryCode===t)},Tt=D().router({getCurrentProfile:{method:"GET",path:"/me",responses:{200:re.schema}}});class Rt extends q{constructor(e){super("profile",Tt,e)}async getCurrentProfile(){const e=await this.client.getCurrentProfile();if(200===e.status){const t=re.from(e.body);if(t)return t;throw new Error("Invalid profile data received from server")}throw new Error(`Failed to get current profile. Status: ${e.status}`)}}export{w as APIError,Ae as AuthRepository,at as BANK_NARR_PREFIX,Be as BankBeneficiaryInfo,Ee as BankBeneficiaryJSONSchema,q as BaseRepository,ke as Beneficiary,_e as BeneficiaryDTOSchemas,Te as BeneficiaryError,je as BeneficiaryInfo,De as BeneficiaryInfoJSONSchema,Me as BeneficiaryJSONSchema,$e as BeneficiaryRepository,Oe as BeneficiaryType,ue as CompanyMembership,ce as CompanyMembershipJSONSchema,rt as ECOBANK_PREFIX,V as FilterOperator,pe as IdentityRepository,ot as LEGACY_BANK_NARR_PREFIX,it as LEGACY_MOBILE_NARR_PREFIX,oe as LogIn,ae as LogInJSONSchema,ne as LogInSchemas,st as MOBILE_NARR_PREFIX,Je as MobileBeneficiaryInfo,Pe as MobileBeneficiaryJSONSchema,nt as NARR_V2_PREFIX,ut as Narration,ct as NarrationJSONSchema,Y as Pagination,Q as PaginationParamsSchema,Z as PaginationSchema,tt as Payout,We as PayoutApprovalStatus,qe as PayoutChannel,Xe as PayoutDTOSchemas,yt as PayoutInputFactory,et as PayoutJSONSchema,Nt as PayoutQuery,vt as PayoutRepository,Ve as PayoutStatus,A as PermissionError,S as Permissions,re as Profile,ee as ProfileDTOSchemas,te as ProfileJSONSchema,Rt as ProfileRepository,G as QUERY_BUILDER_TYPE,H as QueryBuilder,ie as Role,se as RoleJSONSchema,W as SortDirection,be as TeamManagementDTOSchemas,we as TeamMember,ve as TeamMemberJSONSchema,Se as TeamMemberRepository,le as User,de as UserJSONSchema,Le as ValidatedBeneficiaryInputFactory,Ot as Wallet,St as WalletDTOSchemas,At as WalletJSONSchema,Et as WalletRepository,Ct as WalletStatementEntry,It as WalletStatementEntryJSONSchema,Dt as WalletUtils,Ue as contract,z as createPaginatedResponse,K as createPaginatedResponseSchema,gt as createPayoutChannelCode,X as emptyPaginatedResponse,O as isError,$ as setGlobalTokenGetter};
|
|
2
|
+
//# sourceMappingURL=index.esm.js.map
|