@24i/bigscreen-sdk 1.0.54-alpha.2835 → 1.1.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 (105) hide show
  1. package/.vscode/settings.json +6 -0
  2. package/README.md +3 -2
  3. package/package.json +10 -10
  4. package/packages/analytics/src/clients/GoogleAnalytics/GoogleAnalytics.ts +14 -10
  5. package/packages/analytics/src/clients/GoogleAnalytics/constants.ts +2 -10
  6. package/packages/analytics/src/clients/GoogleAnalytics/interface.ts +1 -6
  7. package/packages/analytics/src/clients/GoogleAnalytics/mapPayload.ts +0 -1
  8. package/packages/analytics/src/clients/TealiumAnalytics/TealiumAnalytics.ts +24 -36
  9. package/packages/analytics/src/clients/TealiumAnalytics/constants.ts +1 -5
  10. package/packages/analytics/src/clients/TealiumAnalytics/findIdForLanguage.ts +9 -0
  11. package/packages/analytics/src/clients/TealiumAnalytics/index.ts +1 -1
  12. package/packages/analytics/src/clients/TealiumAnalytics/interface.ts +1 -3
  13. package/packages/analytics/src/clients/TealiumAnalytics/mappers/__mocks__/mediaPayload.ts +14 -16
  14. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSceneView.ts +1 -1
  15. package/packages/analytics/src/clients/TealiumAnalytics/types.ts +14 -19
  16. package/packages/analytics/src/clients/TwentyFourIQ/TwentyFourIQClient.ts +22 -13
  17. package/packages/analytics/src/clients/TwentyFourIQ/constants.ts +3 -15
  18. package/packages/analytics/src/clients/TwentyFourIQ/interface.ts +4 -7
  19. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdLoaded.ts +13 -0
  20. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdSkipped.ts +16 -0
  21. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBase.ts +3 -6
  22. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBuffering.ts +2 -2
  23. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerClose.ts +3 -4
  24. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerOpen.ts +3 -2
  25. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapSceneView.ts +2 -2
  26. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapScroll.ts +2 -2
  27. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoComplete.ts +3 -4
  28. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoPause.ts +3 -4
  29. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoProgress.ts +3 -4
  30. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStart.ts +2 -2
  31. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStop.ts +2 -2
  32. package/packages/analytics/src/clients/TwentyFourIQ/types.ts +28 -45
  33. package/packages/create-package/dist/createPackage.js +66 -0
  34. package/packages/create-package/dist/createPackage.js.map +1 -0
  35. package/packages/create-package/dist/index.js +5 -0
  36. package/packages/create-package/dist/index.js.map +1 -0
  37. package/packages/create-package/dist/questionnaire/questions.js +35 -0
  38. package/packages/create-package/dist/questionnaire/questions.js.map +1 -0
  39. package/packages/create-package/dist/settings/Settings.js +10 -0
  40. package/packages/create-package/dist/settings/Settings.js.map +1 -0
  41. package/packages/create-package/dist/types.js +3 -0
  42. package/packages/create-package/dist/types.js.map +1 -0
  43. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoProvider.ts +2 -23
  44. package/packages/developer-tools/src/TechnicalInfo/__mocks__/Device.ts +0 -8
  45. package/packages/developer-tools/src/TechnicalInfo/translations.ts +0 -4
  46. package/packages/driver-androidtv/src/DeviceAndroidTV.ts +0 -38
  47. package/packages/driver-androidtv/src/__mocks__/javaScriptBridge.ts +0 -9
  48. package/packages/driver-androidtv/src/index.ts +0 -1
  49. package/packages/driver-androidtv/src/types.ts +0 -42
  50. package/packages/driver-base/src/DeviceBase.ts +0 -19
  51. package/packages/driver-base/src/__mocks__/DeviceBase.ts +0 -24
  52. package/packages/driver-base/src/index.ts +0 -3
  53. package/packages/driver-browser/src/DeviceBrowser.ts +0 -26
  54. package/packages/driver-entone/src/DeviceEntone.ts +1 -31
  55. package/packages/driver-firetv/src/DeviceFireTV.ts +1 -74
  56. package/packages/driver-firetv/src/__mocks__/javaScriptBridge.ts +0 -9
  57. package/packages/driver-hbbtv/src/DeviceHbbTV.ts +0 -26
  58. package/packages/driver-kreatv/src/DeviceKreaTV.ts +0 -26
  59. package/packages/driver-saphi/src/DeviceSaphi.ts +0 -26
  60. package/packages/driver-smartcast/src/DeviceSmartCast.ts +1 -78
  61. package/packages/driver-smartcast/src/__mocks__/api.ts +2 -32
  62. package/packages/driver-smartcast/src/types.ts +2 -48
  63. package/packages/driver-tizen/src/DeviceTizen.ts +7 -126
  64. package/packages/driver-tizen/src/ITizen.ts +202 -15116
  65. package/packages/driver-tizen/src/IWebapis.ts +87 -8643
  66. package/packages/driver-tizen/src/TizenKeys.ts +2 -2
  67. package/packages/driver-tizen/src/__mocks__/tizen.ts +8 -7
  68. package/packages/driver-tizen/src/constants.ts +195 -1
  69. package/packages/driver-tizen/src/types.ts +14 -0
  70. package/packages/driver-vidaa/src/DeviceVidaa.ts +0 -26
  71. package/packages/driver-webos/src/DeviceWebos.ts +0 -47
  72. package/packages/driver-webos/src/__mocks__/webos.ts +0 -33
  73. package/packages/driver-webos/src/constants.ts +0 -1
  74. package/packages/driver-webos/src/types.ts +0 -30
  75. package/packages/driver-xbox/src/DeviceXbox.ts +1 -30
  76. package/packages/grid/src/UnifiedGridController/UnifiedGridController.ts +6 -6
  77. package/packages/input/README.md +3 -0
  78. package/packages/input/src/Input.tsx +62 -26
  79. package/packages/input/src/utils.ts +71 -0
  80. package/packages/keyboard/src/WhitelabelKeyboard/layouts/index.ts +0 -1
  81. package/packages/keyboard/src/utils/caret.ts +8 -5
  82. package/packages/keyboard/src/utils/input.ts +6 -5
  83. package/packages/list/src/BasicList/BasicList.tsx +7 -7
  84. package/packages/list/src/CenteredList/CenteredList.tsx +2 -2
  85. package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +7 -7
  86. package/packages/list/src/FirstOnlyList/FirstOnlyList.tsx +2 -2
  87. package/packages/list/src/FirstOnlyVariedList/FirstOnlyVariedList.tsx +2 -2
  88. package/packages/list/src/FixedToEndList/FixedToEndList.tsx +2 -2
  89. package/packages/list/src/interface.ts +2 -2
  90. package/packages/logger/src/loggers/ConsoleLogger/ConsoleLogger.ts +1 -7
  91. package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +1 -3
  92. package/packages/router/README.md +0 -1
  93. package/packages/router/src/Router.tsx +1 -4
  94. package/packages/router/src/utils.ts +1 -1
  95. package/utils/release/release.ts +5 -7
  96. package/ci/is_ci_job_skippable.sh +0 -153
  97. package/packages/analytics/src/clients/TealiumAnalytics/findForLanguage.ts +0 -9
  98. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapAppOpen.ts +0 -13
  99. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdEvent.ts +0 -20
  100. package/packages/driver-base/src/types/AdInfo.ts +0 -5
  101. package/packages/driver-base/src/types/InAppPurchase.ts +0 -25
  102. package/packages/driver-firetv/src/types.ts +0 -1
  103. package/packages/input/src/handleOverflow.ts +0 -29
  104. package/packages/keyboard/src/WhitelabelKeyboard/layouts/spanish.ts +0 -26
  105. package/packages/keyboard/src/utils/setInputSelectionRange.ts +0 -10
@@ -11,7 +11,8 @@ import { mapPlayerOpen } from './mappers/mapPlayerOpen';
11
11
  import { mapPlayerClose } from './mappers/mapPlayerClose';
12
12
  import { mapVideoStart } from './mappers/mapVideoStart';
13
13
  import { mapVideoPause } from './mappers/mapVideoPause';
14
- import { mapAdEvent } from './mappers/mapAdEvent';
14
+ import { mapAdLoaded } from './mappers/mapAdLoaded';
15
+ import { mapAdSkipped } from './mappers/mapAdSkipped';
15
16
  import { EventMappingFunction } from './types';
16
17
 
17
18
  export const EVENTS_MAPPING: Record<EVENTS, EventMappingFunction> = {
@@ -25,10 +26,6 @@ export const EVENTS_MAPPING: Record<EVENTS, EventMappingFunction> = {
25
26
  [EVENTS.VIDEO_PROGRESS]: mapVideoProgress,
26
27
  [EVENTS.VIDEO_COMPLETE]: mapVideoComplete,
27
28
  [EVENTS.VIDEO_PAUSE]: mapVideoPause,
28
- [EVENTS.AD_BUFFERING]: mapAdEvent,
29
- [EVENTS.AD_COMPLETE]: mapAdEvent,
30
- [EVENTS.AD_ERROR]: mapAdEvent,
31
- [EVENTS.AD_SKIPPED]: mapAdEvent,
32
- [EVENTS.AD_START]: mapAdEvent,
33
- [EVENTS.AD_STOP]: mapAdEvent,
29
+ [EVENTS.AD_LOADED]: mapAdLoaded,
30
+ [EVENTS.AD_SKIPPED]: mapAdSkipped,
34
31
  };
@@ -0,0 +1,13 @@
1
+ import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
+ import { getAssetId } from '../helper';
3
+ import { Payload, AdLoadedResult } from '../types';
4
+ import { mapBase } from './mapBase';
5
+
6
+ export const mapAdLoaded = (triggerName: AnalyticsTriggers, payload: Payload): AdLoadedResult => ({
7
+ ...mapBase(payload),
8
+ action: triggerName,
9
+ event_trigger: triggerName,
10
+ thing_id: getAssetId(payload.sceneId),
11
+ player_advertisment_name: '', // TODO: adPayload?.adName,
12
+ player_advertisment_position: 0, // TODO: adPayload?.adPosition,
13
+ });
@@ -0,0 +1,16 @@
1
+ import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
+ import { getAssetId } from '../helper';
3
+ import { Payload, AdSkippedResult } from '../types';
4
+ import { mapBase } from './mapBase';
5
+
6
+ export const mapAdSkipped = (
7
+ triggerName: AnalyticsTriggers,
8
+ payload: Payload,
9
+ ): AdSkippedResult => ({
10
+ ...mapBase(payload),
11
+ action: triggerName,
12
+ event_trigger: triggerName,
13
+ thing_id: getAssetId(payload.sceneId),
14
+ player_advertisment_name: '', // TODO: adPayload?.adName,
15
+ player_advertisment_position: 0, // TODO: adPayload?.adPosition,
16
+ });
@@ -4,17 +4,14 @@ import { formatDateTime, getTimezoneOffsetString } from '../helper';
4
4
 
5
5
  export const mapBase = (payload: Payload): BaseResult => {
6
6
  const timestampDate = time.getCurrentTime();
7
- const formattedTimestamp = getTimezoneOffsetString();
7
+ const formatedTimestamp = getTimezoneOffsetString();
8
8
  return {
9
- device_appversion: payload.appVersion || '',
10
9
  session_id: payload.sessionId.toString(),
11
10
  timestamp_initiated: formatDateTime(timestampDate),
12
11
  device_id: payload.deviceId,
13
- device_type: 'SmartTV',
12
+ device_type: payload.deviceType,
14
13
  device_platform: payload.platform || '',
15
- device_model: payload.deviceModel || '',
16
- device_manufacturer: payload.manufacturer || '',
17
- device_timezone: formattedTimestamp,
14
+ device_timezone: formatedTimestamp,
18
15
  service_id: payload.serviceId || '',
19
16
  user_id: payload.userId || '',
20
17
  user_profile_id: payload.userProfileId,
@@ -1,4 +1,5 @@
1
1
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
+ import { getAssetId } from '../helper';
2
3
  import { Payload, BufferingResult } from '../types';
3
4
  import { mapBase } from './mapBase';
4
5
 
@@ -9,7 +10,6 @@ export const mapBuffering = (
9
10
  ...mapBase(payload),
10
11
  action: triggerName,
11
12
  event_trigger: triggerName,
12
- thing_id: payload.assetId || '',
13
- attribution_id: payload.attributionId || '',
13
+ thing_id: getAssetId(payload.sceneId),
14
14
  source_page: payload.sceneName,
15
15
  });
@@ -1,8 +1,9 @@
1
1
  import { SECOND_IN_MS } from '@24i/bigscreen-sdk/utils';
2
2
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
3
- import { DefaultScreens, EVENTS, HUNDRED_PERCENT } from '../constants';
3
+ import { EVENTS, HUNDRED_PERCENT } from '../constants';
4
4
  import { PlayerCloseResult, Payload } from '../types';
5
5
  import { mapBase } from './mapBase';
6
+ import { getAssetId } from '../helper';
6
7
 
7
8
  export const mapPlayerClose = (
8
9
  triggerName: AnalyticsTriggers,
@@ -16,9 +17,7 @@ export const mapPlayerClose = (
16
17
  ...mapBase(payload),
17
18
  action: EVENTS.PLAYER_CLOSE,
18
19
  event_trigger: triggerName,
19
- source_page: DefaultScreens.PLAYBACK,
20
- thing_id: payload.assetId || '',
21
- attribution_id: payload.attributionId || '',
20
+ thing_id: getAssetId(payload.sceneId),
22
21
  duration,
23
22
  progress_pct: progressPercent,
24
23
  };
@@ -1,5 +1,7 @@
1
1
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
2
  import { DefaultScreens } from '../constants';
3
+ import { getAssetId } from '../helper';
4
+
3
5
  import { PlayerOpenResult, Payload } from '../types';
4
6
  import { mapBase } from './mapBase';
5
7
 
@@ -11,7 +13,6 @@ export const mapPlayerOpen = (
11
13
  action: triggerName,
12
14
  event_trigger: triggerName,
13
15
  source_page: DefaultScreens.PLAYBACK,
14
- thing_id: payload.assetId || '',
15
- attribution_id: payload.attributionId || '',
16
+ thing_id: getAssetId(payload.sceneId),
16
17
  source_rail: '', // TODO: payload.payload.asset.sectionLabel,
17
18
  });
@@ -1,4 +1,5 @@
1
1
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
+ import { getAssetId } from '../helper';
2
3
  import { Payload, SceneViewResult } from '../types';
3
4
  import { mapBase } from './mapBase';
4
5
 
@@ -10,6 +11,5 @@ export const mapSceneView = (
10
11
  action: triggerName,
11
12
  event_trigger: triggerName,
12
13
  source_page: payload.sceneName,
13
- thing_id: payload.assetId || '',
14
- attribution_id: payload.attributionId || '',
14
+ thing_id: getAssetId(payload.sceneId),
15
15
  });
@@ -1,5 +1,6 @@
1
1
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
2
  import { EVENTS } from '../constants';
3
+ import { getAssetId } from '../helper';
3
4
  import { Payload, ScrollResult } from '../types';
4
5
  import { mapBase } from './mapBase';
5
6
 
@@ -10,8 +11,7 @@ export const mapScroll = (triggerName: AnalyticsTriggers, payload: Payload): Scr
10
11
  action: EVENTS.SCROLL,
11
12
  event_trigger: triggerName,
12
13
  source_page: payload.sceneName,
13
- thing_id: payload.assetId || '',
14
- attribution_id: payload.attributionId || '',
14
+ thing_id: getAssetId(payload.sceneId),
15
15
  percent_scrolled: percentScrolled,
16
16
  };
17
17
  };
@@ -1,8 +1,9 @@
1
1
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
2
  import { SECOND_IN_MS } from '@24i/bigscreen-sdk/utils';
3
- import { DefaultScreens, EVENTS } from '../constants';
3
+ import { EVENTS } from '../constants';
4
4
  import { Payload, VideoCompleteResult } from '../types';
5
5
  import { mapBase } from './mapBase';
6
+ import { getAssetId } from '../helper';
6
7
 
7
8
  export const mapVideoComplete = (
8
9
  triggerName: AnalyticsTriggers,
@@ -13,10 +14,8 @@ export const mapVideoComplete = (
13
14
  ...mapBase(payload),
14
15
  action: EVENTS.VIDEO_COMPLETE,
15
16
  event_trigger: triggerName,
16
- thing_id: payload.assetId || '',
17
- attribution_id: payload.attributionId || '',
17
+ thing_id: getAssetId(payload.sceneId),
18
18
  progress_pct: 90,
19
19
  duration: assetDuration,
20
- source_page: DefaultScreens.PLAYBACK,
21
20
  };
22
21
  };
@@ -1,8 +1,9 @@
1
1
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
2
  import { SECOND_IN_MS } from '@24i/bigscreen-sdk/utils';
3
- import { DefaultScreens, EVENTS, HUNDRED_PERCENT } from '../constants';
3
+ import { EVENTS, HUNDRED_PERCENT } from '../constants';
4
4
  import { VideoPauseResult, Payload } from '../types';
5
5
  import { mapBase } from './mapBase';
6
+ import { getAssetId } from '../helper';
6
7
 
7
8
  export const mapVideoPause = (
8
9
  triggerName: AnalyticsTriggers,
@@ -16,10 +17,8 @@ export const mapVideoPause = (
16
17
  ...mapBase(payload),
17
18
  action: EVENTS.VIDEO_PAUSE,
18
19
  event_trigger: triggerName,
19
- thing_id: payload.assetId || '',
20
- attribution_id: payload.attributionId || '',
20
+ thing_id: getAssetId(payload.sceneId),
21
21
  duration: overallDuration,
22
22
  progress_pct: progressPercent,
23
- source_page: DefaultScreens.PLAYBACK,
24
23
  };
25
24
  };
@@ -1,8 +1,9 @@
1
1
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
2
2
  import { SECOND_IN_MS } from '@24i/bigscreen-sdk/utils';
3
3
  import { Payload, VideoProgressResult } from '../types';
4
- import { DefaultScreens, EVENTS, HUNDRED_PERCENT } from '../constants';
4
+ import { EVENTS, HUNDRED_PERCENT } from '../constants';
5
5
  import { mapBase } from './mapBase';
6
+ import { getAssetId } from '../helper';
6
7
 
7
8
  export const mapVideoProgress = (
8
9
  triggerName: AnalyticsTriggers,
@@ -16,10 +17,8 @@ export const mapVideoProgress = (
16
17
  ...mapBase(payload),
17
18
  action: EVENTS.VIDEO_PROGRESS,
18
19
  event_trigger: triggerName,
19
- thing_id: payload.assetId || '',
20
- attribution_id: payload.attributionId || '',
20
+ thing_id: getAssetId(payload.sceneId),
21
21
  progress_pct: progressPercent,
22
22
  duration: durationInSeconds,
23
- source_page: DefaultScreens.PLAYBACK,
24
23
  };
25
24
  };
@@ -4,6 +4,7 @@ import { SECOND_IN_MS } from '@24i/bigscreen-sdk/utils';
4
4
  import { DefaultScreens, EVENTS } from '../constants';
5
5
  import { VideoStartResult, Payload } from '../types';
6
6
  import { mapBase } from './mapBase';
7
+ import { getAssetId } from '../helper';
7
8
 
8
9
  const HUNDRED_PERCENT = 100;
9
10
 
@@ -24,8 +25,7 @@ export const mapVideoStart = (
24
25
  ...mapBase(payload),
25
26
  action: EVENTS.VIDEO_START,
26
27
  event_trigger: triggerName,
27
- thing_id: payload.assetId || '',
28
- attribution_id: payload.attributionId || '',
28
+ thing_id: getAssetId(payload.sceneId),
29
29
  duration: assetDuration,
30
30
  progress_pct: progressPercent,
31
31
  source_page: DefaultScreens.PLAYBACK,
@@ -4,6 +4,7 @@ import { PropertyType } from '@24i/smartapps-datalayer/models';
4
4
  import { DefaultScreens, EVENTS, HUNDRED_PERCENT } from '../constants';
5
5
  import { Payload, VideoStopResult } from '../types';
6
6
  import { mapBase } from './mapBase';
7
+ import { getAssetId } from '../helper';
7
8
 
8
9
  export const mapVideoStop = (
9
10
  triggerName: AnalyticsTriggers,
@@ -22,8 +23,7 @@ export const mapVideoStop = (
22
23
  ...mapBase(payload),
23
24
  action: EVENTS.VIDEO_STOP,
24
25
  event_trigger: triggerName,
25
- thing_id: payload.assetId || '',
26
- attribution_id: payload.attributionId || '',
26
+ thing_id: getAssetId(payload.sceneId),
27
27
  progress_pct: progressPercent,
28
28
  duration,
29
29
  source_page: DefaultScreens.PLAYBACK,
@@ -1,6 +1,6 @@
1
1
  import { Asset } from '@24i/smartapps-datalayer/models';
2
2
  import { AnalyticsTriggers } from '@24i/appstage-shared-analytics';
3
- import type { AnyPayload, UserInfo, AppInfo, AdType } from '../../interface';
3
+ import type { AnyPayload, UserInfo, AppInfo } from '../../interface';
4
4
 
5
5
  interface ScreenParams {
6
6
  screen: string;
@@ -14,9 +14,8 @@ export interface CorePayload {
14
14
  asset?: Asset;
15
15
  source?: string;
16
16
  duration?: number;
17
- assetId?: string;
17
+ id?: string;
18
18
  percentOfPlayback?: number;
19
- attributionId?: string;
20
19
  }
21
20
 
22
21
  export interface SessionInfo {
@@ -28,8 +27,8 @@ export interface DeviceInfo {
28
27
  appVersion: string,
29
28
  manufacturer: string,
30
29
  platform: string,
30
+ platformVersion: string,
31
31
  deviceId: string,
32
- deviceModel: string,
33
32
  }
34
33
 
35
34
  export interface SceneInfo {
@@ -38,21 +37,7 @@ export interface SceneInfo {
38
37
  sceneType?: string,
39
38
  }
40
39
 
41
- export interface AdInfo {
42
- adId: string;
43
- adName: string;
44
- adType: AdType;
45
- adDuration: string;
46
- adPosition: string;
47
- }
48
-
49
- export type Payload = CorePayload
50
- & SceneInfo
51
- & SessionInfo
52
- & UserInfo
53
- & DeviceInfo
54
- & AppInfo
55
- & AdInfo;
40
+ export type Payload = CorePayload & SceneInfo & SessionInfo & UserInfo & AppInfo;
56
41
 
57
42
  export type EventBody = AnyPayload;
58
43
 
@@ -62,14 +47,11 @@ export type EventMappingFunction = (
62
47
  ) => AnyPayload | void;
63
48
 
64
49
  export type BaseResult = {
65
- device_appversion: string,
66
50
  session_id: string;
67
51
  timestamp_initiated: string;
68
52
  device_id: string;
69
53
  device_type: string;
70
54
  device_platform: string;
71
- device_manufacturer: string;
72
- device_model: string;
73
55
  device_timezone: string;
74
56
  service_id: string;
75
57
  user_id?: string;
@@ -84,49 +66,50 @@ export type CoreResult = BaseResult & {
84
66
  export type SceneViewResult = CoreResult & {
85
67
  source_page: string;
86
68
  thing_id: string;
87
- attribution_id: string;
88
69
  };
89
70
  export type BufferingResult = SceneViewResult;
90
71
 
91
72
  export type ScrollResult = SceneViewResult & {
92
73
  percent_scrolled: string;
93
74
  };
75
+ export type VideoProgressResult = CoreResult & {
76
+ thing_id: string;
77
+ progress_pct: number;
78
+ duration: number;
79
+ };
80
+
94
81
  export type PlayerOpenResult = CoreResult & {
95
82
  thing_id: string;
96
- attribution_id: string;
97
83
  source_page: string;
98
84
  source_rail?: string | null;
99
85
  };
100
86
 
101
- export type VideoBaseResult = CoreResult & {
87
+ export type VideoStartResult = CoreResult & {
102
88
  thing_id: string;
103
- attribution_id: string;
104
89
  duration: number;
105
90
  progress_pct: number;
106
91
  source_page: string;
107
- };
108
-
109
- export type VideoStartResult = VideoBaseResult & {
110
92
  source_rail?: string | null;
111
93
  };
112
94
 
113
- export type VideoPauseResult = VideoBaseResult;
114
-
115
- export type VideoStopResult = VideoStartResult;
116
-
117
- export type VideoProgressResult = VideoBaseResult;
118
-
119
- export type VideoCompleteResult = VideoBaseResult;
95
+ export type VideoPauseResult = CoreResult & {
96
+ thing_id: string;
97
+ duration: number;
98
+ progress_pct: number;
99
+ };
120
100
 
121
- export type PlayerCloseResult = VideoBaseResult;
101
+ export type AdLoadedResult = CoreResult & {
102
+ thing_id: string;
103
+ player_advertisment_name: string;
104
+ player_advertisment_position: number;
105
+ };
122
106
 
123
- export type AdEventResult = CoreResult & {
124
- ad_id: string;
125
- ad_name: string;
126
- ad_position: AdType;
127
- ad_playback_position: string;
128
- ad_playback_duration: string;
107
+ export type AdSkippedResult = CoreResult & {
129
108
  thing_id: string;
130
- attribution_id: string;
131
- custom_campaign_url: string;
109
+ player_advertisment_name: string;
110
+ player_advertisment_position: number;
132
111
  };
112
+
113
+ export type VideoCompleteResult = VideoPauseResult;
114
+ export type VideoStopResult = VideoStartResult;
115
+ export type PlayerCloseResult = VideoPauseResult;
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.main = void 0;
5
+ const path = require("path");
6
+ const fs = require("fs");
7
+ const fse = require("fs-extra");
8
+ const chalk = require("chalk");
9
+ const minimist = require("minimist");
10
+ const questions_1 = require("./questionnaire/questions");
11
+ const Settings_1 = require("./settings/Settings");
12
+ async function isDirectoryEmpty(dirPath) {
13
+ const files = await fs.promises.readdir(dirPath);
14
+ return !files.length;
15
+ }
16
+ async function copyTemplateFiles(templateDir, targetDir) {
17
+ return fse.copy(templateDir, targetDir);
18
+ }
19
+ function updatePackageJsonFile(filePath, options) {
20
+ let data = fs.readFileSync(filePath, 'utf8');
21
+ const keywords = options.keywords.map((word) => `"${word}"`).join(', ');
22
+ data = data.replace(/("name": ")(.*)(")/, `$1${options.name}$3`);
23
+ data = data.replace(/("version": ")(.*)(")/, `$1${options.version}$3`);
24
+ data = data.replace(/("description": ")(.*)(")/, `$1${options.description}$3`);
25
+ data = data.replace(/("keywords": \[)(.*)(\])/, `$1${keywords}$3`);
26
+ data = data.replace(/("author": ")(.*)(")/, `$1${options.author}$3`);
27
+ fs.writeFileSync(filePath, data);
28
+ }
29
+ function parseArguments(rawArgv) {
30
+ const argv = minimist(rawArgv.slice(2));
31
+ const dirName = argv._[0];
32
+ if (!dirName) {
33
+ console.error('Error: Missing package name');
34
+ process.exit(1);
35
+ }
36
+ return {
37
+ dirName,
38
+ };
39
+ }
40
+ async function main() {
41
+ const { dirName: destDirName } = parseArguments(process.argv);
42
+ const destDir = path.join(process.cwd(), 'packages/', destDirName);
43
+ if (fs.existsSync(destDir)) {
44
+ console.error(`Error: Target directory "${destDir}" already exists`);
45
+ process.exit(1);
46
+ }
47
+ fs.mkdirSync(destDir, { recursive: true });
48
+ const isDirEmpty = await isDirectoryEmpty(destDir);
49
+ if (!isDirEmpty) {
50
+ console.error(`Error: Target directory "${destDir}" is not empty.`);
51
+ process.exit(1);
52
+ }
53
+ const settings = Object.assign({}, Settings_1.Settings);
54
+ settings.name = `${Settings_1.Settings.name}${destDirName}`.toLowerCase();
55
+ const details = await (0, questions_1.promptPackageDetails)(settings);
56
+ const templateDir = path.join(__dirname, '..', 'templates/typescript');
57
+ await copyTemplateFiles(templateDir, destDir);
58
+ const packageJsonFile = path.join(destDir, 'package.json');
59
+ updatePackageJsonFile(packageJsonFile, details);
60
+ const docsSymlinkTarget = path.join('../../../packages/', destDirName, '/README.md');
61
+ const docsSymlinkPath = path.join(process.cwd(), 'docs/packages/', destDirName, '/README.md');
62
+ await fse.ensureSymlink(docsSymlinkTarget, docsSymlinkPath);
63
+ console.log(`${chalk.green('Success')}, package has been initialized!`);
64
+ }
65
+ exports.main = main;
66
+ //# sourceMappingURL=createPackage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPackage.js","sourceRoot":"","sources":["../src/createPackage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const createPackage_1 = require("./createPackage");
4
+ (0, createPackage_1.main)();
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,mDAAuC;AAEvC,IAAA,oBAAI,GAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.promptPackageDetails = void 0;
4
+ const inquirer = require("inquirer");
5
+ async function promptPackageDetails(defaultValues) {
6
+ return inquirer.prompt([
7
+ {
8
+ type: 'input',
9
+ name: 'name',
10
+ message: 'Package name:',
11
+ default: defaultValues.name,
12
+ }, {
13
+ type: 'input',
14
+ name: 'version',
15
+ message: 'Version:',
16
+ default: defaultValues.version,
17
+ }, {
18
+ type: 'input',
19
+ name: 'description',
20
+ message: 'Description:',
21
+ }, {
22
+ type: 'input',
23
+ name: 'keywords',
24
+ message: 'Keywords:',
25
+ filter: (ans) => ans.split(/[\s,]+/),
26
+ }, {
27
+ type: 'input',
28
+ name: 'author',
29
+ message: 'Author:',
30
+ default: defaultValues.author,
31
+ },
32
+ ]);
33
+ }
34
+ exports.promptPackageDetails = promptPackageDetails;
35
+ //# sourceMappingURL=questions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/questionnaire/questions.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AAWrC,KAAK,UAAU,oBAAoB,CAAC,aAA4C;IAC5E,OAAO,QAAQ,CAAC,MAAM,CAAC;QACnB;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,aAAa,CAAC,IAAI;SAC9B,EAAE;YACC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,aAAa,CAAC,OAAO;SACjC,EAAE;YACC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,cAAc;SAC1B,EAAE;YACC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;SACvC,EAAE;YACC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,aAAa,CAAC,MAAM;SAChC;KACJ,CAAC,CAAC;AACP,CAAC;AAEQ,oDAAoB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Settings = void 0;
4
+ const Settings = {
5
+ name: '@24i/smartapps-bigscreen-',
6
+ version: '0.0.1',
7
+ author: '24i',
8
+ };
9
+ exports.Settings = Settings;
10
+ //# sourceMappingURL=Settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/settings/Settings.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG;IACb,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,KAAK;CAChB,CAAC;AAEO,4BAAQ"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -111,15 +111,6 @@ class TechnicalInfoProvider implements ITechnicalInfoProvider {
111
111
  return value || unknown;
112
112
  }
113
113
 
114
- async getDeviceOsLanguage() {
115
- let value;
116
- const { unknown } = this.translations;
117
- try {
118
- value = await this.props.device.getOsLanguage();
119
- } catch (e) {}
120
- return value || unknown;
121
- }
122
-
123
114
  async getPlatformType() {
124
115
  let value;
125
116
  const { unknown } = this.translations;
@@ -146,16 +137,6 @@ class TechnicalInfoProvider implements ITechnicalInfoProvider {
146
137
  return value || unknown;
147
138
  }
148
139
 
149
- async getAdInfo() {
150
- let value;
151
- const { unknown } = this.translations;
152
- try {
153
- const { adId, type, latEnabled } = await this.props.device.getAdInfo();
154
- value = `LAT: ${latEnabled}, AD ID TYPE: ${type}, AD ID: ${adId}`;
155
- } catch (e) {}
156
- return value || unknown;
157
- }
158
-
159
140
  async getLocalIpAddress() {
160
141
  let value;
161
142
  const { unknown } = this.translations;
@@ -302,8 +283,8 @@ class TechnicalInfoProvider implements ITechnicalInfoProvider {
302
283
  async getSourceDataLayout() {
303
284
  const {
304
285
  username, profile, appVersion, firmwareVersion, deviceModel,
305
- deviceManufacturer, deviceLanguage, platform, player, serialNumber, adInfo,
306
- localIpAddress, publicIpAddress, connectionType, macAddress, memoryHeapSize,
286
+ deviceManufacturer, platform, player, serialNumber, localIpAddress,
287
+ publicIpAddress, connectionType, macAddress, memoryHeapSize,
307
288
  usedLocalStorage, timeZone, dateAndTime, flavour, userAgent,
308
289
  emeSupport, emeDrmSystems, mseSupport, fourKSupport, resolution, baseUrl,
309
290
  appCoreVersions, androidWrapperVersion,
@@ -316,11 +297,9 @@ class TechnicalInfoProvider implements ITechnicalInfoProvider {
316
297
  { label: firmwareVersion, getter: this.getFirmwareVersion },
317
298
  { label: deviceModel, getter: this.getDeviceModelName },
318
299
  { label: deviceManufacturer, getter: this.getDeviceManufacturer },
319
- { label: deviceLanguage, getter: this.getDeviceOsLanguage },
320
300
  { label: platform, getter: this.getPlatformType },
321
301
  { label: player, getter: this.getPlayerType },
322
302
  { label: serialNumber, getter: this.getDeviceSerialNumber },
323
- { label: adInfo, getter: this.getAdInfo },
324
303
  { label: localIpAddress, getter: this.getLocalIpAddress },
325
304
  { label: publicIpAddress, getter: this.getPublicIpAddress },
326
305
  { label: connectionType, getter: this.getConnectionType },
@@ -43,14 +43,6 @@ class Device {
43
43
  return 'connection type';
44
44
  }
45
45
 
46
- async getOsLanguage() {
47
- return 'device language';
48
- }
49
-
50
- async getAdInfo() {
51
- return { adId: 'ad-id', type: 'ad-id-type', latEnabled: false };
52
- }
53
-
54
46
  async getMacAddress() {
55
47
  return 'mac address';
56
48
  }
@@ -15,11 +15,9 @@ export type TranslationKeys = {
15
15
  firmwareVersion: string,
16
16
  deviceModel: string,
17
17
  deviceManufacturer: string,
18
- deviceLanguage: string;
19
18
  platform: string,
20
19
  player: string,
21
20
  serialNumber: string,
22
- adInfo: string,
23
21
  localIpAddress: string,
24
22
  publicIpAddress: string,
25
23
  connectionType: string,
@@ -56,11 +54,9 @@ export const defaultTranslations = {
56
54
  firmwareVersion: 'Firmware version',
57
55
  deviceModel: 'Device model',
58
56
  deviceManufacturer: 'Device manufacturer',
59
- deviceLanguage: 'Device Language',
60
57
  platform: 'Platform',
61
58
  player: 'Player',
62
59
  serialNumber: 'Serial number',
63
- adInfo: 'Ad info',
64
60
  localIpAddress: 'Local IP address',
65
61
  publicIpAddress: 'Public IP address',
66
62
  connectionType: 'Connection type',