@uptime.app/contracts 3.0.54 → 3.0.56

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 (243) hide show
  1. package/dist/cjs/brand/brand.d.ts +2 -0
  2. package/dist/cjs/brand/brand.d.ts.map +1 -1
  3. package/dist/cjs/draft-hack-generation/draft-hack-generation-events.d.ts +3 -0
  4. package/dist/cjs/draft-hack-generation/draft-hack-generation-events.d.ts.map +1 -1
  5. package/dist/cjs/hack-mapping/access-helper.js +1 -2
  6. package/dist/cjs/hack-mapping/access-helper.js.map +1 -1
  7. package/dist/cjs/hack-mapping/app-full-hack.js +1 -2
  8. package/dist/cjs/hack-mapping/app-full-hack.js.map +1 -1
  9. package/dist/cjs/hack-mapping/app-hack-metadata.js +1 -2
  10. package/dist/cjs/hack-mapping/app-hack-metadata.js.map +1 -1
  11. package/dist/cjs/hack-mapping/app-restricted-hack.js +1 -2
  12. package/dist/cjs/hack-mapping/app-restricted-hack.js.map +1 -1
  13. package/dist/cjs/hack-mapping/remove-undefined-fields.js +1 -2
  14. package/dist/cjs/hack-mapping/remove-undefined-fields.js.map +1 -1
  15. package/dist/cjs/hackbot/hack-generation-commands.d.ts +6 -9
  16. package/dist/cjs/hackbot/hack-generation-commands.d.ts.map +1 -1
  17. package/dist/cjs/hackbot/hack-generation-trigger.d.ts +6 -9
  18. package/dist/cjs/hackbot/hack-generation-trigger.d.ts.map +1 -1
  19. package/dist/cjs/hackbot/hack-generation-trigger.js.map +1 -1
  20. package/dist/cjs/hackbot/knowledge-source-location.d.ts +6 -0
  21. package/dist/cjs/hackbot/knowledge-source-location.d.ts.map +1 -0
  22. package/dist/cjs/hackbot/knowledge-source-location.js +3 -0
  23. package/dist/cjs/hackbot/knowledge-source-location.js.map +1 -0
  24. package/dist/cjs/knowledge-source-parsing/knowledge-source-metadata.d.ts +1 -0
  25. package/dist/cjs/knowledge-source-parsing/knowledge-source-metadata.d.ts.map +1 -1
  26. package/dist/cjs/knowledge-source-parsing/knowledge-source-parsing-commands.d.ts +9 -0
  27. package/dist/cjs/knowledge-source-parsing/knowledge-source-parsing-commands.d.ts.map +1 -1
  28. package/dist/cjs/knowledge-source-parsing/podcast-metadata.d.ts +1 -0
  29. package/dist/cjs/knowledge-source-parsing/podcast-metadata.d.ts.map +1 -1
  30. package/dist/cjs/knowledge-source-parsing/podcast-metadata.js.map +1 -1
  31. package/dist/cjs/localisation/live-locales.js +3 -4
  32. package/dist/cjs/localisation/live-locales.js.map +1 -1
  33. package/dist/cjs/localisation/locale-language.js +1 -2
  34. package/dist/cjs/localisation/locale-language.js.map +1 -1
  35. package/dist/cjs/localisation/supported-languages.js +2 -2
  36. package/dist/cjs/localisation/supported-languages.js.map +1 -1
  37. package/dist/cjs/localisation/supported-locales.js +3 -3
  38. package/dist/cjs/localisation/supported-locales.js.map +1 -1
  39. package/dist/cjs/service-simulator/mock-request-response.d.ts +8 -0
  40. package/dist/cjs/service-simulator/mock-request-response.d.ts.map +1 -1
  41. package/dist/cjs/text-to-speech/supported-voices.js +7 -8
  42. package/dist/cjs/text-to-speech/supported-voices.js.map +1 -1
  43. package/dist/cjs/user-acl/user-acl-utils.js +4 -4
  44. package/dist/cjs/user-acl/user-acl-utils.js.map +1 -1
  45. package/dist/esm/brand/brand.d.ts +2 -0
  46. package/dist/esm/brand/brand.d.ts.map +1 -1
  47. package/dist/esm/draft-hack-generation/draft-hack-generation-events.d.ts +3 -0
  48. package/dist/esm/draft-hack-generation/draft-hack-generation-events.d.ts.map +1 -1
  49. package/dist/esm/hackbot/hack-generation-commands.d.ts +6 -9
  50. package/dist/esm/hackbot/hack-generation-commands.d.ts.map +1 -1
  51. package/dist/esm/hackbot/hack-generation-trigger.d.ts +6 -9
  52. package/dist/esm/hackbot/hack-generation-trigger.d.ts.map +1 -1
  53. package/dist/esm/hackbot/hack-generation-trigger.js.map +1 -1
  54. package/dist/esm/hackbot/knowledge-source-location.d.ts +6 -0
  55. package/dist/esm/hackbot/knowledge-source-location.d.ts.map +1 -0
  56. package/dist/esm/hackbot/knowledge-source-location.js +2 -0
  57. package/dist/esm/hackbot/knowledge-source-location.js.map +1 -0
  58. package/dist/esm/knowledge-source-parsing/knowledge-source-metadata.d.ts +1 -0
  59. package/dist/esm/knowledge-source-parsing/knowledge-source-metadata.d.ts.map +1 -1
  60. package/dist/esm/knowledge-source-parsing/knowledge-source-parsing-commands.d.ts +9 -0
  61. package/dist/esm/knowledge-source-parsing/knowledge-source-parsing-commands.d.ts.map +1 -1
  62. package/dist/esm/knowledge-source-parsing/podcast-metadata.d.ts +1 -0
  63. package/dist/esm/knowledge-source-parsing/podcast-metadata.d.ts.map +1 -1
  64. package/dist/esm/knowledge-source-parsing/podcast-metadata.js.map +1 -1
  65. package/dist/esm/service-simulator/mock-request-response.d.ts +8 -0
  66. package/dist/esm/service-simulator/mock-request-response.d.ts.map +1 -1
  67. package/package.json +5 -2
  68. package/src/access-control/collection-access-control.ts +0 -28
  69. package/src/access-control/hack-access-control.ts +0 -32
  70. package/src/access-control/profile-access-control.ts +0 -28
  71. package/src/app-hack/app-full-hack.ts +0 -9
  72. package/src/app-hack/app-hack-metadata.ts +0 -61
  73. package/src/app-hack/app-restricted-hack.ts +0 -22
  74. package/src/b2b-content-access/b2b-content-access.ts +0 -57
  75. package/src/b2b-organisation/b2b-carousel.ts +0 -33
  76. package/src/b2b-organisation/b2b-org-idp-mapping.ts +0 -28
  77. package/src/b2b-organisation/b2b-organisation-events.ts +0 -21
  78. package/src/b2b-organisation/b2b-organisation-group-events.ts +0 -21
  79. package/src/b2b-organisation/b2b-organisation-group-membership-events.ts +0 -21
  80. package/src/b2b-organisation/b2b-organisation-group-membership.ts +0 -17
  81. package/src/b2b-organisation/b2b-organisation-group.ts +0 -43
  82. package/src/b2b-organisation/b2b-organisation-invitation.ts +0 -45
  83. package/src/b2b-organisation/b2b-organisation-member-events.ts +0 -21
  84. package/src/b2b-organisation/b2b-organisation-member.ts +0 -20
  85. package/src/b2b-organisation/b2b-organisation.ts +0 -38
  86. package/src/brand/brand-events.ts +0 -21
  87. package/src/brand/brand.ts +0 -78
  88. package/src/catalogue/catalogue.ts +0 -152
  89. package/src/cms-hack/cms-searchable-hack.ts +0 -44
  90. package/src/collection/collection-events.ts +0 -21
  91. package/src/collection/collection.ts +0 -59
  92. package/src/collection/enriched-collection-events.ts +0 -18
  93. package/src/collection/enriched-collection.ts +0 -65
  94. package/src/course/course-events.ts +0 -21
  95. package/src/course/course.ts +0 -25
  96. package/src/course-enrollment/course-enrollment-events.ts +0 -21
  97. package/src/course-enrollment/course-enrollment.ts +0 -36
  98. package/src/creator/creator-events.ts +0 -32
  99. package/src/creator/creator.ts +0 -7
  100. package/src/distribution/collection-distribution.ts +0 -17
  101. package/src/distribution/distribution-events.ts +0 -61
  102. package/src/distribution/hack-distribution.ts +0 -19
  103. package/src/draft-hack/draft-hack-events.ts +0 -21
  104. package/src/draft-hack/draft-hack.ts +0 -190
  105. package/src/draft-hack-generation/draft-hack-generation-commands.ts +0 -10
  106. package/src/draft-hack-generation/draft-hack-generation-events.ts +0 -52
  107. package/src/draft-hack-generation/draft-hack-generation.ts +0 -39
  108. package/src/enriched-b2b-organisation/enriched-b2b-organisation-events.ts +0 -21
  109. package/src/enriched-b2b-organisation/enriched-b2b-organisation.ts +0 -38
  110. package/src/enriched-hack/enriched-hack-events.ts +0 -21
  111. package/src/enriched-hack/enriched-hack.ts +0 -109
  112. package/src/enrichment-asset/hack-enrichment-video-events.ts +0 -55
  113. package/src/enrichment-asset/hack-enrichment-video.ts +0 -40
  114. package/src/entitlement/user-entitlements-commands.ts +0 -54
  115. package/src/entitlement/user-entitlements-events.ts +0 -29
  116. package/src/entitlement/user-entitlements.ts +0 -18
  117. package/src/flashcard/flashcard-events.ts +0 -85
  118. package/src/flashcard/flashcard.ts +0 -138
  119. package/src/hack/extracted-subject.ts +0 -31
  120. package/src/hack/hack-events.ts +0 -21
  121. package/src/hack/hack-published.ts +0 -21
  122. package/src/hack/hack-with-voice-events.ts +0 -21
  123. package/src/hack/hack-with-voice.ts +0 -36
  124. package/src/hack/hack.ts +0 -127
  125. package/src/hack/publish-hack-command.ts +0 -20
  126. package/src/hack/republish-hack-command.ts +0 -20
  127. package/src/hack-mapping/access-helper.ts +0 -6
  128. package/src/hack-mapping/app-full-hack.test.ts +0 -13
  129. package/src/hack-mapping/app-full-hack.ts +0 -14
  130. package/src/hack-mapping/app-hack-metadata.test.ts +0 -22
  131. package/src/hack-mapping/app-hack-metadata.ts +0 -82
  132. package/src/hack-mapping/app-restricted-hack.test.ts +0 -12
  133. package/src/hack-mapping/app-restricted-hack.ts +0 -21
  134. package/src/hack-mapping/remove-undefined-fields.ts +0 -9
  135. package/src/hack-mapping/test-data/enriched-hack.json +0 -2576
  136. package/src/hack-mapping/test-data/expected-app-full-hack.json +0 -2509
  137. package/src/hack-mapping/test-data/expected-app-hack-metadata.json +0 -93
  138. package/src/hack-mapping/test-data/expected-app-restricted-hack.json +0 -799
  139. package/src/hack-metadata/hack-metadata-events.ts +0 -21
  140. package/src/hack-metadata/hack-metadata.ts +0 -17
  141. package/src/hack-of-the-day/hack-of-the-day-events.ts +0 -21
  142. package/src/hack-of-the-day/hack-of-the-day.ts +0 -13
  143. package/src/hack-statistics/hack-statistics-events.ts +0 -21
  144. package/src/hack-statistics/hack-statistics.ts +0 -10
  145. package/src/hackbot/hack-generation-commands.ts +0 -45
  146. package/src/hackbot/hack-generation-trigger-events.ts +0 -21
  147. package/src/hackbot/hack-generation-trigger.ts +0 -57
  148. package/src/history/history-events.ts +0 -21
  149. package/src/history/history.ts +0 -46
  150. package/src/identity-provider/domain-identity-provider-events.ts +0 -21
  151. package/src/identity-provider/domain-identity-provider.ts +0 -11
  152. package/src/identity-provider/identity-provider-events.ts +0 -21
  153. package/src/identity-provider/identity-provider.ts +0 -51
  154. package/src/index.ts +0 -220
  155. package/src/interest/interest-events.ts +0 -21
  156. package/src/interest/interest.ts +0 -15
  157. package/src/knowledge-source/knowledge-source-events.ts +0 -21
  158. package/src/knowledge-source/knowledge-source.ts +0 -43
  159. package/src/knowledge-source-parsing/knowledge-source-metadata.ts +0 -58
  160. package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +0 -41
  161. package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +0 -30
  162. package/src/knowledge-source-parsing/podcast-metadata.ts +0 -44
  163. package/src/knowledge-source-parsing/podcast-parsing-events.ts +0 -28
  164. package/src/knowledge-source-parsing/user-hack-generation-options.ts +0 -7
  165. package/src/learn-upon/get-sqsso-url.ts +0 -13
  166. package/src/learn-upon/learn-upon-commands.ts +0 -33
  167. package/src/learn-upon/learn-upon-course-enrollment-events.ts +0 -21
  168. package/src/learn-upon/learn-upon-course-enrollment.ts +0 -63
  169. package/src/learn-upon/learn-upon-course-events.ts +0 -21
  170. package/src/learn-upon/learn-upon-course.ts +0 -109
  171. package/src/learn-upon/learn-upon-portal-events.ts +0 -21
  172. package/src/learn-upon/learn-upon-portal.ts +0 -13
  173. package/src/learn-upon/learn-upon-user-mapping-events.ts +0 -19
  174. package/src/learn-upon/learn-upon-user-mapping.ts +0 -10
  175. package/src/learn-upon/learn-upon-webhook-events.ts +0 -81
  176. package/src/learn-upon/learn-upon-webhook-types.ts +0 -347
  177. package/src/learn-upon/unenroll.ts +0 -7
  178. package/src/localisation/live-locales.ts +0 -45
  179. package/src/localisation/locale-language.ts +0 -4
  180. package/src/localisation/supported-languages.ts +0 -11
  181. package/src/localisation/supported-locales.ts +0 -67
  182. package/src/message-bus/context.ts +0 -8
  183. package/src/moderation/hack-moderation-result-events.ts +0 -18
  184. package/src/moderation/hack-moderation-result.ts +0 -27
  185. package/src/partner/partner-events.ts +0 -21
  186. package/src/partner/partner.ts +0 -7
  187. package/src/pending-hack/pending-hack-events.ts +0 -21
  188. package/src/pending-hack/pending-hack-with-voice-events.ts +0 -21
  189. package/src/pending-hack/pending-hack-with-voice.ts +0 -25
  190. package/src/pending-hack/pending-hack.ts +0 -78
  191. package/src/preferences/preferences-events.ts +0 -15
  192. package/src/preferences/preferences.ts +0 -35
  193. package/src/profile/profile-events.ts +0 -41
  194. package/src/profile/profile.ts +0 -36
  195. package/src/profile/translated-profile.ts +0 -13
  196. package/src/referral/referral-events.ts +0 -41
  197. package/src/referral/referral.ts +0 -76
  198. package/src/saved/saved-collection-events.ts +0 -19
  199. package/src/saved/saved-collection.ts +0 -8
  200. package/src/segment/segment-commands.ts +0 -75
  201. package/src/segment/segment-events.ts +0 -42
  202. package/src/segment/segment-with-voice.ts +0 -8
  203. package/src/segment/segment.ts +0 -82
  204. package/src/service-simulator/mock-request-response.ts +0 -17
  205. package/src/skin/skin-events.ts +0 -21
  206. package/src/skin/skin.ts +0 -7
  207. package/src/spark/spark-board-read-model.ts +0 -17
  208. package/src/spark/spark-board.ts +0 -12
  209. package/src/spark/spark-events.ts +0 -42
  210. package/src/spark/spark.ts +0 -75
  211. package/src/text-analysis/hack-categories-extracted-events.ts +0 -24
  212. package/src/text-analysis/hack-categories-extracted.ts +0 -31
  213. package/src/text-analysis/hack-entities-extracted-events.ts +0 -24
  214. package/src/text-analysis/hack-entities-extracted.ts +0 -38
  215. package/src/text-analysis/hack-keywords-extracted-events.ts +0 -24
  216. package/src/text-analysis/hack-keywords-extracted.ts +0 -23
  217. package/src/text-analysis/hack-topics-extracted-events.ts +0 -24
  218. package/src/text-analysis/hack-topics-extracted.ts +0 -31
  219. package/src/text-to-speech/create-speech-commands.ts +0 -22
  220. package/src/text-to-speech/speech-created-events.ts +0 -10
  221. package/src/text-to-speech/supported-voices.ts +0 -222
  222. package/src/text-to-speech/text-segment.ts +0 -29
  223. package/src/theme/theme-events.ts +0 -21
  224. package/src/theme/theme.ts +0 -68
  225. package/src/translation/translation-events.ts +0 -73
  226. package/src/translation/translation.ts +0 -25
  227. package/src/trending/trending-events.ts +0 -21
  228. package/src/trending/trending-hacks.ts +0 -8
  229. package/src/user/cognito-user-authentication-log.ts +0 -8
  230. package/src/user/get-user.ts +0 -63
  231. package/src/user/user-events.ts +0 -39
  232. package/src/user-acl/user-acl-utils.test.ts +0 -273
  233. package/src/user-acl/user-acl-utils.ts +0 -177
  234. package/src/user-context/user-context-events.ts +0 -21
  235. package/src/user-context/user-context.ts +0 -16
  236. package/src/user-notification-context/user-notification-context-events.ts +0 -21
  237. package/src/user-notification-context/user-notification-context.ts +0 -10
  238. package/src/user-statistics/user-statistics-events.ts +0 -97
  239. package/src/user-statistics/user-statistics.ts +0 -82
  240. package/src/video-cropping/video-cropping-events.ts +0 -43
  241. package/src/video-cropping/video-metadata.ts +0 -12
  242. package/tsconfig.cjs.json +0 -7
  243. package/tsconfig.npm.json +0 -22
@@ -1,39 +0,0 @@
1
- export interface GeneratedDraftHackContent {
2
- title: string;
3
- segments: GeneratedDraftHackSegments;
4
- coverUrl?: string;
5
- copyrightFreeCoverUrl?: string;
6
- topics: GeneratedDraftTopic[];
7
- notification: GeneratedDraftHackNotification;
8
- contributors: GeneratedDraftContributor[];
9
- }
10
- export interface GeneratedDraftHackSegments {
11
- favouriteQuote: GeneratedDraftHackSegment;
12
- inANutshell: GeneratedDraftHackSegment;
13
- introduction: GeneratedDraftHackSegment;
14
- insights: GeneratedDraftHackInsightSegment[];
15
- conclusion: GeneratedDraftHackSegment;
16
- }
17
- export interface GeneratedDraftHackSegment {
18
- paragraphCards: GeneratedDraftHackCard[][];
19
- }
20
- export interface GeneratedDraftHackCard {
21
- markdown: string;
22
- }
23
- export interface GeneratedDraftHackInsightSegment extends GeneratedDraftHackSegment {
24
- title: string;
25
- actions: GeneratedDraftHackAction[];
26
- }
27
- export interface GeneratedDraftHackAction {
28
- title: string;
29
- markdown: string;
30
- }
31
- export interface GeneratedDraftTopic {
32
- name: string;
33
- }
34
- export interface GeneratedDraftHackNotification {
35
- aiGeneratedText: string;
36
- }
37
- export interface GeneratedDraftContributor {
38
- name: string;
39
- }
@@ -1,21 +0,0 @@
1
- import { EnrichedB2BOrganisation } from './enriched-b2b-organisation';
2
-
3
- export interface EnrichedB2BOrganisationCreatedEvent {
4
- id: string;
5
- type: 'EnrichedB2BOrganisationCreated';
6
- payload: EnrichedB2BOrganisation;
7
- }
8
-
9
- export interface EnrichedB2BOrganisationUpdatedEvent {
10
- id: string;
11
- type: 'EnrichedB2BOrganisationUpdated';
12
- payload: EnrichedB2BOrganisation;
13
- }
14
-
15
- export interface EnrichedB2BOrganisationDeletedEvent {
16
- id: string;
17
- type: 'EnrichedB2BOrganisationDeleted';
18
- payload: EnrichedB2BOrganisation;
19
- }
20
-
21
- export type EnrichedB2BOrganisationChangedEvent = EnrichedB2BOrganisationCreatedEvent | EnrichedB2BOrganisationUpdatedEvent | EnrichedB2BOrganisationDeletedEvent;
@@ -1,38 +0,0 @@
1
- import { B2BOrganisation } from '../b2b-organisation/b2b-organisation';
2
- import { SupportedLocale } from '../localisation/supported-locales';
3
-
4
- /**
5
- * An enriched model of B2BOrganisation containing data that can be consumed by a public (unauthenticated) endpoint
6
- */
7
- export interface EnrichedB2BOrganisation extends B2BOrganisation {
8
- identityProviders: EnrichedB2BOrganisationIdentityProvider[];
9
- skinId?: string;
10
- brandWebAppDomain?: string;
11
- brandAppName?: {
12
- [K in SupportedLocale]?: string
13
- };
14
- ssoEnforcement?: SSOEnforcement;
15
- }
16
-
17
- export interface EnrichedB2BOrganisationIdentityProvider {
18
- id?: string;
19
- providerName: string;
20
- verifiedDomains: string[];
21
- /** Matching verifiedDomains should require to be authenticated via IdP or not */
22
- enforceIdpAuth: boolean;
23
- }
24
-
25
- export enum SSOEnforcement {
26
- /**
27
- * Means that no identity provider is configured for the organisation
28
- */
29
- NONE = 'NONE',
30
- /**
31
- * Means that it has at least 1 identity provider but not all identity providers have enforceIdpAuth set to true
32
- */
33
- OPTIONAL = 'OPTIONAL',
34
- /**
35
- * Means it has at least 1 identity provider and that all identity providers enforceIdpAuth
36
- */
37
- ENFORCED = 'ENFORCED'
38
- }
@@ -1,21 +0,0 @@
1
- import { EnrichedHack } from './enriched-hack';
2
-
3
- export interface EnrichedHackCreatedEvent {
4
- id: string;
5
- type: 'EnrichedHackCreated';
6
- payload: EnrichedHack;
7
- }
8
-
9
- export interface EnrichedHackUpdatedEvent {
10
- id: string;
11
- type: 'EnrichedHackUpdated';
12
- payload: EnrichedHack;
13
- }
14
-
15
- export interface EnrichedHackDeletedEvent {
16
- id: string;
17
- type: 'EnrichedHackDeleted';
18
- payload: EnrichedHack;
19
- }
20
-
21
- export type EnrichedHackChangedEvent = EnrichedHackCreatedEvent | EnrichedHackUpdatedEvent | EnrichedHackDeletedEvent;
@@ -1,109 +0,0 @@
1
- import { HackAffiliate, HackContributor, HackExternalLink, HackSourceData, HackTopic, HackType } from '../hack/hack';
2
- import { KnowledgeSource } from '../knowledge-source/knowledge-source';
3
- import { Profile, ProfileMetadata } from '../profile/profile';
4
- import { Theme } from '../theme/theme';
5
- import { HackWithVoice } from '../hack/hack-with-voice';
6
- import { ExtractedSubject } from '../hack/extracted-subject';
7
- import { SegmentType, SegmentAction, SegmentSpeech, SegmentSection, SegmentTextCard } from '../segment/segment';
8
-
9
- export interface EnrichedHack {
10
- /** The hack id */
11
- id: string;
12
- /** The hack language e.g. 'fr' if it is French */
13
- language: string;
14
- /** The locale (language and region) of the hack e.g. fr-FR. Use @uptime.app/localisation-contracts */
15
- locale: string;
16
- /** The id of the hack in its original locale. */
17
- baseLocaleHackId: string;
18
- v: number;
19
- hackVersion: number;
20
- createdAt: string;
21
- updatedAt: string;
22
-
23
- /** introduced Oct 2023 **/
24
- draftHackId: string;
25
- draftHackVersion: number;
26
-
27
- //@todo: Deprecate
28
- source?: KnowledgeSource;
29
- owner: string;
30
- tenant?: string;
31
- acl: string[];
32
- theme: Theme;
33
- title: string;
34
- isHidden?: boolean;
35
- editorialTags?: string[];
36
- coverUrl?: string;
37
- /** Added in July 2024. This is the URL of the cover image that is free to use without any copyright. */
38
- copyrightFreeCoverUrl?: string;
39
- notifications?: EnrichedHackNotifications;
40
- /* currently contains the inANutshell segment markdown */
41
- description: string;
42
- // ...
43
-
44
- segments: HackWithVoice['segments']; // Use the 'HackWithVoice' type
45
- affiliate?: HackAffiliate;
46
- topics: HackTopic[];
47
- contributors?: HackContributor[];
48
- type: HackType;
49
- sourceData?: HackSourceData;
50
- externalLink?: HackExternalLink;
51
- profile: EnrichHackProfile;
52
-
53
- /** added April 2024 */
54
- // TODO make it mandatory after a republish
55
- subjects?: EnrichedHackSubjects;
56
-
57
- // distribution
58
- includeInEmailNotifications: boolean;
59
- includeInPushNotifications: boolean;
60
- includeInRecommendations: boolean;
61
- includeInSearchResults: boolean;
62
- includeInTrending: boolean;
63
- includeInHackOfTheDay: boolean;
64
- includeInWebsite: boolean;
65
-
66
- /**
67
- * Time saved in minutes by consuming the hack rather than the underlying knowledge source.
68
- * calculated using the knowledge source page count / duration
69
- * */
70
- timeSaved?: number;
71
- /**
72
- * An estimation of the time saved in minutes when no reliable information is available on the knowledge source.
73
- */
74
- estimatedTimeSaved?: number;
75
-
76
- /**
77
- * Tenant display name, from the display name of its b2b-organisation, if any
78
- */
79
- tenantDisplayName?: string;
80
- }
81
-
82
- export interface EnrichedHackNotifications {
83
- aiGeneratedText?: string;
84
- humanCuratedText?: string;
85
- }
86
-
87
- export interface EnrichedHackSubjects {
88
- aiGenerated: ExtractedSubject[];
89
- humanCurated?: ExtractedSubject[];
90
- }
91
-
92
- export interface EnrichedHackSegment {
93
- id: string;
94
- createdAt: string;
95
- updatedAt: string;
96
- title: string;
97
- type: SegmentType;
98
- keywords: string[];
99
- actions: SegmentAction[];
100
- speech: SegmentSpeech[];
101
- sections: SegmentSection[];
102
- storyMode?: {
103
- cards: SegmentTextCard[];
104
- speech: SegmentSpeech[];
105
- },
106
- textSummary?: string;
107
- }
108
-
109
- export type EnrichHackProfile = Profile | ProfileMetadata;
@@ -1,55 +0,0 @@
1
- import { HackEnrichmentVideo, PendingHackEnrichmentVideo } from './hack-enrichment-video';
2
-
3
- export interface HackEnrichmentVideoCreatedEvent {
4
- id: string;
5
- type: 'HackEnrichmentVideoCreated';
6
- payload: HackEnrichmentVideo;
7
- }
8
-
9
- export interface HackEnrichmentVideoUpdatedEvent {
10
- id: string;
11
- type: 'HackEnrichmentVideoUpdated';
12
- payload: HackEnrichmentVideo;
13
- }
14
-
15
- export interface HackEnrichmentVideoDeletedEvent {
16
- id: string;
17
- type: 'HackEnrichmentVideoDeleted';
18
- payload: HackEnrichmentVideo;
19
- }
20
-
21
- export interface PendingHackEnrichmentVideoCreatedEvent {
22
- id: string;
23
- type: 'PendingHackEnrichmentVideoCreated';
24
- payload: PendingHackEnrichmentVideo;
25
- }
26
-
27
- export interface PendingHackEnrichmentVideoUpdatedEvent {
28
- id: string;
29
- type: 'PendingHackEnrichmentVideoUpdated';
30
- payload: PendingHackEnrichmentVideo;
31
- }
32
-
33
- export interface PendingHackEnrichmentVideoDeletedEvent {
34
- id: string;
35
- type: 'PendingHackEnrichmentVideoDeleted';
36
- payload: PendingHackEnrichmentVideo;
37
- }
38
-
39
- export type HackEnrichmentVideoChangedEvent = HackEnrichmentVideoCreatedEvent | HackEnrichmentVideoUpdatedEvent | HackEnrichmentVideoDeletedEvent;
40
- export type PendingHackEnrichmentVideoChangedEvent = PendingHackEnrichmentVideoCreatedEvent | PendingHackEnrichmentVideoUpdatedEvent | PendingHackEnrichmentVideoDeletedEvent;
41
-
42
- export interface CreateHackEnrichmentVideoCommandBody {
43
- // a command needs an id and a version so that it can be more easily replayed
44
- // for this specific command, the id is the youTubeUrl and the version is a timestamp
45
- id: string;
46
- v: number;
47
- youTubeUrl: string;
48
- hackId: string;
49
- }
50
-
51
- export interface CreateHackEnrichmentVideoCommand {
52
- id: string;
53
- type: 'CreateHackEnrichmentVideoCommand';
54
- payload: CreateHackEnrichmentVideoCommandBody;
55
- }
@@ -1,40 +0,0 @@
1
- import { VideoMetadata } from '..';
2
-
3
- export interface HackEnrichmentVideo {
4
- id: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- youTubeUrl: string;
9
- hackId: string;
10
-
11
- youTubeVideoId: string;
12
- startAtSeconds: number;
13
- endAtSeconds: number;
14
-
15
- s3Path: string;
16
- videoMetadata: VideoMetadata;
17
-
18
- // Set to true when the original hack still includes the URL of this video, and false when the URL is removed from the hack
19
- referencedByHack: boolean;
20
- }
21
-
22
- export interface PendingHackEnrichmentVideo {
23
- // not used as a key in the dynamo table
24
- id: string;
25
- v: number;
26
- createdAt: string;
27
- updatedAt: string;
28
-
29
- // hash and range keys
30
- youTubeUrl: string;
31
- hackId: string;
32
-
33
- hackEnrichmentVideoId: string;
34
-
35
- status: PendingHackEnrichmentVideoStatus;
36
- error?: string;
37
- }
38
-
39
- // on success, the pending entity is deleted
40
- export type PendingHackEnrichmentVideoStatus = 'processing' | 'failed';
@@ -1,54 +0,0 @@
1
- import { Entitlement, EntitlementName } from './user-entitlements';
2
-
3
- export interface IssueUserEntitlementCommand {
4
- id: string;
5
- type: 'IssueUserEntitlement',
6
- payload: IssueUserEntitlementCommandPayload
7
- }
8
-
9
- export interface IssueUserEntitlementCommandPayload extends Entitlement {
10
- id: string;
11
- v: number;
12
- userId: string;
13
- }
14
-
15
- export interface RemoveUserEntitlementCommand {
16
- id: string;
17
- type: 'RemoveUserEntitlement',
18
- payload: RemoveUserEntitlementCommandPayload
19
- }
20
-
21
- export interface RemoveUserEntitlementCommandPayload {
22
- issuer: string;
23
- entitlement: EntitlementName | string;
24
- userId: string;
25
- }
26
-
27
- export interface RefreshRevenueCatUserStatusCommand {
28
- id: string;
29
- type: 'RefreshRevenueCatUserStatus',
30
- payload: {
31
- userId: string;
32
- };
33
- }
34
-
35
- /**
36
- * Ensure the user has the provided entitlements from the given issuer.
37
- * Will remove any existing entitlements from the issuer that are not specified in the command
38
- */
39
- export interface SetUserEntitlementsFromIssuerCommand {
40
- id: string;
41
- type: 'SetUserEntitlementsFromIssuer',
42
- payload: {
43
- id: string;
44
- v: number,
45
- issuer: string;
46
- userId: string
47
- entitlements: {
48
- entitlement: EntitlementName | string;
49
- /** leave a undefined to never expire */
50
- expiresAt?: string
51
- issuedAt: string;
52
- }[]
53
- }
54
- }
@@ -1,29 +0,0 @@
1
- import { UserEntitlements } from './user-entitlements';
2
-
3
- export interface UserEntitlementsCreatedEvent {
4
- id: string;
5
- type: 'UserEntitlementsCreated';
6
- payload: UserEntitlements;
7
- }
8
-
9
- export interface UserEntitlementsUpdatedEvent {
10
- id: string;
11
- type: 'UserEntitlementsUpdated';
12
- payload: UserEntitlements;
13
- }
14
-
15
- export interface UserEntitlementsDeletedEvent {
16
- id: string;
17
- type: 'UserEntitlementsDeleted';
18
- payload: UserEntitlements;
19
- }
20
-
21
- export type UserEntitlementsChangedEvent = UserEntitlementsCreatedEvent | UserEntitlementsUpdatedEvent | UserEntitlementsDeletedEvent;
22
-
23
- export interface RevenueCatWebhookReceivedEvent {
24
- id: string;
25
- type: 'RevenueCatWebhookReceived',
26
- payload: {
27
- event: any;
28
- };
29
- }
@@ -1,18 +0,0 @@
1
- export type EntitlementName = 'premium' | 'trial';
2
- export type EntitlementIssuer = 'Uptime' | 'RevenueCat';
3
-
4
- export type Entitlement = {
5
- entitlement: EntitlementName | string;
6
- issuer: EntitlementIssuer | string;
7
- expiresAt: string
8
- issuedAt: string;
9
- };
10
-
11
- export interface UserEntitlements {
12
- id: string;
13
- v: number;
14
- createdAt: string;
15
- updatedAt: string;
16
- userId: string;
17
- entitlements: Entitlement[];
18
- }
@@ -1,85 +0,0 @@
1
- import { Flashcard } from './flashcard';
2
-
3
- export interface FlashcardCreatedEvent {
4
- id: string;
5
- type: 'FlashcardCreated';
6
- payload: Flashcard;
7
- }
8
-
9
- export interface FlashcardUpdatedEvent {
10
- id: string;
11
- type: 'FlashcardUpdated';
12
- payload: Flashcard;
13
- }
14
-
15
- export interface FlashcardDeletedEvent {
16
- id: string;
17
- type: 'FlashcardDeleted';
18
- payload: Flashcard;
19
- }
20
-
21
- export type FlashcardChangedEvent = FlashcardCreatedEvent | FlashcardUpdatedEvent | FlashcardDeletedEvent;
22
-
23
- export interface FlashcardRestored {
24
- // needs id and v so that it can be replayed
25
- // id is flashcard id
26
- id: string;
27
- // v is timestamp
28
- v: number;
29
- userId: string;
30
- cardId: string;
31
- }
32
-
33
- export interface FlashcardRestoredEvent {
34
- id: string;
35
- type: 'FlashcardRestored';
36
- payload: FlashcardRestored;
37
- }
38
-
39
- export interface FlashcardPromoted {
40
- // needs id and v so that it can be replayed
41
- // id is flashcard id
42
- id: string;
43
- // v is timestamp
44
- v: number;
45
- userId: string;
46
- cardId: string;
47
- }
48
-
49
- export interface FlashcardPromotedEvent {
50
- id: string;
51
- type: 'FlashcardPromoted';
52
- payload: FlashcardPromoted;
53
- }
54
-
55
- export interface FlashcardDismissed {
56
- // needs id and v so that it can be replayed
57
- // id is flashcard id
58
- id: string;
59
- // v is timestamp
60
- v: number;
61
- userId: string;
62
- cardId: string;
63
- }
64
-
65
- export interface FlashcardDismissedEvent {
66
- id: string
67
- type: 'FlashcardDismissed';
68
- payload: FlashcardDismissed;
69
- }
70
-
71
- export interface FlashcardDemoted {
72
- // needs id and v so that it can be replayed
73
- // id is flashcard id
74
- id: string;
75
- // v is timestamp
76
- v: number;
77
- userId: string;
78
- cardId: string;
79
- }
80
-
81
- export interface FlashcardDemotedEvent {
82
- id: string;
83
- type: 'FlashcardDemoted';
84
- payload: FlashcardDemoted;
85
- }
@@ -1,138 +0,0 @@
1
- import { CardType, Hack, SegmentType, SupportedLocale, Theme } from '../index';
2
-
3
- export interface Flashcard {
4
- id: string;
5
- v: number;
6
- createdAt: string;
7
- updatedAt: string;
8
- userId: string;
9
- hackId: string;
10
- segmentId: string;
11
- themeId: string;
12
-
13
- // also shows up in the "card", but easier to create GSI from top level property
14
- cardId: string;
15
- card: FlashedTextCard;
16
-
17
- /*
18
- A flashcard can have multiple reasons for its existence
19
- when all reasons go away (when spark is deleted and hack is made unavailable), the Flashcard is deleted
20
- */
21
- reasonCreated: FlashcardCreationReason[];
22
-
23
- /*
24
- true when the user dismisses it
25
- */
26
- isDismissed: boolean;
27
-
28
- /*
29
- Flashcards from sparks are considered more important than flashcards from consumed content and should be displayed first
30
- */
31
- relevanceScore: number;
32
-
33
- /*
34
- Flashcards start at level 0 and are promoted to level 1+, or demoted back to level 0
35
- */
36
- level: number;
37
-
38
- /*
39
- After a flashcard is demoted, flash cycle count increases
40
- */
41
- flashCycle: number;
42
-
43
- /*
44
- How many times a user has seen this flashcard
45
- */
46
- timesFlashed: number;
47
-
48
- memorisationConfidence?: FlashcardMemorisationConfidence;
49
-
50
- /*
51
- ISO date in UTC which indicates when to flash this card to the user next.
52
- When flashcard is dismissed, "nextDateToFlash" becomes "never"
53
- */
54
- nextDateToFlash: string;
55
-
56
- /*
57
- Indicates whether the referenced hack is "available" (not hidden or deleted)
58
- */
59
- hackIsAvailable: boolean;
60
-
61
- /*
62
- Indicates whether the user has memorised the flashcard. It's considered memorised when its level >= 8
63
- */
64
- isMemorised: boolean;
65
-
66
- /*
67
- A hack with an enriched theme, so that the flashcard can be displayed when the hack becomes unavailable. This structure is consistent with Sparks.
68
- */
69
- hack: Hack;
70
-
71
- /*
72
- A hack's ACL. The Hack model doesn't have an ACL, this is from the equivalent enriched hack.
73
- */
74
- hackAcl: string[];
75
-
76
- /*
77
- A snapshot of the hack theme at the time the flashcard was created. This is consistent with Sparks also having a snapshot of the theme.
78
- */
79
- theme: Theme;
80
-
81
- /*
82
- The hackId for the hack in its base locale. Consistent with the Spark model.
83
- */
84
- baseLocaleHackId: string;
85
-
86
- /*
87
- The locale of the hack at the time this flashcard was created. Consistent with the Spark model.
88
- */
89
- locale: SupportedLocale;
90
-
91
- /*
92
- The language of the hack at the time this flashcard was created. Consistent with the Spark model.
93
- */
94
- language: string;
95
- }
96
-
97
- export interface FlashedTextCard {
98
- id: string;
99
- markdown: string;
100
- segmentType: SegmentType;
101
- isTitle?: boolean;
102
- cardType?: CardType;
103
- keyPhrases: KeyPhrase[];
104
- }
105
-
106
- export type FlashcardCreationReason = FlashcardCreationSparkReason | FlashcardCreationInsightConsumedReason;
107
-
108
- export interface FlashcardCreationSparkReason {
109
- type: FlashcardCreationReasonType.SparkCreated;
110
- sparkId: string;
111
- // ISO date
112
- dateSparkCreated: string;
113
- }
114
-
115
- export interface FlashcardCreationInsightConsumedReason {
116
- type: FlashcardCreationReasonType.InsightConsumed;
117
- // this helps figure out if the insight was already turned into a flashcard. Using the cardId is insufficient because the cardId can change if the markdown of the hack changes.
118
- // supported insight numbers: 1, 2, 3
119
- insightNumber: number;
120
- // ISO date
121
- dateHackLastViewed: string;
122
- }
123
-
124
- export enum FlashcardCreationReasonType {
125
- SparkCreated = 'SparkCreated',
126
- InsightConsumed = 'InsightConsumed'
127
- }
128
-
129
- export enum FlashcardMemorisationConfidence {
130
- Green = 'Green',
131
- Amber = 'Amber',
132
- Red = 'Red'
133
- }
134
-
135
- export interface KeyPhrase {
136
- phrase: string;
137
- score: number;
138
- }
@@ -1,31 +0,0 @@
1
- export interface ExtractedSubject {
2
- name: string;
3
- }
4
-
5
- export interface ExtractSubjectsCommandBody {
6
- id: string;
7
- v: number;
8
- reference: string;
9
- content: string;
10
- contentType: string; // e.g. 'hack'
11
- }
12
-
13
- export interface ExtractSubjectsCommand {
14
- id: string;
15
- type: 'ExtractSubjectsCommand';
16
- payload: ExtractSubjectsCommandBody;
17
- }
18
-
19
- export interface SubjectsExtracted {
20
- id: string;
21
- type: 'SubjectsExtracted',
22
- payload: SubjectsExtractedBody
23
- }
24
-
25
- export interface SubjectsExtractedBody {
26
- id: string,
27
- v: number,
28
- reference: string,
29
- contentType: string;
30
- subjects: ExtractedSubject[]
31
- }