@uptime.app/contracts 1.0.41-rc.1 → 1.0.41-rc.2

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 (46) hide show
  1. package/dist/cjs/history/history-events.d.ts +18 -0
  2. package/dist/cjs/history/history-events.d.ts.map +1 -0
  3. package/dist/cjs/history/history-events.js +3 -0
  4. package/dist/cjs/history/history-events.js.map +1 -0
  5. package/dist/cjs/history/history.d.ts +43 -0
  6. package/dist/cjs/history/history.d.ts.map +1 -0
  7. package/dist/cjs/history/history.js +3 -0
  8. package/dist/cjs/history/history.js.map +1 -0
  9. package/dist/cjs/index.d.ts +4 -0
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js +4 -0
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/user-statistics/user-statistics-events.d.ts +82 -0
  14. package/dist/cjs/user-statistics/user-statistics-events.d.ts.map +1 -0
  15. package/dist/cjs/user-statistics/user-statistics-events.js +3 -0
  16. package/dist/cjs/user-statistics/user-statistics-events.js.map +1 -0
  17. package/dist/cjs/user-statistics/user-statistics.d.ts +75 -0
  18. package/dist/cjs/user-statistics/user-statistics.d.ts.map +1 -0
  19. package/dist/cjs/user-statistics/user-statistics.js +3 -0
  20. package/dist/cjs/user-statistics/user-statistics.js.map +1 -0
  21. package/dist/esm/history/history-events.d.ts +18 -0
  22. package/dist/esm/history/history-events.d.ts.map +1 -0
  23. package/dist/esm/history/history-events.js +2 -0
  24. package/dist/esm/history/history-events.js.map +1 -0
  25. package/dist/esm/history/history.d.ts +43 -0
  26. package/dist/esm/history/history.d.ts.map +1 -0
  27. package/dist/esm/history/history.js +2 -0
  28. package/dist/esm/history/history.js.map +1 -0
  29. package/dist/esm/index.d.ts +4 -0
  30. package/dist/esm/index.d.ts.map +1 -1
  31. package/dist/esm/index.js +4 -0
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/user-statistics/user-statistics-events.d.ts +82 -0
  34. package/dist/esm/user-statistics/user-statistics-events.d.ts.map +1 -0
  35. package/dist/esm/user-statistics/user-statistics-events.js +2 -0
  36. package/dist/esm/user-statistics/user-statistics-events.js.map +1 -0
  37. package/dist/esm/user-statistics/user-statistics.d.ts +75 -0
  38. package/dist/esm/user-statistics/user-statistics.d.ts.map +1 -0
  39. package/dist/esm/user-statistics/user-statistics.js +2 -0
  40. package/dist/esm/user-statistics/user-statistics.js.map +1 -0
  41. package/package.json +2 -2
  42. package/src/history/history-events.ts +21 -0
  43. package/src/history/history.ts +46 -0
  44. package/src/index.ts +6 -0
  45. package/src/user-statistics/user-statistics-events.ts +97 -0
  46. package/src/user-statistics/user-statistics.ts +83 -0
@@ -0,0 +1,18 @@
1
+ import { HackProgress } from './history';
2
+ export interface HackProgressCreatedEvent {
3
+ id: string;
4
+ type: 'HackProgressCreated';
5
+ payload: HackProgress;
6
+ }
7
+ export interface HackProgressUpdatedEvent {
8
+ id: string;
9
+ type: 'HackProgressUpdated';
10
+ payload: HackProgress;
11
+ }
12
+ export interface HackProgressDeletedEvent {
13
+ id: string;
14
+ type: 'HackProgressDeleted';
15
+ payload: HackProgress;
16
+ }
17
+ export type HackProgressChangedEvent = HackProgressCreatedEvent | HackProgressUpdatedEvent | HackProgressDeletedEvent;
18
+ //# sourceMappingURL=history-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-events.d.ts","sourceRoot":"","sources":["../../../src/history/history-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=history-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-events.js","sourceRoot":"","sources":["../../../src/history/history-events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ export interface ResumeStoryPlayer {
2
+ /** the format the user chose to consume the hack */
3
+ format: 'story';
4
+ /** where to resume from in the segment's array of cards */
5
+ fromCardIndex: number;
6
+ }
7
+ export interface ResumeAudioPlayer {
8
+ /** the format the user chose to consume the hack */
9
+ format: 'audio';
10
+ /** the timestamp in seconds that the audio player should resume from */
11
+ audioPlayerFromTimestamp: number;
12
+ /** where to resume from in the segment's array of cards */
13
+ fromCardIndex?: number;
14
+ }
15
+ export interface ResumeTextReader {
16
+ /** the format the user chose to consume the hack */
17
+ format: 'text';
18
+ /** the timestamp in seconds that the audio player should resume from
19
+ * if the user had audio playing in the background while reading */
20
+ audioPlayerFromTimestamp?: number;
21
+ /** where to resume from in the segment's array of cards */
22
+ fromCardIndex?: number;
23
+ }
24
+ export interface HackProgressDTO {
25
+ /** the hack the user has been viewing */
26
+ hackId: string;
27
+ /** the segment to resume from */
28
+ segmentId: string;
29
+ /** the ISO 8601 date and time when the user last viewed the hack */
30
+ lastViewedAt: string;
31
+ /** used to render the hack progress bar on the client */
32
+ percentageComplete: number;
33
+ /** the format the hack will be resumed in */
34
+ resume: ResumeStoryPlayer | ResumeAudioPlayer | ResumeTextReader;
35
+ }
36
+ export interface HackProgress extends HackProgressDTO {
37
+ id: string;
38
+ createdAt: string;
39
+ updatedAt: string;
40
+ v: number;
41
+ userId: string;
42
+ }
43
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/history/history.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAC9B,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,wBAAwB,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf;wEACoE;IACpE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;CACpE;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/history/history.ts"],"names":[],"mappings":""}
@@ -42,6 +42,8 @@ export * from './hack-metadata/hack-metadata';
42
42
  export * from './hack-metadata/hack-metadata-events';
43
43
  export * from './hack-of-the-day/hack-of-the-day';
44
44
  export * from './hack-of-the-day/hack-of-the-day-events';
45
+ export * from './history/history';
46
+ export * from './history/history-events';
45
47
  export * from './knowledge-source/knowledge-source';
46
48
  export * from './knowledge-source/knowledge-source-events';
47
49
  export * from './localisation/live-locales';
@@ -90,4 +92,6 @@ export * from './user-context/user-context';
90
92
  export * from './user-context/user-context-events';
91
93
  export * from './user-notification-context/user-notification-context';
92
94
  export * from './user-notification-context/user-notification-context-events';
95
+ export * from './user-statistics/user-statistics';
96
+ export * from './user-statistics/user-statistics-events';
93
97
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -58,6 +58,8 @@ __exportStar(require("./hack-metadata/hack-metadata"), exports);
58
58
  __exportStar(require("./hack-metadata/hack-metadata-events"), exports);
59
59
  __exportStar(require("./hack-of-the-day/hack-of-the-day"), exports);
60
60
  __exportStar(require("./hack-of-the-day/hack-of-the-day-events"), exports);
61
+ __exportStar(require("./history/history"), exports);
62
+ __exportStar(require("./history/history-events"), exports);
61
63
  __exportStar(require("./knowledge-source/knowledge-source"), exports);
62
64
  __exportStar(require("./knowledge-source/knowledge-source-events"), exports);
63
65
  __exportStar(require("./localisation/live-locales"), exports);
@@ -106,4 +108,6 @@ __exportStar(require("./user-context/user-context"), exports);
106
108
  __exportStar(require("./user-context/user-context-events"), exports);
107
109
  __exportStar(require("./user-notification-context/user-notification-context"), exports);
108
110
  __exportStar(require("./user-notification-context/user-notification-context-events"), exports);
111
+ __exportStar(require("./user-statistics/user-statistics"), exports);
112
+ __exportStar(require("./user-statistics/user-statistics-events"), exports);
109
113
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6EAA2D;AAC3D,uEAAqD;AAErD,2DAAyC;AACzC,+DAA6C;AAC7C,iEAA+C;AAE/C,0EAAwD;AAExD,sEAAoD;AACpD,6EAA2D;AAE3D,6EAA2D;AAC3D,oFAAkE;AAElE,kEAAgD;AAChD,iFAA+D;AAE/D,gDAA8B;AAC9B,uDAAqC;AAErC,wDAAsC;AAEtC,0DAAwC;AACxC,iEAA+C;AAC/C,mEAAiD;AACjD,0EAAwD;AAExD,oDAAkC;AAClC,2DAAyC;AAEzC,qEAAmD;AACnD,mEAAiD;AACjD,yEAAuD;AAEvD,0DAAwC;AACxC,iEAA+C;AAE/C,gFAA8D;AAC9D,uFAAqE;AAErE,gEAA8C;AAC9C,uEAAqD;AAErD,kEAAgD;AAChD,yEAAuD;AACvD,2EAAyD;AAEzD,2DAAyC;AACzC,qDAAmC;AACnC,wDAAsC;AACtC,yDAAuC;AACvC,gEAA8C;AAC9C,8CAA4B;AAC5B,8DAA4C;AAE5C,gEAA8C;AAC9C,uEAAqD;AAErD,oEAAkD;AAClD,2EAAyD;AAEzD,sEAAoD;AACpD,6EAA2D;AAE3D,8DAA4C;AAC5C,iEAA+C;AAC/C,qEAAmD;AACnD,mEAAiD;AAEjD,sEAAoD;AACpD,6EAA2D;AAE3D,oDAAkC;AAClC,2DAAyC;AAEzC,8DAA4C;AAC5C,qEAAmD;AACnD,yEAAuD;AACvD,gFAA8D;AAE9D,4DAA0C;AAC1C,mEAAiD;AAEjD,oDAAkC;AAClC,+DAA6C;AAC7C,2DAAyC;AAEzC,sDAAoC;AACpC,6DAA2C;AAE3C,2DAAyC;AACzC,kEAAgD;AAEhD,+DAA6C;AAC7C,6DAA2C;AAC3C,oDAAkC;AAClC,2DAAyC;AAEzC,8CAA4B;AAC5B,qDAAmC;AAEnC,iEAA+C;AAC/C,sDAAoC;AACpC,uDAAqC;AACrC,gDAA8B;AAE9B,0EAAwD;AACxD,yEAAuD;AACvD,oEAAkD;AAClD,gEAA8C;AAE9C,gDAA8B;AAC9B,uDAAqC;AAErC,mEAAiD;AACjD,4DAA0C;AAE1C,4DAA0C;AAC1C,6DAA2C;AAE3C,qDAAmC;AAEnC,8DAA4C;AAC5C,qEAAmD;AAEnD,wFAAsE;AACtE,+FAA6E"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6EAA2D;AAC3D,uEAAqD;AAErD,2DAAyC;AACzC,+DAA6C;AAC7C,iEAA+C;AAE/C,0EAAwD;AAExD,sEAAoD;AACpD,6EAA2D;AAE3D,6EAA2D;AAC3D,oFAAkE;AAElE,kEAAgD;AAChD,iFAA+D;AAE/D,gDAA8B;AAC9B,uDAAqC;AAErC,wDAAsC;AAEtC,0DAAwC;AACxC,iEAA+C;AAC/C,mEAAiD;AACjD,0EAAwD;AAExD,oDAAkC;AAClC,2DAAyC;AAEzC,qEAAmD;AACnD,mEAAiD;AACjD,yEAAuD;AAEvD,0DAAwC;AACxC,iEAA+C;AAE/C,gFAA8D;AAC9D,uFAAqE;AAErE,gEAA8C;AAC9C,uEAAqD;AAErD,kEAAgD;AAChD,yEAAuD;AACvD,2EAAyD;AAEzD,2DAAyC;AACzC,qDAAmC;AACnC,wDAAsC;AACtC,yDAAuC;AACvC,gEAA8C;AAC9C,8CAA4B;AAC5B,8DAA4C;AAE5C,gEAA8C;AAC9C,uEAAqD;AAErD,oEAAkD;AAClD,2EAAyD;AAEzD,oDAAkC;AAClC,2DAAyC;AAEzC,sEAAoD;AACpD,6EAA2D;AAE3D,8DAA4C;AAC5C,iEAA+C;AAC/C,qEAAmD;AACnD,mEAAiD;AAEjD,sEAAoD;AACpD,6EAA2D;AAE3D,oDAAkC;AAClC,2DAAyC;AAEzC,8DAA4C;AAC5C,qEAAmD;AACnD,yEAAuD;AACvD,gFAA8D;AAE9D,4DAA0C;AAC1C,mEAAiD;AAEjD,oDAAkC;AAClC,+DAA6C;AAC7C,2DAAyC;AAEzC,sDAAoC;AACpC,6DAA2C;AAE3C,2DAAyC;AACzC,kEAAgD;AAEhD,+DAA6C;AAC7C,6DAA2C;AAC3C,oDAAkC;AAClC,2DAAyC;AAEzC,8CAA4B;AAC5B,qDAAmC;AAEnC,iEAA+C;AAC/C,sDAAoC;AACpC,uDAAqC;AACrC,gDAA8B;AAE9B,0EAAwD;AACxD,yEAAuD;AACvD,oEAAkD;AAClD,gEAA8C;AAE9C,gDAA8B;AAC9B,uDAAqC;AAErC,mEAAiD;AACjD,4DAA0C;AAE1C,4DAA0C;AAC1C,6DAA2C;AAE3C,qDAAmC;AAEnC,8DAA4C;AAC5C,qEAAmD;AAEnD,wFAAsE;AACtE,+FAA6E;AAE7E,oEAAkD;AAClD,2EAAyD"}
@@ -0,0 +1,82 @@
1
+ import { DailyInsightCompleted, StreakRepair, UserHackStatistics, UserInsightStreak, ViewedHack } from './user-statistics';
2
+ export interface DailyInsightCompletedCreatedEvent {
3
+ id: string;
4
+ type: 'DailyInsightCompletedCreated';
5
+ payload: DailyInsightCompleted;
6
+ }
7
+ export interface DailyInsightCompletedUpdatedEvent {
8
+ id: string;
9
+ type: 'DailyInsightCompletedUpdated';
10
+ payload: DailyInsightCompleted;
11
+ }
12
+ export interface DailyInsightCompletedDeletedEvent {
13
+ id: string;
14
+ type: 'DailyInsightCompletedDeleted';
15
+ payload: DailyInsightCompleted;
16
+ }
17
+ export interface StreakRepairCreatedEvent {
18
+ id: string;
19
+ type: 'StreakRepairCreated';
20
+ payload: StreakRepair;
21
+ }
22
+ export interface StreakRepairUpdatedEvent {
23
+ id: string;
24
+ type: 'StreakRepairUpdated';
25
+ payload: StreakRepair;
26
+ }
27
+ export interface StreakRepairDeletedEvent {
28
+ id: string;
29
+ type: 'StreakRepairDeleted';
30
+ payload: StreakRepair;
31
+ }
32
+ export interface UserHackStatisticsCreatedEvent {
33
+ id: string;
34
+ type: 'UserHackStatisticsCreated';
35
+ payload: UserHackStatistics;
36
+ }
37
+ export interface UserHackStatisticsUpdatedEvent {
38
+ id: string;
39
+ type: 'UserHackStatisticsUpdated';
40
+ payload: UserHackStatistics;
41
+ }
42
+ export interface UserHackStatisticsDeletedEvent {
43
+ id: string;
44
+ type: 'UserHackStatisticsDeleted';
45
+ payload: UserHackStatistics;
46
+ }
47
+ export interface UserInsightStreakCreatedEvent {
48
+ id: string;
49
+ type: 'UserInsightStreakCreated';
50
+ payload: UserInsightStreak;
51
+ }
52
+ export interface UserInsightStreakUpdatedEvent {
53
+ id: string;
54
+ type: 'UserInsightStreakUpdated';
55
+ payload: UserInsightStreak;
56
+ }
57
+ export interface UserInsightStreakDeletedEvent {
58
+ id: string;
59
+ type: 'UserInsightStreakDeleted';
60
+ payload: UserInsightStreak;
61
+ }
62
+ export interface ViewedHackCreatedEvent {
63
+ id: string;
64
+ type: 'ViewedHackCreated';
65
+ payload: ViewedHack;
66
+ }
67
+ export interface ViewedHackUpdatedEvent {
68
+ id: string;
69
+ type: 'ViewedHackUpdated';
70
+ payload: ViewedHack;
71
+ }
72
+ export interface ViewedHackDeletedEvent {
73
+ id: string;
74
+ type: 'ViewedHackDeleted';
75
+ payload: ViewedHack;
76
+ }
77
+ export type DailyInsightCompletedChangedEvent = DailyInsightCompletedCreatedEvent | DailyInsightCompletedUpdatedEvent | DailyInsightCompletedDeletedEvent;
78
+ export type StreakRepairChangedEvent = StreakRepairCreatedEvent | StreakRepairUpdatedEvent | StreakRepairDeletedEvent;
79
+ export type UserHackStatisticsChangedEvent = UserHackStatisticsCreatedEvent | UserHackStatisticsUpdatedEvent | UserHackStatisticsDeletedEvent;
80
+ export type UserInsightStreakChangedEvent = UserInsightStreakCreatedEvent | UserInsightStreakUpdatedEvent | UserInsightStreakDeletedEvent;
81
+ export type ViewedHackChangedEvent = ViewedHackCreatedEvent | ViewedHackUpdatedEvent | ViewedHackDeletedEvent;
82
+ //# sourceMappingURL=user-statistics-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-statistics-events.d.ts","sourceRoot":"","sources":["../../../src/user-statistics/user-statistics-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user-statistics-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-statistics-events.js","sourceRoot":"","sources":["../../../src/user-statistics/user-statistics-events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ export interface ViewedHack {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ userId: string;
7
+ hackId: string;
8
+ isHackCompleted: boolean;
9
+ insightsCompletedCount: number;
10
+ /** added Aug 2023 */
11
+ percentageComplete: number;
12
+ /** added Aug 2023 */
13
+ lastViewedAt: string;
14
+ hackProgress: {
15
+ id: string;
16
+ version: number;
17
+ createdAt: string;
18
+ };
19
+ }
20
+ export interface UserInsightStreak {
21
+ userId: string;
22
+ v: number;
23
+ createdAt: string;
24
+ updatedAt: string;
25
+ id: string;
26
+ longestStreak: {
27
+ length: number;
28
+ };
29
+ latestStreak: {
30
+ latestDayCompleted: string;
31
+ length: number;
32
+ };
33
+ previousStreak: {
34
+ length: number;
35
+ };
36
+ latestDaysCompleted: string[];
37
+ repairs?: {
38
+ usedThisMonthCount: number;
39
+ };
40
+ }
41
+ export interface UserHackStatistics {
42
+ userId: string;
43
+ v: number;
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ id: string;
47
+ insightsCompletedCount: number;
48
+ hacksCompletedCount: number;
49
+ /** Time saved in minutes. Added Aug 2023 */
50
+ totalTimeSaved: number;
51
+ perTopic?: PerTopicStatistics[];
52
+ }
53
+ export interface PerTopicStatistics {
54
+ name: string;
55
+ insightsCompletedCount: number;
56
+ }
57
+ export interface StreakRepair {
58
+ id: string;
59
+ v: number;
60
+ createdAt: string;
61
+ updatedAt: string;
62
+ userId: string;
63
+ repairDate_streakType: string;
64
+ repairDate: string;
65
+ streakType: string;
66
+ }
67
+ export interface DailyInsightCompleted {
68
+ id: string;
69
+ v: number;
70
+ createdAt: string;
71
+ updatedAt: string;
72
+ userId: string;
73
+ dateInsightCompleted: string;
74
+ }
75
+ //# sourceMappingURL=user-statistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-statistics.d.ts","sourceRoot":"","sources":["../../../src/user-statistics/user-statistics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAA;CACJ;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,EAAE;QAEV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,cAAc,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE;QACN,kBAAkB,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAG,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;CAChC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user-statistics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-statistics.js","sourceRoot":"","sources":["../../../src/user-statistics/user-statistics.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { HackProgress } from './history';
2
+ export interface HackProgressCreatedEvent {
3
+ id: string;
4
+ type: 'HackProgressCreated';
5
+ payload: HackProgress;
6
+ }
7
+ export interface HackProgressUpdatedEvent {
8
+ id: string;
9
+ type: 'HackProgressUpdated';
10
+ payload: HackProgress;
11
+ }
12
+ export interface HackProgressDeletedEvent {
13
+ id: string;
14
+ type: 'HackProgressDeleted';
15
+ payload: HackProgress;
16
+ }
17
+ export type HackProgressChangedEvent = HackProgressCreatedEvent | HackProgressUpdatedEvent | HackProgressDeletedEvent;
18
+ //# sourceMappingURL=history-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-events.d.ts","sourceRoot":"","sources":["../../../src/history/history-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=history-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-events.js","sourceRoot":"","sources":["../../../src/history/history-events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ export interface ResumeStoryPlayer {
2
+ /** the format the user chose to consume the hack */
3
+ format: 'story';
4
+ /** where to resume from in the segment's array of cards */
5
+ fromCardIndex: number;
6
+ }
7
+ export interface ResumeAudioPlayer {
8
+ /** the format the user chose to consume the hack */
9
+ format: 'audio';
10
+ /** the timestamp in seconds that the audio player should resume from */
11
+ audioPlayerFromTimestamp: number;
12
+ /** where to resume from in the segment's array of cards */
13
+ fromCardIndex?: number;
14
+ }
15
+ export interface ResumeTextReader {
16
+ /** the format the user chose to consume the hack */
17
+ format: 'text';
18
+ /** the timestamp in seconds that the audio player should resume from
19
+ * if the user had audio playing in the background while reading */
20
+ audioPlayerFromTimestamp?: number;
21
+ /** where to resume from in the segment's array of cards */
22
+ fromCardIndex?: number;
23
+ }
24
+ export interface HackProgressDTO {
25
+ /** the hack the user has been viewing */
26
+ hackId: string;
27
+ /** the segment to resume from */
28
+ segmentId: string;
29
+ /** the ISO 8601 date and time when the user last viewed the hack */
30
+ lastViewedAt: string;
31
+ /** used to render the hack progress bar on the client */
32
+ percentageComplete: number;
33
+ /** the format the hack will be resumed in */
34
+ resume: ResumeStoryPlayer | ResumeAudioPlayer | ResumeTextReader;
35
+ }
36
+ export interface HackProgress extends HackProgressDTO {
37
+ id: string;
38
+ createdAt: string;
39
+ updatedAt: string;
40
+ v: number;
41
+ userId: string;
42
+ }
43
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/history/history.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAC9B,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,wBAAwB,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC7B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf;wEACoE;IACpE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;CACpE;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACjD,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/history/history.ts"],"names":[],"mappings":""}
@@ -42,6 +42,8 @@ export * from './hack-metadata/hack-metadata';
42
42
  export * from './hack-metadata/hack-metadata-events';
43
43
  export * from './hack-of-the-day/hack-of-the-day';
44
44
  export * from './hack-of-the-day/hack-of-the-day-events';
45
+ export * from './history/history';
46
+ export * from './history/history-events';
45
47
  export * from './knowledge-source/knowledge-source';
46
48
  export * from './knowledge-source/knowledge-source-events';
47
49
  export * from './localisation/live-locales';
@@ -90,4 +92,6 @@ export * from './user-context/user-context';
90
92
  export * from './user-context/user-context-events';
91
93
  export * from './user-notification-context/user-notification-context';
92
94
  export * from './user-notification-context/user-notification-context-events';
95
+ export * from './user-statistics/user-statistics';
96
+ export * from './user-statistics/user-statistics-events';
93
97
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -42,6 +42,8 @@ export * from './hack-metadata/hack-metadata';
42
42
  export * from './hack-metadata/hack-metadata-events';
43
43
  export * from './hack-of-the-day/hack-of-the-day';
44
44
  export * from './hack-of-the-day/hack-of-the-day-events';
45
+ export * from './history/history';
46
+ export * from './history/history-events';
45
47
  export * from './knowledge-source/knowledge-source';
46
48
  export * from './knowledge-source/knowledge-source-events';
47
49
  export * from './localisation/live-locales';
@@ -90,4 +92,6 @@ export * from './user-context/user-context';
90
92
  export * from './user-context/user-context-events';
91
93
  export * from './user-notification-context/user-notification-context';
92
94
  export * from './user-notification-context/user-notification-context-events';
95
+ export * from './user-statistics/user-statistics';
96
+ export * from './user-statistics/user-statistics-events';
93
97
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { DailyInsightCompleted, StreakRepair, UserHackStatistics, UserInsightStreak, ViewedHack } from './user-statistics';
2
+ export interface DailyInsightCompletedCreatedEvent {
3
+ id: string;
4
+ type: 'DailyInsightCompletedCreated';
5
+ payload: DailyInsightCompleted;
6
+ }
7
+ export interface DailyInsightCompletedUpdatedEvent {
8
+ id: string;
9
+ type: 'DailyInsightCompletedUpdated';
10
+ payload: DailyInsightCompleted;
11
+ }
12
+ export interface DailyInsightCompletedDeletedEvent {
13
+ id: string;
14
+ type: 'DailyInsightCompletedDeleted';
15
+ payload: DailyInsightCompleted;
16
+ }
17
+ export interface StreakRepairCreatedEvent {
18
+ id: string;
19
+ type: 'StreakRepairCreated';
20
+ payload: StreakRepair;
21
+ }
22
+ export interface StreakRepairUpdatedEvent {
23
+ id: string;
24
+ type: 'StreakRepairUpdated';
25
+ payload: StreakRepair;
26
+ }
27
+ export interface StreakRepairDeletedEvent {
28
+ id: string;
29
+ type: 'StreakRepairDeleted';
30
+ payload: StreakRepair;
31
+ }
32
+ export interface UserHackStatisticsCreatedEvent {
33
+ id: string;
34
+ type: 'UserHackStatisticsCreated';
35
+ payload: UserHackStatistics;
36
+ }
37
+ export interface UserHackStatisticsUpdatedEvent {
38
+ id: string;
39
+ type: 'UserHackStatisticsUpdated';
40
+ payload: UserHackStatistics;
41
+ }
42
+ export interface UserHackStatisticsDeletedEvent {
43
+ id: string;
44
+ type: 'UserHackStatisticsDeleted';
45
+ payload: UserHackStatistics;
46
+ }
47
+ export interface UserInsightStreakCreatedEvent {
48
+ id: string;
49
+ type: 'UserInsightStreakCreated';
50
+ payload: UserInsightStreak;
51
+ }
52
+ export interface UserInsightStreakUpdatedEvent {
53
+ id: string;
54
+ type: 'UserInsightStreakUpdated';
55
+ payload: UserInsightStreak;
56
+ }
57
+ export interface UserInsightStreakDeletedEvent {
58
+ id: string;
59
+ type: 'UserInsightStreakDeleted';
60
+ payload: UserInsightStreak;
61
+ }
62
+ export interface ViewedHackCreatedEvent {
63
+ id: string;
64
+ type: 'ViewedHackCreated';
65
+ payload: ViewedHack;
66
+ }
67
+ export interface ViewedHackUpdatedEvent {
68
+ id: string;
69
+ type: 'ViewedHackUpdated';
70
+ payload: ViewedHack;
71
+ }
72
+ export interface ViewedHackDeletedEvent {
73
+ id: string;
74
+ type: 'ViewedHackDeleted';
75
+ payload: ViewedHack;
76
+ }
77
+ export type DailyInsightCompletedChangedEvent = DailyInsightCompletedCreatedEvent | DailyInsightCompletedUpdatedEvent | DailyInsightCompletedDeletedEvent;
78
+ export type StreakRepairChangedEvent = StreakRepairCreatedEvent | StreakRepairUpdatedEvent | StreakRepairDeletedEvent;
79
+ export type UserHackStatisticsChangedEvent = UserHackStatisticsCreatedEvent | UserHackStatisticsUpdatedEvent | UserHackStatisticsDeletedEvent;
80
+ export type UserInsightStreakChangedEvent = UserInsightStreakCreatedEvent | UserInsightStreakUpdatedEvent | UserInsightStreakDeletedEvent;
81
+ export type ViewedHackChangedEvent = ViewedHackCreatedEvent | ViewedHackUpdatedEvent | ViewedHackDeletedEvent;
82
+ //# sourceMappingURL=user-statistics-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-statistics-events.d.ts","sourceRoot":"","sources":["../../../src/user-statistics/user-statistics-events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user-statistics-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-statistics-events.js","sourceRoot":"","sources":["../../../src/user-statistics/user-statistics-events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ export interface ViewedHack {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ userId: string;
7
+ hackId: string;
8
+ isHackCompleted: boolean;
9
+ insightsCompletedCount: number;
10
+ /** added Aug 2023 */
11
+ percentageComplete: number;
12
+ /** added Aug 2023 */
13
+ lastViewedAt: string;
14
+ hackProgress: {
15
+ id: string;
16
+ version: number;
17
+ createdAt: string;
18
+ };
19
+ }
20
+ export interface UserInsightStreak {
21
+ userId: string;
22
+ v: number;
23
+ createdAt: string;
24
+ updatedAt: string;
25
+ id: string;
26
+ longestStreak: {
27
+ length: number;
28
+ };
29
+ latestStreak: {
30
+ latestDayCompleted: string;
31
+ length: number;
32
+ };
33
+ previousStreak: {
34
+ length: number;
35
+ };
36
+ latestDaysCompleted: string[];
37
+ repairs?: {
38
+ usedThisMonthCount: number;
39
+ };
40
+ }
41
+ export interface UserHackStatistics {
42
+ userId: string;
43
+ v: number;
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ id: string;
47
+ insightsCompletedCount: number;
48
+ hacksCompletedCount: number;
49
+ /** Time saved in minutes. Added Aug 2023 */
50
+ totalTimeSaved: number;
51
+ perTopic?: PerTopicStatistics[];
52
+ }
53
+ export interface PerTopicStatistics {
54
+ name: string;
55
+ insightsCompletedCount: number;
56
+ }
57
+ export interface StreakRepair {
58
+ id: string;
59
+ v: number;
60
+ createdAt: string;
61
+ updatedAt: string;
62
+ userId: string;
63
+ repairDate_streakType: string;
64
+ repairDate: string;
65
+ streakType: string;
66
+ }
67
+ export interface DailyInsightCompleted {
68
+ id: string;
69
+ v: number;
70
+ createdAt: string;
71
+ updatedAt: string;
72
+ userId: string;
73
+ dateInsightCompleted: string;
74
+ }
75
+ //# sourceMappingURL=user-statistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-statistics.d.ts","sourceRoot":"","sources":["../../../src/user-statistics/user-statistics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAA;CACJ;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,EAAE;QAEV,kBAAkB,EAAE,MAAM,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,cAAc,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE;QACN,kBAAkB,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAElB,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAG,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,MAAM,CAAC;CAChC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user-statistics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-statistics.js","sourceRoot":"","sources":["../../../src/user-statistics/user-statistics.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uptime.app/contracts",
3
- "version": "1.0.41-rc.1",
3
+ "version": "1.0.41-rc.2",
4
4
  "license": "MIT",
5
5
  "types": "./dist/esm/index.d.ts",
6
6
  "main": "./dist/cjs/index.js",
@@ -13,5 +13,5 @@
13
13
  "devDependencies": {
14
14
  "typescript": "^5.4.3"
15
15
  },
16
- "gitHead": "327aebc65685e4953a9b129548566eff9ed59b56"
16
+ "gitHead": "9992f107fa131979b5260e810387f79a824d1cf0"
17
17
  }
@@ -0,0 +1,21 @@
1
+ import { HackProgress } from './history';
2
+
3
+ export interface HackProgressCreatedEvent {
4
+ id: string;
5
+ type: 'HackProgressCreated';
6
+ payload: HackProgress;
7
+ }
8
+
9
+ export interface HackProgressUpdatedEvent {
10
+ id: string;
11
+ type: 'HackProgressUpdated';
12
+ payload: HackProgress;
13
+ }
14
+
15
+ export interface HackProgressDeletedEvent {
16
+ id: string;
17
+ type: 'HackProgressDeleted';
18
+ payload: HackProgress;
19
+ }
20
+
21
+ export type HackProgressChangedEvent = HackProgressCreatedEvent | HackProgressUpdatedEvent | HackProgressDeletedEvent;
@@ -0,0 +1,46 @@
1
+ export interface ResumeStoryPlayer {
2
+ /** the format the user chose to consume the hack */
3
+ format: 'story';
4
+ /** where to resume from in the segment's array of cards */
5
+ fromCardIndex: number;
6
+ }
7
+
8
+ export interface ResumeAudioPlayer {
9
+ /** the format the user chose to consume the hack */
10
+ format: 'audio';
11
+ /** the timestamp in seconds that the audio player should resume from */
12
+ audioPlayerFromTimestamp: number;
13
+ /** where to resume from in the segment's array of cards */
14
+ fromCardIndex?: number;
15
+ }
16
+
17
+ export interface ResumeTextReader {
18
+ /** the format the user chose to consume the hack */
19
+ format: 'text';
20
+ /** the timestamp in seconds that the audio player should resume from
21
+ * if the user had audio playing in the background while reading */
22
+ audioPlayerFromTimestamp?: number;
23
+ /** where to resume from in the segment's array of cards */
24
+ fromCardIndex?: number;
25
+ }
26
+
27
+ export interface HackProgressDTO {
28
+ /** the hack the user has been viewing */
29
+ hackId: string;
30
+ /** the segment to resume from */
31
+ segmentId: string;
32
+ /** the ISO 8601 date and time when the user last viewed the hack */
33
+ lastViewedAt: string;
34
+ /** used to render the hack progress bar on the client */
35
+ percentageComplete: number;
36
+ /** the format the hack will be resumed in */
37
+ resume: ResumeStoryPlayer | ResumeAudioPlayer | ResumeTextReader;
38
+ }
39
+
40
+ export interface HackProgress extends HackProgressDTO {
41
+ id: string
42
+ createdAt: string;
43
+ updatedAt: string;
44
+ v: number;
45
+ userId: string;
46
+ }
package/src/index.ts CHANGED
@@ -60,6 +60,9 @@ export * from './hack-metadata/hack-metadata-events';
60
60
  export * from './hack-of-the-day/hack-of-the-day';
61
61
  export * from './hack-of-the-day/hack-of-the-day-events';
62
62
 
63
+ export * from './history/history';
64
+ export * from './history/history-events';
65
+
63
66
  export * from './knowledge-source/knowledge-source';
64
67
  export * from './knowledge-source/knowledge-source-events';
65
68
 
@@ -126,3 +129,6 @@ export * from './user-context/user-context-events';
126
129
 
127
130
  export * from './user-notification-context/user-notification-context';
128
131
  export * from './user-notification-context/user-notification-context-events';
132
+
133
+ export * from './user-statistics/user-statistics';
134
+ export * from './user-statistics/user-statistics-events';
@@ -0,0 +1,97 @@
1
+ import { DailyInsightCompleted, StreakRepair, UserHackStatistics, UserInsightStreak, ViewedHack } from './user-statistics';
2
+
3
+ export interface DailyInsightCompletedCreatedEvent {
4
+ id: string;
5
+ type: 'DailyInsightCompletedCreated';
6
+ payload: DailyInsightCompleted;
7
+ }
8
+
9
+ export interface DailyInsightCompletedUpdatedEvent {
10
+ id: string;
11
+ type: 'DailyInsightCompletedUpdated';
12
+ payload: DailyInsightCompleted;
13
+ }
14
+
15
+ export interface DailyInsightCompletedDeletedEvent {
16
+ id: string;
17
+ type: 'DailyInsightCompletedDeleted';
18
+ payload: DailyInsightCompleted;
19
+ }
20
+
21
+ export interface StreakRepairCreatedEvent {
22
+ id: string;
23
+ type: 'StreakRepairCreated';
24
+ payload: StreakRepair;
25
+ }
26
+
27
+ export interface StreakRepairUpdatedEvent {
28
+ id: string;
29
+ type: 'StreakRepairUpdated';
30
+ payload: StreakRepair;
31
+ }
32
+
33
+ export interface StreakRepairDeletedEvent {
34
+ id: string;
35
+ type: 'StreakRepairDeleted';
36
+ payload: StreakRepair;
37
+ }
38
+
39
+ export interface UserHackStatisticsCreatedEvent {
40
+ id: string;
41
+ type: 'UserHackStatisticsCreated';
42
+ payload: UserHackStatistics;
43
+ }
44
+
45
+ export interface UserHackStatisticsUpdatedEvent {
46
+ id: string;
47
+ type: 'UserHackStatisticsUpdated';
48
+ payload: UserHackStatistics;
49
+ }
50
+
51
+ export interface UserHackStatisticsDeletedEvent {
52
+ id: string;
53
+ type: 'UserHackStatisticsDeleted';
54
+ payload: UserHackStatistics;
55
+ }
56
+
57
+ export interface UserInsightStreakCreatedEvent {
58
+ id: string;
59
+ type: 'UserInsightStreakCreated';
60
+ payload: UserInsightStreak;
61
+ }
62
+
63
+ export interface UserInsightStreakUpdatedEvent {
64
+ id: string;
65
+ type: 'UserInsightStreakUpdated';
66
+ payload: UserInsightStreak;
67
+ }
68
+
69
+ export interface UserInsightStreakDeletedEvent {
70
+ id: string;
71
+ type: 'UserInsightStreakDeleted';
72
+ payload: UserInsightStreak;
73
+ }
74
+
75
+ export interface ViewedHackCreatedEvent {
76
+ id: string;
77
+ type: 'ViewedHackCreated';
78
+ payload: ViewedHack;
79
+ }
80
+
81
+ export interface ViewedHackUpdatedEvent {
82
+ id: string;
83
+ type: 'ViewedHackUpdated';
84
+ payload: ViewedHack;
85
+ }
86
+
87
+ export interface ViewedHackDeletedEvent {
88
+ id: string;
89
+ type: 'ViewedHackDeleted';
90
+ payload: ViewedHack;
91
+ }
92
+
93
+ export type DailyInsightCompletedChangedEvent = DailyInsightCompletedCreatedEvent | DailyInsightCompletedUpdatedEvent | DailyInsightCompletedDeletedEvent;
94
+ export type StreakRepairChangedEvent = StreakRepairCreatedEvent | StreakRepairUpdatedEvent | StreakRepairDeletedEvent;
95
+ export type UserHackStatisticsChangedEvent = UserHackStatisticsCreatedEvent | UserHackStatisticsUpdatedEvent | UserHackStatisticsDeletedEvent;
96
+ export type UserInsightStreakChangedEvent = UserInsightStreakCreatedEvent | UserInsightStreakUpdatedEvent | UserInsightStreakDeletedEvent;
97
+ export type ViewedHackChangedEvent = ViewedHackCreatedEvent | ViewedHackUpdatedEvent | ViewedHackDeletedEvent;
@@ -0,0 +1,83 @@
1
+ export interface ViewedHack {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ userId: string;
7
+ hackId: string;
8
+ isHackCompleted: boolean;
9
+ insightsCompletedCount: number;
10
+ /** added Aug 2023 */
11
+ percentageComplete: number;
12
+ /** added Aug 2023 */
13
+ lastViewedAt: string;
14
+ hackProgress: {
15
+ id: string;
16
+ version: number;
17
+ createdAt: string;
18
+ }
19
+ }
20
+
21
+ export interface UserInsightStreak {
22
+ userId: string;
23
+ v: number;
24
+ createdAt: string;
25
+ updatedAt: string;
26
+
27
+ id: string; // deterministic from userId
28
+ longestStreak: {
29
+ length: number;
30
+ },
31
+ latestStreak: {
32
+ // date with format YYYY-MM-DD
33
+ latestDayCompleted: string;
34
+ length: number;
35
+ },
36
+ previousStreak: {
37
+ length: number;
38
+ },
39
+ // 30 dates with format YYYY-MM-DD
40
+ latestDaysCompleted: string[];
41
+ repairs?: {
42
+ usedThisMonthCount: number;
43
+ }
44
+ }
45
+
46
+ export interface UserHackStatistics {
47
+ userId: string;
48
+ v: number;
49
+ createdAt: string;
50
+ updatedAt: string;
51
+
52
+ id: string; // deterministic from userId
53
+ insightsCompletedCount: number;
54
+ hacksCompletedCount: number;
55
+ /** Time saved in minutes. Added Aug 2023 */
56
+ totalTimeSaved: number;
57
+ perTopic?: PerTopicStatistics[]
58
+ }
59
+
60
+ export interface PerTopicStatistics {
61
+ name: string;
62
+ insightsCompletedCount: number;
63
+ }
64
+
65
+ export interface StreakRepair {
66
+ id: string;
67
+ v: number;
68
+ createdAt: string;
69
+ updatedAt: string;
70
+ userId: string;
71
+ repairDate_streakType : string;
72
+ repairDate: string;
73
+ streakType: string;
74
+ }
75
+
76
+ export interface DailyInsightCompleted {
77
+ id: string;
78
+ v: number;
79
+ createdAt: string;
80
+ updatedAt: string;
81
+ userId: string;
82
+ dateInsightCompleted: string;
83
+ }