@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.
- package/README.md +185 -0
- package/dist/analytics.cjs +12 -0
- package/dist/analytics.cjs.map +1 -1
- package/dist/analytics.js +1 -1
- package/dist/business/api/business-membership-api.d.ts +186 -0
- package/dist/business/api/business-membership-api.d.ts.map +1 -0
- package/dist/business/index.d.ts +2 -0
- package/dist/business/index.d.ts.map +1 -1
- package/dist/business/services/business-membership-service.d.ts +186 -0
- package/dist/business/services/business-membership-service.d.ts.map +1 -0
- package/dist/business.cjs +727 -9
- package/dist/business.cjs.map +1 -1
- package/dist/business.js +711 -2
- package/dist/business.js.map +1 -1
- package/dist/campaign/api/campaign-api.d.ts +7 -10
- package/dist/campaign/api/campaign-api.d.ts.map +1 -1
- package/dist/campaign/services/campaign-service.d.ts +18 -7
- package/dist/campaign/services/campaign-service.d.ts.map +1 -1
- package/dist/campaign.cjs +13 -1
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +2 -2
- package/dist/chunks/{campaign-service-CJPXgFBe.js → campaign-service-CKwkiOLx.js} +29 -39
- package/dist/chunks/campaign-service-CKwkiOLx.js.map +1 -0
- package/dist/chunks/{campaign-service-B1tQMNqA.cjs → campaign-service-D-v9ZlUB.cjs} +29 -39
- package/dist/chunks/campaign-service-D-v9ZlUB.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-XbARV58g.cjs → pers-sdk-DULFjOW2.cjs} +923 -146
- package/dist/chunks/pers-sdk-DULFjOW2.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-Nu2KgiJf.js → pers-sdk-VmeBqUEP.js} +919 -146
- package/dist/chunks/pers-sdk-VmeBqUEP.js.map +1 -0
- package/dist/chunks/transaction-request.builder-DltmruUC.js +296 -0
- package/dist/chunks/transaction-request.builder-DltmruUC.js.map +1 -0
- package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs +303 -0
- package/dist/chunks/transaction-request.builder-DrqTWcyC.cjs.map +1 -0
- package/dist/chunks/{user-service-D1Rn4U8u.cjs → user-service-B89wBOV1.cjs} +60 -10
- package/dist/chunks/user-service-B89wBOV1.cjs.map +1 -0
- package/dist/chunks/{user-service-D6mTa_WZ.js → user-service-doT5vsBD.js} +60 -10
- package/dist/chunks/user-service-doT5vsBD.js.map +1 -0
- package/dist/chunks/{web3-chain-service-BLFxB5TA.cjs → web3-chain-service-6vsVHPjl.cjs} +116 -16
- package/dist/chunks/web3-chain-service-6vsVHPjl.cjs.map +1 -0
- package/dist/chunks/{web3-chain-service-JRSwxr-s.js → web3-chain-service-BcUeeujC.js} +111 -17
- package/dist/chunks/web3-chain-service-BcUeeujC.js.map +1 -0
- package/dist/core/auth/api/auth-api.d.ts +35 -0
- package/dist/core/auth/api/auth-api.d.ts.map +1 -1
- package/dist/core/auth/auth-provider.interface.d.ts +7 -1
- package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
- package/dist/core/auth/services/auth-service.d.ts +26 -1
- package/dist/core/auth/services/auth-service.d.ts.map +1 -1
- package/dist/core/auth/token-storage.d.ts +3 -2
- package/dist/core/auth/token-storage.d.ts.map +1 -1
- package/dist/core/errors/index.d.ts +75 -6
- package/dist/core/errors/index.d.ts.map +1 -1
- package/dist/core/events/event-emitter.d.ts +106 -0
- package/dist/core/events/event-emitter.d.ts.map +1 -0
- package/dist/core/events/event-types.d.ts +127 -0
- package/dist/core/events/event-types.d.ts.map +1 -0
- package/dist/core/events/index.d.ts +22 -0
- package/dist/core/events/index.d.ts.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/pers-api-client.d.ts +12 -0
- package/dist/core/pers-api-client.d.ts.map +1 -1
- package/dist/core/version.d.ts +15 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core.cjs +19 -6
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +6 -6
- package/dist/donation.cjs +12 -0
- package/dist/donation.cjs.map +1 -1
- package/dist/donation.js +1 -1
- package/dist/index.cjs +43 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/managers/auth-manager.d.ts +77 -4
- package/dist/managers/auth-manager.d.ts.map +1 -1
- package/dist/managers/business-manager.d.ts +192 -4
- package/dist/managers/business-manager.d.ts.map +1 -1
- package/dist/managers/campaign-manager.d.ts +48 -65
- package/dist/managers/campaign-manager.d.ts.map +1 -1
- package/dist/managers/index.d.ts +1 -1
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/redemption-manager.d.ts +3 -1
- package/dist/managers/redemption-manager.d.ts.map +1 -1
- package/dist/managers/transaction-manager.d.ts +4 -2
- package/dist/managers/transaction-manager.d.ts.map +1 -1
- package/dist/managers/user-manager.d.ts +57 -1
- package/dist/managers/user-manager.d.ts.map +1 -1
- package/dist/managers/web3-manager.d.ts +63 -64
- package/dist/managers/web3-manager.d.ts.map +1 -1
- package/dist/package.json +2 -2
- package/dist/payment.cjs +12 -0
- package/dist/payment.cjs.map +1 -1
- package/dist/payment.js +1 -1
- package/dist/pers-sdk.d.ts +49 -0
- package/dist/pers-sdk.d.ts.map +1 -1
- package/dist/redemption.cjs +12 -0
- package/dist/redemption.cjs.map +1 -1
- package/dist/redemption.js +1 -1
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts +2 -1
- package/dist/shared/interfaces/pers-shared-lib.interfaces.d.ts.map +1 -1
- package/dist/tenant.cjs +12 -0
- package/dist/tenant.cjs.map +1 -1
- package/dist/tenant.js +1 -1
- package/dist/token.cjs +12 -0
- package/dist/token.cjs.map +1 -1
- package/dist/token.js +1 -1
- package/dist/transaction/models/index.d.ts +2 -0
- package/dist/transaction/models/index.d.ts.map +1 -1
- package/dist/transaction/models/transaction-request.builder.d.ts +256 -0
- package/dist/transaction/models/transaction-request.builder.d.ts.map +1 -0
- package/dist/transaction.cjs +7 -0
- package/dist/transaction.cjs.map +1 -1
- package/dist/transaction.js +1 -0
- package/dist/transaction.js.map +1 -1
- package/dist/user/api/user-api.d.ts +28 -7
- package/dist/user/api/user-api.d.ts.map +1 -1
- package/dist/user/services/user-service.d.ts +21 -0
- package/dist/user/services/user-service.d.ts.map +1 -1
- package/dist/user-status.cjs +12 -0
- package/dist/user-status.cjs.map +1 -1
- package/dist/user-status.js +1 -1
- package/dist/user.cjs +13 -1
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +2 -2
- package/dist/web3-chain.cjs +13 -1
- package/dist/web3-chain.cjs.map +1 -1
- package/dist/web3-chain.js +2 -2
- package/package.json +2 -2
- package/dist/chunks/business-service-8Xd3d5oY.js +0 -238
- package/dist/chunks/business-service-8Xd3d5oY.js.map +0 -1
- package/dist/chunks/business-service-P9o4cwQL.cjs +0 -241
- package/dist/chunks/business-service-P9o4cwQL.cjs.map +0 -1
- package/dist/chunks/campaign-service-B1tQMNqA.cjs.map +0 -1
- package/dist/chunks/campaign-service-CJPXgFBe.js.map +0 -1
- package/dist/chunks/pers-sdk-Nu2KgiJf.js.map +0 -1
- package/dist/chunks/pers-sdk-XbARV58g.cjs.map +0 -1
- package/dist/chunks/user-service-D1Rn4U8u.cjs.map +0 -1
- package/dist/chunks/user-service-D6mTa_WZ.js.map +0 -1
- package/dist/chunks/web3-chain-service-BLFxB5TA.cjs.map +0 -1
- 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-
|
|
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
|
|
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-
|
|
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-
|
|
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
|
|
84
|
-
|
|
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;
|
package/dist/index.cjs.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
4
|
-
export {
|
|
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-
|
|
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-
|
|
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
|
|
3
|
-
import type {
|
|
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
|
-
|
|
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?:
|
|
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;
|
|
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 {
|
|
3
|
-
import
|
|
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
|
-
|
|
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('
|
|
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;
|
|
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
|
|
18
|
-
* const
|
|
19
|
-
* console.log(`${
|
|
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
|
|
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
|
-
*
|
|
210
|
+
* Get campaigns with pagination support
|
|
241
211
|
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
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
|
|
247
|
-
* @
|
|
248
|
-
* @
|
|
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
|
-
* //
|
|
253
|
-
* const
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
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
|
-
|
|
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
|
*
|