@explorins/pers-sdk 1.6.47 → 2.0.1

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 (190) hide show
  1. package/README.md +159 -23
  2. package/dist/api-key/api/api-key-api.d.ts +5 -2
  3. package/dist/api-key/api/api-key-api.d.ts.map +1 -1
  4. package/dist/business/api/business-api.d.ts +30 -11
  5. package/dist/business/api/business-api.d.ts.map +1 -1
  6. package/dist/business/api/business-membership-api.d.ts +24 -5
  7. package/dist/business/api/business-membership-api.d.ts.map +1 -1
  8. package/dist/business/services/business-membership-service.d.ts +9 -15
  9. package/dist/business/services/business-membership-service.d.ts.map +1 -1
  10. package/dist/business/services/business-service.d.ts +11 -7
  11. package/dist/business/services/business-service.d.ts.map +1 -1
  12. package/dist/business.cjs +101 -61
  13. package/dist/business.cjs.map +1 -1
  14. package/dist/business.js +101 -61
  15. package/dist/business.js.map +1 -1
  16. package/dist/campaign/api/campaign-api.d.ts +50 -13
  17. package/dist/campaign/api/campaign-api.d.ts.map +1 -1
  18. package/dist/campaign/services/campaign-service.d.ts +13 -12
  19. package/dist/campaign/services/campaign-service.d.ts.map +1 -1
  20. package/dist/campaign.cjs +2 -1
  21. package/dist/campaign.cjs.map +1 -1
  22. package/dist/campaign.js +2 -1
  23. package/dist/campaign.js.map +1 -1
  24. package/dist/chunks/{base-token-service-BSXDwrcq.js → base-token-service-DsD6lSdq.js} +2 -48
  25. package/dist/chunks/base-token-service-DsD6lSdq.js.map +1 -0
  26. package/dist/chunks/{base-token-service-CYuqPPs0.cjs → base-token-service-_64IWVES.cjs} +2 -48
  27. package/dist/chunks/base-token-service-_64IWVES.cjs.map +1 -0
  28. package/dist/chunks/{campaign-service-D-v9ZlUB.cjs → campaign-service-Ae164xl8.cjs} +74 -46
  29. package/dist/chunks/campaign-service-Ae164xl8.cjs.map +1 -0
  30. package/dist/chunks/{campaign-service-CKwkiOLx.js → campaign-service-rlK4WeSY.js} +74 -46
  31. package/dist/chunks/campaign-service-rlK4WeSY.js.map +1 -0
  32. package/dist/chunks/{donation-service-D-xFrONi.cjs → donation-service--6cnTvWq.cjs} +9 -5
  33. package/dist/chunks/donation-service--6cnTvWq.cjs.map +1 -0
  34. package/dist/chunks/{donation-service-CyJS4DIZ.js → donation-service-xiXZ2Eto.js} +9 -5
  35. package/dist/chunks/donation-service-xiXZ2Eto.js.map +1 -0
  36. package/dist/chunks/pagination-utils-9vQ-Npkr.js +166 -0
  37. package/dist/chunks/pagination-utils-9vQ-Npkr.js.map +1 -0
  38. package/dist/chunks/pagination-utils-B2jRHMSO.cjs +173 -0
  39. package/dist/chunks/pagination-utils-B2jRHMSO.cjs.map +1 -0
  40. package/dist/chunks/{pers-sdk-DULFjOW2.cjs → pers-sdk-B_i-bGwq.cjs} +249 -235
  41. package/dist/chunks/pers-sdk-B_i-bGwq.cjs.map +1 -0
  42. package/dist/chunks/{pers-sdk-VmeBqUEP.js → pers-sdk-CyGgL8Dg.js} +243 -229
  43. package/dist/chunks/pers-sdk-CyGgL8Dg.js.map +1 -0
  44. package/dist/chunks/{token-service-CpVwC5Eb.js → token-service-Bfj6C0yz.js} +62 -30
  45. package/dist/chunks/token-service-Bfj6C0yz.js.map +1 -0
  46. package/dist/chunks/{token-service-BWScn8Qa.cjs → token-service-BlbXrxnS.cjs} +62 -30
  47. package/dist/chunks/token-service-BlbXrxnS.cjs.map +1 -0
  48. package/dist/chunks/{transaction-service-CXjTHCFu.cjs → transaction-service-BcJfyCcq.cjs} +68 -31
  49. package/dist/chunks/transaction-service-BcJfyCcq.cjs.map +1 -0
  50. package/dist/chunks/{transaction-service-B7h_4Hg3.js → transaction-service-CnOD3scu.js} +68 -31
  51. package/dist/chunks/transaction-service-CnOD3scu.js.map +1 -0
  52. package/dist/chunks/{user-service-doT5vsBD.js → user-service-BGP3SZpk.js} +24 -12
  53. package/dist/chunks/user-service-BGP3SZpk.js.map +1 -0
  54. package/dist/chunks/{user-service-B89wBOV1.cjs → user-service-gITOx4qj.cjs} +24 -12
  55. package/dist/chunks/user-service-gITOx4qj.cjs.map +1 -0
  56. package/dist/core.cjs +10 -9
  57. package/dist/core.cjs.map +1 -1
  58. package/dist/core.js +10 -9
  59. package/dist/core.js.map +1 -1
  60. package/dist/donation/api/donation-api.d.ts +3 -1
  61. package/dist/donation/api/donation-api.d.ts.map +1 -1
  62. package/dist/donation/services/donation-service.d.ts +3 -1
  63. package/dist/donation/services/donation-service.d.ts.map +1 -1
  64. package/dist/donation.cjs +2 -1
  65. package/dist/donation.cjs.map +1 -1
  66. package/dist/donation.js +2 -1
  67. package/dist/donation.js.map +1 -1
  68. package/dist/index.cjs +23 -16
  69. package/dist/index.cjs.map +1 -1
  70. package/dist/index.js +11 -10
  71. package/dist/index.js.map +1 -1
  72. package/dist/managers/analytics-manager.d.ts +9 -9
  73. package/dist/managers/api-key-manager.d.ts +8 -6
  74. package/dist/managers/api-key-manager.d.ts.map +1 -1
  75. package/dist/managers/business-manager.d.ts +9 -7
  76. package/dist/managers/business-manager.d.ts.map +1 -1
  77. package/dist/managers/campaign-manager.d.ts +21 -20
  78. package/dist/managers/campaign-manager.d.ts.map +1 -1
  79. package/dist/managers/donation-manager.d.ts +4 -2
  80. package/dist/managers/donation-manager.d.ts.map +1 -1
  81. package/dist/managers/file-manager.d.ts +2 -2
  82. package/dist/managers/purchase-manager.d.ts +26 -24
  83. package/dist/managers/purchase-manager.d.ts.map +1 -1
  84. package/dist/managers/redemption-manager.d.ts +103 -91
  85. package/dist/managers/redemption-manager.d.ts.map +1 -1
  86. package/dist/managers/tenant-manager.d.ts +5 -2
  87. package/dist/managers/tenant-manager.d.ts.map +1 -1
  88. package/dist/managers/token-manager.d.ts +6 -4
  89. package/dist/managers/token-manager.d.ts.map +1 -1
  90. package/dist/managers/transaction-manager.d.ts +18 -17
  91. package/dist/managers/transaction-manager.d.ts.map +1 -1
  92. package/dist/managers/user-manager.d.ts +4 -2
  93. package/dist/managers/user-manager.d.ts.map +1 -1
  94. package/dist/managers/user-status-manager.d.ts +6 -4
  95. package/dist/managers/user-status-manager.d.ts.map +1 -1
  96. package/dist/managers/web3-manager.d.ts.map +1 -1
  97. package/dist/package.json +1 -1
  98. package/dist/payment/api/payment-api.d.ts +15 -18
  99. package/dist/payment/api/payment-api.d.ts.map +1 -1
  100. package/dist/payment/services/payment-service.d.ts +6 -4
  101. package/dist/payment/services/payment-service.d.ts.map +1 -1
  102. package/dist/payment.cjs +219 -15
  103. package/dist/payment.cjs.map +1 -1
  104. package/dist/payment.js +209 -1
  105. package/dist/payment.js.map +1 -1
  106. package/dist/redemption/api/redemption-api.d.ts +22 -11
  107. package/dist/redemption/api/redemption-api.d.ts.map +1 -1
  108. package/dist/redemption/services/redemption-service.d.ts +11 -9
  109. package/dist/redemption/services/redemption-service.d.ts.map +1 -1
  110. package/dist/redemption.cjs +347 -15
  111. package/dist/redemption.cjs.map +1 -1
  112. package/dist/redemption.js +337 -1
  113. package/dist/redemption.js.map +1 -1
  114. package/dist/shared/index.d.ts +1 -0
  115. package/dist/shared/index.d.ts.map +1 -1
  116. package/dist/shared/utils/pagination-utils.d.ts +184 -0
  117. package/dist/shared/utils/pagination-utils.d.ts.map +1 -0
  118. package/dist/tenant/api/tenant-api.d.ts +6 -1
  119. package/dist/tenant/api/tenant-api.d.ts.map +1 -1
  120. package/dist/tenant/services/tenant-service.d.ts +5 -2
  121. package/dist/tenant/services/tenant-service.d.ts.map +1 -1
  122. package/dist/tenant.cjs +171 -15
  123. package/dist/tenant.cjs.map +1 -1
  124. package/dist/tenant.js +161 -1
  125. package/dist/tenant.js.map +1 -1
  126. package/dist/token/api/token-api.d.ts +24 -7
  127. package/dist/token/api/token-api.d.ts.map +1 -1
  128. package/dist/token/base/base-token-service.d.ts +5 -4
  129. package/dist/token/base/base-token-service.d.ts.map +1 -1
  130. package/dist/token/services/token-service.d.ts +10 -8
  131. package/dist/token/services/token-service.d.ts.map +1 -1
  132. package/dist/token/token-sdk.d.ts +5 -34
  133. package/dist/token/token-sdk.d.ts.map +1 -1
  134. package/dist/token.cjs +3 -2
  135. package/dist/token.cjs.map +1 -1
  136. package/dist/token.js +3 -2
  137. package/dist/token.js.map +1 -1
  138. package/dist/transaction/api/transaction-api.d.ts +48 -6
  139. package/dist/transaction/api/transaction-api.d.ts.map +1 -1
  140. package/dist/transaction/services/transaction-service.d.ts +12 -4
  141. package/dist/transaction/services/transaction-service.d.ts.map +1 -1
  142. package/dist/transaction.cjs +2 -1
  143. package/dist/transaction.cjs.map +1 -1
  144. package/dist/transaction.js +2 -1
  145. package/dist/transaction.js.map +1 -1
  146. package/dist/user/api/user-api.d.ts +4 -2
  147. package/dist/user/api/user-api.d.ts.map +1 -1
  148. package/dist/user/services/user-service.d.ts +4 -2
  149. package/dist/user/services/user-service.d.ts.map +1 -1
  150. package/dist/user-status/api/user-status-api.d.ts +6 -4
  151. package/dist/user-status/api/user-status-api.d.ts.map +1 -1
  152. package/dist/user-status/index.d.ts +4 -2
  153. package/dist/user-status/index.d.ts.map +1 -1
  154. package/dist/user-status/services/user-status-service.d.ts +4 -2
  155. package/dist/user-status/services/user-status-service.d.ts.map +1 -1
  156. package/dist/user-status.cjs +22 -14
  157. package/dist/user-status.cjs.map +1 -1
  158. package/dist/user-status.js +22 -14
  159. package/dist/user-status.js.map +1 -1
  160. package/dist/user.cjs +2 -1
  161. package/dist/user.cjs.map +1 -1
  162. package/dist/user.js +2 -1
  163. package/dist/user.js.map +1 -1
  164. package/package.json +1 -1
  165. package/dist/chunks/base-token-service-BSXDwrcq.js.map +0 -1
  166. package/dist/chunks/base-token-service-CYuqPPs0.cjs.map +0 -1
  167. package/dist/chunks/campaign-service-CKwkiOLx.js.map +0 -1
  168. package/dist/chunks/campaign-service-D-v9ZlUB.cjs.map +0 -1
  169. package/dist/chunks/donation-service-CyJS4DIZ.js.map +0 -1
  170. package/dist/chunks/donation-service-D-xFrONi.cjs.map +0 -1
  171. package/dist/chunks/payment-service-B4qx0qiE.cjs +0 -220
  172. package/dist/chunks/payment-service-B4qx0qiE.cjs.map +0 -1
  173. package/dist/chunks/payment-service-DfCBFosx.js +0 -217
  174. package/dist/chunks/payment-service-DfCBFosx.js.map +0 -1
  175. package/dist/chunks/pers-sdk-DULFjOW2.cjs.map +0 -1
  176. package/dist/chunks/pers-sdk-VmeBqUEP.js.map +0 -1
  177. package/dist/chunks/redemption-service-7qbeQxEM.cjs +0 -330
  178. package/dist/chunks/redemption-service-7qbeQxEM.cjs.map +0 -1
  179. package/dist/chunks/redemption-service-BT0J5Iy7.js +0 -327
  180. package/dist/chunks/redemption-service-BT0J5Iy7.js.map +0 -1
  181. package/dist/chunks/tenant-service-DME24vr1.cjs +0 -157
  182. package/dist/chunks/tenant-service-DME24vr1.cjs.map +0 -1
  183. package/dist/chunks/tenant-service-DxtHAlaa.js +0 -154
  184. package/dist/chunks/tenant-service-DxtHAlaa.js.map +0 -1
  185. package/dist/chunks/token-service-BWScn8Qa.cjs.map +0 -1
  186. package/dist/chunks/token-service-CpVwC5Eb.js.map +0 -1
  187. package/dist/chunks/transaction-service-B7h_4Hg3.js.map +0 -1
  188. package/dist/chunks/transaction-service-CXjTHCFu.cjs.map +0 -1
  189. package/dist/chunks/user-service-B89wBOV1.cjs.map +0 -1
  190. package/dist/chunks/user-service-doT5vsBD.js.map +0 -1
@@ -1,6 +1,8 @@
1
+ import { PaginatedResponseDTO } from '@explorins/pers-shared';
1
2
  import { PersApiClient } from '../core/pers-api-client';
2
3
  import { PersEventEmitter } from '../core/events';
3
4
  import { RedemptionService } from '../redemption';
5
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
4
6
  import type { RedemptionDTO, RedemptionCreateRequestDTO, RedemptionTypeDTO, RedemptionRedeemDTO, RedemptionRedeemRequestResponseDTO, TokenUnitCreateRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
5
7
  /**
6
8
  * Redemption Manager - Clean, high-level interface for redemption operations
@@ -16,7 +18,7 @@ import type { RedemptionDTO, RedemptionCreateRequestDTO, RedemptionTypeDTO, Rede
16
18
  * @example Basic Redemption Operations
17
19
  * ```typescript
18
20
  * // Browse available redemption offers
19
- * const offers = await sdk.redemptions.getActiveRedemptions();
21
+ * const { data: offers } = await sdk.redemptions.getRedemptions();
20
22
  * console.log(`${offers.length} redemption offers available`);
21
23
  *
22
24
  * // Redeem a specific offer
@@ -24,7 +26,7 @@ import type { RedemptionDTO, RedemptionCreateRequestDTO, RedemptionTypeDTO, Rede
24
26
  * console.log('Redemption successful:', redemptionResult.success);
25
27
  *
26
28
  * // Check redemption history
27
- * const history = await sdk.redemptions.getUserRedemptions();
29
+ * const { data: history } = await sdk.redemptions.getUserRedemptions();
28
30
  * console.log(`You have redeemed ${history.length} offers`);
29
31
  * ```
30
32
  *
@@ -69,46 +71,102 @@ export declare class RedemptionManager {
69
71
  private redemptionService;
70
72
  constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
71
73
  /**
72
- * Get all active redemption offers
74
+ * Get redemption offers
73
75
  *
74
- * Retrieves all currently available redemption offers that users can discover
75
- * and redeem. Active redemptions include discounts, vouchers, products, and
76
- * services that can be purchased using loyalty tokens.
76
+ * Retrieves redemption offers based on user permissions and optional filters.
77
+ * The results returned depend on the authenticated user's role:
77
78
  *
78
- * @returns Promise resolving to array of active redemption offers
79
+ * **Regular Users:** See only active redemption offers available for purchase
80
+ * **Administrators:** Can see all redemptions and filter by active/inactive status
79
81
  *
80
- * @example
82
+ * Active redemptions include discounts, vouchers, products, and services that
83
+ * can be purchased using loyalty tokens. The backend automatically enforces
84
+ * permission-based filtering.
85
+ *
86
+ * @param options - Optional filters and pagination:
87
+ * - `active`: Filter by active status (true/false). Admins only - regular users always see active offers
88
+ * - Pagination options: `page`, `limit`, `sortBy`, `sortOrder`
89
+ * @returns Promise resolving to paginated redemption offers
90
+ *
91
+ * @example Regular User - Browse Active Offers
81
92
  * ```typescript
82
- * const activeOffers = await sdk.redemptions.getActiveRedemptions();
93
+ * // Regular users automatically see only active offers
94
+ * const { data: offers, pagination } = await sdk.redemptions.getRedemptions();
83
95
  *
84
- * console.log('🎁 Available Redemption Offers:');
85
- * activeOffers.forEach(offer => {
96
+ * console.log('Available Redemption Offers:');
97
+ * console.log(`Showing ${offers.length} of ${pagination.total} offers`);
98
+ *
99
+ * offers.forEach(offer => {
86
100
  * console.log(`\n${offer.title}`);
87
- * console.log(`📝 ${offer.description}`);
88
- * console.log(`🏷️ Type: ${offer.redemptionType?.name || 'General'}`);
101
+ * console.log(`${offer.description}`);
102
+ * console.log(`Type: ${offer.redemptionType?.name || 'General'}`);
89
103
  *
90
104
  * if (offer.tokenUnits?.length) {
91
- * console.log('💰 Cost:');
105
+ * console.log('Cost:');
92
106
  * offer.tokenUnits.forEach(unit => {
93
107
  * console.log(` ${unit.amount} ${unit.token.symbol}`);
94
108
  * });
95
109
  * }
96
110
  *
97
111
  * if (offer.availableQuantity !== undefined) {
98
- * console.log(`📦 Available: ${offer.availableQuantity}`);
112
+ * console.log(`Available: ${offer.availableQuantity}`);
99
113
  * }
100
114
  * });
101
115
  *
102
116
  * // Filter offers by affordability
103
- * const userBalance = 1000; // User's loyalty points
104
- * const affordableOffers = activeOffers.filter(offer =>
117
+ * const userBalance = 1000;
118
+ * const affordableOffers = offers.filter(offer =>
105
119
  * offer.tokenUnits?.every(unit => unit.amount <= userBalance)
106
120
  * );
107
121
  *
108
- * console.log(`\n💡 ${affordableOffers.length} offers within your budget`);
122
+ * console.log(`\n${affordableOffers.length} offers within your budget`);
123
+ * ```
124
+ *
125
+ * @example Admin - Manage All Redemptions
126
+ * ```typescript
127
+ * // Admins can see all redemptions and filter by status
128
+ * const { data: allRedemptions } = await sdk.redemptions.getRedemptions();
129
+ * const { data: activeOnly } = await sdk.redemptions.getRedemptions({ active: true });
130
+ * const { data: inactiveOnly } = await sdk.redemptions.getRedemptions({ active: false });
131
+ *
132
+ * console.log('Redemption Inventory:');
133
+ * console.log(`Total offers: ${allRedemptions.length}`);
134
+ * console.log(`Active offers: ${activeOnly.length}`);
135
+ * console.log(`Inactive offers: ${inactiveOnly.length}`);
136
+ *
137
+ * // Analyze by type
138
+ * const offersByType = allRedemptions.reduce((acc, offer) => {
139
+ * const type = offer.redemptionType?.name || 'Unspecified';
140
+ * acc[type] = (acc[type] || 0) + 1;
141
+ * return acc;
142
+ * }, {});
143
+ *
144
+ * console.log('\nBy type:', offersByType);
145
+ * ```
146
+ *
147
+ * @example Pagination
148
+ * ```typescript
149
+ * // Load first page
150
+ * const { data: firstPage, pagination } = await sdk.redemptions.getRedemptions({
151
+ * page: 1,
152
+ * limit: 10
153
+ * });
154
+ *
155
+ * console.log(`Page ${pagination.page} of ${pagination.totalPages}`);
156
+ * console.log(`${firstPage.length} offers on this page`);
157
+ *
158
+ * // Load next page if available
159
+ * if (pagination.hasNextPage) {
160
+ * const { data: nextPage } = await sdk.redemptions.getRedemptions({
161
+ * page: pagination.page + 1,
162
+ * limit: 10
163
+ * });
164
+ * }
109
165
  * ```
110
166
  */
111
- getActiveRedemptions(): Promise<RedemptionDTO[]>;
167
+ getRedemptions(options?: {
168
+ active?: boolean;
169
+ } & PaginationOptions): Promise<PaginatedResponseDTO<RedemptionDTO>>;
112
170
  /**
113
171
  * Get available redemption types
114
172
  *
@@ -116,13 +174,13 @@ export declare class RedemptionManager {
116
174
  * rewards and offers. Types help users navigate and filter redemption options
117
175
  * based on their preferences and needs.
118
176
  *
119
- * @returns Promise resolving to array of redemption type definitions
177
+ * @returns Promise resolving to paginated redemption type definitions
120
178
  *
121
179
  * @example
122
180
  * ```typescript
123
- * const redemptionTypes = await sdk.redemptions.getRedemptionTypes();
181
+ * const { data: redemptionTypes } = await sdk.redemptions.getRedemptionTypes();
124
182
  *
125
- * console.log('🏷️ Redemption Categories:');
183
+ * console.log('Redemption Categories:');
126
184
  * redemptionTypes.forEach(type => {
127
185
  * console.log(`- ${type.name}: ${type.description}`);
128
186
  * });
@@ -143,7 +201,7 @@ export declare class RedemptionManager {
143
201
  * );
144
202
  * ```
145
203
  */
146
- getRedemptionTypes(): Promise<RedemptionTypeDTO[]>;
204
+ getRedemptionTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<RedemptionTypeDTO>>;
147
205
  /**
148
206
  * Redeem a redemption offer
149
207
  *
@@ -162,30 +220,30 @@ export declare class RedemptionManager {
162
220
  * const result = await sdk.redemptions.redeem('coffee-voucher-123');
163
221
  *
164
222
  * if (result.success) {
165
- * console.log('Redemption Successful!');
223
+ * console.log('Redemption Successful!');
166
224
  * console.log('Confirmation ID:', result.id);
167
225
  * console.log('Redeemed at:', result.redeemedAt);
168
226
  *
169
227
  * // Display redemption details
170
228
  * if (result.voucherCode) {
171
- * console.log('🎫 Voucher Code:', result.voucherCode);
229
+ * console.log('Voucher Code:', result.voucherCode);
172
230
  * console.log('Present this code to redeem your reward');
173
231
  * }
174
232
  *
175
233
  * if (result.instructions) {
176
- * console.log('📋 Instructions:', result.instructions);
234
+ * console.log('Instructions:', result.instructions);
177
235
  * }
178
236
  *
179
237
  * // Show tokens deducted
180
238
  * if (result.tokensUsed?.length) {
181
- * console.log('\n💸 Tokens Used:');
239
+ * console.log('\nTokens Used:');
182
240
  * result.tokensUsed.forEach(token => {
183
241
  * console.log(`- ${token.amount} ${token.symbol}`);
184
242
  * });
185
243
  * }
186
244
  *
187
245
  * } else {
188
- * console.log('Redemption failed:', result.error);
246
+ * console.log('Redemption failed:', result.error);
189
247
  * }
190
248
  *
191
249
  * } catch (error) {
@@ -193,9 +251,9 @@ export declare class RedemptionManager {
193
251
  *
194
252
  * // Handle specific error cases
195
253
  * if (error.message.includes('insufficient')) {
196
- * console.log('💰 You need more loyalty points for this redemption');
254
+ * console.log('You need more loyalty points for this redemption');
197
255
  * } else if (error.message.includes('unavailable')) {
198
- * console.log('😔 This offer is no longer available');
256
+ * console.log('This offer is no longer available');
199
257
  * }
200
258
  * }
201
259
  * ```
@@ -203,7 +261,7 @@ export declare class RedemptionManager {
203
261
  * @example Redemption with Pre-Validation
204
262
  * ```typescript
205
263
  * // Get offer details first
206
- * const offers = await sdk.redemptions.getActiveRedemptions();
264
+ * const { data: offers } = await sdk.redemptions.getRedemptions();
207
265
  * const targetOffer = offers.find(o => o.id === 'premium-discount');
208
266
  *
209
267
  * if (targetOffer) {
@@ -231,25 +289,25 @@ export declare class RedemptionManager {
231
289
  * completed. Includes redemption details, timestamps, voucher codes, and
232
290
  * token usage. Useful for user account history and support purposes.
233
291
  *
234
- * @returns Promise resolving to array of user's redemption records
292
+ * @returns Promise resolving to paginated user redemption records
235
293
  *
236
294
  * @example
237
295
  * ```typescript
238
- * const userRedemptions = await sdk.redemptions.getUserRedemptions();
296
+ * const { data: userRedemptions, pagination } = await sdk.redemptions.getUserRedemptions();
239
297
  *
240
- * console.log(`📜 Redemption History (${userRedemptions.length} items):`);
298
+ * console.log(`Redemption History (${userRedemptions.length} of ${pagination.total} items):`);
241
299
  *
242
300
  * userRedemptions.forEach((redemption, index) => {
243
301
  * console.log(`\n${index + 1}. ${redemption.redemption.title}`);
244
- * console.log(` 📅 Date: ${new Date(redemption.redeemedAt).toLocaleDateString()}`);
245
- * console.log(` 🏷️ Type: ${redemption.redemption.redemptionType?.name || 'General'}`);
302
+ * console.log(` Date: ${new Date(redemption.redeemedAt).toLocaleDateString()}`);
303
+ * console.log(` Type: ${redemption.redemption.redemptionType?.name || 'General'}`);
246
304
  *
247
305
  * if (redemption.voucherCode) {
248
- * console.log(` 🎫 Voucher: ${redemption.voucherCode}`);
306
+ * console.log(` Voucher: ${redemption.voucherCode}`);
249
307
  * }
250
308
  *
251
309
  * if (redemption.tokensUsed?.length) {
252
- * console.log(` 💸 Cost:`);
310
+ * console.log(` Cost:`);
253
311
  * redemption.tokensUsed.forEach(token => {
254
312
  * console.log(` ${token.amount} ${token.symbol}`);
255
313
  * });
@@ -257,7 +315,7 @@ export declare class RedemptionManager {
257
315
  *
258
316
  * // Show status if available
259
317
  * if (redemption.status) {
260
- * console.log(` 📊 Status: ${redemption.status}`);
318
+ * console.log(` Status: ${redemption.status}`);
261
319
  * }
262
320
  * });
263
321
  *
@@ -267,7 +325,7 @@ export declare class RedemptionManager {
267
325
  * new Date(r.redeemedAt) > new Date(Date.now() - 30 * 24 * 60 * 60 * 1000)
268
326
  * ).length;
269
327
  *
270
- * console.log(`\n📊 Statistics:`);
328
+ * console.log(`\nStatistics:`);
271
329
  * console.log(`Total redemptions: ${totalRedemptions}`);
272
330
  * console.log(`This month: ${recentRedemptions}`);
273
331
  *
@@ -278,59 +336,13 @@ export declare class RedemptionManager {
278
336
  * return acc;
279
337
  * }, {});
280
338
  *
281
- * console.log(`\n📈 By category:`);
339
+ * console.log(`\nBy category:`);
282
340
  * Object.entries(byType).forEach(([type, count]) => {
283
341
  * console.log(`${type}: ${count} redemptions`);
284
342
  * });
285
343
  * ```
286
344
  */
287
- getUserRedemptions(): Promise<RedemptionRedeemDTO[]>;
288
- /**
289
- * Admin: Get all redemptions
290
- *
291
- * Retrieves all redemption offers in the system regardless of status. This
292
- * operation requires administrator privileges and is used for comprehensive
293
- * redemption management, reporting, and lifecycle operations.
294
- *
295
- * @param active - Optional filter to show only active or inactive redemptions
296
- * @returns Promise resolving to array of all redemptions
297
- * @throws {PersApiError} When not authenticated as administrator
298
- *
299
- * @example
300
- * ```typescript
301
- * // Admin operation - get redemption overview
302
- * const allRedemptions = await sdk.redemptions.getAllRedemptions();
303
- * const activeRedemptions = await sdk.redemptions.getAllRedemptions(true);
304
- * const inactiveRedemptions = await sdk.redemptions.getAllRedemptions(false);
305
- *
306
- * console.log('📊 Redemption Inventory:');
307
- * console.log(`Total offers: ${allRedemptions.length}`);
308
- * console.log(`Active offers: ${activeRedemptions.length}`);
309
- * console.log(`Inactive offers: ${inactiveRedemptions.length}`);
310
- *
311
- * // Analyze offers by type
312
- * const offersByType = allRedemptions.reduce((acc, offer) => {
313
- * const type = offer.redemptionType?.name || 'Unspecified';
314
- * acc[type] = (acc[type] || 0) + 1;
315
- * return acc;
316
- * }, {});
317
- *
318
- * console.log('\n🏷️ Offers by type:');
319
- * Object.entries(offersByType).forEach(([type, count]) => {
320
- * console.log(`${type}: ${count} offers`);
321
- * });
322
- *
323
- * // Find offers needing attention
324
- * const lowStock = allRedemptions.filter(offer =>
325
- * offer.availableQuantity && offer.availableQuantity < 10
326
- * );
327
- *
328
- * if (lowStock.length > 0) {
329
- * console.log(`\n⚠️ ${lowStock.length} offers running low on stock`);
330
- * }
331
- * ```
332
- */
333
- getAllRedemptions(active?: boolean): Promise<RedemptionDTO[]>;
345
+ getUserRedemptions(options?: PaginationOptions): Promise<PaginatedResponseDTO<RedemptionRedeemDTO>>;
334
346
  /**
335
347
  * Admin: Create new redemption offer
336
348
  *
@@ -355,7 +367,7 @@ export declare class RedemptionManager {
355
367
  * validUntil: '2024-08-31T23:59:59Z'
356
368
  * });
357
369
  *
358
- * console.log('New redemption created:', newRedemption.title);
370
+ * console.log('New redemption created:', newRedemption.title);
359
371
  * console.log('Redemption ID:', newRedemption.id);
360
372
  *
361
373
  * // Set redemption cost
@@ -365,7 +377,7 @@ export declare class RedemptionManager {
365
377
  * type: 'COST'
366
378
  * });
367
379
  *
368
- * console.log('💰 Cost set: 750 loyalty points');
380
+ * console.log('Cost set: 750 loyalty points');
369
381
  * ```
370
382
  */
371
383
  createRedemption(redemptionData: RedemptionCreateRequestDTO): Promise<RedemptionDTO>;
@@ -413,7 +425,7 @@ export declare class RedemptionManager {
413
425
  * const updated = await sdk.redemptions.toggleRedemptionStatus('seasonal-offer');
414
426
  *
415
427
  * console.log(`Redemption ${updated.isActive ? 'activated' : 'deactivated'}`);
416
- * console.log('Status:', updated.isActive ? 'Available' : 'Unavailable');
428
+ * console.log('Status:', updated.isActive ? 'Available' : 'Unavailable');
417
429
  *
418
430
  * // Reactivate when ready
419
431
  * if (!updated.isActive) {
@@ -1 +1 @@
1
- {"version":3,"file":"redemption-manager.d.ts","sourceRoot":"","sources":["../../src/managers/redemption-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EACV,aAAa,EACb,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,kCAAkC,EAClC,yBAAyB,EAC1B,MAAM,iDAAiD,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,iBAAiB,CAAoB;gBAGnC,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,8BAAkB;IAMnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,oBAAoB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAItD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACG,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kCAAkC,CAAC;IAa/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACG,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAI1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACG,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAInE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1F;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAIhH;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;IAInH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,oBAAoB,IAAI,iBAAiB;CAG1C"}
1
+ {"version":3,"file":"redemption-manager.d.ts","sourceRoot":"","sources":["../../src/managers/redemption-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EACV,aAAa,EACb,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,kCAAkC,EAClC,yBAAyB,EAC1B,MAAM,iDAAiD,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,iBAAiB,CAAoB;gBAGnC,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,8BAAkB;IAMnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6FG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAItH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAIvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACG,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kCAAkC,CAAC;IAa/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAIzG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1F;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC;IAIhH;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACG,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;IAInH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,oBAAoB,IAAI,iBAAiB;CAG1C"}
@@ -1,5 +1,7 @@
1
+ import { PaginatedResponseDTO } from '@explorins/pers-shared';
1
2
  import { PersApiClient } from '../core/pers-api-client';
2
3
  import { TenantService } from '../tenant';
4
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
3
5
  import type { TenantPublicDTO, TenantClientConfigDTO, AdminDTO, AdminCreateRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
6
  /**
5
7
  * Tenant Manager - Clean, high-level interface for tenant operations
@@ -39,9 +41,10 @@ export declare class TenantManager {
39
41
  /**
40
42
  * Admin: Get all admins
41
43
  *
42
- * @returns Promise resolving to array of admins
44
+ * @param options - Pagination options
45
+ * @returns Promise resolving to paginated admins
43
46
  */
44
- getAdmins(): Promise<AdminDTO[]>;
47
+ getAdmins(options?: PaginationOptions): Promise<PaginatedResponseDTO<AdminDTO>>;
45
48
  /**
46
49
  * Admin: Create new admin
47
50
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-manager.d.ts","sourceRoot":"","sources":["../../src/managers/tenant-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAa,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAEV,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,qBAAqB,EACtB,MAAM,iDAAiD,CAAC;AAEzD;;;;;GAKG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,aAAa,CAAgB;gBAEjB,SAAS,EAAE,aAAa;IAK5C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IAI/C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAIvD;;;;;OAKG;IACG,YAAY,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAIzE;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAItC;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItE;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvF;;;;OAIG;IACH,gBAAgB,IAAI,aAAa;CAGlC"}
1
+ {"version":3,"file":"tenant-manager.d.ts","sourceRoot":"","sources":["../../src/managers/tenant-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAa,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAEV,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACR,qBAAqB,EACtB,MAAM,iDAAiD,CAAC;AAEzD;;;;;GAKG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,aAAa,CAAgB;gBAEjB,SAAS,EAAE,aAAa;IAK5C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IAI/C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAIvD;;;;;OAKG;IACG,YAAY,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAIzE;;;;;OAKG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAIrF;;;;;OAKG;IACG,WAAW,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItE;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvF;;;;OAIG;IACH,gBAAgB,IAAI,aAAa;CAGlC"}
@@ -1,6 +1,8 @@
1
+ import { PaginatedResponseDTO } from '@explorins/pers-shared';
1
2
  import { PersApiClient } from '../core/pers-api-client';
2
3
  import { TokenService } from '../token';
3
4
  import type { TokenDTO } from '../token/models';
5
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
4
6
  /**
5
7
  * Domain Token Manager - Clean, high-level interface for business token operations
6
8
  *
@@ -77,7 +79,7 @@ export declare class TokenManager {
77
79
  * });
78
80
  * ```
79
81
  */
80
- getTokens(): Promise<TokenDTO[]>;
82
+ getTokens(options?: PaginationOptions): Promise<PaginatedResponseDTO<TokenDTO>>;
81
83
  /**
82
84
  * Get all token types
83
85
  *
@@ -95,7 +97,7 @@ export declare class TokenManager {
95
97
  * const isValidType = types.some(type => type.name === 'REWARD');
96
98
  * ```
97
99
  */
98
- getTokenTypes(): Promise<import("node_modules/@explorins/pers-shared/dist/cjs/shared-lib/dto/token/token-type.dto").TokenTypeDTO[]>;
100
+ getTokenTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<import("@explorins/pers-shared").TokenTypeDTO>>;
99
101
  /**
100
102
  * Get active credit token
101
103
  *
@@ -139,7 +141,7 @@ export declare class TokenManager {
139
141
  * const discountToken = rewardTokens.find(t => t.name.includes('Discount'));
140
142
  * ```
141
143
  */
142
- getRewardTokens(): Promise<TokenDTO[]>;
144
+ getRewardTokens(options?: PaginationOptions): Promise<PaginatedResponseDTO<TokenDTO>>;
143
145
  /**
144
146
  * Get status tokens
145
147
  *
@@ -161,7 +163,7 @@ export declare class TokenManager {
161
163
  * const vipToken = statusTokens.find(t => t.name === 'VIP Status');
162
164
  * ```
163
165
  */
164
- getStatusTokens(): Promise<TokenDTO[]>;
166
+ getStatusTokens(options?: PaginationOptions): Promise<PaginatedResponseDTO<TokenDTO>>;
165
167
  /**
166
168
  * Get token by contract address
167
169
  *
@@ -1 +1 @@
1
- {"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../src/managers/token-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAY,YAAY,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,YAAY,CAAe;gBAEf,SAAS,EAAE,aAAa;IAK5C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAItC;;;;;;;;;;;;;;;;OAgBG;IACG,aAAa;IAInB;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI/C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5C;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI3G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIpD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI3D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,IAAI,YAAY;CAIhC"}
1
+ {"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../src/managers/token-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAY,YAAY,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,YAAY,CAAe;gBAEf,SAAS,EAAE,aAAa;IAK5C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAIrF;;;;;;;;;;;;;;;;OAgBG;IACG,aAAa,CAAC,OAAO,CAAC,EAAE,iBAAiB;IAI/C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI/C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAI3F;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAI3F;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI3G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIpD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI3D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,IAAI,YAAY;CAIhC"}
@@ -3,6 +3,7 @@ import { PersEventEmitter } from '../core/events';
3
3
  import { TransactionService } from '../transaction';
4
4
  import { PaginatedResponseDTO, TransactionAnalyticsRequestDTO, TransactionAnalyticsResponseDTO, TransactionPaginationRequestDTO, TransactionRequestResponseDTO, TransactionRole } from '@explorins/pers-shared';
5
5
  import { AccountSelectorDTO, TransactionDTO, TransactionRequestDTO, TransactionSubmissionRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
6
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
6
7
  /**
7
8
  * Transaction Manager - Clean, high-level interface for transaction operations
8
9
  *
@@ -79,7 +80,7 @@ export declare class TransactionManager {
79
80
  * try {
80
81
  * const transaction = await sdk.transactions.getTransactionById('txn-abc123');
81
82
  *
82
- * console.log('📋 Transaction Details:');
83
+ * console.log('Transaction Details:');
83
84
  * console.log('ID:', transaction.id);
84
85
  * console.log('Type:', transaction.type);
85
86
  * console.log('Status:', transaction.status);
@@ -96,7 +97,7 @@ export declare class TransactionManager {
96
97
  *
97
98
  * // Show token movements
98
99
  * if (transaction.tokenTransfers?.length) {
99
- * console.log('\n💰 Token Transfers:');
100
+ * console.log('\nToken Transfers:');
100
101
  * transaction.tokenTransfers.forEach(transfer => {
101
102
  * console.log(`${transfer.amount} ${transfer.token.symbol} ${transfer.direction}`);
102
103
  * });
@@ -104,7 +105,7 @@ export declare class TransactionManager {
104
105
  *
105
106
  * // Show blockchain confirmation
106
107
  * if (transaction.blockchainHash) {
107
- * console.log('🔗 Blockchain:', transaction.blockchainHash);
108
+ * console.log('Blockchain:', transaction.blockchainHash);
108
109
  * }
109
110
  *
110
111
  * } catch (error) {
@@ -139,12 +140,12 @@ export declare class TransactionManager {
139
140
  * }
140
141
  * });
141
142
  *
142
- * console.log('Purchase completed!');
143
+ * console.log('Purchase completed!');
143
144
  * console.log('Transaction ID:', purchase.id);
144
145
  * console.log('Status:', purchase.status);
145
146
  *
146
147
  * if (purchase.tokensEarned?.length) {
147
- * console.log('\n🎁 Loyalty rewards earned:');
148
+ * console.log('\nLoyalty rewards earned:');
148
149
  * purchase.tokensEarned.forEach(reward => {
149
150
  * console.log(`${reward.amount} ${reward.token.symbol}`);
150
151
  * });
@@ -246,7 +247,7 @@ export declare class TransactionManager {
246
247
  * }
247
248
  * });
248
249
  *
249
- * console.log('💳 Purchase Summary:');
250
+ * console.log('Purchase Summary:');
250
251
  * console.log(`Total purchases: ${purchases.length}`);
251
252
  * console.log(`Total spent: $${totalSpent.toFixed(2)}`);
252
253
  * console.log(`Total rewards earned: ${totalRewards} points`);
@@ -262,7 +263,7 @@ export declare class TransactionManager {
262
263
  * new Date(t.createdAt) > thirtyDaysAgo
263
264
  * );
264
265
  *
265
- * console.log(`📅 Recent Activity (${recentActivity.length} transactions in last 30 days):`);
266
+ * console.log(`Recent Activity (${recentActivity.length} transactions in last 30 days):`);
266
267
  *
267
268
  * // Group by type
268
269
  * const activityByType = recentActivity.reduce((acc, t) => {
@@ -275,7 +276,7 @@ export declare class TransactionManager {
275
276
  * });
276
277
  * ```
277
278
  */
278
- getUserTransactionHistory(role?: TransactionRole, limit?: number): Promise<TransactionDTO[]>;
279
+ getUserTransactionHistory(role?: TransactionRole, options?: PaginationOptions): Promise<PaginatedResponseDTO<TransactionDTO>>;
279
280
  /**
280
281
  * Admin: Get all tenant transactions
281
282
  *
@@ -292,7 +293,7 @@ export declare class TransactionManager {
292
293
  * // Admin operation - comprehensive transaction analysis
293
294
  * const allTransactions = await sdk.transactions.getTenantTransactions();
294
295
  *
295
- * console.log(`📊 Tenant Transaction Overview:`);
296
+ * console.log(`Tenant Transaction Overview:`);
296
297
  * console.log(`Total transactions: ${allTransactions.length}`);
297
298
  *
298
299
  * // Analyze by status
@@ -301,7 +302,7 @@ export declare class TransactionManager {
301
302
  * return acc;
302
303
  * }, {});
303
304
  *
304
- * console.log('\n📈 By status:');
305
+ * console.log('\nBy status:');
305
306
  * Object.entries(statusCounts).forEach(([status, count]) => {
306
307
  * console.log(`${status}: ${count} transactions`);
307
308
  * });
@@ -312,7 +313,7 @@ export declare class TransactionManager {
312
313
  * return acc;
313
314
  * }, {});
314
315
  *
315
- * console.log('\n🏷️ By type:');
316
+ * console.log('\nBy type:');
316
317
  * Object.entries(typeCounts).forEach(([type, count]) => {
317
318
  * console.log(`${type}: ${count} transactions`);
318
319
  * });
@@ -324,7 +325,7 @@ export declare class TransactionManager {
324
325
  *
325
326
  * const avgTransactionSize = totalVolume / allTransactions.length;
326
327
  *
327
- * console.log('\n💰 Volume metrics:');
328
+ * console.log('\nVolume metrics:');
328
329
  * console.log(`Total volume: $${totalVolume.toFixed(2)}`);
329
330
  * console.log(`Average transaction: $${avgTransactionSize.toFixed(2)}`);
330
331
  *
@@ -336,7 +337,7 @@ export declare class TransactionManager {
336
337
  * console.log(`\n⏰ Last 24 hours: ${last24Hours.length} transactions`);
337
338
  * ```
338
339
  */
339
- getTenantTransactions(limit?: number): Promise<TransactionDTO[]>;
340
+ getTenantTransactions(options?: PaginationOptions): Promise<PaginatedResponseDTO<TransactionDTO>>;
340
341
  /**
341
342
  * Admin: Get paginated transactions
342
343
  *
@@ -358,7 +359,7 @@ export declare class TransactionManager {
358
359
  * sortOrder: 'DESC'
359
360
  * });
360
361
  *
361
- * console.log(`📄 Page ${result.page} of ${result.totalPages}`);
362
+ * console.log(`� Page ${result.page} of ${result.totalPages}`);
362
363
  * console.log(`Showing ${result.data.length} of ${result.total} transactions`);
363
364
  *
364
365
  * result.data.forEach((transaction, index) => {
@@ -392,7 +393,7 @@ export declare class TransactionManager {
392
393
  * sortOrder: 'DESC'
393
394
  * });
394
395
  *
395
- * console.log('🔍 Filtered Results:');
396
+ * console.log('Filtered Results:');
396
397
  * console.log(`Found ${filteredResult.total} matching transactions`);
397
398
  *
398
399
  * filteredResult.data.forEach(transaction => {
@@ -431,10 +432,10 @@ export declare class TransactionManager {
431
432
  * // Clean up object URL
432
433
  * URL.revokeObjectURL(downloadUrl);
433
434
  *
434
- * console.log('Transaction export downloaded successfully');
435
+ * console.log('Transaction export downloaded successfully');
435
436
  *
436
437
  * } catch (error) {
437
- * console.log('Export failed:', error.message);
438
+ * console.log('Export failed:', error.message);
438
439
  * }
439
440
  * ```
440
441
  *
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../src/managers/transaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChN,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAE7J;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,kBAAkB,CAAqB;gBAGrC,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,8BAAkB;IAMnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACG,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACG,iBAAiB,CAAC,eAAe,EAAE,qBAAqB;IAa9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiFG;IACG,yBAAyB,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,KAAK,GAAE,MAAa,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIxG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACG,qBAAqB,CAAC,KAAK,GAAE,MAAa,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DG;IACG,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAItH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;;OAQG;IACG,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAI/F;;;;;;;;OAQG;IACG,8BAA8B,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAI5G;;;;;;;OAOG;IACG,uBAAuB,CAAC,YAAY,EAAE,+BAA+B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAapH;;;;;;;OAOG;IACG,yBAAyB,CAAC,eAAe,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAInH;;;;;;;OAOG;IACG,4BAA4B,CAAC,eAAe,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAItH;;;;;;;;OAQG;IACG,uBAAuB,CAAC,gBAAgB,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAIzH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,qBAAqB,IAAI,kBAAkB;CAG5C"}
1
+ {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../../src/managers/transaction-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChN,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAC7J,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,kBAAkB,CAAqB;gBAGrC,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,8BAAkB;IAMnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACG,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACG,iBAAiB,CAAC,eAAe,EAAE,qBAAqB;IAa9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiFG;IACG,yBAAyB,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAInI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2DG;IACG,qBAAqB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAIvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8DG;IACG,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAItH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;;OAQG;IACG,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAI/F;;;;;;;;OAQG;IACG,8BAA8B,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAI5G;;;;;;;OAOG;IACG,uBAAuB,CAAC,YAAY,EAAE,+BAA+B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAapH;;;;;;;OAOG;IACG,yBAAyB,CAAC,eAAe,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAInH;;;;;;;OAOG;IACG,4BAA4B,CAAC,eAAe,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAItH;;;;;;;;OAQG;IACG,uBAAuB,CAAC,gBAAgB,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAIzH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,qBAAqB,IAAI,kBAAkB;CAG5C"}
@@ -3,6 +3,8 @@ import { PersEventEmitter } from '../core/events';
3
3
  import { UserService } from '../user';
4
4
  import { UserPublicProfileDTO } from '../user/models';
5
5
  import type { UserDTO, UserCreateRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
6
+ import { PaginatedResponseDTO } from '@explorins/pers-shared';
7
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
6
8
  /**
7
9
  * User Manager - Clean, high-level interface for user operations
8
10
  *
@@ -174,7 +176,7 @@ export declare class UserManager {
174
176
  getAllUsersPublic(filter?: {
175
177
  key: string;
176
178
  value: string;
177
- }): Promise<UserPublicProfileDTO[]>;
179
+ }, options?: PaginationOptions): Promise<PaginatedResponseDTO<UserPublicProfileDTO>>;
178
180
  /**
179
181
  * Admin: Get all users
180
182
  *
@@ -200,7 +202,7 @@ export declare class UserManager {
200
202
  * }
201
203
  * ```
202
204
  */
203
- getAllUsers(): Promise<UserDTO[]>;
205
+ getAllUsers(options?: PaginationOptions): Promise<PaginatedResponseDTO<UserDTO>>;
204
206
  /**
205
207
  * Business/Admin: Create or update a user
206
208
  *