@temboplus/afloat 0.1.13 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/esm/src/features/auth/access/contract.d.ts +14 -0
  2. package/esm/src/features/auth/access/contract.d.ts.map +1 -0
  3. package/esm/src/features/auth/access/contract.js +14 -0
  4. package/esm/src/features/auth/contract.d.ts +20 -20
  5. package/esm/src/features/auth/contract.js +2 -2
  6. package/esm/src/features/auth/identity/contract.d.ts +0 -7
  7. package/esm/src/features/auth/identity/contract.d.ts.map +1 -1
  8. package/esm/src/features/auth/identity/contract.js +0 -1
  9. package/esm/src/features/auth/identity/repository.d.ts +2 -2
  10. package/esm/src/features/auth/identity/repository.d.ts.map +1 -1
  11. package/esm/src/features/auth/identity/repository.js +5 -5
  12. package/esm/src/features/auth/manager.js +1 -1
  13. package/esm/src/features/auth/profile/contract.d.ts +17 -25
  14. package/esm/src/features/auth/profile/contract.d.ts.map +1 -1
  15. package/esm/src/features/auth/profile/contract.js +2 -4
  16. package/esm/src/features/auth/repository.d.ts +0 -1
  17. package/esm/src/features/auth/repository.d.ts.map +1 -1
  18. package/esm/src/features/auth/repository.js +3 -11
  19. package/esm/src/features/auth/storage/server_token_handler.d.ts +7 -6
  20. package/esm/src/features/auth/storage/server_token_handler.d.ts.map +1 -1
  21. package/esm/src/features/auth/storage/server_token_handler.js +73 -26
  22. package/esm/src/features/contact/contract.d.ts +10 -10
  23. package/esm/src/features/payout/contract.d.ts +12 -12
  24. package/esm/src/features/wallet/repository.d.ts +1 -28
  25. package/esm/src/features/wallet/repository.d.ts.map +1 -1
  26. package/esm/src/features/wallet/repository.js +0 -51
  27. package/esm/src/models/contact/derivatives/contact.js +2 -2
  28. package/esm/src/models/contact/derivatives/contact_info.d.ts +8 -8
  29. package/esm/src/models/contact/derivatives/contact_info.d.ts.map +1 -1
  30. package/esm/src/models/contact/derivatives/contact_info.js +12 -12
  31. package/esm/src/models/payout/channel.d.ts +4 -4
  32. package/esm/src/models/payout/channel.d.ts.map +1 -1
  33. package/esm/src/models/payout/channel.js +2 -2
  34. package/esm/src/models/payout/derivatives/payout.d.ts.map +1 -1
  35. package/esm/src/models/payout/derivatives/payout.js +2 -2
  36. package/esm/src/models/user/profile.d.ts +135 -12
  37. package/esm/src/models/user/profile.d.ts.map +1 -1
  38. package/esm/src/models/user/profile.js +318 -12
  39. package/esm/src/models/user/user.d.ts +14 -17
  40. package/esm/src/models/user/user.d.ts.map +1 -1
  41. package/esm/src/models/user/user.js +109 -26
  42. package/esm/src/models/wallet/index.d.ts +0 -1
  43. package/esm/src/models/wallet/index.d.ts.map +1 -1
  44. package/esm/src/models/wallet/index.js +0 -1
  45. package/esm/src/shared/token_required_repository.d.ts +78 -0
  46. package/esm/src/shared/token_required_repository.d.ts.map +1 -0
  47. package/esm/src/shared/token_required_repository.js +128 -0
  48. package/package.json +7 -7
  49. package/script/src/features/auth/access/contract.d.ts +14 -0
  50. package/script/src/features/auth/access/contract.d.ts.map +1 -0
  51. package/script/src/features/auth/access/contract.js +17 -0
  52. package/script/src/features/auth/contract.d.ts +20 -20
  53. package/script/src/features/auth/contract.js +1 -1
  54. package/script/src/features/auth/identity/contract.d.ts +0 -7
  55. package/script/src/features/auth/identity/contract.d.ts.map +1 -1
  56. package/script/src/features/auth/identity/contract.js +0 -1
  57. package/script/src/features/auth/identity/repository.d.ts +2 -2
  58. package/script/src/features/auth/identity/repository.d.ts.map +1 -1
  59. package/script/src/features/auth/identity/repository.js +5 -5
  60. package/script/src/features/auth/manager.js +1 -1
  61. package/script/src/features/auth/profile/contract.d.ts +17 -25
  62. package/script/src/features/auth/profile/contract.d.ts.map +1 -1
  63. package/script/src/features/auth/profile/contract.js +1 -3
  64. package/script/src/features/auth/repository.d.ts +0 -1
  65. package/script/src/features/auth/repository.d.ts.map +1 -1
  66. package/script/src/features/auth/repository.js +3 -11
  67. package/script/src/features/auth/storage/server_token_handler.d.ts +7 -6
  68. package/script/src/features/auth/storage/server_token_handler.d.ts.map +1 -1
  69. package/script/src/features/auth/storage/server_token_handler.js +72 -25
  70. package/script/src/features/contact/contract.d.ts +10 -10
  71. package/script/src/features/payout/contract.d.ts +12 -12
  72. package/script/src/features/wallet/repository.d.ts +1 -28
  73. package/script/src/features/wallet/repository.d.ts.map +1 -1
  74. package/script/src/features/wallet/repository.js +0 -51
  75. package/script/src/models/contact/derivatives/contact.js +1 -1
  76. package/script/src/models/contact/derivatives/contact_info.d.ts +8 -8
  77. package/script/src/models/contact/derivatives/contact_info.d.ts.map +1 -1
  78. package/script/src/models/contact/derivatives/contact_info.js +11 -11
  79. package/script/src/models/payout/channel.d.ts +4 -4
  80. package/script/src/models/payout/channel.d.ts.map +1 -1
  81. package/script/src/models/payout/channel.js +2 -2
  82. package/script/src/models/payout/derivatives/payout.d.ts.map +1 -1
  83. package/script/src/models/payout/derivatives/payout.js +1 -1
  84. package/script/src/models/user/profile.d.ts +135 -12
  85. package/script/src/models/user/profile.d.ts.map +1 -1
  86. package/script/src/models/user/profile.js +320 -13
  87. package/script/src/models/user/user.d.ts +14 -17
  88. package/script/src/models/user/user.d.ts.map +1 -1
  89. package/script/src/models/user/user.js +109 -26
  90. package/script/src/models/wallet/index.d.ts +0 -1
  91. package/script/src/models/wallet/index.d.ts.map +1 -1
  92. package/script/src/models/wallet/index.js +0 -1
  93. package/script/src/shared/token_required_repository.d.ts +78 -0
  94. package/script/src/shared/token_required_repository.d.ts.map +1 -0
  95. package/script/src/shared/token_required_repository.js +132 -0
  96. package/esm/src/features/auth/profile/repository.d.ts +0 -11
  97. package/esm/src/features/auth/profile/repository.d.ts.map +0 -1
  98. package/esm/src/features/auth/profile/repository.js +0 -21
  99. package/esm/src/features/files-gen/contract.d.ts +0 -67
  100. package/esm/src/features/files-gen/contract.d.ts.map +0 -1
  101. package/esm/src/features/files-gen/contract.js +0 -40
  102. package/esm/src/features/files-gen/repository.d.ts +0 -50
  103. package/esm/src/features/files-gen/repository.d.ts.map +0 -1
  104. package/esm/src/features/files-gen/repository.js +0 -56
  105. package/esm/src/models/wallet/statement.d.ts +0 -27
  106. package/esm/src/models/wallet/statement.d.ts.map +0 -1
  107. package/esm/src/models/wallet/statement.js +0 -13
  108. package/script/src/features/auth/profile/repository.d.ts +0 -11
  109. package/script/src/features/auth/profile/repository.d.ts.map +0 -1
  110. package/script/src/features/auth/profile/repository.js +0 -25
  111. package/script/src/features/files-gen/contract.d.ts +0 -67
  112. package/script/src/features/files-gen/contract.d.ts.map +0 -1
  113. package/script/src/features/files-gen/contract.js +0 -43
  114. package/script/src/features/files-gen/repository.d.ts +0 -50
  115. package/script/src/features/files-gen/repository.d.ts.map +0 -1
  116. package/script/src/features/files-gen/repository.js +0 -60
  117. package/script/src/models/wallet/statement.d.ts +0 -27
  118. package/script/src/models/wallet/statement.d.ts.map +0 -1
  119. package/script/src/models/wallet/statement.js +0 -16
@@ -85,8 +85,8 @@ export declare const contract: {
85
85
  identity: string;
86
86
  } | null>>;
87
87
  }, z.UnknownKeysParam, z.ZodTypeAny, {
88
- id: string;
89
88
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
89
+ id: string;
90
90
  channel: string;
91
91
  profileId: string;
92
92
  createdAt: Date;
@@ -108,8 +108,8 @@ export declare const contract: {
108
108
  identity: string;
109
109
  } | undefined;
110
110
  }, {
111
- id: string;
112
111
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
112
+ id: string;
113
113
  channel: string;
114
114
  profileId: string;
115
115
  createdAt: Date;
@@ -134,8 +134,8 @@ export declare const contract: {
134
134
  total: z.ZodNumber;
135
135
  }, "strip", z.ZodTypeAny, {
136
136
  results: {
137
- id: string;
138
137
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
138
+ id: string;
139
139
  channel: string;
140
140
  profileId: string;
141
141
  createdAt: Date;
@@ -160,8 +160,8 @@ export declare const contract: {
160
160
  total: number;
161
161
  }, {
162
162
  results: {
163
- id: string;
164
163
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
164
+ id: string;
165
165
  channel: string;
166
166
  profileId: string;
167
167
  createdAt: Date;
@@ -259,8 +259,8 @@ export declare const contract: {
259
259
  identity: string;
260
260
  } | null>>;
261
261
  }, z.UnknownKeysParam, z.ZodTypeAny, {
262
- id: string;
263
262
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
263
+ id: string;
264
264
  channel: string;
265
265
  profileId: string;
266
266
  createdAt: Date;
@@ -282,8 +282,8 @@ export declare const contract: {
282
282
  identity: string;
283
283
  } | undefined;
284
284
  }, {
285
- id: string;
286
285
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
286
+ id: string;
287
287
  channel: string;
288
288
  profileId: string;
289
289
  createdAt: Date;
@@ -308,8 +308,8 @@ export declare const contract: {
308
308
  total: z.ZodNumber;
309
309
  }, "strip", z.ZodTypeAny, {
310
310
  results: {
311
- id: string;
312
311
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
312
+ id: string;
313
313
  channel: string;
314
314
  profileId: string;
315
315
  createdAt: Date;
@@ -334,8 +334,8 @@ export declare const contract: {
334
334
  total: number;
335
335
  }, {
336
336
  results: {
337
- id: string;
338
337
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
338
+ id: string;
339
339
  channel: string;
340
340
  profileId: string;
341
341
  createdAt: Date;
@@ -435,8 +435,8 @@ export declare const contract: {
435
435
  identity: string;
436
436
  } | null>>;
437
437
  }, z.UnknownKeysParam, z.ZodTypeAny, {
438
- id: string;
439
438
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
439
+ id: string;
440
440
  channel: string;
441
441
  profileId: string;
442
442
  createdAt: Date;
@@ -458,8 +458,8 @@ export declare const contract: {
458
458
  identity: string;
459
459
  } | undefined;
460
460
  }, {
461
- id: string;
462
461
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
462
+ id: string;
463
463
  channel: string;
464
464
  profileId: string;
465
465
  createdAt: Date;
@@ -565,8 +565,8 @@ export declare const contract: {
565
565
  identity: string;
566
566
  } | null>>;
567
567
  }, z.UnknownKeysParam, z.ZodTypeAny, {
568
- id: string;
569
568
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
569
+ id: string;
570
570
  channel: string;
571
571
  profileId: string;
572
572
  createdAt: Date;
@@ -588,8 +588,8 @@ export declare const contract: {
588
588
  identity: string;
589
589
  } | undefined;
590
590
  }, {
591
- id: string;
592
591
  status: import("../../models/payout/status.js").PAYOUT_STATUS;
592
+ id: string;
593
593
  channel: string;
594
594
  profileId: string;
595
595
  createdAt: Date;
@@ -1,6 +1,6 @@
1
1
  import { BaseRepository } from "../../shared/base_repository.js";
2
2
  import { contract } from "./contract.js";
3
- import type { STATEMENT_OUTPUT_TYPE, StatementFile, Wallet, WalletStatementItem } from "../../models/wallet/index.js";
3
+ import type { Wallet, WalletStatementItem } from "../../models/wallet/index.js";
4
4
  import type { AfloatAuth } from "../auth/manager.js";
5
5
  /**
6
6
  * Repository class for managing wallet operations including balance checking,
@@ -18,12 +18,6 @@ export declare class WalletRepo extends BaseRepository<typeof contract> {
18
18
  root?: string;
19
19
  auth?: AfloatAuth;
20
20
  });
21
- /**
22
- * Gets an instance of the file generation repository.
23
- * @private
24
- * @returns {AfloatFilesRepo} A new instance of AfloatFilesRepo
25
- */
26
- private get fileGenRepo();
27
21
  /**
28
22
  * Retrieves the current available balance for the wallet.
29
23
  * @throws {PermissionError} If user lacks the ViewBalance permission
@@ -56,26 +50,5 @@ export declare class WalletRepo extends BaseRepository<typeof contract> {
56
50
  };
57
51
  accountNo?: string;
58
52
  }): Promise<WalletStatementItem[]>;
59
- /**
60
- * Generates a statement file for the specified period and account.
61
- * @param {STATEMENT_OUTPUT_TYPE} fileType - The desired output format type for the statement
62
- * @param {Object} props - The statement generation properties
63
- * @param {Date} props.startDate - Start date for the statement period
64
- * @param {Date} props.endDate - End date for the statement period
65
- * @param {string} [props.accountNo] - Optional account number to generate statement for
66
- * @throws {PermissionError} If user lacks the ViewStatement permission
67
- * @returns {Promise<StatementFile>} The generated statement file
68
- */
69
- genStatement(fileType: STATEMENT_OUTPUT_TYPE, props: {
70
- startDate: Date;
71
- endDate: Date;
72
- accountNo?: string;
73
- }): Promise<StatementFile>;
74
- /**
75
- * Generates a PDF containing detailed wallet account information.
76
- * @throws {PermissionError} If user lacks the ViewBalance permission
77
- * @returns {Promise<StatementFile>} The generated PDF file containing wallet details
78
- */
79
- genWalletDetailsPDF(): Promise<StatementFile>;
80
53
  }
81
54
  //# sourceMappingURL=repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../src/src/features/wallet/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EACV,qBAAqB,EACrB,aAAa,EACb,MAAM,EACN,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,cAAc,CAAC,OAAO,QAAQ,CAAC;IAC7D;;;;;OAKG;gBACS,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE;IAOxD;;;;OAIG;IACH,OAAO,KAAK,WAAW,GAEtB;IAED;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBnC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUrC;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,KAAK,EAAE;QACL,KAAK,CAAC,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,OAAO,EAAE,IAAI,CAAA;SAAE,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA4BjC;;;;;;;;;OASG;IACG,YAAY,CAChB,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE;QACL,SAAS,EAAE,IAAI,CAAC;QAChB,OAAO,EAAE,IAAI,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,aAAa,CAAC;IAmBzB;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC;CAapD"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../src/src/features/wallet/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,cAAc,CAAC,OAAO,QAAQ,CAAC;IAC7D;;;;;OAKG;gBACS,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE;IAOxD;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBnC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUrC;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,KAAK,EAAE;QACL,KAAK,CAAC,EAAE;YAAE,SAAS,EAAE,IAAI,CAAC;YAAC,OAAO,EAAE,IAAI,CAAA;SAAE,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,mBAAmB,EAAE,CAAC;CA2BlC"}
@@ -1,6 +1,5 @@
1
1
  import { BaseRepository } from "../../shared/base_repository.js";
2
2
  import { contract } from "./contract.js";
3
- import { AfloatFilesRepo } from "../files-gen/repository.js";
4
3
  import { Permissions } from "../../models/permission.js";
5
4
  import { PermissionError } from "../../errors/index.js";
6
5
  /**
@@ -21,14 +20,6 @@ export class WalletRepo extends BaseRepository {
21
20
  auth: props?.auth,
22
21
  });
23
22
  }
24
- /**
25
- * Gets an instance of the file generation repository.
26
- * @private
27
- * @returns {AfloatFilesRepo} A new instance of AfloatFilesRepo
28
- */
29
- get fileGenRepo() {
30
- return new AfloatFilesRepo({ auth: this.auth });
31
- }
32
23
  /**
33
24
  * Retrieves the current available balance for the wallet.
34
25
  * @throws {PermissionError} If user lacks the ViewBalance permission
@@ -96,46 +87,4 @@ export class WalletRepo extends BaseRepository {
96
87
  }
97
88
  throw new Error("An error occured while fetching statement");
98
89
  }
99
- /**
100
- * Generates a statement file for the specified period and account.
101
- * @param {STATEMENT_OUTPUT_TYPE} fileType - The desired output format type for the statement
102
- * @param {Object} props - The statement generation properties
103
- * @param {Date} props.startDate - Start date for the statement period
104
- * @param {Date} props.endDate - End date for the statement period
105
- * @param {string} [props.accountNo] - Optional account number to generate statement for
106
- * @throws {PermissionError} If user lacks the ViewStatement permission
107
- * @returns {Promise<StatementFile>} The generated statement file
108
- */
109
- async genStatement(fileType, props) {
110
- const auth = this.getAuthForPermissionCheck();
111
- const requirePerm = Permissions.Wallet.ViewStatement;
112
- if (!auth.checkPermission(requirePerm)) {
113
- throw new PermissionError({
114
- message: "You are not authorized to view the statement.",
115
- requiredPermissions: [requirePerm],
116
- });
117
- }
118
- return await this.fileGenRepo.downloadStatement({
119
- start_date: props.startDate,
120
- end_date: props.endDate,
121
- return_file_type: fileType,
122
- account_no: props.accountNo,
123
- });
124
- }
125
- /**
126
- * Generates a PDF containing detailed wallet account information.
127
- * @throws {PermissionError} If user lacks the ViewBalance permission
128
- * @returns {Promise<StatementFile>} The generated PDF file containing wallet details
129
- */
130
- async genWalletDetailsPDF() {
131
- const auth = this.getAuthForPermissionCheck();
132
- const requirePerm = Permissions.Wallet.ViewBalance;
133
- if (!auth.checkPermission(requirePerm)) {
134
- throw new PermissionError({
135
- message: "You are not authorized to view the account details.",
136
- requiredPermissions: [requirePerm],
137
- });
138
- }
139
- return await this.fileGenRepo.genAccountDetailsPDF();
140
- }
141
90
  }
@@ -1,6 +1,6 @@
1
1
  import { ContactSchemas, } from "../schemas.js";
2
2
  import { MobileContactInfo } from "../index.js";
3
- import { Bank, PhoneNumber } from "@temboplus/frontend-core";
3
+ import { Bank, TZPhoneNumber } from "@temboplus/frontend-core";
4
4
  import { BankContactInfo, } from "./contact_info.js";
5
5
  /**
6
6
  * Contact class that wraps the Zod schema and provides additional functionality
@@ -68,7 +68,7 @@ export class Contact {
68
68
  */
69
69
  get info() {
70
70
  if (this.data.type === "Mobile") {
71
- const phone = PhoneNumber.from(this.data.accountNo);
71
+ const phone = TZPhoneNumber.from(this.data.accountNo);
72
72
  if (phone) {
73
73
  return new MobileContactInfo(this.data.displayName, phone);
74
74
  }
@@ -1,5 +1,5 @@
1
1
  import type { ContactType } from "../index.js";
2
- import { Bank, PhoneNumber } from "@temboplus/frontend-core";
2
+ import { Bank, TZPhoneNumber } from "@temboplus/frontend-core";
3
3
  /**
4
4
  * Abstract base class that provides a common interface for different types of contact information.
5
5
  * This class defines the structure and validation requirements for both mobile and bank contacts.
@@ -65,17 +65,17 @@ declare abstract class BaseContactInfo {
65
65
  * @extends BaseContactInfo
66
66
  * @class MobileContactInfo
67
67
  * @property {string} name - The contact's personal name
68
- * @property {PhoneNumber} phoneNumber - The contact's phone number object
68
+ * @property {TZPhoneNumber} phoneNumber - The contact's phone number object
69
69
  */
70
70
  export declare class MobileContactInfo extends BaseContactInfo {
71
71
  readonly name: string;
72
- readonly phoneNumber: PhoneNumber;
72
+ readonly phoneNumber: TZPhoneNumber;
73
73
  /**
74
74
  * Creates a new mobile contact
75
75
  * @param {string} name - The contact's personal name
76
- * @param {PhoneNumber} phoneNumber - The contact's phone number
76
+ * @param {TZPhoneNumber} phoneNumber - The contact's phone number
77
77
  */
78
- constructor(name: string, phoneNumber: PhoneNumber);
78
+ constructor(name: string, phoneNumber: TZPhoneNumber);
79
79
  /**
80
80
  * Validates the mobile contact information
81
81
  * Checks that:
@@ -96,14 +96,14 @@ export declare class MobileContactInfo extends BaseContactInfo {
96
96
  * if (MobileContactInfo.is(maybeContact)) {
97
97
  * // maybeContact is typed as MobileContactInfo
98
98
  * console.log(maybeContact.name);
99
- * console.log(maybeContact.phoneNumber.label);
99
+ * console.log(maybeContact.TZPhoneNumber.label);
100
100
  * }
101
101
  *
102
102
  * @remarks
103
103
  * - Name must be a non-empty string
104
104
  * - Phone number can be either:
105
- * - A string that can be parsed into a valid PhoneNumber
106
- * - A PhoneNumber object with valid properties
105
+ * - A string that can be parsed into a valid TZPhoneNumber
106
+ * - A TZPhoneNumber object with valid properties
107
107
  * - Returns false if either property is invalid or missing
108
108
  */
109
109
  static is(obj: unknown): obj is MobileContactInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"contact_info.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/contact/derivatives/contact_info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAsB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAMjF;;;;;;;GAOG;AACH,uBAAe,eAAe;IAC5B,SAAgB,IAAI,EAAE,WAAW,CAAC;IAElC;;;OAGG;gBACS,IAAI,EAAE,WAAW;IAI7B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO;IAE5B;;;;OAIG;IACH,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,KAAK,gBAAgB,IAAI,MAAM,CAAC;IAExC;;;;OAIG;IACH,QAAQ,KAAK,cAAc,IAAI,MAAM,CAAC;IAEtC;;;;OAIG;IACH,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;aAOlC,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,WAAW;IAP1C;;;;OAIG;gBAEe,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW;IAK1C;;;;;;OAMG;IACH,QAAQ,IAAI,OAAO;IAMnB;;;;;;;;;;;;;;;;;;;;;OAqBG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB;IA6BxD,IAAa,WAAW,IAAI,MAAM,CAEjC;IAED;;;OAGG;IACH,IAAa,SAAS,IAAI,MAAM,CAE/B;IAED,IAAa,OAAO,IAAI,MAAM,CAE7B;IAED,IAAa,gBAAgB,IAAI,MAAM,CAEtC;IAED,IAAa,cAAc,IAAI,MAAM,CAEpC;IAED,IAAa,YAAY,IAAI,MAAM,CAElC;CACF;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,eAAe;aAQhC,OAAO,EAAE,MAAM;aACf,IAAI,EAAE,IAAI;aACV,KAAK,EAAE,MAAM;IAT/B;;;;;OAKG;gBAEe,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM;IAK/B;;;;;;;OAOG;IACH,QAAQ,IAAI,OAAO;IAMnB;;;;;;;;;;;;;;;;;;;;;;OAsBG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe;IA8BtD,IAAa,WAAW,IAAI,MAAM,CAEjC;IAED,IAAa,SAAS,IAAI,MAAM,CAE/B;IAED,IAAa,OAAO,IAAI,MAAM,CAE7B;IAED,IAAa,gBAAgB,IAAI,MAAM,CAEtC;IAED,IAAa,cAAc,IAAI,MAAM,CAEpC;IAED,IAAa,YAAY,IAAI,MAAM,CAElC;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"contact_info.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/contact/derivatives/contact_info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,IAAI,EAEJ,aAAa,EACd,MAAM,0BAA0B,CAAC;AAMlC;;;;;;;GAOG;AACH,uBAAe,eAAe;IAC5B,SAAgB,IAAI,EAAE,WAAW,CAAC;IAElC;;;OAGG;gBACS,IAAI,EAAE,WAAW;IAI7B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,IAAI,OAAO;IAE5B;;;;OAIG;IACH,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,KAAK,gBAAgB,IAAI,MAAM,CAAC;IAExC;;;;OAIG;IACH,QAAQ,KAAK,cAAc,IAAI,MAAM,CAAC;IAEtC;;;;OAIG;IACH,QAAQ,KAAK,YAAY,IAAI,MAAM,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;aAOlC,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,aAAa;IAP5C;;;;OAIG;gBAEe,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,aAAa;IAK5C;;;;;;OAMG;IACH,QAAQ,IAAI,OAAO;IAMnB;;;;;;;;;;;;;;;;;;;;;OAqBG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB;IA6BxD,IAAa,WAAW,IAAI,MAAM,CAEjC;IAED;;;OAGG;IACH,IAAa,SAAS,IAAI,MAAM,CAE/B;IAED,IAAa,OAAO,IAAI,MAAM,CAE7B;IAED,IAAa,gBAAgB,IAAI,MAAM,CAEtC;IAED,IAAa,cAAc,IAAI,MAAM,CAEpC;IAED,IAAa,YAAY,IAAI,MAAM,CAElC;CACF;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,eAAe;aAQhC,OAAO,EAAE,MAAM;aACf,IAAI,EAAE,IAAI;aACV,KAAK,EAAE,MAAM;IAT/B;;;;;OAKG;gBAEe,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM;IAK/B;;;;;;;OAOG;IACH,QAAQ,IAAI,OAAO;IAMnB;;;;;;;;;;;;;;;;;;;;;;OAsBG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe;IA8BtD,IAAa,WAAW,IAAI,MAAM,CAEjC;IAED,IAAa,SAAS,IAAI,MAAM,CAE/B;IAED,IAAa,OAAO,IAAI,MAAM,CAE7B;IAED,IAAa,gBAAgB,IAAI,MAAM,CAEtC;IAED,IAAa,cAAc,IAAI,MAAM,CAEpC;IAED,IAAa,YAAY,IAAI,MAAM,CAElC;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Bank, MobileNumberFormat, PhoneNumber } from "@temboplus/frontend-core";
1
+ import { Bank, PhoneNumberFormat, TZPhoneNumber, } from "@temboplus/frontend-core";
2
2
  import { validateAccName, validateBankAccNo, } from "../validation.js";
3
3
  /**
4
4
  * Abstract base class that provides a common interface for different types of contact information.
@@ -30,13 +30,13 @@ class BaseContactInfo {
30
30
  * @extends BaseContactInfo
31
31
  * @class MobileContactInfo
32
32
  * @property {string} name - The contact's personal name
33
- * @property {PhoneNumber} phoneNumber - The contact's phone number object
33
+ * @property {TZPhoneNumber} phoneNumber - The contact's phone number object
34
34
  */
35
35
  export class MobileContactInfo extends BaseContactInfo {
36
36
  /**
37
37
  * Creates a new mobile contact
38
38
  * @param {string} name - The contact's personal name
39
- * @param {PhoneNumber} phoneNumber - The contact's phone number
39
+ * @param {TZPhoneNumber} phoneNumber - The contact's phone number
40
40
  */
41
41
  constructor(name, phoneNumber) {
42
42
  super("Mobile");
@@ -62,7 +62,7 @@ export class MobileContactInfo extends BaseContactInfo {
62
62
  */
63
63
  validate() {
64
64
  return this.phoneNumber !== undefined &&
65
- PhoneNumber.canConstruct(this.phoneNumber.compactNumber) &&
65
+ TZPhoneNumber.canConstruct(this.phoneNumber.compactNumber) &&
66
66
  this.name.length > 0;
67
67
  }
68
68
  /**
@@ -77,14 +77,14 @@ export class MobileContactInfo extends BaseContactInfo {
77
77
  * if (MobileContactInfo.is(maybeContact)) {
78
78
  * // maybeContact is typed as MobileContactInfo
79
79
  * console.log(maybeContact.name);
80
- * console.log(maybeContact.phoneNumber.label);
80
+ * console.log(maybeContact.TZPhoneNumber.label);
81
81
  * }
82
82
  *
83
83
  * @remarks
84
84
  * - Name must be a non-empty string
85
85
  * - Phone number can be either:
86
- * - A string that can be parsed into a valid PhoneNumber
87
- * - A PhoneNumber object with valid properties
86
+ * - A string that can be parsed into a valid TZPhoneNumber
87
+ * - A TZPhoneNumber object with valid properties
88
88
  * - Returns false if either property is invalid or missing
89
89
  */
90
90
  static is(obj) {
@@ -95,14 +95,14 @@ export class MobileContactInfo extends BaseContactInfo {
95
95
  if (typeof mobileContactInfo.name !== "string")
96
96
  return false;
97
97
  const name = mobileContactInfo.name;
98
- // checks if phoneNumber exists and is valid
98
+ // checks if TZPhoneNumber exists and is valid
99
99
  let phone_number = undefined;
100
100
  if (typeof mobileContactInfo.phoneNumber === "string") {
101
- phone_number = PhoneNumber.from(mobileContactInfo.phoneNumber);
101
+ phone_number = TZPhoneNumber.from(mobileContactInfo.phoneNumber);
102
102
  }
103
103
  if (typeof mobileContactInfo.phoneNumber === "object") {
104
104
  const obj = mobileContactInfo.phoneNumber;
105
- const isValidPhone = PhoneNumber.is(obj);
105
+ const isValidPhone = TZPhoneNumber.is(obj);
106
106
  if (isValidPhone) {
107
107
  phone_number = obj;
108
108
  }
@@ -119,7 +119,7 @@ export class MobileContactInfo extends BaseContactInfo {
119
119
  * @returns {string} Formatted phone number
120
120
  */
121
121
  get accNumber() {
122
- return this.phoneNumber.getNumberWithFormat(MobileNumberFormat.s255);
122
+ return this.phoneNumber.getWithFormat(PhoneNumberFormat.INTERNATIONAL);
123
123
  }
124
124
  get channel() {
125
125
  return this.phoneNumber.networkOperator.mobileMoneyService;
@@ -220,7 +220,7 @@ export class BankContactInfo extends BaseContactInfo {
220
220
  if (typeof bankContactInfo.accNumber !== "string")
221
221
  return false;
222
222
  const accNumber = bankContactInfo.accNumber;
223
- // checks if phoneNumber exists and is valid
223
+ // checks if TZPhoneNumber exists and is valid
224
224
  let bank = undefined;
225
225
  if (typeof bankContactInfo.bank === "object") {
226
226
  const obj = bankContactInfo.bank;
@@ -1,4 +1,4 @@
1
- import type { PhoneNumber } from "@temboplus/frontend-core";
1
+ import type { TZPhoneNumber } from "@temboplus/frontend-core";
2
2
  /**
3
3
  * Represents the available channels through which payouts can be processed.
4
4
  * @enum {string}
@@ -48,11 +48,11 @@ export declare const createPayoutChannelCode: {
48
48
  verto: () => "TZ-VERTO-B2C";
49
49
  /**
50
50
  * Creates a mobile money channel code based on the telecom provider
51
- * @param {PhoneNumber} phoneNumber - Phone number object containing telecom information
51
+ * @param {TZPhoneNumber} phoneNumber - Phone number object containing telecom information
52
52
  * @returns {PayoutChannelCode} Channel code in format "TZ-{TELECOM}-B2C"
53
53
  *
54
- * @see {@link PhoneNumber} from "@jsr/temboplus__tembo-core" for phone number structure
54
+ * @see {@link TZPhoneNumber} from "@jsr/temboplus__tembo-core" for phone number structure
55
55
  */
56
- mobile: (phoneNumber: PhoneNumber) => PayoutChannelCode;
56
+ mobile: (phoneNumber: TZPhoneNumber) => PayoutChannelCode;
57
57
  };
58
58
  //# sourceMappingURL=channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAE3D;;;;GAIG;AACH,oBAAY,cAAc;IACxB,sDAAsD;IACtD,MAAM,WAAW;IACjB,6DAA6D;IAC7D,IAAI,SAAS;IACb,mDAAmD;IACnD,cAAc,mBAAmB;CAClC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,cAAc,GACd,MAAM,MAAM,MAAM,CAAC;AAEvB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;gBACO,aAAa;IAEvB;;;OAGG;iBACQ,cAAc;IAEzB;;;;;;OAMG;0BACmB,WAAW,KAAG,iBAAiB;CAEtD,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/src/models/payout/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D;;;;GAIG;AACH,oBAAY,cAAc;IACxB,sDAAsD;IACtD,MAAM,WAAW;IACjB,6DAA6D;IAC7D,IAAI,SAAS;IACb,mDAAmD;IACnD,cAAc,mBAAmB;CAClC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,cAAc,GACd,MAAM,MAAM,MAAM,CAAC;AAEvB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB;IAClC;;;OAGG;gBACO,aAAa;IAEvB;;;OAGG;iBACQ,cAAc;IAEzB;;;;;;OAMG;0BACmB,aAAa,KAAG,iBAAiB;CAExD,CAAC"}
@@ -37,10 +37,10 @@ export const createPayoutChannelCode = {
37
37
  verto: () => "TZ-VERTO-B2C",
38
38
  /**
39
39
  * Creates a mobile money channel code based on the telecom provider
40
- * @param {PhoneNumber} phoneNumber - Phone number object containing telecom information
40
+ * @param {TZPhoneNumber} phoneNumber - Phone number object containing telecom information
41
41
  * @returns {PayoutChannelCode} Channel code in format "TZ-{TELECOM}-B2C"
42
42
  *
43
- * @see {@link PhoneNumber} from "@jsr/temboplus__tembo-core" for phone number structure
43
+ * @see {@link TZPhoneNumber} from "@jsr/temboplus__tembo-core" for phone number structure
44
44
  */
45
45
  mobile: (phoneNumber) => `TZ-${phoneNumber.networkOperator.id.toString().toUpperCase()}-B2C`,
46
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"payout.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/payout/derivatives/payout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,sBAAsB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1E;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAElC;;OAEG;IACH,OAAO;IAKP,uCAAuC;IACvC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,qDAAqD;IACrD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,kCAAkC;IAClC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,2CAA2C;IAC3C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,+CAA+C;IAC/C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,wCAAwC;IACxC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,iDAAiD;IACjD,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED;;;;;;;;;;;OAWG;IACH,IAAI,MAAM,IAAI,aAAa,CAe1B;IAED,2DAA2D;IAC3D,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,iDAAiD;IACjD,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,wCAAwC;IACxC,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,6CAA6C;IAC7C,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,4CAA4C;IAC5C,IAAI,cAAc,IAAI,sBAAsB,CAE3C;IAED,+CAA+C;IAC/C,IAAI,SAAS,IAAI,cAAc,GAAG,SAAS,CAE1C;IAED,qDAAqD;IACrD,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAE3C;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CA8BzC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAIvC;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;IAIpD;;;OAGG;WACW,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAQzD;;;;;;;;;;;;;;;;;;;;;OAqBG;WACW,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM;IAUvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM;IAO7C;;OAEG;IACI,MAAM,IAAI,UAAU;CAG5B"}
1
+ {"version":3,"file":"payout.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/payout/derivatives/payout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAuB,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,sBAAsB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1E;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAElC;;OAEG;IACH,OAAO;IAKP,uCAAuC;IACvC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,qDAAqD;IACrD,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,kCAAkC;IAClC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,2CAA2C;IAC3C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,+CAA+C;IAC/C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,wCAAwC;IACxC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,iDAAiD;IACjD,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED;;;;;;;;;;;OAWG;IACH,IAAI,MAAM,IAAI,aAAa,CAe1B;IAED,2DAA2D;IAC3D,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,iDAAiD;IACjD,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,wCAAwC;IACxC,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,6CAA6C;IAC7C,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,4CAA4C;IAC5C,IAAI,cAAc,IAAI,sBAAsB,CAE3C;IAED,+CAA+C;IAC/C,IAAI,SAAS,IAAI,cAAc,GAAG,SAAS,CAE1C;IAED,qDAAqD;IACrD,IAAI,UAAU,IAAI,cAAc,GAAG,SAAS,CAE3C;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CA8BzC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAIvC;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;IAIpD;;;OAGG;WACW,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAQzD;;;;;;;;;;;;;;;;;;;;;OAqBG;WACW,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM;IAUvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM;IAO7C;;OAEG;IACI,MAAM,IAAI,UAAU;CAG5B"}
@@ -1,4 +1,4 @@
1
- import { Amount, Bank, PhoneNumber } from "@temboplus/frontend-core";
1
+ import { Amount, Bank, TZPhoneNumber } from "@temboplus/frontend-core";
2
2
  import { PayoutSchemas } from "../schemas.js";
3
3
  import { BankContactInfo, MobileContactInfo, } from "../../contact/index.js";
4
4
  import { PAYOUT_STATUS } from "../status.js";
@@ -133,7 +133,7 @@ export class Payout {
133
133
  get contactInfo() {
134
134
  let contactInfo;
135
135
  // extracting mobile contact information
136
- const phone = PhoneNumber.from(this.data.msisdn);
136
+ const phone = TZPhoneNumber.from(this.data.msisdn);
137
137
  if (phone) {
138
138
  contactInfo = new MobileContactInfo(this.data.payeeName, phone);
139
139
  }
@@ -1,16 +1,17 @@
1
1
  import { z } from "zod";
2
+ import { PhoneNumber } from "@temboplus/frontend-core";
2
3
  /**
3
4
  * Type definition for profile schema using Zod.
4
5
  * This type helper ensures type safety when implementing the actual schema.
5
6
  */
6
- type ProfileType = z.ZodObject<{
7
+ type ProfileZodSchemaType = z.ZodObject<{
7
8
  id: z.ZodString;
8
- firstName: z.ZodString;
9
- lastName: z.ZodString;
9
+ firstName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
10
+ lastName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
10
11
  displayName: z.ZodString;
11
- phone: z.ZodString;
12
+ phone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
12
13
  accountNo: z.ZodString;
13
- email: z.ZodString;
14
+ email: z.ZodNullable<z.ZodOptional<z.ZodString>>;
14
15
  }>;
15
16
  /**
16
17
  * Zod schema for validating user profile data.
@@ -19,20 +20,142 @@ type ProfileType = z.ZodObject<{
19
20
  * @const {ProfileType}
20
21
  *
21
22
  * @property {string} id - Unique identifier for the profile
22
- * @property {string} firstName - User's first name
23
- * @property {string} lastName - User's last name
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
24
25
  * @property {string} displayName - User's display name
25
- * @property {string} phone - User's contact phone number
26
+ * @property {string | null | undefined} phone - User's contact phone number, can be null or undefined
26
27
  * @property {string} accountNo - User's account number
27
- * @property {string} email - User's email address
28
+ * @property {string | null | undefined} email - User's email address, can be null or undefined
28
29
  */
29
- export declare const profileSchema: ProfileType;
30
+ export declare const profileSchema: ProfileZodSchemaType;
30
31
  /**
31
32
  * TypeScript type representing a validated user profile.
32
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.
33
38
  *
34
- * @see {@link profileSchema} for validation rules
39
+ * This class provides methods for creating, validating, and manipulating user profile data.
40
+ * It integrates with the Zod schema validation for data integrity.
35
41
  */
36
- export type Profile = z.infer<typeof profileSchema>;
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
+ }
37
160
  export {};
38
161
  //# sourceMappingURL=profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/src/models/user/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,KAAK,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC;IACtB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC;IACzB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC;IACnB,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC;CACpB,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,EAAE,WAS1B,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/src/models/user/profile.ts"],"names":[],"mappings":"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"}