@explorins/pers-sdk 1.2.5 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +416 -0
- package/dist/analytics.cjs +6 -0
- package/dist/analytics.cjs.map +1 -1
- package/dist/analytics.js +2 -0
- package/dist/analytics.js.map +1 -1
- package/dist/business.cjs +6 -0
- package/dist/business.cjs.map +1 -1
- package/dist/business.js +2 -0
- package/dist/business.js.map +1 -1
- package/dist/campaign/api/campaign-api.d.ts +19 -65
- package/dist/campaign/api/campaign-api.d.ts.map +1 -1
- package/dist/campaign.cjs +55 -103
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +51 -103
- package/dist/campaign.js.map +1 -1
- package/dist/chunks/base-token-service-BA81_Ouq.js +532 -0
- package/dist/chunks/base-token-service-BA81_Ouq.js.map +1 -0
- package/dist/chunks/base-token-service-BQ6uFoki.cjs +537 -0
- package/dist/chunks/base-token-service-BQ6uFoki.cjs.map +1 -0
- package/dist/chunks/jwt.function-BYiyl-z_.cjs +25 -0
- package/dist/chunks/jwt.function-BYiyl-z_.cjs.map +1 -0
- package/dist/chunks/jwt.function-d6jPtBqI.js +23 -0
- package/dist/chunks/jwt.function-d6jPtBqI.js.map +1 -0
- package/dist/chunks/pers-sdk-JC-hSYUd.js +1377 -0
- package/dist/chunks/pers-sdk-JC-hSYUd.js.map +1 -0
- package/dist/chunks/pers-sdk-_1sTi9x9.cjs +1384 -0
- package/dist/chunks/pers-sdk-_1sTi9x9.cjs.map +1 -0
- package/dist/core/auth/api/auth-api.d.ts +30 -0
- package/dist/core/auth/api/auth-api.d.ts.map +1 -0
- package/dist/core/auth/auth-constants.d.ts +33 -0
- package/dist/core/auth/auth-constants.d.ts.map +1 -0
- package/dist/core/auth/auth-errors.d.ts +8 -0
- package/dist/core/auth/auth-errors.d.ts.map +1 -0
- package/dist/core/auth/auth-provider.interface.d.ts +72 -2
- package/dist/core/auth/auth-provider.interface.d.ts.map +1 -1
- package/dist/core/auth/create-auth-provider.d.ts +3 -3
- package/dist/core/auth/create-auth-provider.d.ts.map +1 -1
- package/dist/core/auth/default-auth-provider.d.ts +71 -0
- package/dist/core/auth/default-auth-provider.d.ts.map +1 -0
- package/dist/core/auth/index.d.ts +17 -0
- package/dist/core/auth/index.d.ts.map +1 -0
- package/dist/core/auth/services/auth-service.d.ts +49 -0
- package/dist/core/auth/services/auth-service.d.ts.map +1 -0
- package/dist/core/auth/token-refresh.d.ts +91 -0
- package/dist/core/auth/token-refresh.d.ts.map +1 -0
- package/dist/core/auth/token-storage.d.ts +74 -0
- package/dist/core/auth/token-storage.d.ts.map +1 -0
- package/dist/core/errors/index.d.ts +80 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/index.d.ts +1 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/pers-api-client.d.ts +172 -12
- package/dist/core/pers-api-client.d.ts.map +1 -1
- package/dist/core/pers-config.d.ts +36 -1
- package/dist/core/pers-config.d.ts.map +1 -1
- package/dist/core/utils/jwt.function.d.ts.map +1 -1
- package/dist/core.cjs +8 -500
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +2 -496
- package/dist/core.js.map +1 -1
- package/dist/donation.cjs +6 -0
- package/dist/donation.cjs.map +1 -1
- package/dist/donation.js +2 -0
- package/dist/donation.js.map +1 -1
- package/dist/index.cjs +79 -4751
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -4699
- package/dist/index.js.map +1 -1
- package/dist/package.json +129 -129
- package/dist/payment.cjs +6 -0
- package/dist/payment.cjs.map +1 -1
- package/dist/payment.js +2 -0
- package/dist/payment.js.map +1 -1
- package/dist/pers-sdk.d.ts +49 -7
- package/dist/pers-sdk.d.ts.map +1 -1
- package/dist/redemption/api/redemption-api.d.ts +38 -77
- package/dist/redemption/api/redemption-api.d.ts.map +1 -1
- package/dist/redemption/services/redemption-service.d.ts +21 -3
- package/dist/redemption/services/redemption-service.d.ts.map +1 -1
- package/dist/redemption.cjs +84 -117
- package/dist/redemption.cjs.map +1 -1
- package/dist/redemption.js +80 -117
- package/dist/redemption.js.map +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/api/tenant-api.d.ts +28 -10
- package/dist/tenant/api/tenant-api.d.ts.map +1 -1
- package/dist/tenant/index.d.ts +4 -4
- package/dist/tenant.cjs +46 -11
- package/dist/tenant.cjs.map +1 -1
- package/dist/tenant.js +42 -11
- package/dist/tenant.js.map +1 -1
- package/dist/token.cjs +10 -531
- package/dist/token.cjs.map +1 -1
- package/dist/token.js +2 -531
- package/dist/token.js.map +1 -1
- package/dist/transaction.cjs +4 -0
- package/dist/transaction.cjs.map +1 -1
- package/dist/transaction.js +1 -0
- package/dist/transaction.js.map +1 -1
- package/dist/user-status.cjs +6 -0
- package/dist/user-status.cjs.map +1 -1
- package/dist/user-status.js +2 -0
- package/dist/user-status.js.map +1 -1
- package/dist/user.cjs +6 -0
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +2 -0
- package/dist/user.js.map +1 -1
- package/dist/web3-chain.cjs +12 -148
- package/dist/web3-chain.cjs.map +1 -1
- package/dist/web3-chain.js +7 -147
- package/dist/web3-chain.js.map +1 -1
- package/dist/web3.cjs +8 -537
- package/dist/web3.cjs.map +1 -1
- package/dist/web3.js +6 -535
- package/dist/web3.js.map +1 -1
- package/package.json +129 -129
- package/dist/auth-admin/api/auth-admin-api.d.ts +0 -29
- package/dist/auth-admin/api/auth-admin-api.d.ts.map +0 -1
- package/dist/auth-admin/index.d.ts +0 -27
- package/dist/auth-admin/index.d.ts.map +0 -1
- package/dist/auth-admin/services/auth-admin-service.d.ts +0 -27
- package/dist/auth-admin/services/auth-admin-service.d.ts.map +0 -1
- package/dist/auth-admin.cjs +0 -115
- package/dist/auth-admin.cjs.map +0 -1
- package/dist/auth-admin.js +0 -111
- package/dist/auth-admin.js.map +0 -1
- package/dist/core/auth/simple-auth-config.interface.d.ts +0 -15
- package/dist/core/auth/simple-auth-config.interface.d.ts.map +0 -1
package/dist/redemption.js
CHANGED
|
@@ -1,56 +1,50 @@
|
|
|
1
|
+
export { AccountOwnerType } from '@explorins/pers-shared';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Platform-Agnostic Redemption API Client (UPDATED - RESTful Design)
|
|
3
5
|
*
|
|
4
|
-
* Updated to work with the new RESTful
|
|
6
|
+
* Updated to work with the new RESTful controller structure:
|
|
7
|
+
* - /redemptions (main redemption management)
|
|
8
|
+
* - /redemption-types (redemption type management)
|
|
9
|
+
* - /redemption-tokens (token unit management)
|
|
10
|
+
* - /redemption-redeems (redemption execution and history)
|
|
11
|
+
*
|
|
5
12
|
* Handles redemption operations using the PERS backend with intelligent access detection.
|
|
6
13
|
* Uses @explorins/pers-shared DTOs for consistency with backend.
|
|
7
|
-
*
|
|
8
|
-
* Migration Update: Updated all endpoints for unified controller pattern
|
|
9
|
-
* - Removed role revelation from URLs (no more /admin, /auth paths)
|
|
10
|
-
* - Added intelligent access detection for unified endpoints
|
|
11
|
-
* - Added new /redemption-redeems endpoints for redeem processing
|
|
12
|
-
* - Enhanced redemption process with role-based access control
|
|
13
14
|
*/
|
|
14
15
|
class RedemptionApi {
|
|
15
16
|
constructor(apiClient) {
|
|
16
17
|
this.apiClient = apiClient;
|
|
17
18
|
this.basePath = '/redemptions';
|
|
18
|
-
this.
|
|
19
|
+
this.typesPath = '/redemptions/types';
|
|
19
20
|
}
|
|
20
21
|
// ==========================================
|
|
21
22
|
// PUBLIC OPERATIONS (Project Key)
|
|
22
23
|
// ==========================================
|
|
23
24
|
/**
|
|
24
|
-
*
|
|
25
|
+
* UNIFIED: Get redemptions with intelligent access control
|
|
25
26
|
*
|
|
26
|
-
*
|
|
27
|
+
* Intelligent endpoint that adapts based on authentication:
|
|
27
28
|
* - Public users: Get active redemptions only
|
|
28
29
|
* - Admin users: Get all redemptions with optional filtering
|
|
29
30
|
*
|
|
30
|
-
*
|
|
31
|
+
* @param options.active - Filter by active status (undefined = all for admins/active for public)
|
|
32
|
+
* @param options.adminAccess - Force admin access (requires admin auth)
|
|
31
33
|
*/
|
|
32
|
-
async getRedemptions(
|
|
34
|
+
async getRedemptions(options) {
|
|
33
35
|
let url = `${this.basePath}`;
|
|
34
|
-
if (active !== undefined) {
|
|
35
|
-
url += `?active=${active}`;
|
|
36
|
+
if (options?.active !== undefined) {
|
|
37
|
+
url += `?active=${options.active}`;
|
|
36
38
|
}
|
|
37
39
|
return this.apiClient.get(url);
|
|
38
40
|
}
|
|
39
|
-
/**
|
|
40
|
-
* PUBLIC: Get active redemptions
|
|
41
|
-
*
|
|
42
|
-
* Updated: Now uses unified endpoint (backward compatibility)
|
|
43
|
-
*/
|
|
44
|
-
async getActiveRedemptions() {
|
|
45
|
-
return this.getRedemptions(); // Will return active only for public access
|
|
46
|
-
}
|
|
47
41
|
/**
|
|
48
42
|
* PUBLIC: Get redemption types
|
|
49
43
|
*
|
|
50
|
-
* Updated: /redemption/type → /
|
|
44
|
+
* Updated: /redemption/type → /redemption-types
|
|
51
45
|
*/
|
|
52
46
|
async getRedemptionTypes() {
|
|
53
|
-
return this.apiClient.get(
|
|
47
|
+
return this.apiClient.get(this.typesPath);
|
|
54
48
|
}
|
|
55
49
|
/**
|
|
56
50
|
* PUBLIC: Get redemption by ID
|
|
@@ -66,10 +60,11 @@ class RedemptionApi {
|
|
|
66
60
|
* Updated: /redemption/:id/available-supply → /redemptions/:id/supply
|
|
67
61
|
*/
|
|
68
62
|
async getRedemptionAvailableSupply(id) {
|
|
69
|
-
|
|
63
|
+
const result = await this.apiClient.get(`${this.basePath}/${id}/supply`);
|
|
64
|
+
return result.available;
|
|
70
65
|
}
|
|
71
66
|
// ==========================================
|
|
72
|
-
// REDEMPTION EXECUTION (
|
|
67
|
+
// REDEMPTION EXECUTION (UNIFIED ENDPOINT)
|
|
73
68
|
// ==========================================
|
|
74
69
|
/**
|
|
75
70
|
* Execute redemption (unified endpoint)
|
|
@@ -83,19 +78,34 @@ class RedemptionApi {
|
|
|
83
78
|
const body = {
|
|
84
79
|
redemptionId: redemptionId,
|
|
85
80
|
};
|
|
86
|
-
return this.apiClient.post(this.
|
|
81
|
+
return this.apiClient.post(this.basePath + '/redeems', body);
|
|
87
82
|
}
|
|
88
83
|
// ==========================================
|
|
89
84
|
// REDEMPTION REDEEMS QUERIES (NEW ENDPOINTS)
|
|
90
85
|
// ==========================================
|
|
91
86
|
/**
|
|
92
|
-
* Get redemption redeems with filtering
|
|
87
|
+
* UNIFIED: Get redemption redeems with filtering and intelligent access
|
|
88
|
+
*
|
|
89
|
+
* Role-based access with unified filtering:
|
|
90
|
+
* - Users: See only their own redeems (userId/businessId filters ignored)
|
|
91
|
+
* - Admins: Can filter by userId, businessId, or redemptionId
|
|
93
92
|
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
93
|
+
* @param filters.redemptionId - Filter by specific redemption
|
|
94
|
+
* @param filters.userId - Admin only: Filter by user ID
|
|
95
|
+
* @param filters.businessId - Admin only: Filter by business ID
|
|
96
|
+
* @param filters.myRedeems - Force user's own redeems (uses /me endpoint)
|
|
96
97
|
*/
|
|
97
98
|
async getRedemptionRedeems(filters) {
|
|
98
|
-
let url = this.
|
|
99
|
+
let url = `${this.basePath}/redeems`;
|
|
100
|
+
// Use convenience endpoint for user's own redeems
|
|
101
|
+
if (filters?.myRedeems) {
|
|
102
|
+
url = `${this.basePath}/redeems/me`;
|
|
103
|
+
if (filters.redemptionId) {
|
|
104
|
+
url += `?redemptionId=${filters.redemptionId}`;
|
|
105
|
+
}
|
|
106
|
+
return this.apiClient.get(url);
|
|
107
|
+
}
|
|
108
|
+
// Use admin endpoint with filtering
|
|
99
109
|
const params = new URLSearchParams();
|
|
100
110
|
if (filters?.redemptionId)
|
|
101
111
|
params.append('redemptionId', filters.redemptionId);
|
|
@@ -110,67 +120,22 @@ class RedemptionApi {
|
|
|
110
120
|
return this.apiClient.get(url);
|
|
111
121
|
}
|
|
112
122
|
/**
|
|
113
|
-
* Get specific redemption redeem by ID
|
|
114
|
-
*
|
|
115
|
-
* NEW: GET /redemption-redeems/:id
|
|
123
|
+
* UNIFIED: Get specific redemption redeem by ID
|
|
116
124
|
*/
|
|
117
125
|
async getRedemptionRedeemById(id) {
|
|
118
|
-
return this.apiClient.get(`${this.
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* USER: Get my redemption redeems (convenience endpoint)
|
|
122
|
-
*
|
|
123
|
-
* NEW: GET /redemption-redeems/me with optional filtering
|
|
124
|
-
*/
|
|
125
|
-
async getMyRedemptionRedeems(redemptionId) {
|
|
126
|
-
let url = `${this.redeemsPath}/me`;
|
|
127
|
-
if (redemptionId) {
|
|
128
|
-
url += `?redemptionId=${redemptionId}`;
|
|
129
|
-
}
|
|
130
|
-
return this.apiClient.get(url);
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* ADMIN: Get redemption redeems by user ID
|
|
134
|
-
*
|
|
135
|
-
* NEW: GET /redemption-redeems?userId=X
|
|
136
|
-
*/
|
|
137
|
-
async getRedemptionRedeemsByUserId(userId, redemptionId) {
|
|
138
|
-
return this.getRedemptionRedeems({ userId, redemptionId });
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* ADMIN: Get redemption redeems by business ID
|
|
142
|
-
*
|
|
143
|
-
* NEW: GET /redemption-redeems?businessId=X
|
|
144
|
-
*/
|
|
145
|
-
async getRedemptionRedeemsByBusinessId(businessId, redemptionId) {
|
|
146
|
-
return this.getRedemptionRedeems({ businessId, redemptionId });
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* ADMIN: Get redemption redeems by redemption ID
|
|
150
|
-
*
|
|
151
|
-
* NEW: GET /redemption-redeems?redemptionId=X
|
|
152
|
-
*/
|
|
153
|
-
async getRedemptionRedeemsByRedemptionId(redemptionId) {
|
|
154
|
-
return this.getRedemptionRedeems({ redemptionId });
|
|
126
|
+
return this.apiClient.get(`${this.basePath}/redeems/${id}`);
|
|
155
127
|
}
|
|
156
128
|
// ==========================================
|
|
157
129
|
// USER OPERATIONS (JWT + Project Key)
|
|
158
130
|
// ==========================================
|
|
159
131
|
/**
|
|
160
|
-
*
|
|
132
|
+
* UNIFIED: Get user redemption history
|
|
161
133
|
*
|
|
162
|
-
*
|
|
134
|
+
* Uses convenience endpoint /redemption-redeems/me with optional filtering
|
|
135
|
+
* @param redemptionId - Optional filter by specific redemption
|
|
163
136
|
*/
|
|
164
|
-
async
|
|
165
|
-
return this.
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* USER: Get user redemptions (backward compatibility)
|
|
169
|
-
*
|
|
170
|
-
* Deprecated: Use getUserRedemptionHistory() instead
|
|
171
|
-
*/
|
|
172
|
-
async getUserRedeems() {
|
|
173
|
-
return this.getUserRedemptionHistory();
|
|
137
|
+
async getUserRedeems(redemptionId) {
|
|
138
|
+
return this.getRedemptionRedeems({ myRedeems: true, redemptionId });
|
|
174
139
|
}
|
|
175
140
|
// ==========================================
|
|
176
141
|
// ADMIN OPERATIONS (Tenant Admin JWT)
|
|
@@ -182,7 +147,7 @@ class RedemptionApi {
|
|
|
182
147
|
* The unified endpoint will detect admin privileges and allow filtering
|
|
183
148
|
*/
|
|
184
149
|
async getRedemptionsAsAdmin(active) {
|
|
185
|
-
return this.getRedemptions(active
|
|
150
|
+
return this.getRedemptions({ active, adminAccess: true });
|
|
186
151
|
}
|
|
187
152
|
/**
|
|
188
153
|
* ADMIN: Create redemption
|
|
@@ -201,21 +166,13 @@ class RedemptionApi {
|
|
|
201
166
|
return this.apiClient.put(`${this.basePath}/${id}`, redemptionCreateRequest);
|
|
202
167
|
}
|
|
203
168
|
/**
|
|
204
|
-
*
|
|
169
|
+
* UNIFIED: Toggle redemption active status
|
|
205
170
|
*
|
|
206
171
|
* Updated: /redemption/admin/:id/toggle-active → /redemptions/:id/status
|
|
207
172
|
* Following standard /status pattern used across domains
|
|
208
173
|
*/
|
|
209
|
-
async toggleRedemptionStatus(redemptionId) {
|
|
210
|
-
return this.apiClient.put(`${this.basePath}/${redemptionId}/status`, {});
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* ADMIN: Toggle redemption active (backward compatibility)
|
|
214
|
-
*
|
|
215
|
-
* Deprecated: Use toggleRedemptionStatus() instead
|
|
216
|
-
*/
|
|
217
174
|
async toggleRedemptionActive(redemptionId) {
|
|
218
|
-
return this.
|
|
175
|
+
return this.apiClient.put(`${this.basePath}/${redemptionId}/status`, {});
|
|
219
176
|
}
|
|
220
177
|
/**
|
|
221
178
|
* ADMIN: Delete redemption
|
|
@@ -228,10 +185,10 @@ class RedemptionApi {
|
|
|
228
185
|
/**
|
|
229
186
|
* ADMIN: Create redemption type
|
|
230
187
|
*
|
|
231
|
-
* Updated: /redemption/admin/type → /
|
|
188
|
+
* Updated: /redemption/admin/type → /redemption-types
|
|
232
189
|
*/
|
|
233
190
|
async createRedemptionType(redemptionType) {
|
|
234
|
-
return this.apiClient.post(
|
|
191
|
+
return this.apiClient.post(this.typesPath, redemptionType);
|
|
235
192
|
}
|
|
236
193
|
// ==========================================
|
|
237
194
|
// TOKEN UNIT MANAGEMENT (Admin)
|
|
@@ -239,43 +196,35 @@ class RedemptionApi {
|
|
|
239
196
|
/**
|
|
240
197
|
* ADMIN: Create redemption token unit
|
|
241
198
|
*
|
|
242
|
-
* Updated: /redemption/admin/:id/token-units → /
|
|
199
|
+
* Updated: /redemption/admin/:id/token-units → /redemption-tokens/:id/
|
|
243
200
|
*/
|
|
244
201
|
async createRedemptionTokenUnit(redemptionId, redemptionTokenUnit) {
|
|
245
|
-
return this.apiClient.post(`${this.basePath}/${redemptionId}/
|
|
202
|
+
return this.apiClient.post(`${this.basePath}/${redemptionId}/tokens`, redemptionTokenUnit);
|
|
246
203
|
}
|
|
247
204
|
/**
|
|
248
205
|
* ADMIN: Update redemption token unit
|
|
249
206
|
*
|
|
250
|
-
* Updated: /redemption/admin/:id/token-units/:tokenUnitId → /
|
|
207
|
+
* Updated: /redemption/admin/:id/token-units/:tokenUnitId → /redemption-tokens/:id/:tokenUnitId
|
|
251
208
|
*/
|
|
252
209
|
async updateRedemptionTokenUnit(redemptionId, tokenUnitId, redemptionTokenUnit) {
|
|
253
|
-
return this.apiClient.put(`${this.basePath}/${redemptionId}/
|
|
210
|
+
return this.apiClient.put(`${this.basePath}/${redemptionId}/tokens/${tokenUnitId}`, redemptionTokenUnit);
|
|
254
211
|
}
|
|
255
212
|
/**
|
|
256
213
|
* ADMIN: Delete redemption token unit
|
|
257
214
|
*
|
|
258
|
-
* Updated: /redemption/admin/:id/token-units/:tokenUnitId → /
|
|
215
|
+
* Updated: /redemption/admin/:id/token-units/:tokenUnitId → /redemption-tokens/:id/:tokenUnitId
|
|
259
216
|
*/
|
|
260
217
|
async deleteRedemptionTokenUnit(redemptionId, redemptionTokenUnitId) {
|
|
261
|
-
return this.apiClient.delete(`${this.basePath}/${redemptionId}/
|
|
218
|
+
return this.apiClient.delete(`${this.basePath}/${redemptionId}/tokens/${redemptionTokenUnitId}`);
|
|
262
219
|
}
|
|
263
220
|
// ==========================================
|
|
264
|
-
//
|
|
221
|
+
// CONVENIENCE METHODS (Legacy Support)
|
|
265
222
|
// ==========================================
|
|
266
223
|
/**
|
|
267
|
-
*
|
|
268
|
-
* Backward compatibility for old admin endpoint
|
|
269
|
-
*/
|
|
270
|
-
async getRedemptionsAdmin(active) {
|
|
271
|
-
return this.getRedemptionsAsAdmin(active);
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* @deprecated Use redeemRedemption() instead
|
|
275
|
-
* Backward compatibility for old redeem method
|
|
224
|
+
* Convenience: Get active redemptions (public access)
|
|
276
225
|
*/
|
|
277
|
-
async
|
|
278
|
-
return this.
|
|
226
|
+
async getActiveRedemptions() {
|
|
227
|
+
return this.getRedemptions({ active: true });
|
|
279
228
|
}
|
|
280
229
|
}
|
|
281
230
|
|
|
@@ -295,7 +244,15 @@ class RedemptionService {
|
|
|
295
244
|
// PUBLIC OPERATIONS
|
|
296
245
|
// ==========================================
|
|
297
246
|
/**
|
|
298
|
-
*
|
|
247
|
+
* UNIFIED: Get redemptions with intelligent access control
|
|
248
|
+
* @param options.active - Filter by active status
|
|
249
|
+
* @param options.adminAccess - Force admin access
|
|
250
|
+
*/
|
|
251
|
+
async getRedemptions(options) {
|
|
252
|
+
return this.redemptionApi.getRedemptions(options);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Convenience: Get active redemptions (public)
|
|
299
256
|
*/
|
|
300
257
|
async getActiveRedemptions() {
|
|
301
258
|
return this.redemptionApi.getActiveRedemptions();
|
|
@@ -316,7 +273,13 @@ class RedemptionService {
|
|
|
316
273
|
return this.redemptionApi.redeemRedemption(redemptionId);
|
|
317
274
|
}
|
|
318
275
|
/**
|
|
319
|
-
*
|
|
276
|
+
* UNIFIED: Get redemption redeems with filtering
|
|
277
|
+
*/
|
|
278
|
+
async getRedemptionRedeems(filters) {
|
|
279
|
+
return this.redemptionApi.getRedemptionRedeems(filters);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Convenience: Get user redemptions
|
|
320
283
|
*/
|
|
321
284
|
async getUserRedeems() {
|
|
322
285
|
return this.redemptionApi.getUserRedeems();
|
|
@@ -325,7 +288,7 @@ class RedemptionService {
|
|
|
325
288
|
// ADMIN OPERATIONS
|
|
326
289
|
// ==========================================
|
|
327
290
|
/**
|
|
328
|
-
*
|
|
291
|
+
* Convenience: Get redemptions as admin
|
|
329
292
|
*/
|
|
330
293
|
async getRedemptionsAsAdmin(active) {
|
|
331
294
|
return this.redemptionApi.getRedemptionsAsAdmin(active);
|
package/dist/redemption.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redemption.js","sources":["../src/redemption/api/redemption-api.ts","../src/redemption/services/redemption-service.ts","../src/redemption/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redemption.js","sources":["../src/redemption/api/redemption-api.ts","../src/redemption/services/redemption-service.ts","../src/redemption/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* used throughout the PERS SDK. This ensures consistent type usage
|
|
6
6
|
* and makes it easier to manage dependencies.
|
|
7
7
|
*/
|
|
8
|
-
export { type AdminDTO, type SessionAuthResponseDTO } from '@explorins/pers-shared';
|
|
8
|
+
export { type AdminDTO, type SessionAuthContextResponseDTO, AccountOwnerType, type SessionAuthRequestDTO, type SessionAuthResponseDTO } from '@explorins/pers-shared';
|
|
9
9
|
export { type BusinessDTO, type BusinessTypeDTO, type BusinessUpdateRequestDTO, type BusinessCreateRequestDTO, type BusinessToggleActiveRequestDTO, type BusinessApiKeyDTO, type BusinessTokenBalancesDTO, type BusinessTypeCreateRequestDTO } from '@explorins/pers-shared';
|
|
10
10
|
export { type CampaignDTO, type CampaignCreateRequestDTO, type CampaignClaimDTO, type CampaignClaimRequestDTO, type CampaignTriggerDTO, type CampaignBusinessEngagementCreateRequestDTO, type TokenUnitCreateRequestDTO, type CampaignTriggerType } from '@explorins/pers-shared';
|
|
11
11
|
export { type DonationTypeDTO } from '@explorins/pers-shared';
|
|
@@ -15,4 +15,5 @@ export { type TenantClientConfigDTO, type TenantDTO, type TenantPublicDTO } from
|
|
|
15
15
|
export { type TokenMetadataDTO, type TokenDTO, type TokenCreateRequestDTO, type TokenUpdateRequestDTO, type TokenStorageData, type TokenTypeDTO } from '@explorins/pers-shared';
|
|
16
16
|
export { type TransactionDTO, type TransactionRequestDTO, type TransactionRequestResponseDTO, type UserToBusinessTokenTransactionCreateRequestDTO, type AccountSelectorDTO, type TransactionSubmissionRequestDTO } from '@explorins/pers-shared';
|
|
17
17
|
export { type UserCreateRequestDTO, type UserStatusTypeDTO } from '@explorins/pers-shared';
|
|
18
|
+
export type { BusinessLogicError, ValidationError as SharedValidationError, DomainRuleError, TechnicalError, InfrastructureError, SecurityError, RateLimitError, TimeoutError, UnknownError, AuthenticationRequiredError, AuthorizationFailedError, InvalidTokenError, TokenExpiredError, TokenRevokedException, FirebaseAuthenticationError } from '@explorins/pers-shared';
|
|
18
19
|
//# sourceMappingURL=pers-shared-lib.interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pers-shared-lib.interfaces.d.ts","sourceRoot":"","sources":["../../../src/shared/interfaces/pers-shared-lib.interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EAClC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,0CAA0C,EAC/C,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,8BAA8B,EACnC,KAAK,mBAAmB,EACxB,KAAK,kCAAkC,EACxC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,8CAA8C,EACnD,KAAK,kBAAkB,EACvB,KAAK,+BAA+B,EACrC,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"pers-shared-lib.interfaces.d.ts","sourceRoot":"","sources":["../../../src/shared/interfaces/pers-shared-lib.interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,6BAA6B,EAClC,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EAClC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,0CAA0C,EAC/C,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,8BAA8B,EACnC,KAAK,mBAAmB,EACxB,KAAK,kCAAkC,EACxC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,8CAA8C,EACnD,KAAK,kBAAkB,EACvB,KAAK,+BAA+B,EACrC,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAIhC,YAAY,EACV,kBAAkB,EAClB,eAAe,IAAI,qBAAqB,EACxC,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EAEZ,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,wBAAwB,CAAC"}
|
|
@@ -7,7 +7,7 @@ interface AdminCreateRequestDTO {
|
|
|
7
7
|
* Platform-Agnostic Tenant API Client
|
|
8
8
|
*
|
|
9
9
|
* Handles tenant and admin operations using the PERS backend.
|
|
10
|
-
*
|
|
10
|
+
* Updated to match new RESTful tenant controller endpoints.
|
|
11
11
|
*
|
|
12
12
|
* Note: Special header handling (bypass-auth-interceptor) should be handled by PersApiClient internally
|
|
13
13
|
* or through endpoint-specific configuration.
|
|
@@ -18,37 +18,55 @@ export declare class TenantApi {
|
|
|
18
18
|
private basePath;
|
|
19
19
|
private adminPath;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
* ✅
|
|
21
|
+
* API KEY: Get current tenant public information
|
|
22
|
+
* ✅ UPDATED: Uses /tenants/me endpoint with API key authentication
|
|
23
|
+
*
|
|
24
|
+
* Requires: X-API-Key header (handled by PersApiClient)
|
|
25
|
+
* Returns: Enhanced public tenant information for the authenticated project
|
|
23
26
|
*/
|
|
24
27
|
getRemoteTenant(): Promise<TenantPublicDTO>;
|
|
25
28
|
/**
|
|
26
|
-
*
|
|
29
|
+
* API KEY: Get remote login token
|
|
30
|
+
* ✅ UPDATED: Requires API key authentication
|
|
27
31
|
*/
|
|
28
32
|
getRemoteLoginToken(): Promise<string>;
|
|
29
33
|
/**
|
|
30
|
-
*
|
|
31
|
-
* ✅
|
|
32
|
-
* Note: The /tenants/client-config endpoint should be configured to bypass auth at the API client level
|
|
34
|
+
* API KEY: Get remote client configuration
|
|
35
|
+
* ✅ UPDATED: Requires API key authentication
|
|
33
36
|
*/
|
|
34
37
|
getRemoteClientConfig(): Promise<TenantClientConfigDTO>;
|
|
38
|
+
/**
|
|
39
|
+
* PUBLIC: Get tenant public information by ID (no auth required)
|
|
40
|
+
* ✅ NEW: For cases where you need public tenant info without API key
|
|
41
|
+
*
|
|
42
|
+
* @param tenantId - The tenant ID to retrieve public information for
|
|
43
|
+
*/
|
|
44
|
+
getPublicTenantById(tenantId: string): Promise<TenantPublicDTO>;
|
|
35
45
|
/**
|
|
36
46
|
* ADMIN: Update tenant information
|
|
37
|
-
* ✅
|
|
47
|
+
* ✅ UPDATED: Uses PUT /tenants (admin endpoint)
|
|
38
48
|
*/
|
|
39
49
|
updateRemoteTenant(tenantData: TenantPublicDTO): Promise<TenantPublicDTO>;
|
|
50
|
+
/**
|
|
51
|
+
* ADMIN: Create new API key
|
|
52
|
+
* ✅ NEW: Create new API key for the tenant
|
|
53
|
+
*/
|
|
54
|
+
createApiKey(keyName: string): Promise<TenantPublicDTO>;
|
|
55
|
+
/**
|
|
56
|
+
* ADMIN: Create new JWT token
|
|
57
|
+
* ✅ NEW: Create new JWT token for the tenant
|
|
58
|
+
*/
|
|
59
|
+
createJwtToken(isTestnet?: boolean): Promise<TenantPublicDTO>;
|
|
40
60
|
/**
|
|
41
61
|
* ADMIN: Get all tenant admins
|
|
42
62
|
*/
|
|
43
63
|
getAdmins(): Promise<AdminDTO[]>;
|
|
44
64
|
/**
|
|
45
65
|
* ADMIN: Create new admin
|
|
46
|
-
* ✅ FIXED: Renamed to match framework postAdmin method
|
|
47
66
|
*/
|
|
48
67
|
postAdmin(adminData: AdminCreateRequestDTO): Promise<AdminDTO>;
|
|
49
68
|
/**
|
|
50
69
|
* ADMIN: Update admin (toggle tenant association)
|
|
51
|
-
* ✅ FIXED: Renamed to match framework putAdmin method
|
|
52
70
|
*/
|
|
53
71
|
putAdmin(adminId: string, adminData: AdminCreateRequestDTO): Promise<AdminDTO>;
|
|
54
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-api.d.ts","sourceRoot":"","sources":["../../../src/tenant/api/tenant-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,UAAU,qBAAqB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAa;IAM9B
|
|
1
|
+
{"version":3,"file":"tenant-api.d.ts","sourceRoot":"","sources":["../../../src/tenant/api/tenant-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,UAAU,qBAAqB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAa;IAM9B;;;;;;OAMG;IACG,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC;IAOjD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAQ7D;;;;;OAKG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IASrE;;;OAGG;IACG,kBAAkB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAI/E;;;OAGG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI7D;;;OAGG;IACG,cAAc,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAI1E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAItC;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIpE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAGrF"}
|
package/dist/tenant/index.d.ts
CHANGED
|
@@ -22,11 +22,11 @@ import { TenantPublicDTO, AdminCreateRequestDTO } from './models';
|
|
|
22
22
|
export declare function createTenantSDK(apiClient: PersApiClient): {
|
|
23
23
|
getRemoteTenant: () => Promise<TenantPublicDTO>;
|
|
24
24
|
getRemoteLoginToken: () => Promise<string>;
|
|
25
|
-
getRemoteClientConfig: () => Promise<import("@explorins/pers-shared/dist/cjs/shared-lib/dto/tenant-client-config.dto").TenantClientConfigDTO>;
|
|
25
|
+
getRemoteClientConfig: () => Promise<import("@explorins/pers-shared/dist/cjs/shared-lib/dto/tenant/tenant-client-config.dto").TenantClientConfigDTO>;
|
|
26
26
|
updateRemoteTenant: (tenantData: TenantPublicDTO) => Promise<TenantPublicDTO>;
|
|
27
|
-
getAdmins: () => Promise<import("@explorins/pers-shared/dist/cjs/shared-lib/dto/admin.dto").AdminDTO[]>;
|
|
28
|
-
postAdmin: (adminData: AdminCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/shared-lib/dto/admin.dto").AdminDTO>;
|
|
29
|
-
putAdmin: (adminId: string, adminData: AdminCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/shared-lib/dto/admin.dto").AdminDTO>;
|
|
27
|
+
getAdmins: () => Promise<import("@explorins/pers-shared/dist/cjs/shared-lib/dto/admin/admin.dto").AdminDTO[]>;
|
|
28
|
+
postAdmin: (adminData: AdminCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/shared-lib/dto/admin/admin.dto").AdminDTO>;
|
|
29
|
+
putAdmin: (adminId: string, adminData: AdminCreateRequestDTO) => Promise<import("@explorins/pers-shared/dist/cjs/shared-lib/dto/admin/admin.dto").AdminDTO>;
|
|
30
30
|
api: TenantApi;
|
|
31
31
|
service: TenantService;
|
|
32
32
|
};
|
package/dist/tenant.cjs
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var persShared = require('@explorins/pers-shared');
|
|
4
|
+
|
|
3
5
|
/**
|
|
4
6
|
* Platform-Agnostic Tenant API Client
|
|
5
7
|
*
|
|
6
8
|
* Handles tenant and admin operations using the PERS backend.
|
|
7
|
-
*
|
|
9
|
+
* Updated to match new RESTful tenant controller endpoints.
|
|
8
10
|
*
|
|
9
11
|
* Note: Special header handling (bypass-auth-interceptor) should be handled by PersApiClient internally
|
|
10
12
|
* or through endpoint-specific configuration.
|
|
@@ -19,38 +21,69 @@ class TenantApi {
|
|
|
19
21
|
// PUBLIC OPERATIONS
|
|
20
22
|
// ==========================================
|
|
21
23
|
/**
|
|
22
|
-
*
|
|
23
|
-
* ✅
|
|
24
|
+
* API KEY: Get current tenant public information
|
|
25
|
+
* ✅ UPDATED: Uses /tenants/me endpoint with API key authentication
|
|
26
|
+
*
|
|
27
|
+
* Requires: X-API-Key header (handled by PersApiClient)
|
|
28
|
+
* Returns: Enhanced public tenant information for the authenticated project
|
|
24
29
|
*/
|
|
25
30
|
async getRemoteTenant() {
|
|
31
|
+
// Remove cache busting - not needed for authenticated endpoint
|
|
26
32
|
const timestamp = Date.now().toString();
|
|
27
|
-
const url = `${this.basePath}/
|
|
33
|
+
const url = `${this.basePath}/me?date=${timestamp}`;
|
|
28
34
|
return this.apiClient.get(url);
|
|
29
35
|
}
|
|
30
36
|
/**
|
|
31
|
-
*
|
|
37
|
+
* API KEY: Get remote login token
|
|
38
|
+
* ✅ UPDATED: Requires API key authentication
|
|
32
39
|
*/
|
|
33
40
|
async getRemoteLoginToken() {
|
|
34
41
|
return this.apiClient.get(`${this.basePath}/login-token`);
|
|
35
42
|
}
|
|
36
43
|
/**
|
|
37
|
-
*
|
|
38
|
-
* ✅
|
|
39
|
-
* Note: The /tenants/client-config endpoint should be configured to bypass auth at the API client level
|
|
44
|
+
* API KEY: Get remote client configuration
|
|
45
|
+
* ✅ UPDATED: Requires API key authentication
|
|
40
46
|
*/
|
|
41
47
|
async getRemoteClientConfig() {
|
|
42
48
|
return this.apiClient.get(`${this.basePath}/client-config`);
|
|
43
49
|
}
|
|
44
50
|
// ==========================================
|
|
51
|
+
// PUBLIC UNAUTHENTICATED OPERATIONS
|
|
52
|
+
// ==========================================
|
|
53
|
+
/**
|
|
54
|
+
* PUBLIC: Get tenant public information by ID (no auth required)
|
|
55
|
+
* ✅ NEW: For cases where you need public tenant info without API key
|
|
56
|
+
*
|
|
57
|
+
* @param tenantId - The tenant ID to retrieve public information for
|
|
58
|
+
*/
|
|
59
|
+
async getPublicTenantById(tenantId) {
|
|
60
|
+
const url = `${this.basePath}/${tenantId}`;
|
|
61
|
+
return this.apiClient.get(url);
|
|
62
|
+
}
|
|
63
|
+
// ==========================================
|
|
45
64
|
// ADMIN OPERATIONS
|
|
46
65
|
// ==========================================
|
|
47
66
|
/**
|
|
48
67
|
* ADMIN: Update tenant information
|
|
49
|
-
* ✅
|
|
68
|
+
* ✅ UPDATED: Uses PUT /tenants (admin endpoint)
|
|
50
69
|
*/
|
|
51
70
|
async updateRemoteTenant(tenantData) {
|
|
52
71
|
return this.apiClient.put(`${this.basePath}`, tenantData);
|
|
53
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* ADMIN: Create new API key
|
|
75
|
+
* ✅ NEW: Create new API key for the tenant
|
|
76
|
+
*/
|
|
77
|
+
async createApiKey(keyName) {
|
|
78
|
+
return this.apiClient.post(`${this.basePath}/api-keys`, { keyName });
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* ADMIN: Create new JWT token
|
|
82
|
+
* ✅ NEW: Create new JWT token for the tenant
|
|
83
|
+
*/
|
|
84
|
+
async createJwtToken(isTestnet = false) {
|
|
85
|
+
return this.apiClient.post(`${this.basePath}/jwt-tokens`, { isTestnet });
|
|
86
|
+
}
|
|
54
87
|
/**
|
|
55
88
|
* ADMIN: Get all tenant admins
|
|
56
89
|
*/
|
|
@@ -59,14 +92,12 @@ class TenantApi {
|
|
|
59
92
|
}
|
|
60
93
|
/**
|
|
61
94
|
* ADMIN: Create new admin
|
|
62
|
-
* ✅ FIXED: Renamed to match framework postAdmin method
|
|
63
95
|
*/
|
|
64
96
|
async postAdmin(adminData) {
|
|
65
97
|
return this.apiClient.post(`${this.adminPath}`, adminData);
|
|
66
98
|
}
|
|
67
99
|
/**
|
|
68
100
|
* ADMIN: Update admin (toggle tenant association)
|
|
69
|
-
* ✅ FIXED: Renamed to match framework putAdmin method
|
|
70
101
|
*/
|
|
71
102
|
async putAdmin(adminId, adminData) {
|
|
72
103
|
return this.apiClient.put(`${this.adminPath}/${adminId}/tenant`, adminData);
|
|
@@ -171,6 +202,10 @@ function createTenantSDK(apiClient) {
|
|
|
171
202
|
};
|
|
172
203
|
}
|
|
173
204
|
|
|
205
|
+
Object.defineProperty(exports, "AccountOwnerType", {
|
|
206
|
+
enumerable: true,
|
|
207
|
+
get: function () { return persShared.AccountOwnerType; }
|
|
208
|
+
});
|
|
174
209
|
exports.TenantApi = TenantApi;
|
|
175
210
|
exports.TenantService = TenantService;
|
|
176
211
|
exports.createTenantSDK = createTenantSDK;
|
package/dist/tenant.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.cjs","sources":["../src/tenant/api/tenant-api.ts","../src/tenant/services/tenant-service.ts","../src/tenant/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tenant.cjs","sources":["../src/tenant/api/tenant-api.ts","../src/tenant/services/tenant-service.ts","../src/tenant/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;AAYA;;;;;;;;AAQG;MACU,SAAS,CAAA;AACpB,IAAA,WAAA,CAAoB,SAAwB,EAAA;QAAxB,IAAA,CAAA,SAAS,GAAT,SAAS;QAErB,IAAA,CAAA,QAAQ,GAAG,UAAU;QACrB,IAAA,CAAA,SAAS,GAAG,SAAS;IAHkB;;;;AAS/C;;;;;;AAMG;AACH,IAAA,MAAM,eAAe,GAAA;;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACvC,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,SAAA,EAAY,SAAS,CAAA,CAAE;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAkB,GAAG,CAAC;IACjD;AAEA;;;AAGG;AACH,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAS,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,YAAA,CAAc,CAAC;IACnE;AAEA;;;AAGG;AACH,IAAA,MAAM,qBAAqB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,cAAA,CAAgB,CAAC;IACpF;;;;AAMA;;;;;AAKG;IACH,MAAM,mBAAmB,CAAC,QAAgB,EAAA;QACxC,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAkB,GAAG,CAAC;IACjD;;;;AAMA;;;AAGG;IACH,MAAM,kBAAkB,CAAC,UAA2B,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAkB,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAE,EAAE,UAAU,CAAC;IAC5E;AAEA;;;AAGG;IACH,MAAM,YAAY,CAAC,OAAe,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAkB,CAAA,EAAG,IAAI,CAAC,QAAQ,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;IACvF;AAEA;;;AAGG;AACH,IAAA,MAAM,cAAc,CAAC,SAAA,GAAqB,KAAK,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAkB,CAAA,EAAG,IAAI,CAAC,QAAQ,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC;IAC3F;AAEA;;AAEG;AACH,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAa,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAE,CAAC;IAC5D;AAEA;;AAEG;IACH,MAAM,SAAS,CAAC,SAAgC,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAW,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,CAAE,EAAE,SAAS,CAAC;IACtE;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,CAAC,OAAe,EAAE,SAAgC,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAW,CAAA,EAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAA,OAAA,CAAS,EAAE,SAAS,CAAC;IACvF;AACD;;ACpHD;;;;;;AAMG;MACU,aAAa,CAAA;AACxB,IAAA,WAAA,CAAoB,SAAoB,EAAA;QAApB,IAAA,CAAA,SAAS,GAAT,SAAS;IAAc;;;;AAM3C;;AAEG;AACH,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;IACzC;AAEA;;AAEG;AACH,IAAA,MAAM,mBAAmB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;IAC7C;AAEA;;AAEG;AACH,IAAA,MAAM,qBAAqB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE;IAC/C;;;;AAMA;;;AAGG;IACH,MAAM,kBAAkB,CAAC,UAA2B,EAAA;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC;IACtD;AAEA;;AAEG;AACH,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;IACnC;AAEA;;;AAGG;IACH,MAAM,SAAS,CAAC,SAAgC,EAAA;QAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;IAC5C;AAEA;;;AAGG;AACH,IAAA,MAAM,QAAQ,CAAC,OAAe,EAAE,SAAgC,EAAA;QAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IACpD;AACD;;AC7ED;;;;;AAKG;AAEH;AAmBA;;;;;AAKG;AACG,SAAU,eAAe,CAAC,SAAwB,EAAA;AACtD,IAAA,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC;AAC1C,IAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC;IAElD,OAAO;;;;AAKL,QAAA,eAAe,EAAE,MAAM,aAAa,CAAC,eAAe,EAAE;AACtD,QAAA,mBAAmB,EAAE,MAAM,aAAa,CAAC,mBAAmB,EAAE;AAC9D,QAAA,qBAAqB,EAAE,MAAM,aAAa,CAAC,qBAAqB,EAAE;;QAGlE,kBAAkB,EAAE,CAAC,UAA2B,KAC9C,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC;AAC9C,QAAA,SAAS,EAAE,MAAM,aAAa,CAAC,SAAS,EAAE;QAC1C,SAAS,EAAE,CAAC,SAAgC,KAC1C,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC;AACpC,QAAA,QAAQ,EAAE,CAAC,OAAe,EAAE,SAAgC,KAC1D,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;;AAG5C,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,OAAO,EAAE;KACV;AACH;;;;;;;;;;"}
|