@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,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,44 +1,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
+ 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,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;