@uptime.app/contracts 3.0.20-rc.2 → 3.0.21
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.
- package/dist/cjs/b2b-organisation/b2b-organisation-group-events.d.ts +18 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-events.d.ts.map +1 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-events.js +3 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-events.js.map +1 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-membership-events.d.ts +18 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-membership-events.d.ts.map +1 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-membership-events.js +3 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-membership-events.js.map +1 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.d.ts +10 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.d.ts.map +1 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.js +3 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group-membership.js.map +1 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group.d.ts +15 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group.d.ts.map +1 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group.js +9 -0
- package/dist/cjs/b2b-organisation/b2b-organisation-group.js.map +1 -0
- package/dist/cjs/course-enrollment/course-enrollment.d.ts +0 -2
- package/dist/cjs/course-enrollment/course-enrollment.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/b2b-organisation/b2b-organisation-group-events.d.ts +18 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-events.d.ts.map +1 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-events.js +2 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-events.js.map +1 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-membership-events.d.ts +18 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-membership-events.d.ts.map +1 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-membership-events.js +2 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-membership-events.js.map +1 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-membership.d.ts +10 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-membership.d.ts.map +1 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-membership.js +2 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group-membership.js.map +1 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group.d.ts +15 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group.d.ts.map +1 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group.js +6 -0
- package/dist/esm/b2b-organisation/b2b-organisation-group.js.map +1 -0
- package/dist/esm/course-enrollment/course-enrollment.d.ts +0 -2
- package/dist/esm/course-enrollment/course-enrollment.d.ts.map +1 -1
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/access-control/collection-access-control.ts +28 -28
- package/src/access-control/hack-access-control.ts +32 -32
- package/src/access-control/profile-access-control.ts +27 -27
- package/src/app-hack/app-full-hack.ts +9 -9
- package/src/app-hack/app-hack-metadata.ts +61 -61
- package/src/app-hack/app-restricted-hack.ts +22 -22
- package/src/b2b-content-access/b2b-content-access.ts +57 -57
- package/src/b2b-organisation/b2b-carousel.ts +33 -33
- package/src/b2b-organisation/b2b-org-idp-mapping.ts +27 -27
- package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
- package/src/b2b-organisation/b2b-organisation-group-events.ts +21 -0
- package/src/b2b-organisation/b2b-organisation-group-membership-events.ts +21 -0
- package/src/b2b-organisation/b2b-organisation-group-membership.ts +9 -0
- package/src/b2b-organisation/b2b-organisation-group.ts +16 -0
- package/src/b2b-organisation/b2b-organisation-invitation.ts +45 -45
- package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
- package/src/b2b-organisation/b2b-organisation-member.ts +19 -19
- package/src/b2b-organisation/b2b-organisation.ts +35 -35
- package/src/brand/brand-events.ts +21 -21
- package/src/brand/brand.ts +27 -27
- package/src/catalogue/catalogue.ts +147 -147
- package/src/cms-hack/cms-searchable-hack.ts +44 -44
- package/src/collection/collection-events.ts +21 -21
- package/src/collection/collection.ts +57 -57
- package/src/collection/enriched-collection-events.ts +18 -18
- package/src/collection/enriched-collection.ts +61 -61
- package/src/course/course-events.ts +20 -20
- package/src/course/course.ts +25 -25
- package/src/course-enrollment/course-enrollment-events.ts +21 -21
- package/src/course-enrollment/course-enrollment.ts +33 -35
- package/src/creator/creator-events.ts +32 -32
- package/src/creator/creator.ts +7 -7
- package/src/distribution/collection-distribution.ts +17 -17
- package/src/distribution/distribution-events.ts +61 -61
- package/src/distribution/hack-distribution.ts +18 -18
- package/src/draft-hack/draft-hack-events.ts +21 -21
- package/src/draft-hack/draft-hack.ts +190 -190
- package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
- package/src/draft-hack-generation/draft-hack-generation-events.ts +52 -52
- package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
- package/src/enriched-b2b-organisation/enriched-b2b-organisation-events.ts +21 -21
- package/src/enriched-b2b-organisation/enriched-b2b-organisation.ts +37 -37
- package/src/enriched-hack/enriched-hack-events.ts +21 -21
- package/src/enriched-hack/enriched-hack.ts +109 -109
- package/src/enrichment-asset/hack-enrichment-video-events.ts +55 -55
- package/src/enrichment-asset/hack-enrichment-video.ts +40 -40
- package/src/entitlement/user-entitlements-commands.ts +54 -54
- package/src/entitlement/user-entitlements-events.ts +29 -29
- package/src/entitlement/user-entitlements.ts +18 -18
- package/src/flashcard/flashcard-events.ts +85 -85
- package/src/flashcard/flashcard.ts +138 -138
- package/src/hack/extracted-subject.ts +31 -31
- package/src/hack/hack-events.ts +21 -21
- package/src/hack/hack-published.ts +21 -21
- package/src/hack/hack-with-voice-events.ts +20 -20
- package/src/hack/hack-with-voice.ts +36 -36
- package/src/hack/hack.ts +127 -127
- package/src/hack/publish-hack-command.ts +20 -20
- package/src/hack/republish-hack-command.ts +20 -20
- package/src/hack-mapping/access-helper.ts +6 -6
- package/src/hack-mapping/app-full-hack.test.ts +12 -12
- package/src/hack-mapping/app-full-hack.ts +14 -14
- package/src/hack-mapping/app-hack-metadata.test.ts +22 -22
- package/src/hack-mapping/app-hack-metadata.ts +82 -82
- package/src/hack-mapping/app-restricted-hack.test.ts +11 -11
- package/src/hack-mapping/app-restricted-hack.ts +21 -21
- package/src/hack-mapping/remove-undefined-fields.ts +9 -9
- package/src/hack-mapping/test-data/enriched-hack.json +2576 -2576
- package/src/hack-mapping/test-data/expected-app-full-hack.json +2509 -2509
- package/src/hack-mapping/test-data/expected-app-hack-metadata.json +93 -93
- package/src/hack-mapping/test-data/expected-app-restricted-hack.json +799 -799
- package/src/hack-metadata/hack-metadata-events.ts +21 -21
- package/src/hack-metadata/hack-metadata.ts +17 -17
- package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
- package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
- package/src/hack-statistics/hack-statistics-events.ts +21 -21
- package/src/hack-statistics/hack-statistics.ts +9 -9
- package/src/hackbot/hack-generation-commands.ts +44 -44
- package/src/hackbot/hack-generation-trigger-events.ts +21 -21
- package/src/hackbot/hack-generation-trigger.ts +56 -56
- package/src/history/history-events.ts +21 -21
- package/src/history/history.ts +46 -46
- package/src/identity-provider/domain-identity-provider-events.ts +20 -20
- package/src/identity-provider/domain-identity-provider.ts +10 -10
- package/src/identity-provider/identity-provider-events.ts +20 -20
- package/src/identity-provider/identity-provider.ts +46 -46
- package/src/index.ts +210 -205
- package/src/interest/interest-events.ts +21 -21
- package/src/interest/interest.ts +15 -15
- package/src/knowledge-source/knowledge-source-events.ts +21 -21
- package/src/knowledge-source/knowledge-source.ts +43 -43
- package/src/knowledge-source-parsing/knowledge-source-metadata.ts +52 -52
- package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
- package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +30 -30
- package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
- package/src/knowledge-source-parsing/podcast-parsing-events.ts +28 -28
- package/src/knowledge-source-parsing/user-hack-generation-options.ts +7 -7
- package/src/learn-upon/get-sqsso-url.ts +13 -13
- package/src/learn-upon/learn-upon-commands.ts +32 -32
- package/src/learn-upon/learn-upon-course-enrollment-events.ts +21 -21
- package/src/learn-upon/learn-upon-course-enrollment.ts +62 -62
- package/src/learn-upon/learn-upon-course-events.ts +21 -21
- package/src/learn-upon/learn-upon-course.ts +105 -105
- package/src/learn-upon/learn-upon-portal-events.ts +20 -20
- package/src/learn-upon/learn-upon-portal.ts +12 -12
- package/src/learn-upon/learn-upon-user-mapping-events.ts +18 -18
- package/src/learn-upon/learn-upon-user-mapping.ts +9 -9
- package/src/learn-upon/learn-upon-webhook-events.ts +80 -80
- package/src/learn-upon/learn-upon-webhook-types.ts +346 -346
- package/src/learn-upon/unenroll.ts +6 -6
- package/src/localisation/live-locales.ts +45 -45
- package/src/localisation/locale-language.ts +4 -4
- package/src/localisation/supported-languages.ts +11 -11
- package/src/localisation/supported-locales.ts +67 -67
- package/src/message-bus/context.ts +7 -7
- package/src/moderation/hack-moderation-result-events.ts +18 -18
- package/src/moderation/hack-moderation-result.ts +27 -27
- package/src/partner/partner-events.ts +21 -21
- package/src/partner/partner.ts +7 -7
- package/src/pending-hack/pending-hack-events.ts +20 -20
- package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
- package/src/pending-hack/pending-hack-with-voice.ts +25 -25
- package/src/pending-hack/pending-hack.ts +78 -78
- package/src/preferences/preferences-events.ts +15 -15
- package/src/preferences/preferences.ts +35 -35
- package/src/profile/profile-events.ts +41 -41
- package/src/profile/profile.ts +36 -36
- package/src/profile/translated-profile.ts +13 -13
- package/src/referral/referral-events.ts +41 -41
- package/src/referral/referral.ts +76 -76
- package/src/saved/saved-collection-events.ts +19 -19
- package/src/saved/saved-collection.ts +8 -8
- package/src/segment/segment-commands.ts +75 -75
- package/src/segment/segment-events.ts +42 -42
- package/src/segment/segment-with-voice.ts +8 -8
- package/src/segment/segment.ts +82 -82
- package/src/service-simulator/mock-request-response.ts +17 -17
- package/src/skin/skin-events.ts +21 -21
- package/src/skin/skin.ts +6 -6
- package/src/spark/spark-board-read-model.ts +17 -17
- package/src/spark/spark-board.ts +12 -12
- package/src/spark/spark-events.ts +42 -42
- package/src/spark/spark.ts +75 -75
- package/src/text-to-speech/create-speech-commands.ts +22 -22
- package/src/text-to-speech/speech-created-events.ts +10 -10
- package/src/text-to-speech/supported-voices.ts +222 -222
- package/src/text-to-speech/text-segment.ts +29 -29
- package/src/theme/theme-events.ts +21 -21
- package/src/theme/theme.ts +68 -68
- package/src/translation/translation-events.ts +73 -73
- package/src/translation/translation.ts +25 -25
- package/src/trending/trending-events.ts +21 -21
- package/src/trending/trending-hacks.ts +8 -8
- package/src/user/cognito-user-authentication-log.ts +7 -7
- package/src/user/get-user.ts +63 -63
- package/src/user/user-events.ts +32 -32
- package/src/user-context/user-context-events.ts +21 -21
- package/src/user-context/user-context.ts +15 -15
- package/src/user-notification-context/user-notification-context-events.ts +21 -21
- package/src/user-notification-context/user-notification-context.ts +9 -9
- package/src/user-statistics/user-statistics-events.ts +97 -97
- package/src/user-statistics/user-statistics.ts +82 -82
- package/src/video-cropping/video-cropping-events.ts +43 -43
- package/src/video-cropping/video-metadata.ts +12 -12
- package/tsconfig.cjs.json +7 -7
- package/tsconfig.npm.json +22 -22
|
@@ -1,55 +1,55 @@
|
|
|
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
|
+
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 +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
|
+
}
|