@24i/bigscreen-sdk 1.0.17-bs.player.2355 → 1.0.17

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 (151) hide show
  1. package/package.json +2 -2
  2. package/packages/adobe-heartbeat/src/AdobeHeartbeat.ts +9 -9
  3. package/packages/create-package/dist/createPackage.js +66 -0
  4. package/packages/create-package/dist/createPackage.js.map +1 -0
  5. package/packages/create-package/dist/index.js +5 -0
  6. package/packages/create-package/dist/index.js.map +1 -0
  7. package/packages/create-package/dist/questionnaire/questions.js +35 -0
  8. package/packages/create-package/dist/questionnaire/questions.js.map +1 -0
  9. package/packages/create-package/dist/settings/Settings.js +10 -0
  10. package/packages/create-package/dist/settings/Settings.js.map +1 -0
  11. package/packages/create-package/dist/types.js +3 -0
  12. package/packages/create-package/dist/types.js.map +1 -0
  13. package/packages/developer-tools/PlayerDebugWindow/README.md +1 -1
  14. package/packages/developer-tools/src/PlayerDebugWindow/PlayerDebugWindow.tsx +5 -5
  15. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoProvider.ts +1 -1
  16. package/packages/gallup/src/Gallup.ts +3 -3
  17. package/packages/player-ui/src/CurrentTime.tsx +2 -2
  18. package/packages/player-ui/src/Duration.tsx +2 -2
  19. package/packages/player-ui/src/PlayerUI.tsx +4 -4
  20. package/packages/player-ui/src/RemainingTime.tsx +2 -2
  21. package/packages/player-ui/src/Seekbar.tsx +3 -3
  22. package/packages/player-ui/src/Seeking.ts +4 -4
  23. package/packages/player-ui/src/Subtitles.tsx +2 -2
  24. package/packages/player-ui/src/mocks.ts +4 -12
  25. package/packages/player-ui/src/types.ts +2 -2
  26. package/packages/rnv-build-engine/dist/src/constants/buildSchemes.js +14 -0
  27. package/packages/rnv-build-engine/dist/src/constants/index.js +7 -0
  28. package/packages/rnv-build-engine/dist/src/constants/platforms.js +14 -0
  29. package/packages/rnv-build-engine/dist/src/engine.js +94 -0
  30. package/packages/rnv-build-engine/dist/src/index.js +26 -0
  31. package/packages/rnv-build-engine/dist/src/resolvers/index.js +29 -0
  32. package/packages/rnv-build-engine/dist/src/resolvers/resolveBaseUrl.js +31 -0
  33. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildFileExtension.js +12 -0
  34. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildFileName.js +36 -0
  35. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildVersion.js +42 -0
  36. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildVersionOffset.js +34 -0
  37. package/packages/rnv-build-engine/dist/src/resolvers/resolveDeployLocations.js +79 -0
  38. package/packages/rnv-build-engine/dist/src/resolvers/resolveGenericRnvConfig.js +47 -0
  39. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvDeployConfig.js +13 -0
  40. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvDeployUrl.js +11 -0
  41. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvRemoteBuildDirRelativePath.js +24 -0
  42. package/packages/rnv-build-engine/dist/src/resolvers/resolveSupportedPlatforms.js +5 -0
  43. package/packages/rnv-build-engine/dist/src/resolvers/resolveUsedFlavours.js +23 -0
  44. package/packages/rnv-build-engine/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +14 -0
  45. package/packages/rnv-build-engine/dist/src/scripts/buildAllWithScheme.js +25 -0
  46. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/formatTableDataSpaces.js +30 -0
  47. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/generateDeployUrls.js +90 -0
  48. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/index.js +4 -0
  49. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/makeTableDataByScheme.js +63 -0
  50. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/afterVersionBump.js +18 -0
  51. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/beforeVersionBump.js +12 -0
  52. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/checkReleaseNotes.js +16 -0
  53. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushRelease.js +31 -0
  54. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushReleaseCandidate.js +6 -0
  55. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushReleaseNotes.js +37 -0
  56. package/packages/rnv-build-engine/dist/src/scripts/release/deleteSourceMaps.js +11 -0
  57. package/packages/rnv-build-engine/dist/src/scripts/release/deployToAppCenter.js +83 -0
  58. package/packages/rnv-build-engine/dist/src/scripts/release/githubRelease.js +128 -0
  59. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/generateWebhoook.js +66 -0
  60. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/makePayload.js +92 -0
  61. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/notifySlack.js +44 -0
  62. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/slackBlockKitBuilder.js +39 -0
  63. package/packages/rnv-build-engine/dist/src/scripts/release/sentryRelease.js +85 -0
  64. package/packages/rnv-build-engine/dist/src/scripts/release/urlsMarkdown.js +62 -0
  65. package/packages/rnv-build-engine/dist/src/scripts/releaseAllWithScheme.js +79 -0
  66. package/packages/rnv-build-engine/dist/src/scripts/utils/cmdUtils.js +12 -0
  67. package/packages/rnv-build-engine/dist/src/scripts/utils/fsUtils.js +33 -0
  68. package/packages/rnv-build-engine/dist/src/scripts/utils/generateIcons.js +29 -0
  69. package/packages/rnv-build-engine/dist/src/scripts/utils/gitUtils.js +78 -0
  70. package/packages/rnv-build-engine/dist/src/scripts/utils/index.js +27 -0
  71. package/packages/rnv-build-engine/dist/src/scripts/utils/stringUtils.js +5 -0
  72. package/packages/rnv-build-engine/dist/src/sdks/index.js +42 -0
  73. package/packages/rnv-build-engine/dist/src/sdks/sdk-tizen/index.js +13 -0
  74. package/packages/rnv-build-engine/dist/src/sdks/sdk-tizen/sdkTizen.js +240 -0
  75. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/index.js +14 -0
  76. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/registerSdkPath.js +14 -0
  77. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/index.js +5 -0
  78. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/sdkInstaller.js +39 -0
  79. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/clean.js +11 -0
  80. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/download.js +74 -0
  81. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/index.js +11 -0
  82. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/install.js +23 -0
  83. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/unzip.js +12 -0
  84. package/packages/rnv-build-engine/dist/src/sdks/sdk-webos/index.js +13 -0
  85. package/packages/rnv-build-engine/dist/src/sdks/sdk-webos/sdkWebos.js +135 -0
  86. package/packages/rnv-build-engine/dist/src/sdks/sdk-webpack/index.js +13 -0
  87. package/packages/rnv-build-engine/dist/src/sdks/sdk-webpack/sdkWebpack.js +32 -0
  88. package/packages/rnv-build-engine/dist/src/sdks/sdk-xbox/index.js +13 -0
  89. package/packages/rnv-build-engine/dist/src/sdks/sdk-xbox/sdkXbox.js +222 -0
  90. package/packages/rnv-build-engine/dist/src/tasks/deploy/aswS3/aws.js +22 -0
  91. package/packages/rnv-build-engine/dist/src/tasks/deploy/aswS3/deployS3.js +71 -0
  92. package/packages/rnv-build-engine/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +94 -0
  93. package/packages/rnv-build-engine/dist/src/tasks/engineTasks.js +22 -0
  94. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.build.js +99 -0
  95. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.configure.js +45 -0
  96. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.configureSoft.js +31 -0
  97. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.deploy.js +40 -0
  98. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.hooks.run.js +71 -0
  99. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.package.js +19 -0
  100. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.project.configure.js +116 -0
  101. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.start.js +72 -0
  102. package/packages/rnv-build-engine/dist/src/types/c.js +2 -0
  103. package/packages/rnv-build-engine/dist/src/types/constants.js +2 -0
  104. package/packages/rnv-build-engine/dist/src/types/index.js +2 -0
  105. package/packages/rnv-build-engine/dist/src/utils/forEachSupportedPlatformFlavour.js +24 -0
  106. package/packages/rnv-build-engine/dist/src/utils/generatePngSpriteMap.js +78 -0
  107. package/packages/rnv-build-engine/dist/src/utils/generateSvgSpriteMap.js +113 -0
  108. package/packages/rnv-build-engine/dist/src/utils/mergeSvgAndPngIcons.js +61 -0
  109. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/index.js +5 -0
  110. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.js +31 -0
  111. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.js +40 -0
  112. package/packages/rnv-build-engine/dist/src/utils/zipBuildsByPlatforms.js +61 -0
  113. package/packages/rnv-build-engine/dist/templates/platforms/_shared/template.js +110 -0
  114. package/packages/rnv-build-engine/dist/templates/platforms/_shared/utils/extendSass.js +29 -0
  115. package/packages/rnv-build-engine/dist/templates/platforms/_shared/utils/joinStrings.js +5 -0
  116. package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpack.base.js +239 -0
  117. package/packages/rnv-build-engine/dist/templates/platforms/entone/webpack.config.dev.js +63 -0
  118. package/packages/rnv-build-engine/dist/templates/platforms/entone/webpack.config.prod.js +58 -0
  119. package/packages/rnv-build-engine/dist/templates/platforms/hbbtv/webpack.config.dev.js +80 -0
  120. package/packages/rnv-build-engine/dist/templates/platforms/hbbtv/webpack.config.prod.js +75 -0
  121. package/packages/rnv-build-engine/dist/templates/platforms/kreatv/webpack.config.dev.js +63 -0
  122. package/packages/rnv-build-engine/dist/templates/platforms/kreatv/webpack.config.prod.js +58 -0
  123. package/packages/rnv-build-engine/dist/templates/platforms/saphi/webpack.config.dev.js +63 -0
  124. package/packages/rnv-build-engine/dist/templates/platforms/saphi/webpack.config.prod.js +58 -0
  125. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/.project +24 -0
  126. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/.tproject +12 -0
  127. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/config.xml +17 -0
  128. package/packages/rnv-build-engine/dist/templates/platforms/tizen/webpack.config.dev.js +64 -0
  129. package/packages/rnv-build-engine/dist/templates/platforms/tizen/webpack.config.prod.js +58 -0
  130. package/packages/rnv-build-engine/dist/templates/platforms/webos/project/.project +35 -0
  131. package/packages/rnv-build-engine/dist/templates/platforms/webos/project/appinfo.json +19 -0
  132. package/packages/rnv-build-engine/dist/templates/platforms/webos/webpack.config.dev.js +65 -0
  133. package/packages/rnv-build-engine/dist/templates/platforms/webos/webpack.config.prod.js +58 -0
  134. package/packages/rnv-build-engine/dist/templates/platforms/webtv/webpack.config.dev.js +63 -0
  135. package/packages/rnv-build-engine/dist/templates/platforms/webtv/webpack.config.prod.js +58 -0
  136. package/packages/rnv-build-engine/dist/templates/platforms/xbox/webpack.config.dev.js +64 -0
  137. package/packages/rnv-build-engine/dist/templates/platforms/xbox/webpack.config.prod.js +58 -0
  138. package/packages/sdk-installer/dist/index.js +5 -0
  139. package/packages/sdk-installer/dist/sdkInstaller.js +38 -0
  140. package/packages/sdk-installer/dist/services/clean.js +11 -0
  141. package/packages/sdk-installer/dist/services/download.js +55 -0
  142. package/packages/sdk-installer/dist/services/index.js +11 -0
  143. package/packages/sdk-installer/dist/services/install.js +24 -0
  144. package/packages/sdk-installer/dist/services/unzip.js +12 -0
  145. package/packages/sdk-installer/dist/types/index.d.ts +1 -0
  146. package/packages/sdk-installer/dist/types/sdkInstaller.d.ts +7 -0
  147. package/packages/sdk-installer/dist/types/services/clean.d.ts +2 -0
  148. package/packages/sdk-installer/dist/types/services/download.d.ts +2 -0
  149. package/packages/sdk-installer/dist/types/services/index.d.ts +4 -0
  150. package/packages/sdk-installer/dist/types/services/install.d.ts +2 -0
  151. package/packages/sdk-installer/dist/types/services/unzip.d.ts +2 -0
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.zipBuildsByPlatforms = void 0;
23
+ const fs_1 = require("fs");
24
+ const path_1 = require("path");
25
+ const child_process_1 = require("child_process");
26
+ const glob = __importStar(require("glob"));
27
+ const resolvers_1 = require("../resolvers");
28
+ const zipDir = (dir, outputFile) => (0, child_process_1.execSync)(`zip ${outputFile} -0 -j ${dir}/*`);
29
+ const getPlatformBuildsPaths = (c, platformName) => {
30
+ const { platformBuildsDir } = c.buildConfig.paths;
31
+ const outputGlob = `${platformBuildsDir}/**/output`;
32
+ const platformBuildsGlob = `${outputGlob}/*.${(0, resolvers_1.resolveBuildFileExtension)(platformName)}`;
33
+ try {
34
+ const buildsPathsCandidates = glob.sync(platformBuildsGlob) || [];
35
+ return buildsPathsCandidates.filter((path) => path.includes(platformName));
36
+ }
37
+ catch (e) {
38
+ return [];
39
+ }
40
+ };
41
+ const processPlatform = (c, platformName) => {
42
+ const platformBuildsPaths = getPlatformBuildsPaths(c, platformName);
43
+ if (platformBuildsPaths && platformBuildsPaths.length === 0)
44
+ return;
45
+ const outputZipFilePath = (0, resolvers_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
46
+ const tempPlatformDir = `${(0, path_1.dirname)(outputZipFilePath)}/${platformName}`;
47
+ (0, fs_1.mkdirSync)(tempPlatformDir, { recursive: true });
48
+ const copyBuildFileIntoTempPlatformDir = (buildFilePath) => {
49
+ const buildFileName = (0, path_1.basename)(buildFilePath);
50
+ const dest = `${tempPlatformDir}/${buildFileName}`;
51
+ (0, fs_1.copyFileSync)(buildFilePath, dest);
52
+ };
53
+ platformBuildsPaths.forEach(copyBuildFileIntoTempPlatformDir);
54
+ zipDir(tempPlatformDir, outputZipFilePath);
55
+ (0, fs_1.rmdirSync)(tempPlatformDir, { recursive: true });
56
+ };
57
+ const zipBuildsByPlatforms = (c) => {
58
+ (0, resolvers_1.resolveSupportedPlatforms)(c)
59
+ .forEach((platformName) => processPlatform(c, platformName));
60
+ };
61
+ exports.zipBuildsByPlatforms = zipBuildsByPlatforms;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const joinStrings_1 = require("./utils/joinStrings");
4
+ const DEFAULT_CONFIG = {
5
+ isDebug: false,
6
+ docType: '<!DOCTYPE html>',
7
+ htmlTag: '<html lang="en">',
8
+ contentType: '',
9
+ metaTags: '<meta name="viewport" content="width=1280" />',
10
+ };
11
+ const removeBlankLines = (string) => string.replace(/^\s*\n/gm, '');
12
+ const constructCustomHtmlTemplate = (options) => {
13
+ const { htmlTemplate: custom = {} } = options;
14
+ const { docType, htmlTag, metaTags, headPrepend, headAppend, bodyPrepend, bodyAppend, } = options;
15
+ options.docType = custom.docType || docType || '';
16
+ options.htmlTag = custom.htmlTag || htmlTag || '';
17
+ options.metaTags = (0, joinStrings_1.joinStrings)(metaTags, custom.metaTags, '<meta charset="utf-8" />');
18
+ options.headPrepend = (0, joinStrings_1.joinStrings)(headPrepend, custom.headPrepend);
19
+ options.headAppend = (0, joinStrings_1.joinStrings)(headAppend, custom.headAppend);
20
+ options.bodyPrepend = (0, joinStrings_1.joinStrings)(bodyPrepend, custom.bodyPrepend);
21
+ options.bodyAppend = (0, joinStrings_1.joinStrings)(bodyAppend, custom.bodyAppend);
22
+ return options;
23
+ };
24
+ const htmlTemp = (options) => {
25
+ const config = constructCustomHtmlTemplate({
26
+ ...DEFAULT_CONFIG, ...options,
27
+ });
28
+ const { docType, title, metaTags, htmlTag, contentType, isDebug, debug, debugIp, platform, headPrepend, headAppend, bodyPrepend, bodyAppend, splashUrl, resolution, } = config;
29
+ const titleTag = `<title>${title}</title>`;
30
+ const noScript = '<noscript>You need to enable JavaScript to run this app.</noscript>';
31
+ let remoteDebugScript = '';
32
+ if (debug === 'true' && debugIp) {
33
+ remoteDebugScript = `<script src="http://${debugIp}:8080/target/target-script-min.js#anonymous"></script>`;
34
+ }
35
+ let xboxScripts = '';
36
+ if (platform === 'xbox') {
37
+ xboxScripts = '<script src="/lib/TVHelpers/directionalnavigation-1.0.0.0.js"></script>';
38
+ }
39
+ let tizenScripts = '';
40
+ if (platform === 'tizen') {
41
+ tizenScripts = '<script type="text/javascript" src="$WEBAPIS/webapis/webapis.js"></script>';
42
+ }
43
+ let webtvScripts = '';
44
+ if (platform === 'webtv') {
45
+ webtvScripts = `
46
+ <script>
47
+ var faviconUpdate = function() {
48
+ var faviconElement = document.getElementById('favicon');
49
+ faviconElement.href = "content/favicon.ico?v" + new Date().getTime();
50
+ window.removeEventListener('load', this);
51
+ console.log('TU1');
52
+ }
53
+ window.addEventListener('load', faviconUpdate);
54
+ </script>
55
+ <link id="favicon" rel="icon" type="image/x-icon" href="content/favicon.ico">`;
56
+ }
57
+ let splashScript = '';
58
+ let splashDiv = '';
59
+ if (splashUrl) {
60
+ const { width, height } = resolution;
61
+ splashScript = `<script>
62
+ var splashRemove = function() {
63
+ var splashElement = document.getElementById('splash');
64
+ if (splashElement) splashElement.parentNode.removeChild(splashElement);
65
+ window.removeEventListener('load', this);
66
+ console.log('TU2');
67
+ }
68
+ window.addEventListener('load', splashRemove);
69
+ </script>`;
70
+ splashDiv = `<div id="splash" style="
71
+ position: absolute; left: 0; top: 0; width: ${width}; height: ${height};
72
+ background-image: url("${splashUrl}");
73
+ "></div>`;
74
+ }
75
+ const errScript = `
76
+ <script>window.onerror = function(err) {
77
+ var errDiv = document.getElementById('err');
78
+ errDiv.innerHTML += err;
79
+ }
80
+ </script>`;
81
+ const errDiv = '<div id="err" style="color: red; position: absolute; top: 0; left: 0; z-index: 0;"> </div>';
82
+ const rootDiv = '<div id="root" class="root"></div>';
83
+ return removeBlankLines(`
84
+ ${docType}
85
+ ${htmlTag}
86
+ <head>
87
+ ${headPrepend}
88
+ ${contentType}
89
+ ${metaTags}
90
+ ${titleTag}
91
+ ${remoteDebugScript}
92
+ ${isDebug ? errScript : ''}
93
+ ${tizenScripts}
94
+ ${xboxScripts}
95
+ ${webtvScripts}
96
+ ${splashScript}
97
+ ${headAppend}
98
+ </head>
99
+ <body>
100
+ ${bodyPrepend}
101
+ ${noScript}
102
+ ${isDebug ? errDiv : ''}
103
+ ${splashDiv}
104
+ ${rootDiv}
105
+ ${bodyAppend}
106
+ </body>
107
+ </html>
108
+ `);
109
+ };
110
+ exports.default = htmlTemp;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.extendSass = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const joinStrings_1 = require("./joinStrings");
10
+ const includeRtlFiles = (resourcePath) => {
11
+ const fileName = path_1.default.basename(resourcePath);
12
+ const filePath = path_1.default.dirname(resourcePath);
13
+ if (fileName.indexOf('.styles.') === -1)
14
+ return '';
15
+ const rtlFile = path_1.default.resolve(filePath, 'rtl.scss');
16
+ if (fs_1.default.existsSync(rtlFile)) {
17
+ return '@import \'./rtl\';';
18
+ }
19
+ return '';
20
+ };
21
+ const extendSass = ({ shouldIncludeRtlFiles, sassPrependEachFile, sassAppendEachFile, }) => (content, loaderContext) => {
22
+ const { resourcePath } = loaderContext;
23
+ const sassPrepend = sassPrependEachFile ? (0, joinStrings_1.joinStrings)(sassPrependEachFile) : '';
24
+ const sassAppend = sassAppendEachFile ? (0, joinStrings_1.joinStrings)(sassAppendEachFile) : '';
25
+ const rtlImport = shouldIncludeRtlFiles ? includeRtlFiles(resourcePath) : '';
26
+ const result = [sassPrepend, content, rtlImport, sassAppend];
27
+ return result.filter((part) => part).join('\n');
28
+ };
29
+ exports.extendSass = extendSass;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.joinStrings = void 0;
4
+ const joinStrings = (...parts) => (parts.map((part) => (Array.isArray(part) ? part.join('\n') : part ?? '')).filter((part) => part).join('\n'));
5
+ exports.joinStrings = joinStrings;
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateConfig = void 0;
7
+ const html_webpack_harddisk_plugin_1 = __importDefault(require("html-webpack-harddisk-plugin"));
8
+ const webpack_1 = __importDefault(require("webpack"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const mini_css_extract_plugin_1 = __importDefault(require("mini-css-extract-plugin"));
12
+ const filemanager_webpack_plugin_1 = __importDefault(require("filemanager-webpack-plugin"));
13
+ const html_webpack_plugin_1 = __importDefault(require("html-webpack-plugin"));
14
+ const fork_ts_checker_webpack_plugin_1 = __importDefault(require("fork-ts-checker-webpack-plugin"));
15
+ const smartapps_bigscreen_rnv_build_engine_1 = require("@24i/smartapps-bigscreen-rnv-build-engine");
16
+ const extendSass_1 = require("./utils/extendSass");
17
+ const getAnimationType = (isAnimated = false) => (isAnimated ? 'animated' : 'basic');
18
+ const generateFlavourJSExtensions = ({ resolution: { height }, animated, extensions }) => {
19
+ const flavouredExtensions = [];
20
+ const animationType = getAnimationType(animated);
21
+ extensions.forEach((extension) => {
22
+ flavouredExtensions.push(`.${animationType}.${height}.${extension}`, `.${height}.${extension}`, `.${animationType}.${extension}`, `.${extension}`);
23
+ });
24
+ return flavouredExtensions;
25
+ };
26
+ const generateFlavourSCSSExtensions = ({ resolution: { height }, animated }) => {
27
+ const animationType = getAnimationType(animated);
28
+ return [
29
+ `.${animationType}.${height}.scss`,
30
+ `.${animationType}.${height}.css`,
31
+ `.${height}.scss`,
32
+ `.${height}.css`,
33
+ `.${animationType}.scss`,
34
+ `.${animationType}.css`,
35
+ '.scss',
36
+ '.css',
37
+ ];
38
+ };
39
+ const getResolutionString = ({ resolution: { height, width } }) => (height && width ? `${width}x${height}` : '');
40
+ const getAppContentPath = (baseUrl, isBuildHosted = false) => {
41
+ const isBuildHostedAndHasBaseUrl = isBuildHosted && !!baseUrl;
42
+ const relativePath = path_1.default.join(isBuildHostedAndHasBaseUrl ? 'public/' : '', 'content');
43
+ return isBuildHostedAndHasBaseUrl
44
+ ? `${baseUrl}/${relativePath}`
45
+ : `./${relativePath}`;
46
+ };
47
+ const makeRules = (config, projectDir, isDevServer) => ({
48
+ babel: {
49
+ test: /\.[tj]sx?$/,
50
+ exclude: (config.typescript?.exclude ?? []).map((exclusion) => (path_1.default.resolve(projectDir, exclusion))),
51
+ use: [
52
+ {
53
+ loader: 'ts-loader',
54
+ options: {
55
+ transpileOnly: true,
56
+ allowTsInNodeModules: true,
57
+ },
58
+ },
59
+ ],
60
+ },
61
+ css: {
62
+ test: /\.s?css$/,
63
+ use: [
64
+ isDevServer ? 'css-hot-loader' : null,
65
+ mini_css_extract_plugin_1.default.loader,
66
+ 'css-loader',
67
+ {
68
+ loader: 'sass-loader',
69
+ options: {
70
+ sourceMap: false,
71
+ additionalData: (0, extendSass_1.extendSass)(config),
72
+ },
73
+ },
74
+ ].filter(Boolean),
75
+ },
76
+ image: {
77
+ test: /\.(gif|jpe?g|png|svg)$/,
78
+ use: {
79
+ loader: 'file-loader',
80
+ options: {
81
+ outputPath: 'content/assets/',
82
+ publicPath: '../assets/',
83
+ },
84
+ },
85
+ },
86
+ fonts: {
87
+ test: /\.(woff|woff2|eot|ttf|otf)(\?[\s\S]+)?$/,
88
+ use: {
89
+ loader: 'file-loader',
90
+ options: {
91
+ outputPath: 'content/fonts',
92
+ publicPath: '../fonts/',
93
+ },
94
+ },
95
+ },
96
+ sourcemap: {
97
+ test: /\.[tj]sx$/,
98
+ use: ['source-map-loader'],
99
+ enforce: 'pre',
100
+ exclude: [/node_modules/, /build/, /__tests__/],
101
+ },
102
+ });
103
+ const makeAliases = (config, projectDir) => {
104
+ const aliases = {
105
+ '@24i/smartapps-bigscreen-device': config.environment === 'production'
106
+ ? '@24i/smartapps-bigscreen-device'
107
+ : '@24i/smartapps-bigscreen-device/resolver',
108
+ };
109
+ const { moduleAliases } = config;
110
+ if (moduleAliases) {
111
+ Object.keys(moduleAliases).forEach((key) => {
112
+ if (typeof moduleAliases[key] === 'string') {
113
+ aliases[key] = moduleAliases[key];
114
+ }
115
+ else if (moduleAliases[key].projectPath) {
116
+ aliases[key] = path_1.default.resolve(projectDir, moduleAliases[key].projectPath);
117
+ }
118
+ });
119
+ }
120
+ return aliases;
121
+ };
122
+ function generateConfig(config) {
123
+ const projectDir = path_1.default.resolve(config.currentDir, '../../');
124
+ const platformBuildsDir = path_1.default.resolve(config.currentDir, '../');
125
+ const appBuildDir = path_1.default.resolve(config.currentDir);
126
+ const appBuildEngineProjectDir = path_1.default.resolve(config.currentDir, config.buildFolder);
127
+ const appBuildEngineProjectPublicDir = path_1.default.resolve(appBuildEngineProjectDir, 'public');
128
+ const platformSchemeAppIdObj = {
129
+ platform: config.platform,
130
+ scheme: config.scheme,
131
+ flavour: config.appConfigId,
132
+ };
133
+ const { buildConfig } = smartapps_bigscreen_rnv_build_engine_1.Resolvers.getBaseConfig();
134
+ const buildVersion = smartapps_bigscreen_rnv_build_engine_1.Resolvers.resolveBuildVersion(platformSchemeAppIdObj);
135
+ const baseUrl = smartapps_bigscreen_rnv_build_engine_1.Resolvers.resolveBaseUrl(platformSchemeAppIdObj);
136
+ const devServerHost = config.devServerHost || '0.0.0.0';
137
+ const isDevServer = appBuildEngineProjectDir.endsWith('/server');
138
+ const { PLATFORM } = process.env;
139
+ const isBuildHosted = config.isBuildHosted || false;
140
+ const appContentPath = getAppContentPath(baseUrl, isBuildHosted);
141
+ const copiedDirWithPublicContentPath = path_1.default.join(appBuildDir, `../${path_1.default.parse(appBuildDir).name}-public`);
142
+ const splashImage = config.initialSplashImage || undefined;
143
+ const splashPath = path_1.default.resolve(appBuildEngineProjectDir, `content/${splashImage}`);
144
+ const splashUrl = fs_1.default.existsSync(splashPath) ? `${appContentPath}/${splashImage}` : '';
145
+ const plugins = {
146
+ forkTsChecker: new fork_ts_checker_webpack_plugin_1.default({
147
+ typescript: {
148
+ enabled: true,
149
+ memoryLimit: 4096,
150
+ },
151
+ }),
152
+ webpack: new webpack_1.default.DefinePlugin({
153
+ WEBPACK_INJECTION_APP_NAME: JSON.stringify(buildConfig.common.appName || ''),
154
+ WEBPACK_INJECTION_APP_CONFIG_ID: JSON.stringify(config.appConfigId || ''),
155
+ WEBPACK_INJECTION_APP_CREATED: JSON.stringify(new Date().toISOString()),
156
+ WEBPACK_INJECTION_APP_SCHEME: JSON.stringify(config.scheme || ''),
157
+ WEBPACK_INJECTION_APP_RESOLUTION: JSON.stringify(getResolutionString(config)),
158
+ WEBPACK_INJECTION_APP_VERSION: JSON.stringify(buildVersion || ''),
159
+ WEBPACK_INJECTION_APP_ENVIRONMENT: JSON.stringify(config.environment || ''),
160
+ WEBPACK_INJECTION_APP_PLATFORM: JSON.stringify(PLATFORM || ''),
161
+ WEBPACK_INJECTION_APP_CONTENT_PATH: JSON.stringify(appContentPath),
162
+ }),
163
+ html: new html_webpack_plugin_1.default({
164
+ alwaysWriteToDisk: true,
165
+ filename: path_1.default.resolve(appBuildEngineProjectPublicDir, './index.html'),
166
+ template: path_1.default.resolve(appBuildDir, './template.js'),
167
+ minify: false,
168
+ templateParameters: {
169
+ ...config,
170
+ debug: process.env.DEBUG,
171
+ debugIp: process.env.DEBUG_IP,
172
+ platform: PLATFORM,
173
+ environment: config.environment,
174
+ baseUrl,
175
+ splashUrl,
176
+ },
177
+ xhtml: PLATFORM === smartapps_bigscreen_rnv_build_engine_1.Constants.Platforms.HBBTV,
178
+ }),
179
+ harddisk: new html_webpack_harddisk_plugin_1.default(),
180
+ css: new mini_css_extract_plugin_1.default({
181
+ filename: 'content/css/[name].css',
182
+ }),
183
+ fileManager: new filemanager_webpack_plugin_1.default({
184
+ events: {
185
+ onStart: [
186
+ {
187
+ delete: [
188
+ copiedDirWithPublicContentPath,
189
+ ],
190
+ },
191
+ ],
192
+ onEnd: [
193
+ isDevServer ? {
194
+ move: [
195
+ {
196
+ source: path_1.default.join(appBuildDir, 'project', 'public', 'content'),
197
+ destination: path_1.default.join(appBuildEngineProjectDir, 'content'),
198
+ },
199
+ ],
200
+ } : null,
201
+ isBuildHosted ? {
202
+ copy: [
203
+ {
204
+ source: appBuildEngineProjectPublicDir,
205
+ destination: path_1.default.join(copiedDirWithPublicContentPath, 'project', 'public'),
206
+ },
207
+ ],
208
+ delete: [
209
+ path_1.default.join(appBuildEngineProjectPublicDir, 'content'),
210
+ ],
211
+ } : null,
212
+ ].filter(Boolean),
213
+ },
214
+ }),
215
+ };
216
+ return {
217
+ Rules: makeRules(config, projectDir, isDevServer),
218
+ extensions: [
219
+ ...generateFlavourJSExtensions(config),
220
+ ...generateFlavourSCSSExtensions(config),
221
+ ],
222
+ aliases: makeAliases(config, projectDir),
223
+ entry: {
224
+ polyfill: path_1.default.resolve(projectDir, 'polyfill/index.ts'),
225
+ bundle: path_1.default.resolve(projectDir, `${config.entryFile}.js`),
226
+ },
227
+ devServer: { host: devServerHost },
228
+ output: {
229
+ filename: 'content/js/[name].js',
230
+ publicPath: isBuildHosted ? `${baseUrl}/public` : '',
231
+ path: appBuildEngineProjectPublicDir,
232
+ },
233
+ Plugins: plugins,
234
+ projectDir,
235
+ platformBuildsDir,
236
+ appBuildDir,
237
+ };
238
+ }
239
+ exports.generateConfig = generateConfig;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const webpack_base_1 = require("./webpack.base");
23
+ const Extend = __importStar(require("./webpack.extend"));
24
+ const config = {
25
+ currentDir: __dirname,
26
+ metaTags: `<meta name="viewport" content="width=${Extend.resolution.width}, user-scalable=no" />`,
27
+ environment: 'development',
28
+ devServerHost: '0.0.0.0',
29
+ ...Extend,
30
+ };
31
+ const C = (0, webpack_base_1.generateConfig)(config);
32
+ const plugins = [
33
+ C.Plugins.forkTsChecker,
34
+ C.Plugins.webpack,
35
+ C.Plugins.html,
36
+ C.Plugins.harddisk,
37
+ C.Plugins.css,
38
+ C.Plugins.fileManager,
39
+ ];
40
+ exports.default = {
41
+ entry: C.entry,
42
+ devServer: C.devServer,
43
+ output: C.output,
44
+ optimization: {
45
+ minimize: false,
46
+ },
47
+ module: {
48
+ rules: [
49
+ C.Rules.babel,
50
+ C.Rules.css,
51
+ C.Rules.image,
52
+ C.Rules.fonts,
53
+ C.Rules.sourcemap,
54
+ ].filter(Boolean),
55
+ },
56
+ plugins: plugins.filter(Boolean),
57
+ resolve: {
58
+ symlinks: true,
59
+ extensions: C.extensions,
60
+ alias: C.aliases,
61
+ },
62
+ ...config.extend || {},
63
+ };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const webpack_base_1 = require("./webpack.base");
23
+ const Extend = __importStar(require("./webpack.extend"));
24
+ const config = {
25
+ currentDir: __dirname,
26
+ metaTags: `<meta name="viewport" content="width=${Extend.resolution.width}, user-scalable=no" />`,
27
+ environment: 'production',
28
+ ...Extend,
29
+ };
30
+ const C = (0, webpack_base_1.generateConfig)(config);
31
+ const plugins = [
32
+ C.Plugins.forkTsChecker,
33
+ C.Plugins.webpack,
34
+ C.Plugins.html,
35
+ C.Plugins.harddisk,
36
+ C.Plugins.css,
37
+ C.Plugins.fileManager,
38
+ ];
39
+ exports.default = {
40
+ entry: C.entry,
41
+ output: C.output,
42
+ module: {
43
+ rules: [
44
+ C.Rules.babel,
45
+ C.Rules.css,
46
+ C.Rules.image,
47
+ C.Rules.fonts,
48
+ C.Rules.sourcemap,
49
+ ].filter(Boolean),
50
+ },
51
+ plugins: plugins.filter(Boolean),
52
+ resolve: {
53
+ symlinks: true,
54
+ extensions: C.extensions,
55
+ alias: C.aliases,
56
+ },
57
+ ...config.extend || {},
58
+ };
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const webpack_base_1 = require("./webpack.base");
23
+ const Extend = __importStar(require("./webpack.extend"));
24
+ const config = {
25
+ currentDir: __dirname,
26
+ docType: `
27
+ <?xml version="1.0" encoding="UTF-8" ?>
28
+ <!DOCTYPE html PUBLIC "-//HbbTV//1.1.1//EN" "http://www.hbbtv.org/dtd/HbbTV-1.1.1.dtd">
29
+ `,
30
+ htmlTag: '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">',
31
+ metaTags: `
32
+ <meta http-equiv="content-type" content="application/vnd.hbbtv.xhtml+xml" charset="UTF-8" />
33
+ <meta http-equiv="cache-control" content="max-age=0" />
34
+ <meta http-equiv="cache-control" content="no-cache" />
35
+ <meta http-equiv="expires" content="0" />
36
+ <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
37
+ <meta http-equiv="pragma" content="no-cache" />
38
+ `,
39
+ environment: 'development',
40
+ devServerHost: '0.0.0.0',
41
+ bodyPrepend: [
42
+ '<object id="oipfCap" type="application/oipfCapabilities" style="position: absolute; left: 0; top: 0; width: 0; height: 0;"></object>',
43
+ '<object id="oipfAppMan" type="application/oipfApplicationManager" style="position: absolute; left: 0; top: 0; width: 0; height: 0;"></object>',
44
+ '<object id="oipfConfig" type="application/oipfConfiguration" style="position: absolute; left: 0; top: 0; width: 0; height: 0;"></object>',
45
+ ],
46
+ ...Extend,
47
+ };
48
+ const C = (0, webpack_base_1.generateConfig)(config);
49
+ const plugins = [
50
+ C.Plugins.forkTsChecker,
51
+ C.Plugins.webpack,
52
+ C.Plugins.html,
53
+ C.Plugins.harddisk,
54
+ C.Plugins.css,
55
+ C.Plugins.fileManager,
56
+ ];
57
+ exports.default = {
58
+ entry: C.entry,
59
+ devServer: C.devServer,
60
+ output: C.output,
61
+ optimization: {
62
+ minimize: false,
63
+ },
64
+ module: {
65
+ rules: [
66
+ C.Rules.babel,
67
+ C.Rules.css,
68
+ C.Rules.image,
69
+ C.Rules.fonts,
70
+ C.Rules.sourcemap,
71
+ ].filter(Boolean),
72
+ },
73
+ plugins: plugins.filter(Boolean),
74
+ resolve: {
75
+ symlinks: true,
76
+ extensions: C.extensions,
77
+ alias: C.aliases,
78
+ },
79
+ ...config.extend || {},
80
+ };