@explorins/pers-shared 2.1.149 → 2.1.150

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 +3 -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 +24 -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 +3 -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 +21 -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"}
@@ -38,9 +38,12 @@ export declare class UserAnalyticsResponseDTO {
38
38
  totalTransactionVolume: number;
39
39
  averageClaimsPerUser: number;
40
40
  averageRedemptionsPerUser: number;
41
+ totalBurns: number;
42
+ averageBurnsPerUser: number;
41
43
  averageTransactionsPerActiveUser: number;
42
44
  averageClaimsPerActiveUser: number;
43
45
  averageRedemptionsPerActiveUser: number;
46
+ averageBurnsPerActiveUser: number;
44
47
  engagementRate: number;
45
48
  periodBreakdown?: {
46
49
  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,oBAAoB,EAAE,MAAM,CAAK;IAMjC,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"}
@@ -96,9 +96,12 @@ class UserAnalyticsResponseDTO {
96
96
  totalTransactionVolume = 0;
97
97
  averageClaimsPerUser = 0;
98
98
  averageRedemptionsPerUser = 0;
99
+ totalBurns = 0;
100
+ averageBurnsPerUser = 0;
99
101
  averageTransactionsPerActiveUser = 0;
100
102
  averageClaimsPerActiveUser = 0;
101
103
  averageRedemptionsPerActiveUser = 0;
104
+ averageBurnsPerActiveUser = 0;
102
105
  engagementRate = 0;
103
106
  periodBreakdown;
104
107
  metadata = {
@@ -162,6 +165,20 @@ __decorate([
162
165
  }),
163
166
  __metadata("design:type", Number)
164
167
  ], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerUser", void 0);
168
+ __decorate([
169
+ (0, swagger_1.ApiProperty)({
170
+ description: 'Total burn transactions in the date range. Only counts successful burn transactions (status=SUCCEEDED or BROADCASTED, type=BURN).',
171
+ example: 523
172
+ }),
173
+ __metadata("design:type", Number)
174
+ ], UserAnalyticsResponseDTO.prototype, "totalBurns", void 0);
175
+ __decorate([
176
+ (0, swagger_1.ApiProperty)({
177
+ description: 'Average burns per user across entire user base (total burns in date range ÷ total users).',
178
+ example: 0.5
179
+ }),
180
+ __metadata("design:type", Number)
181
+ ], UserAnalyticsResponseDTO.prototype, "averageBurnsPerUser", void 0);
165
182
  __decorate([
166
183
  (0, swagger_1.ApiProperty)({
167
184
  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 +200,13 @@ __decorate([
183
200
  }),
184
201
  __metadata("design:type", Number)
185
202
  ], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerActiveUser", void 0);
203
+ __decorate([
204
+ (0, swagger_1.ApiProperty)({
205
+ description: 'Average burns per active user (total burns in date range ÷ active users in date range).',
206
+ example: 0.8
207
+ }),
208
+ __metadata("design:type", Number)
209
+ ], UserAnalyticsResponseDTO.prototype, "averageBurnsPerActiveUser", void 0);
186
210
  __decorate([
187
211
  (0, swagger_1.ApiProperty)({
188
212
  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"}
@@ -38,9 +38,12 @@ export declare class UserAnalyticsResponseDTO {
38
38
  totalTransactionVolume: number;
39
39
  averageClaimsPerUser: number;
40
40
  averageRedemptionsPerUser: number;
41
+ totalBurns: number;
42
+ averageBurnsPerUser: number;
41
43
  averageTransactionsPerActiveUser: number;
42
44
  averageClaimsPerActiveUser: number;
43
45
  averageRedemptionsPerActiveUser: number;
46
+ averageBurnsPerActiveUser: number;
44
47
  engagementRate: number;
45
48
  periodBreakdown?: {
46
49
  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,oBAAoB,EAAE,MAAM,CAAK;IAMjC,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"}
@@ -84,9 +84,12 @@ export class UserAnalyticsResponseDTO {
84
84
  totalTransactionVolume = 0;
85
85
  averageClaimsPerUser = 0;
86
86
  averageRedemptionsPerUser = 0;
87
+ totalBurns = 0;
88
+ averageBurnsPerUser = 0;
87
89
  averageTransactionsPerActiveUser = 0;
88
90
  averageClaimsPerActiveUser = 0;
89
91
  averageRedemptionsPerActiveUser = 0;
92
+ averageBurnsPerActiveUser = 0;
90
93
  engagementRate = 0;
91
94
  periodBreakdown;
92
95
  metadata = {
@@ -141,6 +144,18 @@ __decorate([
141
144
  example: 1.8
142
145
  })
143
146
  ], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerUser", void 0);
147
+ __decorate([
148
+ ApiProperty({
149
+ description: 'Total burn transactions in the date range. Only counts successful burn transactions (status=SUCCEEDED or BROADCASTED, type=BURN).',
150
+ example: 523
151
+ })
152
+ ], UserAnalyticsResponseDTO.prototype, "totalBurns", void 0);
153
+ __decorate([
154
+ ApiProperty({
155
+ description: 'Average burns per user across entire user base (total burns in date range ÷ total users).',
156
+ example: 0.5
157
+ })
158
+ ], UserAnalyticsResponseDTO.prototype, "averageBurnsPerUser", void 0);
144
159
  __decorate([
145
160
  ApiProperty({
146
161
  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 +174,12 @@ __decorate([
159
174
  example: 2.1
160
175
  })
161
176
  ], UserAnalyticsResponseDTO.prototype, "averageRedemptionsPerActiveUser", void 0);
177
+ __decorate([
178
+ ApiProperty({
179
+ description: 'Average burns per active user (total burns in date range ÷ active users in date range).',
180
+ example: 0.8
181
+ })
182
+ ], UserAnalyticsResponseDTO.prototype, "averageBurnsPerActiveUser", void 0);
162
183
  __decorate([
163
184
  ApiProperty({
164
185
  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.150",
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",