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