@temboplus/afloat 0.1.53 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +246 -42
- package/{esm/src/features/admin/contract.d.ts → dist/features/admin/admin.contract.d.ts} +41 -77
- package/{script/src/features/admin/schemas.d.ts → dist/features/admin/admin.dtos.d.ts} +8 -9
- package/dist/features/admin/admin.repository.d.ts +179 -0
- package/dist/features/admin/index.d.ts +2 -0
- package/{esm/src/features/auth/access/contract.d.ts → dist/features/auth/access/access.api-contract.d.ts} +0 -1
- package/dist/features/auth/access/access.repository.d.ts +55 -0
- package/{esm/src/features/auth/contract.d.ts → dist/features/auth/auth.contract.d.ts} +12 -8
- package/dist/features/auth/auth.manager.d.ts +249 -0
- package/dist/features/auth/auth.repository.d.ts +66 -0
- package/dist/features/auth/auth.store.d.ts +139 -0
- package/{script/src/features/auth/identity/contract.d.ts → dist/features/auth/identity/identity.api-contract.d.ts} +0 -1
- package/dist/features/auth/identity/identity.repository.d.ts +58 -0
- package/dist/features/auth/index.d.ts +5 -0
- package/{script/src/features/auth/profile/contract.d.ts → dist/features/auth/profile/profile.api-contract.d.ts} +8 -6
- package/dist/features/auth/profile/profile.dtos.d.ts +80 -0
- package/dist/features/auth/profile/profile.repository.d.ts +56 -0
- package/{esm/src/features/auth/storage/client_store.d.ts → dist/features/auth/storage/client-store.d.ts} +2 -3
- package/{esm/src/features/auth/storage/client_token_handler.d.ts → dist/features/auth/storage/client-token-handler.d.ts} +1 -2
- package/{script/src → dist}/features/auth/storage/types.d.ts +1 -2
- package/dist/features/contact/contact-input-handler.d.ts +16 -0
- package/{esm/src/features/contact/contract.d.ts → dist/features/contact/contact.api-contract.d.ts} +101 -45
- package/dist/features/contact/contact.dtos.d.ts +90 -0
- package/dist/features/contact/contact.repository.d.ts +116 -0
- package/dist/features/contact/index.d.ts +2 -0
- package/dist/features/payout/index.d.ts +3 -0
- package/dist/features/payout/payout-channel-handler.d.ts +108 -0
- package/{esm/src/features/payout/contract.d.ts → dist/features/payout/payout.api-contract.d.ts} +351 -187
- package/dist/features/payout/payout.dtos.d.ts +365 -0
- package/dist/features/payout/payout.repository.d.ts +193 -0
- package/dist/features/wallet/index.d.ts +4 -0
- package/dist/features/wallet/wallet-manager.session.d.ts +143 -0
- package/{script/src/features/wallet/contract.d.ts → dist/features/wallet/wallet.contract.d.ts} +9 -7
- package/dist/features/wallet/wallet.dtos.d.ts +204 -0
- package/dist/features/wallet/wallet.repository.d.ts +120 -0
- package/dist/features/wallet/wallet.utils.d.ts +17 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/{esm/src/shared/base_repository.d.ts → dist/lib/api/base-repository.d.ts} +137 -42
- package/{script/src/shared/common_responses.d.ts → dist/lib/api/common-responses.d.ts} +0 -1
- package/dist/lib/api/index.d.ts +2 -0
- package/{esm/src/errors/api_error.d.ts → dist/lib/error/error.api.d.ts} +0 -1
- package/{script/src/errors/permission_error.d.ts → dist/lib/error/error.permission.d.ts} +1 -2
- package/dist/lib/error/error.utils.d.ts +22 -0
- package/dist/lib/error/index.d.ts +3 -0
- package/dist/models/contact-info.model.d.ts +817 -0
- package/{script/src/models/contact/derivatives/contact.d.ts → dist/models/contact.model.d.ts} +23 -16
- package/dist/models/index.d.ts +10 -0
- package/{esm/src/models/user/managed-user.d.ts → dist/models/managed-user.model.d.ts} +3 -3
- package/{script/src/models/payout/derivatives/payout.d.ts → dist/models/payout.model.d.ts} +13 -15
- package/{esm/src → dist}/models/permission.d.ts +1 -2
- package/{script/src/models/user/profile.d.ts → dist/models/profile.model.d.ts} +37 -43
- package/{script/src/models/role.d.ts → dist/models/role.model.d.ts} +2 -10
- package/dist/models/statement-entry.model.d.ts +195 -0
- package/{esm/src/models/user/authenticated-user.d.ts → dist/models/user.model.d.ts} +1 -2
- package/{script/src/models/wallet/wallet.d.ts → dist/models/wallet.model.d.ts} +3 -46
- package/package.json +47 -26
- package/LICENSE +0 -7
- package/esm/_dnt.test_shims.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/almost_equals.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/array_includes.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/assert.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/assertion_error.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/equal.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/equals.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/exists.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/fail.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/false.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/greater.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/greater_or_equal.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/instance_of.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/is_error.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/less.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/less_or_equal.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/match.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/mod.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/not_equals.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/not_instance_of.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/not_match.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/not_strict_equals.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/object_match.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/rejects.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/strict_equals.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/string_includes.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/throws.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/unimplemented.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.10/unreachable.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
- package/esm/mod.d.ts +0 -8
- package/esm/mod.d.ts.map +0 -1
- package/esm/mod.js +0 -7
- package/esm/package.json +0 -3
- package/esm/src/errors/api_error.d.ts.map +0 -1
- package/esm/src/errors/api_error.js +0 -90
- package/esm/src/errors/index.d.ts +0 -3
- package/esm/src/errors/index.d.ts.map +0 -1
- package/esm/src/errors/index.js +0 -2
- package/esm/src/errors/permission_error.d.ts +0 -48
- package/esm/src/errors/permission_error.d.ts.map +0 -1
- package/esm/src/errors/permission_error.js +0 -70
- package/esm/src/features/admin/contract.d.ts.map +0 -1
- package/esm/src/features/admin/contract.js +0 -210
- package/esm/src/features/admin/index.d.ts +0 -4
- package/esm/src/features/admin/index.d.ts.map +0 -1
- package/esm/src/features/admin/index.js +0 -3
- package/esm/src/features/admin/repository.d.ts +0 -114
- package/esm/src/features/admin/repository.d.ts.map +0 -1
- package/esm/src/features/admin/repository.js +0 -248
- package/esm/src/features/admin/schemas.d.ts +0 -146
- package/esm/src/features/admin/schemas.d.ts.map +0 -1
- package/esm/src/features/admin/schemas.js +0 -206
- package/esm/src/features/auth/access/contract.d.ts.map +0 -1
- package/esm/src/features/auth/access/contract.js +0 -14
- package/esm/src/features/auth/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 -2
- package/esm/src/features/auth/index.d.ts.map +0 -1
- package/esm/src/features/auth/index.js +0 -1
- 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/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.map +0 -1
- package/esm/src/features/auth/storage/client_store.js +0 -46
- package/esm/src/features/auth/storage/client_token_handler.d.ts.map +0 -1
- package/esm/src/features/auth/storage/client_token_handler.js +0 -36
- package/esm/src/features/auth/storage/server_store.d.ts +0 -24
- package/esm/src/features/auth/storage/server_store.d.ts.map +0 -1
- package/esm/src/features/auth/storage/server_store.js +0 -34
- package/esm/src/features/auth/storage/server_token_handler.d.ts +0 -36
- package/esm/src/features/auth/storage/server_token_handler.d.ts.map +0 -1
- package/esm/src/features/auth/storage/server_token_handler.js +0 -115
- package/esm/src/features/auth/storage/types.d.ts +0 -42
- package/esm/src/features/auth/storage/types.d.ts.map +0 -1
- package/esm/src/features/auth/storage/types.js +0 -1
- package/esm/src/features/contact/contract.d.ts.map +0 -1
- package/esm/src/features/contact/contract.js +0 -49
- package/esm/src/features/contact/index.d.ts +0 -2
- package/esm/src/features/contact/index.d.ts.map +0 -1
- package/esm/src/features/contact/index.js +0 -1
- package/esm/src/features/contact/repository.d.ts +0 -58
- package/esm/src/features/contact/repository.d.ts.map +0 -1
- package/esm/src/features/contact/repository.js +0 -108
- package/esm/src/features/payout/contract.d.ts.map +0 -1
- package/esm/src/features/payout/contract.js +0 -75
- package/esm/src/features/payout/index.d.ts +0 -2
- package/esm/src/features/payout/index.d.ts.map +0 -1
- package/esm/src/features/payout/index.js +0 -1
- package/esm/src/features/payout/repository.d.ts +0 -67
- package/esm/src/features/payout/repository.d.ts.map +0 -1
- package/esm/src/features/payout/repository.js +0 -163
- package/esm/src/features/wallet/contract.d.ts +0 -137
- package/esm/src/features/wallet/contract.d.ts.map +0 -1
- package/esm/src/features/wallet/contract.js +0 -38
- package/esm/src/features/wallet/index.d.ts +0 -2
- package/esm/src/features/wallet/index.d.ts.map +0 -1
- package/esm/src/features/wallet/index.js +0 -1
- package/esm/src/features/wallet/repository.d.ts +0 -57
- package/esm/src/features/wallet/repository.d.ts.map +0 -1
- package/esm/src/features/wallet/repository.js +0 -93
- package/esm/src/models/contact/derivatives/contact.d.ts +0 -172
- package/esm/src/models/contact/derivatives/contact.d.ts.map +0 -1
- package/esm/src/models/contact/derivatives/contact.js +0 -266
- package/esm/src/models/contact/derivatives/contact.test.d.ts.map +0 -1
- 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/derivatives/contact_info.test.d.ts.map +0 -1
- 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 -139
- package/esm/src/models/contact/validation.test.d.ts.map +0 -1
- 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 -156
- package/esm/src/models/payout/derivatives/payout.d.ts.map +0 -1
- package/esm/src/models/payout/derivatives/payout.js +0 -261
- package/esm/src/models/payout/derivatives/payout.test.d.ts.map +0 -1
- package/esm/src/models/payout/index.d.ts +0 -6
- package/esm/src/models/payout/index.d.ts.map +0 -1
- package/esm/src/models/payout/index.js +0 -5
- 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.map +0 -1
- package/esm/src/models/user/authenticated-user.js +0 -226
- package/esm/src/models/user/index.d.ts +0 -4
- package/esm/src/models/user/index.d.ts.map +0 -1
- package/esm/src/models/user/index.js +0 -3
- package/esm/src/models/user/managed-user.d.ts.map +0 -1
- package/esm/src/models/user/managed-user.js +0 -255
- package/esm/src/models/user/profile.d.ts +0 -161
- package/esm/src/models/user/profile.d.ts.map +0 -1
- package/esm/src/models/user/profile.js +0 -334
- package/esm/src/models/wallet/index.d.ts +0 -4
- package/esm/src/models/wallet/index.d.ts.map +0 -1
- package/esm/src/models/wallet/index.js +0 -3
- package/esm/src/models/wallet/schemas.d.ts +0 -95
- package/esm/src/models/wallet/schemas.d.ts.map +0 -1
- package/esm/src/models/wallet/schemas.js +0 -35
- package/esm/src/models/wallet/statement_entry.d.ts +0 -160
- package/esm/src/models/wallet/statement_entry.d.ts.map +0 -1
- package/esm/src/models/wallet/statement_entry.js +0 -255
- package/esm/src/models/wallet/wallet.d.ts +0 -147
- package/esm/src/models/wallet/wallet.d.ts.map +0 -1
- package/esm/src/models/wallet/wallet.js +0 -279
- package/esm/src/shared/base_repository.d.ts.map +0 -1
- package/esm/src/shared/base_repository.js +0 -153
- package/esm/src/shared/common_responses.d.ts +0 -13
- package/esm/src/shared/common_responses.d.ts.map +0 -1
- package/esm/src/shared/common_responses.js +0 -10
- package/esm/src/shared/index.d.ts +0 -3
- package/esm/src/shared/index.d.ts.map +0 -1
- package/esm/src/shared/index.js +0 -2
- package/esm/src/shared/token_required_repository.d.ts +0 -78
- package/esm/src/shared/token_required_repository.d.ts.map +0 -1
- package/esm/src/shared/token_required_repository.js +0 -128
- package/script/_dnt.test_shims.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/almost_equals.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/array_includes.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/assert.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/assertion_error.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/equal.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/equals.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/exists.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/fail.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/false.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/greater.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/greater_or_equal.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/instance_of.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/is_error.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/less.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/less_or_equal.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/match.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/mod.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/not_equals.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/not_instance_of.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/not_match.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/not_strict_equals.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/object_match.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/rejects.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/strict_equals.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/string_includes.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/throws.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/unimplemented.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/assert/1.0.10/unreachable.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
- package/script/mod.d.ts +0 -8
- package/script/mod.d.ts.map +0 -1
- package/script/mod.js +0 -23
- package/script/package.json +0 -3
- package/script/src/errors/api_error.d.ts +0 -63
- package/script/src/errors/api_error.d.ts.map +0 -1
- package/script/src/errors/api_error.js +0 -94
- package/script/src/errors/index.d.ts +0 -3
- package/script/src/errors/index.d.ts.map +0 -1
- package/script/src/errors/index.js +0 -18
- package/script/src/errors/permission_error.d.ts.map +0 -1
- package/script/src/errors/permission_error.js +0 -74
- package/script/src/features/admin/contract.d.ts +0 -842
- package/script/src/features/admin/contract.d.ts.map +0 -1
- package/script/src/features/admin/contract.js +0 -213
- package/script/src/features/admin/index.d.ts +0 -4
- package/script/src/features/admin/index.d.ts.map +0 -1
- package/script/src/features/admin/index.js +0 -19
- package/script/src/features/admin/repository.d.ts +0 -114
- package/script/src/features/admin/repository.d.ts.map +0 -1
- package/script/src/features/admin/repository.js +0 -252
- package/script/src/features/admin/schemas.d.ts.map +0 -1
- package/script/src/features/admin/schemas.js +0 -209
- package/script/src/features/auth/access/contract.d.ts +0 -14
- package/script/src/features/auth/access/contract.d.ts.map +0 -1
- package/script/src/features/auth/access/contract.js +0 -17
- package/script/src/features/auth/contract.d.ts +0 -112
- package/script/src/features/auth/contract.d.ts.map +0 -1
- package/script/src/features/auth/contract.js +0 -46
- package/script/src/features/auth/identity/contract.d.ts.map +0 -1
- package/script/src/features/auth/identity/contract.js +0 -20
- package/script/src/features/auth/identity/repository.d.ts +0 -22
- package/script/src/features/auth/identity/repository.d.ts.map +0 -1
- package/script/src/features/auth/identity/repository.js +0 -34
- package/script/src/features/auth/index.d.ts +0 -2
- package/script/src/features/auth/index.d.ts.map +0 -1
- package/script/src/features/auth/index.js +0 -17
- package/script/src/features/auth/manager.d.ts +0 -105
- package/script/src/features/auth/manager.d.ts.map +0 -1
- package/script/src/features/auth/manager.js +0 -185
- package/script/src/features/auth/profile/contract.d.ts.map +0 -1
- package/script/src/features/auth/profile/contract.js +0 -17
- package/script/src/features/auth/repository.d.ts +0 -30
- package/script/src/features/auth/repository.d.ts.map +0 -1
- package/script/src/features/auth/repository.js +0 -73
- package/script/src/features/auth/storage/client_store.d.ts +0 -30
- package/script/src/features/auth/storage/client_store.d.ts.map +0 -1
- package/script/src/features/auth/storage/client_store.js +0 -51
- package/script/src/features/auth/storage/client_token_handler.d.ts +0 -32
- package/script/src/features/auth/storage/client_token_handler.d.ts.map +0 -1
- package/script/src/features/auth/storage/client_token_handler.js +0 -40
- package/script/src/features/auth/storage/server_store.d.ts +0 -24
- package/script/src/features/auth/storage/server_store.d.ts.map +0 -1
- package/script/src/features/auth/storage/server_store.js +0 -38
- package/script/src/features/auth/storage/server_token_handler.d.ts +0 -36
- package/script/src/features/auth/storage/server_token_handler.d.ts.map +0 -1
- package/script/src/features/auth/storage/server_token_handler.js +0 -119
- package/script/src/features/auth/storage/types.d.ts.map +0 -1
- package/script/src/features/auth/storage/types.js +0 -2
- package/script/src/features/contact/contract.d.ts +0 -170
- package/script/src/features/contact/contract.d.ts.map +0 -1
- package/script/src/features/contact/contract.js +0 -52
- package/script/src/features/contact/index.d.ts +0 -2
- package/script/src/features/contact/index.d.ts.map +0 -1
- package/script/src/features/contact/index.js +0 -17
- package/script/src/features/contact/repository.d.ts +0 -58
- package/script/src/features/contact/repository.d.ts.map +0 -1
- package/script/src/features/contact/repository.js +0 -112
- package/script/src/features/payout/contract.d.ts +0 -623
- package/script/src/features/payout/contract.d.ts.map +0 -1
- package/script/src/features/payout/contract.js +0 -78
- package/script/src/features/payout/index.d.ts +0 -2
- package/script/src/features/payout/index.d.ts.map +0 -1
- package/script/src/features/payout/index.js +0 -17
- package/script/src/features/payout/repository.d.ts +0 -67
- package/script/src/features/payout/repository.d.ts.map +0 -1
- package/script/src/features/payout/repository.js +0 -167
- package/script/src/features/wallet/contract.d.ts.map +0 -1
- package/script/src/features/wallet/contract.js +0 -41
- package/script/src/features/wallet/index.d.ts +0 -2
- package/script/src/features/wallet/index.d.ts.map +0 -1
- package/script/src/features/wallet/index.js +0 -17
- package/script/src/features/wallet/repository.d.ts +0 -57
- package/script/src/features/wallet/repository.d.ts.map +0 -1
- package/script/src/features/wallet/repository.js +0 -97
- package/script/src/models/contact/derivatives/contact.d.ts.map +0 -1
- package/script/src/models/contact/derivatives/contact.js +0 -270
- package/script/src/models/contact/derivatives/contact.test.d.ts.map +0 -1
- package/script/src/models/contact/derivatives/contact_info.d.ts +0 -188
- package/script/src/models/contact/derivatives/contact_info.d.ts.map +0 -1
- package/script/src/models/contact/derivatives/contact_info.js +0 -260
- package/script/src/models/contact/derivatives/contact_info.test.d.ts.map +0 -1
- package/script/src/models/contact/index.d.ts +0 -5
- package/script/src/models/contact/index.d.ts.map +0 -1
- package/script/src/models/contact/index.js +0 -20
- package/script/src/models/contact/schemas.d.ts +0 -66
- package/script/src/models/contact/schemas.d.ts.map +0 -1
- package/script/src/models/contact/schemas.js +0 -67
- package/script/src/models/contact/validation.d.ts +0 -37
- package/script/src/models/contact/validation.d.ts.map +0 -1
- package/script/src/models/contact/validation.js +0 -146
- package/script/src/models/contact/validation.test.d.ts.map +0 -1
- package/script/src/models/index.d.ts +0 -7
- package/script/src/models/index.d.ts.map +0 -1
- package/script/src/models/index.js +0 -22
- package/script/src/models/payout/api.d.ts +0 -29
- package/script/src/models/payout/api.d.ts.map +0 -1
- package/script/src/models/payout/api.js +0 -2
- package/script/src/models/payout/channel.d.ts +0 -58
- package/script/src/models/payout/channel.d.ts.map +0 -1
- package/script/src/models/payout/channel.js +0 -56
- package/script/src/models/payout/derivatives/payout.d.ts.map +0 -1
- package/script/src/models/payout/derivatives/payout.js +0 -265
- package/script/src/models/payout/derivatives/payout.test.d.ts.map +0 -1
- package/script/src/models/payout/index.d.ts +0 -6
- package/script/src/models/payout/index.d.ts.map +0 -1
- package/script/src/models/payout/index.js +0 -21
- package/script/src/models/payout/schemas.d.ts +0 -156
- package/script/src/models/payout/schemas.d.ts.map +0 -1
- package/script/src/models/payout/schemas.js +0 -108
- package/script/src/models/payout/status.d.ts +0 -33
- package/script/src/models/payout/status.d.ts.map +0 -1
- package/script/src/models/payout/status.js +0 -37
- package/script/src/models/permission.d.ts +0 -55
- package/script/src/models/permission.d.ts.map +0 -1
- package/script/src/models/permission.js +0 -53
- package/script/src/models/role.d.ts.map +0 -1
- package/script/src/models/role.js +0 -77
- package/script/src/models/user/authenticated-user.d.ts +0 -77
- package/script/src/models/user/authenticated-user.d.ts.map +0 -1
- package/script/src/models/user/authenticated-user.js +0 -230
- package/script/src/models/user/index.d.ts +0 -4
- package/script/src/models/user/index.d.ts.map +0 -1
- package/script/src/models/user/index.js +0 -19
- package/script/src/models/user/managed-user.d.ts +0 -108
- package/script/src/models/user/managed-user.d.ts.map +0 -1
- package/script/src/models/user/managed-user.js +0 -260
- package/script/src/models/user/profile.d.ts.map +0 -1
- package/script/src/models/user/profile.js +0 -338
- package/script/src/models/wallet/index.d.ts +0 -4
- package/script/src/models/wallet/index.d.ts.map +0 -1
- package/script/src/models/wallet/index.js +0 -19
- package/script/src/models/wallet/schemas.d.ts +0 -95
- package/script/src/models/wallet/schemas.d.ts.map +0 -1
- package/script/src/models/wallet/schemas.js +0 -38
- package/script/src/models/wallet/statement_entry.d.ts +0 -160
- package/script/src/models/wallet/statement_entry.d.ts.map +0 -1
- package/script/src/models/wallet/statement_entry.js +0 -259
- package/script/src/models/wallet/wallet.d.ts.map +0 -1
- package/script/src/models/wallet/wallet.js +0 -283
- package/script/src/shared/base_repository.d.ts +0 -80
- package/script/src/shared/base_repository.d.ts.map +0 -1
- package/script/src/shared/base_repository.js +0 -157
- package/script/src/shared/common_responses.d.ts.map +0 -1
- package/script/src/shared/common_responses.js +0 -13
- package/script/src/shared/index.d.ts +0 -3
- package/script/src/shared/index.d.ts.map +0 -1
- package/script/src/shared/index.js +0 -18
- package/script/src/shared/token_required_repository.d.ts +0 -78
- package/script/src/shared/token_required_repository.d.ts.map +0 -1
- package/script/src/shared/token_required_repository.js +0 -132
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
// deno-lint-ignore-file no-explicit-any
|
|
2
|
-
import { Permissions } from "../permission.js";
|
|
3
|
-
import { Profile } from "./profile.js";
|
|
4
|
-
/**
|
|
5
|
-
* Represents a user in Afloat.
|
|
6
|
-
*
|
|
7
|
-
* This class centralizes user-related logic, simplifying interaction
|
|
8
|
-
* with user-related data and ensuring consistent permission checks across the application.
|
|
9
|
-
*/
|
|
10
|
-
export class User {
|
|
11
|
-
/**
|
|
12
|
-
* Creates a new instance of the `User` class.
|
|
13
|
-
*
|
|
14
|
-
* @param userData - An object containing the user's profile, token,
|
|
15
|
-
* permissions (access list), and the `resetPassword` flag.
|
|
16
|
-
*/
|
|
17
|
-
constructor(data) {
|
|
18
|
-
/**
|
|
19
|
-
* Logged-in user name
|
|
20
|
-
*/
|
|
21
|
-
Object.defineProperty(this, "name", {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
configurable: true,
|
|
24
|
-
writable: true,
|
|
25
|
-
value: void 0
|
|
26
|
-
});
|
|
27
|
-
/**
|
|
28
|
-
* Logged-in identity: phone-number or email address
|
|
29
|
-
*/
|
|
30
|
-
Object.defineProperty(this, "identity", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
configurable: true,
|
|
33
|
-
writable: true,
|
|
34
|
-
value: void 0
|
|
35
|
-
});
|
|
36
|
-
/**
|
|
37
|
-
* The user's Afloat profile, containing personal information such as name, contact details, and account information.
|
|
38
|
-
*/
|
|
39
|
-
Object.defineProperty(this, "profile", {
|
|
40
|
-
enumerable: true,
|
|
41
|
-
configurable: true,
|
|
42
|
-
writable: true,
|
|
43
|
-
value: void 0
|
|
44
|
-
});
|
|
45
|
-
/**
|
|
46
|
-
* The user's authentication token. This token must be passed in the request headers
|
|
47
|
-
* for all authenticated API endpoints.
|
|
48
|
-
*/
|
|
49
|
-
Object.defineProperty(this, "token", {
|
|
50
|
-
enumerable: true,
|
|
51
|
-
configurable: true,
|
|
52
|
-
writable: true,
|
|
53
|
-
value: void 0
|
|
54
|
-
});
|
|
55
|
-
/**
|
|
56
|
-
* Indicates whether the user is required to change their default password.
|
|
57
|
-
*
|
|
58
|
-
* Afloat users are initially provided with a default username and password. After the first
|
|
59
|
-
* successful login, `resetPassword` will be set to `true` to prompt the user to set a new password.
|
|
60
|
-
*/
|
|
61
|
-
Object.defineProperty(this, "resetPassword", {
|
|
62
|
-
enumerable: true,
|
|
63
|
-
configurable: true,
|
|
64
|
-
writable: true,
|
|
65
|
-
value: void 0
|
|
66
|
-
});
|
|
67
|
-
/**
|
|
68
|
-
* A map of permission keys to boolean values, indicating whether the user has access
|
|
69
|
-
* to specific actions or features in the system.
|
|
70
|
-
*/
|
|
71
|
-
Object.defineProperty(this, "permissionsMap", {
|
|
72
|
-
enumerable: true,
|
|
73
|
-
configurable: true,
|
|
74
|
-
writable: true,
|
|
75
|
-
value: void 0
|
|
76
|
-
});
|
|
77
|
-
const { profile, token, access, resetPassword, name, identity } = data;
|
|
78
|
-
this.profile = profile;
|
|
79
|
-
this.token = token;
|
|
80
|
-
this.resetPassword = resetPassword;
|
|
81
|
-
this.name = name;
|
|
82
|
-
this.identity = identity;
|
|
83
|
-
this.permissionsMap = {};
|
|
84
|
-
for (const group of Object.values(Permissions)) {
|
|
85
|
-
for (const perm of Object.values(group)) {
|
|
86
|
-
this.permissionsMap[perm] = access.includes(perm);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Checks if the user has a specific permission.
|
|
92
|
-
*
|
|
93
|
-
* @param permission - The permission key to check.
|
|
94
|
-
* @returns `true` if the user has the specified permission, otherwise `false`.
|
|
95
|
-
*/
|
|
96
|
-
can(permission) {
|
|
97
|
-
return this.permissionsMap[permission] ?? false;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Serializes the `User` instance to a JSON string.
|
|
101
|
-
*
|
|
102
|
-
* @returns A JSON string representation of the `User` instance, including:
|
|
103
|
-
* - `profile`: The user's profile information. (Requires profile.toJSON() method)
|
|
104
|
-
* - `token`: The user's authentication token.
|
|
105
|
-
* - `resetPassword`: Indicates whether the user must reset their password.
|
|
106
|
-
* - `permissions`: An array of permission keys the user has.
|
|
107
|
-
*/
|
|
108
|
-
toJSON() {
|
|
109
|
-
return JSON.stringify({
|
|
110
|
-
profile: this.profile.toObject(),
|
|
111
|
-
token: this.token,
|
|
112
|
-
resetPassword: this.resetPassword,
|
|
113
|
-
name: this.name,
|
|
114
|
-
identity: this.identity,
|
|
115
|
-
permissions: Object.keys(this.permissionsMap).filter((key) => this.permissionsMap[key]),
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Creates a new `User` instance from a JSON string.
|
|
120
|
-
*
|
|
121
|
-
* @param jsonString - A JSON string containing user data.
|
|
122
|
-
* @returns A `User` instance reconstructed from the JSON data, or undefined if jsonString is invalid.
|
|
123
|
-
*/
|
|
124
|
-
static fromJSON(jsonString) {
|
|
125
|
-
try {
|
|
126
|
-
return User.from(JSON.parse(jsonString));
|
|
127
|
-
}
|
|
128
|
-
catch (e) {
|
|
129
|
-
console.error("Invalid JSON string:", e);
|
|
130
|
-
return undefined;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Creates a new `User` instance from a data object, JSON string, or object with a Profile instance/object.
|
|
135
|
-
*
|
|
136
|
-
* @param data - The data object, JSON string, or object with Profile instance/object containing user information.
|
|
137
|
-
* @returns A `User` instance, or undefined if data is invalid.
|
|
138
|
-
*/
|
|
139
|
-
static from(data) {
|
|
140
|
-
let parsedData;
|
|
141
|
-
// Parse JSON string if needed
|
|
142
|
-
if (typeof data === "string") {
|
|
143
|
-
try {
|
|
144
|
-
parsedData = JSON.parse(data);
|
|
145
|
-
}
|
|
146
|
-
catch (error) {
|
|
147
|
-
console.error("Invalid JSON string:", error);
|
|
148
|
-
return undefined;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
parsedData = data;
|
|
153
|
-
}
|
|
154
|
-
if (!parsedData) {
|
|
155
|
-
console.error("Data is null or undefined.");
|
|
156
|
-
return undefined;
|
|
157
|
-
}
|
|
158
|
-
// Handle different profile formats
|
|
159
|
-
let profile;
|
|
160
|
-
let rawProfile = parsedData.profile;
|
|
161
|
-
// Handle stringified profile (the case in the provided sample)
|
|
162
|
-
if (typeof rawProfile === "string") {
|
|
163
|
-
try {
|
|
164
|
-
// Attempt to parse the stringified profile
|
|
165
|
-
rawProfile = JSON.parse(rawProfile);
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
console.error("Failed to parse profile JSON string:", error);
|
|
169
|
-
return undefined;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
// Create Profile instance based on what we received
|
|
173
|
-
if (Profile.is(rawProfile)) {
|
|
174
|
-
// Already a Profile instance
|
|
175
|
-
profile = rawProfile;
|
|
176
|
-
}
|
|
177
|
-
else if (typeof rawProfile === "object" && rawProfile !== null) {
|
|
178
|
-
// Convert object to Profile instance
|
|
179
|
-
profile = Profile.from(rawProfile);
|
|
180
|
-
if (!profile) {
|
|
181
|
-
console.error("Failed to create Profile from data:", rawProfile);
|
|
182
|
-
return undefined;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
else if (typeof rawProfile === "string") {
|
|
186
|
-
profile = Profile.fromJSON(rawProfile);
|
|
187
|
-
if (!profile) {
|
|
188
|
-
console.error("Failed to create Profile from JSON data:", rawProfile);
|
|
189
|
-
return undefined;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
console.error("Invalid profile format:", typeof rawProfile);
|
|
194
|
-
return undefined;
|
|
195
|
-
}
|
|
196
|
-
// Validate other required fields
|
|
197
|
-
if (!parsedData.token || typeof parsedData.token !== "string" ||
|
|
198
|
-
!parsedData.name || typeof parsedData.name !== "string" ||
|
|
199
|
-
!parsedData.identity || typeof parsedData.identity !== "string" ||
|
|
200
|
-
!Array.isArray(parsedData.permissions) &&
|
|
201
|
-
!Array.isArray(parsedData.access) ||
|
|
202
|
-
typeof parsedData.resetPassword !== "boolean") {
|
|
203
|
-
console.error("Missing or invalid required User fields:", {
|
|
204
|
-
token: typeof parsedData.token,
|
|
205
|
-
name: typeof parsedData.name,
|
|
206
|
-
identity: typeof parsedData.identity,
|
|
207
|
-
permissions: Array.isArray(parsedData.permissions),
|
|
208
|
-
access: Array.isArray(parsedData.access),
|
|
209
|
-
resetPassword: typeof parsedData.resetPassword,
|
|
210
|
-
});
|
|
211
|
-
return undefined;
|
|
212
|
-
}
|
|
213
|
-
// Support both 'permissions' and 'access' field names
|
|
214
|
-
const access = parsedData.access || parsedData.permissions;
|
|
215
|
-
// Create and return the User instance
|
|
216
|
-
const args = {
|
|
217
|
-
profile: profile,
|
|
218
|
-
token: parsedData.token,
|
|
219
|
-
access: access,
|
|
220
|
-
resetPassword: parsedData.resetPassword,
|
|
221
|
-
name: parsedData.name,
|
|
222
|
-
identity: parsedData.identity,
|
|
223
|
-
};
|
|
224
|
-
return new User(args);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/models/user/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"managed-user.d.ts","sourceRoot":"","sources":["../../../../src/src/models/user/managed-user.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
// deno-lint-ignore-file no-explicit-any
|
|
2
|
-
// ====================== Base User Entity ====================== //
|
|
3
|
-
import { Role } from "../role.js";
|
|
4
|
-
/**
|
|
5
|
-
* Base user entity - represents a user in the system
|
|
6
|
-
*/
|
|
7
|
-
export class UserEntity {
|
|
8
|
-
constructor(data) {
|
|
9
|
-
Object.defineProperty(this, "id", {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
configurable: true,
|
|
12
|
-
writable: true,
|
|
13
|
-
value: void 0
|
|
14
|
-
});
|
|
15
|
-
Object.defineProperty(this, "name", {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
configurable: true,
|
|
18
|
-
writable: true,
|
|
19
|
-
value: void 0
|
|
20
|
-
});
|
|
21
|
-
Object.defineProperty(this, "identity", {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
configurable: true,
|
|
24
|
-
writable: true,
|
|
25
|
-
value: void 0
|
|
26
|
-
}); // email or phone
|
|
27
|
-
Object.defineProperty(this, "profileId", {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
configurable: true,
|
|
30
|
-
writable: true,
|
|
31
|
-
value: void 0
|
|
32
|
-
});
|
|
33
|
-
Object.defineProperty(this, "permissions", {
|
|
34
|
-
enumerable: true,
|
|
35
|
-
configurable: true,
|
|
36
|
-
writable: true,
|
|
37
|
-
value: void 0
|
|
38
|
-
});
|
|
39
|
-
this.id = data.id;
|
|
40
|
-
this.name = data.name;
|
|
41
|
-
this.identity = data.identity;
|
|
42
|
-
this.profileId = data.profileId;
|
|
43
|
-
this.permissions = new Set(data.permissions);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Check if user has a specific permission
|
|
47
|
-
*/
|
|
48
|
-
can(permission) {
|
|
49
|
-
return this.permissions.has(permission);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Check if user has any of the specified permissions
|
|
53
|
-
*/
|
|
54
|
-
canAny(permissions) {
|
|
55
|
-
return permissions.some((p) => this.permissions.has(p));
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Check if user has all of the specified permissions
|
|
59
|
-
*/
|
|
60
|
-
canAll(permissions) {
|
|
61
|
-
return permissions.every((p) => this.permissions.has(p));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Represents a user from the admin management perspective.
|
|
66
|
-
* Same person as AuthenticatedUser but with management metadata and capabilities.
|
|
67
|
-
*/
|
|
68
|
-
export class ManagedUser extends UserEntity {
|
|
69
|
-
constructor(data) {
|
|
70
|
-
super({
|
|
71
|
-
id: data.id,
|
|
72
|
-
name: data.name,
|
|
73
|
-
identity: data.identity,
|
|
74
|
-
profileId: data.profileId,
|
|
75
|
-
permissions: data.role?.access ?? [],
|
|
76
|
-
});
|
|
77
|
-
Object.defineProperty(this, "type", {
|
|
78
|
-
enumerable: true,
|
|
79
|
-
configurable: true,
|
|
80
|
-
writable: true,
|
|
81
|
-
value: void 0
|
|
82
|
-
});
|
|
83
|
-
Object.defineProperty(this, "roleId", {
|
|
84
|
-
enumerable: true,
|
|
85
|
-
configurable: true,
|
|
86
|
-
writable: true,
|
|
87
|
-
value: void 0
|
|
88
|
-
});
|
|
89
|
-
Object.defineProperty(this, "resetPassword", {
|
|
90
|
-
enumerable: true,
|
|
91
|
-
configurable: true,
|
|
92
|
-
writable: true,
|
|
93
|
-
value: void 0
|
|
94
|
-
});
|
|
95
|
-
Object.defineProperty(this, "isActive", {
|
|
96
|
-
enumerable: true,
|
|
97
|
-
configurable: true,
|
|
98
|
-
writable: true,
|
|
99
|
-
value: void 0
|
|
100
|
-
});
|
|
101
|
-
Object.defineProperty(this, "isArchived", {
|
|
102
|
-
enumerable: true,
|
|
103
|
-
configurable: true,
|
|
104
|
-
writable: true,
|
|
105
|
-
value: void 0
|
|
106
|
-
});
|
|
107
|
-
Object.defineProperty(this, "role", {
|
|
108
|
-
enumerable: true,
|
|
109
|
-
configurable: true,
|
|
110
|
-
writable: true,
|
|
111
|
-
value: void 0
|
|
112
|
-
});
|
|
113
|
-
Object.defineProperty(this, "createdAt", {
|
|
114
|
-
enumerable: true,
|
|
115
|
-
configurable: true,
|
|
116
|
-
writable: true,
|
|
117
|
-
value: void 0
|
|
118
|
-
});
|
|
119
|
-
Object.defineProperty(this, "updatedAt", {
|
|
120
|
-
enumerable: true,
|
|
121
|
-
configurable: true,
|
|
122
|
-
writable: true,
|
|
123
|
-
value: void 0
|
|
124
|
-
});
|
|
125
|
-
this.type = data.type;
|
|
126
|
-
this.roleId = data.roleId;
|
|
127
|
-
this.resetPassword = data.resetPassword;
|
|
128
|
-
this.isActive = data.isActive;
|
|
129
|
-
this.isArchived = data.isArchived;
|
|
130
|
-
this.createdAt = new Date(data.createdAt);
|
|
131
|
-
this.updatedAt = new Date(data.updatedAt);
|
|
132
|
-
if (data.role) {
|
|
133
|
-
try {
|
|
134
|
-
this.role = new Role(data.role);
|
|
135
|
-
}
|
|
136
|
-
catch (_) {
|
|
137
|
-
//
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Check if user account is active
|
|
143
|
-
*/
|
|
144
|
-
isAccountActive() {
|
|
145
|
-
return this.isActive;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Check if user account is archived
|
|
149
|
-
*/
|
|
150
|
-
isAccountArchived() {
|
|
151
|
-
return this.isArchived;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Check if user needs to reset password
|
|
155
|
-
*/
|
|
156
|
-
needsPasswordReset() {
|
|
157
|
-
return this.resetPassword;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Get comprehensive account status
|
|
161
|
-
*/
|
|
162
|
-
getAccountStatus() {
|
|
163
|
-
if (this.isArchived) {
|
|
164
|
-
return {
|
|
165
|
-
status: "archived",
|
|
166
|
-
label: "Archived",
|
|
167
|
-
color: "default",
|
|
168
|
-
description: "Account has been archived and is no longer accessible",
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
if (!this.isActive) {
|
|
172
|
-
return {
|
|
173
|
-
status: "inactive",
|
|
174
|
-
label: "Inactive",
|
|
175
|
-
color: "error",
|
|
176
|
-
description: "Account has been deactivated by an administrator",
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
if (this.resetPassword) {
|
|
180
|
-
return {
|
|
181
|
-
status: "password_reset_required",
|
|
182
|
-
label: "Password Reset Required",
|
|
183
|
-
color: "warning",
|
|
184
|
-
description: "User must reset their password on next login",
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
return {
|
|
188
|
-
status: "active",
|
|
189
|
-
label: "Active",
|
|
190
|
-
color: "success",
|
|
191
|
-
description: "Account is active and ready to use",
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Get role display name
|
|
196
|
-
*/
|
|
197
|
-
getRoleName() {
|
|
198
|
-
return this.role?.name ?? "";
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Get formatted creation date
|
|
202
|
-
*/
|
|
203
|
-
getCreatedDate() {
|
|
204
|
-
return this.createdAt.toLocaleDateString();
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Get time since last update
|
|
208
|
-
*/
|
|
209
|
-
getLastUpdateInfo() {
|
|
210
|
-
const now = new Date();
|
|
211
|
-
const diffMs = now.getTime() - this.updatedAt.getTime();
|
|
212
|
-
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
213
|
-
if (diffDays === 0)
|
|
214
|
-
return "Today";
|
|
215
|
-
if (diffDays === 1)
|
|
216
|
-
return "Yesterday";
|
|
217
|
-
if (diffDays < 7)
|
|
218
|
-
return `${diffDays} days ago`;
|
|
219
|
-
if (diffDays < 30)
|
|
220
|
-
return `${Math.floor(diffDays / 7)} weeks ago`;
|
|
221
|
-
return this.updatedAt.toLocaleDateString();
|
|
222
|
-
}
|
|
223
|
-
static from(data) {
|
|
224
|
-
try {
|
|
225
|
-
if (!data?.id || !data?.name || !data?.identity || !data?.roleId) {
|
|
226
|
-
console.error("Missing required ManagedUser fields:", data);
|
|
227
|
-
return undefined;
|
|
228
|
-
}
|
|
229
|
-
return new ManagedUser(data);
|
|
230
|
-
}
|
|
231
|
-
catch (error) {
|
|
232
|
-
console.error("Error creating ManagedUser:", error);
|
|
233
|
-
return undefined;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
static createMany(dataArray) {
|
|
237
|
-
return dataArray.map((data) => ManagedUser.from(data)).filter(Boolean);
|
|
238
|
-
}
|
|
239
|
-
toJSON() {
|
|
240
|
-
return {
|
|
241
|
-
id: this.id,
|
|
242
|
-
name: this.name,
|
|
243
|
-
identity: this.identity,
|
|
244
|
-
type: this.type,
|
|
245
|
-
profileId: this.profileId,
|
|
246
|
-
roleId: this.roleId,
|
|
247
|
-
resetPassword: this.resetPassword,
|
|
248
|
-
isActive: this.isActive,
|
|
249
|
-
isArchived: this.isArchived,
|
|
250
|
-
role: this.role?.toJSON(),
|
|
251
|
-
createdAt: this.createdAt.toISOString(),
|
|
252
|
-
updatedAt: this.updatedAt.toISOString(),
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { PhoneNumber } from "@temboplus/frontend-core";
|
|
3
|
-
/**
|
|
4
|
-
* Type definition for profile schema using Zod.
|
|
5
|
-
* This type helper ensures type safety when implementing the actual schema.
|
|
6
|
-
*/
|
|
7
|
-
type ProfileZodSchemaType = z.ZodObject<{
|
|
8
|
-
id: z.ZodString;
|
|
9
|
-
firstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
10
|
-
lastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
11
|
-
displayName: z.ZodString;
|
|
12
|
-
phone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
13
|
-
accountNo: z.ZodString;
|
|
14
|
-
email: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
15
|
-
}>;
|
|
16
|
-
/**
|
|
17
|
-
* Zod schema for validating user profile data.
|
|
18
|
-
* Defines validation rules and constraints for each profile field.
|
|
19
|
-
*
|
|
20
|
-
* @const {ProfileType}
|
|
21
|
-
*
|
|
22
|
-
* @property {string} id - Unique identifier for the profile
|
|
23
|
-
* @property {string | null | undefined} firstName - User's first name, can be null or undefined
|
|
24
|
-
* @property {string | null | undefined} lastName - User's last name, can be null or undefined
|
|
25
|
-
* @property {string} displayName - User's display name
|
|
26
|
-
* @property {string | null | undefined} phone - User's contact phone number, can be null or undefined
|
|
27
|
-
* @property {string} accountNo - User's account number
|
|
28
|
-
* @property {string | null | undefined} email - User's email address, can be null or undefined
|
|
29
|
-
*/
|
|
30
|
-
export declare const profileSchema: ProfileZodSchemaType;
|
|
31
|
-
/**
|
|
32
|
-
* TypeScript type representing a validated user profile.
|
|
33
|
-
* Use this type for profile instances that have been validated against the schema.
|
|
34
|
-
*/
|
|
35
|
-
export type ProfileType = z.infer<typeof profileSchema>;
|
|
36
|
-
/**
|
|
37
|
-
* Represents a user profile in the system.
|
|
38
|
-
*
|
|
39
|
-
* This class provides methods for creating, validating, and manipulating user profile data.
|
|
40
|
-
* It integrates with the Zod schema validation for data integrity.
|
|
41
|
-
*/
|
|
42
|
-
export declare class Profile {
|
|
43
|
-
/** Unique identifier for the profile */
|
|
44
|
-
private _id;
|
|
45
|
-
/** User's first name */
|
|
46
|
-
private _firstName?;
|
|
47
|
-
/** User's last name */
|
|
48
|
-
private _lastName?;
|
|
49
|
-
/** User's display name, can be used for presentation */
|
|
50
|
-
private _displayName;
|
|
51
|
-
/** User's phone number, stored as a PhoneNumber object */
|
|
52
|
-
private _phone?;
|
|
53
|
-
/** User's account number */
|
|
54
|
-
private _accountNo;
|
|
55
|
-
/** User's email address */
|
|
56
|
-
private _email?;
|
|
57
|
-
/**
|
|
58
|
-
* Gets the profile schema used for validation.
|
|
59
|
-
*/
|
|
60
|
-
static get schema(): ProfileZodSchemaType;
|
|
61
|
-
/**
|
|
62
|
-
* Creates a new Profile instance with the provided data.
|
|
63
|
-
*
|
|
64
|
-
* Private constructor to enforce use of static factory methods.
|
|
65
|
-
*
|
|
66
|
-
* @param data - Object containing profile information
|
|
67
|
-
*/
|
|
68
|
-
private constructor();
|
|
69
|
-
/**
|
|
70
|
-
* Creates a new Profile instance with the provided data.
|
|
71
|
-
*
|
|
72
|
-
* @param data - Object containing profile information.
|
|
73
|
-
*/
|
|
74
|
-
static create(data: {
|
|
75
|
-
id: string;
|
|
76
|
-
firstName?: string | null;
|
|
77
|
-
lastName?: string | null;
|
|
78
|
-
displayName: string;
|
|
79
|
-
phone?: string | null;
|
|
80
|
-
accountNo: string;
|
|
81
|
-
email?: string | null;
|
|
82
|
-
}): Profile | undefined;
|
|
83
|
-
/**
|
|
84
|
-
* Gets the profile's unique identifier.
|
|
85
|
-
*/
|
|
86
|
-
get id(): string;
|
|
87
|
-
/**
|
|
88
|
-
* Gets the user's first name.
|
|
89
|
-
*/
|
|
90
|
-
get firstName(): string | null | undefined;
|
|
91
|
-
/**
|
|
92
|
-
* Gets the user's last name.
|
|
93
|
-
*/
|
|
94
|
-
get lastName(): string | null | undefined;
|
|
95
|
-
/**
|
|
96
|
-
* Gets the user's display name.
|
|
97
|
-
*/
|
|
98
|
-
get displayName(): string;
|
|
99
|
-
/**
|
|
100
|
-
* Gets the user's phone number object.
|
|
101
|
-
*/
|
|
102
|
-
get phone(): PhoneNumber | null | undefined;
|
|
103
|
-
/**
|
|
104
|
-
* Gets the user's account number.
|
|
105
|
-
*/
|
|
106
|
-
get accountNo(): string;
|
|
107
|
-
/**
|
|
108
|
-
* Gets the user's email address.
|
|
109
|
-
*/
|
|
110
|
-
get email(): string | null | undefined;
|
|
111
|
-
/**
|
|
112
|
-
* Gets the user's formatted phone number in international format.
|
|
113
|
-
*/
|
|
114
|
-
get formattedPhone(): string | null | undefined;
|
|
115
|
-
/**
|
|
116
|
-
* Gets the user's name for display purposes.
|
|
117
|
-
* Returns the display name if it exists, otherwise returns the first and last name combined.
|
|
118
|
-
*/
|
|
119
|
-
getName(): string;
|
|
120
|
-
/**
|
|
121
|
-
* Creates a plain object representation of the profile for validation or serialization.
|
|
122
|
-
*
|
|
123
|
-
* @returns A plain object matching the ProfileType interface
|
|
124
|
-
*/
|
|
125
|
-
toObject(): ProfileType;
|
|
126
|
-
/**
|
|
127
|
-
* Converts the profile to a JSON string.
|
|
128
|
-
*
|
|
129
|
-
* @returns A JSON string representation of the profile
|
|
130
|
-
*/
|
|
131
|
-
toJSON(): string;
|
|
132
|
-
/**
|
|
133
|
-
* Validates the profile data against the Zod schema.
|
|
134
|
-
*
|
|
135
|
-
* @returns True if the profile is valid, false otherwise
|
|
136
|
-
*/
|
|
137
|
-
validate(): boolean;
|
|
138
|
-
/**
|
|
139
|
-
* Creates a Profile instance from a JSON string.
|
|
140
|
-
*
|
|
141
|
-
* @param jsonString - JSON string containing profile data
|
|
142
|
-
* @returns A new Profile instance, or undefined if parsing failed
|
|
143
|
-
*/
|
|
144
|
-
static fromJSON(jsonString: string): Profile | undefined;
|
|
145
|
-
/**
|
|
146
|
-
* Creates a Profile instance from a plain object.
|
|
147
|
-
*
|
|
148
|
-
* @param data - Object containing profile data
|
|
149
|
-
* @returns A new Profile instance, or undefined if parsing failed
|
|
150
|
-
*/
|
|
151
|
-
static from(data: any): Profile | undefined;
|
|
152
|
-
/**
|
|
153
|
-
* Type guard to check if an unknown object is a valid Profile instance.
|
|
154
|
-
*
|
|
155
|
-
* @param obj - The object to check
|
|
156
|
-
* @returns Type predicate indicating if the object is a valid Profile
|
|
157
|
-
*/
|
|
158
|
-
static is(obj: unknown): obj is Profile;
|
|
159
|
-
}
|
|
160
|
-
export {};
|
|
161
|
-
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/src/models/user/profile.ts"],"names":[],"mappings":"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"}
|