@explorins/pers-sdk 1.6.43 → 1.6.47

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 (140) hide show
  1. package/README.md +185 -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/business/api/business-membership-api.d.ts +186 -0
  6. package/dist/business/api/business-membership-api.d.ts.map +1 -0
  7. package/dist/business/index.d.ts +2 -0
  8. package/dist/business/index.d.ts.map +1 -1
  9. package/dist/business/services/business-membership-service.d.ts +186 -0
  10. package/dist/business/services/business-membership-service.d.ts.map +1 -0
  11. package/dist/business.cjs +727 -9
  12. package/dist/business.cjs.map +1 -1
  13. package/dist/business.js +711 -2
  14. package/dist/business.js.map +1 -1
  15. package/dist/campaign/api/campaign-api.d.ts +7 -10
  16. package/dist/campaign/api/campaign-api.d.ts.map +1 -1
  17. package/dist/campaign/services/campaign-service.d.ts +18 -7
  18. package/dist/campaign/services/campaign-service.d.ts.map +1 -1
  19. package/dist/campaign.cjs +13 -1
  20. package/dist/campaign.cjs.map +1 -1
  21. package/dist/campaign.js +2 -2
  22. package/dist/chunks/{campaign-service-CJPXgFBe.js → campaign-service-CKwkiOLx.js} +29 -39
  23. package/dist/chunks/campaign-service-CKwkiOLx.js.map +1 -0
  24. package/dist/chunks/{campaign-service-B1tQMNqA.cjs → campaign-service-D-v9ZlUB.cjs} +29 -39
  25. package/dist/chunks/campaign-service-D-v9ZlUB.cjs.map +1 -0
  26. package/dist/chunks/{pers-sdk-XbARV58g.cjs → pers-sdk-DULFjOW2.cjs} +923 -146
  27. package/dist/chunks/pers-sdk-DULFjOW2.cjs.map +1 -0
  28. package/dist/chunks/{pers-sdk-Nu2KgiJf.js → pers-sdk-VmeBqUEP.js} +919 -146
  29. package/dist/chunks/pers-sdk-VmeBqUEP.js.map +1 -0
  30. package/dist/chunks/transaction-request.builder-DltmruUC.js +296 -0
  31. package/dist/chunks/transaction-request.builder-DltmruUC.js.map +1 -0
  32. package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs +303 -0
  33. package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs.map +1 -0
  34. package/dist/chunks/{user-service-D1Rn4U8u.cjs → user-service-B89wBOV1.cjs} +60 -10
  35. package/dist/chunks/user-service-B89wBOV1.cjs.map +1 -0
  36. package/dist/chunks/{user-service-D6mTa_WZ.js → user-service-doT5vsBD.js} +60 -10
  37. package/dist/chunks/user-service-doT5vsBD.js.map +1 -0
  38. package/dist/chunks/{web3-chain-service-BLFxB5TA.cjs → web3-chain-service-6vsVHPjl.cjs} +116 -16
  39. package/dist/chunks/web3-chain-service-6vsVHPjl.cjs.map +1 -0
  40. package/dist/chunks/{web3-chain-service-JRSwxr-s.js → web3-chain-service-BcUeeujC.js} +111 -17
  41. package/dist/chunks/web3-chain-service-BcUeeujC.js.map +1 -0
  42. package/dist/core/auth/api/auth-api.d.ts +35 -0
  43. package/dist/core/auth/api/auth-api.d.ts.map +1 -1
  44. package/dist/core/auth/auth-provider.interface.d.ts +7 -1
  45. package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
  46. package/dist/core/auth/services/auth-service.d.ts +26 -1
  47. package/dist/core/auth/services/auth-service.d.ts.map +1 -1
  48. package/dist/core/auth/token-storage.d.ts +3 -2
  49. package/dist/core/auth/token-storage.d.ts.map +1 -1
  50. package/dist/core/errors/index.d.ts +75 -6
  51. package/dist/core/errors/index.d.ts.map +1 -1
  52. package/dist/core/events/event-emitter.d.ts +106 -0
  53. package/dist/core/events/event-emitter.d.ts.map +1 -0
  54. package/dist/core/events/event-types.d.ts +127 -0
  55. package/dist/core/events/event-types.d.ts.map +1 -0
  56. package/dist/core/events/index.d.ts +22 -0
  57. package/dist/core/events/index.d.ts.map +1 -0
  58. package/dist/core/index.d.ts +3 -0
  59. package/dist/core/index.d.ts.map +1 -1
  60. package/dist/core/pers-api-client.d.ts +12 -0
  61. package/dist/core/pers-api-client.d.ts.map +1 -1
  62. package/dist/core/version.d.ts +15 -0
  63. package/dist/core/version.d.ts.map +1 -0
  64. package/dist/core.cjs +19 -6
  65. package/dist/core.cjs.map +1 -1
  66. package/dist/core.js +6 -6
  67. package/dist/donation.cjs +12 -0
  68. package/dist/donation.cjs.map +1 -1
  69. package/dist/donation.js +1 -1
  70. package/dist/index.cjs +43 -9
  71. package/dist/index.cjs.map +1 -1
  72. package/dist/index.js +7 -6
  73. package/dist/index.js.map +1 -1
  74. package/dist/managers/auth-manager.d.ts +77 -4
  75. package/dist/managers/auth-manager.d.ts.map +1 -1
  76. package/dist/managers/business-manager.d.ts +192 -4
  77. package/dist/managers/business-manager.d.ts.map +1 -1
  78. package/dist/managers/campaign-manager.d.ts +48 -65
  79. package/dist/managers/campaign-manager.d.ts.map +1 -1
  80. package/dist/managers/index.d.ts +1 -1
  81. package/dist/managers/index.d.ts.map +1 -1
  82. package/dist/managers/redemption-manager.d.ts +3 -1
  83. package/dist/managers/redemption-manager.d.ts.map +1 -1
  84. package/dist/managers/transaction-manager.d.ts +4 -2
  85. package/dist/managers/transaction-manager.d.ts.map +1 -1
  86. package/dist/managers/user-manager.d.ts +57 -1
  87. package/dist/managers/user-manager.d.ts.map +1 -1
  88. package/dist/managers/web3-manager.d.ts +63 -64
  89. package/dist/managers/web3-manager.d.ts.map +1 -1
  90. package/dist/package.json +2 -2
  91. package/dist/payment.cjs +12 -0
  92. package/dist/payment.cjs.map +1 -1
  93. package/dist/payment.js +1 -1
  94. package/dist/pers-sdk.d.ts +49 -0
  95. package/dist/pers-sdk.d.ts.map +1 -1
  96. package/dist/redemption.cjs +12 -0
  97. package/dist/redemption.cjs.map +1 -1
  98. package/dist/redemption.js +1 -1
  99. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +2 -1
  100. package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -1
  101. package/dist/tenant.cjs +12 -0
  102. package/dist/tenant.cjs.map +1 -1
  103. package/dist/tenant.js +1 -1
  104. package/dist/token.cjs +12 -0
  105. package/dist/token.cjs.map +1 -1
  106. package/dist/token.js +1 -1
  107. package/dist/transaction/models/index.d.ts +2 -0
  108. package/dist/transaction/models/index.d.ts.map +1 -1
  109. package/dist/transaction/models/transaction-request.builder.d.ts +256 -0
  110. package/dist/transaction/models/transaction-request.builder.d.ts.map +1 -0
  111. package/dist/transaction.cjs +7 -0
  112. package/dist/transaction.cjs.map +1 -1
  113. package/dist/transaction.js +1 -0
  114. package/dist/transaction.js.map +1 -1
  115. package/dist/user/api/user-api.d.ts +28 -7
  116. package/dist/user/api/user-api.d.ts.map +1 -1
  117. package/dist/user/services/user-service.d.ts +21 -0
  118. package/dist/user/services/user-service.d.ts.map +1 -1
  119. package/dist/user-status.cjs +12 -0
  120. package/dist/user-status.cjs.map +1 -1
  121. package/dist/user-status.js +1 -1
  122. package/dist/user.cjs +13 -1
  123. package/dist/user.cjs.map +1 -1
  124. package/dist/user.js +2 -2
  125. package/dist/web3-chain.cjs +13 -1
  126. package/dist/web3-chain.cjs.map +1 -1
  127. package/dist/web3-chain.js +2 -2
  128. package/package.json +2 -2
  129. package/dist/chunks/business-service-8Xd3d5oY.js +0 -238
  130. package/dist/chunks/business-service-8Xd3d5oY.js.map +0 -1
  131. package/dist/chunks/business-service-P9o4cwQL.cjs +0 -241
  132. package/dist/chunks/business-service-P9o4cwQL.cjs.map +0 -1
  133. package/dist/chunks/campaign-service-B1tQMNqA.cjs.map +0 -1
  134. package/dist/chunks/campaign-service-CJPXgFBe.js.map +0 -1
  135. package/dist/chunks/pers-sdk-Nu2KgiJf.js.map +0 -1
  136. package/dist/chunks/pers-sdk-XbARV58g.cjs.map +0 -1
  137. package/dist/chunks/user-service-D1Rn4U8u.cjs.map +0 -1
  138. package/dist/chunks/user-service-D6mTa_WZ.js.map +0 -1
  139. package/dist/chunks/web3-chain-service-BLFxB5TA.cjs.map +0 -1
  140. package/dist/chunks/web3-chain-service-JRSwxr-s.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,21 +1,22 @@
1
1
  'use strict';
2
2
 
3
- var persSdk = require('./chunks/pers-sdk-XbARV58g.cjs');
3
+ var persSdk = require('./chunks/pers-sdk-DULFjOW2.cjs');
4
4
  var index = require('./chunks/index-B6-bbNnd.cjs');
5
+ var web3ChainService = require('./chunks/web3-chain-service-6vsVHPjl.cjs');
5
6
  var persShared = require('@explorins/pers-shared');
6
- var businessService = require('./chunks/business-service-P9o4cwQL.cjs');
7
+ var business = require('./business.cjs');
7
8
  var transactionService = require('./chunks/transaction-service-CXjTHCFu.cjs');
9
+ var transactionRequest_builder = require('./chunks/transaction-request.builder-DrqTWcyC.cjs');
8
10
  var analyticsService = require('./chunks/analytics-service-CitlimKJ.cjs');
9
- var campaignService = require('./chunks/campaign-service-B1tQMNqA.cjs');
11
+ var campaignService = require('./chunks/campaign-service-D-v9ZlUB.cjs');
10
12
  var donationService = require('./chunks/donation-service-D-xFrONi.cjs');
11
13
  var paymentService = require('./chunks/payment-service-B4qx0qiE.cjs');
12
14
  var redemptionService = require('./chunks/redemption-service-7qbeQxEM.cjs');
13
15
  var tenantService = require('./chunks/tenant-service-DME24vr1.cjs');
14
16
  var baseTokenService = require('./chunks/base-token-service-CYuqPPs0.cjs');
15
17
  var tokenService = require('./chunks/token-service-BWScn8Qa.cjs');
16
- var userService = require('./chunks/user-service-D1Rn4U8u.cjs');
18
+ var userService = require('./chunks/user-service-B89wBOV1.cjs');
17
19
  var userStatus = require('./user-status.cjs');
18
- var web3ChainService = require('./chunks/web3-chain-service-BLFxB5TA.cjs');
19
20
  var index$1 = require('./chunks/index-CMk3Aqkk.cjs');
20
21
  var explorer_utils = require('./chunks/explorer.utils-Cx3wrqAj.cjs');
21
22
  var platformAdapters = require('./platform-adapters.cjs');
@@ -49,9 +50,13 @@ exports.IndexedDBTokenStorage = persSdk.IndexedDBTokenStorage;
49
50
  exports.LocalStorageTokenStorage = persSdk.LocalStorageTokenStorage;
50
51
  exports.MemoryTokenStorage = persSdk.MemoryTokenStorage;
51
52
  exports.PersApiClient = persSdk.PersApiClient;
53
+ exports.PersEventEmitter = persSdk.PersEventEmitter;
52
54
  exports.PersSDK = persSdk.PersSDK;
53
55
  exports.PurchaseManager = persSdk.PurchaseManager;
54
56
  exports.RedemptionManager = persSdk.RedemptionManager;
57
+ exports.SDK_NAME = persSdk.SDK_NAME;
58
+ exports.SDK_USER_AGENT = persSdk.SDK_USER_AGENT;
59
+ exports.SDK_VERSION = persSdk.SDK_VERSION;
55
60
  exports.TenantManager = persSdk.TenantManager;
56
61
  exports.TokenManager = persSdk.TokenManager;
57
62
  exports.TransactionManager = persSdk.TransactionManager;
@@ -68,6 +73,17 @@ exports.warnIfProblematicEnvironment = persSdk.warnIfProblematicEnvironment;
68
73
  exports.CacheService = index.CacheService;
69
74
  exports.CacheTTL = index.CacheTTL;
70
75
  exports.globalCacheService = index.globalCacheService;
76
+ exports.ApiErrorDetector = web3ChainService.ApiErrorDetector;
77
+ exports.AuthenticationError = web3ChainService.AuthenticationError;
78
+ exports.ErrorUtils = web3ChainService.ErrorUtils;
79
+ exports.LogoutRequired = web3ChainService.LogoutRequired;
80
+ exports.MultipleContextSelectionRequiredError = web3ChainService.MultipleContextSelectionRequiredError;
81
+ exports.NetworkError = web3ChainService.NetworkError;
82
+ exports.PersApiError = web3ChainService.PersApiError;
83
+ exports.ProviderTokenRefreshNeeded = web3ChainService.ProviderTokenRefreshNeeded;
84
+ exports.TokenRefreshNeeded = web3ChainService.TokenRefreshNeeded;
85
+ exports.Web3ChainApi = web3ChainService.Web3ChainApi;
86
+ exports.Web3ChainService = web3ChainService.Web3ChainService;
71
87
  Object.defineProperty(exports, "AccountOwnerType", {
72
88
  enumerable: true,
73
89
  get: function () { return persShared.AccountOwnerType; }
@@ -76,14 +92,34 @@ Object.defineProperty(exports, "ApiKeyType", {
76
92
  enumerable: true,
77
93
  get: function () { return persShared.ApiKeyType; }
78
94
  });
95
+ Object.defineProperty(exports, "MEMBERSHIP_ROLE_HIERARCHY", {
96
+ enumerable: true,
97
+ get: function () { return persShared.MEMBERSHIP_ROLE_HIERARCHY; }
98
+ });
99
+ Object.defineProperty(exports, "MembershipRole", {
100
+ enumerable: true,
101
+ get: function () { return persShared.MembershipRole; }
102
+ });
79
103
  Object.defineProperty(exports, "NativeTokenTypes", {
80
104
  enumerable: true,
81
105
  get: function () { return persShared.NativeTokenTypes; }
82
106
  });
83
- exports.BusinessApi = businessService.BusinessApi;
84
- exports.BusinessService = businessService.BusinessService;
107
+ Object.defineProperty(exports, "hasMinimumRole", {
108
+ enumerable: true,
109
+ get: function () { return persShared.hasMinimumRole; }
110
+ });
111
+ exports.BusinessApi = business.BusinessApi;
112
+ exports.BusinessMembershipApi = business.BusinessMembershipApi;
113
+ exports.BusinessMembershipService = business.BusinessMembershipService;
114
+ exports.BusinessService = business.BusinessService;
85
115
  exports.TransactionApi = transactionService.TransactionApi;
86
116
  exports.TransactionService = transactionService.TransactionService;
117
+ exports.buildBurnRequest = transactionRequest_builder.buildBurnRequest;
118
+ exports.buildMintRequest = transactionRequest_builder.buildMintRequest;
119
+ exports.buildPOSBurnRequest = transactionRequest_builder.buildPOSBurnRequest;
120
+ exports.buildPOSTransferRequest = transactionRequest_builder.buildPOSTransferRequest;
121
+ exports.buildSubmissionRequest = transactionRequest_builder.buildSubmissionRequest;
122
+ exports.buildTransferRequest = transactionRequest_builder.buildTransferRequest;
87
123
  exports.AnalyticsApi = analyticsService.AnalyticsApi;
88
124
  exports.AnalyticsService = analyticsService.AnalyticsService;
89
125
  exports.CampaignApi = campaignService.CampaignApi;
@@ -105,8 +141,6 @@ exports.UserService = userService.UserService;
105
141
  exports.UserStatusApi = userStatus.UserStatusApi;
106
142
  exports.UserStatusService = userStatus.UserStatusService;
107
143
  exports.createUserStatusSDK = userStatus.createUserStatusSDK;
108
- exports.Web3ChainApi = web3ChainService.Web3ChainApi;
109
- exports.Web3ChainService = web3ChainService.Web3ChainService;
110
144
  exports.ChainTypes = index$1.ChainTypes;
111
145
  exports.IPFSInfrastructureApi = explorer_utils.IPFSInfrastructureApi;
112
146
  exports.Web3ApplicationService = explorer_utils.Web3ApplicationService;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js CHANGED
@@ -1,19 +1,20 @@
1
- export { b as AUTH_STORAGE_KEYS, t as AnalyticsManager, z as ApiKeyApi, s as ApiKeyManager, j as AuthApi, n as AuthManager, k as AuthService, A as AuthStatus, a as AuthTokenManager, B as BusinessManager, C as CampaignManager, f as DEFAULT_PERS_CONFIG, d as DPOP_STORAGE_KEYS, l as DPoPManager, D as DefaultAuthProvider, u as DonationManager, x as FileApi, F as FileManager, y as FileService, I as IndexedDBTokenStorage, L as LocalStorageTokenStorage, M as MemoryTokenStorage, e as PersApiClient, P as PersSDK, q as PurchaseManager, R as RedemptionManager, r as TenantManager, T as TokenManager, p as TransactionManager, U as UserManager, o as UserStatusManager, v as Web3Manager, W as WebDPoPCryptoProvider, g as buildApiRoot, c as createPersSDK, h as detectEnvironment, i as environment, m as mergeWithDefaults, w as warnIfProblematicEnvironment } from './chunks/pers-sdk-Nu2KgiJf.js';
1
+ export { b as AUTH_STORAGE_KEYS, x as AnalyticsManager, H as ApiKeyApi, v as ApiKeyManager, l as AuthApi, q as AuthManager, n as AuthService, A as AuthStatus, a as AuthTokenManager, B as BusinessManager, C as CampaignManager, h as DEFAULT_PERS_CONFIG, d as DPOP_STORAGE_KEYS, o as DPoPManager, D as DefaultAuthProvider, y as DonationManager, E as FileApi, F as FileManager, G as FileService, I as IndexedDBTokenStorage, L as LocalStorageTokenStorage, M as MemoryTokenStorage, g as PersApiClient, p as PersEventEmitter, P as PersSDK, t as PurchaseManager, R as RedemptionManager, S as SDK_NAME, f as SDK_USER_AGENT, e as SDK_VERSION, u as TenantManager, T as TokenManager, s as TransactionManager, U as UserManager, r as UserStatusManager, z as Web3Manager, W as WebDPoPCryptoProvider, i as buildApiRoot, c as createPersSDK, j as detectEnvironment, k as environment, m as mergeWithDefaults, w as warnIfProblematicEnvironment } from './chunks/pers-sdk-VmeBqUEP.js';
2
2
  export { a as CacheService, C as CacheTTL, g as globalCacheService } from './chunks/index-DBLskLuH.js';
3
- export { AccountOwnerType, ApiKeyType, NativeTokenTypes } from '@explorins/pers-shared';
4
- export { B as BusinessApi, a as BusinessService } from './chunks/business-service-8Xd3d5oY.js';
3
+ export { b as ApiErrorDetector, A as AuthenticationError, E as ErrorUtils, L as LogoutRequired, M as MultipleContextSelectionRequiredError, N as NetworkError, a as PersApiError, P as ProviderTokenRefreshNeeded, T as TokenRefreshNeeded, W as Web3ChainApi, c as Web3ChainService } from './chunks/web3-chain-service-BcUeeujC.js';
4
+ export { AccountOwnerType, ApiKeyType, MEMBERSHIP_ROLE_HIERARCHY, MembershipRole, NativeTokenTypes, hasMinimumRole } from '@explorins/pers-shared';
5
+ export { BusinessApi, BusinessMembershipApi, BusinessMembershipService, BusinessService } from './business.js';
5
6
  export { T as TransactionApi, a as TransactionService } from './chunks/transaction-service-B7h_4Hg3.js';
7
+ export { a as buildBurnRequest, b as buildMintRequest, e as buildPOSBurnRequest, d as buildPOSTransferRequest, f as buildSubmissionRequest, c as buildTransferRequest } from './chunks/transaction-request.builder-DltmruUC.js';
6
8
  export { A as AnalyticsApi, a as AnalyticsService } from './chunks/analytics-service-CxyrOwel.js';
7
- export { C as CampaignApi, a as CampaignService } from './chunks/campaign-service-CJPXgFBe.js';
9
+ export { C as CampaignApi, a as CampaignService } from './chunks/campaign-service-CKwkiOLx.js';
8
10
  export { D as DonationApi, a as DonationService } from './chunks/donation-service-CyJS4DIZ.js';
9
11
  export { P as PaymentApi, a as PaymentService } from './chunks/payment-service-DfCBFosx.js';
10
12
  export { R as RedemptionApi, a as RedemptionService } from './chunks/redemption-service-BT0J5Iy7.js';
11
13
  export { T as TenantApi, a as TenantService } from './chunks/tenant-service-DxtHAlaa.js';
12
14
  export { B as BaseTokenService, T as TokenSDK } from './chunks/base-token-service-BSXDwrcq.js';
13
15
  export { T as TokenApi, a as TokenService } from './chunks/token-service-CpVwC5Eb.js';
14
- export { U as UserApi, a as UserService } from './chunks/user-service-D6mTa_WZ.js';
16
+ export { U as UserApi, a as UserService } from './chunks/user-service-doT5vsBD.js';
15
17
  export { UserStatusApi, UserStatusService, createUserStatusSDK } from './user-status.js';
16
- export { W as Web3ChainApi, a as Web3ChainService } from './chunks/web3-chain-service-JRSwxr-s.js';
17
18
  export { C as ChainTypes } from './chunks/index-BtDNXaFq.js';
18
19
  export { I as IPFSInfrastructureApi, W as Web3ApplicationService, a as Web3InfrastructureApi, g as getExplorerUrl, b as getExplorerUrlByChainId } from './chunks/explorer.utils-BkS3k8hX.js';
19
20
  export { AngularHttpClientAdapter, BrowserFetchClientAdapter, NodeHttpClientAdapter } from './platform-adapters.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -1,12 +1,20 @@
1
1
  import { PersApiClient } from '../core/pers-api-client';
2
- import type { RawUserData } from '../core';
3
- import type { UserDTO, SessionAuthContextResponseDTO, SessionAuthResponseDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
2
+ import { PersEventEmitter } from '../core/events';
3
+ import type { AuthType, RawUserData } from '../core';
4
+ import type { BusinessAuthOptions } from '../core/auth/api/auth-api';
5
+ import type { UserDTO, SessionAuthContextResponseDTO, SessionAuthResponseDTO, BusinessDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
6
+ export type { BusinessAuthOptions } from '../core/auth/api/auth-api';
4
7
  /**
5
8
  * Authentication Manager - Clean, high-level interface for authentication operations
6
9
  *
7
10
  * Provides a simplified API for common authentication tasks while maintaining
8
11
  * access to the underlying API client for advanced use cases.
9
12
  *
13
+ * Supports the universal token endpoint (POST /auth/token):
14
+ * - User authentication (default)
15
+ * - Business authentication with role in JWT
16
+ * - Admin/Tenant authentication
17
+ *
10
18
  * @group Managers
11
19
  * @category Authentication
12
20
  *
@@ -15,6 +23,10 @@ import type { UserDTO, SessionAuthContextResponseDTO, SessionAuthResponseDTO } f
15
23
  * // Login with external JWT
16
24
  * const authResult = await sdk.auth.loginWithToken(firebaseJWT, 'user');
17
25
  *
26
+ * // Login as business (with role in JWT)
27
+ * const bizResult = await sdk.auth.loginAsBusiness(jwt, { businessId: 'biz-123' });
28
+ * console.log('Business:', bizResult.business?.displayName);
29
+ *
18
30
  * // Check authentication
19
31
  * if (await sdk.auth.isAuthenticated()) {
20
32
  * const user = await sdk.auth.getCurrentUser();
@@ -27,7 +39,8 @@ import type { UserDTO, SessionAuthContextResponseDTO, SessionAuthResponseDTO } f
27
39
  */
28
40
  export declare class AuthManager {
29
41
  private apiClient;
30
- constructor(apiClient: PersApiClient);
42
+ private events?;
43
+ constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
31
44
  /**
32
45
  * Login with JWT token
33
46
  *
@@ -50,7 +63,67 @@ export declare class AuthManager {
50
63
  * console.log('Admin authenticated:', authResult.admin.email);
51
64
  * ```
52
65
  */
53
- loginWithToken(jwtToken: string, userType?: 'user' | 'admin'): Promise<SessionAuthContextResponseDTO>;
66
+ loginWithToken(jwtToken: string, userType?: AuthType): Promise<SessionAuthContextResponseDTO>;
67
+ /**
68
+ * Login as business with JWT token
69
+ *
70
+ * Authenticates a user in a business context. The returned JWT contains
71
+ * the user's role (OWNER, ADMIN, EDITOR, VIEWER) within that business.
72
+ *
73
+ * **Auto-Selection Behavior:**
74
+ * - If user has a single business membership, it's auto-selected
75
+ * - If user has multiple memberships and no businessId is provided,
76
+ * throws `MULTIPLE_CONTEXT_SELECTION_REQUIRED` error with available options
77
+ *
78
+ * @param jwtToken - JWT token from auth provider (passkey, Firebase, etc.)
79
+ * @param options - Business authentication options
80
+ * @param options.businessId - The business ID to authenticate as (required for multi-business users)
81
+ * @returns Promise resolving to authentication response with business context and role in JWT
82
+ * @throws Error with code `MULTIPLE_CONTEXT_SELECTION_REQUIRED` when businessId is needed
83
+ *
84
+ * @example Single Business Membership
85
+ * ```typescript
86
+ * // Auto-selects the user's only business
87
+ * const result = await sdk.auth.loginAsBusiness(jwt);
88
+ * console.log('Business:', result.business?.displayName);
89
+ * ```
90
+ *
91
+ * @example Multiple Business Memberships
92
+ * ```typescript
93
+ * try {
94
+ * const result = await sdk.auth.loginAsBusiness(jwt);
95
+ * } catch (error) {
96
+ * if (error.code === 'MULTIPLE_CONTEXT_SELECTION_REQUIRED') {
97
+ * // Show business selector UI
98
+ * const selectedId = await showBusinessSelector(error.availableOptions);
99
+ * const result = await sdk.auth.loginAsBusiness(jwt, { businessId: selectedId });
100
+ * }
101
+ * }
102
+ * ```
103
+ *
104
+ * @example Direct Business Selection
105
+ * ```typescript
106
+ * const result = await sdk.auth.loginAsBusiness(jwt, { businessId: 'biz-123' });
107
+ * console.log('Authenticated as:', result.business?.displayName);
108
+ * ```
109
+ */
110
+ loginAsBusiness(jwtToken: string, options?: BusinessAuthOptions): Promise<SessionAuthContextResponseDTO>;
111
+ /**
112
+ * Get current business context
113
+ *
114
+ * Retrieves the current business context if authenticated as business.
115
+ * Requires prior business authentication via {@link loginAsBusiness}.
116
+ *
117
+ * @returns Promise resolving to current business data
118
+ * @throws {PersApiError} When not authenticated as business
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const business = await sdk.auth.getCurrentBusiness();
123
+ * console.log('Current business:', business.displayName);
124
+ * ```
125
+ */
126
+ getCurrentBusiness(): Promise<BusinessDTO>;
54
127
  /**
55
128
  * Login with raw user data
56
129
  *
@@ -1 +1 @@
1
- {"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/managers/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEtI;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAE5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,OAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAUnH;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAKxF;;;;;;;;;;;;;;;;;;OAkBG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAMxC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK3E;;;;;;;;;;;;;;;;;OAiBG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;CAKvC"}
1
+ {"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/managers/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAGnJ,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;gBADP,SAAS,EAAE,aAAa,EACxB,MAAM,CAAC,8BAAkB;IAGnC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAgB3G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAK9G;;;;;;;;;;;;;;OAcG;IACG,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC;IAIhD;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAKxF;;;;;;;;;;;;;;;;;;OAkBG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAMxC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IASzC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK3E;;;;;;;;;;;;;;;;;OAiBG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAKhC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;CAKvC"}
@@ -1,6 +1,8 @@
1
1
  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';
2
+ import { PersEventEmitter } from '../core/events';
3
+ import { BusinessService, BusinessMembershipService } from '../business';
4
+ import type { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessToggleActiveRequestDTO, BusinessMembershipDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
5
+ import { MembershipRole } from '../shared/interfaces/pers-shared-lib.interfaces';
4
6
  /**
5
7
  * Business Manager - Clean, high-level interface for business operations
6
8
  *
@@ -58,9 +60,13 @@ import type { BusinessDTO, BusinessTypeDTO, BusinessUpdateRequestDTO, BusinessTo
58
60
  */
59
61
  export declare class BusinessManager {
60
62
  private apiClient;
63
+ private events?;
61
64
  private businessApi;
62
65
  private businessService;
63
- constructor(apiClient: PersApiClient);
66
+ private membershipApi;
67
+ private membershipService;
68
+ private userApi;
69
+ constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
64
70
  /**
65
71
  * Get all active businesses
66
72
  *
@@ -135,7 +141,7 @@ export declare class BusinessManager {
135
141
  *
136
142
  * // Use for transaction verification
137
143
  * if (business.isActive) {
138
- * console.log('Verified business partner');
144
+ * console.log('Verified business partner');
139
145
  * }
140
146
  * ```
141
147
  */
@@ -334,5 +340,187 @@ export declare class BusinessManager {
334
340
  * ```
335
341
  */
336
342
  getBusinessService(): BusinessService;
343
+ /**
344
+ * Get all members of a business
345
+ *
346
+ * Retrieves all users who have access to the specified business with their roles.
347
+ * Any member of the business can view the member list.
348
+ *
349
+ * @param businessId - The business UUID
350
+ * @returns Promise resolving to array of business memberships
351
+ * @throws {PersApiError} 401 - Not authenticated
352
+ * @throws {PersApiError} 403 - Not a member of this business
353
+ *
354
+ * @example
355
+ * ```typescript
356
+ * const members = await sdk.business.getMembers('business-123');
357
+ *
358
+ * console.log('Business Members:');
359
+ * members.forEach(member => {
360
+ * console.log(`- User ${member.userId}: ${member.role}`);
361
+ * });
362
+ *
363
+ * // Count members by role
364
+ * const admins = members.filter(m => m.role === 'ADMIN' || m.role === 'OWNER');
365
+ * console.log(`Administrators: ${admins.length}`);
366
+ * ```
367
+ */
368
+ getMembers(businessId: string): Promise<BusinessMembershipDTO[]>;
369
+ /**
370
+ * Get members filtered by role
371
+ *
372
+ * @param businessId - The business UUID
373
+ * @param role - The role to filter by
374
+ * @returns Promise resolving to array of memberships with the specified role
375
+ *
376
+ * @example
377
+ * ```typescript
378
+ * const owners = await sdk.business.getMembersByRole('business-123', 'OWNER');
379
+ * console.log(`Business has ${owners.length} owner(s)`);
380
+ * ```
381
+ */
382
+ getMembersByRole(businessId: string, role: MembershipRole): Promise<BusinessMembershipDTO[]>;
383
+ /**
384
+ * Add a new member to a business
385
+ *
386
+ * Adds a user as a member of the business with the specified role.
387
+ * Requires ADMIN role or higher.
388
+ *
389
+ * @param businessId - The business UUID
390
+ * @param userId - The user UUID to add
391
+ * @param role - The role to assign (defaults to VIEWER)
392
+ * @returns Promise resolving to the created membership
393
+ * @throws {PersApiError} 401 - Not authenticated
394
+ * @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
395
+ * @throws {PersApiError} 404 - User not found
396
+ * @throws {PersApiError} 409 - User is already a member
397
+ *
398
+ * @example
399
+ * ```typescript
400
+ * // Add a new editor to the business
401
+ * const newMember = await sdk.business.addMember(
402
+ * 'business-123',
403
+ * 'user-456',
404
+ * 'EDITOR'
405
+ * );
406
+ *
407
+ * console.log(`Added ${newMember.userId} as ${newMember.role}`);
408
+ * ```
409
+ */
410
+ addMember(businessId: string, userId: string, role?: MembershipRole): Promise<BusinessMembershipDTO>;
411
+ /**
412
+ * Update a member's role
413
+ *
414
+ * Changes the role of an existing business member.
415
+ * Requires ADMIN role or higher. Cannot demote the last OWNER.
416
+ * Can only assign roles up to your own level (ADMIN cannot create OWNER).
417
+ *
418
+ * @param businessId - The business UUID
419
+ * @param userId - The user UUID to update
420
+ * @param newRole - The new role to assign
421
+ * @returns Promise resolving to the updated membership
422
+ * @throws {PersApiError} 401 - Not authenticated
423
+ * @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
424
+ * @throws {PersApiError} 404 - Membership not found
425
+ * @throws {PersApiError} 400 - Cannot demote last OWNER
426
+ *
427
+ * @example
428
+ * ```typescript
429
+ * // Promote an editor to admin
430
+ * const updated = await sdk.business.updateMemberRole(
431
+ * 'business-123',
432
+ * 'user-456',
433
+ * 'ADMIN'
434
+ * );
435
+ *
436
+ * console.log(`${updated.userId} is now ${updated.role}`);
437
+ * ```
438
+ */
439
+ updateMemberRole(businessId: string, userId: string, newRole: MembershipRole): Promise<BusinessMembershipDTO>;
440
+ /**
441
+ * Remove a member from a business
442
+ *
443
+ * Removes a user's access to the business.
444
+ * Requires ADMIN role or higher. Cannot remove the last OWNER.
445
+ *
446
+ * @param businessId - The business UUID
447
+ * @param userId - The user UUID to remove
448
+ * @returns Promise resolving to success confirmation
449
+ * @throws {PersApiError} 401 - Not authenticated
450
+ * @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
451
+ * @throws {PersApiError} 404 - Membership not found
452
+ * @throws {PersApiError} 400 - Cannot remove last OWNER
453
+ *
454
+ * @example
455
+ * ```typescript
456
+ * const result = await sdk.business.removeMember('business-123', 'user-456');
457
+ *
458
+ * if (result.success) {
459
+ * console.log('Member removed successfully');
460
+ * }
461
+ * ```
462
+ */
463
+ removeMember(businessId: string, userId: string): Promise<{
464
+ success: boolean;
465
+ }>;
466
+ /**
467
+ * Get permission flags for a role
468
+ *
469
+ * Returns an object with boolean flags indicating what actions
470
+ * a user with the given role can perform. Useful for UI rendering.
471
+ *
472
+ * @param role - The membership role (or null if not a member)
473
+ * @returns Object with permission flags
474
+ *
475
+ * @example
476
+ * ```typescript
477
+ * const permissions = sdk.business.getPermissions('EDITOR');
478
+ * // { canViewMembers: true, canManageMembers: false, canEditContent: true, canDeleteBusiness: false }
479
+ *
480
+ * if (permissions.canManageMembers) {
481
+ * showAddMemberButton();
482
+ * }
483
+ * ```
484
+ */
485
+ getPermissions(role: MembershipRole | null): {
486
+ canViewMembers: boolean;
487
+ canManageMembers: boolean;
488
+ canEditContent: boolean;
489
+ canDeleteBusiness: boolean;
490
+ };
491
+ /**
492
+ * Add a member to a business by email address
493
+ *
494
+ * Convenience method that creates or retrieves a user by email and adds them
495
+ * as a member of the business. If the user doesn't exist, they will be created.
496
+ * Requires ADMIN role or higher.
497
+ *
498
+ * @param businessId - The business UUID
499
+ * @param email - The email address of the user to add
500
+ * @param role - The role to assign (defaults to VIEWER)
501
+ * @returns Promise resolving to the created membership
502
+ * @throws {PersApiError} 401 - Not authenticated
503
+ * @throws {PersApiError} 403 - Insufficient role (requires ADMIN)
504
+ * @throws {PersApiError} 409 - User is already a member
505
+ *
506
+ * @example
507
+ * ```typescript
508
+ * // Add a new editor by email - user is created if they don't exist
509
+ * const membership = await sdk.business.addMemberByEmail(
510
+ * 'business-123',
511
+ * 'newuser@example.com',
512
+ * 'EDITOR'
513
+ * );
514
+ *
515
+ * console.log(`Added user ${membership.userId} as ${membership.role}`);
516
+ * ```
517
+ */
518
+ addMemberByEmail(businessId: string, email: string, role?: MembershipRole): Promise<BusinessMembershipDTO>;
519
+ /**
520
+ * Get the membership service for advanced operations
521
+ *
522
+ * @returns BusinessMembershipService instance
523
+ */
524
+ getMembershipService(): BusinessMembershipService;
337
525
  }
338
526
  //# 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,4 +1,6 @@
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 { CampaignService } from '../campaign';
3
5
  import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, CampaignClaimDTO, TokenUnitCreateRequestDTO, CampaignBusinessEngagementCreateRequestDTO, CampaignTriggerDTO } from '../shared/interfaces/pers-shared-lib.interfaces';
4
6
  /**
@@ -14,9 +16,9 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
14
16
  *
15
17
  * @example Basic Campaign Operations
16
18
  * ```typescript
17
- * // Get all available campaigns for users
18
- * const campaigns = await sdk.campaigns.getActiveCampaigns();
19
- * console.log(`${campaigns.length} active campaigns available`);
19
+ * // Get all available campaigns (paginated)
20
+ * const result = await sdk.campaigns.getCampaigns({ page: 1, limit: 20 });
21
+ * console.log(`${result.data.length} of ${result.total} campaigns`);
20
22
  *
21
23
  * // Get specific campaign details
22
24
  * const campaign = await sdk.campaigns.getCampaignById('summer-promo-2024');
@@ -42,7 +44,8 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
42
44
  * });
43
45
  *
44
46
  * // Check if user can claim specific campaign
45
- * const eligibleCampaigns = campaigns.filter(c =>
47
+ * const campaigns = await sdk.campaigns.getCampaigns({ active: true });
48
+ * const eligibleCampaigns = campaigns.data.filter(c =>
46
49
  * !userClaims.some(claim => claim.campaignId === c.id)
47
50
  * );
48
51
  * ```
@@ -68,42 +71,9 @@ import type { CampaignDTO, CampaignCreateRequestDTO, CampaignClaimRequestDTO, Ca
68
71
  */
69
72
  export declare class CampaignManager {
70
73
  private apiClient;
74
+ private events?;
71
75
  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[]>;
76
+ constructor(apiClient: PersApiClient, events?: PersEventEmitter | undefined);
107
77
  /**
108
78
  * Get campaign by ID
109
79
  *
@@ -237,39 +207,52 @@ export declare class CampaignManager {
237
207
  */
238
208
  getUserClaims(): Promise<CampaignClaimDTO[]>;
239
209
  /**
240
- * Admin: Get all campaigns
210
+ * Get campaigns with pagination support
241
211
  *
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.
212
+ * Returns campaigns with pagination metadata for efficient data loading.
213
+ * Intelligent access: Public gets active only, Business gets own campaigns, Admin gets all.
245
214
  *
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
215
+ * @param options - Pagination and filter options
216
+ * @param options.active - Filter by active status (true/false/undefined for all)
217
+ * @param options.businessId - Filter by business engagement
218
+ * @param options.page - Page number (1-based, default: 1)
219
+ * @param options.limit - Items per page (default: 50)
220
+ * @param options.sortBy - Sort field ('name', 'createdAt', 'startDate')
221
+ * @param options.sortOrder - Sort direction ('ASC' or 'DESC')
222
+ * @returns Promise resolving to paginated campaigns with metadata
249
223
  *
250
224
  * @example
251
225
  * ```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
- * }));
226
+ * // Get first page of campaigns
227
+ * const result = await sdk.campaigns.getCampaigns({ page: 1, limit: 10 });
228
+ * console.log(`Showing ${result.data.length} of ${result.total} campaigns`);
229
+ * console.log(`Has more pages: ${result.hasMore}`);
230
+ *
231
+ * // Get campaigns for a specific business
232
+ * const businessCampaigns = await sdk.campaigns.getCampaigns({
233
+ * businessId: 'business-123',
234
+ * page: 1,
235
+ * limit: 20
236
+ * });
237
+ *
238
+ * // Get active campaigns sorted by creation date
239
+ * const activeCampaigns = await sdk.campaigns.getCampaigns({
240
+ * active: true,
241
+ * sortBy: 'createdAt',
242
+ * sortOrder: 'DESC',
243
+ * page: 1,
244
+ * limit: 25
245
+ * });
270
246
  * ```
271
247
  */
272
- getAllCampaigns(active?: boolean): Promise<CampaignDTO[]>;
248
+ getCampaigns(options?: {
249
+ active?: boolean;
250
+ businessId?: string;
251
+ page?: number;
252
+ limit?: number;
253
+ sortBy?: 'name' | 'createdAt' | 'startDate';
254
+ sortOrder?: 'ASC' | 'DESC';
255
+ }): Promise<PaginatedResponseDTO<CampaignDTO>>;
273
256
  /**
274
257
  * Admin: Create new campaign
275
258
  *