@uptime.app/contracts 3.0.54-rc.1 → 3.0.54-rc.3

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 (182) hide show
  1. package/dist/cjs/service-simulator/mock-request-response.d.ts +8 -0
  2. package/dist/cjs/service-simulator/mock-request-response.d.ts.map +1 -1
  3. package/dist/esm/service-simulator/mock-request-response.d.ts +8 -0
  4. package/dist/esm/service-simulator/mock-request-response.d.ts.map +1 -1
  5. package/package.json +5 -3
  6. package/src/access-control/collection-access-control.ts +0 -28
  7. package/src/access-control/hack-access-control.ts +0 -32
  8. package/src/access-control/profile-access-control.ts +0 -28
  9. package/src/app-hack/app-full-hack.ts +0 -9
  10. package/src/app-hack/app-hack-metadata.ts +0 -61
  11. package/src/app-hack/app-restricted-hack.ts +0 -22
  12. package/src/b2b-content-access/b2b-content-access.ts +0 -57
  13. package/src/b2b-organisation/b2b-carousel.ts +0 -33
  14. package/src/b2b-organisation/b2b-org-idp-mapping.ts +0 -28
  15. package/src/b2b-organisation/b2b-organisation-events.ts +0 -21
  16. package/src/b2b-organisation/b2b-organisation-group-events.ts +0 -21
  17. package/src/b2b-organisation/b2b-organisation-group-membership-events.ts +0 -21
  18. package/src/b2b-organisation/b2b-organisation-group-membership.ts +0 -17
  19. package/src/b2b-organisation/b2b-organisation-group.ts +0 -43
  20. package/src/b2b-organisation/b2b-organisation-invitation.ts +0 -45
  21. package/src/b2b-organisation/b2b-organisation-member-events.ts +0 -21
  22. package/src/b2b-organisation/b2b-organisation-member.ts +0 -20
  23. package/src/b2b-organisation/b2b-organisation.ts +0 -38
  24. package/src/brand/brand-events.ts +0 -21
  25. package/src/brand/brand.ts +0 -78
  26. package/src/catalogue/catalogue.ts +0 -152
  27. package/src/cms-hack/cms-searchable-hack.ts +0 -44
  28. package/src/collection/collection-events.ts +0 -21
  29. package/src/collection/collection.ts +0 -59
  30. package/src/collection/enriched-collection-events.ts +0 -18
  31. package/src/collection/enriched-collection.ts +0 -65
  32. package/src/course/course-events.ts +0 -21
  33. package/src/course/course.ts +0 -25
  34. package/src/course-enrollment/course-enrollment-events.ts +0 -21
  35. package/src/course-enrollment/course-enrollment.ts +0 -36
  36. package/src/creator/creator-events.ts +0 -32
  37. package/src/creator/creator.ts +0 -7
  38. package/src/distribution/collection-distribution.ts +0 -17
  39. package/src/distribution/distribution-events.ts +0 -61
  40. package/src/distribution/hack-distribution.ts +0 -19
  41. package/src/draft-hack/draft-hack-events.ts +0 -21
  42. package/src/draft-hack/draft-hack.ts +0 -190
  43. package/src/draft-hack-generation/draft-hack-generation-commands.ts +0 -10
  44. package/src/draft-hack-generation/draft-hack-generation-events.ts +0 -55
  45. package/src/draft-hack-generation/draft-hack-generation.ts +0 -39
  46. package/src/enriched-b2b-organisation/enriched-b2b-organisation-events.ts +0 -21
  47. package/src/enriched-b2b-organisation/enriched-b2b-organisation.ts +0 -38
  48. package/src/enriched-hack/enriched-hack-events.ts +0 -21
  49. package/src/enriched-hack/enriched-hack.ts +0 -109
  50. package/src/enrichment-asset/hack-enrichment-video-events.ts +0 -55
  51. package/src/enrichment-asset/hack-enrichment-video.ts +0 -40
  52. package/src/entitlement/user-entitlements-commands.ts +0 -54
  53. package/src/entitlement/user-entitlements-events.ts +0 -29
  54. package/src/entitlement/user-entitlements.ts +0 -18
  55. package/src/flashcard/flashcard-events.ts +0 -85
  56. package/src/flashcard/flashcard.ts +0 -138
  57. package/src/hack/extracted-subject.ts +0 -31
  58. package/src/hack/hack-events.ts +0 -21
  59. package/src/hack/hack-published.ts +0 -21
  60. package/src/hack/hack-with-voice-events.ts +0 -21
  61. package/src/hack/hack-with-voice.ts +0 -36
  62. package/src/hack/hack.ts +0 -127
  63. package/src/hack/publish-hack-command.ts +0 -20
  64. package/src/hack/republish-hack-command.ts +0 -20
  65. package/src/hack-mapping/access-helper.ts +0 -6
  66. package/src/hack-mapping/app-full-hack.test.ts +0 -13
  67. package/src/hack-mapping/app-full-hack.ts +0 -14
  68. package/src/hack-mapping/app-hack-metadata.test.ts +0 -22
  69. package/src/hack-mapping/app-hack-metadata.ts +0 -82
  70. package/src/hack-mapping/app-restricted-hack.test.ts +0 -12
  71. package/src/hack-mapping/app-restricted-hack.ts +0 -21
  72. package/src/hack-mapping/remove-undefined-fields.ts +0 -9
  73. package/src/hack-mapping/test-data/enriched-hack.json +0 -2576
  74. package/src/hack-mapping/test-data/expected-app-full-hack.json +0 -2509
  75. package/src/hack-mapping/test-data/expected-app-hack-metadata.json +0 -93
  76. package/src/hack-mapping/test-data/expected-app-restricted-hack.json +0 -799
  77. package/src/hack-metadata/hack-metadata-events.ts +0 -21
  78. package/src/hack-metadata/hack-metadata.ts +0 -17
  79. package/src/hack-of-the-day/hack-of-the-day-events.ts +0 -21
  80. package/src/hack-of-the-day/hack-of-the-day.ts +0 -13
  81. package/src/hack-statistics/hack-statistics-events.ts +0 -21
  82. package/src/hack-statistics/hack-statistics.ts +0 -10
  83. package/src/hackbot/hack-generation-commands.ts +0 -43
  84. package/src/hackbot/hack-generation-trigger-events.ts +0 -21
  85. package/src/hackbot/hack-generation-trigger.ts +0 -54
  86. package/src/hackbot/knowledge-source-location.ts +0 -5
  87. package/src/history/history-events.ts +0 -21
  88. package/src/history/history.ts +0 -46
  89. package/src/identity-provider/domain-identity-provider-events.ts +0 -21
  90. package/src/identity-provider/domain-identity-provider.ts +0 -11
  91. package/src/identity-provider/identity-provider-events.ts +0 -21
  92. package/src/identity-provider/identity-provider.ts +0 -51
  93. package/src/index.ts +0 -220
  94. package/src/interest/interest-events.ts +0 -21
  95. package/src/interest/interest.ts +0 -15
  96. package/src/knowledge-source/knowledge-source-events.ts +0 -21
  97. package/src/knowledge-source/knowledge-source.ts +0 -43
  98. package/src/knowledge-source-parsing/knowledge-source-metadata.ts +0 -60
  99. package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +0 -50
  100. package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +0 -30
  101. package/src/knowledge-source-parsing/podcast-metadata.ts +0 -45
  102. package/src/knowledge-source-parsing/podcast-parsing-events.ts +0 -28
  103. package/src/knowledge-source-parsing/user-hack-generation-options.ts +0 -7
  104. package/src/learn-upon/get-sqsso-url.ts +0 -13
  105. package/src/learn-upon/learn-upon-commands.ts +0 -33
  106. package/src/learn-upon/learn-upon-course-enrollment-events.ts +0 -21
  107. package/src/learn-upon/learn-upon-course-enrollment.ts +0 -63
  108. package/src/learn-upon/learn-upon-course-events.ts +0 -21
  109. package/src/learn-upon/learn-upon-course.ts +0 -109
  110. package/src/learn-upon/learn-upon-portal-events.ts +0 -21
  111. package/src/learn-upon/learn-upon-portal.ts +0 -13
  112. package/src/learn-upon/learn-upon-user-mapping-events.ts +0 -19
  113. package/src/learn-upon/learn-upon-user-mapping.ts +0 -10
  114. package/src/learn-upon/learn-upon-webhook-events.ts +0 -81
  115. package/src/learn-upon/learn-upon-webhook-types.ts +0 -347
  116. package/src/learn-upon/unenroll.ts +0 -7
  117. package/src/localisation/live-locales.ts +0 -45
  118. package/src/localisation/locale-language.ts +0 -4
  119. package/src/localisation/supported-languages.ts +0 -11
  120. package/src/localisation/supported-locales.ts +0 -67
  121. package/src/message-bus/context.ts +0 -8
  122. package/src/moderation/hack-moderation-result-events.ts +0 -18
  123. package/src/moderation/hack-moderation-result.ts +0 -27
  124. package/src/partner/partner-events.ts +0 -21
  125. package/src/partner/partner.ts +0 -7
  126. package/src/pending-hack/pending-hack-events.ts +0 -21
  127. package/src/pending-hack/pending-hack-with-voice-events.ts +0 -21
  128. package/src/pending-hack/pending-hack-with-voice.ts +0 -25
  129. package/src/pending-hack/pending-hack.ts +0 -78
  130. package/src/preferences/preferences-events.ts +0 -15
  131. package/src/preferences/preferences.ts +0 -35
  132. package/src/profile/profile-events.ts +0 -41
  133. package/src/profile/profile.ts +0 -36
  134. package/src/profile/translated-profile.ts +0 -13
  135. package/src/referral/referral-events.ts +0 -41
  136. package/src/referral/referral.ts +0 -76
  137. package/src/saved/saved-collection-events.ts +0 -19
  138. package/src/saved/saved-collection.ts +0 -8
  139. package/src/segment/segment-commands.ts +0 -75
  140. package/src/segment/segment-events.ts +0 -42
  141. package/src/segment/segment-with-voice.ts +0 -8
  142. package/src/segment/segment.ts +0 -82
  143. package/src/service-simulator/mock-request-response.ts +0 -17
  144. package/src/skin/skin-events.ts +0 -21
  145. package/src/skin/skin.ts +0 -7
  146. package/src/spark/spark-board-read-model.ts +0 -17
  147. package/src/spark/spark-board.ts +0 -12
  148. package/src/spark/spark-events.ts +0 -42
  149. package/src/spark/spark.ts +0 -75
  150. package/src/text-analysis/hack-categories-extracted-events.ts +0 -24
  151. package/src/text-analysis/hack-categories-extracted.ts +0 -31
  152. package/src/text-analysis/hack-entities-extracted-events.ts +0 -24
  153. package/src/text-analysis/hack-entities-extracted.ts +0 -38
  154. package/src/text-analysis/hack-keywords-extracted-events.ts +0 -24
  155. package/src/text-analysis/hack-keywords-extracted.ts +0 -23
  156. package/src/text-analysis/hack-topics-extracted-events.ts +0 -24
  157. package/src/text-analysis/hack-topics-extracted.ts +0 -31
  158. package/src/text-to-speech/create-speech-commands.ts +0 -22
  159. package/src/text-to-speech/speech-created-events.ts +0 -10
  160. package/src/text-to-speech/supported-voices.ts +0 -222
  161. package/src/text-to-speech/text-segment.ts +0 -29
  162. package/src/theme/theme-events.ts +0 -21
  163. package/src/theme/theme.ts +0 -68
  164. package/src/translation/translation-events.ts +0 -73
  165. package/src/translation/translation.ts +0 -25
  166. package/src/trending/trending-events.ts +0 -21
  167. package/src/trending/trending-hacks.ts +0 -8
  168. package/src/user/cognito-user-authentication-log.ts +0 -8
  169. package/src/user/get-user.ts +0 -63
  170. package/src/user/user-events.ts +0 -39
  171. package/src/user-acl/user-acl-utils.test.ts +0 -273
  172. package/src/user-acl/user-acl-utils.ts +0 -177
  173. package/src/user-context/user-context-events.ts +0 -21
  174. package/src/user-context/user-context.ts +0 -16
  175. package/src/user-notification-context/user-notification-context-events.ts +0 -21
  176. package/src/user-notification-context/user-notification-context.ts +0 -10
  177. package/src/user-statistics/user-statistics-events.ts +0 -97
  178. package/src/user-statistics/user-statistics.ts +0 -82
  179. package/src/video-cropping/video-cropping-events.ts +0 -43
  180. package/src/video-cropping/video-metadata.ts +0 -12
  181. package/tsconfig.cjs.json +0 -7
  182. package/tsconfig.npm.json +0 -22
@@ -1,21 +0,0 @@
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,190 +0,0 @@
1
- import { SupportedLocale } from '../localisation/supported-locales';
2
-
3
- export interface DraftHack extends DraftHackContent {
4
- /** The unique id of the draft hack. */
5
- id: string;
6
- /** The locale (language and region) of the draft hack e.g. fr-FR. Mandatory property since 12/01/2023. */
7
- locale: SupportedLocale;
8
- /** @deprecated Temporarily added in 12/01/2023. Should not be used under any circumstance as only a handful of drafts will contain this property */
9
- baseLocaleDraftHackId?: string;
10
- /** The id of the hack. Mandatory property since Dec 2022. */
11
- hackId: string;
12
- /** The id of the hack in its original locale. Mandatory property since 01/02/2023. */
13
- baseLocaleHackId: string;
14
-
15
- v: number;
16
- createdAt: string;
17
- updatedAt: string;
18
- publishedAt?: string;
19
- publishedVersion?: number;
20
- owner?: string;
21
- tenant?: string;
22
- /** workflowStatus was added in May 2022 as we move toward UGC. Older drafts have not been backfilled */
23
- workflowStatus?: DraftHackWorkflowStatus;
24
- /** added in Nov 2022. Set to true whenever content changes are made to the draft */
25
- hasUnpublishedChanges?: boolean;
26
- /** added in March 2023. Must be set whenever content changes are made to the draft */
27
- contentUpdatedAt?: string;
28
- /** added in late April 2023. Only set on translations. Set to the value of contentUpdatedAt of the base locale draft that was translated. Can be used to determine if the translated draft is out of sync with the original draft */
29
- baseLocaleContentUpdatedAt?: string;
30
- }
31
-
32
- export interface DraftHackContent {
33
- /**
34
- * @maxLength 150
35
- */
36
- title: string;
37
- /**
38
- * @maxLength 50
39
- */
40
- sourceId?: string;
41
- /**
42
- * @maxLength 50
43
- */
44
- themeId?: string;
45
- segments: DraftHackSegments;
46
- /**
47
- * @maxLength 1000
48
- */
49
- coverUrl?: string;
50
- /**
51
- * Added in July 2024. This is the URL of the cover image that is free to use without any copyright.
52
- * @maxLength 1000
53
- */
54
- copyrightFreeCoverUrl?: string;
55
- notifications?: DraftHackNotifications;
56
- affiliate?: DraftAffiliate;
57
- /**
58
- * @maxItems 50
59
- */
60
- topics?: DraftTopic[];
61
- /**
62
- * @maxItems 10
63
- */
64
- contributors?: DraftContributor[];
65
- sourceData?: DraftSourceData;
66
- /** For creators only. We will tackle this validation once profiles are introduce*/
67
- externalLink?: DraftHackExternalLink;
68
- /** For recording purpose for now, we will use this value further in the future */
69
- contentRating?: DraftHackRating;
70
- /**
71
- * @maxItems 50
72
- * @items.maxLength 150
73
- */
74
- tags?: string[];
75
- type?: DraftHackType;
76
- isCopyrightFree?: boolean;
77
- }
78
-
79
- export interface DraftHackNotifications {
80
- /**
81
- * @maxLength 1000
82
- */
83
- aiGeneratedText?: string;
84
- /**
85
- * @maxLength 1000
86
- */
87
- humanCuratedText?: string;
88
- }
89
-
90
- export interface DraftHackSegments {
91
- favouriteQuote?: DraftHackSegment;
92
- inANutshell?: DraftHackSegment;
93
- introduction?: DraftHackSegment;
94
- /**
95
- * @maxItems 10
96
- */
97
- insights?: DraftHackInsightSegment[];
98
- conclusion?: DraftHackSegment;
99
- }
100
-
101
- export interface DraftHackCard {
102
- /**
103
- * @maxLength 2000
104
- */
105
- markdown: string;
106
- }
107
-
108
- export interface DraftHackSegment {
109
- /**
110
- * @maxItems 50
111
- * @items.maxLength 150
112
- */
113
- keywords: string[];
114
- paragraphCards: DraftHackCard[][];
115
- /**
116
- * @maxLength 1000
117
- */
118
- textSummary?: string;
119
- }
120
-
121
- export interface DraftHackInsightSegment extends DraftHackSegment {
122
- /**
123
- * @maxLength 150
124
- */
125
- title?: string;
126
- /**
127
- * @maxItems 50
128
- */
129
- actions: DraftHackAction[];
130
- }
131
-
132
- export interface DraftHackAction {
133
- /**
134
- * @maxLength 150
135
- */
136
- title: string;
137
- /**
138
- * @maxLength 1000
139
- */
140
- markdown: string
141
- }
142
-
143
- export interface DraftContributor {
144
- /**
145
- * @maxLength 150
146
- */
147
- name: string;
148
- }
149
-
150
- export interface DraftTopic {
151
- /**
152
- * @maxLength 150
153
- */
154
- name: string;
155
- }
156
-
157
- export interface DraftAffiliate {
158
- /**
159
- * @maxLength 1000
160
- */
161
- url?: string;
162
- /**
163
- * @maxLength 150
164
- */
165
- name?: string;
166
- }
167
-
168
- export interface DraftSourceData {
169
- /**
170
- * @maxLength 150
171
- */
172
- episodeTitle?: string;
173
- /**
174
- * @maxLength 50
175
- */
176
- releaseDate?: string;
177
- }
178
-
179
- export interface DraftHackExternalLink {
180
- /**
181
- * @maxLength 1000
182
- */
183
- url: string;
184
- type: 'Website' | 'Book' | 'Course' | 'Podcast' | 'Video' | 'Other';
185
- }
186
-
187
- // this status is currently used to present the draft in different columns in the airtable used by the content team
188
- export type DraftHackWorkflowStatus = 'publishing' | 'published';
189
- export type DraftHackType = 'book' | 'course' | 'documentary' | 'podcast' | 'original';
190
- export type DraftHackRating = 'mature' | 'appropriate';
@@ -1,10 +0,0 @@
1
- export interface GenerateDraftHackCommand {
2
- id: string;
3
- type: 'GenerateDraftHack';
4
- payload: {
5
- knowledgeSourceContributor: string;
6
- knowledgeSourceName: string;
7
- knowledgeSourceType: string;
8
- reference: string;
9
- };
10
- }
@@ -1,55 +0,0 @@
1
- import { GeneratedDraftHackContent } from './draft-hack-generation';
2
-
3
- export interface DraftHackGenerated {
4
- id: string;
5
- type: 'DraftHackGenerated';
6
- payload: {
7
- // the draft hack id
8
- id: string;
9
- // the version
10
- v: number;
11
- reference: string;
12
- draftHackId: string;
13
- draftHackContent: GeneratedDraftHackContent;
14
-
15
- hackGenerationTriggerId: string;
16
-
17
- // introduced 11/09/2024
18
- researchNotes?: {
19
- insight1: string;
20
- insight2: string;
21
- insight3: string;
22
- };
23
- transcriptSource?: {
24
- s3Path: string;
25
- };
26
- }
27
- }
28
-
29
- export interface DraftHackGenerationFailed {
30
- id: string;
31
- type: 'DraftHackGenerationFailed';
32
- payload: {
33
- reference: string;
34
- hackGenerationTriggerId: string;
35
- errorMessage: string;
36
- }
37
- }
38
-
39
- export interface GeneratedDraftHackSavedToGoogleDrive {
40
- id: string;
41
- type: 'GeneratedDraftHackSavedToGoogleDrive';
42
- payload: {
43
- // the draft hack id
44
- id: string;
45
- // the version
46
- v: number;
47
- reference: string;
48
- draftHackId: string;
49
- draftHackContent: GeneratedDraftHackContent;
50
- driveFile: {
51
- id: string;
52
- parentId: string;
53
- }
54
- }
55
- }
@@ -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
- }