@uptime.app/contracts 1.0.39 → 1.0.41-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 (138) hide show
  1. package/dist/cjs/index.d.ts +4 -0
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +4 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/spark/spark-board-read-model.d.ts +15 -0
  6. package/dist/cjs/spark/spark-board-read-model.d.ts.map +1 -0
  7. package/dist/cjs/spark/spark-board-read-model.js +3 -0
  8. package/dist/cjs/spark/spark-board-read-model.js.map +1 -0
  9. package/dist/cjs/spark/spark-board.d.ts +12 -0
  10. package/dist/cjs/spark/spark-board.d.ts.map +1 -0
  11. package/dist/cjs/spark/spark-board.js +3 -0
  12. package/dist/cjs/spark/spark-board.js.map +1 -0
  13. package/dist/cjs/spark/spark-events.d.ts +35 -0
  14. package/dist/cjs/spark/spark-events.d.ts.map +1 -0
  15. package/dist/cjs/spark/spark-events.js +3 -0
  16. package/dist/cjs/spark/spark-events.js.map +1 -0
  17. package/dist/cjs/spark/spark.d.ts +51 -0
  18. package/dist/cjs/spark/spark.d.ts.map +1 -0
  19. package/dist/cjs/spark/spark.js +3 -0
  20. package/dist/cjs/spark/spark.js.map +1 -0
  21. package/dist/cjs/text-to-speech/supported-voices.js +4 -4
  22. package/dist/cjs/text-to-speech/supported-voices.js.map +1 -1
  23. package/dist/esm/index.d.ts +4 -0
  24. package/dist/esm/index.d.ts.map +1 -1
  25. package/dist/esm/index.js +4 -0
  26. package/dist/esm/index.js.map +1 -1
  27. package/dist/esm/spark/spark-board-read-model.d.ts +15 -0
  28. package/dist/esm/spark/spark-board-read-model.d.ts.map +1 -0
  29. package/dist/esm/spark/spark-board-read-model.js +2 -0
  30. package/dist/esm/spark/spark-board-read-model.js.map +1 -0
  31. package/dist/esm/spark/spark-board.d.ts +12 -0
  32. package/dist/esm/spark/spark-board.d.ts.map +1 -0
  33. package/dist/esm/spark/spark-board.js +2 -0
  34. package/dist/esm/spark/spark-board.js.map +1 -0
  35. package/dist/esm/spark/spark-events.d.ts +35 -0
  36. package/dist/esm/spark/spark-events.d.ts.map +1 -0
  37. package/dist/esm/spark/spark-events.js +2 -0
  38. package/dist/esm/spark/spark-events.js.map +1 -0
  39. package/dist/esm/spark/spark.d.ts +51 -0
  40. package/dist/esm/spark/spark.d.ts.map +1 -0
  41. package/dist/esm/spark/spark.js +2 -0
  42. package/dist/esm/spark/spark.js.map +1 -0
  43. package/dist/esm/text-to-speech/supported-voices.js +4 -4
  44. package/dist/esm/text-to-speech/supported-voices.js.map +1 -1
  45. package/package.json +2 -2
  46. package/src/access-control/collection-access-control.ts +28 -28
  47. package/src/access-control/hack-access-control.ts +29 -29
  48. package/src/app-hack/app-full-hack.ts +9 -9
  49. package/src/app-hack/app-hack-metadata.ts +58 -58
  50. package/src/app-hack/app-restricted-hack.ts +22 -22
  51. package/src/b2b-content-access/b2b-content-access.ts +57 -57
  52. package/src/b2b-organisation/b2b-carousel.ts +34 -34
  53. package/src/b2b-organisation/b2b-organisation-events.ts +21 -21
  54. package/src/b2b-organisation/b2b-organisation-invitation.ts +31 -31
  55. package/src/b2b-organisation/b2b-organisation-member-events.ts +21 -21
  56. package/src/b2b-organisation/b2b-organisation-member.ts +8 -8
  57. package/src/b2b-organisation/b2b-organisation.ts +15 -15
  58. package/src/brand/brand-events.ts +21 -21
  59. package/src/brand/brand.ts +19 -19
  60. package/src/catalogue/catalogue.ts +118 -118
  61. package/src/collection/collection-events.ts +21 -21
  62. package/src/collection/collection.ts +58 -58
  63. package/src/collection/enriched-collection-events.ts +18 -18
  64. package/src/collection/enriched-collection.ts +64 -64
  65. package/src/creator/creator-events.ts +32 -32
  66. package/src/creator/creator.ts +7 -7
  67. package/src/distribution/collection-distribution.ts +17 -17
  68. package/src/distribution/distribution-events.ts +61 -61
  69. package/src/distribution/hack-distribution.ts +18 -18
  70. package/src/draft-hack/draft-hack-events.ts +21 -21
  71. package/src/draft-hack/draft-hack.ts +189 -189
  72. package/src/draft-hack-generation/draft-hack-generation-events.ts +42 -42
  73. package/src/draft-hack-generation/draft-hack-generation.ts +39 -39
  74. package/src/enriched-hack/enriched-hack-events.ts +21 -21
  75. package/src/enriched-hack/enriched-hack.ts +103 -103
  76. package/src/entitlement/user-entitlements-commands.ts +33 -33
  77. package/src/entitlement/user-entitlements-events.ts +29 -29
  78. package/src/entitlement/user-entitlements.ts +18 -18
  79. package/src/hack/extracted-subject.ts +31 -31
  80. package/src/hack/hack-events.ts +21 -21
  81. package/src/hack/hack-published.ts +21 -21
  82. package/src/hack/hack-with-voice-events.ts +20 -20
  83. package/src/hack/hack-with-voice.ts +33 -33
  84. package/src/hack/hack.ts +116 -116
  85. package/src/hack/publish-hack-command.ts +18 -18
  86. package/src/hack-metadata/hack-metadata-events.ts +21 -21
  87. package/src/hack-metadata/hack-metadata.ts +17 -17
  88. package/src/hack-of-the-day/hack-of-the-day-events.ts +21 -21
  89. package/src/hack-of-the-day/hack-of-the-day.ts +13 -13
  90. package/src/index.ts +125 -120
  91. package/src/knowledge-source/knowledge-source-events.ts +21 -21
  92. package/src/knowledge-source/knowledge-source.ts +43 -43
  93. package/src/localisation/live-locales.ts +37 -37
  94. package/src/localisation/locale-language.ts +4 -4
  95. package/src/localisation/supported-languages.ts +11 -11
  96. package/src/localisation/supported-locales.ts +61 -61
  97. package/src/moderation/hack-moderation-result-events.ts +18 -18
  98. package/src/moderation/hack-moderation-result.ts +27 -27
  99. package/src/partner/partner-events.ts +21 -21
  100. package/src/partner/partner.ts +7 -7
  101. package/src/pending-hack/pending-hack-events.ts +20 -20
  102. package/src/pending-hack/pending-hack-with-voice-events.ts +20 -20
  103. package/src/pending-hack/pending-hack-with-voice.ts +25 -25
  104. package/src/pending-hack/pending-hack.ts +77 -77
  105. package/src/profile/profile-events.ts +41 -41
  106. package/src/profile/profile.ts +27 -27
  107. package/src/profile/translated-profile.ts +13 -13
  108. package/src/referral/referral-events.ts +41 -41
  109. package/src/referral/referral.ts +76 -76
  110. package/src/saved/saved-collection-events.ts +19 -19
  111. package/src/saved/saved-collection.ts +8 -8
  112. package/src/segment/segment-commands.ts +70 -70
  113. package/src/segment/segment-events.ts +42 -42
  114. package/src/segment/segment-with-voice.ts +8 -8
  115. package/src/segment/segment.ts +82 -82
  116. package/src/skin/skin-events.ts +21 -21
  117. package/src/skin/skin.ts +6 -6
  118. package/src/spark/spark-board-read-model.ts +17 -0
  119. package/src/spark/spark-board.ts +12 -0
  120. package/src/spark/spark-events.ts +42 -0
  121. package/src/spark/spark.ts +80 -0
  122. package/src/text-to-speech/create-speech-commands.ts +20 -20
  123. package/src/text-to-speech/speech-created-events.ts +10 -10
  124. package/src/text-to-speech/supported-voices.ts +151 -151
  125. package/src/text-to-speech/text-segment.ts +29 -29
  126. package/src/theme/theme-events.ts +21 -21
  127. package/src/theme/theme.ts +68 -68
  128. package/src/translation/translation-events.ts +73 -73
  129. package/src/translation/translation.ts +25 -25
  130. package/src/trending/trending-events.ts +21 -21
  131. package/src/trending/trending-hacks.ts +8 -8
  132. package/src/user/user-events.ts +27 -27
  133. package/src/user-context/user-context-events.ts +21 -21
  134. package/src/user-context/user-context.ts +16 -16
  135. package/src/user-notification-context/user-notification-context-events.ts +21 -21
  136. package/src/user-notification-context/user-notification-context.ts +9 -9
  137. package/tsconfig.cjs.json +7 -7
  138. package/tsconfig.npm.json +21 -21
@@ -1,70 +1,70 @@
1
- import { SupportedLocale } from '../localisation/supported-locales';
2
- import { SegmentType } from './segment';
3
-
4
- export interface StandaloneSegmentCard {
5
- markdown: string;
6
- }
7
-
8
- export interface StandaloneSegmentAction {
9
- title: string;
10
- cards: StandaloneSegmentCard[];
11
- }
12
-
13
- export interface StandaloneSegmentSection {
14
- heading?: string;
15
- cards: StandaloneSegmentCard[];
16
- }
17
-
18
- export interface CommandSegment {
19
- type: SegmentType;
20
- // @deprecated use hackTitle, hackType and hackContributors
21
- source?: {
22
- id: string;
23
- type: string;
24
- contributors: {
25
- name: string;
26
- }[];
27
- title: string;
28
- };
29
- hackCoverUrl?: string;
30
- hackId: string;
31
- hackTitle: string;
32
- hackType: 'book' | 'course' | 'documentary' | 'podcast' | 'original';
33
- hackContributors: {
34
- name: string;
35
- }[];
36
- locale: SupportedLocale;
37
- }
38
- export interface StandaloneSegment extends CommandSegment {
39
- title?: string;
40
- keywords?: string[];
41
- sections: StandaloneSegmentSection[];
42
- actions?: StandaloneSegmentAction[];
43
- textSummary?: string;
44
- }
45
-
46
- export interface CompositeSegment extends CommandSegment {
47
- subSegments: StandaloneSegment[];
48
- }
49
-
50
- export interface CreateSegmentCommand {
51
- id: string;
52
- type: 'CreateSegment';
53
- payload: (CompositeSegment | StandaloneSegment);
54
- }
55
-
56
- export interface UpdateSegmentCommand {
57
- id: string;
58
- type: 'UpdateSegment';
59
- payload: (CompositeSegment | StandaloneSegment) & {
60
- segmentId: string;
61
- };
62
- }
63
-
64
- export interface DeleteSegmentCommand {
65
- id: string;
66
- type: 'DeleteSegment';
67
- payload: {
68
- segmentId: string;
69
- };
70
- }
1
+ import { SupportedLocale } from '../localisation/supported-locales';
2
+ import { SegmentType } from './segment';
3
+
4
+ export interface StandaloneSegmentCard {
5
+ markdown: string;
6
+ }
7
+
8
+ export interface StandaloneSegmentAction {
9
+ title: string;
10
+ cards: StandaloneSegmentCard[];
11
+ }
12
+
13
+ export interface StandaloneSegmentSection {
14
+ heading?: string;
15
+ cards: StandaloneSegmentCard[];
16
+ }
17
+
18
+ export interface CommandSegment {
19
+ type: SegmentType;
20
+ // @deprecated use hackTitle, hackType and hackContributors
21
+ source?: {
22
+ id: string;
23
+ type: string;
24
+ contributors: {
25
+ name: string;
26
+ }[];
27
+ title: string;
28
+ };
29
+ hackCoverUrl?: string;
30
+ hackId: string;
31
+ hackTitle: string;
32
+ hackType: 'book' | 'course' | 'documentary' | 'podcast' | 'original';
33
+ hackContributors: {
34
+ name: string;
35
+ }[];
36
+ locale: SupportedLocale;
37
+ }
38
+ export interface StandaloneSegment extends CommandSegment {
39
+ title?: string;
40
+ keywords?: string[];
41
+ sections: StandaloneSegmentSection[];
42
+ actions?: StandaloneSegmentAction[];
43
+ textSummary?: string;
44
+ }
45
+
46
+ export interface CompositeSegment extends CommandSegment {
47
+ subSegments: StandaloneSegment[];
48
+ }
49
+
50
+ export interface CreateSegmentCommand {
51
+ id: string;
52
+ type: 'CreateSegment';
53
+ payload: (CompositeSegment | StandaloneSegment);
54
+ }
55
+
56
+ export interface UpdateSegmentCommand {
57
+ id: string;
58
+ type: 'UpdateSegment';
59
+ payload: (CompositeSegment | StandaloneSegment) & {
60
+ segmentId: string;
61
+ };
62
+ }
63
+
64
+ export interface DeleteSegmentCommand {
65
+ id: string;
66
+ type: 'DeleteSegment';
67
+ payload: {
68
+ segmentId: string;
69
+ };
70
+ }
@@ -1,42 +1,42 @@
1
- import { Segment } from './segment';
2
- import { SegmentWithVoice } from './segment-with-voice';
3
-
4
- export interface SegmentCreatedEvent {
5
- id: string;
6
- type: 'SegmentCreated';
7
- payload: Segment;
8
- }
9
-
10
- export interface SegmentUpdatedEvent {
11
- id: string;
12
- type: 'SegmentUpdated';
13
- payload: Segment;
14
- }
15
-
16
- export interface SegmentDeletedEvent {
17
- id: string;
18
- type: 'SegmentDeleted';
19
- payload: Segment;
20
- }
21
-
22
- export type SegmentChangedEvent = SegmentCreatedEvent | SegmentUpdatedEvent | SegmentDeletedEvent;
23
-
24
- export interface SegmentWithVoiceCreatedEvent {
25
- id: string;
26
- type: 'SegmentWithVoiceCreated';
27
- payload: SegmentWithVoice;
28
- }
29
-
30
- export interface SegmentWithVoiceUpdatedEvent {
31
- id: string;
32
- type: 'SegmentWithVoiceUpdated';
33
- payload: SegmentWithVoice;
34
- }
35
-
36
- export interface SegmentWithVoiceDeletedEvent {
37
- id: string;
38
- type: 'SegmentWithVoiceDeleted';
39
- payload: SegmentWithVoice;
40
- }
41
-
42
- export type SegmentWithVoiceChangedEvent = SegmentWithVoiceCreatedEvent | SegmentWithVoiceUpdatedEvent | SegmentWithVoiceDeletedEvent;
1
+ import { Segment } from './segment';
2
+ import { SegmentWithVoice } from './segment-with-voice';
3
+
4
+ export interface SegmentCreatedEvent {
5
+ id: string;
6
+ type: 'SegmentCreated';
7
+ payload: Segment;
8
+ }
9
+
10
+ export interface SegmentUpdatedEvent {
11
+ id: string;
12
+ type: 'SegmentUpdated';
13
+ payload: Segment;
14
+ }
15
+
16
+ export interface SegmentDeletedEvent {
17
+ id: string;
18
+ type: 'SegmentDeleted';
19
+ payload: Segment;
20
+ }
21
+
22
+ export type SegmentChangedEvent = SegmentCreatedEvent | SegmentUpdatedEvent | SegmentDeletedEvent;
23
+
24
+ export interface SegmentWithVoiceCreatedEvent {
25
+ id: string;
26
+ type: 'SegmentWithVoiceCreated';
27
+ payload: SegmentWithVoice;
28
+ }
29
+
30
+ export interface SegmentWithVoiceUpdatedEvent {
31
+ id: string;
32
+ type: 'SegmentWithVoiceUpdated';
33
+ payload: SegmentWithVoice;
34
+ }
35
+
36
+ export interface SegmentWithVoiceDeletedEvent {
37
+ id: string;
38
+ type: 'SegmentWithVoiceDeleted';
39
+ payload: SegmentWithVoice;
40
+ }
41
+
42
+ export type SegmentWithVoiceChangedEvent = SegmentWithVoiceCreatedEvent | SegmentWithVoiceUpdatedEvent | SegmentWithVoiceDeletedEvent;
@@ -1,8 +1,8 @@
1
- import { Segment } from './segment';
2
-
3
- // a segment with audio in a single voice, because having all voices in one segment would make the entity very large
4
- // the only difference is that it includes a voiceIdAndLanguage field, which can be used as a range key to find the segment for a specific voice
5
- // segmentsWithVoice may point to default or non-default voices
6
- export interface SegmentWithVoice extends Segment {
7
- voiceIdAndLanguage: string;
8
- }
1
+ import { Segment } from './segment';
2
+
3
+ // a segment with audio in a single voice, because having all voices in one segment would make the entity very large
4
+ // the only difference is that it includes a voiceIdAndLanguage field, which can be used as a range key to find the segment for a specific voice
5
+ // segmentsWithVoice may point to default or non-default voices
6
+ export interface SegmentWithVoice extends Segment {
7
+ voiceIdAndLanguage: string;
8
+ }
@@ -1,82 +1,82 @@
1
- export interface SegmentVoice {
2
- id: string;
3
- language: string;
4
- name: string;
5
- countryCode: string;
6
- speechProvider: string;
7
- }
8
-
9
- export interface Segment {
10
- id: string;
11
- v: number;
12
- createdAt: string;
13
- updatedAt: string;
14
- hackId: string;
15
- type: SegmentType;
16
- title: string;
17
- sections: SegmentSection[];
18
- keywords: string[];
19
- actions: SegmentAction[];
20
- speech: SegmentSpeech[];
21
- textSummary?: string;
22
- lastUpdatedFromPendingSegmentId?: string;
23
- hackType: string;
24
- /** use @uptime.app/text-to-speech-contracts */
25
- locale: string;
26
- }
27
-
28
- export type SegmentType =
29
- 'overview' | 'favourite-quote' | 'in-a-nutshell' |
30
- 'introduction' | 'here-are-the-insights' |
31
- 'insight-one' | 'insight-two' | 'insight-three' |
32
- 'put-in-action' | 'conclusion' |
33
- 'shareable-overview' | 'download-app-to-see-more';
34
-
35
- export type CardType = 'hack-cover' | 'action';
36
-
37
- export interface SegmentAction {
38
- title: string;
39
- cards: SegmentTextCard[];
40
- }
41
-
42
- export interface SegmentTextCard {
43
- id: string;
44
- markdown: string;
45
- segmentType: SegmentType;
46
- cardType?: CardType;
47
- isTitle?: boolean;
48
- speech?: TextCardSpeech[];
49
- }
50
-
51
- export interface SegmentSection {
52
- heading?: string;
53
- cards: SegmentTextCard[];
54
- }
55
-
56
- export interface SegmentSpeech {
57
- voice: SegmentVoice;
58
- withHeading: {
59
- url: string;
60
- lengthSeconds: number;
61
- };
62
- withoutHeading: {
63
- url: string;
64
- lengthSeconds: number;
65
- };
66
- }
67
-
68
- export interface TextCardSpeech {
69
- voiceId: string;
70
- withHeading: {
71
- timestamps: {
72
- startsAt: number;
73
- endsAt: number;
74
- };
75
- };
76
- withoutHeading: {
77
- timestamps: {
78
- startsAt: number;
79
- endsAt: number;
80
- };
81
- };
82
- }
1
+ export interface SegmentVoice {
2
+ id: string;
3
+ language: string;
4
+ name: string;
5
+ countryCode: string;
6
+ speechProvider: string;
7
+ }
8
+
9
+ export interface Segment {
10
+ id: string;
11
+ v: number;
12
+ createdAt: string;
13
+ updatedAt: string;
14
+ hackId: string;
15
+ type: SegmentType;
16
+ title: string;
17
+ sections: SegmentSection[];
18
+ keywords: string[];
19
+ actions: SegmentAction[];
20
+ speech: SegmentSpeech[];
21
+ textSummary?: string;
22
+ lastUpdatedFromPendingSegmentId?: string;
23
+ hackType: string;
24
+ /** use @uptime.app/text-to-speech-contracts */
25
+ locale: string;
26
+ }
27
+
28
+ export type SegmentType =
29
+ 'overview' | 'favourite-quote' | 'in-a-nutshell' |
30
+ 'introduction' | 'here-are-the-insights' |
31
+ 'insight-one' | 'insight-two' | 'insight-three' |
32
+ 'put-in-action' | 'conclusion' |
33
+ 'shareable-overview' | 'download-app-to-see-more';
34
+
35
+ export type CardType = 'hack-cover' | 'action';
36
+
37
+ export interface SegmentAction {
38
+ title: string;
39
+ cards: SegmentTextCard[];
40
+ }
41
+
42
+ export interface SegmentTextCard {
43
+ id: string;
44
+ markdown: string;
45
+ segmentType: SegmentType;
46
+ cardType?: CardType;
47
+ isTitle?: boolean;
48
+ speech?: TextCardSpeech[];
49
+ }
50
+
51
+ export interface SegmentSection {
52
+ heading?: string;
53
+ cards: SegmentTextCard[];
54
+ }
55
+
56
+ export interface SegmentSpeech {
57
+ voice: SegmentVoice;
58
+ withHeading: {
59
+ url: string;
60
+ lengthSeconds: number;
61
+ };
62
+ withoutHeading: {
63
+ url: string;
64
+ lengthSeconds: number;
65
+ };
66
+ }
67
+
68
+ export interface TextCardSpeech {
69
+ voiceId: string;
70
+ withHeading: {
71
+ timestamps: {
72
+ startsAt: number;
73
+ endsAt: number;
74
+ };
75
+ };
76
+ withoutHeading: {
77
+ timestamps: {
78
+ startsAt: number;
79
+ endsAt: number;
80
+ };
81
+ };
82
+ }
@@ -1,21 +1,21 @@
1
- import { Skin } from './skin';
2
-
3
- export interface SkinCreatedEvent {
4
- id: string;
5
- type: 'SkinCreated';
6
- payload: Skin;
7
- }
8
-
9
- export interface SkinUpdatedEvent {
10
- id: string;
11
- type: 'SkinUpdated';
12
- payload: Skin;
13
- }
14
-
15
- export interface SkinDeletedEvent {
16
- id: string;
17
- type: 'SkinDeleted';
18
- payload: Skin;
19
- }
20
-
21
- export type SkinChangedEvent = SkinCreatedEvent | SkinUpdatedEvent | SkinDeletedEvent;
1
+ import { Skin } from './skin';
2
+
3
+ export interface SkinCreatedEvent {
4
+ id: string;
5
+ type: 'SkinCreated';
6
+ payload: Skin;
7
+ }
8
+
9
+ export interface SkinUpdatedEvent {
10
+ id: string;
11
+ type: 'SkinUpdated';
12
+ payload: Skin;
13
+ }
14
+
15
+ export interface SkinDeletedEvent {
16
+ id: string;
17
+ type: 'SkinDeleted';
18
+ payload: Skin;
19
+ }
20
+
21
+ export type SkinChangedEvent = SkinCreatedEvent | SkinUpdatedEvent | SkinDeletedEvent;
package/src/skin/skin.ts CHANGED
@@ -1,7 +1,7 @@
1
-
2
- export interface Skin {
3
- id: string;
4
- v: number;
5
- createdAt: string;
6
- updatedAt: string;
1
+
2
+ export interface Skin {
3
+ id: string;
4
+ v: number;
5
+ createdAt: string;
6
+ updatedAt: string;
7
7
  }
@@ -0,0 +1,17 @@
1
+ import { Spark } from './spark';
2
+ import { SparkBoardType } from './spark-board';
3
+
4
+ export interface SparkBoardReadModel {
5
+ // the spark board id
6
+ id: string;
7
+ // the version of the read model
8
+ v: number;
9
+ updatedAt: string;
10
+ createdAt: string;
11
+ sparkBoardVersion: number;
12
+ userId: string;
13
+ boardName: string;
14
+ boardType?: SparkBoardType;
15
+ sparkCount: number;
16
+ firstSparks: Spark[];
17
+ }
@@ -0,0 +1,12 @@
1
+ export interface SparkBoard {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ userId: string;
7
+ boardName: string;
8
+ boardType?: SparkBoardType;
9
+ isPublic: boolean;
10
+ }
11
+
12
+ export type SparkBoardType = 'default';
@@ -0,0 +1,42 @@
1
+ import { Spark } from './spark';
2
+ import { SparkBoard } from './spark-board';
3
+
4
+ export interface SparkCreatedEvent {
5
+ id: string;
6
+ type: 'SparkCreated';
7
+ payload: Spark;
8
+ }
9
+
10
+ export interface SparkUpdatedEvent {
11
+ id: string;
12
+ type: 'SparkUpdated';
13
+ payload: Spark;
14
+ }
15
+
16
+ export interface SparkDeletedEvent {
17
+ id: string;
18
+ type: 'SparkDeleted';
19
+ payload: Spark;
20
+ }
21
+
22
+ export type SparkChangedEvent = SparkCreatedEvent | SparkUpdatedEvent | SparkDeletedEvent;
23
+
24
+ export interface SparkBoardCreatedEvent {
25
+ id: string;
26
+ type: 'SparkBoardCreated';
27
+ payload: SparkBoard;
28
+ }
29
+
30
+ export interface SparkBoardUpdatedEvent {
31
+ id: string;
32
+ type: 'SparkBoardUpdated';
33
+ payload: SparkBoard;
34
+ }
35
+
36
+ export interface SparkBoardDeletedEvent {
37
+ id: string;
38
+ type: 'SparkBoardDeleted';
39
+ payload: SparkBoard;
40
+ }
41
+
42
+ export type SparkBoardChangedEvent = SparkBoardCreatedEvent | SparkBoardUpdatedEvent | SparkBoardDeletedEvent;
@@ -0,0 +1,80 @@
1
+ import { CardType, SegmentType } from '../segment/segment';
2
+ import { Profile } from '../profile/profile';
3
+ import { SupportedLocale } from '../localisation/supported-locales';
4
+ import { ThemeTemplate } from '../theme/theme';
5
+ import { Hack } from '../hack/hack';
6
+
7
+ export interface Spark {
8
+ id: string;
9
+ v: number;
10
+ createdAt: string;
11
+ updatedAt: string;
12
+ userId: string;
13
+ hackId: string;
14
+ segmentId: string;
15
+ card: SparkedCard;
16
+ boardId: string;
17
+ theme: {
18
+ fontFamily: string;
19
+ light: ThemeTemplate;
20
+ dark: ThemeTemplate;
21
+ player?: {
22
+ light: {
23
+ backgroundColor: string;
24
+ },
25
+ dark: {
26
+ backgroundColor: string;
27
+ }
28
+ }
29
+ };
30
+ note?: string;
31
+ hack: SparkHack;
32
+ baseLocaleHackId: string;
33
+ locale: SupportedLocale;
34
+ language: string;
35
+ }
36
+
37
+ export interface SparkedCard {
38
+ id: string;
39
+ markdown: string;
40
+ segmentType: SegmentType;
41
+ isTitle?: boolean;
42
+ cardType?: CardType;
43
+ }
44
+
45
+ // matches Profile of EnrichedHack interface
46
+ export type SparkHack = Pick<Hack,
47
+ 'id'
48
+ | 'title'
49
+ | 'owner'
50
+ | 'themeId'
51
+ | 'isHidden'
52
+ | 'editorialTags'
53
+ | 'coverUrl'
54
+ | 'topics'
55
+ | 'type'
56
+ | 'affiliate'
57
+ | 'contributors'
58
+ | 'createdAt'
59
+ | 'updatedAt'
60
+ | 'v'
61
+ | 'sourceData'
62
+ | 'subjects' >
63
+ & {
64
+ profile: Profile
65
+ | {
66
+ deleted: boolean;
67
+ uptimeOwned: boolean;
68
+ avatarUrl: string;
69
+ };
70
+ segments: Pick<Hack['segments'],
71
+ 'inANutshell'
72
+ | 'favouriteQuote'
73
+ | 'introduction'
74
+ | 'insights'
75
+ | 'conclusion'
76
+ | 'overview'
77
+ | 'hereAreTheInsights'
78
+ | 'putInAction'>;
79
+ acl: string[]
80
+ };
@@ -1,20 +1,20 @@
1
- import { TextSegment, Voice } from './text-segment';
2
-
3
- export interface CreateSpeechFromTextCommand {
4
- id: string;
5
- type: 'CreateSpeechFromText';
6
- payload: {
7
- locale: string;
8
- textSegments: TextSegment[];
9
- };
10
- }
11
-
12
- export interface CreateSpeechWithVoiceCommand {
13
- id: string;
14
- type: 'CreateSpeechWithVoice';
15
- payload: {
16
- locale: string;
17
- textSegments: TextSegment[];
18
- voice: Voice;
19
- };
20
- }
1
+ import { TextSegment, Voice } from './text-segment';
2
+
3
+ export interface CreateSpeechFromTextCommand {
4
+ id: string;
5
+ type: 'CreateSpeechFromText';
6
+ payload: {
7
+ locale: string;
8
+ textSegments: TextSegment[];
9
+ };
10
+ }
11
+
12
+ export interface CreateSpeechWithVoiceCommand {
13
+ id: string;
14
+ type: 'CreateSpeechWithVoice';
15
+ payload: {
16
+ locale: string;
17
+ textSegments: TextSegment[];
18
+ voice: Voice;
19
+ };
20
+ }
@@ -1,10 +1,10 @@
1
- import { TextSegmentWithSpeech } from './text-segment';
2
-
3
- export interface SpeechFromTextCreatedEvent {
4
- id: string;
5
- type: 'SpeechFromTextCreated';
6
- payload: {
7
- locale: string;
8
- textSegments: TextSegmentWithSpeech[];
9
- };
10
- }
1
+ import { TextSegmentWithSpeech } from './text-segment';
2
+
3
+ export interface SpeechFromTextCreatedEvent {
4
+ id: string;
5
+ type: 'SpeechFromTextCreated';
6
+ payload: {
7
+ locale: string;
8
+ textSegments: TextSegmentWithSpeech[];
9
+ };
10
+ }