@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,6 +1,10 @@
1
+ import { PaginatedResponseDTO } from '@explorins/pers-shared';
1
2
  import { PersApiClient } from '../core/pers-api-client';
2
- import { BusinessService } from '../business';
3
- import type { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessToggleActiveRequestDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
3
+ import { PersEventEmitter } from '../core/events';
4
+ import { BusinessService, BusinessMembershipService } from '../business';
5
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
6
+ import type { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessToggleActiveRequestDTO, BusinessMembershipDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
7
+ import { MembershipRole } from '../shared/interfaces/pers-shared-lib.interfaces';
4
8
  /**
5
9
  * Business Manager - Clean, high-level interface for business operations
6
10
  *
@@ -58,9 +62,13 @@ import type { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessTo
58
62
  */
59
63
  export declare class BusinessManager {
60
64
  private apiClient;
65
+ private events?;
61
66
  private businessApi;
62
67
  private businessService;
63
- constructor(apiClient: PersApiClient);
68
+ private membershipApi;
69
+ private membershipService;
70
+ private userApi;
71
+ constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
64
72
  /**
65
73
  * Get all active businesses
66
74
  *
@@ -86,7 +94,7 @@ export declare class BusinessManager {
86
94
  * );
87
95
  * ```
88
96
  */
89
- getActiveBusinesses(): Promise<BusinessDTO[]>;
97
+ getActiveBusinesses(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
90
98
  /**
91
99
  * Get business by ID
92
100
  *
@@ -135,7 +143,7 @@ export declare class BusinessManager {
135
143
  *
136
144
  * // Use for transaction verification
137
145
  * if (business.isActive) {
138
- * console.log('Verified business partner');
146
+ * console.log('Verified business partner');
139
147
  * }
140
148
  * ```
141
149
  */
@@ -164,7 +172,7 @@ export declare class BusinessManager {
164
172
  * }));
165
173
  * ```
166
174
  */
167
- getBusinessTypes(): Promise<BusinessTypeDTO[]>;
175
+ getBusinessTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessTypeDTO>>;
168
176
  /**
169
177
  * Get businesses by type
170
178
  *
@@ -194,7 +202,7 @@ export declare class BusinessManager {
194
202
  * };
195
203
  * ```
196
204
  */
197
- getBusinessesByType(typeId: string): Promise<BusinessDTO[]>;
205
+ getBusinessesByType(typeId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
198
206
  /**
199
207
  * Admin: Get all businesses (including inactive)
200
208
  *
@@ -224,7 +232,7 @@ export declare class BusinessManager {
224
232
  * }));
225
233
  * ```
226
234
  */
227
- getBusinesses(): Promise<BusinessDTO[]>;
235
+ getBusinesses(options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessDTO>>;
228
236
  /**
229
237
  * Admin: Create new business
230
238
  *
@@ -334,5 +342,187 @@ export declare class BusinessManager {
334
342
  * ```
335
343
  */
336
344
  getBusinessService(): BusinessService;
345
+ /**
346
+ * Get all members of a business
347
+ *
348
+ * Retrieves all users who have access to the specified business with their roles.
349
+ * Any member of the business can view the member list.
350
+ *
351
+ * @param businessId - The business UUID
352
+ * @returns Promise resolving to array of business memberships
353
+ * @throws {PersApiError} 401 - Not authenticated
354
+ * @throws {PersApiError} 403 - Not a member of this business
355
+ *
356
+ * @example
357
+ * ```typescript
358
+ * const members = await sdk.business.getMembers('business-123');
359
+ *
360
+ * console.log('Business Members:');
361
+ * members.forEach(member => {
362
+ * console.log(`- User ${member.userId}: ${member.role}`);
363
+ * });
364
+ *
365
+ * // Count members by role
366
+ * const admins = members.filter(m => m.role === 'ADMIN' || m.role === 'OWNER');
367
+ * console.log(`Administrators: ${admins.length}`);
368
+ * ```
369
+ */
370
+ getMembers(businessId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessMembershipDTO>>;
371
+ /**
372
+ * Get members filtered by role
373
+ *
374
+ * @param businessId - The business UUID
375
+ * @param role - The role to filter by
376
+ * @returns Promise resolving to array of memberships with the specified role
377
+ *
378
+ * @example
379
+ * ```typescript
380
+ * const { data: owners } = await sdk.business.getMembersByRole('business-123', 'OWNER');
381
+ * console.log(`Business has ${owners.length} owner(s)`);
382
+ * ```
383
+ */
384
+ getMembersByRole(businessId: string, role: MembershipRole, options?: PaginationOptions): Promise<PaginatedResponseDTO<BusinessMembershipDTO>>;
385
+ /**
386
+ * Add a new member to a business
387
+ *
388
+ * Adds a user as a member of the business with the specified role.
389
+ * Requires ADMIN role or higher.
390
+ *
391
+ * @param businessId - The business UUID
392
+ * @param userId - The user UUID to add
393
+ * @param role - The role to assign (defaults to VIEWER)
394
+ * @returns Promise resolving to the created membership
395
+ * @throws {PersApiError} 401 - Not authenticated
396
+ * @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
397
+ * @throws {PersApiError} 404 - User not found
398
+ * @throws {PersApiError} 409 - User is already a member
399
+ *
400
+ * @example
401
+ * ```typescript
402
+ * // Add a new editor to the business
403
+ * const newMember = await sdk.business.addMember(
404
+ * 'business-123',
405
+ * 'user-456',
406
+ * 'EDITOR'
407
+ * );
408
+ *
409
+ * console.log(`Added ${newMember.userId} as ${newMember.role}`);
410
+ * ```
411
+ */
412
+ addMember(businessId: string, userId: string, role?: MembershipRole): Promise<BusinessMembershipDTO>;
413
+ /**
414
+ * Update a member's role
415
+ *
416
+ * Changes the role of an existing business member.
417
+ * Requires ADMIN role or higher. Cannot demote the last OWNER.
418
+ * Can only assign roles up to your own level (ADMIN cannot create OWNER).
419
+ *
420
+ * @param businessId - The business UUID
421
+ * @param userId - The user UUID to update
422
+ * @param newRole - The new role to assign
423
+ * @returns Promise resolving to the updated membership
424
+ * @throws {PersApiError} 401 - Not authenticated
425
+ * @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
426
+ * @throws {PersApiError} 404 - Membership not found
427
+ * @throws {PersApiError} 400 - Cannot demote last OWNER
428
+ *
429
+ * @example
430
+ * ```typescript
431
+ * // Promote an editor to admin
432
+ * const updated = await sdk.business.updateMemberRole(
433
+ * 'business-123',
434
+ * 'user-456',
435
+ * 'ADMIN'
436
+ * );
437
+ *
438
+ * console.log(`${updated.userId} is now ${updated.role}`);
439
+ * ```
440
+ */
441
+ updateMemberRole(businessId: string, userId: string, newRole: MembershipRole): Promise<BusinessMembershipDTO>;
442
+ /**
443
+ * Remove a member from a business
444
+ *
445
+ * Removes a user's access to the business.
446
+ * Requires ADMIN role or higher. Cannot remove the last OWNER.
447
+ *
448
+ * @param businessId - The business UUID
449
+ * @param userId - The user UUID to remove
450
+ * @returns Promise resolving to success confirmation
451
+ * @throws {PersApiError} 401 - Not authenticated
452
+ * @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
453
+ * @throws {PersApiError} 404 - Membership not found
454
+ * @throws {PersApiError} 400 - Cannot remove last OWNER
455
+ *
456
+ * @example
457
+ * ```typescript
458
+ * const result = await sdk.business.removeMember('business-123', 'user-456');
459
+ *
460
+ * if (result.success) {
461
+ * console.log('Member removed successfully');
462
+ * }
463
+ * ```
464
+ */
465
+ removeMember(businessId: string, userId: string): Promise<{
466
+ success: boolean;
467
+ }>;
468
+ /**
469
+ * Get permission flags for a role
470
+ *
471
+ * Returns an object with boolean flags indicating what actions
472
+ * a user with the given role can perform. Useful for UI rendering.
473
+ *
474
+ * @param role - The membership role (or null if not a member)
475
+ * @returns Object with permission flags
476
+ *
477
+ * @example
478
+ * ```typescript
479
+ * const permissions = sdk.business.getPermissions('EDITOR');
480
+ * // { canViewMembers: true, canManageMembers: false, canEditContent: true, canDeleteBusiness: false }
481
+ *
482
+ * if (permissions.canManageMembers) {
483
+ * showAddMemberButton();
484
+ * }
485
+ * ```
486
+ */
487
+ getPermissions(role: MembershipRole | null): {
488
+ canViewMembers: boolean;
489
+ canManageMembers: boolean;
490
+ canEditContent: boolean;
491
+ canDeleteBusiness: boolean;
492
+ };
493
+ /**
494
+ * Add a member to a business by email address
495
+ *
496
+ * Convenience method that creates or retrieves a user by email and adds them
497
+ * as a member of the business. If the user doesn't exist, they will be created.
498
+ * Requires ADMIN role or higher.
499
+ *
500
+ * @param businessId - The business UUID
501
+ * @param email - The email address of the user to add
502
+ * @param role - The role to assign (defaults to VIEWER)
503
+ * @returns Promise resolving to the created membership
504
+ * @throws {PersApiError} 401 - Not authenticated
505
+ * @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
506
+ * @throws {PersApiError} 409 - User is already a member
507
+ *
508
+ * @example
509
+ * ```typescript
510
+ * // Add a new editor by email - user is created if they don't exist
511
+ * const membership = await sdk.business.addMemberByEmail(
512
+ * 'business-123',
513
+ * 'newuser@example.com',
514
+ * 'EDITOR'
515
+ * );
516
+ *
517
+ * console.log(`Added user ${membership.userId} as ${membership.role}`);
518
+ * ```
519
+ */
520
+ addMemberByEmail(businessId: string, email: string, role?: MembershipRole): Promise<BusinessMembershipDTO>;
521
+ /**
522
+ * Get the membership service for advanced operations
523
+ *
524
+ * @returns BusinessMembershipService instance
525
+ */
526
+ getMembershipService(): BusinessMembershipService;
337
527
  }
338
528
  //# sourceMappingURL=business-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"business-manager.d.ts","sourceRoot":"","sources":["../../src/managers/business-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,iDAAiD,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,qBAAa,eAAe;IAId,OAAO,CAAC,SAAS;IAH7B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAkB;gBAErB,SAAS,EAAE,aAAa;IAK5C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,mBAAmB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAInD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAIpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAI7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAItG;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,8BAA8B,GAAG,OAAO,CAAC,WAAW,CAAC;IAIhH;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,kBAAkB;CAInB"}
1
+ {"version":3,"file":"business-manager.d.ts","sourceRoot":"","sources":["../../src/managers/business-manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
+ import { PaginatedResponseDTO, SortOrder } from '@explorins/pers-shared';
1
2
  import { PersApiClient } from '../core/pers-api-client';
3
+ import { PersEventEmitter } from '../core/events';
2
4
  import { CampaignService } from '../campaign';
5
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
3
6
  import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, CampaignClaimDTO, TokenUnitCreateRequestDTO, CampaignBusinessEngagementCreateRequestDTO, CampaignTriggerDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
7
  /**
5
8
  * Campaign Manager - Clean, high-level interface for campaign operations
@@ -14,9 +17,9 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
14
17
  *
15
18
  * @example Basic Campaign Operations
16
19
  * ```typescript
17
- * // Get all available campaigns for users
18
- * const campaigns = await sdk.campaigns.getActiveCampaigns();
19
- * console.log(`${campaigns.length} active campaigns available`);
20
+ * // Get all available campaigns (paginated)
21
+ * const result = await sdk.campaigns.getCampaigns({ page: 1, limit: 20 });
22
+ * console.log(`${result.data.length} of ${result.total} campaigns`);
20
23
  *
21
24
  * // Get specific campaign details
22
25
  * const campaign = await sdk.campaigns.getCampaignById('summer-promo-2024');
@@ -42,7 +45,8 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
42
45
  * });
43
46
  *
44
47
  * // Check if user can claim specific campaign
45
- * const eligibleCampaigns = campaigns.filter(c =>
48
+ * const campaigns = await sdk.campaigns.getCampaigns({ active: true });
49
+ * const eligibleCampaigns = campaigns.data.filter(c =>
46
50
  * !userClaims.some(claim => claim.campaignId === c.id)
47
51
  * );
48
52
  * ```
@@ -68,42 +72,9 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
68
72
  */
69
73
  export declare class CampaignManager {
70
74
  private apiClient;
75
+ private events?;
71
76
  private campaignService;
72
- constructor(apiClient: PersApiClient);
73
- /**
74
- * Get all active campaigns
75
- *
76
- * Retrieves all currently active campaigns that users can discover and claim.
77
- * Active campaigns are live promotional offers with valid date ranges and
78
- * available rewards. Includes campaign details, eligibility requirements, and reward information.
79
- *
80
- * @returns Promise resolving to array of active campaign data
81
- *
82
- * @example
83
- * ```typescript
84
- * const activeCampaigns = await sdk.campaigns.getActiveCampaigns();
85
- *
86
- * console.log('Available Campaigns:');
87
- * activeCampaigns.forEach(campaign => {
88
- * console.log(`\n📢 ${campaign.title}`);
89
- * console.log(` ${campaign.description}`);
90
- * console.log(` Valid: ${campaign.startDate} to ${campaign.endDate}`);
91
- * console.log(` Rewards: ${campaign.tokenUnits?.length || 0} types`);
92
- *
93
- * if (campaign.businessEngagements?.length) {
94
- * console.log(` Partner businesses: ${campaign.businessEngagements.length}`);
95
- * }
96
- * });
97
- *
98
- * // Filter campaigns by type or business
99
- * const hotelCampaigns = activeCampaigns.filter(c =>
100
- * c.businessEngagements?.some(be =>
101
- * be.business?.businessType?.name?.includes('Hotel')
102
- * )
103
- * );
104
- * ```
105
- */
106
- getActiveCampaigns(): Promise<CampaignDTO[]>;
77
+ constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
107
78
  /**
108
79
  * Get campaign by ID
109
80
  *
@@ -119,18 +90,18 @@ export declare class CampaignManager {
119
90
  * try {
120
91
  * const campaign = await sdk.campaigns.getCampaignById('summer-promo-2024');
121
92
  *
122
- * console.log('📢 Campaign Details:');
93
+ * console.log('Campaign Details:');
123
94
  * console.log('Title:', campaign.title);
124
95
  * console.log('Description:', campaign.description);
125
96
  * console.log('Active:', campaign.isActive);
126
97
  * console.log('Period:', `${campaign.startDate} to ${campaign.endDate}`);
127
98
  *
128
- * console.log('\n💎 Rewards:');
99
+ * console.log('\nRewards:');
129
100
  * campaign.tokenUnits?.forEach(unit => {
130
101
  * console.log(`- ${unit.amount} ${unit.token.symbol} (${unit.token.name})`);
131
102
  * });
132
103
  *
133
- * console.log('\n🏢 Partner Businesses:');
104
+ * console.log('\nPartner Businesses:');
134
105
  * campaign.businessEngagements?.forEach(engagement => {
135
106
  * console.log(`- ${engagement.business.displayName}`);
136
107
  * });
@@ -160,12 +131,12 @@ export declare class CampaignManager {
160
131
  * businessId: 'partner-hotel-123'
161
132
  * });
162
133
  *
163
- * console.log('Campaign claimed successfully!');
134
+ * console.log('Campaign claimed successfully!');
164
135
  * console.log('Claim ID:', claim.id);
165
136
  * console.log('Claimed at:', claim.claimedAt);
166
137
  *
167
138
  * if (claim.rewards?.length) {
168
- * console.log('\n💰 Rewards received:');
139
+ * console.log('\nRewards received:');
169
140
  * claim.rewards.forEach(reward => {
170
141
  * console.log(`- ${reward.amount} ${reward.token.symbol}`);
171
142
  * });
@@ -212,15 +183,15 @@ export declare class CampaignManager {
212
183
  * ```typescript
213
184
  * const userClaims = await sdk.campaigns.getUserClaims();
214
185
  *
215
- * console.log(`📜 Campaign History (${userClaims.length} claims):`);
186
+ * console.log(`Campaign History (${userClaims.length} claims):`);
216
187
  *
217
188
  * userClaims.forEach((claim, index) => {
218
189
  * console.log(`\n${index + 1}. ${claim.campaign.title}`);
219
- * console.log(` 📅 Claimed: ${new Date(claim.claimedAt).toLocaleDateString()}`);
220
- * console.log(` 🏢 Business: ${claim.business?.displayName || 'N/A'}`);
190
+ * console.log(` Claimed: ${new Date(claim.claimedAt).toLocaleDateString()}`);
191
+ * console.log(` Business: ${claim.business?.displayName || 'N/A'}`);
221
192
  *
222
193
  * if (claim.rewards?.length) {
223
- * console.log(` 💰 Rewards:`);
194
+ * console.log(` Rewards:`);
224
195
  * claim.rewards.forEach(reward => {
225
196
  * console.log(` • ${reward.amount} ${reward.token.symbol}`);
226
197
  * });
@@ -232,44 +203,57 @@ export declare class CampaignManager {
232
203
  * return total + (claim.rewards?.length || 0);
233
204
  * }, 0);
234
205
  *
235
- * console.log(`\n🎁 Total reward items earned: ${totalRewards}`);
206
+ * console.log(`\nTotal reward items earned: ${totalRewards}`);
236
207
  * ```
237
208
  */
238
- getUserClaims(): Promise<CampaignClaimDTO[]>;
209
+ getUserClaims(options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
239
210
  /**
240
- * Admin: Get all campaigns
211
+ * Get campaigns with pagination support
241
212
  *
242
- * Retrieves all campaigns in the system regardless of status. This operation
243
- * requires administrator privileges and is used for comprehensive campaign
244
- * management, reporting, and lifecycle operations.
213
+ * Returns campaigns with pagination metadata for efficient data loading.
214
+ * Intelligent access: Public gets active only, Business gets own campaigns, Admin gets all.
245
215
  *
246
- * @param active - Optional filter to show only active or inactive campaigns
247
- * @returns Promise resolving to array of campaigns
248
- * @throws {PersApiError} When not authenticated as administrator
216
+ * @param options - Pagination and filter options
217
+ * @param options.active - Filter by active status (true/false/undefined for all)
218
+ * @param options.businessId - Filter by business engagement
219
+ * @param options.page - Page number (1-based, default: 1)
220
+ * @param options.limit - Items per page (default: 50)
221
+ * @param options.sortBy - Sort field ('name', 'createdAt', 'startDate')
222
+ * @param options.sortOrder - Sort direction ('ASC' or 'DESC')
223
+ * @returns Promise resolving to paginated campaigns with metadata
249
224
  *
250
225
  * @example
251
226
  * ```typescript
252
- * // Admin operation - get campaign overview
253
- * const allCampaigns = await sdk.campaigns.getAllCampaigns();
254
- * const activeCampaigns = await sdk.campaigns.getAllCampaigns(true);
255
- * const inactiveCampaigns = await sdk.campaigns.getAllCampaigns(false);
256
- *
257
- * console.log('📊 Campaign Statistics:');
258
- * console.log(`Total campaigns: ${allCampaigns.length}`);
259
- * console.log(`Active campaigns: ${activeCampaigns.length}`);
260
- * console.log(`Inactive campaigns: ${inactiveCampaigns.length}`);
261
- *
262
- * // Generate campaign performance report
263
- * const campaignReport = allCampaigns.map(campaign => ({
264
- * title: campaign.title,
265
- * status: campaign.isActive ? 'Active' : 'Inactive',
266
- * period: `${campaign.startDate} to ${campaign.endDate}`,
267
- * businesses: campaign.businessEngagements?.length || 0,
268
- * rewardTypes: campaign.tokenUnits?.length || 0
269
- * }));
227
+ * // Get first page of campaigns
228
+ * const result = await sdk.campaigns.getCampaigns({ page: 1, limit: 10 });
229
+ * console.log(`Showing ${result.data.length} of ${result.total} campaigns`);
230
+ * console.log(`Has more pages: ${result.hasMore}`);
231
+ *
232
+ * // Get campaigns for a specific business
233
+ * const businessCampaigns = await sdk.campaigns.getCampaigns({
234
+ * businessId: 'business-123',
235
+ * page: 1,
236
+ * limit: 20
237
+ * });
238
+ *
239
+ * // Get active campaigns sorted by creation date
240
+ * const activeCampaigns = await sdk.campaigns.getCampaigns({
241
+ * active: true,
242
+ * sortBy: 'createdAt',
243
+ * sortOrder: 'DESC',
244
+ * page: 1,
245
+ * limit: 25
246
+ * });
270
247
  * ```
271
248
  */
272
- getAllCampaigns(active?: boolean): Promise<CampaignDTO[]>;
249
+ getCampaigns(options?: {
250
+ active?: boolean;
251
+ businessId?: string;
252
+ page?: number;
253
+ limit?: number;
254
+ sortBy?: 'name' | 'createdAt' | 'startDate';
255
+ sortOrder?: SortOrder;
256
+ }): Promise<PaginatedResponseDTO<CampaignDTO>>;
273
257
  /**
274
258
  * Admin: Create new campaign
275
259
  *
@@ -294,7 +278,7 @@ export declare class CampaignManager {
294
278
  * campaignType: 'SEASONAL'
295
279
  * });
296
280
  *
297
- * console.log('Campaign created:', campaign.title);
281
+ * console.log('Campaign created:', campaign.title);
298
282
  * console.log('Campaign ID:', campaign.id);
299
283
  *
300
284
  * // Set up campaign rewards
@@ -350,7 +334,7 @@ export declare class CampaignManager {
350
334
  * const updated = await sdk.campaigns.toggleCampaignStatus('problematic-campaign');
351
335
  *
352
336
  * console.log(`Campaign ${updated.isActive ? 'activated' : 'deactivated'}`);
353
- * console.log('Status:', updated.isActive ? 'Active' : 'Inactive');
337
+ * console.log('Status:', updated.isActive ? 'Active' : 'Inactive');
354
338
  * ```
355
339
  */
356
340
  toggleCampaignStatus(campaignId: string): Promise<CampaignDTO>;
@@ -396,7 +380,7 @@ export declare class CampaignManager {
396
380
  * });
397
381
  * ```
398
382
  */
399
- getCampaignTriggers(): Promise<CampaignTriggerDTO[]>;
383
+ getCampaignTriggers(options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignTriggerDTO>>;
400
384
  /**
401
385
  * Admin: Set campaign trigger
402
386
  *
@@ -576,7 +560,7 @@ export declare class CampaignManager {
576
560
  * // Admin operation - get campaign performance data
577
561
  * const allClaims = await sdk.campaigns.getCampaignClaims();
578
562
  *
579
- * console.log(`📊 Campaign Performance Report:`);
563
+ * console.log(`Campaign Performance Report:`);
580
564
  * console.log(`Total claims: ${allClaims.length}`);
581
565
  *
582
566
  * // Analyze claims by campaign
@@ -592,7 +576,7 @@ export declare class CampaignManager {
592
576
  * });
593
577
  * ```
594
578
  */
595
- getCampaignClaims(): Promise<CampaignClaimDTO[]>;
579
+ getCampaignClaims(options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
596
580
  /**
597
581
  * Admin: Get campaign claims by user ID
598
582
  *
@@ -626,7 +610,7 @@ export declare class CampaignManager {
626
610
  * console.log(`\nTotal rewards earned: ${totalRewards}`);
627
611
  * ```
628
612
  */
629
- getCampaignClaimsByUserId(userId: string): Promise<CampaignClaimDTO[]>;
613
+ getCampaignClaimsByUserId(userId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
630
614
  /**
631
615
  * Admin: Get campaign claims by business ID
632
616
  *
@@ -665,7 +649,7 @@ export declare class CampaignManager {
665
649
  * console.log(`\nTotal rewards distributed: ${totalRewardsDistributed}`);
666
650
  * ```
667
651
  */
668
- getCampaignClaimsByBusinessId(businessId: string): Promise<CampaignClaimDTO[]>;
652
+ getCampaignClaimsByBusinessId(businessId: string, options?: PaginationOptions): Promise<PaginatedResponseDTO<CampaignClaimDTO>>;
669
653
  /**
670
654
  * Get the full campaign service for advanced operations
671
655
  *
@@ -1 +1 @@
1
- {"version":3,"file":"campaign-manager.d.ts","sourceRoot":"","sources":["../../src/managers/campaign-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"campaign-manager.d.ts","sourceRoot":"","sources":["../../src/managers/campaign-manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { PaginatedResponseDTO } from '@explorins/pers-shared';
1
2
  import { PersApiClient } from '../core/pers-api-client';
2
3
  import { DonationService } from '../donation';
4
+ import { PaginationOptions } from '../shared/utils/pagination-utils';
3
5
  import type { DonationTypeDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
6
  /**
5
7
  * Donation Manager - Clean, high-level interface for donation operations
@@ -14,9 +16,9 @@ export declare class DonationManager {
14
16
  /**
15
17
  * Get available donation types
16
18
  *
17
- * @returns Promise resolving to array of donation types
19
+ * @returns Promise resolving to paginated donation types
18
20
  */
19
- getDonationTypes(): Promise<DonationTypeDTO[]>;
21
+ getDonationTypes(options?: PaginationOptions): Promise<PaginatedResponseDTO<DonationTypeDTO>>;
20
22
  /**
21
23
  * Get the full donation service for advanced operations
22
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"donation-manager.d.ts","sourceRoot":"","sources":["../../src/managers/donation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAEvF;;;;;GAKG;AACH,qBAAa,eAAe;IAGd,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,eAAe,CAAkB;gBAErB,SAAS,EAAE,aAAa;IAK5C;;;;OAIG;IACG,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAIpD;;;;OAIG;IACH,kBAAkB,IAAI,eAAe;CAGtC"}
1
+ {"version":3,"file":"donation-manager.d.ts","sourceRoot":"","sources":["../../src/managers/donation-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAe,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAEvF;;;;;GAKG;AACH,qBAAa,eAAe;IAGd,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,eAAe,CAAkB;gBAErB,SAAS,EAAE,aAAa;IAK5C;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAInG;;;;OAIG;IACH,kBAAkB,IAAI,eAAe;CAGtC"}
@@ -106,9 +106,9 @@ export declare class FileManager {
106
106
  * });
107
107
  *
108
108
  * if (uploadResponse.ok) {
109
- * console.log('Campaign banner uploaded successfully');
109
+ * console.log('Campaign banner uploaded successfully');
110
110
  * } else {
111
- * console.log('Upload failed:', uploadResponse.status);
111
+ * console.log('Upload failed:', uploadResponse.status);
112
112
  * }
113
113
  * }
114
114
  *