@uptime.app/contracts 3.0.54 → 4.0.0-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 (258) hide show
  1. package/dist/cjs/app-hack/app-hack-metadata.d.ts +1 -0
  2. package/dist/cjs/app-hack/app-hack-metadata.d.ts.map +1 -1
  3. package/dist/cjs/cms-hack/cms-searchable-hack.d.ts +2 -0
  4. package/dist/cjs/cms-hack/cms-searchable-hack.d.ts.map +1 -1
  5. package/dist/cjs/draft-hack/draft-hack.d.ts +2 -0
  6. package/dist/cjs/draft-hack/draft-hack.d.ts.map +1 -1
  7. package/dist/cjs/draft-hack-generation/draft-hack-generation.d.ts +2 -0
  8. package/dist/cjs/draft-hack-generation/draft-hack-generation.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/flashcard/flashcard.d.ts +3 -1
  12. package/dist/cjs/flashcard/flashcard.d.ts.map +1 -1
  13. package/dist/cjs/hack/hack.d.ts +3 -0
  14. package/dist/cjs/hack/hack.d.ts.map +1 -1
  15. package/dist/cjs/hack-mapping/app-hack-metadata.d.ts.map +1 -1
  16. package/dist/cjs/hack-mapping/app-hack-metadata.js +1 -0
  17. package/dist/cjs/hack-mapping/app-hack-metadata.js.map +1 -1
  18. package/dist/cjs/identity-provider/identity-provider.d.ts +0 -4
  19. package/dist/cjs/identity-provider/identity-provider.d.ts.map +1 -1
  20. package/dist/cjs/index.d.ts +2 -0
  21. package/dist/cjs/index.d.ts.map +1 -1
  22. package/dist/cjs/index.js +2 -0
  23. package/dist/cjs/index.js.map +1 -1
  24. package/dist/cjs/interest/interest.d.ts +1 -0
  25. package/dist/cjs/interest/interest.d.ts.map +1 -1
  26. package/dist/cjs/knowledge-source/knowledge-source.d.ts +2 -0
  27. package/dist/cjs/knowledge-source/knowledge-source.d.ts.map +1 -1
  28. package/dist/cjs/pending-hack/pending-hack.d.ts +2 -0
  29. package/dist/cjs/pending-hack/pending-hack.d.ts.map +1 -1
  30. package/dist/cjs/spark/spark.d.ts +1 -1
  31. package/dist/cjs/spark/spark.d.ts.map +1 -1
  32. package/dist/cjs/topics/primary-topic-mapping.d.ts +11 -0
  33. package/dist/cjs/topics/primary-topic-mapping.d.ts.map +1 -0
  34. package/dist/cjs/topics/primary-topic-mapping.js +119 -0
  35. package/dist/cjs/topics/primary-topic-mapping.js.map +1 -0
  36. package/dist/cjs/topics/primary-topic.d.ts +4 -0
  37. package/dist/cjs/topics/primary-topic.d.ts.map +1 -0
  38. package/dist/cjs/topics/primary-topic.js +3 -0
  39. package/dist/cjs/topics/primary-topic.js.map +1 -0
  40. package/dist/esm/app-hack/app-hack-metadata.d.ts +1 -0
  41. package/dist/esm/app-hack/app-hack-metadata.d.ts.map +1 -1
  42. package/dist/esm/cms-hack/cms-searchable-hack.d.ts +2 -0
  43. package/dist/esm/cms-hack/cms-searchable-hack.d.ts.map +1 -1
  44. package/dist/esm/draft-hack/draft-hack.d.ts +2 -0
  45. package/dist/esm/draft-hack/draft-hack.d.ts.map +1 -1
  46. package/dist/esm/draft-hack-generation/draft-hack-generation.d.ts +2 -0
  47. package/dist/esm/draft-hack-generation/draft-hack-generation.d.ts.map +1 -1
  48. package/dist/esm/enriched-hack/enriched-hack.d.ts +2 -0
  49. package/dist/esm/enriched-hack/enriched-hack.d.ts.map +1 -1
  50. package/dist/esm/flashcard/flashcard.d.ts +3 -1
  51. package/dist/esm/flashcard/flashcard.d.ts.map +1 -1
  52. package/dist/esm/hack/hack.d.ts +3 -0
  53. package/dist/esm/hack/hack.d.ts.map +1 -1
  54. package/dist/esm/hack-mapping/app-hack-metadata.d.ts.map +1 -1
  55. package/dist/esm/hack-mapping/app-hack-metadata.js +1 -0
  56. package/dist/esm/hack-mapping/app-hack-metadata.js.map +1 -1
  57. package/dist/esm/identity-provider/identity-provider.d.ts +0 -4
  58. package/dist/esm/identity-provider/identity-provider.d.ts.map +1 -1
  59. package/dist/esm/index.d.ts +2 -0
  60. package/dist/esm/index.d.ts.map +1 -1
  61. package/dist/esm/index.js +2 -0
  62. package/dist/esm/index.js.map +1 -1
  63. package/dist/esm/interest/interest.d.ts +1 -0
  64. package/dist/esm/interest/interest.d.ts.map +1 -1
  65. package/dist/esm/knowledge-source/knowledge-source.d.ts +2 -0
  66. package/dist/esm/knowledge-source/knowledge-source.d.ts.map +1 -1
  67. package/dist/esm/pending-hack/pending-hack.d.ts +2 -0
  68. package/dist/esm/pending-hack/pending-hack.d.ts.map +1 -1
  69. package/dist/esm/spark/spark.d.ts +1 -1
  70. package/dist/esm/spark/spark.d.ts.map +1 -1
  71. package/dist/esm/topics/primary-topic-mapping.d.ts +11 -0
  72. package/dist/esm/topics/primary-topic-mapping.d.ts.map +1 -0
  73. package/dist/esm/topics/primary-topic-mapping.js +114 -0
  74. package/dist/esm/topics/primary-topic-mapping.js.map +1 -0
  75. package/dist/esm/topics/primary-topic.d.ts +4 -0
  76. package/dist/esm/topics/primary-topic.d.ts.map +1 -0
  77. package/dist/esm/topics/primary-topic.js +2 -0
  78. package/dist/esm/topics/primary-topic.js.map +1 -0
  79. package/package.json +2 -2
  80. package/src/access-control/collection-access-control.ts +28 -28
  81. package/src/access-control/hack-access-control.ts +32 -32
  82. package/src/access-control/profile-access-control.ts +27 -27
  83. package/src/app-hack/app-full-hack.ts +9 -9
  84. package/src/app-hack/app-hack-metadata.ts +62 -61
  85. package/src/app-hack/app-restricted-hack.ts +22 -22
  86. package/src/b2b-content-access/b2b-content-access.ts +57 -57
  87. package/src/b2b-organisation/b2b-carousel.ts +33 -33
  88. package/src/b2b-organisation/b2b-org-idp-mapping.ts +27 -27
  89. package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
  90. package/src/b2b-organisation/b2b-organisation-group-events.ts +21 -21
  91. package/src/b2b-organisation/b2b-organisation-group-membership-events.ts +21 -21
  92. package/src/b2b-organisation/b2b-organisation-group-membership.ts +17 -17
  93. package/src/b2b-organisation/b2b-organisation-group.ts +42 -42
  94. package/src/b2b-organisation/b2b-organisation-invitation.ts +45 -45
  95. package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
  96. package/src/b2b-organisation/b2b-organisation-member.ts +19 -19
  97. package/src/b2b-organisation/b2b-organisation.ts +38 -38
  98. package/src/brand/brand-events.ts +21 -21
  99. package/src/brand/brand.ts +77 -77
  100. package/src/catalogue/catalogue.ts +152 -152
  101. package/src/cms-hack/cms-searchable-hack.ts +47 -44
  102. package/src/collection/collection-events.ts +21 -21
  103. package/src/collection/collection.ts +59 -59
  104. package/src/collection/enriched-collection-events.ts +18 -18
  105. package/src/collection/enriched-collection.ts +65 -65
  106. package/src/course/course-events.ts +20 -20
  107. package/src/course/course.ts +25 -25
  108. package/src/course-enrollment/course-enrollment-events.ts +21 -21
  109. package/src/course-enrollment/course-enrollment.ts +36 -36
  110. package/src/creator/creator-events.ts +32 -32
  111. package/src/creator/creator.ts +7 -7
  112. package/src/distribution/collection-distribution.ts +17 -17
  113. package/src/distribution/distribution-events.ts +61 -61
  114. package/src/distribution/hack-distribution.ts +18 -18
  115. package/src/draft-hack/draft-hack-events.ts +21 -21
  116. package/src/draft-hack/draft-hack.ts +192 -190
  117. package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
  118. package/src/draft-hack-generation/draft-hack-generation-events.ts +52 -52
  119. package/src/draft-hack-generation/draft-hack-generation.ts +42 -39
  120. package/src/enriched-b2b-organisation/enriched-b2b-organisation-events.ts +21 -21
  121. package/src/enriched-b2b-organisation/enriched-b2b-organisation.ts +37 -37
  122. package/src/enriched-hack/enriched-hack-events.ts +21 -21
  123. package/src/enriched-hack/enriched-hack.ts +111 -109
  124. package/src/enrichment-asset/hack-enrichment-video-events.ts +55 -55
  125. package/src/enrichment-asset/hack-enrichment-video.ts +40 -40
  126. package/src/entitlement/user-entitlements-commands.ts +54 -54
  127. package/src/entitlement/user-entitlements-events.ts +29 -29
  128. package/src/entitlement/user-entitlements.ts +18 -18
  129. package/src/flashcard/flashcard-events.ts +85 -85
  130. package/src/flashcard/flashcard.ts +161 -138
  131. package/src/hack/extracted-subject.ts +31 -31
  132. package/src/hack/hack-events.ts +21 -21
  133. package/src/hack/hack-published.ts +21 -21
  134. package/src/hack/hack-with-voice-events.ts +20 -20
  135. package/src/hack/hack-with-voice.ts +36 -36
  136. package/src/hack/hack.ts +130 -127
  137. package/src/hack/publish-hack-command.ts +20 -20
  138. package/src/hack/republish-hack-command.ts +20 -20
  139. package/src/hack-mapping/access-helper.ts +6 -6
  140. package/src/hack-mapping/app-full-hack.test.ts +13 -13
  141. package/src/hack-mapping/app-full-hack.ts +14 -14
  142. package/src/hack-mapping/app-hack-metadata.test.ts +22 -22
  143. package/src/hack-mapping/app-hack-metadata.ts +83 -82
  144. package/src/hack-mapping/app-restricted-hack.test.ts +12 -12
  145. package/src/hack-mapping/app-restricted-hack.ts +21 -21
  146. package/src/hack-mapping/remove-undefined-fields.ts +9 -9
  147. package/src/hack-mapping/test-data/enriched-hack.json +2569 -2564
  148. package/src/hack-mapping/test-data/expected-app-full-hack.json +2502 -2497
  149. package/src/hack-mapping/test-data/expected-app-hack-metadata.json +86 -81
  150. package/src/hack-mapping/test-data/expected-app-restricted-hack.json +792 -787
  151. package/src/hack-metadata/hack-metadata-events.ts +21 -21
  152. package/src/hack-metadata/hack-metadata.ts +17 -17
  153. package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
  154. package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
  155. package/src/hack-statistics/hack-statistics-events.ts +21 -21
  156. package/src/hack-statistics/hack-statistics.ts +9 -9
  157. package/src/hackbot/hack-generation-commands.ts +45 -45
  158. package/src/hackbot/hack-generation-trigger-events.ts +21 -21
  159. package/src/hackbot/hack-generation-trigger.ts +57 -57
  160. package/src/history/history-events.ts +21 -21
  161. package/src/history/history.ts +46 -46
  162. package/src/identity-provider/domain-identity-provider-events.ts +20 -20
  163. package/src/identity-provider/domain-identity-provider.ts +10 -10
  164. package/src/identity-provider/identity-provider-events.ts +20 -20
  165. package/src/identity-provider/identity-provider.ts +47 -51
  166. package/src/index.ts +223 -220
  167. package/src/interest/interest-events.ts +21 -21
  168. package/src/interest/interest.ts +16 -15
  169. package/src/knowledge-source/knowledge-source-events.ts +21 -21
  170. package/src/knowledge-source/knowledge-source.ts +46 -43
  171. package/src/knowledge-source-parsing/knowledge-source-metadata.ts +58 -58
  172. package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
  173. package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +30 -30
  174. package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
  175. package/src/knowledge-source-parsing/podcast-parsing-events.ts +28 -28
  176. package/src/knowledge-source-parsing/user-hack-generation-options.ts +7 -7
  177. package/src/learn-upon/get-sqsso-url.ts +13 -13
  178. package/src/learn-upon/learn-upon-commands.ts +33 -33
  179. package/src/learn-upon/learn-upon-course-enrollment-events.ts +21 -21
  180. package/src/learn-upon/learn-upon-course-enrollment.ts +62 -62
  181. package/src/learn-upon/learn-upon-course-events.ts +21 -21
  182. package/src/learn-upon/learn-upon-course.ts +108 -108
  183. package/src/learn-upon/learn-upon-portal-events.ts +20 -20
  184. package/src/learn-upon/learn-upon-portal.ts +12 -12
  185. package/src/learn-upon/learn-upon-user-mapping-events.ts +18 -18
  186. package/src/learn-upon/learn-upon-user-mapping.ts +9 -9
  187. package/src/learn-upon/learn-upon-webhook-events.ts +80 -80
  188. package/src/learn-upon/learn-upon-webhook-types.ts +346 -346
  189. package/src/learn-upon/unenroll.ts +6 -6
  190. package/src/localisation/live-locales.ts +45 -45
  191. package/src/localisation/locale-language.ts +4 -4
  192. package/src/localisation/supported-languages.ts +11 -11
  193. package/src/localisation/supported-locales.ts +67 -67
  194. package/src/message-bus/context.ts +7 -7
  195. package/src/moderation/hack-moderation-result-events.ts +18 -18
  196. package/src/moderation/hack-moderation-result.ts +27 -27
  197. package/src/partner/partner-events.ts +21 -21
  198. package/src/partner/partner.ts +7 -7
  199. package/src/pending-hack/pending-hack-events.ts +20 -20
  200. package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
  201. package/src/pending-hack/pending-hack-with-voice.ts +25 -25
  202. package/src/pending-hack/pending-hack.ts +80 -78
  203. package/src/preferences/preferences-events.ts +15 -15
  204. package/src/preferences/preferences.ts +35 -35
  205. package/src/profile/profile-events.ts +41 -41
  206. package/src/profile/profile.ts +36 -36
  207. package/src/profile/translated-profile.ts +13 -13
  208. package/src/referral/referral-events.ts +41 -41
  209. package/src/referral/referral.ts +76 -76
  210. package/src/saved/saved-collection-events.ts +19 -19
  211. package/src/saved/saved-collection.ts +8 -8
  212. package/src/segment/segment-commands.ts +75 -75
  213. package/src/segment/segment-events.ts +42 -42
  214. package/src/segment/segment-with-voice.ts +8 -8
  215. package/src/segment/segment.ts +82 -82
  216. package/src/service-simulator/mock-request-response.ts +17 -17
  217. package/src/skin/skin-events.ts +21 -21
  218. package/src/skin/skin.ts +6 -6
  219. package/src/spark/spark-board-read-model.ts +17 -17
  220. package/src/spark/spark-board.ts +12 -12
  221. package/src/spark/spark-events.ts +42 -42
  222. package/src/spark/spark.ts +74 -75
  223. package/src/text-analysis/hack-categories-extracted-events.ts +24 -24
  224. package/src/text-analysis/hack-categories-extracted.ts +31 -31
  225. package/src/text-analysis/hack-entities-extracted-events.ts +24 -24
  226. package/src/text-analysis/hack-entities-extracted.ts +38 -38
  227. package/src/text-analysis/hack-keywords-extracted-events.ts +24 -24
  228. package/src/text-analysis/hack-keywords-extracted.ts +23 -23
  229. package/src/text-analysis/hack-topics-extracted-events.ts +24 -24
  230. package/src/text-analysis/hack-topics-extracted.ts +31 -31
  231. package/src/text-to-speech/create-speech-commands.ts +22 -22
  232. package/src/text-to-speech/speech-created-events.ts +10 -10
  233. package/src/text-to-speech/supported-voices.ts +222 -222
  234. package/src/text-to-speech/text-segment.ts +29 -29
  235. package/src/theme/theme-events.ts +21 -21
  236. package/src/theme/theme.ts +68 -68
  237. package/src/topics/primary-topic-mapping.test.ts +87 -0
  238. package/src/topics/primary-topic-mapping.ts +136 -0
  239. package/src/topics/primary-topic.ts +3 -0
  240. package/src/translation/translation-events.ts +73 -73
  241. package/src/translation/translation.ts +25 -25
  242. package/src/trending/trending-events.ts +21 -21
  243. package/src/trending/trending-hacks.ts +8 -8
  244. package/src/user/cognito-user-authentication-log.ts +7 -7
  245. package/src/user/get-user.ts +63 -63
  246. package/src/user/user-events.ts +39 -39
  247. package/src/user-acl/user-acl-utils.test.ts +273 -273
  248. package/src/user-acl/user-acl-utils.ts +176 -176
  249. package/src/user-context/user-context-events.ts +21 -21
  250. package/src/user-context/user-context.ts +15 -15
  251. package/src/user-notification-context/user-notification-context-events.ts +21 -21
  252. package/src/user-notification-context/user-notification-context.ts +9 -9
  253. package/src/user-statistics/user-statistics-events.ts +97 -97
  254. package/src/user-statistics/user-statistics.ts +82 -82
  255. package/src/video-cropping/video-cropping-events.ts +43 -43
  256. package/src/video-cropping/video-metadata.ts +12 -12
  257. package/tsconfig.cjs.json +7 -7
  258. package/tsconfig.npm.json +22 -22
@@ -1,78 +1,80 @@
1
- /* eslint-disable @typescript-eslint/ban-types */
2
- import { ExtractedSubject } from '../hack/extracted-subject';
3
- import { HackAffiliate, HackContributor, HackType, HackSourceData, HackTopic, HackExternalLink } from '../hack/hack';
4
- import { Segment } from '../segment/segment';
5
-
6
- export interface PendingHack {
7
- id: string;
8
- /** use @uptime.app/localisation-contracts */
9
- locale: string;
10
- baseLocaleHackId: string;
11
- v: number;
12
- createdAt: string;
13
- updatedAt: string;
14
- owner?: string;
15
- tenant?: string;
16
- draftHackId: string;
17
- draftHackVersion: number;
18
- hackId: string;
19
- sourceId?: string;
20
- title: string;
21
- themeId: string;
22
- coverUrl?: string;
23
- /** Added in July 2024. This is the URL of the cover image that is free to use without any copyright. */
24
- copyrightFreeCoverUrl?: string;
25
- affiliate?: HackAffiliate;
26
- topics: HackTopic[];
27
- contributors: HackContributor[];
28
- type: HackType;
29
- sourceData?: HackSourceData;
30
- notifications?: {
31
- aiGeneratedText?: string;
32
- humanCuratedText?: string;
33
- };
34
- segments: {
35
- favouriteQuote: Segment | {};
36
- inANutshell: Segment | {};
37
- introduction: Segment | {};
38
- insights: [
39
- (Segment | {}),
40
- (Segment | {}),
41
- (Segment | {})
42
- ];
43
- conclusion: Segment | {};
44
- // composite segments
45
- overview: Segment | {};
46
- shareableOverview: Segment | {};
47
- hereAreTheInsights: Segment | {};
48
- putInAction?: Segment | {};
49
- };
50
- externalLink?: HackExternalLink;
51
- subjects?: ExtractedSubject[];
52
- }
53
-
54
- export interface CompletePendingHack extends PendingHack {
55
- segments: {
56
- favouriteQuote: Segment;
57
- inANutshell: Segment;
58
- introduction: Segment;
59
- insights: [
60
- Segment,
61
- Segment,
62
- Segment
63
- ];
64
- conclusion: Segment;
65
- // composite segments
66
- overview: Segment;
67
- shareableOverview: Segment;
68
- hereAreTheInsights: Segment;
69
- putInAction?: Segment;
70
- };
71
- subjects: ExtractedSubject[];
72
- }
73
-
74
- export type CompletePendingHackWithPutInAction = CompletePendingHack & {
75
- segments: {
76
- putInAction: Segment;
77
- }
78
- };
1
+ /* eslint-disable @typescript-eslint/ban-types */
2
+ import { ExtractedSubject } from '../hack/extracted-subject';
3
+ import { HackAffiliate, HackContributor, HackType, HackSourceData, HackTopic, HackExternalLink } from '../hack/hack';
4
+ import { Segment } from '../segment/segment';
5
+ import { PrimaryTopic } from '../topics/primary-topic';
6
+
7
+ export interface PendingHack {
8
+ id: string;
9
+ /** use @uptime.app/localisation-contracts */
10
+ locale: string;
11
+ baseLocaleHackId: string;
12
+ v: number;
13
+ createdAt: string;
14
+ updatedAt: string;
15
+ owner?: string;
16
+ tenant?: string;
17
+ draftHackId: string;
18
+ draftHackVersion: number;
19
+ hackId: string;
20
+ sourceId?: string;
21
+ title: string;
22
+ themeId: string;
23
+ coverUrl?: string;
24
+ /** Added in July 2024. This is the URL of the cover image that is free to use without any copyright. */
25
+ copyrightFreeCoverUrl?: string;
26
+ affiliate?: HackAffiliate;
27
+ topics: HackTopic[];
28
+ primaryTopics: PrimaryTopic[];
29
+ contributors: HackContributor[];
30
+ type: HackType;
31
+ sourceData?: HackSourceData;
32
+ notifications?: {
33
+ aiGeneratedText?: string;
34
+ humanCuratedText?: string;
35
+ };
36
+ segments: {
37
+ favouriteQuote: Segment | {};
38
+ inANutshell: Segment | {};
39
+ introduction: Segment | {};
40
+ insights: [
41
+ (Segment | {}),
42
+ (Segment | {}),
43
+ (Segment | {})
44
+ ];
45
+ conclusion: Segment | {};
46
+ // composite segments
47
+ overview: Segment | {};
48
+ shareableOverview: Segment | {};
49
+ hereAreTheInsights: Segment | {};
50
+ putInAction?: Segment | {};
51
+ };
52
+ externalLink?: HackExternalLink;
53
+ subjects?: ExtractedSubject[];
54
+ }
55
+
56
+ export interface CompletePendingHack extends PendingHack {
57
+ segments: {
58
+ favouriteQuote: Segment;
59
+ inANutshell: Segment;
60
+ introduction: Segment;
61
+ insights: [
62
+ Segment,
63
+ Segment,
64
+ Segment
65
+ ];
66
+ conclusion: Segment;
67
+ // composite segments
68
+ overview: Segment;
69
+ shareableOverview: Segment;
70
+ hereAreTheInsights: Segment;
71
+ putInAction?: Segment;
72
+ };
73
+ subjects: ExtractedSubject[];
74
+ }
75
+
76
+ export type CompletePendingHackWithPutInAction = CompletePendingHack & {
77
+ segments: {
78
+ putInAction: Segment;
79
+ }
80
+ };
@@ -1,15 +1,15 @@
1
- import { Preferences } from './preferences';
2
-
3
- export interface UserPreferencesCreatedEvent {
4
- id: string;
5
- type: 'UserPreferencesCreated';
6
- payload: Preferences;
7
- }
8
-
9
- export interface UserPreferencesUpdatedEvent {
10
- id: string;
11
- type: 'UserPreferencesUpdated';
12
- payload: Preferences;
13
- }
14
-
15
- export type UserPreferencesChangedEvent = UserPreferencesCreatedEvent | UserPreferencesUpdatedEvent;
1
+ import { Preferences } from './preferences';
2
+
3
+ export interface UserPreferencesCreatedEvent {
4
+ id: string;
5
+ type: 'UserPreferencesCreated';
6
+ payload: Preferences;
7
+ }
8
+
9
+ export interface UserPreferencesUpdatedEvent {
10
+ id: string;
11
+ type: 'UserPreferencesUpdated';
12
+ payload: Preferences;
13
+ }
14
+
15
+ export type UserPreferencesChangedEvent = UserPreferencesCreatedEvent | UserPreferencesUpdatedEvent;
@@ -1,35 +1,35 @@
1
- export type Preferences = PreferencesItem & UpdatablePreferences;
2
-
3
- interface PreferencesItem {
4
- id: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- userId: string;
9
- }
10
-
11
- export interface UpdatablePreferences {
12
- 'flashcards.showFlashcardsFromInsights': boolean;
13
- // ISO date, UTC. Required to figure out if to generate flashcards from insights in the flashcard-service: ViewedHack event times are compared against it.
14
- 'flashcards.showFlashcardsFromInsights.datePreferenceUpdated': string;
15
- 'notifications.backdrop.email': boolean;
16
- 'notifications.backdrop.push': boolean;
17
- 'notifications.challenges.email': boolean;
18
- 'notifications.challenges.push': boolean;
19
- 'notifications.generalReminders.email': boolean;
20
- 'notifications.generalReminders.push': boolean;
21
- 'notifications.getBackToUptime.email': boolean;
22
- 'notifications.getBackToUptime.push': boolean;
23
- 'notifications.getBackToUptime.timeToReceive': string;
24
- 'notifications.flashcards.newToday.email': boolean;
25
- 'notifications.flashcards.newToday.push': boolean;
26
- 'notifications.recommendedContent.email': boolean;
27
- 'notifications.recommendedContent.push': boolean;
28
- 'notifications.research.email': boolean;
29
- 'notifications.research.push': boolean;
30
- 'notifications.savedHacks.email': boolean;
31
- 'notifications.savedHacks.push': boolean;
32
- 'notifications.uptimeNews.email': boolean;
33
- 'notifications.uptimeNews.push': boolean;
34
- 'timezone': string;
35
- }
1
+ export type Preferences = PreferencesItem & UpdatablePreferences;
2
+
3
+ interface PreferencesItem {
4
+ id: string;
5
+ v: number;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ userId: string;
9
+ }
10
+
11
+ export interface UpdatablePreferences {
12
+ 'flashcards.showFlashcardsFromInsights': boolean;
13
+ // ISO date, UTC. Required to figure out if to generate flashcards from insights in the flashcard-service: ViewedHack event times are compared against it.
14
+ 'flashcards.showFlashcardsFromInsights.datePreferenceUpdated': string;
15
+ 'notifications.backdrop.email': boolean;
16
+ 'notifications.backdrop.push': boolean;
17
+ 'notifications.challenges.email': boolean;
18
+ 'notifications.challenges.push': boolean;
19
+ 'notifications.generalReminders.email': boolean;
20
+ 'notifications.generalReminders.push': boolean;
21
+ 'notifications.getBackToUptime.email': boolean;
22
+ 'notifications.getBackToUptime.push': boolean;
23
+ 'notifications.getBackToUptime.timeToReceive': string;
24
+ 'notifications.flashcards.newToday.email': boolean;
25
+ 'notifications.flashcards.newToday.push': boolean;
26
+ 'notifications.recommendedContent.email': boolean;
27
+ 'notifications.recommendedContent.push': boolean;
28
+ 'notifications.research.email': boolean;
29
+ 'notifications.research.push': boolean;
30
+ 'notifications.savedHacks.email': boolean;
31
+ 'notifications.savedHacks.push': boolean;
32
+ 'notifications.uptimeNews.email': boolean;
33
+ 'notifications.uptimeNews.push': boolean;
34
+ 'timezone': string;
35
+ }
@@ -1,41 +1,41 @@
1
- import { Profile } from './profile';
2
- import { TranslatedProfile } from './translated-profile';
3
-
4
- export interface ProfileCreatedEvent {
5
- id: string;
6
- type: 'ProfileCreated';
7
- payload: Profile;
8
- }
9
-
10
- export interface ProfileUpdatedEvent {
11
- id: string;
12
- type: 'ProfileUpdated';
13
- payload: Profile;
14
- }
15
-
16
- export interface ProfileDeletedEvent {
17
- id: string;
18
- type: 'ProfileDeleted';
19
- payload: Profile;
20
- }
21
-
22
- export interface TranslatedProfileCreatedEvent {
23
- id: string;
24
- type: 'TranslatedProfileCreated';
25
- payload: TranslatedProfile;
26
- }
27
-
28
- export interface TranslatedProfileUpdatedEvent {
29
- id: string;
30
- type: 'TranslatedProfileUpdated';
31
- payload: TranslatedProfile;
32
- }
33
-
34
- export interface TranslatedProfileDeletedEvent {
35
- id: string;
36
- type: 'TranslatedProfileDeleted';
37
- payload: TranslatedProfile;
38
- }
39
-
40
- export type ProfileChangedEvent = ProfileCreatedEvent | ProfileUpdatedEvent | ProfileDeletedEvent;
41
- export type TranslatedProfileChangedEvent = TranslatedProfileCreatedEvent | TranslatedProfileUpdatedEvent | TranslatedProfileDeletedEvent;
1
+ import { Profile } from './profile';
2
+ import { TranslatedProfile } from './translated-profile';
3
+
4
+ export interface ProfileCreatedEvent {
5
+ id: string;
6
+ type: 'ProfileCreated';
7
+ payload: Profile;
8
+ }
9
+
10
+ export interface ProfileUpdatedEvent {
11
+ id: string;
12
+ type: 'ProfileUpdated';
13
+ payload: Profile;
14
+ }
15
+
16
+ export interface ProfileDeletedEvent {
17
+ id: string;
18
+ type: 'ProfileDeleted';
19
+ payload: Profile;
20
+ }
21
+
22
+ export interface TranslatedProfileCreatedEvent {
23
+ id: string;
24
+ type: 'TranslatedProfileCreated';
25
+ payload: TranslatedProfile;
26
+ }
27
+
28
+ export interface TranslatedProfileUpdatedEvent {
29
+ id: string;
30
+ type: 'TranslatedProfileUpdated';
31
+ payload: TranslatedProfile;
32
+ }
33
+
34
+ export interface TranslatedProfileDeletedEvent {
35
+ id: string;
36
+ type: 'TranslatedProfileDeleted';
37
+ payload: TranslatedProfile;
38
+ }
39
+
40
+ export type ProfileChangedEvent = ProfileCreatedEvent | ProfileUpdatedEvent | ProfileDeletedEvent;
41
+ export type TranslatedProfileChangedEvent = TranslatedProfileCreatedEvent | TranslatedProfileUpdatedEvent | TranslatedProfileDeletedEvent;
@@ -1,36 +1,36 @@
1
- import { SupportedLocale } from '../localisation/supported-locales';
2
-
3
- export interface StoredProfile {
4
- id: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- avatarUrl: string;
9
- name: string;
10
- owner: string;
11
- /** Added and backfilled in March 2025 */
12
- tenant: string;
13
- handle: string;
14
- _sanitisedHandle?: string; // use to determinate uniqueness for a handle, despite the case of it
15
- headerImageUrl?: string;
16
- tags?: string[];
17
- links?: ProfileLink[];
18
- tagline?: string;
19
- description?: string;
20
- /** The locale (language and region) of the draft hack e.g. fr-FR. Mandatory property since 12/05/2023. */
21
- locale: SupportedLocale;
22
- }
23
-
24
- export type Profile = Omit<StoredProfile, '_sanitisedHandle'>;
25
-
26
- export interface ProfileLink {
27
- type: 'Other' | 'Twitter' | 'Facebook' | 'Youtube' | 'Medium' | 'Instagram' | 'Patreon' | 'TikTok' | 'LinkedIn' | 'LinkTree';
28
- url: string;
29
- }
30
-
31
- export interface ProfileMetadata {
32
- deleted: boolean;
33
- uptimeOwned: boolean;
34
- createdByFormerOrgMember?: boolean;
35
- avatarUrl: string;
36
- }
1
+ import { SupportedLocale } from '../localisation/supported-locales';
2
+
3
+ export interface StoredProfile {
4
+ id: string;
5
+ v: number;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ avatarUrl: string;
9
+ name: string;
10
+ owner: string;
11
+ /** Added and backfilled in March 2025 */
12
+ tenant: string;
13
+ handle: string;
14
+ _sanitisedHandle?: string; // use to determinate uniqueness for a handle, despite the case of it
15
+ headerImageUrl?: string;
16
+ tags?: string[];
17
+ links?: ProfileLink[];
18
+ tagline?: string;
19
+ description?: string;
20
+ /** The locale (language and region) of the draft hack e.g. fr-FR. Mandatory property since 12/05/2023. */
21
+ locale: SupportedLocale;
22
+ }
23
+
24
+ export type Profile = Omit<StoredProfile, '_sanitisedHandle'>;
25
+
26
+ export interface ProfileLink {
27
+ type: 'Other' | 'Twitter' | 'Facebook' | 'Youtube' | 'Medium' | 'Instagram' | 'Patreon' | 'TikTok' | 'LinkedIn' | 'LinkTree';
28
+ url: string;
29
+ }
30
+
31
+ export interface ProfileMetadata {
32
+ deleted: boolean;
33
+ uptimeOwned: boolean;
34
+ createdByFormerOrgMember?: boolean;
35
+ avatarUrl: string;
36
+ }
@@ -1,13 +1,13 @@
1
- import { SupportedLocale } from '../localisation/supported-locales';
2
-
3
- export interface TranslatedProfile {
4
- id: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- profileId: string;
9
- locale: SupportedLocale;
10
- tagline?: string;
11
- description?: string;
12
- tags?: string[];
13
- }
1
+ import { SupportedLocale } from '../localisation/supported-locales';
2
+
3
+ export interface TranslatedProfile {
4
+ id: string;
5
+ v: number;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ profileId: string;
9
+ locale: SupportedLocale;
10
+ tagline?: string;
11
+ description?: string;
12
+ tags?: string[];
13
+ }
@@ -1,41 +1,41 @@
1
- import { ReferralCredit, ReferralLink } from './referral';
2
-
3
- export interface ReferralCreditCreatedEvent {
4
- id: string;
5
- type: 'ReferralCreditCreated';
6
- payload: ReferralCredit;
7
- }
8
-
9
- export interface ReferralCreditUpdatedEvent {
10
- id: string;
11
- type: 'ReferralCreditUpdated';
12
- payload: ReferralCredit;
13
- }
14
-
15
- export interface ReferralCreditDeletedEvent {
16
- id: string;
17
- type: 'ReferralCreditDeleted';
18
- payload: ReferralCredit;
19
- }
20
-
21
- export type ReferralCreditChangedEvent = ReferralCreditCreatedEvent | ReferralCreditUpdatedEvent | ReferralCreditDeletedEvent;
22
-
23
- export interface ReferralLinkCreatedEvent {
24
- id: string;
25
- type: 'ReferralLinkCreated';
26
- payload: ReferralLink;
27
- }
28
-
29
- export interface ReferralLinkUpdatedEvent {
30
- id: string;
31
- type: 'ReferralLinkUpdated';
32
- payload: ReferralLink;
33
- }
34
-
35
- export interface ReferralLinkDeletedEvent {
36
- id: string;
37
- type: 'ReferralLinkDeleted';
38
- payload: ReferralLink;
39
- }
40
-
41
- export type ReferralLinkChangedEvent = ReferralLinkCreatedEvent | ReferralLinkUpdatedEvent | ReferralLinkDeletedEvent;
1
+ import { ReferralCredit, ReferralLink } from './referral';
2
+
3
+ export interface ReferralCreditCreatedEvent {
4
+ id: string;
5
+ type: 'ReferralCreditCreated';
6
+ payload: ReferralCredit;
7
+ }
8
+
9
+ export interface ReferralCreditUpdatedEvent {
10
+ id: string;
11
+ type: 'ReferralCreditUpdated';
12
+ payload: ReferralCredit;
13
+ }
14
+
15
+ export interface ReferralCreditDeletedEvent {
16
+ id: string;
17
+ type: 'ReferralCreditDeleted';
18
+ payload: ReferralCredit;
19
+ }
20
+
21
+ export type ReferralCreditChangedEvent = ReferralCreditCreatedEvent | ReferralCreditUpdatedEvent | ReferralCreditDeletedEvent;
22
+
23
+ export interface ReferralLinkCreatedEvent {
24
+ id: string;
25
+ type: 'ReferralLinkCreated';
26
+ payload: ReferralLink;
27
+ }
28
+
29
+ export interface ReferralLinkUpdatedEvent {
30
+ id: string;
31
+ type: 'ReferralLinkUpdated';
32
+ payload: ReferralLink;
33
+ }
34
+
35
+ export interface ReferralLinkDeletedEvent {
36
+ id: string;
37
+ type: 'ReferralLinkDeleted';
38
+ payload: ReferralLink;
39
+ }
40
+
41
+ export type ReferralLinkChangedEvent = ReferralLinkCreatedEvent | ReferralLinkUpdatedEvent | ReferralLinkDeletedEvent;