@streamscloud/embeddable 14.0.0-rc.0 → 14.0.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 (165) hide show
  1. package/dist/core/analytics.profile-id.d.ts +5 -0
  2. package/dist/core/{analytics.installation-id.js → analytics.profile-id.js} +10 -20
  3. package/dist/external-api/data-providers/internal-media-center-analytics-handler.d.ts +14 -14
  4. package/dist/external-api/data-providers/internal-media-center-analytics-handler.js +19 -170
  5. package/dist/external-api/data-providers/internal-media-center-data-provider.svelte.js +6 -6
  6. package/dist/external-api/data-providers/internal-post-analytics-handler.d.ts +7 -7
  7. package/dist/external-api/data-providers/internal-post-analytics-handler.js +11 -72
  8. package/dist/external-api/data-providers/internal-stream-analytics-handler.d.ts +13 -12
  9. package/dist/external-api/data-providers/internal-stream-analytics-handler.js +18 -162
  10. package/dist/external-api/data-providers/mocks/index.d.ts +5 -0
  11. package/dist/external-api/data-providers/mocks/index.js +5 -0
  12. package/dist/{media-center/categories-following → external-api/data-providers/mocks}/mock-categories-following-handler.svelte.d.ts +1 -1
  13. package/dist/external-api/data-providers/mocks/mock-content-management-handler.svelte.d.ts +29 -0
  14. package/dist/external-api/data-providers/mocks/mock-content-management-handler.svelte.js +61 -0
  15. package/dist/{media-center/membership → external-api/data-providers/mocks}/mock-membership-handler.svelte.d.ts +1 -1
  16. package/dist/{media-center/navigation → external-api/data-providers/mocks}/mock-navigation-handler.svelte.d.ts +1 -2
  17. package/dist/{posts/social-interactions → external-api/data-providers/mocks}/mock-post-social-interactions-handler.svelte.d.ts +1 -2
  18. package/dist/{posts/social-interactions → external-api/data-providers/mocks}/mock-post-social-interactions-handler.svelte.js +17 -6
  19. package/dist/external-api/data-providers/mocks/operations.generated.d.ts +115 -0
  20. package/dist/external-api/data-providers/mocks/operations.generated.js +377 -0
  21. package/dist/external-api/data-providers/mocks/operations.graphql +18 -0
  22. package/dist/external-api/data-providers/post-data-loaders/mapper.js +3 -1
  23. package/dist/media-center/config/types.d.ts +7 -1
  24. package/dist/media-center/content-management/index.d.ts +1 -0
  25. package/dist/media-center/content-management/index.js +1 -0
  26. package/dist/media-center/content-management/types.d.ts +24 -0
  27. package/dist/media-center/content-management/types.js +1 -0
  28. package/dist/media-center/index.d.ts +2 -1
  29. package/dist/media-center/media-center/cmp.media-center-proxy.svelte +2 -2
  30. package/dist/media-center/media-center/discover/data-loading.d.ts +3 -0
  31. package/dist/media-center/media-center/discover/data-loading.js +13 -2
  32. package/dist/media-center/media-center/discover/discover-view-handler.svelte.d.ts +23 -0
  33. package/dist/media-center/media-center/discover/discover-view-handler.svelte.js +88 -0
  34. package/dist/media-center/media-center/discover/discover-view.svelte +90 -47
  35. package/dist/media-center/media-center/discover/discover-view.svelte.d.ts +2 -2
  36. package/dist/media-center/media-center/footer/media-center-footer.svelte +1 -1
  37. package/dist/media-center/media-center/handlers/index.d.ts +1 -0
  38. package/dist/media-center/media-center/handlers/index.js +1 -0
  39. package/dist/media-center/media-center/handlers/media-center-content-handler.svelte.d.ts +62 -0
  40. package/dist/media-center/media-center/handlers/media-center-content-handler.svelte.js +144 -0
  41. package/dist/media-center/media-center/header/media-center-header-mobile.svelte +10 -7
  42. package/dist/media-center/media-center/header/media-center-header.svelte +1 -1
  43. package/dist/media-center/media-center/media-center-context.svelte.d.ts +3 -2
  44. package/dist/media-center/media-center/media-center-context.svelte.js +30 -11
  45. package/dist/media-center/media-center/media-center-view.svelte +31 -13
  46. package/dist/media-center/media-center/menu/menu.svelte +16 -7
  47. package/dist/media-center/media-center/menu/menu.svelte.d.ts +1 -0
  48. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.d.ts +7 -0
  49. package/dist/media-center/media-center/menu/popular-streams-panel-handler.svelte.js +23 -8
  50. package/dist/media-center/media-center/moments/moments-feed-handler.svelte.d.ts +19 -2
  51. package/dist/media-center/media-center/moments/moments-feed-handler.svelte.js +51 -6
  52. package/dist/media-center/media-center/moments/moments-state.svelte.d.ts +2 -0
  53. package/dist/media-center/media-center/moments/moments-state.svelte.js +16 -1
  54. package/dist/media-center/media-center/posts-feed/posts-feed-handler.svelte.d.ts +24 -4
  55. package/dist/media-center/media-center/posts-feed/posts-feed-handler.svelte.js +90 -9
  56. package/dist/media-center/media-center/streams-feed/streams-feed-handler.svelte.d.ts +18 -3
  57. package/dist/media-center/media-center/streams-feed/streams-feed-handler.svelte.js +64 -9
  58. package/dist/media-center/media-center/streams-in-category/streams-in-category-panel.svelte +2 -6
  59. package/dist/posts/controls/index.d.ts +2 -1
  60. package/dist/posts/controls/index.js +2 -1
  61. package/dist/posts/controls/post-actions-generator.svelte.d.ts +20 -0
  62. package/dist/posts/controls/post-actions-generator.svelte.js +27 -0
  63. package/dist/posts/controls/post-actions-handler.svelte.d.ts +26 -0
  64. package/dist/posts/controls/post-actions-handler.svelte.js +56 -0
  65. package/dist/posts/index.d.ts +1 -0
  66. package/dist/posts/model/types.d.ts +1 -0
  67. package/dist/posts/post-viewer/cmp.post-viewer.svelte +6 -7
  68. package/dist/posts/post-viewer/cmp.post-viewer.svelte.d.ts +2 -2
  69. package/dist/posts/post-viewer/mapper.js +1 -0
  70. package/dist/posts/posts-player/cmp.posts-player.svelte +2 -1
  71. package/dist/posts/posts-player/cmp.posts-player.svelte.d.ts +2 -0
  72. package/dist/posts/posts-player/index.d.ts +2 -0
  73. package/dist/posts/posts-player/index.js +2 -1
  74. package/dist/posts/posts-player/posts-player-proxy.svelte +2 -1
  75. package/dist/posts/posts-player/posts-player-proxy.svelte.d.ts +3 -1
  76. package/dist/posts/posts-player/posts-player-view.svelte +132 -34
  77. package/dist/posts/posts-player/types.d.ts +13 -3
  78. package/dist/posts/sharing/index.d.ts +1 -0
  79. package/dist/posts/sharing/index.js +1 -0
  80. package/dist/posts/sharing/types.d.ts +5 -0
  81. package/dist/posts/sharing/types.js +1 -0
  82. package/dist/posts/social-interactions/types.d.ts +0 -1
  83. package/dist/streams/controls/index.d.ts +1 -0
  84. package/dist/streams/controls/index.js +1 -0
  85. package/dist/streams/controls/stream-actions-generator.svelte.d.ts +31 -0
  86. package/dist/streams/controls/stream-actions-generator.svelte.js +42 -0
  87. package/dist/streams/index.d.ts +1 -0
  88. package/dist/streams/index.js +1 -0
  89. package/dist/streams/layout/cmp.layout.svelte +4 -1
  90. package/dist/streams/layout/cmp.layout.svelte.d.ts +1 -0
  91. package/dist/streams/layout/element-views/cmp.short-video-stream-element.svelte +1 -0
  92. package/dist/streams/layout/models/mapper.js +1 -0
  93. package/dist/streams/sharing/index.d.ts +1 -0
  94. package/dist/streams/sharing/index.js +1 -0
  95. package/dist/streams/sharing/types.d.ts +5 -0
  96. package/dist/streams/sharing/types.js +1 -0
  97. package/dist/streams/stream-page-viewer/cmp.stream-page-viewer.svelte +43 -1
  98. package/dist/streams/stream-page-viewer/cmp.stream-page-viewer.svelte.d.ts +9 -0
  99. package/dist/streams/streams-player/cmp.streams-player.svelte +2 -1
  100. package/dist/streams/streams-player/cmp.streams-player.svelte.d.ts +2 -0
  101. package/dist/streams/streams-player/index.d.ts +2 -0
  102. package/dist/streams/streams-player/index.js +2 -1
  103. package/dist/streams/streams-player/streams-player-proxy.svelte +2 -1
  104. package/dist/streams/streams-player/streams-player-proxy.svelte.d.ts +2 -0
  105. package/dist/streams/streams-player/streams-player-view.svelte +150 -34
  106. package/dist/streams/streams-player/types.d.ts +8 -0
  107. package/dist/ui/button/resources/button-theme.svelte +2 -4
  108. package/dist/ui/card-actions/card-action-container.d.ts +2 -0
  109. package/dist/ui/card-actions/card-action-container.js +17 -0
  110. package/dist/ui/card-actions/cmp.card-action.svelte +28 -0
  111. package/dist/ui/card-actions/cmp.card-action.svelte.d.ts +10 -0
  112. package/dist/ui/card-actions/cmp.card-actions.svelte +71 -0
  113. package/dist/ui/card-actions/cmp.card-actions.svelte.d.ts +9 -0
  114. package/dist/ui/card-actions/index.d.ts +4 -0
  115. package/dist/ui/card-actions/index.js +3 -0
  116. package/dist/ui/card-actions/types.d.ts +9 -0
  117. package/dist/ui/card-actions/types.js +1 -0
  118. package/dist/ui/icon/cmp.icon.svelte +1 -1
  119. package/dist/ui/player/button/cmp.player-button.svelte +1 -3
  120. package/dist/ui/player/button/cmp.player-buttons-group.svelte +1 -3
  121. package/dist/ui/player/button/cmp.responsive-player-buttons-group.svelte +53 -0
  122. package/dist/ui/player/button/cmp.responsive-player-buttons-group.svelte.d.ts +10 -0
  123. package/dist/ui/player/button/index.d.ts +1 -0
  124. package/dist/ui/player/button/index.js +1 -0
  125. package/dist/{content-player → ui/player/content-player}/cmp.content-player.svelte +7 -29
  126. package/dist/{content-player → ui/player/content-player}/cmp.content-player.svelte.d.ts +11 -15
  127. package/dist/ui/player/content-player/content-player-config.svelte.d.ts +29 -0
  128. package/dist/ui/player/content-player/content-player-config.svelte.js +27 -0
  129. package/dist/{content-player → ui/player/content-player}/content-player-settings.svelte.d.ts +3 -3
  130. package/dist/{content-player → ui/player/content-player}/content-player-settings.svelte.js +2 -2
  131. package/dist/{content-player → ui/player/content-player}/controls-and-attachments.svelte +18 -65
  132. package/dist/{content-player → ui/player/content-player}/controls-and-attachments.svelte.d.ts +11 -14
  133. package/dist/{content-player → ui/player/content-player}/overview-panel.svelte +2 -4
  134. package/dist/{content-player → ui/player/content-player}/overview-panel.svelte.d.ts +5 -14
  135. package/dist/{content-player → ui/player/content-player}/ui-manager.svelte.d.ts +3 -2
  136. package/dist/{content-player → ui/player/content-player}/ui-manager.svelte.js +3 -2
  137. package/dist/ui/player/providers/chunks-player-buffer/player-chunk-item.svelte.d.ts +0 -2
  138. package/dist/ui/player/providers/chunks-player-buffer/player-chunk-item.svelte.js +1 -3
  139. package/dist/ui/player/providers/chunks-player-buffer/player-chunk.svelte.d.ts +3 -2
  140. package/dist/ui/player/providers/chunks-player-buffer/player-chunk.svelte.js +11 -5
  141. package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.d.ts +3 -0
  142. package/dist/ui/player/providers/chunks-player-buffer/player-chunks-manager.svelte.js +74 -8
  143. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.d.ts +2 -0
  144. package/dist/ui/player/providers/default-chunks-player-buffer.svelte.js +15 -4
  145. package/dist/ui/player/providers/default-feed-player-buffer.svelte.d.ts +1 -0
  146. package/dist/ui/player/providers/default-feed-player-buffer.svelte.js +27 -5
  147. package/dist/ui/player/providers/types.d.ts +1 -0
  148. package/dist/ui/player/slider/cmp.player-slider.svelte.d.ts +5 -14
  149. package/dist/ui/player/slider-horizontal/cmp.slider.svelte +2 -6
  150. package/dist/ui/player/slider-horizontal/cmp.slider.svelte.d.ts +5 -12
  151. package/dist/ui/shadow-dom/cmp.shadow-root.svelte +11 -6
  152. package/dist/ui/shadow-dom/colors.scss +2 -0
  153. package/package.json +7 -3
  154. package/dist/content-player/content-player-config.svelte.d.ts +0 -51
  155. package/dist/content-player/content-player-config.svelte.js +0 -48
  156. package/dist/core/analytics.installation-id.d.ts +0 -5
  157. package/dist/external-api/data-providers/mapper.d.ts +0 -3
  158. package/dist/external-api/data-providers/mapper.js +0 -18
  159. package/dist/posts/controls/cmp.controls.svelte +0 -120
  160. package/dist/posts/controls/cmp.controls.svelte.d.ts +0 -16
  161. /package/dist/{media-center/categories-following → external-api/data-providers/mocks}/mock-categories-following-handler.svelte.js +0 -0
  162. /package/dist/{media-center/membership → external-api/data-providers/mocks}/mock-membership-handler.svelte.js +0 -0
  163. /package/dist/{media-center/navigation → external-api/data-providers/mocks}/mock-navigation-handler.svelte.js +0 -0
  164. /package/dist/{content-player → ui/player/content-player}/index.d.ts +0 -0
  165. /package/dist/{content-player → ui/player/content-player}/index.js +0 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Retrieves the profile ID from localStorage or generates a new one if it doesn't exist
3
+ * @returns The profile ID to use for analytics tracking
4
+ */
5
+ export declare const getOrCreateProfileId: () => string;
@@ -1,29 +1,19 @@
1
1
  /**
2
- * Key used for storing the installation ID in local storage (new)
3
- */
4
- const INSTALLATION_ID_STORAGE_KEY = 'streamscloud_installation_id';
5
- /**
6
- * Legacy key used for storing the profile ID in local storage (to be migrated)
2
+ * Key used for storing the profile ID in local storage
7
3
  */
8
4
  const PROFILE_ID_STORAGE_KEY = 'streamscloud_profile_id';
9
5
  /**
10
- * Retrieves the installation ID from localStorage or generates a new one if it doesn't exist
11
- * @returns The installation ID to use for analytics tracking
6
+ * Retrieves the profile ID from localStorage or generates a new one if it doesn't exist
7
+ * @returns The profile ID to use for analytics tracking
12
8
  */
13
- export const getOrCreateInstallationId = () => {
14
- const currentId = localStorage.getItem(INSTALLATION_ID_STORAGE_KEY);
15
- if (currentId) {
16
- return currentId;
17
- }
18
- const legacyId = localStorage.getItem(PROFILE_ID_STORAGE_KEY);
19
- if (legacyId) {
20
- localStorage.setItem(INSTALLATION_ID_STORAGE_KEY, legacyId);
21
- localStorage.removeItem(PROFILE_ID_STORAGE_KEY);
22
- return legacyId;
9
+ export const getOrCreateProfileId = () => {
10
+ const storedProfileId = localStorage.getItem(PROFILE_ID_STORAGE_KEY);
11
+ if (!storedProfileId) {
12
+ const newProfileId = safeRandomUUID();
13
+ localStorage.setItem(PROFILE_ID_STORAGE_KEY, newProfileId);
14
+ return newProfileId;
23
15
  }
24
- const newInstallationId = safeRandomUUID();
25
- localStorage.setItem(INSTALLATION_ID_STORAGE_KEY, newInstallationId);
26
- return newInstallationId;
16
+ return storedProfileId;
27
17
  };
28
18
  function safeRandomUUID() {
29
19
  // 1) Native support
@@ -1,20 +1,20 @@
1
- import type { PostType } from '../..';
2
1
  import type { IPostAnalyticsHandler } from '../../posts/posts-player/types';
3
2
  import type { IStreamAnalyticsHandler } from '../../streams/streams-player/types';
4
3
  export declare class InternalMediaCenterAnalyticsHandler implements IPostAnalyticsHandler, IStreamAnalyticsHandler {
5
4
  constructor(graphqlOrigin: string | undefined);
6
- trackPostOpened: (postType: PostType, postId: string) => Promise<void>;
7
- trackStreamView: (streamId: string) => Promise<void>;
8
- trackStreamPageView: (pageId: string, streamId: string) => Promise<void>;
9
- trackStreamEngagementTime: (streamId: string, engagementTime: number) => Promise<void>;
10
- trackStreamScrollDepth: (streamId: string, scrollDepth: number) => Promise<void>;
11
- trackStreamProductImpression: (productId: string, streamId: string) => Promise<void>;
12
- trackStreamProductClicked: (productId: string, streamId: string) => Promise<void>;
13
- reportPageVideoViews: (pageId: string, streamId: string) => Promise<import("@streamscloud/streams-analytics-collector").MeasurementsBatchReportResult>;
14
- trackShortVideoView: (videoId: string) => Promise<void>;
15
- trackShortVideoProductImpression: (productId: string, videoId: string) => Promise<void>;
16
- trackShortVideoProductClick: (productId: string, videoId: string) => Promise<void>;
5
+ setOrganizationId: (organizationId: string) => void;
6
+ trackPostOpened: (postId: string, ownerId: string) => void;
7
+ trackStreamView: (streamId: string) => void;
8
+ trackStreamPageView: (pageId: string, streamId: string) => void;
9
+ trackStreamEngagementTime: (streamId: string, engagementTime: number) => void;
10
+ trackStreamScrollDepth: (streamId: string, scrollDepth: number) => void;
11
+ trackStreamProductImpression: (productId: string, streamId: string) => void;
12
+ trackStreamProductClicked: (productId: string, streamId: string) => void;
13
+ reportPageVideoViews: (videoId: string, streamId: string) => void;
14
+ trackShortVideoView: (videoId: string) => void;
15
+ trackShortVideoProductImpression: (productId: string, videoId: string) => void;
16
+ trackShortVideoProductClick: (productId: string, videoId: string) => void;
17
17
  trackShortVideoProgress: (pageId: string, videoId: string, progress: number, streamId: string) => void;
18
- trackAdClick: (adId: string) => Promise<void>;
19
- trackAdImpression: (adId: string) => Promise<void>;
18
+ trackAdClick: (adId: string) => void;
19
+ trackAdImpression: (adId: string) => void;
20
20
  }
@@ -1,175 +1,24 @@
1
- import { getOrCreateInstallationId } from '../../core/analytics.installation-id';
1
+ import { getOrCreateProfileId } from '../../core/analytics.profile-id';
2
2
  import { constructGraphQLUrl } from '../../core/graphql';
3
- import { mapPostTypeToEntityType } from './mapper';
4
- import { AnalyticsCollector, EntityRelationType, EntityType, EventType, MeasurementType, Schemas } from '@streamscloud/streams-analytics-collector';
3
+ import { AppEventsTracker } from '@streamscloud/streams-analytics-collector';
5
4
  export class InternalMediaCenterAnalyticsHandler {
6
5
  constructor(graphqlOrigin) {
7
- AnalyticsCollector.initialize({
8
- gqlDataSenderOptions: {
9
- endpoint: constructGraphQLUrl(graphqlOrigin)
10
- },
11
- schema: Schemas.external,
12
- metadata: {
13
- installationId: getOrCreateInstallationId()
14
- }
15
- });
6
+ AppEventsTracker.setEndpoint(constructGraphQLUrl(graphqlOrigin));
7
+ AppEventsTracker.setProfileId(getOrCreateProfileId());
16
8
  }
17
- trackPostOpened = (postType, postId) => AnalyticsCollector.eventsReporter.reportEvent({
18
- entity: {
19
- type: mapPostTypeToEntityType(postType),
20
- id: postId
21
- },
22
- eventType: EventType.Viewed
23
- });
24
- trackStreamView = (streamId) => AnalyticsCollector.eventsReporter.reportEvent({
25
- entity: {
26
- type: EntityType.Stream,
27
- id: streamId
28
- },
29
- eventType: EventType.Viewed
30
- });
31
- trackStreamPageView = (pageId, streamId) => AnalyticsCollector.eventsReporter.reportEvent({
32
- entity: {
33
- type: EntityType.StreamPage,
34
- id: pageId
35
- },
36
- eventType: EventType.Viewed,
37
- relatedEntities: [
38
- {
39
- relationType: EntityRelationType.PlacedIn,
40
- entity: {
41
- type: EntityType.Stream,
42
- id: streamId
43
- }
44
- }
45
- ]
46
- });
47
- trackStreamEngagementTime = (streamId, engagementTime) => AnalyticsCollector.measurementsReporter.reportMeasurement({
48
- entity: {
49
- type: EntityType.Stream,
50
- id: streamId
51
- },
52
- measurementType: MeasurementType.EngagementTime,
53
- value: engagementTime
54
- });
55
- trackStreamScrollDepth = (streamId, scrollDepth) => AnalyticsCollector.measurementsReporter.reportMeasurement({
56
- entity: {
57
- type: EntityType.Stream,
58
- id: streamId
59
- },
60
- measurementType: MeasurementType.ScrollDepth,
61
- value: scrollDepth
62
- });
63
- trackStreamProductImpression = (productId, streamId) => AnalyticsCollector.eventsReporter.reportEvent({
64
- entity: {
65
- type: EntityType.Product,
66
- id: productId
67
- },
68
- eventType: EventType.Appeared,
69
- relatedEntities: [
70
- {
71
- relationType: EntityRelationType.PlacedIn,
72
- entity: {
73
- type: EntityType.Stream,
74
- id: streamId
75
- }
76
- }
77
- ]
78
- });
79
- trackStreamProductClicked = (productId, streamId) => AnalyticsCollector.eventsReporter.reportEvent({
80
- entity: {
81
- type: EntityType.Product,
82
- id: productId
83
- },
84
- eventType: EventType.Clicked,
85
- relatedEntities: [
86
- {
87
- relationType: EntityRelationType.PlacedIn,
88
- entity: {
89
- type: EntityType.Stream,
90
- id: streamId
91
- }
92
- }
93
- ]
94
- });
95
- reportPageVideoViews = (pageId, streamId) => AnalyticsCollector.measurementsBatcher.reportBatch([
96
- {
97
- type: EntityType.StreamPage,
98
- id: pageId
99
- },
100
- {
101
- type: EntityType.Stream,
102
- id: streamId
103
- }
104
- ]);
105
- trackShortVideoView = (videoId) => AnalyticsCollector.eventsReporter.reportEvent({
106
- entity: {
107
- type: EntityType.ShortVideo,
108
- id: videoId
109
- },
110
- eventType: EventType.Viewed
111
- });
112
- trackShortVideoProductImpression = (productId, videoId) => AnalyticsCollector.eventsReporter.reportEvent({
113
- entity: {
114
- type: EntityType.Product,
115
- id: productId
116
- },
117
- eventType: EventType.Appeared,
118
- relatedEntities: [
119
- {
120
- relationType: EntityRelationType.PlacedIn,
121
- entity: {
122
- type: EntityType.ShortVideo,
123
- id: videoId
124
- }
125
- }
126
- ]
127
- });
128
- trackShortVideoProductClick = (productId, videoId) => AnalyticsCollector.eventsReporter.reportEvent({
129
- entity: {
130
- type: EntityType.Product,
131
- id: productId
132
- },
133
- eventType: EventType.Clicked,
134
- relatedEntities: [
135
- {
136
- relationType: EntityRelationType.PlacedIn,
137
- entity: {
138
- type: EntityType.ShortVideo,
139
- id: videoId
140
- }
141
- }
142
- ]
143
- });
144
- trackShortVideoProgress = (pageId, videoId, progress, streamId) => AnalyticsCollector.measurementsBatcher.collect([
145
- {
146
- type: EntityType.StreamPage,
147
- id: pageId
148
- },
149
- {
150
- type: EntityType.Stream,
151
- id: streamId
152
- }
153
- ], {
154
- entity: {
155
- type: EntityType.ShortVideo,
156
- id: videoId
157
- },
158
- measurementType: MeasurementType.Progress,
159
- value: progress
160
- });
161
- trackAdClick = (adId) => AnalyticsCollector.eventsReporter.reportEvent({
162
- entity: {
163
- type: EntityType.Ad,
164
- id: adId
165
- },
166
- eventType: EventType.Clicked
167
- });
168
- trackAdImpression = (adId) => AnalyticsCollector.eventsReporter.reportEvent({
169
- entity: {
170
- type: EntityType.Ad,
171
- id: adId
172
- },
173
- eventType: EventType.Appeared
174
- });
9
+ setOrganizationId = (organizationId) => AppEventsTracker.setOrganizationId(organizationId);
10
+ trackPostOpened = (postId, ownerId) => AppEventsTracker.trackPostOpened(postId, ownerId);
11
+ trackStreamView = (streamId) => AppEventsTracker.trackStreamView(streamId);
12
+ trackStreamPageView = (pageId, streamId) => AppEventsTracker.trackStreamPageView(pageId, streamId);
13
+ trackStreamEngagementTime = (streamId, engagementTime) => AppEventsTracker.trackStreamEngagementTime(streamId, engagementTime);
14
+ trackStreamScrollDepth = (streamId, scrollDepth) => AppEventsTracker.trackStreamScrollDepth(streamId, scrollDepth);
15
+ trackStreamProductImpression = (productId, streamId) => AppEventsTracker.trackStreamProductImpression(productId, streamId);
16
+ trackStreamProductClicked = (productId, streamId) => AppEventsTracker.trackStreamProductClicked(productId, streamId);
17
+ reportPageVideoViews = (videoId, streamId) => AppEventsTracker.reportPageVideoViews(videoId, streamId);
18
+ trackShortVideoView = (videoId) => AppEventsTracker.trackShortVideoView(videoId);
19
+ trackShortVideoProductImpression = (productId, videoId) => AppEventsTracker.trackShortVideoProductImpression(productId, videoId);
20
+ trackShortVideoProductClick = (productId, videoId) => AppEventsTracker.trackShortVideoProductClick(productId, videoId);
21
+ trackShortVideoProgress = (pageId, videoId, progress, streamId) => AppEventsTracker.trackShortVideoProgress(pageId, videoId, progress, streamId);
22
+ trackAdClick = (adId) => AppEventsTracker.trackAdClick(adId);
23
+ trackAdImpression = (adId) => AppEventsTracker.trackAdImpression(adId);
175
24
  }
@@ -1,11 +1,8 @@
1
1
  import { Status, StreamStatus } from '../../core/enums';
2
2
  import { createLocalGQLClient } from '../../core/graphql';
3
- import { MockCategoryFollowingProvider } from '../../media-center/categories-following/mock-categories-following-handler.svelte';
4
- import { MockMembershipHandler } from '../../media-center/membership/mock-membership-handler.svelte';
5
- import { MockNavigationHandler } from '../../media-center/navigation/mock-navigation-handler.svelte';
6
- import { MockPostSocialInteractionsHandler } from '../../posts/social-interactions/mock-post-social-interactions-handler.svelte';
7
3
  import { PlayerColors } from '../../ui/player/colors';
8
4
  import { InternalMediaCenterAnalyticsHandler } from './internal-media-center-analytics-handler';
5
+ import { MockCategoryFollowingProvider, MockMediaCenterContentManagementHandler, MockMembershipHandler, MockNavigationHandler, MockPostSocialInteractionsHandler } from './mocks';
9
6
  import { GetMediaPageConfigDocument } from './operations.generated';
10
7
  import { getPostsCursor } from './post-data-loaders';
11
8
  import { getStreamPagesCursor, getStreamsCursor } from './stream-data-loaders';
@@ -94,9 +91,12 @@ export class InternalMediaCenterDataProvider {
94
91
  this.handlers = {
95
92
  analyticsHandler: new InternalMediaCenterAnalyticsHandler(graphqlOrigin),
96
93
  categoriesFollowingHandler: testingStuff ? new MockCategoryFollowingProvider() : undefined,
97
- socialInteractionsHandler: testingStuff ? new MockPostSocialInteractionsHandler() : undefined,
94
+ postSocialInteractionsHandler: testingStuff ? new MockPostSocialInteractionsHandler() : undefined,
95
+ postSharingHandler: testingStuff ? { share: (postId) => console.warn('Share post', postId) } : undefined,
96
+ streamSharingHandler: testingStuff ? { share: (streamId) => console.warn('Share stream', streamId) } : undefined,
98
97
  membershipHandler: testingStuff ? new MockMembershipHandler() : undefined,
99
- navigationHandler: testingStuff && onNavigationStateChange ? new MockNavigationHandler(onNavigationStateChange) : undefined
98
+ navigationHandler: testingStuff && onNavigationStateChange ? new MockNavigationHandler(onNavigationStateChange) : undefined,
99
+ contentManagementHandler: testingStuff ? new MockMediaCenterContentManagementHandler(this.graphql) : undefined
100
100
  };
101
101
  }
102
102
  }
@@ -1,11 +1,11 @@
1
- import type { PostType } from '../../core/enums';
2
1
  import type { IPostAnalyticsHandler } from '../../posts/posts-player';
3
2
  export declare class InternalPostAnalyticsHandler implements IPostAnalyticsHandler {
4
3
  constructor(graphqlOrigin: string | undefined);
5
- trackPostOpened: (postType: PostType, postId: string) => Promise<void>;
6
- trackShortVideoView: (videoId: string) => Promise<void>;
7
- trackShortVideoProductImpression: (productId: string, videoId: string) => Promise<void>;
8
- trackShortVideoProductClick: (productId: string, videoId: string) => Promise<void>;
9
- trackAdClick: (adId: string) => Promise<void>;
10
- trackAdImpression: (adId: string) => Promise<void>;
4
+ setOrganizationId: (organizationId: string) => void;
5
+ trackPostOpened: (postId: string, ownerId: string) => void;
6
+ trackShortVideoView: (videoId: string) => void;
7
+ trackShortVideoProductImpression: (productId: string, videoId: string) => void;
8
+ trackShortVideoProductClick: (productId: string, videoId: string) => void;
9
+ trackAdClick: (adId: string) => void;
10
+ trackAdImpression: (adId: string) => void;
11
11
  }
@@ -1,77 +1,16 @@
1
- import { getOrCreateInstallationId } from '../../core/analytics.installation-id';
1
+ import { getOrCreateProfileId } from '../../core/analytics.profile-id';
2
2
  import { constructGraphQLUrl } from '../../core/graphql';
3
- import { mapPostTypeToEntityType } from './mapper';
4
- import { AnalyticsCollector, EntityRelationType, EntityType, EventType, Schemas } from '@streamscloud/streams-analytics-collector';
3
+ import { AppEventsTracker } from '@streamscloud/streams-analytics-collector';
5
4
  export class InternalPostAnalyticsHandler {
6
5
  constructor(graphqlOrigin) {
7
- AnalyticsCollector.initialize({
8
- gqlDataSenderOptions: {
9
- endpoint: constructGraphQLUrl(graphqlOrigin)
10
- },
11
- schema: Schemas.external,
12
- metadata: {
13
- installationId: getOrCreateInstallationId()
14
- }
15
- });
6
+ AppEventsTracker.setEndpoint(constructGraphQLUrl(graphqlOrigin));
7
+ AppEventsTracker.setProfileId(getOrCreateProfileId());
16
8
  }
17
- trackPostOpened = (postType, postId) => AnalyticsCollector.eventsReporter.reportEvent({
18
- entity: {
19
- type: mapPostTypeToEntityType(postType),
20
- id: postId
21
- },
22
- eventType: EventType.Viewed
23
- });
24
- trackShortVideoView = (videoId) => AnalyticsCollector.eventsReporter.reportEvent({
25
- entity: {
26
- type: EntityType.ShortVideo,
27
- id: videoId
28
- },
29
- eventType: EventType.Viewed
30
- });
31
- trackShortVideoProductImpression = (productId, videoId) => AnalyticsCollector.eventsReporter.reportEvent({
32
- entity: {
33
- type: EntityType.Product,
34
- id: productId
35
- },
36
- eventType: EventType.Appeared,
37
- relatedEntities: [
38
- {
39
- relationType: EntityRelationType.PlacedIn,
40
- entity: {
41
- type: EntityType.ShortVideo,
42
- id: videoId
43
- }
44
- }
45
- ]
46
- });
47
- trackShortVideoProductClick = (productId, videoId) => AnalyticsCollector.eventsReporter.reportEvent({
48
- entity: {
49
- type: EntityType.Product,
50
- id: productId
51
- },
52
- eventType: EventType.Clicked,
53
- relatedEntities: [
54
- {
55
- relationType: EntityRelationType.PlacedIn,
56
- entity: {
57
- type: EntityType.ShortVideo,
58
- id: videoId
59
- }
60
- }
61
- ]
62
- });
63
- trackAdClick = (adId) => AnalyticsCollector.eventsReporter.reportEvent({
64
- entity: {
65
- type: EntityType.Ad,
66
- id: adId
67
- },
68
- eventType: EventType.Clicked
69
- });
70
- trackAdImpression = (adId) => AnalyticsCollector.eventsReporter.reportEvent({
71
- entity: {
72
- type: EntityType.Ad,
73
- id: adId
74
- },
75
- eventType: EventType.Appeared
76
- });
9
+ setOrganizationId = (organizationId) => AppEventsTracker.setOrganizationId(organizationId);
10
+ trackPostOpened = (postId, ownerId) => AppEventsTracker.trackPostOpened(postId, ownerId);
11
+ trackShortVideoView = (videoId) => AppEventsTracker.trackShortVideoView(videoId);
12
+ trackShortVideoProductImpression = (productId, videoId) => AppEventsTracker.trackShortVideoProductImpression(productId, videoId);
13
+ trackShortVideoProductClick = (productId, videoId) => AppEventsTracker.trackShortVideoProductClick(productId, videoId);
14
+ trackAdClick = (adId) => AppEventsTracker.trackAdClick(adId);
15
+ trackAdImpression = (adId) => AppEventsTracker.trackAdImpression(adId);
77
16
  }
@@ -1,17 +1,18 @@
1
1
  import type { IStreamAnalyticsHandler } from '../../streams/streams-player/types';
2
2
  export declare class InternalStreamAnalyticsHandler implements IStreamAnalyticsHandler {
3
3
  constructor(graphqlOrigin: string | undefined);
4
- trackStreamView: (streamId: string) => Promise<void>;
5
- trackStreamPageView: (pageId: string, streamId: string) => Promise<void>;
6
- trackStreamEngagementTime: (streamId: string, engagementTime: number) => Promise<void>;
7
- trackStreamScrollDepth: (streamId: string, scrollDepth: number) => Promise<void>;
8
- trackStreamProductImpression: (productId: string, streamId: string) => Promise<void>;
9
- trackStreamProductClicked: (productId: string, streamId: string) => Promise<void>;
10
- reportPageVideoViews: (pageId: string, streamId: string) => Promise<import("@streamscloud/streams-analytics-collector").MeasurementsBatchReportResult>;
11
- trackShortVideoView: (videoId: string) => Promise<void>;
12
- trackShortVideoProductImpression: (productId: string, videoId: string) => Promise<void>;
13
- trackShortVideoProductClick: (productId: string, videoId: string) => Promise<void>;
4
+ setOrganizationId: (organizationId: string) => void;
5
+ trackStreamView: (streamId: string) => void;
6
+ trackStreamPageView: (pageId: string, streamId: string) => void;
7
+ trackStreamEngagementTime: (streamId: string, engagementTime: number) => void;
8
+ trackStreamScrollDepth: (streamId: string, scrollDepth: number) => void;
9
+ trackStreamProductImpression: (productId: string, streamId: string) => void;
10
+ trackStreamProductClicked: (productId: string, streamId: string) => void;
11
+ reportPageVideoViews: (videoId: string, streamId: string) => void;
12
+ trackShortVideoView: (videoId: string) => void;
13
+ trackShortVideoProductImpression: (productId: string, videoId: string) => void;
14
+ trackShortVideoProductClick: (productId: string, videoId: string) => void;
14
15
  trackShortVideoProgress: (pageId: string, videoId: string, progress: number, streamId: string) => void;
15
- trackAdClick: (adId: string) => Promise<void>;
16
- trackAdImpression: (adId: string) => Promise<void>;
16
+ trackAdClick: (adId: string) => void;
17
+ trackAdImpression: (adId: string) => void;
17
18
  }
@@ -1,167 +1,23 @@
1
- import { getOrCreateInstallationId } from '../../core/analytics.installation-id';
1
+ import { getOrCreateProfileId } from '../../core/analytics.profile-id';
2
2
  import { constructGraphQLUrl } from '../../core/graphql';
3
- import { AnalyticsCollector, EntityRelationType, EntityType, EventType, MeasurementType, Schemas } from '@streamscloud/streams-analytics-collector';
3
+ import { AppEventsTracker } from '@streamscloud/streams-analytics-collector';
4
4
  export class InternalStreamAnalyticsHandler {
5
5
  constructor(graphqlOrigin) {
6
- AnalyticsCollector.initialize({
7
- gqlDataSenderOptions: {
8
- endpoint: constructGraphQLUrl(graphqlOrigin)
9
- },
10
- schema: Schemas.external,
11
- metadata: {
12
- installationId: getOrCreateInstallationId()
13
- }
14
- });
6
+ AppEventsTracker.setEndpoint(constructGraphQLUrl(graphqlOrigin));
7
+ AppEventsTracker.setProfileId(getOrCreateProfileId());
15
8
  }
16
- trackStreamView = (streamId) => AnalyticsCollector.eventsReporter.reportEvent({
17
- entity: {
18
- type: EntityType.Stream,
19
- id: streamId
20
- },
21
- eventType: EventType.Viewed
22
- });
23
- trackStreamPageView = (pageId, streamId) => AnalyticsCollector.eventsReporter.reportEvent({
24
- entity: {
25
- type: EntityType.StreamPage,
26
- id: pageId
27
- },
28
- eventType: EventType.Viewed,
29
- relatedEntities: [
30
- {
31
- relationType: EntityRelationType.PlacedIn,
32
- entity: {
33
- type: EntityType.Stream,
34
- id: streamId
35
- }
36
- }
37
- ]
38
- });
39
- trackStreamEngagementTime = (streamId, engagementTime) => AnalyticsCollector.measurementsReporter.reportMeasurement({
40
- entity: {
41
- type: EntityType.Stream,
42
- id: streamId
43
- },
44
- measurementType: MeasurementType.EngagementTime,
45
- value: engagementTime
46
- });
47
- trackStreamScrollDepth = (streamId, scrollDepth) => AnalyticsCollector.measurementsReporter.reportMeasurement({
48
- entity: {
49
- type: EntityType.Stream,
50
- id: streamId
51
- },
52
- measurementType: MeasurementType.ScrollDepth,
53
- value: scrollDepth
54
- });
55
- trackStreamProductImpression = (productId, streamId) => AnalyticsCollector.eventsReporter.reportEvent({
56
- entity: {
57
- type: EntityType.Product,
58
- id: productId
59
- },
60
- eventType: EventType.Appeared,
61
- relatedEntities: [
62
- {
63
- relationType: EntityRelationType.PlacedIn,
64
- entity: {
65
- type: EntityType.Stream,
66
- id: streamId
67
- }
68
- }
69
- ]
70
- });
71
- trackStreamProductClicked = (productId, streamId) => AnalyticsCollector.eventsReporter.reportEvent({
72
- entity: {
73
- type: EntityType.Product,
74
- id: productId
75
- },
76
- eventType: EventType.Clicked,
77
- relatedEntities: [
78
- {
79
- relationType: EntityRelationType.PlacedIn,
80
- entity: {
81
- type: EntityType.Stream,
82
- id: streamId
83
- }
84
- }
85
- ]
86
- });
87
- reportPageVideoViews = (pageId, streamId) => AnalyticsCollector.measurementsBatcher.reportBatch([
88
- {
89
- type: EntityType.StreamPage,
90
- id: pageId
91
- },
92
- {
93
- type: EntityType.Stream,
94
- id: streamId
95
- }
96
- ]);
97
- trackShortVideoView = (videoId) => AnalyticsCollector.eventsReporter.reportEvent({
98
- entity: {
99
- type: EntityType.ShortVideo,
100
- id: videoId
101
- },
102
- eventType: EventType.Viewed
103
- });
104
- trackShortVideoProductImpression = (productId, videoId) => AnalyticsCollector.eventsReporter.reportEvent({
105
- entity: {
106
- type: EntityType.Product,
107
- id: productId
108
- },
109
- eventType: EventType.Appeared,
110
- relatedEntities: [
111
- {
112
- relationType: EntityRelationType.PlacedIn,
113
- entity: {
114
- type: EntityType.ShortVideo,
115
- id: videoId
116
- }
117
- }
118
- ]
119
- });
120
- trackShortVideoProductClick = (productId, videoId) => AnalyticsCollector.eventsReporter.reportEvent({
121
- entity: {
122
- type: EntityType.Product,
123
- id: productId
124
- },
125
- eventType: EventType.Clicked,
126
- relatedEntities: [
127
- {
128
- relationType: EntityRelationType.PlacedIn,
129
- entity: {
130
- type: EntityType.ShortVideo,
131
- id: videoId
132
- }
133
- }
134
- ]
135
- });
136
- trackShortVideoProgress = (pageId, videoId, progress, streamId) => AnalyticsCollector.measurementsBatcher.collect([
137
- {
138
- type: EntityType.StreamPage,
139
- id: pageId
140
- },
141
- {
142
- type: EntityType.Stream,
143
- id: streamId
144
- }
145
- ], {
146
- entity: {
147
- type: EntityType.ShortVideo,
148
- id: videoId
149
- },
150
- measurementType: MeasurementType.Progress,
151
- value: progress
152
- });
153
- trackAdClick = (adId) => AnalyticsCollector.eventsReporter.reportEvent({
154
- entity: {
155
- type: EntityType.Ad,
156
- id: adId
157
- },
158
- eventType: EventType.Clicked
159
- });
160
- trackAdImpression = (adId) => AnalyticsCollector.eventsReporter.reportEvent({
161
- entity: {
162
- type: EntityType.Ad,
163
- id: adId
164
- },
165
- eventType: EventType.Appeared
166
- });
9
+ setOrganizationId = (organizationId) => AppEventsTracker.setOrganizationId(organizationId);
10
+ trackStreamView = (streamId) => AppEventsTracker.trackStreamView(streamId);
11
+ trackStreamPageView = (pageId, streamId) => AppEventsTracker.trackStreamPageView(pageId, streamId);
12
+ trackStreamEngagementTime = (streamId, engagementTime) => AppEventsTracker.trackStreamEngagementTime(streamId, engagementTime);
13
+ trackStreamScrollDepth = (streamId, scrollDepth) => AppEventsTracker.trackStreamScrollDepth(streamId, scrollDepth);
14
+ trackStreamProductImpression = (productId, streamId) => AppEventsTracker.trackStreamProductImpression(productId, streamId);
15
+ trackStreamProductClicked = (productId, streamId) => AppEventsTracker.trackStreamProductClicked(productId, streamId);
16
+ reportPageVideoViews = (videoId, streamId) => AppEventsTracker.reportPageVideoViews(videoId, streamId);
17
+ trackShortVideoView = (videoId) => AppEventsTracker.trackShortVideoView(videoId);
18
+ trackShortVideoProductImpression = (productId, videoId) => AppEventsTracker.trackShortVideoProductImpression(productId, videoId);
19
+ trackShortVideoProductClick = (productId, videoId) => AppEventsTracker.trackShortVideoProductClick(productId, videoId);
20
+ trackShortVideoProgress = (pageId, videoId, progress, streamId) => AppEventsTracker.trackShortVideoProgress(pageId, videoId, progress, streamId);
21
+ trackAdClick = (adId) => AppEventsTracker.trackAdClick(adId);
22
+ trackAdImpression = (adId) => AppEventsTracker.trackAdImpression(adId);
167
23
  }
@@ -0,0 +1,5 @@
1
+ export { MockCategoryFollowingProvider } from './mock-categories-following-handler.svelte';
2
+ export { MockMediaCenterContentManagementHandler } from './mock-content-management-handler.svelte';
3
+ export { MockMembershipHandler } from './mock-membership-handler.svelte';
4
+ export { MockNavigationHandler } from './mock-navigation-handler.svelte';
5
+ export { MockPostSocialInteractionsHandler } from './mock-post-social-interactions-handler.svelte';
@@ -0,0 +1,5 @@
1
+ export { MockCategoryFollowingProvider } from './mock-categories-following-handler.svelte';
2
+ export { MockMediaCenterContentManagementHandler } from './mock-content-management-handler.svelte';
3
+ export { MockMembershipHandler } from './mock-membership-handler.svelte';
4
+ export { MockNavigationHandler } from './mock-navigation-handler.svelte';
5
+ export { MockPostSocialInteractionsHandler } from './mock-post-social-interactions-handler.svelte';