@24i/smartapps-bigscreen-rnv-build-engine 0.17.6-alpha.19 → 0.17.6-alpha.2

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 (75) hide show
  1. package/README.md +12 -16
  2. package/dist/src/constants/delopyLivePlatforms.js +1 -2
  3. package/dist/src/constants/platforms.js +0 -2
  4. package/dist/src/engine.js +0 -10
  5. package/dist/src/resolvers/index.js +1 -8
  6. package/dist/src/resolvers/resolveBaseUrl.js +25 -16
  7. package/dist/src/resolvers/resolveDeployLocations.js +6 -3
  8. package/dist/src/resolvers/resolveGenericRnvConfig.js +2 -9
  9. package/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +1 -25
  10. package/dist/src/scripts/deployLiveAll.js +2 -2
  11. package/dist/src/scripts/deployLivePlatform.js +5 -9
  12. package/dist/src/scripts/release/{appCenter/deployToAppCenter.js → deployToAppCenter.js} +17 -6
  13. package/dist/src/scripts/release/notifySlack/notifySlack.js +8 -11
  14. package/dist/src/scripts/release/sentryRelease.js +5 -11
  15. package/dist/src/scripts/release/urlsMarkdown.js +0 -2
  16. package/dist/src/scripts/releaseAllWithScheme.js +4 -4
  17. package/dist/src/sdks/index.js +0 -1
  18. package/dist/src/sdks/sdk-androidtv/sdkAndroidtv.js +13 -35
  19. package/dist/src/sdks/sdk-tizen/sdkTizen.js +0 -2
  20. package/dist/src/sdks/sdk-webos/sdkWebos.js +0 -2
  21. package/dist/src/sdks/sdk-webpack/sdkWebpack.js +1 -10
  22. package/dist/src/tasks/deploy/aswS3/deployS3.js +11 -9
  23. package/dist/src/tasks/deploy/aswS3/distToLiveS3.js +5 -4
  24. package/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +1 -7
  25. package/dist/src/tasks/task.rnv.build.js +7 -26
  26. package/dist/src/tasks/task.rnv.configure.js +0 -2
  27. package/dist/src/tasks/task.rnv.deploy.js +1 -12
  28. package/dist/src/tasks/task.rnv.platform.configure.js +1 -33
  29. package/dist/src/tasks/task.rnv.start.js +0 -2
  30. package/dist/src/utils/forEachSupportedPlatformFlavour.js +7 -24
  31. package/dist/src/utils/zipBuildsByPlatforms.js +5 -8
  32. package/dist/templates/platforms/_shared/webpack.base.js +2 -2
  33. package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +2 -2
  34. package/dist/templates/platforms/androidtv/project/app/build.gradle +21 -17
  35. package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +0 -15
  36. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +2 -1
  37. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +58 -4
  38. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +0 -15
  39. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +1 -2
  40. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +3 -0
  41. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +2 -2
  42. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +0 -0
  43. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryExoPlayerCustomized.kt +1 -7
  44. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SourceDrmOverridden.kt +0 -42
  45. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +211 -0
  46. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +0 -3
  47. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/ContentModelParser.kt +16 -0
  48. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/DeviceInfoParser.kt +22 -0
  49. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +3 -0
  50. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +2 -2
  51. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +83 -24
  52. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +111 -48
  53. package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +71 -23
  54. package/dist/templates/platforms/androidtv/project/common/build.gradle +2 -2
  55. package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +2 -2
  56. package/package.json +1 -3
  57. package/renative.engine.json +0 -2
  58. package/dist/src/constants/buildProductionPackages.js +0 -10
  59. package/dist/src/resolvers/resolveProductionZipFileRelativePath.js +0 -35
  60. package/dist/src/resolvers/resolveS3BucketAppPath.js +0 -15
  61. package/dist/src/resolvers/resolveSupportedFlavoursForPlatform.js +0 -8
  62. package/dist/src/resolvers/shared/constructFullUrl.js +0 -25
  63. package/dist/src/scripts/buildAllWithSchemes.js +0 -88
  64. package/dist/src/scripts/buildProductionPackagesAll.js +0 -75
  65. package/dist/src/scripts/release/appCenter/appCenter.js +0 -17
  66. package/dist/src/scripts/release/appCenter/deployProductionPackagesToAppCenter.js +0 -127
  67. package/dist/src/scripts/releaseAllWithSchemes.js +0 -158
  68. package/dist/src/scripts/releaseProductionPackagesAll.js +0 -13
  69. package/dist/src/utils/copyTheoPlayerLibs.js +0 -48
  70. package/dist/src/utils/getSafeSchemeString.js +0 -7
  71. package/dist/src/utils/zipStagingProdBuildsByPlatforms.js +0 -114
  72. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryConfigured.kt +0 -33
  73. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryTheoPlayerCustomized.kt +0 -14
  74. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryVersion.kt +0 -27
  75. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/SourceParser.kt +0 -89
@@ -1,114 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.zipStagingProdBuildsByPlatforms = void 0;
27
- const child_process_1 = require("child_process");
28
- const fs_1 = require("fs");
29
- const fse = __importStar(require("fs-extra"));
30
- const path = __importStar(require("path"));
31
- const glob = __importStar(require("glob"));
32
- const rnv_1 = require("rnv");
33
- const index_1 = require("../resolvers/index");
34
- const getSafeSchemeString_1 = require("./getSafeSchemeString");
35
- const { getConfigProp } = rnv_1.Common;
36
- const zipDir = (srcDir, outputFile) => (0, child_process_1.execSync)(`zip ${outputFile} -0 -r *`, { cwd: srcDir });
37
- const getPlatformBuildsPaths = (c, platformName, scheme) => {
38
- const { platformBuildsDir } = c.buildConfig.paths;
39
- const schemeDirName = (0, getSafeSchemeString_1.getSafeSchemeString)(scheme);
40
- const schemesBuildsPath = path.join(platformBuildsDir, schemeDirName);
41
- const outputGlob = `${schemesBuildsPath}/**/output`;
42
- const platformBuildsGlob = `${outputGlob}/*.${(0, index_1.resolveBuildFileExtension)(platformName)}`;
43
- try {
44
- const buildsPathsCandidates = glob.sync(platformBuildsGlob) || [];
45
- const platformBuildsPaths = buildsPathsCandidates.filter((path) => path.includes(platformName));
46
- return platformBuildsPaths;
47
- }
48
- catch (e) {
49
- return [];
50
- }
51
- };
52
- const getPublicDirPath = (c, platform, flavour, scheme) => {
53
- const schemeDirName = (0, getSafeSchemeString_1.getSafeSchemeString)(scheme);
54
- const sourcePath = path.join(c.paths.project.builds.dir, schemeDirName, `${flavour}_${platform}`);
55
- c.runtime.scheme = scheme;
56
- const baseC = (0, index_1.getBaseConfig)({ scheme });
57
- const { isBuildHosted } = getConfigProp(baseC, platform, 'webpackConfig', {});
58
- const sourceDirPath = isBuildHosted ? `${sourcePath}-public` : sourcePath;
59
- const contentDirPath = path.join(sourceDirPath, 'project', 'public');
60
- return contentDirPath;
61
- };
62
- const copyProdContentIntoTempPlatformFlavourDir = (c, platform, flavour, prodScheme, destPlatformFlavourPath) => {
63
- const srcPublicDirPath = getPublicDirPath(c, platform, flavour, prodScheme);
64
- const platformFlavourPublicDirPath = path.join(destPlatformFlavourPath, 'public');
65
- fse.copySync(srcPublicDirPath, platformFlavourPublicDirPath);
66
- };
67
- const copyBuildFileIntoTempPlatformFlavourDir = (buildFilePath, tempPlatformFlavourBuildsDir) => {
68
- const buildFileName = path.basename(buildFilePath);
69
- const dest = path.join(tempPlatformFlavourBuildsDir, buildFileName);
70
- (0, fs_1.copyFileSync)(buildFilePath, dest);
71
- };
72
- const processPlatform = (c, platformName, schemes) => {
73
- const [stagingScheme, prodScheme] = schemes;
74
- if (!prodScheme) {
75
- throw new Error('Missing production scheme.');
76
- }
77
- const outputZipFilePath = (0, index_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
78
- const stagingBuildsPaths = stagingScheme ? getPlatformBuildsPaths(c, platformName, stagingScheme) : [];
79
- const prodBuildsPaths = prodScheme ? getPlatformBuildsPaths(c, platformName, prodScheme) : [];
80
- const flavourBuilds = [];
81
- const supportedFlavours = (0, index_1.resolveSupportedFlavoursForPlatform)(c, platformName);
82
- supportedFlavours.forEach((flavour) => {
83
- const flavourStagingBuildsPaths = stagingBuildsPaths.filter((path) => path.includes(flavour));
84
- const flavourProdBuildsPaths = prodBuildsPaths.filter((path) => path.includes(flavour));
85
- flavourBuilds.push({
86
- flavour,
87
- stagingBuildsPaths: flavourStagingBuildsPaths,
88
- prodBuildsPaths: flavourProdBuildsPaths,
89
- });
90
- });
91
- const tempPlatformDir = `${path.dirname(outputZipFilePath)}/${platformName}`;
92
- flavourBuilds.forEach((flavourBuild) => {
93
- const { flavour, stagingBuildsPaths, prodBuildsPaths } = flavourBuild;
94
- const tempPFDir = path.join(tempPlatformDir, flavour);
95
- const tempPFBuildsDir = path.join(tempPFDir, 'builds');
96
- (0, fs_1.mkdirSync)(tempPFDir, { recursive: true });
97
- (0, fs_1.mkdirSync)(tempPFBuildsDir, { recursive: true });
98
- [...stagingBuildsPaths, ...prodBuildsPaths].forEach((buildFilePath) => {
99
- copyBuildFileIntoTempPlatformFlavourDir(buildFilePath, tempPFBuildsDir);
100
- });
101
- copyProdContentIntoTempPlatformFlavourDir(c, platformName, flavour, prodScheme, tempPFDir);
102
- });
103
- zipDir(tempPlatformDir, path.resolve(outputZipFilePath));
104
- (0, fs_1.rmdirSync)(tempPlatformDir, { recursive: true });
105
- };
106
- const zipStagingProdBuildsByPlatforms = (c, schemes) => {
107
- const [, prodScheme] = schemes;
108
- if (!prodScheme) {
109
- throw new Error('Missing production scheme.');
110
- }
111
- (0, index_1.resolveSupportedPlatforms)(c)
112
- .forEach((platformName) => processPlatform(c, platformName, schemes));
113
- };
114
- exports.zipStagingProdBuildsByPlatforms = zipStagingProdBuildsByPlatforms;
@@ -1,33 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import com.twentyfouri.player.base.*
4
- import com.twentyfouri.player.theoplayer.PlayerFactoryTheoPlayer
5
- import com.twentyfouri.tvbridge.configuration.BridgeConfig
6
-
7
- object PlayerFactoryConfigured {
8
-
9
- fun buildFactory(bridgeConfig: BridgeConfig): PlayerFactoryBase {
10
- var factory: PlayerFactoryBase? = null
11
- if (bridgeConfig.theoLicense.isNotEmpty()) {
12
- factory = factory ?: buildTheoFactory(bridgeConfig)
13
- }
14
- factory = factory ?: buildExoFactory(bridgeConfig)
15
- return factory ?: throw Exception("Cannot create player factory")
16
- }
17
-
18
- private fun buildExoFactory(bridgeConfig: BridgeConfig): PlayerFactoryBase? {
19
- try {
20
- return PlayerFactoryExoPlayerCustomized(bridgeConfig)
21
- } catch (e: NoClassDefFoundError) {
22
- return null
23
- }
24
- }
25
-
26
- private fun buildTheoFactory(bridgeConfig: BridgeConfig): PlayerFactoryBase? {
27
- try {
28
- return PlayerFactoryTheoPlayerCustomized(bridgeConfig)
29
- } catch (e: NoClassDefFoundError) {
30
- return null
31
- }
32
- }
33
- }
@@ -1,14 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import com.theoplayer.android.api.THEOplayerGlobal
4
- import com.twentyfouri.player.theoplayer.PlayerFactoryTheoPlayer
5
- import com.twentyfouri.tvbridge.configuration.BridgeConfig
6
-
7
- class PlayerFactoryTheoPlayerCustomized(
8
- private val config: BridgeConfig
9
- ) : PlayerFactoryTheoPlayer(config.theoLicense), PlayerFactoryVersion {
10
-
11
- override val engineName: String = "THEOPlayer"
12
-
13
- override val engineVersion: String = THEOplayerGlobal.getVersion()
14
- }
@@ -1,27 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import com.twentyfouri.player.base.PlayerFactoryBase
4
-
5
- interface PlayerFactoryVersion {
6
- val engineName: String
7
- val engineVersion: String
8
-
9
- private data class Fixed(
10
- override val engineName: String,
11
- override val engineVersion: String
12
- ): PlayerFactoryVersion
13
-
14
- companion object {
15
- fun from(factory: PlayerFactoryBase): PlayerFactoryVersion {
16
- (factory as? PlayerFactoryVersion)?.also { return it }
17
-
18
- // fallback to just engine name
19
- val engineName = factory.javaClass.simpleName
20
- .replace("PlayerFactory", "")
21
- .replace("Customized", "")
22
- .lowercase()
23
- val engineVersion = "0.0.0"
24
- return Fixed(engineName, engineVersion)
25
- }
26
- }
27
- }
@@ -1,89 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.parser
2
-
3
- import com.twentyfouri.player.base.*
4
- import com.twentyfouri.tvbridge.global.utils.SourceDrmOverridden
5
- import org.json.JSONException
6
- import org.json.JSONObject
7
- import java.net.URI
8
- import java.util.UUID
9
-
10
- object SourceParser {
11
- private val sourceSerializer = DefaultSourceSerializer()
12
-
13
- fun stringToJson(jsonString: String?): Source? {
14
- if (jsonString.isNullOrEmpty()) return null
15
- if (jsonString.startsWith("http://") || jsonString.startsWith("https://")) {
16
- return Source {
17
- url = URI(jsonString)
18
- }
19
- }
20
-
21
- try {
22
- val jsonSource = JSONObject(jsonString)
23
- if (jsonSource.has("streamUrl")) {
24
- return parseContentModel(jsonSource)
25
- }
26
- return sourceSerializer.toSource(jsonSource)
27
-
28
- } catch (e: JSONException) {
29
- return null
30
- }
31
- }
32
-
33
- private fun parseContentModel(jsonSource: JSONObject): Source? {
34
- return Source {
35
- val streamUrl = jsonSource.getString("streamUrl", null)
36
- if (streamUrl.isNullOrEmpty()) return null
37
- url = URI(streamUrl)
38
-
39
- mimeType = jsonSource.getString("streamType", null)
40
- ?.let { MimeType.parse(it) }
41
-
42
- jsonSource.getObject("drmConfig") { parseDrmModel(it) }
43
- ?.also { drm.add(it) }
44
- }
45
- }
46
-
47
- private fun parseDrmModel(jsonDrm: JSONObject): SourceDrm? {
48
- val drmSchemeUuid = jsonDrm.getString("drmSchemeUuid", null)
49
- val drmLicenseUri = jsonDrm.getString("drmLicenseUrl", null)
50
- ?.let { URI(it) }
51
- val drmCustomData = jsonDrm.getObject("drmCustomData") { parseSourceAuthorization (it) }
52
- val overrideDrmCallback = jsonDrm.getBoolean("overrideDrmCallback")
53
-
54
- return if (overrideDrmCallback) {
55
- SourceDrmOverridden {
56
- packageName = when (drmSchemeUuid) {
57
- "widevine", WIDEVINE_UUID -> DrmWidevine.packageName
58
- "playready", PLAYREADY_UUID -> DrmPlayready.packageName
59
- else -> null
60
- }
61
- licenseServer = drmLicenseUri
62
- authorization = drmCustomData
63
- }
64
- } else {
65
- when (drmSchemeUuid) {
66
- "widevine", WIDEVINE_UUID -> SourceDrmWidevine {
67
- licenseServer = drmLicenseUri
68
- authorization = drmCustomData
69
- }
70
- "playready", PLAYREADY_UUID -> SourceDrmPlayready {
71
- licenseServer = drmLicenseUri
72
- authorization = drmCustomData
73
- }
74
- else -> null
75
- }
76
- }
77
- }
78
-
79
- private fun parseSourceAuthorization(jsonMap: JSONObject): SourceAuthorization? {
80
- return SourceAuthorizationHeaders {
81
- jsonMap.keys().forEach { key ->
82
- headers[key] = jsonMap.getString(key)
83
- }
84
- }
85
- }
86
-
87
- val WIDEVINE_UUID = "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
88
- val PLAYREADY_UUID = "9a04f079-9840-4286-ab92-e65be0885f95"
89
- }