@uptime.app/contracts 3.0.51 → 3.0.52-rc.0

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 (232) hide show
  1. package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.d.ts +0 -6
  2. package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.d.ts.map +1 -1
  3. package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.js +0 -6
  4. package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.js.map +1 -1
  5. package/dist/cjs/cms-hack/cms-searchable-hack.d.ts +2 -0
  6. package/dist/cjs/cms-hack/cms-searchable-hack.d.ts.map +1 -1
  7. package/dist/cjs/draft-hack/draft-hack.d.ts +2 -0
  8. package/dist/cjs/draft-hack/draft-hack.d.ts.map +1 -1
  9. package/dist/cjs/enriched-hack/enriched-hack.d.ts +2 -0
  10. package/dist/cjs/enriched-hack/enriched-hack.d.ts.map +1 -1
  11. package/dist/cjs/hack/hack.d.ts +2 -0
  12. package/dist/cjs/hack/hack.d.ts.map +1 -1
  13. package/dist/cjs/index.d.ts +2 -0
  14. package/dist/cjs/index.d.ts.map +1 -1
  15. package/dist/cjs/index.js +2 -0
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/pending-hack/pending-hack.d.ts +2 -0
  18. package/dist/cjs/pending-hack/pending-hack.d.ts.map +1 -1
  19. package/dist/cjs/topics/primary-topic-mapping.d.ts +7 -0
  20. package/dist/cjs/topics/primary-topic-mapping.d.ts.map +1 -0
  21. package/dist/cjs/topics/primary-topic-mapping.js +98 -0
  22. package/dist/cjs/topics/primary-topic-mapping.js.map +1 -0
  23. package/dist/cjs/topics/primary-topic.d.ts +4 -0
  24. package/dist/cjs/topics/primary-topic.d.ts.map +1 -0
  25. package/dist/cjs/topics/primary-topic.js +3 -0
  26. package/dist/cjs/topics/primary-topic.js.map +1 -0
  27. package/dist/esm/b2b-organisation/b2b-organisation-group-membership.d.ts +0 -6
  28. package/dist/esm/b2b-organisation/b2b-organisation-group-membership.d.ts.map +1 -1
  29. package/dist/esm/b2b-organisation/b2b-organisation-group-membership.js +1 -5
  30. package/dist/esm/b2b-organisation/b2b-organisation-group-membership.js.map +1 -1
  31. package/dist/esm/cms-hack/cms-searchable-hack.d.ts +2 -0
  32. package/dist/esm/cms-hack/cms-searchable-hack.d.ts.map +1 -1
  33. package/dist/esm/draft-hack/draft-hack.d.ts +2 -0
  34. package/dist/esm/draft-hack/draft-hack.d.ts.map +1 -1
  35. package/dist/esm/enriched-hack/enriched-hack.d.ts +2 -0
  36. package/dist/esm/enriched-hack/enriched-hack.d.ts.map +1 -1
  37. package/dist/esm/hack/hack.d.ts +2 -0
  38. package/dist/esm/hack/hack.d.ts.map +1 -1
  39. package/dist/esm/index.d.ts +2 -0
  40. package/dist/esm/index.d.ts.map +1 -1
  41. package/dist/esm/index.js +2 -0
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/pending-hack/pending-hack.d.ts +2 -0
  44. package/dist/esm/pending-hack/pending-hack.d.ts.map +1 -1
  45. package/dist/esm/topics/primary-topic-mapping.d.ts +7 -0
  46. package/dist/esm/topics/primary-topic-mapping.d.ts.map +1 -0
  47. package/dist/esm/topics/primary-topic-mapping.js +94 -0
  48. package/dist/esm/topics/primary-topic-mapping.js.map +1 -0
  49. package/dist/esm/topics/primary-topic.d.ts +4 -0
  50. package/dist/esm/topics/primary-topic.d.ts.map +1 -0
  51. package/dist/esm/topics/primary-topic.js +2 -0
  52. package/dist/esm/topics/primary-topic.js.map +1 -0
  53. package/package.json +2 -2
  54. package/src/access-control/collection-access-control.ts +28 -28
  55. package/src/access-control/hack-access-control.ts +32 -32
  56. package/src/access-control/profile-access-control.ts +27 -27
  57. package/src/app-hack/app-full-hack.ts +9 -9
  58. package/src/app-hack/app-hack-metadata.ts +61 -61
  59. package/src/app-hack/app-restricted-hack.ts +22 -22
  60. package/src/b2b-content-access/b2b-content-access.ts +57 -57
  61. package/src/b2b-organisation/b2b-carousel.ts +33 -33
  62. package/src/b2b-organisation/b2b-org-idp-mapping.ts +27 -27
  63. package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
  64. package/src/b2b-organisation/b2b-organisation-group-events.ts +21 -21
  65. package/src/b2b-organisation/b2b-organisation-group-membership-events.ts +21 -21
  66. package/src/b2b-organisation/b2b-organisation-group-membership.ts +10 -17
  67. package/src/b2b-organisation/b2b-organisation-group.ts +65 -65
  68. package/src/b2b-organisation/b2b-organisation-invitation.ts +45 -45
  69. package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
  70. package/src/b2b-organisation/b2b-organisation-member.ts +19 -19
  71. package/src/b2b-organisation/b2b-organisation.ts +38 -38
  72. package/src/brand/brand-events.ts +21 -21
  73. package/src/brand/brand.ts +77 -77
  74. package/src/catalogue/catalogue.ts +152 -152
  75. package/src/cms-hack/cms-searchable-hack.ts +47 -44
  76. package/src/collection/collection-events.ts +21 -21
  77. package/src/collection/collection.ts +59 -59
  78. package/src/collection/enriched-collection-events.ts +18 -18
  79. package/src/collection/enriched-collection.ts +65 -65
  80. package/src/course/course-events.ts +20 -20
  81. package/src/course/course.ts +25 -25
  82. package/src/course-enrollment/course-enrollment-events.ts +21 -21
  83. package/src/course-enrollment/course-enrollment.ts +36 -36
  84. package/src/creator/creator-events.ts +32 -32
  85. package/src/creator/creator.ts +7 -7
  86. package/src/distribution/collection-distribution.ts +17 -17
  87. package/src/distribution/distribution-events.ts +61 -61
  88. package/src/distribution/hack-distribution.ts +18 -18
  89. package/src/draft-hack/draft-hack-events.ts +21 -21
  90. package/src/draft-hack/draft-hack.ts +192 -190
  91. package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
  92. package/src/draft-hack-generation/draft-hack-generation-events.ts +52 -52
  93. package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
  94. package/src/enriched-b2b-organisation/enriched-b2b-organisation-events.ts +21 -21
  95. package/src/enriched-b2b-organisation/enriched-b2b-organisation.ts +37 -37
  96. package/src/enriched-hack/enriched-hack-events.ts +21 -21
  97. package/src/enriched-hack/enriched-hack.ts +111 -109
  98. package/src/enrichment-asset/hack-enrichment-video-events.ts +55 -55
  99. package/src/enrichment-asset/hack-enrichment-video.ts +40 -40
  100. package/src/entitlement/user-entitlements-commands.ts +54 -54
  101. package/src/entitlement/user-entitlements-events.ts +29 -29
  102. package/src/entitlement/user-entitlements.ts +18 -18
  103. package/src/flashcard/flashcard-events.ts +85 -85
  104. package/src/flashcard/flashcard.ts +138 -138
  105. package/src/hack/extracted-subject.ts +31 -31
  106. package/src/hack/hack-events.ts +21 -21
  107. package/src/hack/hack-published.ts +21 -21
  108. package/src/hack/hack-with-voice-events.ts +20 -20
  109. package/src/hack/hack-with-voice.ts +36 -36
  110. package/src/hack/hack.ts +129 -127
  111. package/src/hack/publish-hack-command.ts +20 -20
  112. package/src/hack/republish-hack-command.ts +20 -20
  113. package/src/hack-mapping/access-helper.ts +6 -6
  114. package/src/hack-mapping/app-full-hack.test.ts +13 -13
  115. package/src/hack-mapping/app-full-hack.ts +14 -14
  116. package/src/hack-mapping/app-hack-metadata.test.ts +22 -22
  117. package/src/hack-mapping/app-hack-metadata.ts +82 -82
  118. package/src/hack-mapping/app-restricted-hack.test.ts +12 -12
  119. package/src/hack-mapping/app-restricted-hack.ts +21 -21
  120. package/src/hack-mapping/remove-undefined-fields.ts +9 -9
  121. package/src/hack-mapping/test-data/enriched-hack.json +2576 -2576
  122. package/src/hack-mapping/test-data/expected-app-full-hack.json +2509 -2509
  123. package/src/hack-mapping/test-data/expected-app-hack-metadata.json +93 -93
  124. package/src/hack-mapping/test-data/expected-app-restricted-hack.json +799 -799
  125. package/src/hack-metadata/hack-metadata-events.ts +21 -21
  126. package/src/hack-metadata/hack-metadata.ts +17 -17
  127. package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
  128. package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
  129. package/src/hack-statistics/hack-statistics-events.ts +21 -21
  130. package/src/hack-statistics/hack-statistics.ts +9 -9
  131. package/src/hackbot/hack-generation-commands.ts +45 -45
  132. package/src/hackbot/hack-generation-trigger-events.ts +21 -21
  133. package/src/hackbot/hack-generation-trigger.ts +57 -57
  134. package/src/history/history-events.ts +21 -21
  135. package/src/history/history.ts +46 -46
  136. package/src/identity-provider/domain-identity-provider-events.ts +20 -20
  137. package/src/identity-provider/domain-identity-provider.ts +10 -10
  138. package/src/identity-provider/identity-provider-events.ts +20 -20
  139. package/src/identity-provider/identity-provider.ts +46 -46
  140. package/src/index.ts +223 -220
  141. package/src/interest/interest-events.ts +21 -21
  142. package/src/interest/interest.ts +15 -15
  143. package/src/knowledge-source/knowledge-source-events.ts +21 -21
  144. package/src/knowledge-source/knowledge-source.ts +43 -43
  145. package/src/knowledge-source-parsing/knowledge-source-metadata.ts +58 -58
  146. package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
  147. package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +30 -30
  148. package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
  149. package/src/knowledge-source-parsing/podcast-parsing-events.ts +28 -28
  150. package/src/knowledge-source-parsing/user-hack-generation-options.ts +7 -7
  151. package/src/learn-upon/get-sqsso-url.ts +13 -13
  152. package/src/learn-upon/learn-upon-commands.ts +33 -33
  153. package/src/learn-upon/learn-upon-course-enrollment-events.ts +21 -21
  154. package/src/learn-upon/learn-upon-course-enrollment.ts +62 -62
  155. package/src/learn-upon/learn-upon-course-events.ts +21 -21
  156. package/src/learn-upon/learn-upon-course.ts +108 -108
  157. package/src/learn-upon/learn-upon-portal-events.ts +20 -20
  158. package/src/learn-upon/learn-upon-portal.ts +12 -12
  159. package/src/learn-upon/learn-upon-user-mapping-events.ts +18 -18
  160. package/src/learn-upon/learn-upon-user-mapping.ts +9 -9
  161. package/src/learn-upon/learn-upon-webhook-events.ts +80 -80
  162. package/src/learn-upon/learn-upon-webhook-types.ts +346 -346
  163. package/src/learn-upon/unenroll.ts +6 -6
  164. package/src/localisation/live-locales.ts +45 -45
  165. package/src/localisation/locale-language.ts +4 -4
  166. package/src/localisation/supported-languages.ts +11 -11
  167. package/src/localisation/supported-locales.ts +67 -67
  168. package/src/message-bus/context.ts +7 -7
  169. package/src/moderation/hack-moderation-result-events.ts +18 -18
  170. package/src/moderation/hack-moderation-result.ts +27 -27
  171. package/src/partner/partner-events.ts +21 -21
  172. package/src/partner/partner.ts +7 -7
  173. package/src/pending-hack/pending-hack-events.ts +20 -20
  174. package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
  175. package/src/pending-hack/pending-hack-with-voice.ts +25 -25
  176. package/src/pending-hack/pending-hack.ts +80 -78
  177. package/src/preferences/preferences-events.ts +15 -15
  178. package/src/preferences/preferences.ts +35 -35
  179. package/src/profile/profile-events.ts +41 -41
  180. package/src/profile/profile.ts +36 -36
  181. package/src/profile/translated-profile.ts +13 -13
  182. package/src/referral/referral-events.ts +41 -41
  183. package/src/referral/referral.ts +76 -76
  184. package/src/saved/saved-collection-events.ts +19 -19
  185. package/src/saved/saved-collection.ts +8 -8
  186. package/src/segment/segment-commands.ts +75 -75
  187. package/src/segment/segment-events.ts +42 -42
  188. package/src/segment/segment-with-voice.ts +8 -8
  189. package/src/segment/segment.ts +82 -82
  190. package/src/service-simulator/mock-request-response.ts +17 -17
  191. package/src/skin/skin-events.ts +21 -21
  192. package/src/skin/skin.ts +6 -6
  193. package/src/spark/spark-board-read-model.ts +17 -17
  194. package/src/spark/spark-board.ts +12 -12
  195. package/src/spark/spark-events.ts +42 -42
  196. package/src/spark/spark.ts +75 -75
  197. package/src/text-analysis/hack-categories-extracted-events.ts +24 -24
  198. package/src/text-analysis/hack-categories-extracted.ts +31 -31
  199. package/src/text-analysis/hack-entities-extracted-events.ts +24 -24
  200. package/src/text-analysis/hack-entities-extracted.ts +38 -38
  201. package/src/text-analysis/hack-keywords-extracted-events.ts +24 -24
  202. package/src/text-analysis/hack-keywords-extracted.ts +23 -23
  203. package/src/text-analysis/hack-topics-extracted-events.ts +24 -24
  204. package/src/text-analysis/hack-topics-extracted.ts +31 -31
  205. package/src/text-to-speech/create-speech-commands.ts +22 -22
  206. package/src/text-to-speech/speech-created-events.ts +10 -10
  207. package/src/text-to-speech/supported-voices.ts +222 -222
  208. package/src/text-to-speech/text-segment.ts +29 -29
  209. package/src/theme/theme-events.ts +21 -21
  210. package/src/theme/theme.ts +68 -68
  211. package/src/topics/primary-topic-mapping.test.ts +36 -0
  212. package/src/topics/primary-topic-mapping.ts +110 -0
  213. package/src/topics/primary-topic.ts +3 -0
  214. package/src/translation/translation-events.ts +73 -73
  215. package/src/translation/translation.ts +25 -25
  216. package/src/trending/trending-events.ts +21 -21
  217. package/src/trending/trending-hacks.ts +8 -8
  218. package/src/user/cognito-user-authentication-log.ts +7 -7
  219. package/src/user/get-user.ts +63 -63
  220. package/src/user/user-events.ts +39 -39
  221. package/src/user-acl/user-acl-utils.test.ts +273 -273
  222. package/src/user-acl/user-acl-utils.ts +176 -176
  223. package/src/user-context/user-context-events.ts +21 -21
  224. package/src/user-context/user-context.ts +15 -15
  225. package/src/user-notification-context/user-notification-context-events.ts +21 -21
  226. package/src/user-notification-context/user-notification-context.ts +9 -9
  227. package/src/user-statistics/user-statistics-events.ts +97 -97
  228. package/src/user-statistics/user-statistics.ts +82 -82
  229. package/src/video-cropping/video-cropping-events.ts +43 -43
  230. package/src/video-cropping/video-metadata.ts +12 -12
  231. package/tsconfig.cjs.json +7 -7
  232. package/tsconfig.npm.json +22 -22
@@ -1,138 +1,138 @@
1
- import { CardType, Hack, SegmentType, SupportedLocale, Theme } from '../index';
2
-
3
- export interface Flashcard {
4
- id: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- userId: string;
9
- hackId: string;
10
- segmentId: string;
11
- themeId: string;
12
-
13
- // also shows up in the "card", but easier to create GSI from top level property
14
- cardId: string;
15
- card: FlashedTextCard;
16
-
17
- /*
18
- A flashcard can have multiple reasons for its existence
19
- when all reasons go away (when spark is deleted and hack is made unavailable), the Flashcard is deleted
20
- */
21
- reasonCreated: FlashcardCreationReason[];
22
-
23
- /*
24
- true when the user dismisses it
25
- */
26
- isDismissed: boolean;
27
-
28
- /*
29
- Flashcards from sparks are considered more important than flashcards from consumed content and should be displayed first
30
- */
31
- relevanceScore: number;
32
-
33
- /*
34
- Flashcards start at level 0 and are promoted to level 1+, or demoted back to level 0
35
- */
36
- level: number;
37
-
38
- /*
39
- After a flashcard is demoted, flash cycle count increases
40
- */
41
- flashCycle: number;
42
-
43
- /*
44
- How many times a user has seen this flashcard
45
- */
46
- timesFlashed: number;
47
-
48
- memorisationConfidence?: FlashcardMemorisationConfidence;
49
-
50
- /*
51
- ISO date in UTC which indicates when to flash this card to the user next.
52
- When flashcard is dismissed, "nextDateToFlash" becomes "never"
53
- */
54
- nextDateToFlash: string;
55
-
56
- /*
57
- Indicates whether the referenced hack is "available" (not hidden or deleted)
58
- */
59
- hackIsAvailable: boolean;
60
-
61
- /*
62
- Indicates whether the user has memorised the flashcard. It's considered memorised when its level >= 8
63
- */
64
- isMemorised: boolean;
65
-
66
- /*
67
- A hack with an enriched theme, so that the flashcard can be displayed when the hack becomes unavailable. This structure is consistent with Sparks.
68
- */
69
- hack: Hack;
70
-
71
- /*
72
- A hack's ACL. The Hack model doesn't have an ACL, this is from the equivalent enriched hack.
73
- */
74
- hackAcl: string[];
75
-
76
- /*
77
- A snapshot of the hack theme at the time the flashcard was created. This is consistent with Sparks also having a snapshot of the theme.
78
- */
79
- theme: Theme;
80
-
81
- /*
82
- The hackId for the hack in its base locale. Consistent with the Spark model.
83
- */
84
- baseLocaleHackId: string;
85
-
86
- /*
87
- The locale of the hack at the time this flashcard was created. Consistent with the Spark model.
88
- */
89
- locale: SupportedLocale;
90
-
91
- /*
92
- The language of the hack at the time this flashcard was created. Consistent with the Spark model.
93
- */
94
- language: string;
95
- }
96
-
97
- export interface FlashedTextCard {
98
- id: string;
99
- markdown: string;
100
- segmentType: SegmentType;
101
- isTitle?: boolean;
102
- cardType?: CardType;
103
- keyPhrases: KeyPhrase[];
104
- }
105
-
106
- export type FlashcardCreationReason = FlashcardCreationSparkReason | FlashcardCreationInsightConsumedReason;
107
-
108
- export interface FlashcardCreationSparkReason {
109
- type: FlashcardCreationReasonType.SparkCreated;
110
- sparkId: string;
111
- // ISO date
112
- dateSparkCreated: string;
113
- }
114
-
115
- export interface FlashcardCreationInsightConsumedReason {
116
- type: FlashcardCreationReasonType.InsightConsumed;
117
- // this helps figure out if the insight was already turned into a flashcard. Using the cardId is insufficient because the cardId can change if the markdown of the hack changes.
118
- // supported insight numbers: 1, 2, 3
119
- insightNumber: number;
120
- // ISO date
121
- dateHackLastViewed: string;
122
- }
123
-
124
- export enum FlashcardCreationReasonType {
125
- SparkCreated = 'SparkCreated',
126
- InsightConsumed = 'InsightConsumed'
127
- }
128
-
129
- export enum FlashcardMemorisationConfidence {
130
- Green = 'Green',
131
- Amber = 'Amber',
132
- Red = 'Red'
133
- }
134
-
135
- export interface KeyPhrase {
136
- phrase: string;
137
- score: number;
138
- }
1
+ import { CardType, Hack, SegmentType, SupportedLocale, Theme } from '../index';
2
+
3
+ export interface Flashcard {
4
+ id: string;
5
+ v: number;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ userId: string;
9
+ hackId: string;
10
+ segmentId: string;
11
+ themeId: string;
12
+
13
+ // also shows up in the "card", but easier to create GSI from top level property
14
+ cardId: string;
15
+ card: FlashedTextCard;
16
+
17
+ /*
18
+ A flashcard can have multiple reasons for its existence
19
+ when all reasons go away (when spark is deleted and hack is made unavailable), the Flashcard is deleted
20
+ */
21
+ reasonCreated: FlashcardCreationReason[];
22
+
23
+ /*
24
+ true when the user dismisses it
25
+ */
26
+ isDismissed: boolean;
27
+
28
+ /*
29
+ Flashcards from sparks are considered more important than flashcards from consumed content and should be displayed first
30
+ */
31
+ relevanceScore: number;
32
+
33
+ /*
34
+ Flashcards start at level 0 and are promoted to level 1+, or demoted back to level 0
35
+ */
36
+ level: number;
37
+
38
+ /*
39
+ After a flashcard is demoted, flash cycle count increases
40
+ */
41
+ flashCycle: number;
42
+
43
+ /*
44
+ How many times a user has seen this flashcard
45
+ */
46
+ timesFlashed: number;
47
+
48
+ memorisationConfidence?: FlashcardMemorisationConfidence;
49
+
50
+ /*
51
+ ISO date in UTC which indicates when to flash this card to the user next.
52
+ When flashcard is dismissed, "nextDateToFlash" becomes "never"
53
+ */
54
+ nextDateToFlash: string;
55
+
56
+ /*
57
+ Indicates whether the referenced hack is "available" (not hidden or deleted)
58
+ */
59
+ hackIsAvailable: boolean;
60
+
61
+ /*
62
+ Indicates whether the user has memorised the flashcard. It's considered memorised when its level >= 8
63
+ */
64
+ isMemorised: boolean;
65
+
66
+ /*
67
+ A hack with an enriched theme, so that the flashcard can be displayed when the hack becomes unavailable. This structure is consistent with Sparks.
68
+ */
69
+ hack: Hack;
70
+
71
+ /*
72
+ A hack's ACL. The Hack model doesn't have an ACL, this is from the equivalent enriched hack.
73
+ */
74
+ hackAcl: string[];
75
+
76
+ /*
77
+ A snapshot of the hack theme at the time the flashcard was created. This is consistent with Sparks also having a snapshot of the theme.
78
+ */
79
+ theme: Theme;
80
+
81
+ /*
82
+ The hackId for the hack in its base locale. Consistent with the Spark model.
83
+ */
84
+ baseLocaleHackId: string;
85
+
86
+ /*
87
+ The locale of the hack at the time this flashcard was created. Consistent with the Spark model.
88
+ */
89
+ locale: SupportedLocale;
90
+
91
+ /*
92
+ The language of the hack at the time this flashcard was created. Consistent with the Spark model.
93
+ */
94
+ language: string;
95
+ }
96
+
97
+ export interface FlashedTextCard {
98
+ id: string;
99
+ markdown: string;
100
+ segmentType: SegmentType;
101
+ isTitle?: boolean;
102
+ cardType?: CardType;
103
+ keyPhrases: KeyPhrase[];
104
+ }
105
+
106
+ export type FlashcardCreationReason = FlashcardCreationSparkReason | FlashcardCreationInsightConsumedReason;
107
+
108
+ export interface FlashcardCreationSparkReason {
109
+ type: FlashcardCreationReasonType.SparkCreated;
110
+ sparkId: string;
111
+ // ISO date
112
+ dateSparkCreated: string;
113
+ }
114
+
115
+ export interface FlashcardCreationInsightConsumedReason {
116
+ type: FlashcardCreationReasonType.InsightConsumed;
117
+ // this helps figure out if the insight was already turned into a flashcard. Using the cardId is insufficient because the cardId can change if the markdown of the hack changes.
118
+ // supported insight numbers: 1, 2, 3
119
+ insightNumber: number;
120
+ // ISO date
121
+ dateHackLastViewed: string;
122
+ }
123
+
124
+ export enum FlashcardCreationReasonType {
125
+ SparkCreated = 'SparkCreated',
126
+ InsightConsumed = 'InsightConsumed'
127
+ }
128
+
129
+ export enum FlashcardMemorisationConfidence {
130
+ Green = 'Green',
131
+ Amber = 'Amber',
132
+ Red = 'Red'
133
+ }
134
+
135
+ export interface KeyPhrase {
136
+ phrase: string;
137
+ score: number;
138
+ }
@@ -1,31 +1,31 @@
1
- export interface ExtractedSubject {
2
- name: string;
3
- }
4
-
5
- export interface ExtractSubjectsCommandBody {
6
- id: string;
7
- v: number;
8
- reference: string;
9
- content: string;
10
- contentType: string; // e.g. 'hack'
11
- }
12
-
13
- export interface ExtractSubjectsCommand {
14
- id: string;
15
- type: 'ExtractSubjectsCommand';
16
- payload: ExtractSubjectsCommandBody;
17
- }
18
-
19
- export interface SubjectsExtracted {
20
- id: string;
21
- type: 'SubjectsExtracted',
22
- payload: SubjectsExtractedBody
23
- }
24
-
25
- export interface SubjectsExtractedBody {
26
- id: string,
27
- v: number,
28
- reference: string,
29
- contentType: string;
30
- subjects: ExtractedSubject[]
31
- }
1
+ export interface ExtractedSubject {
2
+ name: string;
3
+ }
4
+
5
+ export interface ExtractSubjectsCommandBody {
6
+ id: string;
7
+ v: number;
8
+ reference: string;
9
+ content: string;
10
+ contentType: string; // e.g. 'hack'
11
+ }
12
+
13
+ export interface ExtractSubjectsCommand {
14
+ id: string;
15
+ type: 'ExtractSubjectsCommand';
16
+ payload: ExtractSubjectsCommandBody;
17
+ }
18
+
19
+ export interface SubjectsExtracted {
20
+ id: string;
21
+ type: 'SubjectsExtracted',
22
+ payload: SubjectsExtractedBody
23
+ }
24
+
25
+ export interface SubjectsExtractedBody {
26
+ id: string,
27
+ v: number,
28
+ reference: string,
29
+ contentType: string;
30
+ subjects: ExtractedSubject[]
31
+ }
@@ -1,21 +1,21 @@
1
- import { Hack } from './hack';
2
-
3
- export interface HackCreatedEvent {
4
- id: string;
5
- type: 'HackCreated';
6
- payload: Hack;
7
- }
8
-
9
- export interface HackUpdatedEvent {
10
- id: string;
11
- type: 'HackUpdated';
12
- payload: Hack;
13
- }
14
-
15
- export interface HackDeletedEvent {
16
- id: string;
17
- type: 'HackDeleted';
18
- payload: Hack;
19
- }
20
-
21
- export type HackChangedEvent = HackCreatedEvent | HackUpdatedEvent | HackDeletedEvent;
1
+ import { Hack } from './hack';
2
+
3
+ export interface HackCreatedEvent {
4
+ id: string;
5
+ type: 'HackCreated';
6
+ payload: Hack;
7
+ }
8
+
9
+ export interface HackUpdatedEvent {
10
+ id: string;
11
+ type: 'HackUpdated';
12
+ payload: Hack;
13
+ }
14
+
15
+ export interface HackDeletedEvent {
16
+ id: string;
17
+ type: 'HackDeleted';
18
+ payload: Hack;
19
+ }
20
+
21
+ export type HackChangedEvent = HackCreatedEvent | HackUpdatedEvent | HackDeletedEvent;
@@ -1,21 +1,21 @@
1
- /**
2
- * HackPublished events were introduce in March 2023 and have not been backfilled. Previously PendingHackDeleted events were used.
3
- */
4
- export interface HackPublishedEvent {
5
- id: string;
6
- type: 'HackPublished';
7
- payload: {
8
- /** set as the hack id */
9
- id: string;
10
- /** set as the hack version */
11
- v: number;
12
- draftHackId: string;
13
- draftHackVersion: number;
14
- hackId: string;
15
- hackVersion: number;
16
- baseLocaleHackId: string;
17
- // added very shortly after the event was introduced so a handful of historic events may be missing this property
18
- publishCompletedAt: string
19
- publishStartedAt: string;
20
- }
21
- }
1
+ /**
2
+ * HackPublished events were introduce in March 2023 and have not been backfilled. Previously PendingHackDeleted events were used.
3
+ */
4
+ export interface HackPublishedEvent {
5
+ id: string;
6
+ type: 'HackPublished';
7
+ payload: {
8
+ /** set as the hack id */
9
+ id: string;
10
+ /** set as the hack version */
11
+ v: number;
12
+ draftHackId: string;
13
+ draftHackVersion: number;
14
+ hackId: string;
15
+ hackVersion: number;
16
+ baseLocaleHackId: string;
17
+ // added very shortly after the event was introduced so a handful of historic events may be missing this property
18
+ publishCompletedAt: string
19
+ publishStartedAt: string;
20
+ }
21
+ }
@@ -1,21 +1,21 @@
1
- import { HackWithVoice } from './hack-with-voice';
2
-
3
- export interface HackWithVoiceCreatedEvent {
4
- id: string;
5
- type: 'HackWithVoiceCreated';
6
- payload: HackWithVoice;
7
- }
8
-
9
- export interface HackWithVoiceUpdatedEvent {
10
- id: string;
11
- type: 'HackWithVoiceUpdated';
12
- payload: HackWithVoice;
13
- }
14
-
15
- export interface HackWithVoiceDeletedEvent {
16
- id: string;
17
- type: 'HackWithVoiceDeleted';
18
- payload: HackWithVoice;
19
- }
20
-
1
+ import { HackWithVoice } from './hack-with-voice';
2
+
3
+ export interface HackWithVoiceCreatedEvent {
4
+ id: string;
5
+ type: 'HackWithVoiceCreated';
6
+ payload: HackWithVoice;
7
+ }
8
+
9
+ export interface HackWithVoiceUpdatedEvent {
10
+ id: string;
11
+ type: 'HackWithVoiceUpdated';
12
+ payload: HackWithVoice;
13
+ }
14
+
15
+ export interface HackWithVoiceDeletedEvent {
16
+ id: string;
17
+ type: 'HackWithVoiceDeleted';
18
+ payload: HackWithVoice;
19
+ }
20
+
21
21
  export type HackWithVoiceChangedEvent = HackWithVoiceCreatedEvent | HackWithVoiceUpdatedEvent | HackWithVoiceDeletedEvent;
@@ -1,36 +1,36 @@
1
- import { Segment } from '../segment/segment';
2
-
3
- /**
4
- * HackWithVoice contains the Hack segments a a few basic Hack fields, it does not contain other Hack information.
5
- * This decision was made due to the complexity of editorialTags and updating them.
6
- */
7
- export interface HackWithVoice {
8
- /** NOT the id of the hack. Use hackId. The id cannot be the hackId as otherwise id would be duplicated for each voice which would break message replay */
9
- id: string;
10
- /** The id of the hack */
11
- hackId: string;
12
- baseLocaleHackId: string;
13
- /** The id of voice used to generate the audio */
14
- voiceId: string;
15
- /** True if this is the default voice */
16
- isDefaultVoice: boolean;
17
- v: number;
18
- createdAt: string;
19
- updatedAt: string;
20
-
21
- /** introduced Aug 2025. Will be on all hacks republished since then **/
22
- publishCompletedAt?: string;
23
-
24
- segments: {
25
- favouriteQuote: Segment;
26
- inANutshell: Segment;
27
- introduction: Segment;
28
- insights: Segment[];
29
- conclusion: Segment;
30
- // composite segments
31
- overview: Segment;
32
- shareableOverview: Segment;
33
- hereAreTheInsights: Segment;
34
- putInAction?: Segment;
35
- }
36
- }
1
+ import { Segment } from '../segment/segment';
2
+
3
+ /**
4
+ * HackWithVoice contains the Hack segments a a few basic Hack fields, it does not contain other Hack information.
5
+ * This decision was made due to the complexity of editorialTags and updating them.
6
+ */
7
+ export interface HackWithVoice {
8
+ /** NOT the id of the hack. Use hackId. The id cannot be the hackId as otherwise id would be duplicated for each voice which would break message replay */
9
+ id: string;
10
+ /** The id of the hack */
11
+ hackId: string;
12
+ baseLocaleHackId: string;
13
+ /** The id of voice used to generate the audio */
14
+ voiceId: string;
15
+ /** True if this is the default voice */
16
+ isDefaultVoice: boolean;
17
+ v: number;
18
+ createdAt: string;
19
+ updatedAt: string;
20
+
21
+ /** introduced Aug 2025. Will be on all hacks republished since then **/
22
+ publishCompletedAt?: string;
23
+
24
+ segments: {
25
+ favouriteQuote: Segment;
26
+ inANutshell: Segment;
27
+ introduction: Segment;
28
+ insights: Segment[];
29
+ conclusion: Segment;
30
+ // composite segments
31
+ overview: Segment;
32
+ shareableOverview: Segment;
33
+ hereAreTheInsights: Segment;
34
+ putInAction?: Segment;
35
+ }
36
+ }