@uptime.app/contracts 1.0.68 → 1.0.70-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.
- package/dist/cjs/hack/publish-hack-command.d.ts +2 -0
- package/dist/cjs/hack/publish-hack-command.d.ts.map +1 -1
- package/dist/cjs/hackbot/hack-generation-trigger-events.d.ts +18 -0
- package/dist/cjs/hackbot/hack-generation-trigger-events.d.ts.map +1 -0
- package/dist/cjs/hackbot/hack-generation-trigger-events.js +3 -0
- package/dist/cjs/hackbot/hack-generation-trigger-events.js.map +1 -0
- package/dist/cjs/hackbot/hack-generation-trigger.d.ts +12 -0
- package/dist/cjs/hackbot/hack-generation-trigger.d.ts.map +1 -0
- package/dist/cjs/hackbot/hack-generation-trigger.js +3 -0
- package/dist/cjs/hackbot/hack-generation-trigger.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/hack/publish-hack-command.d.ts +2 -0
- package/dist/esm/hack/publish-hack-command.d.ts.map +1 -1
- package/dist/esm/hackbot/hack-generation-trigger-events.d.ts +18 -0
- package/dist/esm/hackbot/hack-generation-trigger-events.d.ts.map +1 -0
- package/dist/esm/hackbot/hack-generation-trigger-events.js +2 -0
- package/dist/esm/hackbot/hack-generation-trigger-events.js.map +1 -0
- package/dist/esm/hackbot/hack-generation-trigger.d.ts +12 -0
- package/dist/esm/hackbot/hack-generation-trigger.d.ts.map +1 -0
- package/dist/esm/hackbot/hack-generation-trigger.js +2 -0
- package/dist/esm/hackbot/hack-generation-trigger.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -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 +29 -29
- package/src/app-hack/app-full-hack.ts +9 -9
- package/src/app-hack/app-hack-metadata.ts +60 -60
- 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-organisation-events.ts +21 -21
- package/src/b2b-organisation/b2b-organisation-invitation.ts +35 -35
- package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
- package/src/b2b-organisation/b2b-organisation-member.ts +10 -10
- package/src/b2b-organisation/b2b-organisation.ts +28 -28
- package/src/brand/brand-events.ts +21 -21
- package/src/brand/brand.ts +26 -26
- package/src/catalogue/catalogue.ts +118 -118
- package/src/cms-hack/cms-searchable-hack.ts +44 -44
- package/src/collection/collection-events.ts +21 -21
- package/src/collection/collection.ts +58 -58
- package/src/collection/enriched-collection-events.ts +18 -18
- package/src/collection/enriched-collection.ts +64 -64
- 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 +189 -189
- package/src/draft-hack-generation/draft-hack-generation-commands.ts +10 -10
- package/src/draft-hack-generation/draft-hack-generation-events.ts +49 -49
- package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
- package/src/enriched-hack/enriched-hack-events.ts +21 -21
- package/src/enriched-hack/enriched-hack.ts +103 -103
- 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 +33 -33
- package/src/hack/hack.ts +116 -116
- package/src/hack/publish-hack-command.ts +20 -18
- 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/hackbot/hack-generation-trigger-events.ts +21 -0
- package/src/hackbot/hack-generation-trigger.ts +12 -0
- package/src/history/history-events.ts +21 -21
- package/src/history/history.ts +46 -46
- package/src/index.ts +158 -155
- 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 +35 -35
- package/src/knowledge-source-parsing/knowledge-source-parsing-commands.ts +41 -41
- package/src/knowledge-source-parsing/knowledge-source-parsing-events.ts +24 -24
- package/src/knowledge-source-parsing/podcast-metadata.ts +44 -44
- package/src/knowledge-source-parsing/podcast-parsing-events.ts +24 -24
- 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/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 +77 -77
- 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 +27 -27
- 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/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 +80 -80
- 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 +184 -184
- 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/user-events.ts +27 -27
- package/src/user-context/user-context-events.ts +21 -21
- package/src/user-context/user-context.ts +16 -16
- 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 +21 -21
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { Segment } from '../segment/segment';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* HackWithVoice contains the Hack segments a a few basic Hack fields, it does not contain other Hack information.
|
|
5
|
-
* This decision was made due to the complexity of editorialTags and updating them.
|
|
6
|
-
*/
|
|
7
|
-
export interface HackWithVoice {
|
|
8
|
-
/** NOT the id of the hack. Use hackId. The id cannot be the hackId as otherwise id would be duplicated for each voice which would break message replay */
|
|
9
|
-
id: string;
|
|
10
|
-
/** The id of the hack */
|
|
11
|
-
hackId: string;
|
|
12
|
-
baseLocaleHackId: string;
|
|
13
|
-
/** The id of voice used to generate the audio */
|
|
14
|
-
voiceId: string;
|
|
15
|
-
/** True if this is the default voice */
|
|
16
|
-
isDefaultVoice: boolean;
|
|
17
|
-
v: number;
|
|
18
|
-
createdAt: string;
|
|
19
|
-
updatedAt: string;
|
|
20
|
-
|
|
21
|
-
segments: {
|
|
22
|
-
favouriteQuote: Segment;
|
|
23
|
-
inANutshell: Segment;
|
|
24
|
-
introduction: Segment;
|
|
25
|
-
insights: Segment[];
|
|
26
|
-
conclusion: Segment;
|
|
27
|
-
// composite segments
|
|
28
|
-
overview: Segment;
|
|
29
|
-
shareableOverview: Segment;
|
|
30
|
-
hereAreTheInsights: Segment;
|
|
31
|
-
putInAction?: Segment;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
1
|
+
import { Segment } from '../segment/segment';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* HackWithVoice contains the Hack segments a a few basic Hack fields, it does not contain other Hack information.
|
|
5
|
+
* This decision was made due to the complexity of editorialTags and updating them.
|
|
6
|
+
*/
|
|
7
|
+
export interface HackWithVoice {
|
|
8
|
+
/** NOT the id of the hack. Use hackId. The id cannot be the hackId as otherwise id would be duplicated for each voice which would break message replay */
|
|
9
|
+
id: string;
|
|
10
|
+
/** The id of the hack */
|
|
11
|
+
hackId: string;
|
|
12
|
+
baseLocaleHackId: string;
|
|
13
|
+
/** The id of voice used to generate the audio */
|
|
14
|
+
voiceId: string;
|
|
15
|
+
/** True if this is the default voice */
|
|
16
|
+
isDefaultVoice: boolean;
|
|
17
|
+
v: number;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
updatedAt: string;
|
|
20
|
+
|
|
21
|
+
segments: {
|
|
22
|
+
favouriteQuote: Segment;
|
|
23
|
+
inANutshell: Segment;
|
|
24
|
+
introduction: Segment;
|
|
25
|
+
insights: Segment[];
|
|
26
|
+
conclusion: Segment;
|
|
27
|
+
// composite segments
|
|
28
|
+
overview: Segment;
|
|
29
|
+
shareableOverview: Segment;
|
|
30
|
+
hereAreTheInsights: Segment;
|
|
31
|
+
putInAction?: Segment;
|
|
32
|
+
}
|
|
33
|
+
}
|
package/src/hack/hack.ts
CHANGED
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
import { ExtractedSubject } from './extracted-subject';
|
|
2
|
-
export interface Hack {
|
|
3
|
-
/** The unique id of the hack. */
|
|
4
|
-
id: string;
|
|
5
|
-
/** The locale (language and region) of the hack e.g. fr-FR. Use @uptime.app/localisation-contracts Mandatory property since 12/01/2023. */
|
|
6
|
-
locale: string;
|
|
7
|
-
/** The id of the hack in its original locale. Mandatory property since 12/01/2023. */
|
|
8
|
-
baseLocaleHackId: string;
|
|
9
|
-
v: number;
|
|
10
|
-
createdAt: string;
|
|
11
|
-
updatedAt: string;
|
|
12
|
-
owner: string;
|
|
13
|
-
sourceId?: string;
|
|
14
|
-
title: string;
|
|
15
|
-
themeId: string;
|
|
16
|
-
|
|
17
|
-
/** introduced Oct 2023 **/
|
|
18
|
-
draftHackId: string;
|
|
19
|
-
draftHackVersion: number;
|
|
20
|
-
|
|
21
|
-
// TODO I'd remove it altogether, but it would be a breaking contract change. Thoughts?
|
|
22
|
-
isHidden?: boolean;
|
|
23
|
-
|
|
24
|
-
editorialTags?: string[];
|
|
25
|
-
coverUrl?: string;
|
|
26
|
-
/** Added in July 2024. This is the URL of the cover image that is free to use without any copyright. */
|
|
27
|
-
copyrightFreeCoverUrl?: string;
|
|
28
|
-
notifications?: {
|
|
29
|
-
aiGeneratedText?: string
|
|
30
|
-
humanCuratedText?: string;
|
|
31
|
-
},
|
|
32
|
-
segments: {
|
|
33
|
-
favouriteQuote: {
|
|
34
|
-
id: string;
|
|
35
|
-
/** added 04/2023 */
|
|
36
|
-
v?: number;
|
|
37
|
-
};
|
|
38
|
-
inANutshell: {
|
|
39
|
-
id: string;
|
|
40
|
-
/** added 04/2023 */
|
|
41
|
-
v?: number;
|
|
42
|
-
};
|
|
43
|
-
introduction: {
|
|
44
|
-
id: string;
|
|
45
|
-
/** added 04/2023 */
|
|
46
|
-
v?: number;
|
|
47
|
-
};
|
|
48
|
-
insights: {
|
|
49
|
-
id: string
|
|
50
|
-
/** added 04/2023 */
|
|
51
|
-
v?: number;
|
|
52
|
-
}[];
|
|
53
|
-
conclusion: {
|
|
54
|
-
id: string;
|
|
55
|
-
/** added 04/2023 */
|
|
56
|
-
v?: number;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
// composite segments
|
|
60
|
-
overview: {
|
|
61
|
-
id: string;
|
|
62
|
-
/** added 04/2023 */
|
|
63
|
-
v?: number;
|
|
64
|
-
};
|
|
65
|
-
shareableOverview: {
|
|
66
|
-
id: string;
|
|
67
|
-
/** added 04/2023 */
|
|
68
|
-
v?: number;
|
|
69
|
-
};
|
|
70
|
-
hereAreTheInsights: {
|
|
71
|
-
id: string;
|
|
72
|
-
/** added 04/2023 */
|
|
73
|
-
v?: number;
|
|
74
|
-
};
|
|
75
|
-
putInAction?: {
|
|
76
|
-
id: string;
|
|
77
|
-
/** added 04/2023 */
|
|
78
|
-
v?: number;
|
|
79
|
-
};
|
|
80
|
-
};
|
|
81
|
-
affiliate?: HackAffiliate;
|
|
82
|
-
topics: HackTopic[];
|
|
83
|
-
contributors?: HackContributor[];
|
|
84
|
-
type: HackType;
|
|
85
|
-
sourceData?: HackSourceData;
|
|
86
|
-
externalLink?: HackExternalLink;
|
|
87
|
-
|
|
88
|
-
/** added Mar 2024 */
|
|
89
|
-
// TODO make it mandatory after a republish
|
|
90
|
-
subjects?: ExtractedSubject[];
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export interface HackContributor {
|
|
94
|
-
name: string;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export interface HackTopic {
|
|
98
|
-
name: string;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export interface HackAffiliate {
|
|
102
|
-
url: string;
|
|
103
|
-
name: string;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
export type HackType = 'book' | 'course' | 'documentary' | 'podcast' | 'original';
|
|
107
|
-
|
|
108
|
-
export interface HackSourceData {
|
|
109
|
-
episodeTitle?: string;
|
|
110
|
-
releaseDate?: string;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export interface HackExternalLink {
|
|
114
|
-
url: string;
|
|
115
|
-
type: 'Website' | 'Book' | 'Course' | 'Podcast' | 'Video' | 'Other';
|
|
116
|
-
}
|
|
1
|
+
import { ExtractedSubject } from './extracted-subject';
|
|
2
|
+
export interface Hack {
|
|
3
|
+
/** The unique id of the hack. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** The locale (language and region) of the hack e.g. fr-FR. Use @uptime.app/localisation-contracts Mandatory property since 12/01/2023. */
|
|
6
|
+
locale: string;
|
|
7
|
+
/** The id of the hack in its original locale. Mandatory property since 12/01/2023. */
|
|
8
|
+
baseLocaleHackId: string;
|
|
9
|
+
v: number;
|
|
10
|
+
createdAt: string;
|
|
11
|
+
updatedAt: string;
|
|
12
|
+
owner: string;
|
|
13
|
+
sourceId?: string;
|
|
14
|
+
title: string;
|
|
15
|
+
themeId: string;
|
|
16
|
+
|
|
17
|
+
/** introduced Oct 2023 **/
|
|
18
|
+
draftHackId: string;
|
|
19
|
+
draftHackVersion: number;
|
|
20
|
+
|
|
21
|
+
// TODO I'd remove it altogether, but it would be a breaking contract change. Thoughts?
|
|
22
|
+
isHidden?: boolean;
|
|
23
|
+
|
|
24
|
+
editorialTags?: string[];
|
|
25
|
+
coverUrl?: string;
|
|
26
|
+
/** Added in July 2024. This is the URL of the cover image that is free to use without any copyright. */
|
|
27
|
+
copyrightFreeCoverUrl?: string;
|
|
28
|
+
notifications?: {
|
|
29
|
+
aiGeneratedText?: string
|
|
30
|
+
humanCuratedText?: string;
|
|
31
|
+
},
|
|
32
|
+
segments: {
|
|
33
|
+
favouriteQuote: {
|
|
34
|
+
id: string;
|
|
35
|
+
/** added 04/2023 */
|
|
36
|
+
v?: number;
|
|
37
|
+
};
|
|
38
|
+
inANutshell: {
|
|
39
|
+
id: string;
|
|
40
|
+
/** added 04/2023 */
|
|
41
|
+
v?: number;
|
|
42
|
+
};
|
|
43
|
+
introduction: {
|
|
44
|
+
id: string;
|
|
45
|
+
/** added 04/2023 */
|
|
46
|
+
v?: number;
|
|
47
|
+
};
|
|
48
|
+
insights: {
|
|
49
|
+
id: string
|
|
50
|
+
/** added 04/2023 */
|
|
51
|
+
v?: number;
|
|
52
|
+
}[];
|
|
53
|
+
conclusion: {
|
|
54
|
+
id: string;
|
|
55
|
+
/** added 04/2023 */
|
|
56
|
+
v?: number;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
// composite segments
|
|
60
|
+
overview: {
|
|
61
|
+
id: string;
|
|
62
|
+
/** added 04/2023 */
|
|
63
|
+
v?: number;
|
|
64
|
+
};
|
|
65
|
+
shareableOverview: {
|
|
66
|
+
id: string;
|
|
67
|
+
/** added 04/2023 */
|
|
68
|
+
v?: number;
|
|
69
|
+
};
|
|
70
|
+
hereAreTheInsights: {
|
|
71
|
+
id: string;
|
|
72
|
+
/** added 04/2023 */
|
|
73
|
+
v?: number;
|
|
74
|
+
};
|
|
75
|
+
putInAction?: {
|
|
76
|
+
id: string;
|
|
77
|
+
/** added 04/2023 */
|
|
78
|
+
v?: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
affiliate?: HackAffiliate;
|
|
82
|
+
topics: HackTopic[];
|
|
83
|
+
contributors?: HackContributor[];
|
|
84
|
+
type: HackType;
|
|
85
|
+
sourceData?: HackSourceData;
|
|
86
|
+
externalLink?: HackExternalLink;
|
|
87
|
+
|
|
88
|
+
/** added Mar 2024 */
|
|
89
|
+
// TODO make it mandatory after a republish
|
|
90
|
+
subjects?: ExtractedSubject[];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface HackContributor {
|
|
94
|
+
name: string;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface HackTopic {
|
|
98
|
+
name: string;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface HackAffiliate {
|
|
102
|
+
url: string;
|
|
103
|
+
name: string;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export type HackType = 'book' | 'course' | 'documentary' | 'podcast' | 'original';
|
|
107
|
+
|
|
108
|
+
export interface HackSourceData {
|
|
109
|
+
episodeTitle?: string;
|
|
110
|
+
releaseDate?: string;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export interface HackExternalLink {
|
|
114
|
+
url: string;
|
|
115
|
+
type: 'Website' | 'Book' | 'Course' | 'Podcast' | 'Video' | 'Other';
|
|
116
|
+
}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
export interface PublishHackCommandBody {
|
|
2
|
-
// a command needs an id and a version so that it can be more easily replayed
|
|
3
|
-
// for this specific PublishHack command, the id is the draftHackId and the version is the timestamp
|
|
4
|
-
id: string;
|
|
5
|
-
v: number;
|
|
6
|
-
draftHackId: string;
|
|
7
|
-
draftHackVersion: number;
|
|
8
|
-
hackId: string;
|
|
9
|
-
publishSource: PublishHackSource;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
export interface PublishHackCommandBody {
|
|
2
|
+
// a command needs an id and a version so that it can be more easily replayed
|
|
3
|
+
// for this specific PublishHack command, the id is the draftHackId and the version is the timestamp
|
|
4
|
+
id: string;
|
|
5
|
+
v: number;
|
|
6
|
+
draftHackId: string;
|
|
7
|
+
draftHackVersion: number;
|
|
8
|
+
hackId: string;
|
|
9
|
+
publishSource: PublishHackSource;
|
|
10
|
+
/** if no voice ids are specified then all voices are generated */
|
|
11
|
+
voiceIds?: string[];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type PublishHackSource = 'web-app' | 'cms' | 'script' | 'translation';
|
|
15
|
+
|
|
16
|
+
export interface PublishHackCommand {
|
|
17
|
+
id: string;
|
|
18
|
+
type: 'PublishHackCommand';
|
|
19
|
+
payload: PublishHackCommandBody;
|
|
20
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { HackMetadata } from './hack-metadata';
|
|
2
|
-
|
|
3
|
-
export interface HackMetadataCreatedEvent {
|
|
4
|
-
id: string;
|
|
5
|
-
type: 'HackMetadataCreated';
|
|
6
|
-
payload: HackMetadata;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface HackMetadataUpdatedEvent {
|
|
10
|
-
id: string;
|
|
11
|
-
type: 'HackMetadataUpdated';
|
|
12
|
-
payload: HackMetadata;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface HackMetadataDeletedEvent {
|
|
16
|
-
id: string;
|
|
17
|
-
type: 'HackMetadataDeleted';
|
|
18
|
-
payload: HackMetadata;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export type HackMetadataChangedEvent = HackMetadataCreatedEvent | HackMetadataUpdatedEvent | HackMetadataDeletedEvent;
|
|
1
|
+
import { HackMetadata } from './hack-metadata';
|
|
2
|
+
|
|
3
|
+
export interface HackMetadataCreatedEvent {
|
|
4
|
+
id: string;
|
|
5
|
+
type: 'HackMetadataCreated';
|
|
6
|
+
payload: HackMetadata;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface HackMetadataUpdatedEvent {
|
|
10
|
+
id: string;
|
|
11
|
+
type: 'HackMetadataUpdated';
|
|
12
|
+
payload: HackMetadata;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface HackMetadataDeletedEvent {
|
|
16
|
+
id: string;
|
|
17
|
+
type: 'HackMetadataDeleted';
|
|
18
|
+
payload: HackMetadata;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type HackMetadataChangedEvent = HackMetadataCreatedEvent | HackMetadataUpdatedEvent | HackMetadataDeletedEvent;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { ExtractedSubject } from '../hack/extracted-subject';
|
|
2
|
-
|
|
3
|
-
export interface HackMetadata {
|
|
4
|
-
// hackId
|
|
5
|
-
id: string;
|
|
6
|
-
v: number;
|
|
7
|
-
createdAt: string;
|
|
8
|
-
updatedAt: string;
|
|
9
|
-
|
|
10
|
-
hackId: string;
|
|
11
|
-
baseLocaleHackId: string;
|
|
12
|
-
draftHackId: string;
|
|
13
|
-
subjects: {
|
|
14
|
-
aiGenerated?: ExtractedSubject[],
|
|
15
|
-
humanCurated?: ExtractedSubject[]
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
import { ExtractedSubject } from '../hack/extracted-subject';
|
|
2
|
+
|
|
3
|
+
export interface HackMetadata {
|
|
4
|
+
// hackId
|
|
5
|
+
id: string;
|
|
6
|
+
v: number;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
updatedAt: string;
|
|
9
|
+
|
|
10
|
+
hackId: string;
|
|
11
|
+
baseLocaleHackId: string;
|
|
12
|
+
draftHackId: string;
|
|
13
|
+
subjects: {
|
|
14
|
+
aiGenerated?: ExtractedSubject[],
|
|
15
|
+
humanCurated?: ExtractedSubject[]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { HackOfTheDay } from './hack-of-the-day';
|
|
2
|
-
|
|
3
|
-
export interface HackOfTheDayCreatedEvent {
|
|
4
|
-
id: string;
|
|
5
|
-
type: 'HackOfTheDayCreated';
|
|
6
|
-
payload: HackOfTheDay;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface HackOfTheDayUpdatedEvent {
|
|
10
|
-
id: string;
|
|
11
|
-
type: 'HackOfTheDayUpdated';
|
|
12
|
-
payload: HackOfTheDay;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface HackOfTheDayDeletedEvent {
|
|
16
|
-
id: string;
|
|
17
|
-
type: 'HackOfTheDayDeleted';
|
|
18
|
-
payload: HackOfTheDay;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export type HackOfTheDayChangedEvent = HackOfTheDayCreatedEvent | HackOfTheDayUpdatedEvent | HackOfTheDayDeletedEvent;
|
|
1
|
+
import { HackOfTheDay } from './hack-of-the-day';
|
|
2
|
+
|
|
3
|
+
export interface HackOfTheDayCreatedEvent {
|
|
4
|
+
id: string;
|
|
5
|
+
type: 'HackOfTheDayCreated';
|
|
6
|
+
payload: HackOfTheDay;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface HackOfTheDayUpdatedEvent {
|
|
10
|
+
id: string;
|
|
11
|
+
type: 'HackOfTheDayUpdated';
|
|
12
|
+
payload: HackOfTheDay;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface HackOfTheDayDeletedEvent {
|
|
16
|
+
id: string;
|
|
17
|
+
type: 'HackOfTheDayDeleted';
|
|
18
|
+
payload: HackOfTheDay;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type HackOfTheDayChangedEvent = HackOfTheDayCreatedEvent | HackOfTheDayUpdatedEvent | HackOfTheDayDeletedEvent;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export const HackOfTheDayDateFormat = 'YYYY-MM-DD';
|
|
2
|
-
|
|
3
|
-
export interface HackOfTheDay {
|
|
4
|
-
id: string;
|
|
5
|
-
v: number;
|
|
6
|
-
createdAt: string;
|
|
7
|
-
updatedAt: string;
|
|
8
|
-
hackId: string;
|
|
9
|
-
date: string;
|
|
10
|
-
selectedBy?: string;
|
|
11
|
-
locale: string;
|
|
12
|
-
baseLocaleHackId: string;
|
|
13
|
-
}
|
|
1
|
+
export const HackOfTheDayDateFormat = 'YYYY-MM-DD';
|
|
2
|
+
|
|
3
|
+
export interface HackOfTheDay {
|
|
4
|
+
id: string;
|
|
5
|
+
v: number;
|
|
6
|
+
createdAt: string;
|
|
7
|
+
updatedAt: string;
|
|
8
|
+
hackId: string;
|
|
9
|
+
date: string;
|
|
10
|
+
selectedBy?: string;
|
|
11
|
+
locale: string;
|
|
12
|
+
baseLocaleHackId: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { HackGenerationTrigger } from './hack-generation-trigger'
|
|
2
|
+
|
|
3
|
+
export interface HackGenerationTriggerCreatedEvent {
|
|
4
|
+
id: string;
|
|
5
|
+
type: 'HackGenerationTriggerCreated';
|
|
6
|
+
payload: HackGenerationTrigger;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface HackGenerationTriggerUpdatedEvent {
|
|
10
|
+
id: string;
|
|
11
|
+
type: 'HackGenerationTriggerUpdated';
|
|
12
|
+
payload: HackGenerationTrigger;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface HackGenerationTriggerDeletedEvent {
|
|
16
|
+
id: string;
|
|
17
|
+
type: 'HackGenerationTriggerDeleted';
|
|
18
|
+
payload: HackGenerationTrigger;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type HackGenerationTriggerChangedEvent = HackGenerationTriggerCreatedEvent | HackGenerationTriggerUpdatedEvent | HackGenerationTriggerDeletedEvent;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface HackGenerationTrigger {
|
|
2
|
+
id: string;
|
|
3
|
+
v: number;
|
|
4
|
+
createdAt: string;
|
|
5
|
+
updatedAt: string;
|
|
6
|
+
userId: string;
|
|
7
|
+
|
|
8
|
+
knowledgeSourceUrl: string;
|
|
9
|
+
typeOfHack: string; // in words e.g. "anual report", free text
|
|
10
|
+
toneOfVoice: string; // e.g. "professional", "casual", "enthusiastic", free text
|
|
11
|
+
takeawaysToEmphasise?: string; // e.g. "practical steps", "strategic advice", free text,
|
|
12
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { HackProgress } from './history';
|
|
2
|
-
|
|
3
|
-
export interface HackProgressCreatedEvent {
|
|
4
|
-
id: string;
|
|
5
|
-
type: 'HackProgressCreated';
|
|
6
|
-
payload: HackProgress;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface HackProgressUpdatedEvent {
|
|
10
|
-
id: string;
|
|
11
|
-
type: 'HackProgressUpdated';
|
|
12
|
-
payload: HackProgress;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface HackProgressDeletedEvent {
|
|
16
|
-
id: string;
|
|
17
|
-
type: 'HackProgressDeleted';
|
|
18
|
-
payload: HackProgress;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export type HackProgressChangedEvent = HackProgressCreatedEvent | HackProgressUpdatedEvent | HackProgressDeletedEvent;
|
|
1
|
+
import { HackProgress } from './history';
|
|
2
|
+
|
|
3
|
+
export interface HackProgressCreatedEvent {
|
|
4
|
+
id: string;
|
|
5
|
+
type: 'HackProgressCreated';
|
|
6
|
+
payload: HackProgress;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface HackProgressUpdatedEvent {
|
|
10
|
+
id: string;
|
|
11
|
+
type: 'HackProgressUpdated';
|
|
12
|
+
payload: HackProgress;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface HackProgressDeletedEvent {
|
|
16
|
+
id: string;
|
|
17
|
+
type: 'HackProgressDeleted';
|
|
18
|
+
payload: HackProgress;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type HackProgressChangedEvent = HackProgressCreatedEvent | HackProgressUpdatedEvent | HackProgressDeletedEvent;
|
package/src/history/history.ts
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
export interface ResumeStoryPlayer {
|
|
2
|
-
/** the format the user chose to consume the hack */
|
|
3
|
-
format: 'story';
|
|
4
|
-
/** where to resume from in the segment's array of cards */
|
|
5
|
-
fromCardIndex: number;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export interface ResumeAudioPlayer {
|
|
9
|
-
/** the format the user chose to consume the hack */
|
|
10
|
-
format: 'audio';
|
|
11
|
-
/** the timestamp in seconds that the audio player should resume from */
|
|
12
|
-
audioPlayerFromTimestamp: number;
|
|
13
|
-
/** where to resume from in the segment's array of cards */
|
|
14
|
-
fromCardIndex?: number;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface ResumeTextReader {
|
|
18
|
-
/** the format the user chose to consume the hack */
|
|
19
|
-
format: 'text';
|
|
20
|
-
/** the timestamp in seconds that the audio player should resume from
|
|
21
|
-
* if the user had audio playing in the background while reading */
|
|
22
|
-
audioPlayerFromTimestamp?: number;
|
|
23
|
-
/** where to resume from in the segment's array of cards */
|
|
24
|
-
fromCardIndex?: number;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface HackProgressDTO {
|
|
28
|
-
/** the hack the user has been viewing */
|
|
29
|
-
hackId: string;
|
|
30
|
-
/** the segment to resume from */
|
|
31
|
-
segmentId: string;
|
|
32
|
-
/** the ISO 8601 date and time when the user last viewed the hack */
|
|
33
|
-
lastViewedAt: string;
|
|
34
|
-
/** used to render the hack progress bar on the client */
|
|
35
|
-
percentageComplete: number;
|
|
36
|
-
/** the format the hack will be resumed in */
|
|
37
|
-
resume: ResumeStoryPlayer | ResumeAudioPlayer | ResumeTextReader;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface HackProgress extends HackProgressDTO {
|
|
41
|
-
id: string
|
|
42
|
-
createdAt: string;
|
|
43
|
-
updatedAt: string;
|
|
44
|
-
v: number;
|
|
45
|
-
userId: string;
|
|
46
|
-
}
|
|
1
|
+
export interface ResumeStoryPlayer {
|
|
2
|
+
/** the format the user chose to consume the hack */
|
|
3
|
+
format: 'story';
|
|
4
|
+
/** where to resume from in the segment's array of cards */
|
|
5
|
+
fromCardIndex: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface ResumeAudioPlayer {
|
|
9
|
+
/** the format the user chose to consume the hack */
|
|
10
|
+
format: 'audio';
|
|
11
|
+
/** the timestamp in seconds that the audio player should resume from */
|
|
12
|
+
audioPlayerFromTimestamp: number;
|
|
13
|
+
/** where to resume from in the segment's array of cards */
|
|
14
|
+
fromCardIndex?: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface ResumeTextReader {
|
|
18
|
+
/** the format the user chose to consume the hack */
|
|
19
|
+
format: 'text';
|
|
20
|
+
/** the timestamp in seconds that the audio player should resume from
|
|
21
|
+
* if the user had audio playing in the background while reading */
|
|
22
|
+
audioPlayerFromTimestamp?: number;
|
|
23
|
+
/** where to resume from in the segment's array of cards */
|
|
24
|
+
fromCardIndex?: number;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface HackProgressDTO {
|
|
28
|
+
/** the hack the user has been viewing */
|
|
29
|
+
hackId: string;
|
|
30
|
+
/** the segment to resume from */
|
|
31
|
+
segmentId: string;
|
|
32
|
+
/** the ISO 8601 date and time when the user last viewed the hack */
|
|
33
|
+
lastViewedAt: string;
|
|
34
|
+
/** used to render the hack progress bar on the client */
|
|
35
|
+
percentageComplete: number;
|
|
36
|
+
/** the format the hack will be resumed in */
|
|
37
|
+
resume: ResumeStoryPlayer | ResumeAudioPlayer | ResumeTextReader;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface HackProgress extends HackProgressDTO {
|
|
41
|
+
id: string
|
|
42
|
+
createdAt: string;
|
|
43
|
+
updatedAt: string;
|
|
44
|
+
v: number;
|
|
45
|
+
userId: string;
|
|
46
|
+
}
|