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

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 +3 -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/{resolveProductionZipFileRelativePath.js → resolveProductionZipFilePath.js} +5 -4
  10. package/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +1 -25
  11. package/dist/src/scripts/{buildProductionPackagesAll.js → buildProductionAll.js} +15 -26
  12. package/dist/src/scripts/deployLivePlatform.js +1 -1
  13. package/dist/src/scripts/release/appCenter/deployProductionToAppCenter.js +98 -0
  14. package/dist/src/scripts/release/appCenter/deployToAppCenter.js +3 -3
  15. package/dist/src/scripts/release/notifySlack/notifySlack.js +8 -11
  16. package/dist/src/scripts/release/sentryRelease.js +5 -11
  17. package/dist/src/scripts/release/urlsMarkdown.js +0 -2
  18. package/dist/src/scripts/releaseAllWithScheme.js +3 -3
  19. package/dist/src/scripts/releaseProductionAll.js +13 -0
  20. package/dist/src/sdks/index.js +0 -1
  21. package/dist/src/sdks/sdk-androidtv/sdkAndroidtv.js +13 -35
  22. package/dist/src/sdks/sdk-tizen/sdkTizen.js +0 -2
  23. package/dist/src/sdks/sdk-webos/sdkWebos.js +0 -2
  24. package/dist/src/sdks/sdk-webpack/sdkWebpack.js +1 -10
  25. package/dist/src/tasks/deploy/aswS3/deployS3.js +11 -9
  26. package/dist/src/tasks/deploy/aswS3/distToLiveS3.js +5 -4
  27. package/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +1 -7
  28. package/dist/src/tasks/task.rnv.build.js +7 -26
  29. package/dist/src/tasks/task.rnv.configure.js +0 -2
  30. package/dist/src/tasks/task.rnv.deploy.js +1 -12
  31. package/dist/src/tasks/task.rnv.platform.configure.js +1 -33
  32. package/dist/src/tasks/task.rnv.start.js +0 -2
  33. package/dist/src/utils/forEachSupportedPlatformFlavour.js +5 -13
  34. package/dist/src/utils/zipBuildsByPlatforms.js +5 -8
  35. package/dist/templates/platforms/_shared/webpack.base.js +2 -2
  36. package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +2 -2
  37. package/dist/templates/platforms/androidtv/project/app/build.gradle +21 -17
  38. package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +0 -15
  39. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +2 -1
  40. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +58 -4
  41. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +0 -15
  42. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +1 -2
  43. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +3 -0
  44. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +2 -2
  45. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +0 -0
  46. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryExoPlayerCustomized.kt +1 -7
  47. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SourceDrmOverridden.kt +0 -42
  48. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +211 -0
  49. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +0 -3
  50. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/ContentModelParser.kt +16 -0
  51. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/DeviceInfoParser.kt +22 -0
  52. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +3 -0
  53. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +2 -2
  54. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +83 -24
  55. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +111 -48
  56. package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +71 -23
  57. package/dist/templates/platforms/androidtv/project/common/build.gradle +2 -2
  58. package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +2 -2
  59. package/package.json +1 -3
  60. package/renative.engine.json +0 -2
  61. package/dist/src/constants/buildProductionPackages.js +0 -10
  62. package/dist/src/resolvers/resolveS3BucketAppPath.js +0 -15
  63. package/dist/src/resolvers/resolveSupportedFlavoursForPlatform.js +0 -8
  64. package/dist/src/resolvers/shared/constructFullUrl.js +0 -25
  65. package/dist/src/scripts/buildAllWithSchemes.js +0 -88
  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
package/README.md CHANGED
@@ -38,20 +38,18 @@ it
38
38
  ---
39
39
  ## Supported platforms
40
40
 
41
- | *Platform* | *Vendor* | *id* | *Build file extension* | *Registered file extensions* | *Note* |
42
- | :------------ | :-------: | :---------: | :--------------------: | :----------------------------------: | :------------------------------: |
43
- | **AndroidTV** | N/A | `androidtv` | `.zip` | `*.android.tv.{js,jsx,ts,tsx,json}` | |
44
- | **Entone** | Amino | `entone` | `.zip` | `*.entone.{js,jsx,ts,tsx,json}` | set-top boxes |
45
- | **FireTV** | N/A | `firetv` | `.zip` | `*.firetv.{js,jsx,ts,tsx,json}` | |
46
- | **HbbTV** | N/A | `hbbtv` | `.zip` | `*.hbbtv.tv.{js,jsx,ts,tsx,json}` | |
47
- | **KreaTV** | Arris | `kreatv` | `.zip` | `*.kreatv.{js,jsx,ts,tsx,json}` | set-top boxes |
48
- | **Saphi** | Philips | `saphi` | `.zip` | `*.saphi.tv.{js,jsx,ts,tsx,json}` | |
49
- | **Tizen** | Samsung | `tizen` | `.wgt` | `*.tizen.tv.{js,jsx,ts,tsx,json}` | |
50
- | **VIDAA** | Hisense | `vidaa` | `.zip` | `*.vidaa.tv.{js,jsx,ts,tsx,json}` | |
51
- | **SmartCast** | VIZIO | `smartcast` | `.zip` | `*.smartcast.tv.{js,jsx,ts,tsx,json}`| |
52
- | **webOS** | LG | `webos` | `.ipk` | `*.webos.tv.{js,jsx,ts,tsx,json}` | |
53
- | **WebTV** | N/A | `webtv` | `.zip` | `*.webtv.{js,jsx,ts,tsx,json}` | for previewing builds in browser |
54
- | **Xbox** | Microsoft | `xbox` | `.zip` | `*.xbox.{js,jsx,ts,tsx,json}` | |
41
+ | *Platform* | *Vendor* | *id* | *Build file extension* | *Registered file extensions* | *Note* |
42
+ | :------------ | :------: | :---------: | :--------------------: | :---------------------------------: | :------------------------------: |
43
+ | **AndroidTV** | N/A | `androidtv` | `.zip` | `*.android.tv.{js,jsx,ts,tsx,json}` | |
44
+ | **Entone** | Amino | `entone` | `.zip` | `*.entone.{js,jsx,ts,tsx,json}` | set-top boxes |
45
+ | **HbbTV** | N/A | `hbbtv` | `.zip` | `*.hbbtv.tv.{js,jsx,ts,tsx,json}` | |
46
+ | **KreaTV** | Arris | `kreatv` | `.zip` | `*.kreatv.{js,jsx,ts,tsx,json}` | set-top boxes |
47
+ | **Saphi** | Philips | `saphi` | `.zip` | `*.saphi.tv.{js,jsx,ts,tsx,json}` | |
48
+ | **Tizen** | Samsung | `tizen` | `.wgt` | `*.tizen.tv.{js,jsx,ts,tsx,json}` | |
49
+ | **VIDAA** | Hisense | `vidaa` | `.zip` | `*.vidaa.tv.{js,jsx,ts,tsx,json}` | |
50
+ | **webOS** | LG | `webos` | `.ipk` | `*.webos.tv.{js,jsx,ts,tsx,json}` | |
51
+ | **WebTV** | N/A | `webtv` | `.zip` | `*.webtv.{js,jsx,ts,tsx,json}` | for previewing builds in browser |
52
+ | **Xbox** | Microsoft | `xbox` | `.zip` | `*.xbox.{js,jsx,ts,tsx,json}` | |
55
53
 
56
54
  When building the application with ReNative, if file with ***registered platform extension*** is found,
57
55
  it takes precedence and is bundled instead of file without registered file extension (such as `index.ts`).
@@ -62,13 +60,11 @@ drivers/
62
60
  index.ts // fallback when file with platform file extension for selected platform is not found
63
61
  index.android.tv.ts // if build for AndroidTV platform is selected, this file will be picked for the build
64
62
  index.entone.ts
65
- index.firetv.ts
66
63
  index.hbbtv.tv.ts
67
64
  index.kreatv.ts
68
65
  index.saphi.tv.ts
69
66
  index.tizen.tv.ts
70
67
  index.vidaa.tv.ts
71
- index.smartcast.tv.ts
72
68
  index.webos.tv.ts
73
69
  index.webtv.ts
74
70
  index.xbox.ts
@@ -7,8 +7,7 @@ const UNSUPPORTED_PLATFORMS = [
7
7
  ];
8
8
  exports.UNSUPPORTED_PLATFORMS = UNSUPPORTED_PLATFORMS;
9
9
  const NO_CONTENT_FOLDER_PLATFORMS = [
10
- platforms_1.Platforms.ANDROIDTV,
11
- platforms_1.Platforms.FIRETV,
12
10
  platforms_1.Platforms.VIDAA,
11
+ platforms_1.Platforms.ANDROIDTV,
13
12
  ];
14
13
  exports.NO_CONTENT_FOLDER_PLATFORMS = NO_CONTENT_FOLDER_PLATFORMS;
@@ -4,13 +4,11 @@ exports.Platforms = void 0;
4
4
  const Platforms = {
5
5
  ANDROIDTV: 'androidtv',
6
6
  ENTONE: 'entone',
7
- FIRETV: 'firetv',
8
7
  HBBTV: 'hbbtv',
9
8
  KREATV: 'kreatv',
10
9
  SAPHI: 'saphi',
11
10
  TIZEN: 'tizen',
12
11
  VIDAA: 'vidaa',
13
- SMARTCAST: 'smartcast',
14
12
  WEBOS: 'webos',
15
13
  WEBTV: 'webtv',
16
14
  XBOX: 'xbox',
@@ -64,11 +64,6 @@ exports.default = {
64
64
  defaultPort: 8094,
65
65
  isWebHosted: true,
66
66
  },
67
- [constants_1.Platforms.FIRETV]: {
68
- extensions: generateEngineExtensions(['firetv']),
69
- defaultPort: 8102,
70
- isWebHosted: true,
71
- },
72
67
  [constants_1.Platforms.HBBTV]: {
73
68
  extensions: generateEngineExtensions(['hbbtv.tv']),
74
69
  defaultPort: 8095,
@@ -94,11 +89,6 @@ exports.default = {
94
89
  defaultPort: 8099,
95
90
  isWebHosted: true,
96
91
  },
97
- [constants_1.Platforms.SMARTCAST]: {
98
- extensions: generateEngineExtensions(['smartcast.tv']),
99
- defaultPort: 8101,
100
- isWebHosted: true,
101
- },
102
92
  [constants_1.Platforms.WEBOS]: {
103
93
  extensions: generateEngineExtensions(['webos.tv']),
104
94
  defaultPort: 8088,
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProductionZipFileRelativePath = exports.resolveZippedPlatformBuildsRelativeFilePath = exports.resolvePackageVersions = exports.resolveBuildFileExtension = exports.resolveUsedFlavours = exports.resolveSupportedFlavoursForPlatform = exports.resolveSupportedPlatforms = exports.getBaseConfig = exports.resolveBuildFileName = exports.resolveBuildFileBaseName = exports.resolveHbbtvDeployConfig = exports.resolveHbbtvDeployUrl = exports.resolveHbbtvRemoteBuildDirRelativePath = exports.resolveDeployLocations = exports.resolveBuildVersionOffset = exports.resolveBuildVersion = exports.resolveBuildEnvName = exports.resolveS3BucketAppPath = exports.resolveProductionPackagesBaseUrl = exports.resolveBaseUrl = void 0;
3
+ exports.getProductionZipFilePath = exports.resolveZippedPlatformBuildsRelativeFilePath = exports.resolvePackageVersions = exports.resolveBuildFileExtension = exports.resolveUsedFlavours = exports.resolveSupportedPlatforms = exports.getBaseConfig = exports.resolveBuildFileName = exports.resolveBuildFileBaseName = exports.resolveHbbtvDeployConfig = exports.resolveHbbtvDeployUrl = exports.resolveHbbtvRemoteBuildDirRelativePath = exports.resolveDeployLocations = exports.resolveBuildVersionOffset = exports.resolveBuildVersion = exports.resolveBuildEnvName = exports.resolveBaseUrl = void 0;
4
4
  var resolveBaseUrl_1 = require("./resolveBaseUrl");
5
5
  Object.defineProperty(exports, "resolveBaseUrl", { enumerable: true, get: function () { return resolveBaseUrl_1.resolveBaseUrl; } });
6
- Object.defineProperty(exports, "resolveProductionPackagesBaseUrl", { enumerable: true, get: function () { return resolveBaseUrl_1.resolveProductionPackagesBaseUrl; } });
7
- var resolveS3BucketAppPath_1 = require("./resolveS3BucketAppPath");
8
- Object.defineProperty(exports, "resolveS3BucketAppPath", { enumerable: true, get: function () { return resolveS3BucketAppPath_1.resolveS3BucketAppPath; } });
9
6
  var resolveBuildEnvName_1 = require("./resolveBuildEnvName");
10
7
  Object.defineProperty(exports, "resolveBuildEnvName", { enumerable: true, get: function () { return resolveBuildEnvName_1.resolveBuildEnvName; } });
11
8
  var resolveBuildVersion_1 = require("./resolveBuildVersion");
@@ -28,8 +25,6 @@ var resolveGenericRnvConfig_1 = require("./resolveGenericRnvConfig");
28
25
  Object.defineProperty(exports, "getBaseConfig", { enumerable: true, get: function () { return resolveGenericRnvConfig_1.getBaseConfig; } });
29
26
  var resolveSupportedPlatforms_1 = require("./resolveSupportedPlatforms");
30
27
  Object.defineProperty(exports, "resolveSupportedPlatforms", { enumerable: true, get: function () { return resolveSupportedPlatforms_1.resolveSupportedPlatforms; } });
31
- var resolveSupportedFlavoursForPlatform_1 = require("./resolveSupportedFlavoursForPlatform");
32
- Object.defineProperty(exports, "resolveSupportedFlavoursForPlatform", { enumerable: true, get: function () { return resolveSupportedFlavoursForPlatform_1.resolveSupportedFlavoursForPlatform; } });
33
28
  var resolveUsedFlavours_1 = require("./resolveUsedFlavours");
34
29
  Object.defineProperty(exports, "resolveUsedFlavours", { enumerable: true, get: function () { return resolveUsedFlavours_1.resolveUsedFlavours; } });
35
30
  var resolveBuildFileExtension_1 = require("./resolveBuildFileExtension");
@@ -38,5 +33,5 @@ var resolvePackageVersions_1 = require("./resolvePackageVersions");
38
33
  Object.defineProperty(exports, "resolvePackageVersions", { enumerable: true, get: function () { return resolvePackageVersions_1.resolvePackageVersions; } });
39
34
  var resolveZippedPlatformBuildsRelativeFilePath_1 = require("./resolveZippedPlatformBuildsRelativeFilePath");
40
35
  Object.defineProperty(exports, "resolveZippedPlatformBuildsRelativeFilePath", { enumerable: true, get: function () { return resolveZippedPlatformBuildsRelativeFilePath_1.resolveZippedPlatformBuildsRelativeFilePath; } });
41
- var resolveProductionZipFileRelativePath_1 = require("./resolveProductionZipFileRelativePath");
42
- Object.defineProperty(exports, "getProductionZipFileRelativePath", { enumerable: true, get: function () { return resolveProductionZipFileRelativePath_1.getProductionZipFileRelativePath; } });
36
+ var resolveProductionZipFilePath_1 = require("./resolveProductionZipFilePath");
37
+ Object.defineProperty(exports, "getProductionZipFilePath", { enumerable: true, get: function () { return resolveProductionZipFilePath_1.getProductionZipFilePath; } });
@@ -1,27 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveProductionPackagesBaseUrl = exports.resolveBaseUrl = void 0;
3
+ exports.resolveBaseUrl = void 0;
4
4
  const resolveGenericRnvConfig_1 = require("./resolveGenericRnvConfig");
5
- const constructFullUrl_1 = require("./shared/constructFullUrl");
5
+ const resolveBuildEnvName_1 = require("./resolveBuildEnvName");
6
+ const constants_1 = require("../constants");
6
7
  const resolveBaseUrl = ({ platform, scheme, flavour }) => {
7
8
  const c = (0, resolveGenericRnvConfig_1.getBaseConfig)();
8
9
  c.platform = platform;
9
10
  c.runtime.scheme = scheme;
10
11
  c.runtime.appId = flavour;
11
- const hostedBaseUrl = c.buildConfig?.common?.hostedUrl?.baseUrl;
12
- if (!hostedBaseUrl)
12
+ const { packageVersion, deploy } = c.buildConfig?.common;
13
+ const bucketName = deploy?.aws3?.bucketName || '';
14
+ if (!packageVersion || !bucketName) {
13
15
  return '';
14
- const fullBaseUrl = `${hostedBaseUrl}/builds/${platform}/${flavour}`;
15
- return (0, constructFullUrl_1.constructFullUrl)({ baseUrl: fullBaseUrl, scheme, c });
16
- };
17
- exports.resolveBaseUrl = resolveBaseUrl;
18
- const resolveProductionPackagesBaseUrl = (c) => {
19
- const { hostedUrl } = c.buildConfig.common.deploy.productionPackages || {};
20
- const baseUrl = hostedUrl?.baseUrl;
21
- const subpath = hostedUrl?.subpath ?? '';
22
- if (!baseUrl) {
23
- throw new Error('The resolveProductionPackagesBaseUrl failed because baseUrl is missing.');
24
16
  }
25
- return `${baseUrl}${subpath}`;
17
+ const bucketUrl = `http://${bucketName}.s3.amazonaws.com`;
18
+ const appFolderUrl = `${bucketUrl}/builds/${platform}/${flavour}`;
19
+ const envName = (0, resolveBuildEnvName_1.resolveBuildEnvName)(c.runtime.scheme);
20
+ switch (scheme) {
21
+ case constants_1.BuildSchemes.DEV_LATEST:
22
+ return `${appFolderUrl}/latest/dev`;
23
+ case constants_1.BuildSchemes.RC_STAGING_LATEST:
24
+ case constants_1.BuildSchemes.RC_PROD_LATEST:
25
+ return `${appFolderUrl}/latest/rc/${envName}`;
26
+ case constants_1.BuildSchemes.RELEASE_STAGING_LATEST:
27
+ case constants_1.BuildSchemes.RELEASE_PROD_LATEST:
28
+ return `${appFolderUrl}/latest/release/${envName}`;
29
+ case constants_1.BuildSchemes.RELEASE_STAGING_DIST:
30
+ case constants_1.BuildSchemes.RELEASE_PROD_DIST:
31
+ return `${appFolderUrl}/dist/v${packageVersion}/${envName}`;
32
+ default:
33
+ return '';
34
+ }
26
35
  };
27
- exports.resolveProductionPackagesBaseUrl = resolveProductionPackagesBaseUrl;
36
+ exports.resolveBaseUrl = resolveBaseUrl;
@@ -5,9 +5,8 @@ const resolveBuildVersion_1 = require("./resolveBuildVersion");
5
5
  const resolveBaseUrl_1 = require("./resolveBaseUrl");
6
6
  const resolveHbbtvDeployUrl_1 = require("./resolveHbbtvDeployUrl");
7
7
  const resolveBuildFileName_1 = require("./resolveBuildFileName");
8
- const resolveSupportedPlatforms_1 = require("./resolveSupportedPlatforms");
9
- const resolveSupportedFlavoursForPlatform_1 = require("./resolveSupportedFlavoursForPlatform");
10
8
  const constants_1 = require("../constants");
9
+ const resolveSupportedPlatforms_1 = require("./resolveSupportedPlatforms");
11
10
  const getBuildVersion = (c) => {
12
11
  const { platform, runtime } = c;
13
12
  const { scheme, appId } = runtime;
@@ -17,6 +16,10 @@ const getBuildVersion = (c) => {
17
16
  flavour: appId,
18
17
  });
19
18
  };
19
+ const getSupportedFlavoursForPlatform = (c, platformName) => {
20
+ const { supportedFlavours = [] } = c.buildConfig.platforms[platformName]?.deploy || {};
21
+ return supportedFlavours;
22
+ };
20
23
  const makeOutputObject = (buildVersion) => ({
21
24
  versions: {
22
25
  [buildVersion]: {
@@ -63,7 +66,7 @@ const resolveDeployLocations = (c) => {
63
66
  }
64
67
  return outputFlavourData;
65
68
  };
66
- const outputPlatformData = (0, resolveSupportedFlavoursForPlatform_1.resolveSupportedFlavoursForPlatform)(c, platformName)
69
+ const outputPlatformData = getSupportedFlavoursForPlatform(c, platformName)
67
70
  .map(processPlatformFlavour);
68
71
  outputPlatforms[platformName] = Object.assign({}, ...outputPlatformData);
69
72
  if (!isRequiredPlatformSet) {
@@ -37,15 +37,8 @@ const mergeFileJsonIntoObject = (filePath, targetObject) => {
37
37
  const fileContentAsJSON = JSON.parse(fileContentAsString);
38
38
  (0, assign_deep_1.default)(targetObject, fileContentAsJSON);
39
39
  };
40
- const getBaseConfig = (programOptions) => {
41
- const { appConfigID, scheme } = programOptions || {};
42
- const c = rnv_1.ConfigManager.createRnvConfig({ ci: true, ...programOptions }, process);
43
- if (scheme) {
44
- c.runtime.scheme = scheme;
45
- }
46
- if (appConfigID) {
47
- c.runtime.appId = appConfigID;
48
- }
40
+ const getBaseConfig = () => {
41
+ const c = rnv_1.ConfigManager.createRnvConfig({ ci: true }, process);
49
42
  c.buildConfig = {};
50
43
  const packageJsonfileContent = fs.readFileSync('package.json').toString();
51
44
  c.files.project.package = JSON.parse(packageJsonfileContent);
@@ -23,13 +23,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getProductionZipFileRelativePath = void 0;
26
+ exports.getProductionZipFilePath = void 0;
27
27
  const path = __importStar(require("path"));
28
- const getProductionZipFileRelativePath = (c) => {
28
+ const getProductionZipFilePath = (c) => {
29
29
  const { appNameInFileName } = c.buildConfig.common;
30
+ const buildVersion = c.buildConfig.common.packageVersion;
30
31
  const { platformBuildsDir } = c.buildConfig.paths;
31
32
  const platformBuildsDirPath = path.join(platformBuildsDir);
32
- const zipFileName = `${appNameInFileName}.production_packages.zip`;
33
+ const zipFileName = `${appNameInFileName}.production_packages_v${buildVersion}.zip`;
33
34
  return path.join(platformBuildsDirPath, zipFileName);
34
35
  };
35
- exports.getProductionZipFileRelativePath = getProductionZipFileRelativePath;
36
+ exports.getProductionZipFilePath = getProductionZipFilePath;
@@ -1,37 +1,13 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.resolveZippedPlatformBuildsRelativeFilePath = void 0;
27
- const path = __importStar(require("path"));
28
4
  const resolveZippedPlatformBuildsRelativeFilePath = (c, platformName) => {
29
5
  const { platformBuildsDir } = c.buildConfig.paths;
30
6
  const { appNameInFileName } = c.buildConfig.common;
31
7
  const buildVersion = c.buildConfig.common.packageVersion;
32
8
  const zippedFilesParentDir = 'zipped_by_platform';
33
9
  const fileExtension = 'zip';
34
- const relativePathToDir = path.join(platformBuildsDir, zippedFilesParentDir);
10
+ const relativePathToDir = `${platformBuildsDir}/${zippedFilesParentDir}`;
35
11
  const zipFileName = `${appNameInFileName}_${platformName}_${buildVersion}.${fileExtension}`;
36
12
  return `${relativePathToDir}/${zipFileName}`;
37
13
  };
@@ -26,50 +26,39 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const child_process_1 = require("child_process");
27
27
  const fs = __importStar(require("fs"));
28
28
  const path = __importStar(require("path"));
29
- const fse = __importStar(require("fs-extra"));
30
29
  const forEachSupportedPlatformFlavour_1 = require("../utils/forEachSupportedPlatformFlavour");
31
- const constants_1 = require("../constants");
32
- const buildProductionPackages_1 = require("../constants/buildProductionPackages");
33
30
  const resolvers_1 = require("../resolvers");
34
- const getZippedDirRelativePath = (c) => {
31
+ const getZippedDirPath = (c) => {
35
32
  const { platformBuildsDir } = c.buildConfig.paths;
36
33
  return path.join(platformBuildsDir, 'zipped_production_packages');
37
34
  };
38
- const buildProductionTask = (options, c) => {
35
+ const buildTask = (options, c) => {
39
36
  const { scheme, platform, flavour } = options;
37
+ const cmd = `npx rnv build -s ${scheme} -p ${platform} -c ${flavour} --ci`;
38
+ (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
40
39
  const { platformBuildsDir } = c.buildConfig.paths;
41
40
  const buildDirName = `${flavour}_${platform}`;
42
41
  const buildDirPath = path.join(platformBuildsDir, buildDirName);
43
42
  const buildOutputDirPath = path.join(buildDirPath, 'output');
43
+ const zippedDir = path.join(getZippedDirPath(c), platform);
44
+ fs.cpSync(buildOutputDirPath, zippedDir, { recursive: true, force: true });
44
45
  fs.rmSync(buildDirPath, { recursive: true, force: true });
45
- const cmd = `npx rnv build -s ${scheme} -p ${platform} -c ${flavour} --ci --productionPackagesHostedUrl`;
46
- (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
47
- const zippedDir = path.join(getZippedDirRelativePath(c), platform);
48
- fse.copySync(buildOutputDirPath, zippedDir);
49
46
  };
50
- const buildProductionPackagesAll = () => {
51
- console.log('buildProductionPackagesAll');
47
+ const buildProductionAll = () => {
52
48
  const schemes = process.argv.slice(2);
53
- if (!schemes.length) {
54
- throw new Error('Missing scheme parameter');
55
- }
56
- if (schemes[0] !== constants_1.BuildSchemes.RELEASE_PROD_DIST) {
57
- throw new Error(`Supported only "${constants_1.BuildSchemes.RELEASE_PROD_DIST}" scheme`);
58
- }
59
49
  const c = (0, resolvers_1.getBaseConfig)();
60
- c.runtime.scheme = schemes[0];
61
- const platforms = (0, resolvers_1.resolveSupportedPlatforms)(c);
62
- const skipPlatforms = platforms.filter((platform) => (!buildProductionPackages_1.SUPPORTED_PACKAGE_PLATFORMS.includes(platform)));
63
- (0, forEachSupportedPlatformFlavour_1.forEachSupportedPlatformFlavour)(c, (options) => buildProductionTask(options, c), { ignoredPlatforms: skipPlatforms });
64
- const zippedDirPath = path.resolve(getZippedDirRelativePath(c));
65
- const zipFilePath = path.resolve((0, resolvers_1.getProductionZipFileRelativePath)(c));
66
- fs.rmSync(zipFilePath, { force: true });
50
+ schemes.forEach((scheme, schemeIndex, schemes) => {
51
+ c.runtime.scheme = scheme;
52
+ (0, forEachSupportedPlatformFlavour_1.forEachSupportedPlatformFlavour)(c, (options) => buildTask(options, c), { schemes, schemeIndex });
53
+ });
54
+ const zippedDirPath = getZippedDirPath(c);
55
+ const zipFilePath = (0, resolvers_1.getProductionZipFilePath)(c);
67
56
  (0, child_process_1.execSync)(`zip -r ${zipFilePath} *`, { cwd: `${zippedDirPath}` });
68
57
  fs.rmSync(zippedDirPath, { recursive: true, force: true });
69
58
  return true;
70
59
  };
71
60
  const startTimestamp = Date.now();
72
- buildProductionPackagesAll();
61
+ buildProductionAll();
73
62
  const msPerSecond = 1000;
74
63
  const scriptTotalTimeInSeconds = Math.ceil((Date.now() - startTimestamp) / msPerSecond);
75
- console.log(`buildProductionPackagesAll: done in ${scriptTotalTimeInSeconds} second(s)!`);
64
+ console.log(`buildProductionAll: done in ${scriptTotalTimeInSeconds} second(s)!`);
@@ -21,7 +21,7 @@ const deployLivePlatform = () => {
21
21
  c.platform = platform;
22
22
  c.runtime.scheme = buildSchemes_1.BuildSchemes.RELEASE_PROD_DIST;
23
23
  const { scheme } = c.runtime;
24
- const supportedFlavours = (0, resolvers_1.resolveSupportedFlavoursForPlatform)(c, platform);
24
+ const { supportedFlavours = [] } = c.buildConfig.platforms[platform]?.deploy || {};
25
25
  const o = { scheme, platform };
26
26
  supportedFlavours.forEach((flavour, flavourIndex) => {
27
27
  console.log((0, forEachSupportedPlatformFlavour_1.getProgressMessage)({
@@ -0,0 +1,98 @@
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.deployProductionToAppCenter = void 0;
27
+ const child_process_1 = require("child_process");
28
+ const fs = __importStar(require("fs"));
29
+ const path = __importStar(require("path"));
30
+ const index_1 = require("../../../resolvers/index");
31
+ const appCenter_1 = require("./appCenter");
32
+ const newLine = '\r\n';
33
+ const getAppCenterConfig = (c) => {
34
+ try {
35
+ return c.buildConfig.common.deploy?.productionPackages?.appCenter || null;
36
+ }
37
+ catch (error) {
38
+ return null;
39
+ }
40
+ };
41
+ const getPlatformPackagesListFromZip = (zipFilePath) => {
42
+ const zipFileParsedPath = path.parse(zipFilePath);
43
+ const tmpOutputDir = path.join(zipFileParsedPath.dir, zipFileParsedPath.name);
44
+ fs.rmSync(tmpOutputDir, { force: true, recursive: true });
45
+ (0, child_process_1.execSync)(`unzip ${zipFilePath} -d ${tmpOutputDir}`);
46
+ const packagesList = [];
47
+ fs.readdirSync(tmpOutputDir).forEach((platformDirName) => {
48
+ const platform = {
49
+ platformName: platformDirName,
50
+ packageNames: fs.readdirSync(path.join(tmpOutputDir, platformDirName)),
51
+ };
52
+ packagesList.push(platform);
53
+ });
54
+ fs.rmSync(tmpOutputDir, { force: true, recursive: true });
55
+ return packagesList;
56
+ };
57
+ const getAppCenterToken = () => {
58
+ return process.env['APPCENTER_TOKEN_PRODUCTION_PACKAGES'] || '';
59
+ };
60
+ const deployProductionToAppCenter = (c) => {
61
+ const appCenterConfig = getAppCenterConfig(c);
62
+ if (!appCenterConfig)
63
+ return;
64
+ const { appName: centerAppName } = appCenterConfig;
65
+ const token = getAppCenterToken();
66
+ const zipPath = (0, index_1.getProductionZipFilePath)(c);
67
+ const { appName, packageVersion } = c.buildConfig.common;
68
+ if (!centerAppName || !token || !zipPath || !packageVersion)
69
+ return;
70
+ const tempReleaseNotesPath = `RELEASE_NOTES_APPCENTER_PRODUCTION_PACKAGES.md`;
71
+ if (fs.existsSync(tempReleaseNotesPath)) {
72
+ fs.unlinkSync(tempReleaseNotesPath);
73
+ }
74
+ const packagesList = getPlatformPackagesListFromZip(zipPath);
75
+ const notes = [
76
+ `# ${appName} Production Packages`,
77
+ '',
78
+ '## List of Production Packages',
79
+ ...packagesList.reduce((acc, { platformName, packageNames }) => ([
80
+ ...acc,
81
+ `- ${platformName}`,
82
+ ...packageNames.map((packageName) => ` - ${packageName}`),
83
+ ]), []),
84
+ '',
85
+ 'URL: <hosted_URL>'
86
+ ];
87
+ const packagesMarkdown = notes.join(newLine);
88
+ (0, child_process_1.execSync)(`echo "${packagesMarkdown}" >> ${tempReleaseNotesPath}`);
89
+ console.log(`Deploying Production packages to AppCenter.ms...`);
90
+ (0, appCenter_1.appCenterRelease)({
91
+ projectName: centerAppName,
92
+ buildVersion: packageVersion,
93
+ filePath: zipPath,
94
+ releaseNotesPath: tempReleaseNotesPath,
95
+ token,
96
+ });
97
+ };
98
+ exports.deployProductionToAppCenter = deployProductionToAppCenter;
@@ -27,7 +27,7 @@ exports.deployToAppCenter = void 0;
27
27
  const child_process_1 = require("child_process");
28
28
  const fs = __importStar(require("fs"));
29
29
  const rnv_1 = require("rnv");
30
- const resolvers_1 = require("../../../resolvers");
30
+ const index_1 = require("../../../resolvers/index");
31
31
  const urlsMarkdown_1 = require("../urlsMarkdown");
32
32
  const appCenter_1 = require("./appCenter");
33
33
  const getAppCenterConfigByPlatformName = (c, platformName) => {
@@ -49,7 +49,7 @@ const processPlatform = (c, platformName) => {
49
49
  return;
50
50
  const { appName } = appCenterConfig;
51
51
  const token = getAppCenterTokenByPlatform(platformName);
52
- const zipPath = (0, resolvers_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
52
+ const zipPath = (0, index_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
53
53
  const buildVersion = getConfigProp(c, platformName, 'packageVersion', '');
54
54
  const releaseNotesPath = getConfigProp(c, platformName, 'releaseNotes', {}).relativePath || '';
55
55
  if (!appName || !token || !releaseNotesPath || !zipPath || !buildVersion)
@@ -71,6 +71,6 @@ const processPlatform = (c, platformName) => {
71
71
  });
72
72
  };
73
73
  const deployToAppCenter = (c) => {
74
- (0, resolvers_1.resolveSupportedPlatforms)(c).forEach((platformName) => processPlatform(c, platformName));
74
+ (0, index_1.resolveSupportedPlatforms)(c).forEach((platformName) => processPlatform(c, platformName));
75
75
  };
76
76
  exports.deployToAppCenter = deployToAppCenter;
@@ -41,16 +41,13 @@ const getSlackPayload = (c) => {
41
41
  default: throw new Error('Notify Slack: unsupported or undefined release type! Did you pass it as an argument?');
42
42
  }
43
43
  };
44
- const notifySlack = (c, schemes) => {
45
- schemes.forEach((scheme) => {
46
- c.runtime.scheme = scheme;
47
- const contentType = '"Content-type: application/json"';
48
- const data = `--data '${JSON.stringify(getSlackPayload(c))}'`;
49
- const webHookUrl = c.buildConfig.common.deploy.slack?.webhookUrl || '';
50
- if (webHookUrl) {
51
- const cmd = `curl -X POST -H ${contentType} ${data} ${webHookUrl}`;
52
- (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
53
- }
54
- });
44
+ const notifySlack = (c) => {
45
+ const contentType = '"Content-type: application/json"';
46
+ const data = `--data '${JSON.stringify(getSlackPayload(c))}'`;
47
+ const webHookUrl = c.buildConfig.common.deploy.slack?.webhookUrl || '';
48
+ if (webHookUrl) {
49
+ const cmd = `curl -X POST -H ${contentType} ${data} ${webHookUrl}`;
50
+ (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
51
+ }
55
52
  };
56
53
  exports.notifySlack = notifySlack;
@@ -28,7 +28,6 @@ const child_process_1 = require("child_process");
28
28
  const fs = __importStar(require("fs"));
29
29
  const constants_1 = require("../../constants");
30
30
  const resolvers_1 = require("../../resolvers");
31
- const getSafeSchemeString_1 = require("../../utils/getSafeSchemeString");
32
31
  const UNSUPPORTED_PLATFORMS = [constants_1.Platforms.WEBTV];
33
32
  const executeSync = (cmd) => (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
34
33
  const createNewRelease = (version) => {
@@ -55,20 +54,15 @@ const finalizeRelease = (version) => {
55
54
  };
56
55
  const processPlatform = (c, platform, version) => {
57
56
  const processFlavour = (flavour) => {
58
- const { scheme } = c.runtime;
59
57
  const { platformBuildsDir } = c.buildConfig.paths;
60
- const schemeDirName = (0, getSafeSchemeString_1.getSafeSchemeString)(scheme);
61
- const envName = (0, resolvers_1.resolveBuildEnvName)(scheme);
62
- const mapsPath = `${platformBuildsDir}/${schemeDirName}/${flavour}_${platform}-public/project/public/content/js`;
63
- const urlPrefix = `builds/${platform}/${flavour}/dist/${version}/${envName}/public/content/js/`;
64
- if (!fs.existsSync(mapsPath)) {
65
- console.log(`Warning: non-existing mapsPath: ${mapsPath}`);
58
+ const mapsPath = `${platformBuildsDir}/${flavour}_${platform}-public/public/content/js`;
59
+ const urlPrefix = `builds/${platform}/${flavour}/dist/${version}/public/content/js/`;
60
+ if (!fs.existsSync(mapsPath))
66
61
  return;
67
- }
68
- console.log(`Uploading ${schemeDirName}/${flavour}_${platform} sourcemaps to Sentry...`);
62
+ console.log(`Uploading ${flavour}_${platform} sourcemaps to Sentry...`);
69
63
  uploadSourceMaps({ version, sourceMapsPath: mapsPath, urlPrefix });
70
64
  };
71
- const supportedFlavours = (0, resolvers_1.resolveSupportedFlavoursForPlatform)(c, platform);
65
+ const { supportedFlavours = [] } = c.buildConfig.platforms[platform]?.deploy || {};
72
66
  supportedFlavours.forEach(processFlavour);
73
67
  };
74
68
  const isSentryProjectConfigured = () => {
@@ -24,13 +24,11 @@ const beautifyPlatformName = (platformName) => {
24
24
  switch (platformName.toLowerCase()) {
25
25
  case constants_1.Platforms.ANDROIDTV: return 'AndroidTV';
26
26
  case constants_1.Platforms.ENTONE: return 'Entone';
27
- case constants_1.Platforms.FIRETV: return 'FireTV';
28
27
  case constants_1.Platforms.HBBTV: return 'HbbTV';
29
28
  case constants_1.Platforms.KREATV: return 'KreaTV';
30
29
  case constants_1.Platforms.SAPHI: return 'Saphi (Philips)';
31
30
  case constants_1.Platforms.TIZEN: return 'Tizen (Samsung)';
32
31
  case constants_1.Platforms.VIDAA: return 'VIDAA (Hisense)';
33
- case constants_1.Platforms.SMARTCAST: return 'SmartCast (VIZIO)';
34
32
  case constants_1.Platforms.WEBOS: return 'webOS (LG)';
35
33
  case constants_1.Platforms.WEBTV: return 'WebTV';
36
34
  case constants_1.Platforms.XBOX: return 'Xbox';
@@ -27,7 +27,7 @@ const doLatestDevelopmentRelease = (c) => {
27
27
  const doLatestReleaseCandidateRelease = (c) => {
28
28
  console.log('doLatestReleaseCandidateRelease');
29
29
  deployBuilds(c);
30
- (0, notifySlack_1.notifySlack)(c, [c.runtime.scheme]);
30
+ (0, notifySlack_1.notifySlack)(c);
31
31
  return true;
32
32
  };
33
33
  const doLatestRelease = (c) => {
@@ -37,7 +37,7 @@ const doLatestRelease = (c) => {
37
37
  const doStagingDistributionRelease = (c) => {
38
38
  console.log('doStagingDistributionRelease');
39
39
  deployBuilds(c);
40
- (0, notifySlack_1.notifySlack)(c, [c.runtime.scheme]);
40
+ (0, notifySlack_1.notifySlack)(c);
41
41
  return true;
42
42
  };
43
43
  const doProductionDistributionRelease = (c) => {
@@ -48,7 +48,7 @@ const doProductionDistributionRelease = (c) => {
48
48
  (0, deleteSourceMaps_1.deleteSourceMaps)(c);
49
49
  (0, githubRelease_1.githubRelease)(c);
50
50
  (0, deployToAppCenter_1.deployToAppCenter)(c);
51
- (0, notifySlack_1.notifySlack)(c, [c.runtime.scheme]);
51
+ (0, notifySlack_1.notifySlack)(c);
52
52
  return true;
53
53
  };
54
54
  const releaseAllWithScheme = () => {
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const resolvers_1 = require("../resolvers");
4
+ const deployProductionToAppCenter_1 = require("./release/appCenter/deployProductionToAppCenter");
5
+ const releaseProductionAll = () => {
6
+ const c = (0, resolvers_1.getBaseConfig)();
7
+ (0, deployProductionToAppCenter_1.deployProductionToAppCenter)(c);
8
+ };
9
+ const startTimestamp = Date.now();
10
+ releaseProductionAll();
11
+ const msPerSecond = 1000;
12
+ const scriptTotalTimeInSeconds = Math.ceil((Date.now() - startTimestamp) / msPerSecond);
13
+ console.log(`releaseProductionAll: done in ${scriptTotalTimeInSeconds} second(s)!`);
@@ -38,7 +38,6 @@ exports.SDKXbox = SDKXbox;
38
38
  const handlePlatformSdk = async (c) => {
39
39
  switch (c.platform) {
40
40
  case constants_1.Platforms.ANDROIDTV:
41
- case constants_1.Platforms.FIRETV:
42
41
  return SDKAndroidtv.handleAndroidTVSdk(c);
43
42
  case constants_1.Platforms.TIZEN:
44
43
  return SDKTizen.handleTizenSdk(c);