@uptime.app/contracts 3.0.52-rc.2 → 3.0.52

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 (254) hide show
  1. package/dist/cjs/app-hack/app-hack-metadata.d.ts +0 -1
  2. package/dist/cjs/app-hack/app-hack-metadata.d.ts.map +1 -1
  3. package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.d.ts +6 -0
  4. package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.d.ts.map +1 -1
  5. package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.js +6 -0
  6. package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.js.map +1 -1
  7. package/dist/cjs/b2b-organisation/b2b-organisation-group.d.ts +0 -1
  8. package/dist/cjs/b2b-organisation/b2b-organisation-group.d.ts.map +1 -1
  9. package/dist/cjs/b2b-organisation/b2b-organisation-group.js +1 -23
  10. package/dist/cjs/b2b-organisation/b2b-organisation-group.js.map +1 -1
  11. package/dist/cjs/cms-hack/cms-searchable-hack.d.ts +0 -2
  12. package/dist/cjs/cms-hack/cms-searchable-hack.d.ts.map +1 -1
  13. package/dist/cjs/draft-hack/draft-hack.d.ts +0 -2
  14. package/dist/cjs/draft-hack/draft-hack.d.ts.map +1 -1
  15. package/dist/cjs/enriched-hack/enriched-hack.d.ts +0 -2
  16. package/dist/cjs/enriched-hack/enriched-hack.d.ts.map +1 -1
  17. package/dist/cjs/hack/hack.d.ts +0 -2
  18. package/dist/cjs/hack/hack.d.ts.map +1 -1
  19. package/dist/cjs/hack-mapping/app-hack-metadata.d.ts.map +1 -1
  20. package/dist/cjs/hack-mapping/app-hack-metadata.js +0 -1
  21. package/dist/cjs/hack-mapping/app-hack-metadata.js.map +1 -1
  22. package/dist/cjs/index.d.ts +0 -2
  23. package/dist/cjs/index.d.ts.map +1 -1
  24. package/dist/cjs/index.js +0 -2
  25. package/dist/cjs/index.js.map +1 -1
  26. package/dist/cjs/pending-hack/pending-hack.d.ts +0 -2
  27. package/dist/cjs/pending-hack/pending-hack.d.ts.map +1 -1
  28. package/dist/cjs/spark/spark.d.ts +1 -1
  29. package/dist/cjs/spark/spark.d.ts.map +1 -1
  30. package/dist/esm/app-hack/app-hack-metadata.d.ts +0 -1
  31. package/dist/esm/app-hack/app-hack-metadata.d.ts.map +1 -1
  32. package/dist/esm/b2b-organisation/b2b-organisation-group-membership.d.ts +6 -0
  33. package/dist/esm/b2b-organisation/b2b-organisation-group-membership.d.ts.map +1 -1
  34. package/dist/esm/b2b-organisation/b2b-organisation-group-membership.js +5 -1
  35. package/dist/esm/b2b-organisation/b2b-organisation-group-membership.js.map +1 -1
  36. package/dist/esm/b2b-organisation/b2b-organisation-group.d.ts +0 -1
  37. package/dist/esm/b2b-organisation/b2b-organisation-group.d.ts.map +1 -1
  38. package/dist/esm/b2b-organisation/b2b-organisation-group.js +0 -22
  39. package/dist/esm/b2b-organisation/b2b-organisation-group.js.map +1 -1
  40. package/dist/esm/cms-hack/cms-searchable-hack.d.ts +0 -2
  41. package/dist/esm/cms-hack/cms-searchable-hack.d.ts.map +1 -1
  42. package/dist/esm/draft-hack/draft-hack.d.ts +0 -2
  43. package/dist/esm/draft-hack/draft-hack.d.ts.map +1 -1
  44. package/dist/esm/enriched-hack/enriched-hack.d.ts +0 -2
  45. package/dist/esm/enriched-hack/enriched-hack.d.ts.map +1 -1
  46. package/dist/esm/hack/hack.d.ts +0 -2
  47. package/dist/esm/hack/hack.d.ts.map +1 -1
  48. package/dist/esm/hack-mapping/app-hack-metadata.d.ts.map +1 -1
  49. package/dist/esm/hack-mapping/app-hack-metadata.js +0 -1
  50. package/dist/esm/hack-mapping/app-hack-metadata.js.map +1 -1
  51. package/dist/esm/index.d.ts +0 -2
  52. package/dist/esm/index.d.ts.map +1 -1
  53. package/dist/esm/index.js +0 -2
  54. package/dist/esm/index.js.map +1 -1
  55. package/dist/esm/pending-hack/pending-hack.d.ts +0 -2
  56. package/dist/esm/pending-hack/pending-hack.d.ts.map +1 -1
  57. package/dist/esm/spark/spark.d.ts +1 -1
  58. package/dist/esm/spark/spark.d.ts.map +1 -1
  59. package/package.json +2 -2
  60. package/src/access-control/collection-access-control.ts +28 -28
  61. package/src/access-control/hack-access-control.ts +32 -32
  62. package/src/access-control/profile-access-control.ts +27 -27
  63. package/src/app-hack/app-full-hack.ts +9 -9
  64. package/src/app-hack/app-hack-metadata.ts +61 -62
  65. package/src/app-hack/app-restricted-hack.ts +22 -22
  66. package/src/b2b-content-access/b2b-content-access.ts +57 -57
  67. package/src/b2b-organisation/b2b-carousel.ts +33 -33
  68. package/src/b2b-organisation/b2b-org-idp-mapping.ts +27 -27
  69. package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
  70. package/src/b2b-organisation/b2b-organisation-group-events.ts +21 -21
  71. package/src/b2b-organisation/b2b-organisation-group-membership-events.ts +21 -21
  72. package/src/b2b-organisation/b2b-organisation-group-membership.ts +17 -10
  73. package/src/b2b-organisation/b2b-organisation-group.ts +43 -66
  74. package/src/b2b-organisation/b2b-organisation-invitation.ts +45 -45
  75. package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
  76. package/src/b2b-organisation/b2b-organisation-member.ts +19 -19
  77. package/src/b2b-organisation/b2b-organisation.ts +38 -38
  78. package/src/brand/brand-events.ts +21 -21
  79. package/src/brand/brand.ts +77 -77
  80. package/src/catalogue/catalogue.ts +152 -152
  81. package/src/cms-hack/cms-searchable-hack.ts +44 -47
  82. package/src/collection/collection-events.ts +21 -21
  83. package/src/collection/collection.ts +59 -59
  84. package/src/collection/enriched-collection-events.ts +18 -18
  85. package/src/collection/enriched-collection.ts +65 -65
  86. package/src/course/course-events.ts +20 -20
  87. package/src/course/course.ts +25 -25
  88. package/src/course-enrollment/course-enrollment-events.ts +21 -21
  89. package/src/course-enrollment/course-enrollment.ts +36 -36
  90. package/src/creator/creator-events.ts +32 -32
  91. package/src/creator/creator.ts +7 -7
  92. package/src/distribution/collection-distribution.ts +17 -17
  93. package/src/distribution/distribution-events.ts +61 -61
  94. package/src/distribution/hack-distribution.ts +18 -18
  95. package/src/draft-hack/draft-hack-events.ts +21 -21
  96. package/src/draft-hack/draft-hack.ts +190 -192
  97. package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
  98. package/src/draft-hack-generation/draft-hack-generation-events.ts +52 -52
  99. package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
  100. package/src/enriched-b2b-organisation/enriched-b2b-organisation-events.ts +21 -21
  101. package/src/enriched-b2b-organisation/enriched-b2b-organisation.ts +37 -37
  102. package/src/enriched-hack/enriched-hack-events.ts +21 -21
  103. package/src/enriched-hack/enriched-hack.ts +109 -111
  104. package/src/enrichment-asset/hack-enrichment-video-events.ts +55 -55
  105. package/src/enrichment-asset/hack-enrichment-video.ts +40 -40
  106. package/src/entitlement/user-entitlements-commands.ts +54 -54
  107. package/src/entitlement/user-entitlements-events.ts +29 -29
  108. package/src/entitlement/user-entitlements.ts +18 -18
  109. package/src/flashcard/flashcard-events.ts +85 -85
  110. package/src/flashcard/flashcard.ts +138 -138
  111. package/src/hack/extracted-subject.ts +31 -31
  112. package/src/hack/hack-events.ts +21 -21
  113. package/src/hack/hack-published.ts +21 -21
  114. package/src/hack/hack-with-voice-events.ts +20 -20
  115. package/src/hack/hack-with-voice.ts +36 -36
  116. package/src/hack/hack.ts +127 -129
  117. package/src/hack/publish-hack-command.ts +20 -20
  118. package/src/hack/republish-hack-command.ts +20 -20
  119. package/src/hack-mapping/access-helper.ts +6 -6
  120. package/src/hack-mapping/app-full-hack.test.ts +13 -13
  121. package/src/hack-mapping/app-full-hack.ts +14 -14
  122. package/src/hack-mapping/app-hack-metadata.test.ts +22 -22
  123. package/src/hack-mapping/app-hack-metadata.ts +82 -83
  124. package/src/hack-mapping/app-restricted-hack.test.ts +12 -12
  125. package/src/hack-mapping/app-restricted-hack.ts +21 -21
  126. package/src/hack-mapping/remove-undefined-fields.ts +9 -9
  127. package/src/hack-mapping/test-data/enriched-hack.json +2564 -2569
  128. package/src/hack-mapping/test-data/expected-app-full-hack.json +2497 -2502
  129. package/src/hack-mapping/test-data/expected-app-hack-metadata.json +81 -86
  130. package/src/hack-mapping/test-data/expected-app-restricted-hack.json +787 -792
  131. package/src/hack-metadata/hack-metadata-events.ts +21 -21
  132. package/src/hack-metadata/hack-metadata.ts +17 -17
  133. package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
  134. package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
  135. package/src/hack-statistics/hack-statistics-events.ts +21 -21
  136. package/src/hack-statistics/hack-statistics.ts +9 -9
  137. package/src/hackbot/hack-generation-commands.ts +45 -45
  138. package/src/hackbot/hack-generation-trigger-events.ts +21 -21
  139. package/src/hackbot/hack-generation-trigger.ts +57 -57
  140. package/src/history/history-events.ts +21 -21
  141. package/src/history/history.ts +46 -46
  142. package/src/identity-provider/domain-identity-provider-events.ts +20 -20
  143. package/src/identity-provider/domain-identity-provider.ts +10 -10
  144. package/src/identity-provider/identity-provider-events.ts +20 -20
  145. package/src/identity-provider/identity-provider.ts +46 -46
  146. package/src/index.ts +220 -223
  147. package/src/interest/interest-events.ts +21 -21
  148. package/src/interest/interest.ts +15 -15
  149. package/src/knowledge-source/knowledge-source-events.ts +21 -21
  150. package/src/knowledge-source/knowledge-source.ts +43 -43
  151. package/src/knowledge-source-parsing/knowledge-source-metadata.ts +58 -58
  152. package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
  153. package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +30 -30
  154. package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
  155. package/src/knowledge-source-parsing/podcast-parsing-events.ts +28 -28
  156. package/src/knowledge-source-parsing/user-hack-generation-options.ts +7 -7
  157. package/src/learn-upon/get-sqsso-url.ts +13 -13
  158. package/src/learn-upon/learn-upon-commands.ts +33 -33
  159. package/src/learn-upon/learn-upon-course-enrollment-events.ts +21 -21
  160. package/src/learn-upon/learn-upon-course-enrollment.ts +62 -62
  161. package/src/learn-upon/learn-upon-course-events.ts +21 -21
  162. package/src/learn-upon/learn-upon-course.ts +108 -108
  163. package/src/learn-upon/learn-upon-portal-events.ts +20 -20
  164. package/src/learn-upon/learn-upon-portal.ts +12 -12
  165. package/src/learn-upon/learn-upon-user-mapping-events.ts +18 -18
  166. package/src/learn-upon/learn-upon-user-mapping.ts +9 -9
  167. package/src/learn-upon/learn-upon-webhook-events.ts +80 -80
  168. package/src/learn-upon/learn-upon-webhook-types.ts +346 -346
  169. package/src/learn-upon/unenroll.ts +6 -6
  170. package/src/localisation/live-locales.ts +45 -45
  171. package/src/localisation/locale-language.ts +4 -4
  172. package/src/localisation/supported-languages.ts +11 -11
  173. package/src/localisation/supported-locales.ts +67 -67
  174. package/src/message-bus/context.ts +7 -7
  175. package/src/moderation/hack-moderation-result-events.ts +18 -18
  176. package/src/moderation/hack-moderation-result.ts +27 -27
  177. package/src/partner/partner-events.ts +21 -21
  178. package/src/partner/partner.ts +7 -7
  179. package/src/pending-hack/pending-hack-events.ts +20 -20
  180. package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
  181. package/src/pending-hack/pending-hack-with-voice.ts +25 -25
  182. package/src/pending-hack/pending-hack.ts +78 -80
  183. package/src/preferences/preferences-events.ts +15 -15
  184. package/src/preferences/preferences.ts +35 -35
  185. package/src/profile/profile-events.ts +41 -41
  186. package/src/profile/profile.ts +36 -36
  187. package/src/profile/translated-profile.ts +13 -13
  188. package/src/referral/referral-events.ts +41 -41
  189. package/src/referral/referral.ts +76 -76
  190. package/src/saved/saved-collection-events.ts +19 -19
  191. package/src/saved/saved-collection.ts +8 -8
  192. package/src/segment/segment-commands.ts +75 -75
  193. package/src/segment/segment-events.ts +42 -42
  194. package/src/segment/segment-with-voice.ts +8 -8
  195. package/src/segment/segment.ts +82 -82
  196. package/src/service-simulator/mock-request-response.ts +17 -17
  197. package/src/skin/skin-events.ts +21 -21
  198. package/src/skin/skin.ts +6 -6
  199. package/src/spark/spark-board-read-model.ts +17 -17
  200. package/src/spark/spark-board.ts +12 -12
  201. package/src/spark/spark-events.ts +42 -42
  202. package/src/spark/spark.ts +75 -76
  203. package/src/text-analysis/hack-categories-extracted-events.ts +24 -24
  204. package/src/text-analysis/hack-categories-extracted.ts +31 -31
  205. package/src/text-analysis/hack-entities-extracted-events.ts +24 -24
  206. package/src/text-analysis/hack-entities-extracted.ts +38 -38
  207. package/src/text-analysis/hack-keywords-extracted-events.ts +24 -24
  208. package/src/text-analysis/hack-keywords-extracted.ts +23 -23
  209. package/src/text-analysis/hack-topics-extracted-events.ts +24 -24
  210. package/src/text-analysis/hack-topics-extracted.ts +31 -31
  211. package/src/text-to-speech/create-speech-commands.ts +22 -22
  212. package/src/text-to-speech/speech-created-events.ts +10 -10
  213. package/src/text-to-speech/supported-voices.ts +222 -222
  214. package/src/text-to-speech/text-segment.ts +29 -29
  215. package/src/theme/theme-events.ts +21 -21
  216. package/src/theme/theme.ts +68 -68
  217. package/src/translation/translation-events.ts +73 -73
  218. package/src/translation/translation.ts +25 -25
  219. package/src/trending/trending-events.ts +21 -21
  220. package/src/trending/trending-hacks.ts +8 -8
  221. package/src/user/cognito-user-authentication-log.ts +7 -7
  222. package/src/user/get-user.ts +63 -63
  223. package/src/user/user-events.ts +39 -39
  224. package/src/user-acl/user-acl-utils.test.ts +273 -273
  225. package/src/user-acl/user-acl-utils.ts +176 -176
  226. package/src/user-context/user-context-events.ts +21 -21
  227. package/src/user-context/user-context.ts +15 -15
  228. package/src/user-notification-context/user-notification-context-events.ts +21 -21
  229. package/src/user-notification-context/user-notification-context.ts +9 -9
  230. package/src/user-statistics/user-statistics-events.ts +97 -97
  231. package/src/user-statistics/user-statistics.ts +82 -82
  232. package/src/video-cropping/video-cropping-events.ts +43 -43
  233. package/src/video-cropping/video-metadata.ts +12 -12
  234. package/tsconfig.cjs.json +7 -7
  235. package/tsconfig.npm.json +22 -22
  236. package/dist/cjs/topics/primary-topic-mapping.d.ts +0 -7
  237. package/dist/cjs/topics/primary-topic-mapping.d.ts.map +0 -1
  238. package/dist/cjs/topics/primary-topic-mapping.js +0 -98
  239. package/dist/cjs/topics/primary-topic-mapping.js.map +0 -1
  240. package/dist/cjs/topics/primary-topic.d.ts +0 -4
  241. package/dist/cjs/topics/primary-topic.d.ts.map +0 -1
  242. package/dist/cjs/topics/primary-topic.js +0 -3
  243. package/dist/cjs/topics/primary-topic.js.map +0 -1
  244. package/dist/esm/topics/primary-topic-mapping.d.ts +0 -7
  245. package/dist/esm/topics/primary-topic-mapping.d.ts.map +0 -1
  246. package/dist/esm/topics/primary-topic-mapping.js +0 -94
  247. package/dist/esm/topics/primary-topic-mapping.js.map +0 -1
  248. package/dist/esm/topics/primary-topic.d.ts +0 -4
  249. package/dist/esm/topics/primary-topic.d.ts.map +0 -1
  250. package/dist/esm/topics/primary-topic.js +0 -2
  251. package/dist/esm/topics/primary-topic.js.map +0 -1
  252. package/src/topics/primary-topic-mapping.test.ts +0 -36
  253. package/src/topics/primary-topic-mapping.ts +0 -110
  254. package/src/topics/primary-topic.ts +0 -3
@@ -1,21 +1,21 @@
1
- import { Brand } from './brand';
2
-
3
- export interface BrandCreatedEvent {
4
- id: string;
5
- type: 'BrandCreated';
6
- payload: Brand;
7
- }
8
-
9
- export interface BrandUpdatedEvent {
10
- id: string;
11
- type: 'BrandUpdated';
12
- payload: Brand;
13
- }
14
-
15
- export interface BrandDeletedEvent {
16
- id: string;
17
- type: 'BrandDeleted';
18
- payload: Brand;
19
- }
20
-
21
- export type BrandChangedEvent = BrandCreatedEvent | BrandUpdatedEvent | BrandDeletedEvent;
1
+ import { Brand } from './brand';
2
+
3
+ export interface BrandCreatedEvent {
4
+ id: string;
5
+ type: 'BrandCreated';
6
+ payload: Brand;
7
+ }
8
+
9
+ export interface BrandUpdatedEvent {
10
+ id: string;
11
+ type: 'BrandUpdated';
12
+ payload: Brand;
13
+ }
14
+
15
+ export interface BrandDeletedEvent {
16
+ id: string;
17
+ type: 'BrandDeleted';
18
+ payload: Brand;
19
+ }
20
+
21
+ export type BrandChangedEvent = BrandCreatedEvent | BrandUpdatedEvent | BrandDeletedEvent;
@@ -1,78 +1,78 @@
1
- import { SupportedLocale } from '../localisation/supported-locales';
2
-
3
- export interface Brand {
4
- id: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- name: string;
9
- skinId?: string;
10
- /** must unique across all brands */
11
- webAppDomain?: string;
12
- appName?: {
13
- [K in SupportedLocale]?: string
14
- };
15
- welcomeHacks?: WelcomeHack[];
16
- hasCustomTab?: boolean;
17
- customTabLongName?: {
18
- [K in SupportedLocale]?: string
19
- };
20
- customTabShortName?: {
21
- [K in SupportedLocale]?: string
22
- };
23
- /** added Jan 2026 and backfilled */
24
- defaultTab: 'discover' | 'custom';
25
- /** added Feb 2026 and backfilled */
26
- customTabCarousels: BrandCustomTabCarousel[];
27
- /** added Feb 2026. Max 5 links. */
28
- links?: BrandLink[];
29
- }
30
-
31
- export type BrandCustomTabCarousel =
32
- | 'recommended-b2b-hacks'
33
- | 'featured-course-enrollments'
34
- | 'organisation-scoped-featured-collections'
35
- | 'organisation-scoped-featured-hacks'
36
- | 'new-hacks-in-your-network'
37
- | 'featured-resources'
38
- | 'recommended-b2b-collections'
39
- | 'available-courses-in-catalog'
40
- | 'whole-org-hacks'
41
- | 'whole-org-collections';
42
-
43
- export interface BrandLink {
44
- imageUrl?: string;
45
- title: {
46
- [K in SupportedLocale]?: string
47
- };
48
- description: {
49
- [K in SupportedLocale]?: string
50
- };
51
- destination: BrandLinkDestination;
52
- cta: BrandLinkCta;
53
- }
54
-
55
- export type BrandLinkCta =
56
- | 'view'
57
- | 'open'
58
- | 'launch'
59
- | 'get-started'
60
- | 'start-now'
61
- | 'gain-access'
62
- | 'learn-more'
63
- | 'find-out-more'
64
- | 'watch-video'
65
- | 'read'
66
- | 'explore-here'
67
- | 'get-support';
68
-
69
- export type BrandLinkDestination = {
70
- type: 'external' | 'internal' | 'hack' | 'collection' | 'course';
71
- /** Can be a URL or an ID depending on the type */
72
- target: string;
73
- };
74
-
75
- // In case we need to add more properties to the BrandHack interface, we can do so here.
76
- export interface WelcomeHack {
77
- hackId: string;
1
+ import { SupportedLocale } from '../localisation/supported-locales';
2
+
3
+ export interface Brand {
4
+ id: string;
5
+ v: number;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ name: string;
9
+ skinId?: string;
10
+ /** must unique across all brands */
11
+ webAppDomain?: string;
12
+ appName?: {
13
+ [K in SupportedLocale]?: string
14
+ };
15
+ welcomeHacks?: WelcomeHack[];
16
+ hasCustomTab?: boolean;
17
+ customTabLongName?: {
18
+ [K in SupportedLocale]?: string
19
+ };
20
+ customTabShortName?: {
21
+ [K in SupportedLocale]?: string
22
+ };
23
+ /** added Jan 2026 and backfilled */
24
+ defaultTab: 'discover' | 'custom';
25
+ /** added Feb 2026 and backfilled */
26
+ customTabCarousels: BrandCustomTabCarousel[];
27
+ /** added Feb 2026. Max 5 links. */
28
+ links?: BrandLink[];
29
+ }
30
+
31
+ export type BrandCustomTabCarousel =
32
+ | 'recommended-b2b-hacks'
33
+ | 'featured-course-enrollments'
34
+ | 'organisation-scoped-featured-collections'
35
+ | 'organisation-scoped-featured-hacks'
36
+ | 'new-hacks-in-your-network'
37
+ | 'featured-resources'
38
+ | 'recommended-b2b-collections'
39
+ | 'available-courses-in-catalog'
40
+ | 'whole-org-hacks'
41
+ | 'whole-org-collections';
42
+
43
+ export interface BrandLink {
44
+ imageUrl?: string;
45
+ title: {
46
+ [K in SupportedLocale]?: string
47
+ };
48
+ description: {
49
+ [K in SupportedLocale]?: string
50
+ };
51
+ destination: BrandLinkDestination;
52
+ cta: BrandLinkCta;
53
+ }
54
+
55
+ export type BrandLinkCta =
56
+ | 'view'
57
+ | 'open'
58
+ | 'launch'
59
+ | 'get-started'
60
+ | 'start-now'
61
+ | 'gain-access'
62
+ | 'learn-more'
63
+ | 'find-out-more'
64
+ | 'watch-video'
65
+ | 'read'
66
+ | 'explore-here'
67
+ | 'get-support';
68
+
69
+ export type BrandLinkDestination = {
70
+ type: 'external' | 'internal' | 'hack' | 'collection' | 'course';
71
+ /** Can be a URL or an ID depending on the type */
72
+ target: string;
73
+ };
74
+
75
+ // In case we need to add more properties to the BrandHack interface, we can do so here.
76
+ export interface WelcomeHack {
77
+ hackId: string;
78
78
  }
@@ -1,152 +1,152 @@
1
- export interface Catalogue {
2
- id: string;
3
- /** used for permissions - who is allowed to edit this catalogue */
4
- owner: string;
5
- /** Added and backfilled Jan 2026 */
6
- tenant: string;
7
- v: number;
8
- createdAt: string;
9
- updatedAt: string;
10
- /** added December 2023 to make it easier to find catalogues in the UI */
11
- name: string;
12
- /** Added and backfilled December 2023 */
13
- accessType: CatalogueAccessType;
14
- }
15
-
16
- export type CatalogueAccessType = 'include' | 'exclude';
17
-
18
- export interface CatalogueCreatedEvent {
19
- id: string;
20
- type: 'CatalogueCreated';
21
- payload: Catalogue;
22
- }
23
-
24
- export interface CatalogueUpdatedEvent {
25
- id: string;
26
- type: 'CatalogueUpdated';
27
- payload: Catalogue;
28
- }
29
-
30
- export interface CatalogueDeletedEvent {
31
- id: string;
32
- type: 'CatalogueDeleted';
33
- payload: Catalogue;
34
- }
35
-
36
- export type CatalogueChangedEvent = CatalogueCreatedEvent | CatalogueUpdatedEvent | CatalogueDeletedEvent;
37
-
38
- export interface CatalogueHackEntry {
39
- id: string; // not really used but there for store reasons
40
- v: number;
41
- createdAt: string;
42
- updatedAt: string;
43
- catalogueId: string; // the catalogue name
44
- baseLocaleHackId: string; // use baseLocaleHackId as all translations should be in the same catalogue
45
- }
46
-
47
- export interface CatalogueHackEntryCreatedEvent {
48
- id: string;
49
- type: 'CatalogueHackEntryCreated';
50
- payload: CatalogueHackEntry;
51
- }
52
-
53
- export interface CatalogueHackEntryUpdatedEvent {
54
- id: string;
55
- type: 'CatalogueHackEntryUpdated';
56
- payload: CatalogueHackEntry;
57
- }
58
-
59
- export interface CatalogueHackEntryDeletedEvent {
60
- id: string;
61
- type: 'CatalogueHackEntryDeleted';
62
- payload: CatalogueHackEntry;
63
- }
64
-
65
- export type CatalogueHackEntryChangedEvent = CatalogueHackEntryCreatedEvent | CatalogueHackEntryUpdatedEvent | CatalogueHackEntryDeletedEvent;
66
-
67
- export interface CatalogueCollectionEntry {
68
- id: string;
69
- v: number;
70
- createdAt: string;
71
- updatedAt: string;
72
- catalogueId: string;
73
- baseLocaleCollectionId: string;
74
- }
75
-
76
- export interface CatalogueCollectionEntryCreatedEvent {
77
- id: string;
78
- type: 'CatalogueCollectionEntryCreated';
79
- payload: CatalogueCollectionEntry;
80
- }
81
-
82
- export interface CatalogueCollectionEntryUpdatedEvent {
83
- id: string;
84
- type: 'CatalogueCollectionEntryUpdated';
85
- payload: CatalogueCollectionEntry;
86
- }
87
-
88
- export interface CatalogueCollectionEntryDeletedEvent {
89
- id: string;
90
- type: 'CatalogueCollectionEntryDeleted';
91
- payload: CatalogueCollectionEntry;
92
- }
93
-
94
- export type CatalogueCollectionEntryChangedEvent = CatalogueCollectionEntryCreatedEvent | CatalogueCollectionEntryUpdatedEvent | CatalogueCollectionEntryDeletedEvent;
95
-
96
- export interface CatalogueB2BOrgEntry {
97
- id: string;
98
- v: number;
99
- createdAt: string;
100
- updatedAt: string;
101
- catalogueId: string;
102
- b2bOrgId: string;
103
- }
104
-
105
- export interface CatalogueB2BOrgEntryCreatedEvent {
106
- id: string;
107
- type: 'CatalogueB2BOrgEntryCreated';
108
- payload: CatalogueB2BOrgEntry;
109
- }
110
-
111
- export interface CatalogueB2BOrgEntryUpdatedEvent {
112
- id: string;
113
- type: 'CatalogueB2BOrgEntryUpdated';
114
- payload: CatalogueB2BOrgEntry;
115
- }
116
-
117
- export interface CatalogueB2BOrgEntryDeletedEvent {
118
- id: string;
119
- type: 'CatalogueB2BOrgEntryDeleted';
120
- payload: CatalogueB2BOrgEntry;
121
- }
122
-
123
- export type CatalogueB2BOrgEntryChangedEvent = CatalogueB2BOrgEntryCreatedEvent | CatalogueB2BOrgEntryUpdatedEvent | CatalogueB2BOrgEntryDeletedEvent;
124
-
125
- export interface CatalogueProfileEntry {
126
- id: string;
127
- v: number;
128
- createdAt: string;
129
- updatedAt: string;
130
- catalogueId: string;
131
- profileId: string;
132
- }
133
-
134
- export interface CatalogueProfileEntryCreatedEvent {
135
- id: string;
136
- type: 'CatalogueProfileEntryCreated';
137
- payload: CatalogueProfileEntry;
138
- }
139
-
140
- export interface CatalogueProfileEntryUpdatedEvent {
141
- id: string;
142
- type: 'CatalogueProfileEntryUpdated';
143
- payload: CatalogueProfileEntry;
144
- }
145
-
146
- export interface CatalogueProfileEntryDeletedEvent {
147
- id: string;
148
- type: 'CatalogueProfileEntryDeleted';
149
- payload: CatalogueProfileEntry;
150
- }
151
-
152
- export type CatalogueProfileEntryChangedEvent = CatalogueProfileEntryCreatedEvent | CatalogueProfileEntryUpdatedEvent | CatalogueProfileEntryDeletedEvent;
1
+ export interface Catalogue {
2
+ id: string;
3
+ /** used for permissions - who is allowed to edit this catalogue */
4
+ owner: string;
5
+ /** Added and backfilled Jan 2026 */
6
+ tenant: string;
7
+ v: number;
8
+ createdAt: string;
9
+ updatedAt: string;
10
+ /** added December 2023 to make it easier to find catalogues in the UI */
11
+ name: string;
12
+ /** Added and backfilled December 2023 */
13
+ accessType: CatalogueAccessType;
14
+ }
15
+
16
+ export type CatalogueAccessType = 'include' | 'exclude';
17
+
18
+ export interface CatalogueCreatedEvent {
19
+ id: string;
20
+ type: 'CatalogueCreated';
21
+ payload: Catalogue;
22
+ }
23
+
24
+ export interface CatalogueUpdatedEvent {
25
+ id: string;
26
+ type: 'CatalogueUpdated';
27
+ payload: Catalogue;
28
+ }
29
+
30
+ export interface CatalogueDeletedEvent {
31
+ id: string;
32
+ type: 'CatalogueDeleted';
33
+ payload: Catalogue;
34
+ }
35
+
36
+ export type CatalogueChangedEvent = CatalogueCreatedEvent | CatalogueUpdatedEvent | CatalogueDeletedEvent;
37
+
38
+ export interface CatalogueHackEntry {
39
+ id: string; // not really used but there for store reasons
40
+ v: number;
41
+ createdAt: string;
42
+ updatedAt: string;
43
+ catalogueId: string; // the catalogue name
44
+ baseLocaleHackId: string; // use baseLocaleHackId as all translations should be in the same catalogue
45
+ }
46
+
47
+ export interface CatalogueHackEntryCreatedEvent {
48
+ id: string;
49
+ type: 'CatalogueHackEntryCreated';
50
+ payload: CatalogueHackEntry;
51
+ }
52
+
53
+ export interface CatalogueHackEntryUpdatedEvent {
54
+ id: string;
55
+ type: 'CatalogueHackEntryUpdated';
56
+ payload: CatalogueHackEntry;
57
+ }
58
+
59
+ export interface CatalogueHackEntryDeletedEvent {
60
+ id: string;
61
+ type: 'CatalogueHackEntryDeleted';
62
+ payload: CatalogueHackEntry;
63
+ }
64
+
65
+ export type CatalogueHackEntryChangedEvent = CatalogueHackEntryCreatedEvent | CatalogueHackEntryUpdatedEvent | CatalogueHackEntryDeletedEvent;
66
+
67
+ export interface CatalogueCollectionEntry {
68
+ id: string;
69
+ v: number;
70
+ createdAt: string;
71
+ updatedAt: string;
72
+ catalogueId: string;
73
+ baseLocaleCollectionId: string;
74
+ }
75
+
76
+ export interface CatalogueCollectionEntryCreatedEvent {
77
+ id: string;
78
+ type: 'CatalogueCollectionEntryCreated';
79
+ payload: CatalogueCollectionEntry;
80
+ }
81
+
82
+ export interface CatalogueCollectionEntryUpdatedEvent {
83
+ id: string;
84
+ type: 'CatalogueCollectionEntryUpdated';
85
+ payload: CatalogueCollectionEntry;
86
+ }
87
+
88
+ export interface CatalogueCollectionEntryDeletedEvent {
89
+ id: string;
90
+ type: 'CatalogueCollectionEntryDeleted';
91
+ payload: CatalogueCollectionEntry;
92
+ }
93
+
94
+ export type CatalogueCollectionEntryChangedEvent = CatalogueCollectionEntryCreatedEvent | CatalogueCollectionEntryUpdatedEvent | CatalogueCollectionEntryDeletedEvent;
95
+
96
+ export interface CatalogueB2BOrgEntry {
97
+ id: string;
98
+ v: number;
99
+ createdAt: string;
100
+ updatedAt: string;
101
+ catalogueId: string;
102
+ b2bOrgId: string;
103
+ }
104
+
105
+ export interface CatalogueB2BOrgEntryCreatedEvent {
106
+ id: string;
107
+ type: 'CatalogueB2BOrgEntryCreated';
108
+ payload: CatalogueB2BOrgEntry;
109
+ }
110
+
111
+ export interface CatalogueB2BOrgEntryUpdatedEvent {
112
+ id: string;
113
+ type: 'CatalogueB2BOrgEntryUpdated';
114
+ payload: CatalogueB2BOrgEntry;
115
+ }
116
+
117
+ export interface CatalogueB2BOrgEntryDeletedEvent {
118
+ id: string;
119
+ type: 'CatalogueB2BOrgEntryDeleted';
120
+ payload: CatalogueB2BOrgEntry;
121
+ }
122
+
123
+ export type CatalogueB2BOrgEntryChangedEvent = CatalogueB2BOrgEntryCreatedEvent | CatalogueB2BOrgEntryUpdatedEvent | CatalogueB2BOrgEntryDeletedEvent;
124
+
125
+ export interface CatalogueProfileEntry {
126
+ id: string;
127
+ v: number;
128
+ createdAt: string;
129
+ updatedAt: string;
130
+ catalogueId: string;
131
+ profileId: string;
132
+ }
133
+
134
+ export interface CatalogueProfileEntryCreatedEvent {
135
+ id: string;
136
+ type: 'CatalogueProfileEntryCreated';
137
+ payload: CatalogueProfileEntry;
138
+ }
139
+
140
+ export interface CatalogueProfileEntryUpdatedEvent {
141
+ id: string;
142
+ type: 'CatalogueProfileEntryUpdated';
143
+ payload: CatalogueProfileEntry;
144
+ }
145
+
146
+ export interface CatalogueProfileEntryDeletedEvent {
147
+ id: string;
148
+ type: 'CatalogueProfileEntryDeleted';
149
+ payload: CatalogueProfileEntry;
150
+ }
151
+
152
+ export type CatalogueProfileEntryChangedEvent = CatalogueProfileEntryCreatedEvent | CatalogueProfileEntryUpdatedEvent | CatalogueProfileEntryDeletedEvent;
@@ -1,47 +1,44 @@
1
- import { EnrichedHackSubjects } from '../enriched-hack/enriched-hack';
2
- import { HackContributor, HackTopic, HackType } from '../hack/hack';
3
- import { PrimaryTopic } from '../topics/primary-topic';
4
-
5
- export interface CmsSearchableHack {
6
- /** id of the hack, even if the hack is currently in draft state */
7
- id: string;
8
- title: string;
9
- draftHackId: string;
10
- hackId: string;
11
- baseLocaleHackId: string;
12
- locale: string;
13
- language: string;
14
- /** when the draft was created */
15
- createdAt: string;
16
- updatedAt: string;
17
- publishedAt?: string;
18
- owner: string;
19
- // will be empty on draft
20
- acl: string[];
21
-
22
- description: string
23
-
24
- sourceId?: string;
25
- themeId?: string;
26
- coverUrl?: string;
27
-
28
- editorialTags: string[];
29
-
30
- copyrightFreeCoverUrl?: string;
31
-
32
- contributors: HackContributor[];
33
- type?: HackType;
34
-
35
- topics: HackTopic[];
36
- primaryTopics: PrimaryTopic[];
37
-
38
- keywords: string[];
39
- topicsExtracted: string[];
40
- keywordsExtracted: string[];
41
- hackSubjects: EnrichedHackSubjects;
42
-
43
- workflowStatus: 'unpublished' | 'published' | 'publishing';
44
- isPublished: boolean;
45
- hasUnpublishedChanges: boolean;
46
- isHidden: boolean;
47
- }
1
+ import { EnrichedHackSubjects } from '../enriched-hack/enriched-hack';
2
+ import { HackContributor, HackTopic, HackType } from '../hack/hack';
3
+
4
+ export interface CmsSearchableHack {
5
+ /** id of the hack, even if the hack is currently in draft state */
6
+ id: string;
7
+ title: string;
8
+ draftHackId: string;
9
+ hackId: string;
10
+ baseLocaleHackId: string;
11
+ locale: string;
12
+ language: string;
13
+ /** when the draft was created */
14
+ createdAt: string;
15
+ updatedAt: string;
16
+ publishedAt?: string;
17
+ owner: string;
18
+ // will be empty on draft
19
+ acl: string[];
20
+
21
+ description: string
22
+
23
+ sourceId?: string;
24
+ themeId?: string;
25
+ coverUrl?: string;
26
+
27
+ editorialTags: string[];
28
+
29
+ copyrightFreeCoverUrl?: string;
30
+
31
+ contributors: HackContributor[];
32
+ type?: HackType;
33
+
34
+ topics: HackTopic[];
35
+ keywords: string[];
36
+ topicsExtracted: string[];
37
+ keywordsExtracted: string[];
38
+ hackSubjects: EnrichedHackSubjects;
39
+
40
+ workflowStatus: 'unpublished' | 'published' | 'publishing';
41
+ isPublished: boolean;
42
+ hasUnpublishedChanges: boolean;
43
+ isHidden: boolean;
44
+ }
@@ -1,21 +1,21 @@
1
- import { Collection } from './collection';
2
-
3
- export interface CollectionCreatedEvent {
4
- id: string;
5
- type: 'CollectionCreated';
6
- payload: Collection;
7
- }
8
-
9
- export interface CollectionUpdatedEvent {
10
- id: string;
11
- type: 'CollectionUpdated';
12
- payload: Collection;
13
- }
14
-
15
- export interface CollectionDeletedEvent {
16
- id: string;
17
- type: 'CollectionDeleted';
18
- payload: Collection;
19
- }
20
-
21
- export type CollectionChangedEvent = CollectionCreatedEvent | CollectionUpdatedEvent | CollectionDeletedEvent;
1
+ import { Collection } from './collection';
2
+
3
+ export interface CollectionCreatedEvent {
4
+ id: string;
5
+ type: 'CollectionCreated';
6
+ payload: Collection;
7
+ }
8
+
9
+ export interface CollectionUpdatedEvent {
10
+ id: string;
11
+ type: 'CollectionUpdated';
12
+ payload: Collection;
13
+ }
14
+
15
+ export interface CollectionDeletedEvent {
16
+ id: string;
17
+ type: 'CollectionDeleted';
18
+ payload: Collection;
19
+ }
20
+
21
+ export type CollectionChangedEvent = CollectionCreatedEvent | CollectionUpdatedEvent | CollectionDeletedEvent;