@explorins/pers-shared 2.1.85 → 2.1.86

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.
@@ -25,15 +25,26 @@ export declare class RetentionAnalyticsRequestDTO {
25
25
  monthsBack?: number;
26
26
  filters?: RetentionAnalyticsFiltersDTO;
27
27
  }
28
+ /**
29
+ * Retention data for a month offset within a cohort
30
+ * Tracks how many users from the original cohort are still active
31
+ */
32
+ export declare class CohortRetentionMonthDTO {
33
+ retainedUsers: number;
34
+ retentionRate: number;
35
+ }
36
+ /**
37
+ * Cohort retention result for a single month
38
+ * Contains the cohort (new users in month) and their retention over subsequent months
39
+ */
28
40
  export declare class RetentionMonthResultDTO {
29
41
  monthKey: string;
30
42
  startDate: Date;
31
43
  endDate: Date;
32
- activeUsers: number;
33
- newUsers: number;
34
- returningUsers: number;
35
- retentionRate: number;
36
- transactionCount: number;
44
+ cohortSize: number;
45
+ monthlyRetention: {
46
+ [monthOffset: string]: CohortRetentionMonthDTO;
47
+ };
37
48
  byTriggerType?: {
38
49
  [key: string]: {
39
50
  count: number;
@@ -1 +1 @@
1
- {"version":3,"file":"retention-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/retention-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AAIH,qBAAa,4BAA4B;IAQvC,SAAS,CAAC,EAAE,eAAe,CAAC;IAQ5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,qBAAa,4BAA4B;IAOvC,UAAU,CAAC,EAAE,IAAI,CAAC;IAalB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACxC;AAID,qBAAa,uBAAuB;IAKlC,QAAQ,EAAG,MAAM,CAAC;IAMlB,SAAS,EAAG,IAAI,CAAC;IAMjB,OAAO,EAAG,IAAI,CAAC;IAMf,WAAW,EAAG,MAAM,CAAC;IAMrB,QAAQ,EAAG,MAAM,CAAC;IAMlB,cAAc,EAAG,MAAM,CAAC;IAMxB,aAAa,EAAG,MAAM,CAAC;IAMvB,gBAAgB,EAAG,MAAM,CAAC;IAS1B,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAID,qBAAa,6BAA6B;IAKxC,OAAO,EAAG,uBAAuB,EAAE,CAAC;IAMpC,WAAW,EAAG,MAAM,CAAC;IAMrB,QAAQ,EAAG,qBAAqB,GAAG;QACjC;;WAEG;QACH,iBAAiB,EAAE,gBAAgB,CAAC;KACrC,CAAC;CACH"}
1
+ {"version":3,"file":"retention-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/retention-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AAIH,qBAAa,4BAA4B;IAQvC,SAAS,CAAC,EAAE,eAAe,CAAC;IAQ5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,qBAAa,4BAA4B;IAOvC,UAAU,CAAC,EAAE,IAAI,CAAC;IAalB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACxC;AAID;;;GAGG;AACH,qBAAa,uBAAuB;IAKlC,aAAa,EAAG,MAAM,CAAC;IAMvB,aAAa,EAAG,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAKlC,QAAQ,EAAG,MAAM,CAAC;IAMlB,SAAS,EAAG,IAAI,CAAC;IAMjB,OAAO,EAAG,IAAI,CAAC;IAMf,UAAU,EAAG,MAAM,CAAC;IAWpB,gBAAgB,EAAG;QACjB,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAAC;KAChD,CAAC;IASF,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAID,qBAAa,6BAA6B;IAKxC,OAAO,EAAG,uBAAuB,EAAE,CAAC;IAMpC,WAAW,EAAG,MAAM,CAAC;IAMrB,QAAQ,EAAG,qBAAqB,GAAG;QACjC;;WAEG;QACH,iBAAiB,EAAE,gBAAgB,CAAC;KACrC,CAAC;CACH"}
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RetentionAnalyticsResponseDTO = exports.RetentionMonthResultDTO = exports.RetentionAnalyticsRequestDTO = exports.RetentionAnalyticsFiltersDTO = void 0;
12
+ exports.RetentionAnalyticsResponseDTO = exports.RetentionMonthResultDTO = exports.CohortRetentionMonthDTO = exports.RetentionAnalyticsRequestDTO = exports.RetentionAnalyticsFiltersDTO = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const swagger_1 = require("@nestjs/swagger");
@@ -96,15 +96,39 @@ __decorate([
96
96
  __metadata("design:type", RetentionAnalyticsFiltersDTO)
97
97
  ], RetentionAnalyticsRequestDTO.prototype, "filters", void 0);
98
98
  // ========== MONTH RESULT ==========
99
+ /**
100
+ * Retention data for a month offset within a cohort
101
+ * Tracks how many users from the original cohort are still active
102
+ */
103
+ class CohortRetentionMonthDTO {
104
+ retainedUsers;
105
+ retentionRate;
106
+ }
107
+ exports.CohortRetentionMonthDTO = CohortRetentionMonthDTO;
108
+ __decorate([
109
+ (0, swagger_1.ApiProperty)({
110
+ description: 'Number of users from original cohort still active in this month offset',
111
+ example: 85
112
+ }),
113
+ __metadata("design:type", Number)
114
+ ], CohortRetentionMonthDTO.prototype, "retainedUsers", void 0);
115
+ __decorate([
116
+ (0, swagger_1.ApiProperty)({
117
+ description: 'Retention rate: (retainedUsers / cohortSize) * 100',
118
+ example: 70.8
119
+ }),
120
+ __metadata("design:type", Number)
121
+ ], CohortRetentionMonthDTO.prototype, "retentionRate", void 0);
122
+ /**
123
+ * Cohort retention result for a single month
124
+ * Contains the cohort (new users in month) and their retention over subsequent months
125
+ */
99
126
  class RetentionMonthResultDTO {
100
127
  monthKey;
101
128
  startDate;
102
129
  endDate;
103
- activeUsers;
104
- newUsers;
105
- returningUsers;
106
- retentionRate;
107
- transactionCount;
130
+ cohortSize;
131
+ monthlyRetention;
108
132
  byTriggerType;
109
133
  }
110
134
  exports.RetentionMonthResultDTO = RetentionMonthResultDTO;
@@ -131,39 +155,23 @@ __decorate([
131
155
  ], RetentionMonthResultDTO.prototype, "endDate", void 0);
132
156
  __decorate([
133
157
  (0, swagger_1.ApiProperty)({
134
- description: 'Total number of users who made transactions in this month',
135
- example: 450
136
- }),
137
- __metadata("design:type", Number)
138
- ], RetentionMonthResultDTO.prototype, "activeUsers", void 0);
139
- __decorate([
140
- (0, swagger_1.ApiProperty)({
141
- description: 'Number of users making their first transaction ever',
158
+ description: 'Number of users who made their first transaction in this month (cohort size)',
142
159
  example: 120
143
160
  }),
144
161
  __metadata("design:type", Number)
145
- ], RetentionMonthResultDTO.prototype, "newUsers", void 0);
146
- __decorate([
147
- (0, swagger_1.ApiProperty)({
148
- description: 'Number of users who were active in previous month and returned',
149
- example: 330
150
- }),
151
- __metadata("design:type", Number)
152
- ], RetentionMonthResultDTO.prototype, "returningUsers", void 0);
162
+ ], RetentionMonthResultDTO.prototype, "cohortSize", void 0);
153
163
  __decorate([
154
164
  (0, swagger_1.ApiProperty)({
155
- description: 'Retention rate: (returningUsers / previousMonth.activeUsers) * 100',
156
- example: 73.3
157
- }),
158
- __metadata("design:type", Number)
159
- ], RetentionMonthResultDTO.prototype, "retentionRate", void 0);
160
- __decorate([
161
- (0, swagger_1.ApiProperty)({
162
- description: 'Total number of transactions in this month',
163
- example: 1250
165
+ description: 'Retention data for this cohort over subsequent months. Key is month offset (0=same month, 1=next month, 2=2 months later, etc.)',
166
+ type: 'object',
167
+ example: {
168
+ '0': { retainedUsers: 120, retentionRate: 100 },
169
+ '1': { retainedUsers: 85, retentionRate: 70.8 },
170
+ '2': { retainedUsers: 65, retentionRate: 54.2 }
171
+ }
164
172
  }),
165
- __metadata("design:type", Number)
166
- ], RetentionMonthResultDTO.prototype, "transactionCount", void 0);
173
+ __metadata("design:type", Object)
174
+ ], RetentionMonthResultDTO.prototype, "monthlyRetention", void 0);
167
175
  __decorate([
168
176
  (0, swagger_1.ApiPropertyOptional)({
169
177
  description: 'Breakdown of transactions by trigger type',
@@ -1 +1 @@
1
- {"version":3,"file":"retention-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/retention-analytics.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/retention-analytics.dto.ts"],"names":[],"mappings":"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"}
@@ -25,15 +25,26 @@ export declare class RetentionAnalyticsRequestDTO {
25
25
  monthsBack?: number;
26
26
  filters?: RetentionAnalyticsFiltersDTO;
27
27
  }
28
+ /**
29
+ * Retention data for a month offset within a cohort
30
+ * Tracks how many users from the original cohort are still active
31
+ */
32
+ export declare class CohortRetentionMonthDTO {
33
+ retainedUsers: number;
34
+ retentionRate: number;
35
+ }
36
+ /**
37
+ * Cohort retention result for a single month
38
+ * Contains the cohort (new users in month) and their retention over subsequent months
39
+ */
28
40
  export declare class RetentionMonthResultDTO {
29
41
  monthKey: string;
30
42
  startDate: Date;
31
43
  endDate: Date;
32
- activeUsers: number;
33
- newUsers: number;
34
- returningUsers: number;
35
- retentionRate: number;
36
- transactionCount: number;
44
+ cohortSize: number;
45
+ monthlyRetention: {
46
+ [monthOffset: string]: CohortRetentionMonthDTO;
47
+ };
37
48
  byTriggerType?: {
38
49
  [key: string]: {
39
50
  count: number;
@@ -1 +1 @@
1
- {"version":3,"file":"retention-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/retention-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AAIH,qBAAa,4BAA4B;IAQvC,SAAS,CAAC,EAAE,eAAe,CAAC;IAQ5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,qBAAa,4BAA4B;IAOvC,UAAU,CAAC,EAAE,IAAI,CAAC;IAalB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACxC;AAID,qBAAa,uBAAuB;IAKlC,QAAQ,EAAG,MAAM,CAAC;IAMlB,SAAS,EAAG,IAAI,CAAC;IAMjB,OAAO,EAAG,IAAI,CAAC;IAMf,WAAW,EAAG,MAAM,CAAC;IAMrB,QAAQ,EAAG,MAAM,CAAC;IAMlB,cAAc,EAAG,MAAM,CAAC;IAMxB,aAAa,EAAG,MAAM,CAAC;IAMvB,gBAAgB,EAAG,MAAM,CAAC;IAS1B,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAID,qBAAa,6BAA6B;IAKxC,OAAO,EAAG,uBAAuB,EAAE,CAAC;IAMpC,WAAW,EAAG,MAAM,CAAC;IAMrB,QAAQ,EAAG,qBAAqB,GAAG;QACjC;;WAEG;QACH,iBAAiB,EAAE,gBAAgB,CAAC;KACrC,CAAC;CACH"}
1
+ {"version":3,"file":"retention-analytics.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/retention-analytics.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;;GAeG;AAIH,qBAAa,4BAA4B;IAQvC,SAAS,CAAC,EAAE,eAAe,CAAC;IAQ5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAID,qBAAa,4BAA4B;IAOvC,UAAU,CAAC,EAAE,IAAI,CAAC;IAalB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,OAAO,CAAC,EAAE,4BAA4B,CAAC;CACxC;AAID;;;GAGG;AACH,qBAAa,uBAAuB;IAKlC,aAAa,EAAG,MAAM,CAAC;IAMvB,aAAa,EAAG,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,uBAAuB;IAKlC,QAAQ,EAAG,MAAM,CAAC;IAMlB,SAAS,EAAG,IAAI,CAAC;IAMjB,OAAO,EAAG,IAAI,CAAC;IAMf,UAAU,EAAG,MAAM,CAAC;IAWpB,gBAAgB,EAAG;QACjB,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAAC;KAChD,CAAC;IASF,aAAa,CAAC,EAAE;QACd,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH;AAID,qBAAa,6BAA6B;IAKxC,OAAO,EAAG,uBAAuB,EAAE,CAAC;IAMpC,WAAW,EAAG,MAAM,CAAC;IAMrB,QAAQ,EAAG,qBAAqB,GAAG;QACjC;;WAEG;QACH,iBAAiB,EAAE,gBAAgB,CAAC;KACrC,CAAC;CACH"}
@@ -83,15 +83,36 @@ __decorate([
83
83
  Type(() => RetentionAnalyticsFiltersDTO)
84
84
  ], RetentionAnalyticsRequestDTO.prototype, "filters", void 0);
85
85
  // ========== MONTH RESULT ==========
86
+ /**
87
+ * Retention data for a month offset within a cohort
88
+ * Tracks how many users from the original cohort are still active
89
+ */
90
+ export class CohortRetentionMonthDTO {
91
+ retainedUsers;
92
+ retentionRate;
93
+ }
94
+ __decorate([
95
+ ApiProperty({
96
+ description: 'Number of users from original cohort still active in this month offset',
97
+ example: 85
98
+ })
99
+ ], CohortRetentionMonthDTO.prototype, "retainedUsers", void 0);
100
+ __decorate([
101
+ ApiProperty({
102
+ description: 'Retention rate: (retainedUsers / cohortSize) * 100',
103
+ example: 70.8
104
+ })
105
+ ], CohortRetentionMonthDTO.prototype, "retentionRate", void 0);
106
+ /**
107
+ * Cohort retention result for a single month
108
+ * Contains the cohort (new users in month) and their retention over subsequent months
109
+ */
86
110
  export class RetentionMonthResultDTO {
87
111
  monthKey;
88
112
  startDate;
89
113
  endDate;
90
- activeUsers;
91
- newUsers;
92
- returningUsers;
93
- retentionRate;
94
- transactionCount;
114
+ cohortSize;
115
+ monthlyRetention;
95
116
  byTriggerType;
96
117
  }
97
118
  __decorate([
@@ -114,34 +135,21 @@ __decorate([
114
135
  ], RetentionMonthResultDTO.prototype, "endDate", void 0);
115
136
  __decorate([
116
137
  ApiProperty({
117
- description: 'Total number of users who made transactions in this month',
118
- example: 450
119
- })
120
- ], RetentionMonthResultDTO.prototype, "activeUsers", void 0);
121
- __decorate([
122
- ApiProperty({
123
- description: 'Number of users making their first transaction ever',
138
+ description: 'Number of users who made their first transaction in this month (cohort size)',
124
139
  example: 120
125
140
  })
126
- ], RetentionMonthResultDTO.prototype, "newUsers", void 0);
127
- __decorate([
128
- ApiProperty({
129
- description: 'Number of users who were active in previous month and returned',
130
- example: 330
131
- })
132
- ], RetentionMonthResultDTO.prototype, "returningUsers", void 0);
133
- __decorate([
134
- ApiProperty({
135
- description: 'Retention rate: (returningUsers / previousMonth.activeUsers) * 100',
136
- example: 73.3
137
- })
138
- ], RetentionMonthResultDTO.prototype, "retentionRate", void 0);
141
+ ], RetentionMonthResultDTO.prototype, "cohortSize", void 0);
139
142
  __decorate([
140
143
  ApiProperty({
141
- description: 'Total number of transactions in this month',
142
- example: 1250
144
+ description: 'Retention data for this cohort over subsequent months. Key is month offset (0=same month, 1=next month, 2=2 months later, etc.)',
145
+ type: 'object',
146
+ example: {
147
+ '0': { retainedUsers: 120, retentionRate: 100 },
148
+ '1': { retainedUsers: 85, retentionRate: 70.8 },
149
+ '2': { retainedUsers: 65, retentionRate: 54.2 }
150
+ }
143
151
  })
144
- ], RetentionMonthResultDTO.prototype, "transactionCount", void 0);
152
+ ], RetentionMonthResultDTO.prototype, "monthlyRetention", void 0);
145
153
  __decorate([
146
154
  ApiPropertyOptional({
147
155
  description: 'Breakdown of transactions by trigger type',
@@ -1 +1 @@
1
- {"version":3,"file":"retention-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/retention-analytics.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention-analytics.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/analytics/retention-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.85",
3
+ "version": "2.1.86",
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",