@uptime.app/contracts 2.0.78-UPM-7842.0 → 2.0.78-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/cjs/index.d.ts +2 -1
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +2 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/message-bus/{Context.d.ts → context.d.ts} +1 -1
  6. package/dist/cjs/message-bus/context.d.ts.map +1 -0
  7. package/dist/cjs/message-bus/{Context.js → context.js} +1 -1
  8. package/dist/cjs/message-bus/context.js.map +1 -0
  9. package/dist/cjs/service-simulator/mock-request-response.d.ts +21 -0
  10. package/dist/cjs/service-simulator/mock-request-response.d.ts.map +1 -0
  11. package/dist/cjs/service-simulator/mock-request-response.js +3 -0
  12. package/dist/cjs/service-simulator/mock-request-response.js.map +1 -0
  13. package/dist/cjs/user/get-user.d.ts +1 -2
  14. package/dist/cjs/user/get-user.d.ts.map +1 -1
  15. package/dist/cjs/user/get-user.js.map +1 -1
  16. package/dist/cjs/user/user-events.d.ts +0 -3
  17. package/dist/cjs/user/user-events.d.ts.map +1 -1
  18. package/dist/esm/index.d.ts +2 -1
  19. package/dist/esm/index.d.ts.map +1 -1
  20. package/dist/esm/index.js +2 -1
  21. package/dist/esm/index.js.map +1 -1
  22. package/dist/esm/message-bus/{Context.d.ts → context.d.ts} +1 -1
  23. package/dist/esm/message-bus/context.d.ts.map +1 -0
  24. package/dist/esm/message-bus/context.js +2 -0
  25. package/dist/esm/message-bus/context.js.map +1 -0
  26. package/dist/esm/service-simulator/mock-request-response.d.ts +21 -0
  27. package/dist/esm/service-simulator/mock-request-response.d.ts.map +1 -0
  28. package/dist/esm/service-simulator/mock-request-response.js +2 -0
  29. package/dist/esm/service-simulator/mock-request-response.js.map +1 -0
  30. package/dist/esm/user/get-user.d.ts +1 -2
  31. package/dist/esm/user/get-user.d.ts.map +1 -1
  32. package/dist/esm/user/get-user.js.map +1 -1
  33. package/dist/esm/user/user-events.d.ts +0 -3
  34. package/dist/esm/user/user-events.d.ts.map +1 -1
  35. package/package.json +2 -2
  36. package/src/access-control/collection-access-control.ts +28 -28
  37. package/src/access-control/hack-access-control.ts +32 -32
  38. package/src/access-control/profile-access-control.ts +27 -27
  39. package/src/app-hack/app-full-hack.ts +9 -9
  40. package/src/app-hack/app-hack-metadata.ts +61 -61
  41. package/src/app-hack/app-restricted-hack.ts +22 -22
  42. package/src/b2b-content-access/b2b-content-access.ts +57 -57
  43. package/src/b2b-organisation/b2b-carousel.ts +33 -33
  44. package/src/b2b-organisation/b2b-org-idp-mapping.ts +27 -27
  45. package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
  46. package/src/b2b-organisation/b2b-organisation-invitation.ts +45 -45
  47. package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
  48. package/src/b2b-organisation/b2b-organisation-member.ts +19 -19
  49. package/src/b2b-organisation/b2b-organisation.ts +35 -35
  50. package/src/brand/brand-events.ts +21 -21
  51. package/src/brand/brand.ts +27 -27
  52. package/src/catalogue/catalogue.ts +147 -147
  53. package/src/cms-hack/cms-searchable-hack.ts +44 -44
  54. package/src/collection/collection-events.ts +21 -21
  55. package/src/collection/collection.ts +57 -57
  56. package/src/collection/enriched-collection-events.ts +18 -18
  57. package/src/collection/enriched-collection.ts +61 -61
  58. package/src/course/course-events.ts +20 -20
  59. package/src/course/course.ts +16 -16
  60. package/src/course-enrollment/course-enrollment-events.ts +21 -21
  61. package/src/course-enrollment/course-enrollment.ts +25 -25
  62. package/src/creator/creator-events.ts +32 -32
  63. package/src/creator/creator.ts +7 -7
  64. package/src/distribution/collection-distribution.ts +17 -17
  65. package/src/distribution/distribution-events.ts +61 -61
  66. package/src/distribution/hack-distribution.ts +18 -18
  67. package/src/draft-hack/draft-hack-events.ts +21 -21
  68. package/src/draft-hack/draft-hack.ts +190 -190
  69. package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
  70. package/src/draft-hack-generation/draft-hack-generation-events.ts +52 -52
  71. package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
  72. package/src/enriched-b2b-organisation/enriched-b2b-organisation-events.ts +21 -21
  73. package/src/enriched-b2b-organisation/enriched-b2b-organisation.ts +33 -33
  74. package/src/enriched-hack/enriched-hack-events.ts +21 -21
  75. package/src/enriched-hack/enriched-hack.ts +109 -109
  76. package/src/enrichment-asset/hack-enrichment-video-events.ts +55 -55
  77. package/src/enrichment-asset/hack-enrichment-video.ts +40 -40
  78. package/src/entitlement/user-entitlements-commands.ts +54 -54
  79. package/src/entitlement/user-entitlements-events.ts +29 -29
  80. package/src/entitlement/user-entitlements.ts +18 -18
  81. package/src/flashcard/flashcard-events.ts +85 -85
  82. package/src/flashcard/flashcard.ts +138 -138
  83. package/src/hack/extracted-subject.ts +31 -31
  84. package/src/hack/hack-events.ts +21 -21
  85. package/src/hack/hack-published.ts +21 -21
  86. package/src/hack/hack-with-voice-events.ts +20 -20
  87. package/src/hack/hack-with-voice.ts +36 -36
  88. package/src/hack/hack.ts +120 -120
  89. package/src/hack/publish-hack-command.ts +20 -20
  90. package/src/hack/republish-hack-command.ts +20 -20
  91. package/src/hack-mapping/access-helper.ts +6 -6
  92. package/src/hack-mapping/app-full-hack.test.ts +12 -12
  93. package/src/hack-mapping/app-full-hack.ts +14 -14
  94. package/src/hack-mapping/app-hack-metadata.test.ts +22 -22
  95. package/src/hack-mapping/app-hack-metadata.ts +82 -82
  96. package/src/hack-mapping/app-restricted-hack.test.ts +11 -11
  97. package/src/hack-mapping/app-restricted-hack.ts +21 -21
  98. package/src/hack-mapping/remove-undefined-fields.ts +9 -9
  99. package/src/hack-mapping/test-data/enriched-hack.json +2576 -2576
  100. package/src/hack-mapping/test-data/expected-app-full-hack.json +2509 -2509
  101. package/src/hack-mapping/test-data/expected-app-hack-metadata.json +93 -93
  102. package/src/hack-mapping/test-data/expected-app-restricted-hack.json +799 -799
  103. package/src/hack-metadata/hack-metadata-events.ts +21 -21
  104. package/src/hack-metadata/hack-metadata.ts +17 -17
  105. package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
  106. package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
  107. package/src/hack-statistics/hack-statistics-events.ts +21 -21
  108. package/src/hack-statistics/hack-statistics.ts +9 -9
  109. package/src/hackbot/hack-generation-commands.ts +44 -44
  110. package/src/hackbot/hack-generation-trigger-events.ts +21 -21
  111. package/src/hackbot/hack-generation-trigger.ts +56 -56
  112. package/src/history/history-events.ts +21 -21
  113. package/src/history/history.ts +46 -46
  114. package/src/identity-provider/domain-identity-provider-events.ts +20 -20
  115. package/src/identity-provider/domain-identity-provider.ts +10 -10
  116. package/src/identity-provider/identity-provider-events.ts +20 -20
  117. package/src/identity-provider/identity-provider.ts +41 -41
  118. package/src/index.ts +199 -197
  119. package/src/interest/interest-events.ts +21 -21
  120. package/src/interest/interest.ts +15 -15
  121. package/src/knowledge-source/knowledge-source-events.ts +21 -21
  122. package/src/knowledge-source/knowledge-source.ts +43 -43
  123. package/src/knowledge-source-parsing/knowledge-source-metadata.ts +52 -52
  124. package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
  125. package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +30 -30
  126. package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
  127. package/src/knowledge-source-parsing/podcast-parsing-events.ts +28 -28
  128. package/src/knowledge-source-parsing/user-hack-generation-options.ts +7 -7
  129. package/src/learn-upon/learn-upon-commands.ts +13 -13
  130. package/src/learn-upon/learn-upon-portal-events.ts +18 -18
  131. package/src/learn-upon/learn-upon-portal.ts +11 -11
  132. package/src/learn-upon/learn-upon-user-mapping-events.ts +18 -18
  133. package/src/learn-upon/learn-upon-user-mapping.ts +9 -9
  134. package/src/learn-upon/learn-upon-webhook-events.ts +80 -80
  135. package/src/learn-upon/learn-upon-webhook-types.ts +340 -340
  136. package/src/localisation/live-locales.ts +45 -45
  137. package/src/localisation/locale-language.ts +4 -4
  138. package/src/localisation/supported-languages.ts +11 -11
  139. package/src/localisation/supported-locales.ts +67 -67
  140. package/src/message-bus/Context.ts +7 -7
  141. package/src/moderation/hack-moderation-result-events.ts +18 -18
  142. package/src/moderation/hack-moderation-result.ts +27 -27
  143. package/src/partner/partner-events.ts +21 -21
  144. package/src/partner/partner.ts +7 -7
  145. package/src/pending-hack/pending-hack-events.ts +20 -20
  146. package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
  147. package/src/pending-hack/pending-hack-with-voice.ts +25 -25
  148. package/src/pending-hack/pending-hack.ts +78 -78
  149. package/src/preferences/preferences-events.ts +15 -15
  150. package/src/preferences/preferences.ts +35 -35
  151. package/src/profile/profile-events.ts +41 -41
  152. package/src/profile/profile.ts +36 -36
  153. package/src/profile/translated-profile.ts +13 -13
  154. package/src/referral/referral-events.ts +41 -41
  155. package/src/referral/referral.ts +76 -76
  156. package/src/saved/saved-collection-events.ts +19 -19
  157. package/src/saved/saved-collection.ts +8 -8
  158. package/src/segment/segment-commands.ts +75 -75
  159. package/src/segment/segment-events.ts +42 -42
  160. package/src/segment/segment-with-voice.ts +8 -8
  161. package/src/segment/segment.ts +82 -82
  162. package/src/service-simulator/mock-request-response.ts +23 -0
  163. package/src/skin/skin-events.ts +21 -21
  164. package/src/skin/skin.ts +6 -6
  165. package/src/spark/spark-board-read-model.ts +17 -17
  166. package/src/spark/spark-board.ts +12 -12
  167. package/src/spark/spark-events.ts +42 -42
  168. package/src/spark/spark.ts +75 -75
  169. package/src/text-to-speech/create-speech-commands.ts +22 -22
  170. package/src/text-to-speech/speech-created-events.ts +10 -10
  171. package/src/text-to-speech/supported-voices.ts +222 -222
  172. package/src/text-to-speech/text-segment.ts +29 -29
  173. package/src/theme/theme-events.ts +21 -21
  174. package/src/theme/theme.ts +68 -68
  175. package/src/translation/translation-events.ts +73 -73
  176. package/src/translation/translation.ts +25 -25
  177. package/src/trending/trending-events.ts +21 -21
  178. package/src/trending/trending-hacks.ts +8 -8
  179. package/src/user/cognito-user-authentication-log.ts +7 -7
  180. package/src/user/get-user.ts +62 -63
  181. package/src/user/user-events.ts +30 -32
  182. package/src/user-context/user-context-events.ts +21 -21
  183. package/src/user-context/user-context.ts +15 -15
  184. package/src/user-notification-context/user-notification-context-events.ts +21 -21
  185. package/src/user-notification-context/user-notification-context.ts +9 -9
  186. package/src/user-statistics/user-statistics-events.ts +97 -97
  187. package/src/user-statistics/user-statistics.ts +82 -82
  188. package/src/video-cropping/video-cropping-events.ts +43 -43
  189. package/src/video-cropping/video-metadata.ts +12 -12
  190. package/tsconfig.cjs.json +7 -7
  191. package/tsconfig.npm.json +22 -22
  192. package/dist/cjs/message-bus/Context.d.ts.map +0 -1
  193. package/dist/cjs/message-bus/Context.js.map +0 -1
  194. package/dist/esm/message-bus/Context.d.ts.map +0 -1
  195. package/dist/esm/message-bus/Context.js +0 -2
  196. package/dist/esm/message-bus/Context.js.map +0 -1
@@ -1,40 +1,40 @@
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
+ 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 +1,54 @@
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
+ 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 +1,29 @@
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
+ 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 +1,18 @@
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
+ 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 +1,85 @@
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
+ 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
+ }