@explorins/pers-shared 2.1.149 → 2.1.151

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/cjs/shared-lib/constants/analytics.constants.d.ts +45 -0
  2. package/dist/cjs/shared-lib/constants/analytics.constants.d.ts.map +1 -0
  3. package/dist/cjs/shared-lib/constants/analytics.constants.js +52 -0
  4. package/dist/cjs/shared-lib/constants/analytics.constants.js.map +1 -0
  5. package/dist/cjs/shared-lib/constants/index.d.ts +1 -0
  6. package/dist/cjs/shared-lib/constants/index.d.ts.map +1 -1
  7. package/dist/cjs/shared-lib/constants/index.js +1 -0
  8. package/dist/cjs/shared-lib/constants/index.js.map +1 -1
  9. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.d.ts +5 -0
  10. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.d.ts.map +1 -1
  11. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.js +40 -0
  12. package/dist/cjs/shared-lib/dto/analytics/user-analytics.dto.js.map +1 -1
  13. package/dist/esm/shared-lib/constants/analytics.constants.d.ts +45 -0
  14. package/dist/esm/shared-lib/constants/analytics.constants.d.ts.map +1 -0
  15. package/dist/esm/shared-lib/constants/analytics.constants.js +49 -0
  16. package/dist/esm/shared-lib/constants/analytics.constants.js.map +1 -0
  17. package/dist/esm/shared-lib/constants/index.d.ts +1 -0
  18. package/dist/esm/shared-lib/constants/index.d.ts.map +1 -1
  19. package/dist/esm/shared-lib/constants/index.js +1 -0
  20. package/dist/esm/shared-lib/constants/index.js.map +1 -1
  21. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.d.ts +5 -0
  22. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.d.ts.map +1 -1
  23. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.js +35 -0
  24. package/dist/esm/shared-lib/dto/analytics/user-analytics.dto.js.map +1 -1
  25. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Analytics Constants
3
+ *
4
+ * Shared definitions for consistent analytics across frontend and backend.
5
+ */
6
+ /**
7
+ * Active User Definition
8
+ *
9
+ * A user qualifies as "active" in a given period if they performed
10
+ * any of the qualifying actions during that period.
11
+ *
12
+ * @example
13
+ * // Display in UI
14
+ * `${engagementRate}% engagement. ${ACTIVE_USER_DEFINITION.description}`
15
+ *
16
+ * // Result: "25.5% engagement. Active = sent transaction, claimed, or redeemed in period"
17
+ */
18
+ export declare const ACTIVE_USER_DEFINITION: {
19
+ /** Actions that qualify a user as "active" */
20
+ readonly qualifyingActions: readonly ["TRANSACTION_SEND", "CLAIM_COMPLETED", "REDEMPTION_COMPLETED"];
21
+ /** Short description for UI display */
22
+ readonly description: "Active = sent transaction, claimed, or redeemed in period";
23
+ /** Detailed explanation for tooltips/documentation */
24
+ readonly details: {
25
+ readonly TRANSACTION_SEND: "User initiated a transaction (spending, transferring, or purchasing)";
26
+ readonly CLAIM_COMPLETED: "User successfully claimed a campaign reward";
27
+ readonly REDEMPTION_COMPLETED: "User successfully redeemed an offer";
28
+ };
29
+ /** What does NOT count as active */
30
+ readonly excluded: readonly ["Receiving tokens (passive)", "Failed or pending claims/redemptions", "System-generated transactions (REDEMPTION_RECEIVE)"];
31
+ };
32
+ /**
33
+ * Engagement rate formula
34
+ * engagementRate = (activeUsers / totalUsers) × 100
35
+ */
36
+ export declare const ENGAGEMENT_RATE_FORMULA = "activeUsers / totalUsers \u00D7 100";
37
+ /**
38
+ * Transaction statuses that count for analytics
39
+ */
40
+ export declare const ANALYTICS_VALID_TRANSACTION_STATUSES: readonly ["SUCCEEDED", "BROADCASTED"];
41
+ /**
42
+ * Process statuses that count for analytics (claims, redemptions)
43
+ */
44
+ export declare const ANALYTICS_VALID_PROCESS_STATUS: "COMPLETED";
45
+ //# sourceMappingURL=analytics.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.constants.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/constants/analytics.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB;IACjC,8CAA8C;;IAG9C,uCAAuC;;IAGvC,sDAAsD;;;;;;IAOtD,oCAAoC;;CAM5B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB,wCAAmC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,oCAAoC,uCAAwC,CAAC;AAE1F;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAG,WAAoB,CAAC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ /**
3
+ * Analytics Constants
4
+ *
5
+ * Shared definitions for consistent analytics across frontend and backend.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ANALYTICS_VALID_PROCESS_STATUS = exports.ANALYTICS_VALID_TRANSACTION_STATUSES = exports.ENGAGEMENT_RATE_FORMULA = exports.ACTIVE_USER_DEFINITION = void 0;
9
+ /**
10
+ * Active User Definition
11
+ *
12
+ * A user qualifies as "active" in a given period if they performed
13
+ * any of the qualifying actions during that period.
14
+ *
15
+ * @example
16
+ * // Display in UI
17
+ * `${engagementRate}% engagement. ${ACTIVE_USER_DEFINITION.description}`
18
+ *
19
+ * // Result: "25.5% engagement. Active = sent transaction, claimed, or redeemed in period"
20
+ */
21
+ exports.ACTIVE_USER_DEFINITION = {
22
+ /** Actions that qualify a user as "active" */
23
+ qualifyingActions: ['TRANSACTION_SEND', 'CLAIM_COMPLETED', 'REDEMPTION_COMPLETED'],
24
+ /** Short description for UI display */
25
+ description: 'Active = sent transaction, claimed, or redeemed in period',
26
+ /** Detailed explanation for tooltips/documentation */
27
+ details: {
28
+ TRANSACTION_SEND: 'User initiated a transaction (spending, transferring, or purchasing)',
29
+ CLAIM_COMPLETED: 'User successfully claimed a campaign reward',
30
+ REDEMPTION_COMPLETED: 'User successfully redeemed an offer',
31
+ },
32
+ /** What does NOT count as active */
33
+ excluded: [
34
+ 'Receiving tokens (passive)',
35
+ 'Failed or pending claims/redemptions',
36
+ 'System-generated transactions (REDEMPTION_RECEIVE)',
37
+ ],
38
+ };
39
+ /**
40
+ * Engagement rate formula
41
+ * engagementRate = (activeUsers / totalUsers) × 100
42
+ */
43
+ exports.ENGAGEMENT_RATE_FORMULA = 'activeUsers / totalUsers × 100';
44
+ /**
45
+ * Transaction statuses that count for analytics
46
+ */
47
+ exports.ANALYTICS_VALID_TRANSACTION_STATUSES = ['SUCCEEDED', 'BROADCASTED'];
48
+ /**
49
+ * Process statuses that count for analytics (claims, redemptions)
50
+ */
51
+ exports.ANALYTICS_VALID_PROCESS_STATUS = 'COMPLETED';
52
+ //# sourceMappingURL=analytics.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.constants.js","sourceRoot":"","sources":["../../../../src/shared-lib/constants/analytics.constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;;;;;;;;;GAWG;AACU,QAAA,sBAAsB,GAAG;IACpC,8CAA8C;IAC9C,iBAAiB,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;IAElF,uCAAuC;IACvC,WAAW,EAAE,2DAA2D;IAExE,sDAAsD;IACtD,OAAO,EAAE;QACP,gBAAgB,EAAE,sEAAsE;QACxF,eAAe,EAAE,6CAA6C;QAC9D,oBAAoB,EAAE,qCAAqC;KAC5D;IAED,oCAAoC;IACpC,QAAQ,EAAE;QACR,4BAA4B;QAC5B,sCAAsC;QACtC,oDAAoD;KACrD;CACO,CAAC;AAEX;;;GAGG;AACU,QAAA,uBAAuB,GAAG,gCAAgC,CAAC;AAExE;;GAEG;AACU,QAAA,oCAAoC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAU,CAAC;AAE1F;;GAEG;AACU,QAAA,8BAA8B,GAAG,WAAoB,CAAC"}
@@ -1,2 +1,3 @@
1
+ export * from './analytics.constants';
1
2
  export * from './image-cdn.constants';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -15,5 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  // Constants Barrel - Auto-exports all constants
18
+ __exportStar(require("./analytics.constants"), exports);
18
19
  __exportStar(require("./image-cdn.constants"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAAgD;AAChD,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAAgD;AAChD,wDAAsC;AACtC,wDAAsC"}
@@ -36,11 +36,16 @@ export declare class UserAnalyticsResponseDTO {
36
36
  averageTransactionsPerUser: number;
37
37
  averageTransactionAmount: number;
38
38
  totalTransactionVolume: number;
39
+ totalClaims: number;
39
40
  averageClaimsPerUser: number;
41
+ totalRedemptions: number;
40
42
  averageRedemptionsPerUser: number;
43
+ totalBurns: number;
44
+ averageBurnsPerUser: number;
41
45
  averageTransactionsPerActiveUser: number;
42
46
  averageClaimsPerActiveUser: number;
43
47
  averageRedemptionsPerActiveUser: number;
48
+ averageBurnsPerActiveUser: number;
44
49
  engagementRate: number;
45
50
  periodBreakdown?: {
46
51
  date: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D;;;;;GAKG;AACH,qBAAa,uBAAuB;IAQlC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAWlC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAQlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IAKnC,UAAU,EAAE,MAAM,CAAK;IAMvB,WAAW,EAAE,MAAM,CAAK;IAMxB,QAAQ,EAAE,MAAM,CAAK;IAMrB,0BAA0B,EAAE,MAAM,CAAK;IAMvC,wBAAwB,EAAE,MAAM,CAAK;IAMrC,sBAAsB,EAAE,MAAM,CAAK;IAMnC,oBAAoB,EAAE,MAAM,CAAK;IAMjC,yBAAyB,EAAE,MAAM,CAAK;IAMtC,gCAAgC,EAAE,MAAM,CAAK;IAM7C,0BAA0B,EAAE,MAAM,CAAK;IAMvC,+BAA+B,EAAE,MAAM,CAAK;IAO5C,cAAc,EAAE,MAAM,CAAK;IAc3B,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAiBJ,QAAQ,EAAE,qBAAqB,CAE7B;CACH"}
1
+ {"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D;;;;;GAKG;AACH,qBAAa,uBAAuB;IAQlC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAWlC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAQlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IAKnC,UAAU,EAAE,MAAM,CAAK;IAMvB,WAAW,EAAE,MAAM,CAAK;IAMxB,QAAQ,EAAE,MAAM,CAAK;IAMrB,0BAA0B,EAAE,MAAM,CAAK;IAMvC,wBAAwB,EAAE,MAAM,CAAK;IAMrC,sBAAsB,EAAE,MAAM,CAAK;IAMnC,WAAW,EAAE,MAAM,CAAK;IAMxB,oBAAoB,EAAE,MAAM,CAAK;IAMjC,gBAAgB,EAAE,MAAM,CAAK;IAM7B,yBAAyB,EAAE,MAAM,CAAK;IAMtC,UAAU,EAAE,MAAM,CAAK;IAMvB,mBAAmB,EAAE,MAAM,CAAK;IAMhC,gCAAgC,EAAE,MAAM,CAAK;IAM7C,0BAA0B,EAAE,MAAM,CAAK;IAMvC,+BAA+B,EAAE,MAAM,CAAK;IAM5C,yBAAyB,EAAE,MAAM,CAAK;IAOtC,cAAc,EAAE,MAAM,CAAK;IAc3B,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAiBJ,QAAQ,EAAE,qBAAqB,CAE7B;CACH"}
@@ -94,11 +94,16 @@ class UserAnalyticsResponseDTO {
94
94
  averageTransactionsPerUser = 0;
95
95
  averageTransactionAmount = 0;
96
96
  totalTransactionVolume = 0;
97
+ totalClaims = 0;
97
98
  averageClaimsPerUser = 0;
99
+ totalRedemptions = 0;
98
100
  averageRedemptionsPerUser = 0;
101
+ totalBurns = 0;
102
+ averageBurnsPerUser = 0;
99
103
  averageTransactionsPerActiveUser = 0;
100
104
  averageClaimsPerActiveUser = 0;
101
105
  averageRedemptionsPerActiveUser = 0;
106
+ averageBurnsPerActiveUser = 0;
102
107
  engagementRate = 0;
103
108
  periodBreakdown;
104
109
  metadata = {
@@ -148,6 +153,13 @@ __decorate([
148
153
  }),
149
154
  __metadata("design:type", Number)
150
155
  ], UserAnalyticsResponseDTO.prototype, "totalTransactionVolume", void 0);
156
+ __decorate([
157
+ (0, swagger_1.ApiProperty)({
158
+ description: 'Total completed claims in the date range. Only counts claims with status=COMPLETED.',
159
+ example: 1523
160
+ }),
161
+ __metadata("design:type", Number)
162
+ ], UserAnalyticsResponseDTO.prototype, "totalClaims", void 0);
151
163
  __decorate([
152
164
  (0, swagger_1.ApiProperty)({
153
165
  description: 'Average claims per user across entire user base (total completed claims in date range ÷ total users). Only counts claims with status=COMPLETED.',
@@ -155,6 +167,13 @@ __decorate([
155
167
  }),
156
168
  __metadata("design:type", Number)
157
169
  ], UserAnalyticsResponseDTO.prototype, "averageClaimsPerUser", void 0);
170
+ __decorate([
171
+ (0, swagger_1.ApiProperty)({
172
+ description: 'Total completed redemptions in the date range. Only counts redemptions with status=COMPLETED.',
173
+ example: 892
174
+ }),
175
+ __metadata("design:type", Number)
176
+ ], UserAnalyticsResponseDTO.prototype, "totalRedemptions", void 0);
158
177
  __decorate([
159
178
  (0, swagger_1.ApiProperty)({
160
179
  description: 'Average redemptions per user across entire user base (total completed redemptions in date range ÷ total users). Only counts redemptions with status=COMPLETED.',
@@ -162,6 +181,20 @@ __decorate([
162
181
  }),
163
182
  __metadata("design:type", Number)
164
183
  ], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerUser", void 0);
184
+ __decorate([
185
+ (0, swagger_1.ApiProperty)({
186
+ description: 'Total burn transactions in the date range. Only counts successful burn transactions (status=SUCCEEDED or BROADCASTED, type=BURN).',
187
+ example: 523
188
+ }),
189
+ __metadata("design:type", Number)
190
+ ], UserAnalyticsResponseDTO.prototype, "totalBurns", void 0);
191
+ __decorate([
192
+ (0, swagger_1.ApiProperty)({
193
+ description: 'Average burns per user across entire user base (total burns in date range ÷ total users).',
194
+ example: 0.5
195
+ }),
196
+ __metadata("design:type", Number)
197
+ ], UserAnalyticsResponseDTO.prototype, "averageBurnsPerUser", void 0);
165
198
  __decorate([
166
199
  (0, swagger_1.ApiProperty)({
167
200
  description: 'Average transactions per active user (total successful transactions in date range ÷ active users in date range). Provides more accurate engagement metric than averageTransactionsPerUser by excluding inactive users.',
@@ -183,6 +216,13 @@ __decorate([
183
216
  }),
184
217
  __metadata("design:type", Number)
185
218
  ], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerActiveUser", void 0);
219
+ __decorate([
220
+ (0, swagger_1.ApiProperty)({
221
+ description: 'Average burns per active user (total burns in date range ÷ active users in date range).',
222
+ example: 0.8
223
+ }),
224
+ __metadata("design:type", Number)
225
+ ], UserAnalyticsResponseDTO.prototype, "averageBurnsPerActiveUser", void 0);
186
226
  __decorate([
187
227
  (0, swagger_1.ApiProperty)({
188
228
  description: 'User engagement rate as percentage (activeUsers ÷ totalUsers × 100). Indicates what percentage of all registered users had activity in the date range.',
@@ -1 +1 @@
1
- {"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Analytics Constants
3
+ *
4
+ * Shared definitions for consistent analytics across frontend and backend.
5
+ */
6
+ /**
7
+ * Active User Definition
8
+ *
9
+ * A user qualifies as "active" in a given period if they performed
10
+ * any of the qualifying actions during that period.
11
+ *
12
+ * @example
13
+ * // Display in UI
14
+ * `${engagementRate}% engagement. ${ACTIVE_USER_DEFINITION.description}`
15
+ *
16
+ * // Result: "25.5% engagement. Active = sent transaction, claimed, or redeemed in period"
17
+ */
18
+ export declare const ACTIVE_USER_DEFINITION: {
19
+ /** Actions that qualify a user as "active" */
20
+ readonly qualifyingActions: readonly ["TRANSACTION_SEND", "CLAIM_COMPLETED", "REDEMPTION_COMPLETED"];
21
+ /** Short description for UI display */
22
+ readonly description: "Active = sent transaction, claimed, or redeemed in period";
23
+ /** Detailed explanation for tooltips/documentation */
24
+ readonly details: {
25
+ readonly TRANSACTION_SEND: "User initiated a transaction (spending, transferring, or purchasing)";
26
+ readonly CLAIM_COMPLETED: "User successfully claimed a campaign reward";
27
+ readonly REDEMPTION_COMPLETED: "User successfully redeemed an offer";
28
+ };
29
+ /** What does NOT count as active */
30
+ readonly excluded: readonly ["Receiving tokens (passive)", "Failed or pending claims/redemptions", "System-generated transactions (REDEMPTION_RECEIVE)"];
31
+ };
32
+ /**
33
+ * Engagement rate formula
34
+ * engagementRate = (activeUsers / totalUsers) × 100
35
+ */
36
+ export declare const ENGAGEMENT_RATE_FORMULA = "activeUsers / totalUsers \u00D7 100";
37
+ /**
38
+ * Transaction statuses that count for analytics
39
+ */
40
+ export declare const ANALYTICS_VALID_TRANSACTION_STATUSES: readonly ["SUCCEEDED", "BROADCASTED"];
41
+ /**
42
+ * Process statuses that count for analytics (claims, redemptions)
43
+ */
44
+ export declare const ANALYTICS_VALID_PROCESS_STATUS: "COMPLETED";
45
+ //# sourceMappingURL=analytics.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.constants.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/constants/analytics.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB;IACjC,8CAA8C;;IAG9C,uCAAuC;;IAGvC,sDAAsD;;;;;;IAOtD,oCAAoC;;CAM5B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB,wCAAmC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,oCAAoC,uCAAwC,CAAC;AAE1F;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAG,WAAoB,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Analytics Constants
3
+ *
4
+ * Shared definitions for consistent analytics across frontend and backend.
5
+ */
6
+ /**
7
+ * Active User Definition
8
+ *
9
+ * A user qualifies as "active" in a given period if they performed
10
+ * any of the qualifying actions during that period.
11
+ *
12
+ * @example
13
+ * // Display in UI
14
+ * `${engagementRate}% engagement. ${ACTIVE_USER_DEFINITION.description}`
15
+ *
16
+ * // Result: "25.5% engagement. Active = sent transaction, claimed, or redeemed in period"
17
+ */
18
+ export const ACTIVE_USER_DEFINITION = {
19
+ /** Actions that qualify a user as "active" */
20
+ qualifyingActions: ['TRANSACTION_SEND', 'CLAIM_COMPLETED', 'REDEMPTION_COMPLETED'],
21
+ /** Short description for UI display */
22
+ description: 'Active = sent transaction, claimed, or redeemed in period',
23
+ /** Detailed explanation for tooltips/documentation */
24
+ details: {
25
+ TRANSACTION_SEND: 'User initiated a transaction (spending, transferring, or purchasing)',
26
+ CLAIM_COMPLETED: 'User successfully claimed a campaign reward',
27
+ REDEMPTION_COMPLETED: 'User successfully redeemed an offer',
28
+ },
29
+ /** What does NOT count as active */
30
+ excluded: [
31
+ 'Receiving tokens (passive)',
32
+ 'Failed or pending claims/redemptions',
33
+ 'System-generated transactions (REDEMPTION_RECEIVE)',
34
+ ],
35
+ };
36
+ /**
37
+ * Engagement rate formula
38
+ * engagementRate = (activeUsers / totalUsers) × 100
39
+ */
40
+ export const ENGAGEMENT_RATE_FORMULA = 'activeUsers / totalUsers × 100';
41
+ /**
42
+ * Transaction statuses that count for analytics
43
+ */
44
+ export const ANALYTICS_VALID_TRANSACTION_STATUSES = ['SUCCEEDED', 'BROADCASTED'];
45
+ /**
46
+ * Process statuses that count for analytics (claims, redemptions)
47
+ */
48
+ export const ANALYTICS_VALID_PROCESS_STATUS = 'COMPLETED';
49
+ //# sourceMappingURL=analytics.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.constants.js","sourceRoot":"","sources":["../../../../src/shared-lib/constants/analytics.constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,8CAA8C;IAC9C,iBAAiB,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;IAElF,uCAAuC;IACvC,WAAW,EAAE,2DAA2D;IAExE,sDAAsD;IACtD,OAAO,EAAE;QACP,gBAAgB,EAAE,sEAAsE;QACxF,eAAe,EAAE,6CAA6C;QAC9D,oBAAoB,EAAE,qCAAqC;KAC5D;IAED,oCAAoC;IACpC,QAAQ,EAAE;QACR,4BAA4B;QAC5B,sCAAsC;QACtC,oDAAoD;KACrD;CACO,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAU,CAAC;AAE1F;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,WAAoB,CAAC"}
@@ -1,2 +1,3 @@
1
+ export * from './analytics.constants';
1
2
  export * from './image-cdn.constants';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  // Constants Barrel - Auto-exports all constants
2
+ export * from './analytics.constants.js';
2
3
  export * from './image-cdn.constants.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -36,11 +36,16 @@ export declare class UserAnalyticsResponseDTO {
36
36
  averageTransactionsPerUser: number;
37
37
  averageTransactionAmount: number;
38
38
  totalTransactionVolume: number;
39
+ totalClaims: number;
39
40
  averageClaimsPerUser: number;
41
+ totalRedemptions: number;
40
42
  averageRedemptionsPerUser: number;
43
+ totalBurns: number;
44
+ averageBurnsPerUser: number;
41
45
  averageTransactionsPerActiveUser: number;
42
46
  averageClaimsPerActiveUser: number;
43
47
  averageRedemptionsPerActiveUser: number;
48
+ averageBurnsPerActiveUser: number;
44
49
  engagementRate: number;
45
50
  periodBreakdown?: {
46
51
  date: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D;;;;;GAKG;AACH,qBAAa,uBAAuB;IAQlC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAWlC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAQlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IAKnC,UAAU,EAAE,MAAM,CAAK;IAMvB,WAAW,EAAE,MAAM,CAAK;IAMxB,QAAQ,EAAE,MAAM,CAAK;IAMrB,0BAA0B,EAAE,MAAM,CAAK;IAMvC,wBAAwB,EAAE,MAAM,CAAK;IAMrC,sBAAsB,EAAE,MAAM,CAAK;IAMnC,oBAAoB,EAAE,MAAM,CAAK;IAMjC,yBAAyB,EAAE,MAAM,CAAK;IAMtC,gCAAgC,EAAE,MAAM,CAAK;IAM7C,0BAA0B,EAAE,MAAM,CAAK;IAMvC,+BAA+B,EAAE,MAAM,CAAK;IAO5C,cAAc,EAAE,MAAM,CAAK;IAc3B,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAiBJ,QAAQ,EAAE,qBAAqB,CAE7B;CACH"}
1
+ {"version":3,"file":"user-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG7D;;;;;GAKG;AACH,qBAAa,uBAAuB;IAQlC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAWlC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAQlC,SAAS,CAAC,EAAE,IAAI,CAAC;IAQjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IAKnC,UAAU,EAAE,MAAM,CAAK;IAMvB,WAAW,EAAE,MAAM,CAAK;IAMxB,QAAQ,EAAE,MAAM,CAAK;IAMrB,0BAA0B,EAAE,MAAM,CAAK;IAMvC,wBAAwB,EAAE,MAAM,CAAK;IAMrC,sBAAsB,EAAE,MAAM,CAAK;IAMnC,WAAW,EAAE,MAAM,CAAK;IAMxB,oBAAoB,EAAE,MAAM,CAAK;IAMjC,gBAAgB,EAAE,MAAM,CAAK;IAM7B,yBAAyB,EAAE,MAAM,CAAK;IAMtC,UAAU,EAAE,MAAM,CAAK;IAMvB,mBAAmB,EAAE,MAAM,CAAK;IAMhC,gCAAgC,EAAE,MAAM,CAAK;IAM7C,0BAA0B,EAAE,MAAM,CAAK;IAMvC,+BAA+B,EAAE,MAAM,CAAK;IAM5C,yBAAyB,EAAE,MAAM,CAAK;IAOtC,cAAc,EAAE,MAAM,CAAK;IAc3B,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IAiBJ,QAAQ,EAAE,qBAAqB,CAE7B;CACH"}
@@ -82,11 +82,16 @@ export class UserAnalyticsResponseDTO {
82
82
  averageTransactionsPerUser = 0;
83
83
  averageTransactionAmount = 0;
84
84
  totalTransactionVolume = 0;
85
+ totalClaims = 0;
85
86
  averageClaimsPerUser = 0;
87
+ totalRedemptions = 0;
86
88
  averageRedemptionsPerUser = 0;
89
+ totalBurns = 0;
90
+ averageBurnsPerUser = 0;
87
91
  averageTransactionsPerActiveUser = 0;
88
92
  averageClaimsPerActiveUser = 0;
89
93
  averageRedemptionsPerActiveUser = 0;
94
+ averageBurnsPerActiveUser = 0;
90
95
  engagementRate = 0;
91
96
  periodBreakdown;
92
97
  metadata = {
@@ -129,18 +134,42 @@ __decorate([
129
134
  example: 56789.12
130
135
  })
131
136
  ], UserAnalyticsResponseDTO.prototype, "totalTransactionVolume", void 0);
137
+ __decorate([
138
+ ApiProperty({
139
+ description: 'Total completed claims in the date range. Only counts claims with status=COMPLETED.',
140
+ example: 1523
141
+ })
142
+ ], UserAnalyticsResponseDTO.prototype, "totalClaims", void 0);
132
143
  __decorate([
133
144
  ApiProperty({
134
145
  description: 'Average claims per user across entire user base (total completed claims in date range ÷ total users). Only counts claims with status=COMPLETED.',
135
146
  example: 3.2
136
147
  })
137
148
  ], UserAnalyticsResponseDTO.prototype, "averageClaimsPerUser", void 0);
149
+ __decorate([
150
+ ApiProperty({
151
+ description: 'Total completed redemptions in the date range. Only counts redemptions with status=COMPLETED.',
152
+ example: 892
153
+ })
154
+ ], UserAnalyticsResponseDTO.prototype, "totalRedemptions", void 0);
138
155
  __decorate([
139
156
  ApiProperty({
140
157
  description: 'Average redemptions per user across entire user base (total completed redemptions in date range ÷ total users). Only counts redemptions with status=COMPLETED.',
141
158
  example: 1.8
142
159
  })
143
160
  ], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerUser", void 0);
161
+ __decorate([
162
+ ApiProperty({
163
+ description: 'Total burn transactions in the date range. Only counts successful burn transactions (status=SUCCEEDED or BROADCASTED, type=BURN).',
164
+ example: 523
165
+ })
166
+ ], UserAnalyticsResponseDTO.prototype, "totalBurns", void 0);
167
+ __decorate([
168
+ ApiProperty({
169
+ description: 'Average burns per user across entire user base (total burns in date range ÷ total users).',
170
+ example: 0.5
171
+ })
172
+ ], UserAnalyticsResponseDTO.prototype, "averageBurnsPerUser", void 0);
144
173
  __decorate([
145
174
  ApiProperty({
146
175
  description: 'Average transactions per active user (total successful transactions in date range ÷ active users in date range). Provides more accurate engagement metric than averageTransactionsPerUser by excluding inactive users.',
@@ -159,6 +188,12 @@ __decorate([
159
188
  example: 2.1
160
189
  })
161
190
  ], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerActiveUser", void 0);
191
+ __decorate([
192
+ ApiProperty({
193
+ description: 'Average burns per active user (total burns in date range ÷ active users in date range).',
194
+ example: 0.8
195
+ })
196
+ ], UserAnalyticsResponseDTO.prototype, "averageBurnsPerActiveUser", void 0);
162
197
  __decorate([
163
198
  ApiProperty({
164
199
  description: 'User engagement rate as percentage (activeUsers ÷ totalUsers × 100). Indicates what percentage of all registered users had activity in the date range.',
@@ -1 +1 @@
1
- {"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/user-analytics.dto.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorins/pers-shared",
3
- "version": "2.1.149",
3
+ "version": "2.1.151",
4
4
  "scripts": {
5
5
  "clean": "find dist -type f -delete 2>/dev/null || true",
6
6
  "build:esm": "tsc -p tsconfig.esm.json && node scripts/add-js-extensions.js",