@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,65 +1,65 @@
1
- import { AppHackMetadata } from '../app-hack/app-hack-metadata';
2
- import { ProfileMetadata } from '../profile/profile';
3
- import { BackdropMetadata } from './collection';
4
-
5
- export interface EnrichedCollection {
6
- id: string;
7
- v: number;
8
- createdAt: string;
9
- updatedAt: string;
10
- locale: string,
11
- language: string;
12
- baseLocaleCollectionId: string;
13
- title: string;
14
- subtitle?: string;
15
- coverUrl?: string;
16
- iconUrl?: string;
17
- backgroundColor?: string;
18
- description: string;
19
- tags: string[];
20
- rank?: number;
21
- acl: string[];
22
- catalogues: string[];
23
- isPublished: boolean;
24
- owner: string;
25
- /** Added and backfilled December 2025 */
26
- tenant: string;
27
- /** Added March 2026, required because 'tenant' is also required */
28
- tenantDisplayName: string;
29
- hacks: EnrichCollectionHack[];
30
- backdrop?: BackdropMetadata;
31
- isBackdrop: boolean;
32
- profile: EnrichCollectionProfile;
33
- notificationMessage?: string;
34
- includeInEmailNotifications: boolean;
35
- includeInPushNotifications: boolean;
36
- includeInRecommendations: boolean;
37
- includeInSearchResults: boolean;
38
- includeInWebsite: boolean;
39
- isHidden: boolean;
40
- visibility?: Visibility;
41
- }
42
-
43
- export interface EnrichCollectionHack {
44
- blurb?: string;
45
- hack: AppHackMetadata;
46
- }
47
-
48
- export interface ExistingProfile {
49
- id: string;
50
- name: string;
51
- avatarUrl: string;
52
- handle: string;
53
- }
54
-
55
- export type DeletedProfile = ProfileMetadata;
56
-
57
- export interface Visibility {
58
- /* ISO date */
59
- startDate: string;
60
- /* ISO date */
61
- endDate: string;
62
- }
63
-
64
- // matches pattern found in the hack enrichment service where the EnrichedHackProfile may be an actual Profile or it may have been deleted
65
- export type EnrichCollectionProfile = ExistingProfile | DeletedProfile;
1
+ import { AppHackMetadata } from '../app-hack/app-hack-metadata';
2
+ import { ProfileMetadata } from '../profile/profile';
3
+ import { BackdropMetadata } from './collection';
4
+
5
+ export interface EnrichedCollection {
6
+ id: string;
7
+ v: number;
8
+ createdAt: string;
9
+ updatedAt: string;
10
+ locale: string,
11
+ language: string;
12
+ baseLocaleCollectionId: string;
13
+ title: string;
14
+ subtitle?: string;
15
+ coverUrl?: string;
16
+ iconUrl?: string;
17
+ backgroundColor?: string;
18
+ description: string;
19
+ tags: string[];
20
+ rank?: number;
21
+ acl: string[];
22
+ catalogues: string[];
23
+ isPublished: boolean;
24
+ owner: string;
25
+ /** Added and backfilled December 2025 */
26
+ tenant: string;
27
+ /** Added March 2026, required because 'tenant' is also required */
28
+ tenantDisplayName: string;
29
+ hacks: EnrichCollectionHack[];
30
+ backdrop?: BackdropMetadata;
31
+ isBackdrop: boolean;
32
+ profile: EnrichCollectionProfile;
33
+ notificationMessage?: string;
34
+ includeInEmailNotifications: boolean;
35
+ includeInPushNotifications: boolean;
36
+ includeInRecommendations: boolean;
37
+ includeInSearchResults: boolean;
38
+ includeInWebsite: boolean;
39
+ isHidden: boolean;
40
+ visibility?: Visibility;
41
+ }
42
+
43
+ export interface EnrichCollectionHack {
44
+ blurb?: string;
45
+ hack: AppHackMetadata;
46
+ }
47
+
48
+ export interface ExistingProfile {
49
+ id: string;
50
+ name: string;
51
+ avatarUrl: string;
52
+ handle: string;
53
+ }
54
+
55
+ export type DeletedProfile = ProfileMetadata;
56
+
57
+ export interface Visibility {
58
+ /* ISO date */
59
+ startDate: string;
60
+ /* ISO date */
61
+ endDate: string;
62
+ }
63
+
64
+ // matches pattern found in the hack enrichment service where the EnrichedHackProfile may be an actual Profile or it may have been deleted
65
+ export type EnrichCollectionProfile = ExistingProfile | DeletedProfile;
@@ -1,21 +1,21 @@
1
- import { Course } from './course';
2
-
3
- export interface CourseCreatedEvent {
4
- id: string;
5
- type: 'CourseCreated';
6
- payload: Course;
7
- }
8
-
9
- export interface CourseUpdatedEvent {
10
- id: string;
11
- type: 'CourseUpdated';
12
- payload: Course;
13
- }
14
-
15
- export interface CourseDeletedEvent {
16
- id: string;
17
- type: 'CourseDeleted';
18
- payload: Course;
19
- }
20
-
1
+ import { Course } from './course';
2
+
3
+ export interface CourseCreatedEvent {
4
+ id: string;
5
+ type: 'CourseCreated';
6
+ payload: Course;
7
+ }
8
+
9
+ export interface CourseUpdatedEvent {
10
+ id: string;
11
+ type: 'CourseUpdated';
12
+ payload: Course;
13
+ }
14
+
15
+ export interface CourseDeletedEvent {
16
+ id: string;
17
+ type: 'CourseDeleted';
18
+ payload: Course;
19
+ }
20
+
21
21
  export type CourseChangedEvent = CourseCreatedEvent | CourseUpdatedEvent | CourseDeletedEvent;
@@ -1,25 +1,25 @@
1
-
2
- export interface Course {
3
- id: string;
4
- uptimeLearnUponPortalId: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- title: string;
9
- coverUrl?: string;
10
- moduleCount: number;
11
- isCertified: boolean;
12
- isCataloged: boolean;
13
- dueDate?: string;
14
- accessExpiresAt?: string;
15
- publishedAt?: string;
16
- status: 'published' | 'draft' | 'archived' | 'under_revision' | 'deleted';
17
- shortDescription?: string;
18
- descriptionText?: string;
19
- descriptionHtml?: string;
20
- objectivesText?: string;
21
- objectivesHtml?: string;
22
- difficulty: 'not_applicable' | 'basic' | 'intermediate' | 'advanced';
23
- length?: number;
24
- lengthUnit?: string;
25
- }
1
+
2
+ export interface Course {
3
+ id: string;
4
+ uptimeLearnUponPortalId: string;
5
+ v: number;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ title: string;
9
+ coverUrl?: string;
10
+ moduleCount: number;
11
+ isCertified: boolean;
12
+ isCataloged: boolean;
13
+ dueDate?: string;
14
+ accessExpiresAt?: string;
15
+ publishedAt?: string;
16
+ status: 'published' | 'draft' | 'archived' | 'under_revision' | 'deleted';
17
+ shortDescription?: string;
18
+ descriptionText?: string;
19
+ descriptionHtml?: string;
20
+ objectivesText?: string;
21
+ objectivesHtml?: string;
22
+ difficulty: 'not_applicable' | 'basic' | 'intermediate' | 'advanced';
23
+ length?: number;
24
+ lengthUnit?: string;
25
+ }
@@ -1,21 +1,21 @@
1
- import { CourseEnrollment } from './course-enrollment';
2
-
3
- export interface CourseEnrollmentCreatedEvent {
4
- id: string;
5
- type: 'CourseEnrollmentCreated';
6
- payload: CourseEnrollment;
7
- }
8
-
9
- export interface CourseEnrollmentUpdatedEvent {
10
- id: string;
11
- type: 'CourseEnrollmentUpdated';
12
- payload: CourseEnrollment;
13
- }
14
-
15
- export interface CourseEnrollmentDeletedEvent {
16
- id: string;
17
- type: 'CourseEnrollmentDeleted';
18
- payload: CourseEnrollment;
19
- }
20
-
21
- export type CourseEnrollmentChangedEvent = CourseEnrollmentCreatedEvent | CourseEnrollmentUpdatedEvent | CourseEnrollmentDeletedEvent;
1
+ import { CourseEnrollment } from './course-enrollment';
2
+
3
+ export interface CourseEnrollmentCreatedEvent {
4
+ id: string;
5
+ type: 'CourseEnrollmentCreated';
6
+ payload: CourseEnrollment;
7
+ }
8
+
9
+ export interface CourseEnrollmentUpdatedEvent {
10
+ id: string;
11
+ type: 'CourseEnrollmentUpdated';
12
+ payload: CourseEnrollment;
13
+ }
14
+
15
+ export interface CourseEnrollmentDeletedEvent {
16
+ id: string;
17
+ type: 'CourseEnrollmentDeleted';
18
+ payload: CourseEnrollment;
19
+ }
20
+
21
+ export type CourseEnrollmentChangedEvent = CourseEnrollmentCreatedEvent | CourseEnrollmentUpdatedEvent | CourseEnrollmentDeletedEvent;
@@ -1,36 +1,36 @@
1
-
2
- export interface CourseEnrollment {
3
- /** maps to LearnUponWebhookCourseEnrollment.id */
4
- id: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- /** maps to Course.title */
9
- courseTitle: string;
10
- /** maps to Course.coverUrl */
11
- courseCoverUrl?: string;
12
- /** uptime user id */
13
- userId: string;
14
- /** maps to Course.id */
15
- courseId: string;
16
- dueDate?: string;
17
- accessExpiresAt?: string;
18
- /** maps to Course.moduleCount */
19
- moduleCount: number;
20
- /** maps to Course.isCertified */
21
- isCertified: boolean;
22
- /** LearnUponWebhookCourseEnrollment.eventCreated */
23
- enrolledAt: string;
24
- /** maps to LearnUponWebhookCourseCompletion.enrollmentStatus && LearnUponWebhookModuleCompletions*/
25
- status: 'not_started' | 'in_progress' | 'completed' | 'passed' | 'failed' | 'pending_review';
26
- percentageComplete: number;
27
- percentageScore?: number;
28
- completedModuleCount: number;
29
- startedAt?: string;
30
- completedAt?: string;
31
- lastInteractedAt?: string;
32
- enrollmentUpdatedAt?: string;
33
- unenrolled?: boolean;
34
- organisationId: string;
35
- courseShortDescription?: string;
36
- }
1
+
2
+ export interface CourseEnrollment {
3
+ /** maps to LearnUponWebhookCourseEnrollment.id */
4
+ id: string;
5
+ v: number;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ /** maps to Course.title */
9
+ courseTitle: string;
10
+ /** maps to Course.coverUrl */
11
+ courseCoverUrl?: string;
12
+ /** uptime user id */
13
+ userId: string;
14
+ /** maps to Course.id */
15
+ courseId: string;
16
+ dueDate?: string;
17
+ accessExpiresAt?: string;
18
+ /** maps to Course.moduleCount */
19
+ moduleCount: number;
20
+ /** maps to Course.isCertified */
21
+ isCertified: boolean;
22
+ /** LearnUponWebhookCourseEnrollment.eventCreated */
23
+ enrolledAt: string;
24
+ /** maps to LearnUponWebhookCourseCompletion.enrollmentStatus && LearnUponWebhookModuleCompletions*/
25
+ status: 'not_started' | 'in_progress' | 'completed' | 'passed' | 'failed' | 'pending_review';
26
+ percentageComplete: number;
27
+ percentageScore?: number;
28
+ completedModuleCount: number;
29
+ startedAt?: string;
30
+ completedAt?: string;
31
+ lastInteractedAt?: string;
32
+ enrollmentUpdatedAt?: string;
33
+ unenrolled?: boolean;
34
+ organisationId: string;
35
+ courseShortDescription?: string;
36
+ }
@@ -1,32 +1,32 @@
1
- import { Creator } from './creator';
2
-
3
- export interface CreatorCreatedEvent {
4
- id: string;
5
- type: 'CreatorCreated',
6
- payload: Creator;
7
- }
8
-
9
-
10
- export interface CreatorUpdatedEvent {
11
- id: string;
12
- type: 'CreatorUpdated',
13
- payload: Creator;
14
- }
15
-
16
- export interface CreatorDeletedEvent {
17
- id: string;
18
- type: 'CreatorDeleted',
19
- payload: Creator;
20
- }
21
-
22
- export type CreatorChangedEvent = CreatorCreatedEvent | CreatorUpdatedEvent | CreatorDeletedEvent;
23
-
24
- export interface BecomeACreatorCommandPayload {
25
- userId: string;
26
- }
27
-
28
- export interface BecomeACreatorCommand {
29
- id: string;
30
- type: 'BecomeACreator',
31
- payload: BecomeACreatorCommandPayload;
32
- }
1
+ import { Creator } from './creator';
2
+
3
+ export interface CreatorCreatedEvent {
4
+ id: string;
5
+ type: 'CreatorCreated',
6
+ payload: Creator;
7
+ }
8
+
9
+
10
+ export interface CreatorUpdatedEvent {
11
+ id: string;
12
+ type: 'CreatorUpdated',
13
+ payload: Creator;
14
+ }
15
+
16
+ export interface CreatorDeletedEvent {
17
+ id: string;
18
+ type: 'CreatorDeleted',
19
+ payload: Creator;
20
+ }
21
+
22
+ export type CreatorChangedEvent = CreatorCreatedEvent | CreatorUpdatedEvent | CreatorDeletedEvent;
23
+
24
+ export interface BecomeACreatorCommandPayload {
25
+ userId: string;
26
+ }
27
+
28
+ export interface BecomeACreatorCommand {
29
+ id: string;
30
+ type: 'BecomeACreator',
31
+ payload: BecomeACreatorCommandPayload;
32
+ }
@@ -1,7 +1,7 @@
1
- export interface Creator {
2
- id: string;
3
- v: number;
4
- createdAt: string;
5
- updatedAt: string;
6
- owner: string;
7
- }
1
+ export interface Creator {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ owner: string;
7
+ }
@@ -1,17 +1,17 @@
1
- export interface CollectionDistribution extends CollectionDistributionProperties {
2
- id: string;
3
- v: number;
4
- createdAt: string;
5
- updatedAt: string;
6
- collectionId: string;
7
- baseLocaleCollectionId: string;
8
- }
9
-
10
- export interface CollectionDistributionProperties {
11
- includeInEmailNotifications: boolean;
12
- includeInPushNotifications: boolean;
13
- includeInRecommendations: boolean;
14
- includeInSearchResults: boolean;
15
- includeInWebsite: boolean;
16
- isHidden: boolean;
17
- }
1
+ export interface CollectionDistribution extends CollectionDistributionProperties {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ collectionId: string;
7
+ baseLocaleCollectionId: string;
8
+ }
9
+
10
+ export interface CollectionDistributionProperties {
11
+ includeInEmailNotifications: boolean;
12
+ includeInPushNotifications: boolean;
13
+ includeInRecommendations: boolean;
14
+ includeInSearchResults: boolean;
15
+ includeInWebsite: boolean;
16
+ isHidden: boolean;
17
+ }
@@ -1,61 +1,61 @@
1
- import { HackDistribution } from './hack-distribution';
2
- import { CollectionDistribution } from './collection-distribution';
3
-
4
- export interface HackDistributionCreatedEvent {
5
- id: string;
6
- type: 'HackDistributionCreated';
7
- payload: HackDistribution;
8
- }
9
-
10
- export interface HackDistributionUpdatedEvent {
11
- id: string;
12
- type: 'HackDistributionUpdated';
13
- payload: HackDistribution;
14
- }
15
-
16
- export interface HackDistributionDeletedEvent {
17
- id: string;
18
- type: 'HackDistributionDeleted';
19
- payload: HackDistribution;
20
- }
21
-
22
- export interface CollectionDistributionCreatedEvent {
23
- id: string;
24
- type: 'CollectionDistributionCreated';
25
- payload: CollectionDistribution;
26
- }
27
-
28
- export interface CollectionDistributionUpdatedEvent {
29
- id: string;
30
- type: 'CollectionDistributionUpdated';
31
- payload: CollectionDistribution;
32
- }
33
-
34
- export interface CollectionDistributionDeletedEvent {
35
- id: string;
36
- type: 'CollectionDistributionDeleted';
37
- payload: CollectionDistribution;
38
- }
39
-
40
- export type HackDistributionChangedEvent = HackDistributionCreatedEvent | HackDistributionUpdatedEvent | HackDistributionDeletedEvent;
41
- export type CollectionDistributionChangedEvent = CollectionDistributionCreatedEvent | CollectionDistributionUpdatedEvent | CollectionDistributionDeletedEvent;
42
-
43
- export interface CheckPrivateHackDistributionEvent {
44
- id: string;
45
- type: 'CheckPrivateHackDistribution'
46
- payload: {
47
- id: string;
48
- v: number;
49
- hackId: string;
50
- }
51
- }
52
-
53
- export interface CheckPrivateCollectionDistributionEvent {
54
- id: string;
55
- type: 'CheckPrivateCollectionDistribution'
56
- payload: {
57
- id: string;
58
- v: number;
59
- collectionId: string;
60
- }
61
- }
1
+ import { HackDistribution } from './hack-distribution';
2
+ import { CollectionDistribution } from './collection-distribution';
3
+
4
+ export interface HackDistributionCreatedEvent {
5
+ id: string;
6
+ type: 'HackDistributionCreated';
7
+ payload: HackDistribution;
8
+ }
9
+
10
+ export interface HackDistributionUpdatedEvent {
11
+ id: string;
12
+ type: 'HackDistributionUpdated';
13
+ payload: HackDistribution;
14
+ }
15
+
16
+ export interface HackDistributionDeletedEvent {
17
+ id: string;
18
+ type: 'HackDistributionDeleted';
19
+ payload: HackDistribution;
20
+ }
21
+
22
+ export interface CollectionDistributionCreatedEvent {
23
+ id: string;
24
+ type: 'CollectionDistributionCreated';
25
+ payload: CollectionDistribution;
26
+ }
27
+
28
+ export interface CollectionDistributionUpdatedEvent {
29
+ id: string;
30
+ type: 'CollectionDistributionUpdated';
31
+ payload: CollectionDistribution;
32
+ }
33
+
34
+ export interface CollectionDistributionDeletedEvent {
35
+ id: string;
36
+ type: 'CollectionDistributionDeleted';
37
+ payload: CollectionDistribution;
38
+ }
39
+
40
+ export type HackDistributionChangedEvent = HackDistributionCreatedEvent | HackDistributionUpdatedEvent | HackDistributionDeletedEvent;
41
+ export type CollectionDistributionChangedEvent = CollectionDistributionCreatedEvent | CollectionDistributionUpdatedEvent | CollectionDistributionDeletedEvent;
42
+
43
+ export interface CheckPrivateHackDistributionEvent {
44
+ id: string;
45
+ type: 'CheckPrivateHackDistribution'
46
+ payload: {
47
+ id: string;
48
+ v: number;
49
+ hackId: string;
50
+ }
51
+ }
52
+
53
+ export interface CheckPrivateCollectionDistributionEvent {
54
+ id: string;
55
+ type: 'CheckPrivateCollectionDistribution'
56
+ payload: {
57
+ id: string;
58
+ v: number;
59
+ collectionId: string;
60
+ }
61
+ }
@@ -1,19 +1,19 @@
1
- export interface HackDistribution extends HackDistributionProperties {
2
- id: string;
3
- v: number;
4
- createdAt: string;
5
- updatedAt: string;
6
- hackId: string;
7
- baseLocaleHackId: string; // added 09/03/23 to allow syncing across hacks with the same baseLocaleHackId
8
- }
9
-
10
- export interface HackDistributionProperties {
11
- includeInEmailNotifications: boolean;
12
- includeInPushNotifications: boolean;
13
- includeInRecommendations: boolean;
14
- includeInSearchResults: boolean;
15
- includeInTrending: boolean;
16
- includeInHackOfTheDay: boolean;
17
- includeInWebsite: boolean;
18
- isHidden: boolean; // added 17/11/22, to replace Hack property with the same name
1
+ export interface HackDistribution extends HackDistributionProperties {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ hackId: string;
7
+ baseLocaleHackId: string; // added 09/03/23 to allow syncing across hacks with the same baseLocaleHackId
8
+ }
9
+
10
+ export interface HackDistributionProperties {
11
+ includeInEmailNotifications: boolean;
12
+ includeInPushNotifications: boolean;
13
+ includeInRecommendations: boolean;
14
+ includeInSearchResults: boolean;
15
+ includeInTrending: boolean;
16
+ includeInHackOfTheDay: boolean;
17
+ includeInWebsite: boolean;
18
+ isHidden: boolean; // added 17/11/22, to replace Hack property with the same name
19
19
  }
@@ -1,21 +1,21 @@
1
- import { DraftHack } from './draft-hack';
2
-
3
- export interface DraftHackCreatedEvent {
4
- id: string;
5
- type: 'DraftHackCreated';
6
- payload: DraftHack;
7
- }
8
-
9
- export interface DraftHackUpdatedEvent {
10
- id: string;
11
- type: 'DraftHackUpdated';
12
- payload: DraftHack;
13
- }
14
-
15
- export interface DraftHackDeletedEvent {
16
- id: string;
17
- type: 'DraftHackDeleted';
18
- payload: DraftHack;
19
- }
20
-
21
- export type DraftHackChangedEvent = DraftHackCreatedEvent | DraftHackUpdatedEvent | DraftHackDeletedEvent;
1
+ import { DraftHack } from './draft-hack';
2
+
3
+ export interface DraftHackCreatedEvent {
4
+ id: string;
5
+ type: 'DraftHackCreated';
6
+ payload: DraftHack;
7
+ }
8
+
9
+ export interface DraftHackUpdatedEvent {
10
+ id: string;
11
+ type: 'DraftHackUpdated';
12
+ payload: DraftHack;
13
+ }
14
+
15
+ export interface DraftHackDeletedEvent {
16
+ id: string;
17
+ type: 'DraftHackDeleted';
18
+ payload: DraftHack;
19
+ }
20
+
21
+ export type DraftHackChangedEvent = DraftHackCreatedEvent | DraftHackUpdatedEvent | DraftHackDeletedEvent;