@explorins/pers-sdk 2.1.3 → 2.1.6
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/dist/analytics/api/analytics-api.d.ts +175 -1
- package/dist/analytics/api/analytics-api.d.ts.map +1 -1
- package/dist/analytics/models/index.d.ts +2 -5
- package/dist/analytics/models/index.d.ts.map +1 -1
- package/dist/analytics/services/analytics-service.d.ts +32 -1
- package/dist/analytics/services/analytics-service.d.ts.map +1 -1
- package/dist/analytics.cjs +9 -44
- package/dist/analytics.cjs.map +1 -1
- package/dist/analytics.js +2 -45
- package/dist/analytics.js.map +1 -1
- package/dist/campaign/api/campaign-api.d.ts +59 -4
- package/dist/campaign/api/campaign-api.d.ts.map +1 -1
- package/dist/campaign/index.d.ts +1 -0
- package/dist/campaign/index.d.ts.map +1 -1
- package/dist/campaign/models/index.d.ts +31 -0
- package/dist/campaign/models/index.d.ts.map +1 -0
- package/dist/campaign/services/campaign-service.d.ts +49 -7
- package/dist/campaign/services/campaign-service.d.ts.map +1 -1
- package/dist/campaign.cjs +150 -14
- package/dist/campaign.cjs.map +1 -1
- package/dist/campaign.js +150 -14
- package/dist/campaign.js.map +1 -1
- package/dist/chunks/analytics-service-B9IfG6ox.js +271 -0
- package/dist/chunks/analytics-service-B9IfG6ox.js.map +1 -0
- package/dist/chunks/analytics-service-DwkeBB08.cjs +274 -0
- package/dist/chunks/analytics-service-DwkeBB08.cjs.map +1 -0
- package/dist/chunks/{pers-sdk-fWg-J3_h.js → pers-sdk-BtvhucPY.js} +845 -208
- package/dist/chunks/pers-sdk-BtvhucPY.js.map +1 -0
- package/dist/chunks/{pers-sdk-BQw3QUWR.cjs → pers-sdk-D4XVDZk3.cjs} +847 -209
- package/dist/chunks/pers-sdk-D4XVDZk3.cjs.map +1 -0
- package/dist/chunks/{redemption-service-rMB6T2W5.cjs → redemption-service-C61Qr2vI.cjs} +34 -24
- package/dist/chunks/redemption-service-C61Qr2vI.cjs.map +1 -0
- package/dist/chunks/{redemption-service-D-hBqh42.js → redemption-service-C_UTTDag.js} +34 -24
- package/dist/chunks/redemption-service-C_UTTDag.js.map +1 -0
- package/dist/chunks/{transaction-request.builder-BpgtuMMq.cjs → transaction-request.builder-B7n7tc1e.cjs} +120 -70
- package/dist/chunks/transaction-request.builder-B7n7tc1e.cjs.map +1 -0
- package/dist/chunks/{transaction-request.builder-C1vVVFto.js → transaction-request.builder-VbJpI34c.js} +121 -71
- package/dist/chunks/transaction-request.builder-VbJpI34c.js.map +1 -0
- package/dist/core/auth/api/auth-api.d.ts +1 -4
- package/dist/core/auth/api/auth-api.d.ts.map +1 -1
- package/dist/core/auth/index.d.ts +1 -1
- package/dist/core/auth/index.d.ts.map +1 -1
- package/dist/core/auth/services/auth-service.d.ts +1 -4
- package/dist/core/auth/services/auth-service.d.ts.map +1 -1
- package/dist/core/pers-api-client.d.ts.map +1 -1
- package/dist/core.cjs +6 -4
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +5 -4
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +14 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/managers/analytics-manager.d.ts +165 -2
- package/dist/managers/analytics-manager.d.ts.map +1 -1
- package/dist/managers/auth-manager.d.ts +1 -2
- package/dist/managers/auth-manager.d.ts.map +1 -1
- package/dist/managers/campaign-manager.d.ts +186 -50
- package/dist/managers/campaign-manager.d.ts.map +1 -1
- package/dist/managers/index.d.ts +1 -0
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/redemption-manager.d.ts +50 -3
- package/dist/managers/redemption-manager.d.ts.map +1 -1
- package/dist/managers/transaction-manager.d.ts +70 -132
- package/dist/managers/transaction-manager.d.ts.map +1 -1
- package/dist/managers/trigger-source-manager.d.ts +185 -0
- package/dist/managers/trigger-source-manager.d.ts.map +1 -0
- package/dist/managers/user-manager.d.ts +30 -7
- package/dist/managers/user-manager.d.ts.map +1 -1
- package/dist/node.cjs +5 -4
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +5 -4
- package/dist/node.js.map +1 -1
- package/dist/package.json +7 -2
- package/dist/pers-sdk.d.ts +33 -2
- package/dist/pers-sdk.d.ts.map +1 -1
- package/dist/redemption/api/redemption-api.d.ts +10 -18
- package/dist/redemption/api/redemption-api.d.ts.map +1 -1
- package/dist/redemption/index.d.ts +1 -0
- package/dist/redemption/index.d.ts.map +1 -1
- package/dist/redemption/models/index.d.ts +19 -0
- package/dist/redemption/models/index.d.ts.map +1 -1
- package/dist/redemption/services/redemption-service.d.ts +7 -3
- package/dist/redemption/services/redemption-service.d.ts.map +1 -1
- package/dist/redemption.cjs +1 -1
- package/dist/redemption.js +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/transaction/api/transaction-api.d.ts +38 -42
- package/dist/transaction/api/transaction-api.d.ts.map +1 -1
- package/dist/transaction/index.d.ts +2 -1
- package/dist/transaction/index.d.ts.map +1 -1
- package/dist/transaction/models/index.d.ts +21 -0
- package/dist/transaction/models/index.d.ts.map +1 -1
- package/dist/transaction/services/transaction-service.d.ts +12 -15
- package/dist/transaction/services/transaction-service.d.ts.map +1 -1
- package/dist/transaction.cjs +1 -1
- package/dist/transaction.js +1 -1
- package/dist/trigger-source/api/trigger-source-api.d.ts +86 -0
- package/dist/trigger-source/api/trigger-source-api.d.ts.map +1 -0
- package/dist/trigger-source/index.d.ts +10 -0
- package/dist/trigger-source/index.d.ts.map +1 -0
- package/dist/trigger-source/models/index.d.ts +26 -0
- package/dist/trigger-source/models/index.d.ts.map +1 -0
- package/dist/trigger-source/services/trigger-source-service.d.ts +42 -0
- package/dist/trigger-source/services/trigger-source-service.d.ts.map +1 -0
- package/dist/trigger-source.cjs +145 -0
- package/dist/trigger-source.cjs.map +1 -0
- package/dist/trigger-source.js +142 -0
- package/dist/trigger-source.js.map +1 -0
- package/dist/user/api/user-api.d.ts +18 -1
- package/dist/user/api/user-api.d.ts.map +1 -1
- package/dist/user/services/user-service.d.ts +3 -1
- package/dist/user/services/user-service.d.ts.map +1 -1
- package/dist/user.cjs +26 -4
- package/dist/user.cjs.map +1 -1
- package/dist/user.js +26 -4
- package/dist/user.js.map +1 -1
- package/package.json +7 -2
- package/dist/chunks/pers-sdk-BQw3QUWR.cjs.map +0 -1
- package/dist/chunks/pers-sdk-fWg-J3_h.js.map +0 -1
- package/dist/chunks/redemption-service-D-hBqh42.js.map +0 -1
- package/dist/chunks/redemption-service-rMB6T2W5.cjs.map +0 -1
- package/dist/chunks/transaction-request.builder-BpgtuMMq.cjs.map +0 -1
- package/dist/chunks/transaction-request.builder-C1vVVFto.js.map +0 -1
package/dist/campaign.js
CHANGED
|
@@ -25,6 +25,19 @@ class CampaignApi {
|
|
|
25
25
|
* Get campaigns with pagination support
|
|
26
26
|
* Returns paginated response with metadata (total, page, limit, hasMore)
|
|
27
27
|
* Intelligent access: Public gets active only, Business gets own campaigns, Admin gets all
|
|
28
|
+
*
|
|
29
|
+
* @param options - Filter, pagination, and include options
|
|
30
|
+
* @param options.include - Relations to include: 'triggerSources', 'businesses'
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // Get campaigns with trigger sources included
|
|
35
|
+
* const campaigns = await api.getCampaigns({ include: ['triggerSources'] });
|
|
36
|
+
* campaigns.data.forEach(c => console.log(c.included?.triggerSources));
|
|
37
|
+
*
|
|
38
|
+
* // Get campaigns with both relations
|
|
39
|
+
* const full = await api.getCampaigns({ include: ['triggerSources', 'businesses'] });
|
|
40
|
+
* ```
|
|
28
41
|
*/
|
|
29
42
|
async getCampaigns(options) {
|
|
30
43
|
const params = [];
|
|
@@ -41,14 +54,28 @@ class CampaignApi {
|
|
|
41
54
|
params.push(`sortBy=${options.sortBy}`);
|
|
42
55
|
if (options?.sortOrder)
|
|
43
56
|
params.push(`sortOrder=${options.sortOrder}`);
|
|
57
|
+
if (options?.include?.length)
|
|
58
|
+
params.push(`include=${options.include.join(',')}`);
|
|
44
59
|
return this.apiClient.get(`/campaigns?${params.join('&')}`);
|
|
45
60
|
}
|
|
46
61
|
/**
|
|
47
62
|
* PUBLIC: Get campaign by ID
|
|
48
63
|
* NEW: /campaigns/{id}
|
|
64
|
+
*
|
|
65
|
+
* @param id - Campaign UUID
|
|
66
|
+
* @param include - Relations to include: 'triggerSources', 'businesses'
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* // Get campaign with all relations
|
|
71
|
+
* const campaign = await api.getCampaignById('123', ['triggerSources', 'businesses']);
|
|
72
|
+
* console.log(campaign.included?.triggerSources);
|
|
73
|
+
* console.log(campaign.included?.businesses);
|
|
74
|
+
* ```
|
|
49
75
|
*/
|
|
50
|
-
async getCampaignById(id) {
|
|
51
|
-
|
|
76
|
+
async getCampaignById(id, include) {
|
|
77
|
+
const params = include?.length ? `?include=${include.join(',')}` : '';
|
|
78
|
+
return this.apiClient.get(`/campaigns/${id}${params}`);
|
|
52
79
|
}
|
|
53
80
|
/**
|
|
54
81
|
* ADMIN: Create campaign
|
|
@@ -167,6 +194,16 @@ class CampaignApi {
|
|
|
167
194
|
const response = await this.apiClient.get(`/campaign-triggers?${params.toString()}`);
|
|
168
195
|
return normalizeToPaginated(response);
|
|
169
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* PUBLIC: Get campaign trigger by ID
|
|
199
|
+
* NEW: GET /campaign-triggers/{id}
|
|
200
|
+
*
|
|
201
|
+
* @param triggerId - Campaign trigger UUID
|
|
202
|
+
* @returns Campaign trigger details
|
|
203
|
+
*/
|
|
204
|
+
async getCampaignTriggerById(triggerId) {
|
|
205
|
+
return this.apiClient.get(`/campaign-triggers/${triggerId}`);
|
|
206
|
+
}
|
|
170
207
|
/**
|
|
171
208
|
* ADMIN: Create campaign trigger
|
|
172
209
|
* NEW: POST /campaign-triggers
|
|
@@ -195,6 +232,13 @@ class CampaignApi {
|
|
|
195
232
|
async setCampaignTrigger(campaignId, triggerId) {
|
|
196
233
|
return this.apiClient.put(`/campaign-triggers/${triggerId}/assign/${campaignId}`, {});
|
|
197
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* ADMIN: Remove trigger from campaign (unassign)
|
|
237
|
+
* NEW: DELETE /campaign-triggers/{triggerId}/assign/{campaignId}
|
|
238
|
+
*/
|
|
239
|
+
async removeCampaignTrigger(campaignId, triggerId) {
|
|
240
|
+
return this.apiClient.delete(`/campaign-triggers/${triggerId}/assign/${campaignId}`);
|
|
241
|
+
}
|
|
198
242
|
/**
|
|
199
243
|
* ADMIN: Add/Remove condition to trigger
|
|
200
244
|
* NEW: PUT /campaign-triggers/{triggerId}/conditions/{conditionId}
|
|
@@ -266,7 +310,7 @@ class CampaignApi {
|
|
|
266
310
|
* });
|
|
267
311
|
* ```
|
|
268
312
|
*/
|
|
269
|
-
async getClaims(filters) {
|
|
313
|
+
async getClaims(filters, include) {
|
|
270
314
|
const params = buildPaginationParams(filters);
|
|
271
315
|
// Add filter parameters
|
|
272
316
|
if (filters?.campaignId)
|
|
@@ -275,6 +319,10 @@ class CampaignApi {
|
|
|
275
319
|
params.set('userId', filters.userId);
|
|
276
320
|
if (filters?.businessId)
|
|
277
321
|
params.set('businessId', filters.businessId);
|
|
322
|
+
// Add include parameter
|
|
323
|
+
if (include && include.length > 0) {
|
|
324
|
+
include.forEach(relation => params.append('include', relation));
|
|
325
|
+
}
|
|
278
326
|
const endpoint = `/campaigns/claims?${params.toString()}`;
|
|
279
327
|
const response = await this.apiClient.get(endpoint);
|
|
280
328
|
return normalizeToPaginated(response);
|
|
@@ -284,13 +332,42 @@ class CampaignApi {
|
|
|
284
332
|
* Uses /me endpoint for authenticated user context
|
|
285
333
|
*
|
|
286
334
|
* @param options - Pagination options
|
|
335
|
+
* @param include - Optional relations to include (campaign, user, business)
|
|
287
336
|
* @returns Paginated list of user's claims
|
|
288
337
|
*/
|
|
289
|
-
async getClaimsLoggedUser(options) {
|
|
338
|
+
async getClaimsLoggedUser(options, include) {
|
|
290
339
|
const params = buildPaginationParams(options);
|
|
340
|
+
// Add include parameter
|
|
341
|
+
if (include && include.length > 0) {
|
|
342
|
+
include.forEach(relation => params.append('include', relation));
|
|
343
|
+
}
|
|
291
344
|
const response = await this.apiClient.get(`/campaigns/claims/me?${params.toString()}`);
|
|
292
345
|
return normalizeToPaginated(response);
|
|
293
346
|
}
|
|
347
|
+
// ==========================================
|
|
348
|
+
// TRIGGER SOURCE ASSIGNMENT (/campaigns/{id}/trigger-sources)
|
|
349
|
+
// Note: TriggerSource CRUD is in TriggerSourceApi
|
|
350
|
+
// ==========================================
|
|
351
|
+
/**
|
|
352
|
+
* ADMIN: Assign a trigger source to a campaign
|
|
353
|
+
*
|
|
354
|
+
* @param campaignId - Campaign UUID
|
|
355
|
+
* @param triggerSourceId - Trigger source UUID
|
|
356
|
+
* @returns Updated campaign with trigger source assigned
|
|
357
|
+
*/
|
|
358
|
+
async assignTriggerSourceToCampaign(campaignId, triggerSourceId) {
|
|
359
|
+
return this.apiClient.put(`/campaigns/${campaignId}/trigger-sources/${triggerSourceId}`, {});
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* ADMIN: Remove a trigger source from a campaign
|
|
363
|
+
*
|
|
364
|
+
* @param campaignId - Campaign UUID
|
|
365
|
+
* @param triggerSourceId - Trigger source UUID
|
|
366
|
+
* @returns Updated campaign with trigger source removed
|
|
367
|
+
*/
|
|
368
|
+
async removeTriggerSourceFromCampaign(campaignId, triggerSourceId) {
|
|
369
|
+
return this.apiClient.delete(`/campaigns/${campaignId}/trigger-sources/${triggerSourceId}`);
|
|
370
|
+
}
|
|
294
371
|
}
|
|
295
372
|
|
|
296
373
|
/**
|
|
@@ -310,9 +387,11 @@ class CampaignService {
|
|
|
310
387
|
// ==========================================
|
|
311
388
|
/**
|
|
312
389
|
* PUBLIC: Get campaign by ID
|
|
390
|
+
* @param id - Campaign UUID
|
|
391
|
+
* @param include - Relations to include: 'triggerSources', 'businesses'
|
|
313
392
|
*/
|
|
314
|
-
async getCampaignById(id) {
|
|
315
|
-
return this.campaignApi.getCampaignById(id);
|
|
393
|
+
async getCampaignById(id, include) {
|
|
394
|
+
return this.campaignApi.getCampaignById(id, include);
|
|
316
395
|
}
|
|
317
396
|
// ==========================================
|
|
318
397
|
// AUTHENTICATED OPERATIONS
|
|
@@ -325,9 +404,11 @@ class CampaignService {
|
|
|
325
404
|
}
|
|
326
405
|
/**
|
|
327
406
|
* AUTH: Get claims for logged user with pagination
|
|
407
|
+
* @param options - Pagination options
|
|
408
|
+
* @param include - Optional relations to include (campaign, user, business)
|
|
328
409
|
*/
|
|
329
|
-
async getClaimsForLoggedUser(options) {
|
|
330
|
-
return this.campaignApi.getClaimsLoggedUser(options);
|
|
410
|
+
async getClaimsForLoggedUser(options, include) {
|
|
411
|
+
return this.campaignApi.getClaimsLoggedUser(options, include);
|
|
331
412
|
}
|
|
332
413
|
// ==========================================
|
|
333
414
|
// CAMPAIGN OPERATIONS (Paginated)
|
|
@@ -341,6 +422,7 @@ class CampaignService {
|
|
|
341
422
|
* @param options.limit - Items per page (default: 50)
|
|
342
423
|
* @param options.sortBy - Sort field
|
|
343
424
|
* @param options.sortOrder - Sort direction
|
|
425
|
+
* @param options.include - Relations to include: 'triggerSources', 'businesses'
|
|
344
426
|
*/
|
|
345
427
|
async getCampaigns(options) {
|
|
346
428
|
return this.campaignApi.getCampaigns(options);
|
|
@@ -351,6 +433,30 @@ class CampaignService {
|
|
|
351
433
|
async getCampaignTriggers(options) {
|
|
352
434
|
return this.campaignApi.getCampaignTriggers(options);
|
|
353
435
|
}
|
|
436
|
+
/**
|
|
437
|
+
* ADMIN: Get campaign trigger by ID
|
|
438
|
+
*/
|
|
439
|
+
async getCampaignTriggerById(triggerId) {
|
|
440
|
+
return this.campaignApi.getCampaignTriggerById(triggerId);
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* ADMIN: Create campaign trigger
|
|
444
|
+
*/
|
|
445
|
+
async createCampaignTrigger(data) {
|
|
446
|
+
return this.campaignApi.createCampaignTrigger(data);
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* ADMIN: Update campaign trigger
|
|
450
|
+
*/
|
|
451
|
+
async updateCampaignTrigger(triggerId, data) {
|
|
452
|
+
return this.campaignApi.updateCampaignTrigger(triggerId, data);
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* ADMIN: Delete campaign trigger
|
|
456
|
+
*/
|
|
457
|
+
async deleteCampaignTrigger(triggerId) {
|
|
458
|
+
return this.campaignApi.deleteCampaignTrigger(triggerId);
|
|
459
|
+
}
|
|
354
460
|
/**
|
|
355
461
|
* ADMIN: Toggle campaign active status
|
|
356
462
|
*/
|
|
@@ -375,6 +481,12 @@ class CampaignService {
|
|
|
375
481
|
async setCampaignTrigger(campaignId, triggerId) {
|
|
376
482
|
return this.campaignApi.setCampaignTrigger(campaignId, triggerId);
|
|
377
483
|
}
|
|
484
|
+
/**
|
|
485
|
+
* ADMIN: Remove trigger from campaign (unassign)
|
|
486
|
+
*/
|
|
487
|
+
async removeCampaignTrigger(campaignId, triggerId) {
|
|
488
|
+
return this.campaignApi.removeCampaignTrigger(campaignId, triggerId);
|
|
489
|
+
}
|
|
378
490
|
/**
|
|
379
491
|
* ADMIN: Update campaign
|
|
380
492
|
*/
|
|
@@ -410,21 +522,45 @@ class CampaignService {
|
|
|
410
522
|
}
|
|
411
523
|
/**
|
|
412
524
|
* ADMIN: Get campaign claims with optional filters and pagination
|
|
525
|
+
* @param filters - Filter and pagination options
|
|
526
|
+
* @param include - Optional relations to include (campaign, user, business)
|
|
413
527
|
*/
|
|
414
|
-
async getCampaignClaims(filters) {
|
|
415
|
-
return this.campaignApi.getClaims(filters);
|
|
528
|
+
async getCampaignClaims(filters, include) {
|
|
529
|
+
return this.campaignApi.getClaims(filters, include);
|
|
416
530
|
}
|
|
417
531
|
/**
|
|
418
532
|
* ADMIN: Get campaign claims by user ID with pagination
|
|
533
|
+
* @param userId - User ID to filter by
|
|
534
|
+
* @param options - Pagination options
|
|
535
|
+
* @param include - Optional relations to include (campaign, user, business)
|
|
419
536
|
*/
|
|
420
|
-
async getCampaignClaimsByUserId(userId, options) {
|
|
421
|
-
return this.campaignApi.getClaims({ userId, ...options });
|
|
537
|
+
async getCampaignClaimsByUserId(userId, options, include) {
|
|
538
|
+
return this.campaignApi.getClaims({ userId, ...options }, include);
|
|
422
539
|
}
|
|
423
540
|
/**
|
|
424
541
|
* ADMIN: Get campaign claims by business ID with pagination
|
|
542
|
+
* @param businessId - Business ID to filter by
|
|
543
|
+
* @param options - Pagination options
|
|
544
|
+
* @param include - Optional relations to include (campaign, user, business)
|
|
545
|
+
*/
|
|
546
|
+
async getCampaignClaimsByBusinessId(businessId, options, include) {
|
|
547
|
+
return this.campaignApi.getClaims({ businessId, ...options }, include);
|
|
548
|
+
}
|
|
549
|
+
// ==========================================
|
|
550
|
+
// TRIGGER SOURCE ASSIGNMENT
|
|
551
|
+
// Note: TriggerSource CRUD is in TriggerSourceService
|
|
552
|
+
// ==========================================
|
|
553
|
+
/**
|
|
554
|
+
* ADMIN: Assign a trigger source to a campaign
|
|
555
|
+
*/
|
|
556
|
+
async assignTriggerSourceToCampaign(campaignId, triggerSourceId) {
|
|
557
|
+
return this.campaignApi.assignTriggerSourceToCampaign(campaignId, triggerSourceId);
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* ADMIN: Remove a trigger source from a campaign
|
|
425
561
|
*/
|
|
426
|
-
async
|
|
427
|
-
return this.campaignApi.
|
|
562
|
+
async removeTriggerSourceFromCampaign(campaignId, triggerSourceId) {
|
|
563
|
+
return this.campaignApi.removeTriggerSourceFromCampaign(campaignId, triggerSourceId);
|
|
428
564
|
}
|
|
429
565
|
}
|
|
430
566
|
|
package/dist/campaign.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"campaign.js","sources":["../src/campaign/api/campaign-api.ts","../src/campaign/services/campaign-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"campaign.js","sources":["../src/campaign/api/campaign-api.ts","../src/campaign/services/campaign-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-Agnostic Analytics API Client
|
|
3
|
+
*
|
|
4
|
+
* Handles analytics operations using the PERS backend.
|
|
5
|
+
* Uses @explorins/pers-shared DTOs for consistency with backend.
|
|
6
|
+
*/
|
|
7
|
+
class AnalyticsApi {
|
|
8
|
+
constructor(apiClient) {
|
|
9
|
+
this.apiClient = apiClient;
|
|
10
|
+
}
|
|
11
|
+
// ==========================================
|
|
12
|
+
// ADMIN OPERATIONS
|
|
13
|
+
// ==========================================
|
|
14
|
+
/**
|
|
15
|
+
* ADMIN: Get transaction analytics with filtering and aggregation
|
|
16
|
+
*/
|
|
17
|
+
async getTransactionAnalytics(request) {
|
|
18
|
+
return this.apiClient.post('/analytics/transactions', request);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* ADMIN: Get campaign claim analytics with aggregation (charts, metrics, grouping)
|
|
22
|
+
*
|
|
23
|
+
* This endpoint is for aggregated analytics only (groupBy/metrics).
|
|
24
|
+
* For enriched list data with nested objects, use campaign.getClaims() instead.
|
|
25
|
+
*
|
|
26
|
+
* @example Claims per campaign
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const response = await analyticsApi.getCampaignClaimAnalytics({
|
|
29
|
+
* filters: { status: 'COMPLETED' },
|
|
30
|
+
* groupBy: ['campaignId'],
|
|
31
|
+
* metrics: ['count'],
|
|
32
|
+
* sortBy: 'count',
|
|
33
|
+
* sortOrder: SortOrder.DESC,
|
|
34
|
+
* limit: 10
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example Claims over time by status
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const response = await analyticsApi.getCampaignClaimAnalytics({
|
|
41
|
+
* groupBy: ['month', 'status'],
|
|
42
|
+
* metrics: ['count'],
|
|
43
|
+
* sortBy: 'month',
|
|
44
|
+
* sortOrder: SortOrder.DESC,
|
|
45
|
+
* startDate: new Date('2026-01-01'),
|
|
46
|
+
* endDate: new Date('2026-12-31')
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
async getCampaignClaimAnalytics(request) {
|
|
51
|
+
return this.apiClient.post('/analytics/campaign-claims', request);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* ADMIN: Get user analytics with engagement metrics
|
|
55
|
+
*
|
|
56
|
+
* Returns aggregated user statistics including engagement rate, active users,
|
|
57
|
+
* transaction metrics, and per-active-user averages (more accurate than all-user averages).
|
|
58
|
+
*
|
|
59
|
+
* Request structure matches TransactionAnalytics and CampaignClaimAnalytics for consistency:
|
|
60
|
+
* - filters object for business-specific scoping
|
|
61
|
+
* - startDate/endDate at root level for date range filtering
|
|
62
|
+
*
|
|
63
|
+
* @param request - Analytics request with optional filters and date range
|
|
64
|
+
* @returns Aggregated user metrics with per-user and per-active-user averages
|
|
65
|
+
*
|
|
66
|
+
* @example Basic user analytics (all time, all businesses)
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const analytics = await analyticsApi.getUserAnalytics({});
|
|
69
|
+
* console.log(`Total users: ${analytics.totalUsers}`);
|
|
70
|
+
* console.log(`Active users: ${analytics.activeUsers}`);
|
|
71
|
+
* console.log(`Engagement rate: ${analytics.engagementRate}%`);
|
|
72
|
+
*
|
|
73
|
+
* // Per-user averages (includes inactive users)
|
|
74
|
+
* console.log(`Avg transactions per user: ${analytics.averageTransactionsPerUser}`);
|
|
75
|
+
*
|
|
76
|
+
* // Per-active-user averages (only engaged users - more useful!)
|
|
77
|
+
* console.log(`Avg transactions per active user: ${analytics.averageTransactionsPerActiveUser}`);
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @example Filtered by date range
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const analytics = await analyticsApi.getUserAnalytics({
|
|
83
|
+
* startDate: new Date('2026-01-01'),
|
|
84
|
+
* endDate: new Date('2026-01-31')
|
|
85
|
+
* });
|
|
86
|
+
* console.log(`January metrics:`);
|
|
87
|
+
* console.log(`Active users: ${analytics.activeUsers}`);
|
|
88
|
+
* console.log(`New users: ${analytics.newUsers}`);
|
|
89
|
+
* console.log(`Date range applied: ${analytics.metadata.dateRange?.startDate} - ${analytics.metadata.dateRange?.endDate}`);
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @example Business-specific analytics with filters
|
|
93
|
+
* ```typescript
|
|
94
|
+
* const analytics = await analyticsApi.getUserAnalytics({
|
|
95
|
+
* filters: { businessId: 'biz-123' },
|
|
96
|
+
* startDate: new Date('2026-01-01'),
|
|
97
|
+
* endDate: new Date('2026-12-31')
|
|
98
|
+
* });
|
|
99
|
+
* console.log(`Business customer engagement in 2026:`);
|
|
100
|
+
* console.log(`Active customers: ${analytics.activeUsers}`);
|
|
101
|
+
* console.log(`Avg claims per active customer: ${analytics.averageClaimsPerActiveUser.toFixed(2)}`);
|
|
102
|
+
* console.log(`Customer engagement rate: ${analytics.engagementRate.toFixed(1)}%`);
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
async getUserAnalytics(request = {}) {
|
|
106
|
+
return this.apiClient.post('/analytics/users', request);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* ADMIN: Get user transaction ranking with enriched user data
|
|
110
|
+
*
|
|
111
|
+
* Returns ranked list of users with full user details and transaction metrics.
|
|
112
|
+
* Data enrichment happens via efficient SQL JOINs + UNION (handles legacy transactions).
|
|
113
|
+
*
|
|
114
|
+
* Use Cases:
|
|
115
|
+
* - Admin leaderboards showing top users by activity
|
|
116
|
+
* - User engagement analysis with full user context
|
|
117
|
+
* - Identifying power users for campaigns
|
|
118
|
+
*
|
|
119
|
+
* @param request - Ranking request with filters, sorting, and limit
|
|
120
|
+
* @returns Ranked list with user details (email, externalUserId) and transaction metrics
|
|
121
|
+
*
|
|
122
|
+
* @example Top 50 users by transaction count
|
|
123
|
+
* ```typescript
|
|
124
|
+
* const ranking = await analyticsApi.getUserRanking({
|
|
125
|
+
* sortBy: 'totalTransactions',
|
|
126
|
+
* sortOrder: SortOrder.DESC,
|
|
127
|
+
* limit: 50
|
|
128
|
+
* });
|
|
129
|
+
*
|
|
130
|
+
* ranking.results.forEach((user, index) => {
|
|
131
|
+
* console.log(`#${index + 1}: ${user.email || user.externalUserId} - ${user.totalTransactions} transactions`);
|
|
132
|
+
* });
|
|
133
|
+
* ```
|
|
134
|
+
*
|
|
135
|
+
* @example Top users by STAMP spending
|
|
136
|
+
* ```typescript
|
|
137
|
+
* const ranking = await analyticsApi.getUserRanking({
|
|
138
|
+
* filters: { tokenType: 'STAMP' },
|
|
139
|
+
* sortBy: 'tokenSpent',
|
|
140
|
+
* sortOrder: SortOrder.DESC,
|
|
141
|
+
* limit: 20
|
|
142
|
+
* });
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* @example Business-specific leaderboard with date range
|
|
146
|
+
* ```typescript
|
|
147
|
+
* const ranking = await analyticsApi.getUserRanking({
|
|
148
|
+
* filters: {
|
|
149
|
+
* businessId: 'business-uuid-here',
|
|
150
|
+
* tokenType: 'CREDIT'
|
|
151
|
+
* },
|
|
152
|
+
* sortBy: 'totalTransactions',
|
|
153
|
+
* sortOrder: SortOrder.DESC,
|
|
154
|
+
* limit: 100,
|
|
155
|
+
* startDate: new Date('2026-01-01'),
|
|
156
|
+
* endDate: new Date('2026-12-31')
|
|
157
|
+
* });
|
|
158
|
+
* console.log(`Top ${ranking.totalUsers} users for business in 2026`);
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
async getUserRanking(request = {}) {
|
|
162
|
+
return this.apiClient.post('/analytics/users/ranking', request);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* ADMIN: Get business transaction ranking with enriched business data
|
|
166
|
+
*
|
|
167
|
+
* Returns ranked list of businesses with full business details and transaction metrics.
|
|
168
|
+
* Data enrichment happens via efficient SQL JOINs + UNION (handles legacy transactions).
|
|
169
|
+
*
|
|
170
|
+
* @param request - Ranking request with filters, sorting, and limit
|
|
171
|
+
* @returns Ranked list with business details and transaction metrics
|
|
172
|
+
*
|
|
173
|
+
* @example Top 50 businesses by transaction count
|
|
174
|
+
* ```typescript
|
|
175
|
+
* const ranking = await analyticsApi.getBusinessRanking({
|
|
176
|
+
* sortBy: 'totalTransactions',
|
|
177
|
+
* sortOrder: SortOrder.DESC,
|
|
178
|
+
* limit: 50
|
|
179
|
+
* });
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
async getBusinessRanking(request = {}) {
|
|
183
|
+
return this.apiClient.post('/analytics/businesses/ranking', request);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* ADMIN: Get monthly user retention analytics
|
|
187
|
+
*
|
|
188
|
+
* Returns monthly retention data with active/new/returning users and retention rates.
|
|
189
|
+
* Replaces 13 separate API calls with 1 efficient recursive CTE query.
|
|
190
|
+
*
|
|
191
|
+
* @param request - Retention analytics request with monthsBack and filters
|
|
192
|
+
* @returns Monthly retention data with user metrics and retention rates
|
|
193
|
+
*
|
|
194
|
+
* @example Last 13 months retention
|
|
195
|
+
* ```typescript
|
|
196
|
+
* const retention = await analyticsApi.getRetentionAnalytics({
|
|
197
|
+
* monthsBack: 13
|
|
198
|
+
* });
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
async getRetentionAnalytics(request = {}) {
|
|
202
|
+
return this.apiClient.post('/analytics/users/retention', request);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Platform-Agnostic Analytics Service
|
|
208
|
+
*
|
|
209
|
+
* Contains analytics business logic and operations that work across platforms.
|
|
210
|
+
* No framework dependencies - pure TypeScript business logic.
|
|
211
|
+
*
|
|
212
|
+
* Focuses only on actual backend capabilities.
|
|
213
|
+
*/
|
|
214
|
+
class AnalyticsService {
|
|
215
|
+
constructor(analyticsApi) {
|
|
216
|
+
this.analyticsApi = analyticsApi;
|
|
217
|
+
}
|
|
218
|
+
// ==========================================
|
|
219
|
+
// ADMIN OPERATIONS
|
|
220
|
+
// ==========================================
|
|
221
|
+
/**
|
|
222
|
+
* ADMIN: Get transaction analytics with filtering and aggregation
|
|
223
|
+
*/
|
|
224
|
+
async getTransactionAnalytics(request) {
|
|
225
|
+
return this.analyticsApi.getTransactionAnalytics(request);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* ADMIN: Get campaign claim analytics with aggregation
|
|
229
|
+
*/
|
|
230
|
+
async getCampaignClaimAnalytics(request) {
|
|
231
|
+
return this.analyticsApi.getCampaignClaimAnalytics(request);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* ADMIN: Get user analytics with engagement metrics
|
|
235
|
+
*
|
|
236
|
+
* Returns aggregated user statistics including engagement rate, active users,
|
|
237
|
+
* transaction metrics, and claims/redemption averages.
|
|
238
|
+
*/
|
|
239
|
+
async getUserAnalytics(request = {}) {
|
|
240
|
+
return this.analyticsApi.getUserAnalytics(request);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* ADMIN: Get user transaction ranking with enriched user data
|
|
244
|
+
*
|
|
245
|
+
* Returns ranked list of users with full user details (email, externalUserId)
|
|
246
|
+
* and transaction metrics. Efficient data enrichment via SQL JOINs + UNION.
|
|
247
|
+
*/
|
|
248
|
+
async getUserRanking(request = {}) {
|
|
249
|
+
return this.analyticsApi.getUserRanking(request);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* ADMIN: Get business transaction ranking with enriched business data
|
|
253
|
+
*
|
|
254
|
+
* Returns ranked list of businesses with full business details and transaction metrics.
|
|
255
|
+
*/
|
|
256
|
+
async getBusinessRanking(request = {}) {
|
|
257
|
+
return this.analyticsApi.getBusinessRanking(request);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* ADMIN: Get monthly user retention analytics
|
|
261
|
+
*
|
|
262
|
+
* Returns monthly retention data with user metrics and retention rates.
|
|
263
|
+
* Replaces 13 separate API calls with 1 efficient query.
|
|
264
|
+
*/
|
|
265
|
+
async getRetentionAnalytics(request = {}) {
|
|
266
|
+
return this.analyticsApi.getRetentionAnalytics(request);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
export { AnalyticsApi as A, AnalyticsService as a };
|
|
271
|
+
//# sourceMappingURL=analytics-service-B9IfG6ox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics-service-B9IfG6ox.js","sources":["../../src/analytics/api/analytics-api.ts","../../src/analytics/services/analytics-service.ts"],"sourcesContent":[null,null],"names":[],"mappings":"AAiBA;;;;;AAKG;MACU,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,SAAwB,EAAA;QAAxB,IAAA,CAAA,SAAS,GAAT,SAAS;IAAkB;;;;AAM/C;;AAEG;IACH,MAAM,uBAAuB,CAAC,OAAuC,EAAA;QACnE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAkC,yBAAyB,EAAE,OAAO,CAAC;IACjG;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;IACH,MAAM,yBAAyB,CAAC,OAAyC,EAAA;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAoC,4BAA4B,EAAE,OAAO,CAAC;IACtG;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDG;AACH,IAAA,MAAM,gBAAgB,CAAC,OAAA,GAAmC,EAAE,EAAA;QAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAA2B,kBAAkB,EAAE,OAAO,CAAC;IACnF;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDG;AACH,IAAA,MAAM,cAAc,CAAC,OAAA,GAA0C,EAAE,EAAA;QAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAkC,0BAA0B,EAAE,OAAO,CAAC;IAClG;AAEA;;;;;;;;;;;;;;;;;AAiBG;AACH,IAAA,MAAM,kBAAkB,CAAC,OAAA,GAA8C,EAAE,EAAA;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAsC,+BAA+B,EAAE,OAAO,CAAC;IAC3G;AAEA;;;;;;;;;;;;;;;AAeG;AACH,IAAA,MAAM,qBAAqB,CAAC,OAAA,GAAwC,EAAE,EAAA;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAgC,4BAA4B,EAAE,OAAO,CAAC;IAClG;AACD;;ACjND;;;;;;;AAOG;MACU,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAA,CAAA,YAAY,GAAZ,YAAY;IAAiB;;;;AAMjD;;AAEG;IACH,MAAM,uBAAuB,CAAC,OAAuC,EAAA;QACnE,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,OAAO,CAAC;IAC3D;AAEA;;AAEG;IACH,MAAM,yBAAyB,CAAC,OAAyC,EAAA;QACvE,OAAO,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,OAAO,CAAC;IAC7D;AAEA;;;;;AAKG;AACH,IAAA,MAAM,gBAAgB,CAAC,OAAA,GAAmC,EAAE,EAAA;QAC1D,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC;IACpD;AAEA;;;;;AAKG;AACH,IAAA,MAAM,cAAc,CAAC,OAAA,GAA0C,EAAE,EAAA;QAC/D,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC;IAClD;AAEA;;;;AAIG;AACH,IAAA,MAAM,kBAAkB,CAAC,OAAA,GAA8C,EAAE,EAAA;QACvE,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;IACtD;AAEA;;;;;AAKG;AACH,IAAA,MAAM,qBAAqB,CAAC,OAAA,GAAwC,EAAE,EAAA;QACpE,OAAO,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC;IACzD;AACD;;;;"}
|