@explorins/pers-sdk 1.6.45 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/README.md +288 -0
  2. package/dist/analytics.cjs +12 -0
  3. package/dist/analytics.cjs.map +1 -1
  4. package/dist/analytics.js +1 -1
  5. package/dist/api-key/api/api-key-api.d.ts +5 -2
  6. package/dist/api-key/api/api-key-api.d.ts.map +1 -1
  7. package/dist/business/api/business-api.d.ts +30 -11
  8. package/dist/business/api/business-api.d.ts.map +1 -1
  9. package/dist/business/api/business-membership-api.d.ts +205 -0
  10. package/dist/business/api/business-membership-api.d.ts.map +1 -0
  11. package/dist/business/index.d.ts +2 -0
  12. package/dist/business/index.d.ts.map +1 -1
  13. package/dist/business/services/business-membership-service.d.ts +180 -0
  14. package/dist/business/services/business-membership-service.d.ts.map +1 -0
  15. package/dist/business/services/business-service.d.ts +11 -7
  16. package/dist/business/services/business-service.d.ts.map +1 -1
  17. package/dist/business.cjs +767 -9
  18. package/dist/business.cjs.map +1 -1
  19. package/dist/business.js +751 -2
  20. package/dist/business.js.map +1 -1
  21. package/dist/campaign/api/campaign-api.d.ts +56 -22
  22. package/dist/campaign/api/campaign-api.d.ts.map +1 -1
  23. package/dist/campaign/services/campaign-service.d.ts +28 -16
  24. package/dist/campaign/services/campaign-service.d.ts.map +1 -1
  25. package/dist/campaign.cjs +14 -1
  26. package/dist/campaign.cjs.map +1 -1
  27. package/dist/campaign.js +3 -2
  28. package/dist/campaign.js.map +1 -1
  29. package/dist/chunks/{base-token-service-BSXDwrcq.js → base-token-service-DsD6lSdq.js} +2 -48
  30. package/dist/chunks/base-token-service-DsD6lSdq.js.map +1 -0
  31. package/dist/chunks/{base-token-service-CYuqPPs0.cjs → base-token-service-_64IWVES.cjs} +2 -48
  32. package/dist/chunks/base-token-service-_64IWVES.cjs.map +1 -0
  33. package/dist/chunks/{campaign-service-B1tQMNqA.cjs → campaign-service-Ae164xl8.cjs} +102 -84
  34. package/dist/chunks/campaign-service-Ae164xl8.cjs.map +1 -0
  35. package/dist/chunks/{campaign-service-CJPXgFBe.js → campaign-service-rlK4WeSY.js} +102 -84
  36. package/dist/chunks/campaign-service-rlK4WeSY.js.map +1 -0
  37. package/dist/chunks/{donation-service-D-xFrONi.cjs → donation-service--6cnTvWq.cjs} +9 -5
  38. package/dist/chunks/donation-service--6cnTvWq.cjs.map +1 -0
  39. package/dist/chunks/{donation-service-CyJS4DIZ.js → donation-service-xiXZ2Eto.js} +9 -5
  40. package/dist/chunks/donation-service-xiXZ2Eto.js.map +1 -0
  41. package/dist/chunks/pagination-utils-9vQ-Npkr.js +166 -0
  42. package/dist/chunks/pagination-utils-9vQ-Npkr.js.map +1 -0
  43. package/dist/chunks/pagination-utils-B2jRHMSO.cjs +173 -0
  44. package/dist/chunks/pagination-utils-B2jRHMSO.cjs.map +1 -0
  45. package/dist/chunks/{pers-sdk-DzS7mkm7.cjs → pers-sdk-CrffRkya.cjs} +1096 -323
  46. package/dist/chunks/pers-sdk-CrffRkya.cjs.map +1 -0
  47. package/dist/chunks/{pers-sdk-VGEG59g3.js → pers-sdk-omI-Fl0m.js} +1086 -317
  48. package/dist/chunks/pers-sdk-omI-Fl0m.js.map +1 -0
  49. package/dist/chunks/{token-service-CpVwC5Eb.js → token-service-Bfj6C0yz.js} +62 -30
  50. package/dist/chunks/token-service-Bfj6C0yz.js.map +1 -0
  51. package/dist/chunks/{token-service-BWScn8Qa.cjs → token-service-BlbXrxnS.cjs} +62 -30
  52. package/dist/chunks/token-service-BlbXrxnS.cjs.map +1 -0
  53. package/dist/chunks/transaction-request.builder-DltmruUC.js +296 -0
  54. package/dist/chunks/transaction-request.builder-DltmruUC.js.map +1 -0
  55. package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs +303 -0
  56. package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs.map +1 -0
  57. package/dist/chunks/{transaction-service-CXjTHCFu.cjs → transaction-service-BcJfyCcq.cjs} +68 -31
  58. package/dist/chunks/transaction-service-BcJfyCcq.cjs.map +1 -0
  59. package/dist/chunks/{transaction-service-B7h_4Hg3.js → transaction-service-CnOD3scu.js} +68 -31
  60. package/dist/chunks/transaction-service-CnOD3scu.js.map +1 -0
  61. package/dist/chunks/{user-service-D6mTa_WZ.js → user-service-BGP3SZpk.js} +82 -20
  62. package/dist/chunks/user-service-BGP3SZpk.js.map +1 -0
  63. package/dist/chunks/{user-service-D1Rn4U8u.cjs → user-service-gITOx4qj.cjs} +82 -20
  64. package/dist/chunks/user-service-gITOx4qj.cjs.map +1 -0
  65. package/dist/chunks/{web3-chain-service-BLFxB5TA.cjs → web3-chain-service-6vsVHPjl.cjs} +116 -16
  66. package/dist/chunks/web3-chain-service-6vsVHPjl.cjs.map +1 -0
  67. package/dist/chunks/{web3-chain-service-JRSwxr-s.js → web3-chain-service-BcUeeujC.js} +111 -17
  68. package/dist/chunks/web3-chain-service-BcUeeujC.js.map +1 -0
  69. package/dist/core/auth/api/auth-api.d.ts +35 -0
  70. package/dist/core/auth/api/auth-api.d.ts.map +1 -1
  71. package/dist/core/auth/auth-provider.interface.d.ts +7 -1
  72. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
  73. package/dist/core/auth/services/auth-service.d.ts +26 -1
  74. package/dist/core/auth/services/auth-service.d.ts.map +1 -1
  75. package/dist/core/auth/token-storage.d.ts +3 -2
  76. package/dist/core/auth/token-storage.d.ts.map +1 -1
  77. package/dist/core/errors/index.d.ts +75 -6
  78. package/dist/core/errors/index.d.ts.map +1 -1
  79. package/dist/core/events/event-emitter.d.ts +106 -0
  80. package/dist/core/events/event-emitter.d.ts.map +1 -0
  81. package/dist/core/events/event-types.d.ts +127 -0
  82. package/dist/core/events/event-types.d.ts.map +1 -0
  83. package/dist/core/events/index.d.ts +22 -0
  84. package/dist/core/events/index.d.ts.map +1 -0
  85. package/dist/core/index.d.ts +3 -0
  86. package/dist/core/index.d.ts.map +1 -1
  87. package/dist/core/pers-api-client.d.ts +12 -0
  88. package/dist/core/pers-api-client.d.ts.map +1 -1
  89. package/dist/core/version.d.ts +15 -0
  90. package/dist/core/version.d.ts.map +1 -0
  91. package/dist/core.cjs +26 -12
  92. package/dist/core.cjs.map +1 -1
  93. package/dist/core.js +13 -12
  94. package/dist/core.js.map +1 -1
  95. package/dist/donation/api/donation-api.d.ts +3 -1
  96. package/dist/donation/api/donation-api.d.ts.map +1 -1
  97. package/dist/donation/services/donation-service.d.ts +3 -1
  98. package/dist/donation/services/donation-service.d.ts.map +1 -1
  99. package/dist/donation.cjs +14 -1
  100. package/dist/donation.cjs.map +1 -1
  101. package/dist/donation.js +3 -2
  102. package/dist/donation.js.map +1 -1
  103. package/dist/index.cjs +63 -22
  104. package/dist/index.cjs.map +1 -1
  105. package/dist/index.js +15 -13
  106. package/dist/index.js.map +1 -1
  107. package/dist/managers/analytics-manager.d.ts +9 -9
  108. package/dist/managers/api-key-manager.d.ts +8 -6
  109. package/dist/managers/api-key-manager.d.ts.map +1 -1
  110. package/dist/managers/auth-manager.d.ts +77 -4
  111. package/dist/managers/auth-manager.d.ts.map +1 -1
  112. package/dist/managers/business-manager.d.ts +198 -8
  113. package/dist/managers/business-manager.d.ts.map +1 -1
  114. package/dist/managers/campaign-manager.d.ts +67 -83
  115. package/dist/managers/campaign-manager.d.ts.map +1 -1
  116. package/dist/managers/donation-manager.d.ts +4 -2
  117. package/dist/managers/donation-manager.d.ts.map +1 -1
  118. package/dist/managers/file-manager.d.ts +2 -2
  119. package/dist/managers/purchase-manager.d.ts +26 -24
  120. package/dist/managers/purchase-manager.d.ts.map +1 -1
  121. package/dist/managers/redemption-manager.d.ts +106 -92
  122. package/dist/managers/redemption-manager.d.ts.map +1 -1
  123. package/dist/managers/tenant-manager.d.ts +5 -2
  124. package/dist/managers/tenant-manager.d.ts.map +1 -1
  125. package/dist/managers/token-manager.d.ts +6 -4
  126. package/dist/managers/token-manager.d.ts.map +1 -1
  127. package/dist/managers/transaction-manager.d.ts +22 -19
  128. package/dist/managers/transaction-manager.d.ts.map +1 -1
  129. package/dist/managers/user-manager.d.ts +61 -3
  130. package/dist/managers/user-manager.d.ts.map +1 -1
  131. package/dist/managers/user-status-manager.d.ts +6 -4
  132. package/dist/managers/user-status-manager.d.ts.map +1 -1
  133. package/dist/managers/web3-manager.d.ts.map +1 -1
  134. package/dist/package.json +2 -2
  135. package/dist/payment/api/payment-api.d.ts +15 -18
  136. package/dist/payment/api/payment-api.d.ts.map +1 -1
  137. package/dist/payment/services/payment-service.d.ts +6 -4
  138. package/dist/payment/services/payment-service.d.ts.map +1 -1
  139. package/dist/payment.cjs +225 -9
  140. package/dist/payment.cjs.map +1 -1
  141. package/dist/payment.js +210 -2
  142. package/dist/payment.js.map +1 -1
  143. package/dist/pers-sdk.d.ts +49 -0
  144. package/dist/pers-sdk.d.ts.map +1 -1
  145. package/dist/redemption/api/redemption-api.d.ts +22 -11
  146. package/dist/redemption/api/redemption-api.d.ts.map +1 -1
  147. package/dist/redemption/services/redemption-service.d.ts +11 -9
  148. package/dist/redemption/services/redemption-service.d.ts.map +1 -1
  149. package/dist/redemption.cjs +353 -9
  150. package/dist/redemption.cjs.map +1 -1
  151. package/dist/redemption.js +338 -2
  152. package/dist/redemption.js.map +1 -1
  153. package/dist/shared/index.d.ts +1 -0
  154. package/dist/shared/index.d.ts.map +1 -1
  155. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +2 -1
  156. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -1
  157. package/dist/shared/utils/pagination-utils.d.ts +184 -0
  158. package/dist/shared/utils/pagination-utils.d.ts.map +1 -0
  159. package/dist/tenant/api/tenant-api.d.ts +6 -1
  160. package/dist/tenant/api/tenant-api.d.ts.map +1 -1
  161. package/dist/tenant/services/tenant-service.d.ts +5 -2
  162. package/dist/tenant/services/tenant-service.d.ts.map +1 -1
  163. package/dist/tenant.cjs +177 -9
  164. package/dist/tenant.cjs.map +1 -1
  165. package/dist/tenant.js +162 -2
  166. package/dist/tenant.js.map +1 -1
  167. package/dist/token/api/token-api.d.ts +24 -7
  168. package/dist/token/api/token-api.d.ts.map +1 -1
  169. package/dist/token/base/base-token-service.d.ts +5 -4
  170. package/dist/token/base/base-token-service.d.ts.map +1 -1
  171. package/dist/token/services/token-service.d.ts +10 -8
  172. package/dist/token/services/token-service.d.ts.map +1 -1
  173. package/dist/token/token-sdk.d.ts +5 -34
  174. package/dist/token/token-sdk.d.ts.map +1 -1
  175. package/dist/token.cjs +15 -2
  176. package/dist/token.cjs.map +1 -1
  177. package/dist/token.js +4 -3
  178. package/dist/token.js.map +1 -1
  179. package/dist/transaction/api/transaction-api.d.ts +48 -6
  180. package/dist/transaction/api/transaction-api.d.ts.map +1 -1
  181. package/dist/transaction/models/index.d.ts +2 -0
  182. package/dist/transaction/models/index.d.ts.map +1 -1
  183. package/dist/transaction/models/transaction-request.builder.d.ts +256 -0
  184. package/dist/transaction/models/transaction-request.builder.d.ts.map +1 -0
  185. package/dist/transaction/services/transaction-service.d.ts +12 -4
  186. package/dist/transaction/services/transaction-service.d.ts.map +1 -1
  187. package/dist/transaction.cjs +9 -1
  188. package/dist/transaction.cjs.map +1 -1
  189. package/dist/transaction.js +3 -1
  190. package/dist/transaction.js.map +1 -1
  191. package/dist/user/api/user-api.d.ts +32 -9
  192. package/dist/user/api/user-api.d.ts.map +1 -1
  193. package/dist/user/services/user-service.d.ts +25 -2
  194. package/dist/user/services/user-service.d.ts.map +1 -1
  195. package/dist/user-status/api/user-status-api.d.ts +6 -4
  196. package/dist/user-status/api/user-status-api.d.ts.map +1 -1
  197. package/dist/user-status/index.d.ts +4 -2
  198. package/dist/user-status/index.d.ts.map +1 -1
  199. package/dist/user-status/services/user-status-service.d.ts +4 -2
  200. package/dist/user-status/services/user-status-service.d.ts.map +1 -1
  201. package/dist/user-status.cjs +34 -14
  202. package/dist/user-status.cjs.map +1 -1
  203. package/dist/user-status.js +23 -15
  204. package/dist/user-status.js.map +1 -1
  205. package/dist/user.cjs +14 -1
  206. package/dist/user.cjs.map +1 -1
  207. package/dist/user.js +3 -2
  208. package/dist/user.js.map +1 -1
  209. package/dist/web3-chain.cjs +13 -1
  210. package/dist/web3-chain.cjs.map +1 -1
  211. package/dist/web3-chain.js +2 -2
  212. package/package.json +2 -2
  213. package/dist/chunks/base-token-service-BSXDwrcq.js.map +0 -1
  214. package/dist/chunks/base-token-service-CYuqPPs0.cjs.map +0 -1
  215. package/dist/chunks/business-service-8Xd3d5oY.js +0 -238
  216. package/dist/chunks/business-service-8Xd3d5oY.js.map +0 -1
  217. package/dist/chunks/business-service-P9o4cwQL.cjs +0 -241
  218. package/dist/chunks/business-service-P9o4cwQL.cjs.map +0 -1
  219. package/dist/chunks/campaign-service-B1tQMNqA.cjs.map +0 -1
  220. package/dist/chunks/campaign-service-CJPXgFBe.js.map +0 -1
  221. package/dist/chunks/donation-service-CyJS4DIZ.js.map +0 -1
  222. package/dist/chunks/donation-service-D-xFrONi.cjs.map +0 -1
  223. package/dist/chunks/payment-service-B4qx0qiE.cjs +0 -220
  224. package/dist/chunks/payment-service-B4qx0qiE.cjs.map +0 -1
  225. package/dist/chunks/payment-service-DfCBFosx.js +0 -217
  226. package/dist/chunks/payment-service-DfCBFosx.js.map +0 -1
  227. package/dist/chunks/pers-sdk-DzS7mkm7.cjs.map +0 -1
  228. package/dist/chunks/pers-sdk-VGEG59g3.js.map +0 -1
  229. package/dist/chunks/redemption-service-7qbeQxEM.cjs +0 -330
  230. package/dist/chunks/redemption-service-7qbeQxEM.cjs.map +0 -1
  231. package/dist/chunks/redemption-service-BT0J5Iy7.js +0 -327
  232. package/dist/chunks/redemption-service-BT0J5Iy7.js.map +0 -1
  233. package/dist/chunks/tenant-service-DME24vr1.cjs +0 -157
  234. package/dist/chunks/tenant-service-DME24vr1.cjs.map +0 -1
  235. package/dist/chunks/tenant-service-DxtHAlaa.js +0 -154
  236. package/dist/chunks/tenant-service-DxtHAlaa.js.map +0 -1
  237. package/dist/chunks/token-service-BWScn8Qa.cjs.map +0 -1
  238. package/dist/chunks/token-service-CpVwC5Eb.js.map +0 -1
  239. package/dist/chunks/transaction-service-B7h_4Hg3.js.map +0 -1
  240. package/dist/chunks/transaction-service-CXjTHCFu.cjs.map +0 -1
  241. package/dist/chunks/user-service-D1Rn4U8u.cjs.map +0 -1
  242. package/dist/chunks/user-service-D6mTa_WZ.js.map +0 -1
  243. package/dist/chunks/web3-chain-service-BLFxB5TA.cjs.map +0 -1
  244. package/dist/chunks/web3-chain-service-JRSwxr-s.js.map +0 -1
@@ -1,5 +1,7 @@
1
+ import { PaginatedResponseDTO } from '@explorins/pers-shared';
1
2
  import { PersApiClient } from '../core/pers-api-client';
2
3
  import { PaymentService } from '../payment';
4
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
3
5
  import type { PaymentIntentDTO, PurchaseDTO, PurchaseTokenDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
6
  /**
5
7
  * Purchase Manager - Clean, high-level interface for purchase operations
@@ -37,7 +39,7 @@ import type { PaymentIntentDTO, PurchaseDTO, PurchaseTokenDTO } from '../shared/
37
39
  * // Browse available token packages
38
40
  * const availableTokens = await sdk.purchases.getActivePurchaseTokens(true);
39
41
  *
40
- * console.log('💎 Available Token Packages:');
42
+ * console.log('Available Token Packages:');
41
43
  * availableTokens.forEach(token => {
42
44
  * console.log(`\n${token.name}`);
43
45
  * console.log(`Price: $${token.price} ${token.currency}`);
@@ -90,7 +92,7 @@ export declare class PurchaseManager {
90
92
  * '1000 Loyalty Points Package'
91
93
  * );
92
94
  *
93
- * console.log('💳 Payment Intent Created:');
95
+ * console.log('Payment Intent Created:');
94
96
  * console.log('ID:', paymentIntent.id);
95
97
  * console.log('Amount:', paymentIntent.amount / 100, paymentIntent.currency);
96
98
  * console.log('Status:', paymentIntent.status);
@@ -165,23 +167,23 @@ export declare class PurchaseManager {
165
167
  * const allPackages = await sdk.purchases.getActivePurchaseTokens();
166
168
  * const activeOnly = await sdk.purchases.getActivePurchaseTokens(true);
167
169
  *
168
- * console.log('💎 Token Package Catalog:');
170
+ * console.log('Token Package Catalog:');
169
171
  *
170
172
  * activeOnly.forEach(package => {
171
- * console.log(`\n📦 ${package.name}`);
172
- * console.log(`💰 Price: $${package.price} ${package.currency}`);
173
+ * console.log(`\n${package.name}`);
174
+ * console.log(`Price: $${package.price} ${package.currency}`);
173
175
  * console.log(`🪙 Tokens: ${package.tokenAmount} ${package.tokenSymbol}`);
174
- * console.log(`📝 ${package.description}`);
176
+ * console.log(`${package.description}`);
175
177
  *
176
178
  * // Calculate value per token
177
179
  * const costPerToken = package.price / package.tokenAmount;
178
- * console.log(`💡 Value: $${costPerToken.toFixed(4)} per token`);
180
+ * console.log(`Value: $${costPerToken.toFixed(4)} per token`);
179
181
  *
180
182
  * if (package.bonusTokens && package.bonusTokens > 0) {
181
- * console.log(`🎁 Bonus: +${package.bonusTokens} extra tokens`);
183
+ * console.log(`Bonus: +${package.bonusTokens} extra tokens`);
182
184
  * const totalTokens = package.tokenAmount + package.bonusTokens;
183
185
  * const actualCostPerToken = package.price / totalTokens;
184
- * console.log(`💡 With bonus: $${actualCostPerToken.toFixed(4)} per token`);
186
+ * console.log(`With bonus: $${actualCostPerToken.toFixed(4)} per token`);
185
187
  * }
186
188
  *
187
189
  * if (package.validUntil) {
@@ -196,7 +198,7 @@ export declare class PurchaseManager {
196
198
  * return currentValue < bestValue ? current : best;
197
199
  * });
198
200
  *
199
- * console.log(`\n🌟 Best Value: ${bestValue.name}`);
201
+ * console.log(`\n Best Value: ${bestValue.name}`);
200
202
  * ```
201
203
  *
202
204
  * @example Filter by Currency and Price
@@ -222,14 +224,14 @@ export declare class PurchaseManager {
222
224
  * (b.tokenAmount + (b.bonusTokens || 0)) - (a.tokenAmount + (a.bonusTokens || 0))
223
225
  * );
224
226
  *
225
- * console.log('\n🎯 Top 3 by token amount:');
227
+ * console.log('\nTop 3 by token amount:');
226
228
  * sortedByTokens.slice(0, 3).forEach((pkg, index) => {
227
229
  * const totalTokens = pkg.tokenAmount + (pkg.bonusTokens || 0);
228
230
  * console.log(`${index + 1}. ${pkg.name}: ${totalTokens} tokens`);
229
231
  * });
230
232
  * ```
231
233
  */
232
- getActivePurchaseTokens(active?: boolean): Promise<PurchaseTokenDTO[]>;
234
+ getActivePurchaseTokens(active?: boolean, options?: PaginationOptions): Promise<PaginatedResponseDTO<PurchaseTokenDTO>>;
233
235
  /**
234
236
  * Get all user purchases
235
237
  *
@@ -243,16 +245,16 @@ export declare class PurchaseManager {
243
245
  * ```typescript
244
246
  * const userPurchases = await sdk.purchases.getAllUserPurchases();
245
247
  *
246
- * console.log(`📜 Purchase History (${userPurchases.length} purchases):`);
248
+ * console.log(`Purchase History (${userPurchases.length} purchases):`);
247
249
  *
248
250
  * userPurchases.forEach((purchase, index) => {
249
251
  * console.log(`\n${index + 1}. Purchase #${purchase.id}`);
250
- * console.log(`📅 Date: ${new Date(purchase.createdAt).toLocaleDateString()}`);
251
- * console.log(`💰 Amount: $${purchase.amount} ${purchase.currency}`);
252
- * console.log(`📊 Status: ${purchase.status}`);
252
+ * console.log(`Date: ${new Date(purchase.createdAt).toLocaleDateString()}`);
253
+ * console.log(`Amount: $${purchase.amount} ${purchase.currency}`);
254
+ * console.log(`Status: ${purchase.status}`);
253
255
  *
254
256
  * if (purchase.description) {
255
- * console.log(`📝 Description: ${purchase.description}`);
257
+ * console.log(`Description: ${purchase.description}`);
256
258
  * }
257
259
  *
258
260
  * if (purchase.tokensReceived) {
@@ -260,11 +262,11 @@ export declare class PurchaseManager {
260
262
  * }
261
263
  *
262
264
  * if (purchase.paymentMethod) {
263
- * console.log(`💳 Payment method: ${purchase.paymentMethod}`);
265
+ * console.log(`Payment method: ${purchase.paymentMethod}`);
264
266
  * }
265
267
  *
266
268
  * if (purchase.receiptEmail) {
267
- * console.log(`📧 Receipt sent to: ${purchase.receiptEmail}`);
269
+ * console.log(`� Receipt sent to: ${purchase.receiptEmail}`);
268
270
  * }
269
271
  * });
270
272
  *
@@ -273,7 +275,7 @@ export declare class PurchaseManager {
273
275
  * const totalSpent = successfulPurchases.reduce((sum, p) => sum + p.amount, 0);
274
276
  * const totalTokens = successfulPurchases.reduce((sum, p) => sum + (p.tokensReceived || 0), 0);
275
277
  *
276
- * console.log('\n📊 Purchase Statistics:');
278
+ * console.log('\nPurchase Statistics:');
277
279
  * console.log(`Total purchases: ${userPurchases.length}`);
278
280
  * console.log(`Successful purchases: ${successfulPurchases.length}`);
279
281
  * console.log(`Total spent: $${totalSpent.toFixed(2)}`);
@@ -298,7 +300,7 @@ export declare class PurchaseManager {
298
300
  * new Date(p.createdAt) > new Date(Date.now() - 180 * 24 * 60 * 60 * 1000)
299
301
  * );
300
302
  *
301
- * console.log('📅 Purchase Timeline:');
303
+ * console.log('Purchase Timeline:');
302
304
  * console.log(`Last 30 days: ${last30Days.length} purchases`);
303
305
  * console.log(`Last 6 months: ${last6Months.length} purchases`);
304
306
  *
@@ -308,7 +310,7 @@ export declare class PurchaseManager {
308
310
  * return acc;
309
311
  * }, {});
310
312
  *
311
- * console.log('\n📊 By status:');
313
+ * console.log('\nBy status:');
312
314
  * Object.entries(statusCounts).forEach(([status, count]) => {
313
315
  * console.log(`${status}: ${count} purchases`);
314
316
  * });
@@ -323,7 +325,7 @@ export declare class PurchaseManager {
323
325
  * );
324
326
  *
325
327
  * if (largestPurchase) {
326
- * console.log(`\n💎 Largest purchase: $${largestPurchase.amount} on ${new Date(largestPurchase.createdAt).toLocaleDateString()}`);
328
+ * console.log(`\nLargest purchase: $${largestPurchase.amount} on ${new Date(largestPurchase.createdAt).toLocaleDateString()}`);
327
329
  * }
328
330
  *
329
331
  * if (mostRecent) {
@@ -331,7 +333,7 @@ export declare class PurchaseManager {
331
333
  * }
332
334
  * ```
333
335
  */
334
- getAllUserPurchases(): Promise<PurchaseDTO[]>;
336
+ getAllUserPurchases(options?: PaginationOptions): Promise<PaginatedResponseDTO<PurchaseDTO>>;
335
337
  /**
336
338
  * Get the full purchase service for advanced operations
337
339
  *
@@ -1 +1 @@
1
- {"version":3,"file":"purchase-manager.d.ts","sourceRoot":"","sources":["../../src/managers/purchase-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EACV,gBAAgB,EAEhB,WAAW,EAIX,gBAAgB,EACjB,MAAM,iDAAiD,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,qBAAa,eAAe;IAGd,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,cAAc,CAAiB;gBAEnB,SAAS,EAAE,aAAa;IAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmFG;IACG,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAI5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACG,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoGG;IACG,mBAAmB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAInD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,kBAAkB,IAAI,cAAc;CAGrC"}
1
+ {"version":3,"file":"purchase-manager.d.ts","sourceRoot":"","sources":["../../src/managers/purchase-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EACV,gBAAgB,EAEhB,WAAW,EAIX,gBAAgB,EACjB,MAAM,iDAAiD,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,qBAAa,eAAe;IAGd,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,cAAc,CAAiB;gBAEnB,SAAS,EAAE,aAAa;IAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmFG;IACG,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;IAI5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACG,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAI7H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoGG;IACG,mBAAmB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAIlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,kBAAkB,IAAI,cAAc;CAGrC"}
@@ -1,5 +1,8 @@
1
+ import { PaginatedResponseDTO } from '@explorins/pers-shared';
1
2
  import { PersApiClient } from '../core/pers-api-client';
3
+ import { PersEventEmitter } from '../core/events';
2
4
  import { RedemptionService } from '../redemption';
5
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
3
6
  import type { RedemptionDTO, RedemptionCreateRequestDTO, RedemptionTypeDTO, RedemptionRedeemDTO, RedemptionRedeemRequestResponseDTO, TokenUnitCreateRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
7
  /**
5
8
  * Redemption Manager - Clean, high-level interface for redemption operations
@@ -15,7 +18,7 @@ import type { RedemptionDTO, RedemptionCreateRequestDTO, RedemptionTypeDTO, Rede
15
18
  * @example Basic Redemption Operations
16
19
  * ```typescript
17
20
  * // Browse available redemption offers
18
- * const offers = await sdk.redemptions.getActiveRedemptions();
21
+ * const { data: offers } = await sdk.redemptions.getRedemptions();
19
22
  * console.log(`${offers.length} redemption offers available`);
20
23
  *
21
24
  * // Redeem a specific offer
@@ -23,7 +26,7 @@ import type { RedemptionDTO, RedemptionCreateRequestDTO, RedemptionTypeDTO, Rede
23
26
  * console.log('Redemption successful:', redemptionResult.success);
24
27
  *
25
28
  * // Check redemption history
26
- * const history = await sdk.redemptions.getUserRedemptions();
29
+ * const { data: history } = await sdk.redemptions.getUserRedemptions();
27
30
  * console.log(`You have redeemed ${history.length} offers`);
28
31
  * ```
29
32
  *
@@ -64,49 +67,106 @@ import type { RedemptionDTO, RedemptionCreateRequestDTO, RedemptionTypeDTO, Rede
64
67
  */
65
68
  export declare class RedemptionManager {
66
69
  private apiClient;
70
+ private events?;
67
71
  private redemptionService;
68
- constructor(apiClient: PersApiClient);
72
+ constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
69
73
  /**
70
- * Get all active redemption offers
74
+ * Get redemption offers
71
75
  *
72
- * Retrieves all currently available redemption offers that users can discover
73
- * and redeem. Active redemptions include discounts, vouchers, products, and
74
- * 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:
75
78
  *
76
- * @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
77
81
  *
78
- * @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
79
92
  * ```typescript
80
- * const activeOffers = await sdk.redemptions.getActiveRedemptions();
93
+ * // Regular users automatically see only active offers
94
+ * const { data: offers, pagination } = await sdk.redemptions.getRedemptions();
81
95
  *
82
- * console.log('🎁 Available Redemption Offers:');
83
- * activeOffers.forEach(offer => {
96
+ * console.log('Available Redemption Offers:');
97
+ * console.log(`Showing ${offers.length} of ${pagination.total} offers`);
98
+ *
99
+ * offers.forEach(offer => {
84
100
  * console.log(`\n${offer.title}`);
85
- * console.log(`📝 ${offer.description}`);
86
- * console.log(`🏷️ Type: ${offer.redemptionType?.name || 'General'}`);
101
+ * console.log(`${offer.description}`);
102
+ * console.log(`Type: ${offer.redemptionType?.name || 'General'}`);
87
103
  *
88
104
  * if (offer.tokenUnits?.length) {
89
- * console.log('💰 Cost:');
105
+ * console.log('Cost:');
90
106
  * offer.tokenUnits.forEach(unit => {
91
107
  * console.log(` ${unit.amount} ${unit.token.symbol}`);
92
108
  * });
93
109
  * }
94
110
  *
95
111
  * if (offer.availableQuantity !== undefined) {
96
- * console.log(`📦 Available: ${offer.availableQuantity}`);
112
+ * console.log(`Available: ${offer.availableQuantity}`);
97
113
  * }
98
114
  * });
99
115
  *
100
116
  * // Filter offers by affordability
101
- * const userBalance = 1000; // User's loyalty points
102
- * const affordableOffers = activeOffers.filter(offer =>
117
+ * const userBalance = 1000;
118
+ * const affordableOffers = offers.filter(offer =>
103
119
  * offer.tokenUnits?.every(unit => unit.amount <= userBalance)
104
120
  * );
105
121
  *
106
- * 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
+ * }
107
165
  * ```
108
166
  */
109
- getActiveRedemptions(): Promise<RedemptionDTO[]>;
167
+ getRedemptions(options?: {
168
+ active?: boolean;
169
+ } & PaginationOptions): Promise<PaginatedResponseDTO<RedemptionDTO>>;
110
170
  /**
111
171
  * Get available redemption types
112
172
  *
@@ -114,13 +174,13 @@ export declare class RedemptionManager {
114
174
  * rewards and offers. Types help users navigate and filter redemption options
115
175
  * based on their preferences and needs.
116
176
  *
117
- * @returns Promise resolving to array of redemption type definitions
177
+ * @returns Promise resolving to paginated redemption type definitions
118
178
  *
119
179
  * @example
120
180
  * ```typescript
121
- * const redemptionTypes = await sdk.redemptions.getRedemptionTypes();
181
+ * const { data: redemptionTypes } = await sdk.redemptions.getRedemptionTypes();
122
182
  *
123
- * console.log('🏷️ Redemption Categories:');
183
+ * console.log('Redemption Categories:');
124
184
  * redemptionTypes.forEach(type => {
125
185
  * console.log(`- ${type.name}: ${type.description}`);
126
186
  * });
@@ -141,7 +201,7 @@ export declare class RedemptionManager {
141
201
  * );
142
202
  * ```
143
203
  */
144
- getRedemptionTypes(): Promise<RedemptionTypeDTO[]>;
204
+ getRedemptionTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<RedemptionTypeDTO>>;
145
205
  /**
146
206
  * Redeem a redemption offer
147
207
  *
@@ -160,30 +220,30 @@ export declare class RedemptionManager {
160
220
  * const result = await sdk.redemptions.redeem('coffee-voucher-123');
161
221
  *
162
222
  * if (result.success) {
163
- * console.log('Redemption Successful!');
223
+ * console.log('Redemption Successful!');
164
224
  * console.log('Confirmation ID:', result.id);
165
225
  * console.log('Redeemed at:', result.redeemedAt);
166
226
  *
167
227
  * // Display redemption details
168
228
  * if (result.voucherCode) {
169
- * console.log('🎫 Voucher Code:', result.voucherCode);
229
+ * console.log('Voucher Code:', result.voucherCode);
170
230
  * console.log('Present this code to redeem your reward');
171
231
  * }
172
232
  *
173
233
  * if (result.instructions) {
174
- * console.log('📋 Instructions:', result.instructions);
234
+ * console.log('Instructions:', result.instructions);
175
235
  * }
176
236
  *
177
237
  * // Show tokens deducted
178
238
  * if (result.tokensUsed?.length) {
179
- * console.log('\n💸 Tokens Used:');
239
+ * console.log('\nTokens Used:');
180
240
  * result.tokensUsed.forEach(token => {
181
241
  * console.log(`- ${token.amount} ${token.symbol}`);
182
242
  * });
183
243
  * }
184
244
  *
185
245
  * } else {
186
- * console.log('Redemption failed:', result.error);
246
+ * console.log('Redemption failed:', result.error);
187
247
  * }
188
248
  *
189
249
  * } catch (error) {
@@ -191,9 +251,9 @@ export declare class RedemptionManager {
191
251
  *
192
252
  * // Handle specific error cases
193
253
  * if (error.message.includes('insufficient')) {
194
- * console.log('💰 You need more loyalty points for this redemption');
254
+ * console.log('You need more loyalty points for this redemption');
195
255
  * } else if (error.message.includes('unavailable')) {
196
- * console.log('😔 This offer is no longer available');
256
+ * console.log('This offer is no longer available');
197
257
  * }
198
258
  * }
199
259
  * ```
@@ -201,7 +261,7 @@ export declare class RedemptionManager {
201
261
  * @example Redemption with Pre-Validation
202
262
  * ```typescript
203
263
  * // Get offer details first
204
- * const offers = await sdk.redemptions.getActiveRedemptions();
264
+ * const { data: offers } = await sdk.redemptions.getRedemptions();
205
265
  * const targetOffer = offers.find(o => o.id === 'premium-discount');
206
266
  *
207
267
  * if (targetOffer) {
@@ -229,25 +289,25 @@ export declare class RedemptionManager {
229
289
  * completed. Includes redemption details, timestamps, voucher codes, and
230
290
  * token usage. Useful for user account history and support purposes.
231
291
  *
232
- * @returns Promise resolving to array of user's redemption records
292
+ * @returns Promise resolving to paginated user redemption records
233
293
  *
234
294
  * @example
235
295
  * ```typescript
236
- * const userRedemptions = await sdk.redemptions.getUserRedemptions();
296
+ * const { data: userRedemptions, pagination } = await sdk.redemptions.getUserRedemptions();
237
297
  *
238
- * console.log(`📜 Redemption History (${userRedemptions.length} items):`);
298
+ * console.log(`Redemption History (${userRedemptions.length} of ${pagination.total} items):`);
239
299
  *
240
300
  * userRedemptions.forEach((redemption, index) => {
241
301
  * console.log(`\n${index + 1}. ${redemption.redemption.title}`);
242
- * console.log(` 📅 Date: ${new Date(redemption.redeemedAt).toLocaleDateString()}`);
243
- * 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'}`);
244
304
  *
245
305
  * if (redemption.voucherCode) {
246
- * console.log(` 🎫 Voucher: ${redemption.voucherCode}`);
306
+ * console.log(` Voucher: ${redemption.voucherCode}`);
247
307
  * }
248
308
  *
249
309
  * if (redemption.tokensUsed?.length) {
250
- * console.log(` 💸 Cost:`);
310
+ * console.log(` Cost:`);
251
311
  * redemption.tokensUsed.forEach(token => {
252
312
  * console.log(` ${token.amount} ${token.symbol}`);
253
313
  * });
@@ -255,7 +315,7 @@ export declare class RedemptionManager {
255
315
  *
256
316
  * // Show status if available
257
317
  * if (redemption.status) {
258
- * console.log(` 📊 Status: ${redemption.status}`);
318
+ * console.log(` Status: ${redemption.status}`);
259
319
  * }
260
320
  * });
261
321
  *
@@ -265,7 +325,7 @@ export declare class RedemptionManager {
265
325
  * new Date(r.redeemedAt) > new Date(Date.now() - 30 * 24 * 60 * 60 * 1000)
266
326
  * ).length;
267
327
  *
268
- * console.log(`\n📊 Statistics:`);
328
+ * console.log(`\nStatistics:`);
269
329
  * console.log(`Total redemptions: ${totalRedemptions}`);
270
330
  * console.log(`This month: ${recentRedemptions}`);
271
331
  *
@@ -276,59 +336,13 @@ export declare class RedemptionManager {
276
336
  * return acc;
277
337
  * }, {});
278
338
  *
279
- * console.log(`\n📈 By category:`);
339
+ * console.log(`\nBy category:`);
280
340
  * Object.entries(byType).forEach(([type, count]) => {
281
341
  * console.log(`${type}: ${count} redemptions`);
282
342
  * });
283
343
  * ```
284
344
  */
285
- getUserRedemptions(): Promise<RedemptionRedeemDTO[]>;
286
- /**
287
- * Admin: Get all redemptions
288
- *
289
- * Retrieves all redemption offers in the system regardless of status. This
290
- * operation requires administrator privileges and is used for comprehensive
291
- * redemption management, reporting, and lifecycle operations.
292
- *
293
- * @param active - Optional filter to show only active or inactive redemptions
294
- * @returns Promise resolving to array of all redemptions
295
- * @throws {PersApiError} When not authenticated as administrator
296
- *
297
- * @example
298
- * ```typescript
299
- * // Admin operation - get redemption overview
300
- * const allRedemptions = await sdk.redemptions.getAllRedemptions();
301
- * const activeRedemptions = await sdk.redemptions.getAllRedemptions(true);
302
- * const inactiveRedemptions = await sdk.redemptions.getAllRedemptions(false);
303
- *
304
- * console.log('📊 Redemption Inventory:');
305
- * console.log(`Total offers: ${allRedemptions.length}`);
306
- * console.log(`Active offers: ${activeRedemptions.length}`);
307
- * console.log(`Inactive offers: ${inactiveRedemptions.length}`);
308
- *
309
- * // Analyze offers by type
310
- * const offersByType = allRedemptions.reduce((acc, offer) => {
311
- * const type = offer.redemptionType?.name || 'Unspecified';
312
- * acc[type] = (acc[type] || 0) + 1;
313
- * return acc;
314
- * }, {});
315
- *
316
- * console.log('\n🏷️ Offers by type:');
317
- * Object.entries(offersByType).forEach(([type, count]) => {
318
- * console.log(`${type}: ${count} offers`);
319
- * });
320
- *
321
- * // Find offers needing attention
322
- * const lowStock = allRedemptions.filter(offer =>
323
- * offer.availableQuantity && offer.availableQuantity < 10
324
- * );
325
- *
326
- * if (lowStock.length > 0) {
327
- * console.log(`\n⚠️ ${lowStock.length} offers running low on stock`);
328
- * }
329
- * ```
330
- */
331
- getAllRedemptions(active?: boolean): Promise<RedemptionDTO[]>;
345
+ getUserRedemptions(options?: PaginationOptions): Promise<PaginatedResponseDTO<RedemptionRedeemDTO>>;
332
346
  /**
333
347
  * Admin: Create new redemption offer
334
348
  *
@@ -353,7 +367,7 @@ export declare class RedemptionManager {
353
367
  * validUntil: '2024-08-31T23:59:59Z'
354
368
  * });
355
369
  *
356
- * console.log('New redemption created:', newRedemption.title);
370
+ * console.log('New redemption created:', newRedemption.title);
357
371
  * console.log('Redemption ID:', newRedemption.id);
358
372
  *
359
373
  * // Set redemption cost
@@ -363,7 +377,7 @@ export declare class RedemptionManager {
363
377
  * type: 'COST'
364
378
  * });
365
379
  *
366
- * console.log('💰 Cost set: 750 loyalty points');
380
+ * console.log('Cost set: 750 loyalty points');
367
381
  * ```
368
382
  */
369
383
  createRedemption(redemptionData: RedemptionCreateRequestDTO): Promise<RedemptionDTO>;
@@ -411,7 +425,7 @@ export declare class RedemptionManager {
411
425
  * const updated = await sdk.redemptions.toggleRedemptionStatus('seasonal-offer');
412
426
  *
413
427
  * console.log(`Redemption ${updated.isActive ? 'activated' : 'deactivated'}`);
414
- * console.log('Status:', updated.isActive ? 'Available' : 'Unavailable');
428
+ * console.log('Status:', updated.isActive ? 'Available' : 'Unavailable');
415
429
  *
416
430
  * // Reactivate when ready
417
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,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;IAGhB,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,iBAAiB,CAAoB;gBAEzB,SAAS,EAAE,aAAa;IAK5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;IAI/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"}