@24i/bigscreen-sdk 1.0.16 → 1.0.17-alpha.2324

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 (147) hide show
  1. package/package.json +4 -3
  2. package/packages/create-package/dist/createPackage.js +66 -0
  3. package/packages/create-package/dist/createPackage.js.map +1 -0
  4. package/packages/create-package/dist/index.js +5 -0
  5. package/packages/create-package/dist/index.js.map +1 -0
  6. package/packages/create-package/dist/questionnaire/questions.js +35 -0
  7. package/packages/create-package/dist/questionnaire/questions.js.map +1 -0
  8. package/packages/create-package/dist/settings/Settings.js +10 -0
  9. package/packages/create-package/dist/settings/Settings.js.map +1 -0
  10. package/packages/create-package/dist/types.js +3 -0
  11. package/packages/create-package/dist/types.js.map +1 -0
  12. package/packages/input/README.md +1 -1
  13. package/packages/input/src/Input.tsx +3 -5
  14. package/packages/interactable/src/Interactable.tsx +3 -22
  15. package/packages/rnv-build-engine/dist/src/constants/buildSchemes.js +14 -0
  16. package/packages/rnv-build-engine/dist/src/constants/index.js +7 -0
  17. package/packages/rnv-build-engine/dist/src/constants/platforms.js +14 -0
  18. package/packages/rnv-build-engine/dist/src/engine.js +94 -0
  19. package/packages/rnv-build-engine/dist/src/index.js +26 -0
  20. package/packages/rnv-build-engine/dist/src/resolvers/index.js +29 -0
  21. package/packages/rnv-build-engine/dist/src/resolvers/resolveBaseUrl.js +31 -0
  22. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildFileExtension.js +12 -0
  23. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildFileName.js +36 -0
  24. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildVersion.js +42 -0
  25. package/packages/rnv-build-engine/dist/src/resolvers/resolveBuildVersionOffset.js +34 -0
  26. package/packages/rnv-build-engine/dist/src/resolvers/resolveDeployLocations.js +79 -0
  27. package/packages/rnv-build-engine/dist/src/resolvers/resolveGenericRnvConfig.js +47 -0
  28. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvDeployConfig.js +13 -0
  29. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvDeployUrl.js +11 -0
  30. package/packages/rnv-build-engine/dist/src/resolvers/resolveHbbtvRemoteBuildDirRelativePath.js +24 -0
  31. package/packages/rnv-build-engine/dist/src/resolvers/resolveSupportedPlatforms.js +5 -0
  32. package/packages/rnv-build-engine/dist/src/resolvers/resolveUsedFlavours.js +23 -0
  33. package/packages/rnv-build-engine/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +14 -0
  34. package/packages/rnv-build-engine/dist/src/scripts/buildAllWithScheme.js +25 -0
  35. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/formatTableDataSpaces.js +30 -0
  36. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/generateDeployUrls.js +90 -0
  37. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/index.js +4 -0
  38. package/packages/rnv-build-engine/dist/src/scripts/generateDeployUrls/makeTableDataByScheme.js +63 -0
  39. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/afterVersionBump.js +18 -0
  40. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/beforeVersionBump.js +12 -0
  41. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/checkReleaseNotes.js +16 -0
  42. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushRelease.js +31 -0
  43. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushReleaseCandidate.js +6 -0
  44. package/packages/rnv-build-engine/dist/src/scripts/gitReleaser/pushReleaseNotes.js +37 -0
  45. package/packages/rnv-build-engine/dist/src/scripts/release/deleteSourceMaps.js +11 -0
  46. package/packages/rnv-build-engine/dist/src/scripts/release/deployToAppCenter.js +83 -0
  47. package/packages/rnv-build-engine/dist/src/scripts/release/githubRelease.js +128 -0
  48. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/generateWebhoook.js +66 -0
  49. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/makePayload.js +92 -0
  50. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/notifySlack.js +44 -0
  51. package/packages/rnv-build-engine/dist/src/scripts/release/notifySlack/slackBlockKitBuilder.js +39 -0
  52. package/packages/rnv-build-engine/dist/src/scripts/release/sentryRelease.js +85 -0
  53. package/packages/rnv-build-engine/dist/src/scripts/release/urlsMarkdown.js +62 -0
  54. package/packages/rnv-build-engine/dist/src/scripts/releaseAllWithScheme.js +79 -0
  55. package/packages/rnv-build-engine/dist/src/scripts/utils/cmdUtils.js +12 -0
  56. package/packages/rnv-build-engine/dist/src/scripts/utils/fsUtils.js +33 -0
  57. package/packages/rnv-build-engine/dist/src/scripts/utils/generateIcons.js +29 -0
  58. package/packages/rnv-build-engine/dist/src/scripts/utils/gitUtils.js +78 -0
  59. package/packages/rnv-build-engine/dist/src/scripts/utils/index.js +27 -0
  60. package/packages/rnv-build-engine/dist/src/scripts/utils/stringUtils.js +5 -0
  61. package/packages/rnv-build-engine/dist/src/sdks/index.js +42 -0
  62. package/packages/rnv-build-engine/dist/src/sdks/sdk-tizen/index.js +13 -0
  63. package/packages/rnv-build-engine/dist/src/sdks/sdk-tizen/sdkTizen.js +240 -0
  64. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/index.js +14 -0
  65. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/registerSdkPath.js +14 -0
  66. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/index.js +5 -0
  67. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/sdkInstaller.js +39 -0
  68. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/clean.js +11 -0
  69. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/download.js +74 -0
  70. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/index.js +11 -0
  71. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/install.js +23 -0
  72. package/packages/rnv-build-engine/dist/src/sdks/sdk-utils/sdk-installer/services/unzip.js +12 -0
  73. package/packages/rnv-build-engine/dist/src/sdks/sdk-webos/index.js +13 -0
  74. package/packages/rnv-build-engine/dist/src/sdks/sdk-webos/sdkWebos.js +135 -0
  75. package/packages/rnv-build-engine/dist/src/sdks/sdk-webpack/index.js +13 -0
  76. package/packages/rnv-build-engine/dist/src/sdks/sdk-webpack/sdkWebpack.js +32 -0
  77. package/packages/rnv-build-engine/dist/src/sdks/sdk-xbox/index.js +13 -0
  78. package/packages/rnv-build-engine/dist/src/sdks/sdk-xbox/sdkXbox.js +222 -0
  79. package/packages/rnv-build-engine/dist/src/tasks/deploy/aswS3/aws.js +22 -0
  80. package/packages/rnv-build-engine/dist/src/tasks/deploy/aswS3/deployS3.js +71 -0
  81. package/packages/rnv-build-engine/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +94 -0
  82. package/packages/rnv-build-engine/dist/src/tasks/engineTasks.js +22 -0
  83. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.build.js +99 -0
  84. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.configure.js +45 -0
  85. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.configureSoft.js +31 -0
  86. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.deploy.js +40 -0
  87. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.hooks.run.js +71 -0
  88. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.package.js +19 -0
  89. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.project.configure.js +116 -0
  90. package/packages/rnv-build-engine/dist/src/tasks/task.rnv.start.js +72 -0
  91. package/packages/rnv-build-engine/dist/src/types/c.js +2 -0
  92. package/packages/rnv-build-engine/dist/src/types/constants.js +2 -0
  93. package/packages/rnv-build-engine/dist/src/types/index.js +2 -0
  94. package/packages/rnv-build-engine/dist/src/utils/forEachSupportedPlatformFlavour.js +24 -0
  95. package/packages/rnv-build-engine/dist/src/utils/generatePngSpriteMap.js +78 -0
  96. package/packages/rnv-build-engine/dist/src/utils/generateSvgSpriteMap.js +113 -0
  97. package/packages/rnv-build-engine/dist/src/utils/mergeSvgAndPngIcons.js +61 -0
  98. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/index.js +5 -0
  99. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.js +31 -0
  100. package/packages/rnv-build-engine/dist/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.js +40 -0
  101. package/packages/rnv-build-engine/dist/src/utils/zipBuildsByPlatforms.js +61 -0
  102. package/packages/rnv-build-engine/dist/templates/platforms/_shared/template.js +110 -0
  103. package/packages/rnv-build-engine/dist/templates/platforms/_shared/utils/extendSass.js +29 -0
  104. package/packages/rnv-build-engine/dist/templates/platforms/_shared/utils/joinStrings.js +5 -0
  105. package/packages/rnv-build-engine/dist/templates/platforms/_shared/webpack.base.js +239 -0
  106. package/packages/rnv-build-engine/dist/templates/platforms/entone/webpack.config.dev.js +63 -0
  107. package/packages/rnv-build-engine/dist/templates/platforms/entone/webpack.config.prod.js +58 -0
  108. package/packages/rnv-build-engine/dist/templates/platforms/hbbtv/webpack.config.dev.js +80 -0
  109. package/packages/rnv-build-engine/dist/templates/platforms/hbbtv/webpack.config.prod.js +75 -0
  110. package/packages/rnv-build-engine/dist/templates/platforms/kreatv/webpack.config.dev.js +63 -0
  111. package/packages/rnv-build-engine/dist/templates/platforms/kreatv/webpack.config.prod.js +58 -0
  112. package/packages/rnv-build-engine/dist/templates/platforms/saphi/webpack.config.dev.js +63 -0
  113. package/packages/rnv-build-engine/dist/templates/platforms/saphi/webpack.config.prod.js +58 -0
  114. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/.project +24 -0
  115. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/.tproject +12 -0
  116. package/packages/rnv-build-engine/dist/templates/platforms/tizen/project/config.xml +17 -0
  117. package/packages/rnv-build-engine/dist/templates/platforms/tizen/webpack.config.dev.js +64 -0
  118. package/packages/rnv-build-engine/dist/templates/platforms/tizen/webpack.config.prod.js +58 -0
  119. package/packages/rnv-build-engine/dist/templates/platforms/webos/project/.project +35 -0
  120. package/packages/rnv-build-engine/dist/templates/platforms/webos/project/appinfo.json +19 -0
  121. package/packages/rnv-build-engine/dist/templates/platforms/webos/webpack.config.dev.js +65 -0
  122. package/packages/rnv-build-engine/dist/templates/platforms/webos/webpack.config.prod.js +58 -0
  123. package/packages/rnv-build-engine/dist/templates/platforms/webtv/webpack.config.dev.js +63 -0
  124. package/packages/rnv-build-engine/dist/templates/platforms/webtv/webpack.config.prod.js +58 -0
  125. package/packages/rnv-build-engine/dist/templates/platforms/xbox/webpack.config.dev.js +64 -0
  126. package/packages/rnv-build-engine/dist/templates/platforms/xbox/webpack.config.prod.js +58 -0
  127. package/packages/sdk-installer/dist/index.js +5 -0
  128. package/packages/sdk-installer/dist/sdkInstaller.js +38 -0
  129. package/packages/sdk-installer/dist/services/clean.js +11 -0
  130. package/packages/sdk-installer/dist/services/download.js +55 -0
  131. package/packages/sdk-installer/dist/services/index.js +11 -0
  132. package/packages/sdk-installer/dist/services/install.js +24 -0
  133. package/packages/sdk-installer/dist/services/unzip.js +12 -0
  134. package/packages/sdk-installer/dist/types/index.d.ts +1 -0
  135. package/packages/sdk-installer/dist/types/sdkInstaller.d.ts +7 -0
  136. package/packages/sdk-installer/dist/types/services/clean.d.ts +2 -0
  137. package/packages/sdk-installer/dist/types/services/download.d.ts +2 -0
  138. package/packages/sdk-installer/dist/types/services/index.d.ts +4 -0
  139. package/packages/sdk-installer/dist/types/services/install.d.ts +2 -0
  140. package/packages/sdk-installer/dist/types/services/unzip.d.ts +2 -0
  141. package/packages/types-bigscreen-jsx/README.md +5 -4
  142. package/packages/types-bigscreen-jsx/index.d.ts +4 -4
  143. package/packages/utils/README.md +10 -0
  144. package/packages/utils/src/index.ts +5 -0
  145. package/packages/utils/src/keyPress/index.ts +2 -0
  146. package/packages/utils/src/keyPress/keyPressSimulator.ts +44 -0
  147. package/packages/utils/src/keyPress/simulateKeyPress.ts +25 -0
@@ -0,0 +1,83 @@
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.deployToAppCenter = void 0;
23
+ const child_process_1 = require("child_process");
24
+ const fs = __importStar(require("fs"));
25
+ const rnv_1 = require("rnv");
26
+ const resolvers_1 = require("../../resolvers");
27
+ const urlsMarkdown_1 = require("./urlsMarkdown");
28
+ const appCenterRelease = (params) => {
29
+ const { filePath, releaseNotesPath, buildVersion, token, projectName } = params;
30
+ const app = `24i-Media/${projectName}`;
31
+ (0, child_process_1.execSync)('appcenter distribute release '
32
+ + `--file "${filePath}" `
33
+ + `--release-notes-file "${releaseNotesPath}" `
34
+ + `--build-version "${buildVersion}" `
35
+ + `--app "${app}" `
36
+ + `--token "${token}" `
37
+ + '--group "Collaborators" '
38
+ + '--disable-telemetry', { stdio: 'inherit' });
39
+ };
40
+ const getAppCenterConfigByPlatformName = (c, platformName) => {
41
+ try {
42
+ return c.buildConfig.platforms[platformName]?.deploy?.appCenter || null;
43
+ }
44
+ catch (error) {
45
+ return null;
46
+ }
47
+ };
48
+ const getTokenByPlatform = (platformName = '') => {
49
+ const envVariableName = `APPCENTER_TOKEN_${platformName.toUpperCase()}`;
50
+ return process.env[envVariableName] || '';
51
+ };
52
+ const processPlatform = (c, platformName) => {
53
+ const { getConfigProp } = rnv_1.Common;
54
+ const appCenterConfig = getAppCenterConfigByPlatformName(c, platformName);
55
+ if (!appCenterConfig)
56
+ return;
57
+ const { appName } = appCenterConfig;
58
+ const token = getTokenByPlatform(platformName);
59
+ const zipPath = (0, resolvers_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
60
+ const buildVersion = getConfigProp(c, platformName, 'packageVersion', '');
61
+ const releaseNotesPath = getConfigProp(c, platformName, 'releaseNotes', {}).relativePath || '';
62
+ if (!appName || !token || !releaseNotesPath || !zipPath || !buildVersion)
63
+ return;
64
+ const tempReleaseNotesPath = `RELEASE_NOTES_APPCENTER_${platformName.toUpperCase()}.md`;
65
+ if (fs.existsSync(tempReleaseNotesPath)) {
66
+ fs.unlinkSync(tempReleaseNotesPath);
67
+ }
68
+ (0, child_process_1.execSync)(`cat ${releaseNotesPath} >> ${tempReleaseNotesPath}`);
69
+ const urlsMarkdown = (0, urlsMarkdown_1.getUrlsMarkdown)(c, [platformName]);
70
+ (0, child_process_1.execSync)(`echo "${urlsMarkdown}" >> ${tempReleaseNotesPath}`);
71
+ console.log(`Deploying ${platformName} platform to AppCenter.ms...`);
72
+ appCenterRelease({
73
+ projectName: appName,
74
+ buildVersion,
75
+ filePath: zipPath,
76
+ releaseNotesPath: tempReleaseNotesPath,
77
+ token,
78
+ });
79
+ };
80
+ const deployToAppCenter = (c) => {
81
+ (0, resolvers_1.resolveSupportedPlatforms)(c).forEach((platformName) => processPlatform(c, platformName));
82
+ };
83
+ exports.deployToAppCenter = deployToAppCenter;
@@ -0,0 +1,128 @@
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.githubRelease = void 0;
23
+ const child_process_1 = require("child_process");
24
+ const fs = __importStar(require("fs"));
25
+ const assert_1 = require("assert");
26
+ const path_1 = require("path");
27
+ const resolvers_1 = require("../../resolvers");
28
+ const urlsMarkdown_1 = require("./urlsMarkdown");
29
+ const token = process.env.GITHUB_TOKEN;
30
+ const targetCommit = process.env.TRAVIS_COMMIT;
31
+ const githubContentType = 'application/vnd.github.v3+json';
32
+ const githubReleaseNotesPath = 'RELEASE_NOTES_GITHUB.md';
33
+ const handleResponseErrors = (response) => {
34
+ const { errors, message } = response;
35
+ if (message && !errors)
36
+ throw new Error(`GitHub error: ${message}`);
37
+ if (!errors)
38
+ return;
39
+ const makeErrorDetailString = (error) => Object
40
+ .keys(error)
41
+ .map((key) => `${key}: "${error[key]}"`)
42
+ .join(', ');
43
+ const errorsDetails = errors.map(makeErrorDetailString);
44
+ throw new Error(`GitHub error: ${message || ''}\n${errorsDetails.join('\n')}`);
45
+ };
46
+ const getReleaseNotesPath = (c) => {
47
+ try {
48
+ return c.buildConfig.common.releaseNotes.relativePath || '';
49
+ }
50
+ catch (error) {
51
+ return '';
52
+ }
53
+ };
54
+ const deleteFileIfExists = (filePath) => {
55
+ if (fs.existsSync(filePath)) {
56
+ fs.unlinkSync(filePath);
57
+ }
58
+ };
59
+ const makeGitHubReleaseNotes = (c) => {
60
+ const releaseNotesPath = getReleaseNotesPath(c);
61
+ (0, assert_1.ok)(releaseNotesPath, 'The path to the file with release notes is missing!');
62
+ deleteFileIfExists(githubReleaseNotesPath);
63
+ (0, child_process_1.execSync)(`sed '1d;2d' ${releaseNotesPath} >> ${githubReleaseNotesPath}`);
64
+ const textToAppend = (0, urlsMarkdown_1.getUrlsMarkdown)(c);
65
+ (0, child_process_1.execSync)(`echo "${textToAppend}" >> ${githubReleaseNotesPath}`);
66
+ };
67
+ const createRelease = (c) => {
68
+ const { packageVersion, git } = c.buildConfig.common;
69
+ const versionLabel = `v${packageVersion}`;
70
+ (0, assert_1.ok)(token, 'process.env.GITHUB_TOKEN is not set!');
71
+ (0, assert_1.ok)(targetCommit, 'process.env.TRAVIS_COMMIT is not set!');
72
+ (0, assert_1.ok)(git.owner, 'Missing value for rnv config prop: common.git.owner');
73
+ (0, assert_1.ok)(git.repo, 'Missing value for rnv config prop: common.git.repo');
74
+ (0, assert_1.ok)(packageVersion);
75
+ makeGitHubReleaseNotes(c);
76
+ const releaseNotesContent = fs.readFileSync(githubReleaseNotesPath).toString();
77
+ const data = {
78
+ tag_name: versionLabel,
79
+ target_commitish: targetCommit,
80
+ name: versionLabel,
81
+ body: releaseNotesContent,
82
+ draft: false,
83
+ prerelease: false,
84
+ };
85
+ const url = `https://api.github.com/repos/${git.owner}/${git.repo}/releases`;
86
+ const headers = `-H "Accept: ${githubContentType}" -H "Authorization: token ${token}"`;
87
+ const dataStringWithFixedSingleQuotes = JSON.stringify(data).replace(/'/g, "'\\''");
88
+ const cmd = `curl -X POST ${headers} ${url} -d '${dataStringWithFixedSingleQuotes}'`;
89
+ console.log(`Pushing GitHub Release: ${versionLabel}...`);
90
+ const responseString = (0, child_process_1.execSync)(cmd, { stdio: 'pipe' }).toString();
91
+ const response = JSON.parse(responseString);
92
+ handleResponseErrors(response);
93
+ console.log('Pushing done.');
94
+ return response;
95
+ };
96
+ const getFileMimeType = (filepath) => {
97
+ const cmd = `file --mime-type -b ${filepath}`;
98
+ return (0, child_process_1.execSync)(cmd, { stdio: 'pipe' })
99
+ .toString()
100
+ .replace(/\r?\n/, '');
101
+ };
102
+ const uploadAsset = (uploadUrl, filePath) => {
103
+ const url = `${uploadUrl.replace('{?name,label}', '')}`;
104
+ const headers = `-H "Accept: ${githubContentType}" -H "Authorization: token ${token}" -H "content-type: ${getFileMimeType(filePath)}" -H "content-length: ${fs.statSync(filePath).size}"`;
105
+ const cmd = `curl --data-binary @"${filePath}" ${headers} ${url}?name=${(0, path_1.basename)(filePath)}`;
106
+ console.log(`Uploading ${filePath} asset to created GitHub Release...`);
107
+ const responseString = (0, child_process_1.execSync)(cmd, { stdio: 'pipe' }).toString();
108
+ const uploadResponse = JSON.parse(responseString);
109
+ handleResponseErrors(uploadResponse);
110
+ console.log('Uploading done.');
111
+ return uploadResponse;
112
+ };
113
+ const uploadZipWithPlatformBuilds = (c, platformName, githubUploadUrl) => {
114
+ const zipFilePath = (0, resolvers_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
115
+ if (zipFilePath) {
116
+ uploadAsset(githubUploadUrl, zipFilePath);
117
+ }
118
+ };
119
+ const githubRelease = (c) => {
120
+ const releaseResponse = createRelease(c) || {};
121
+ const uploadUrl = releaseResponse.upload_url;
122
+ (0, assert_1.ok)(uploadUrl, 'Missing "upload_url" in release response!');
123
+ (0, resolvers_1.resolveSupportedPlatforms)(c).forEach((platformName) => {
124
+ uploadZipWithPlatformBuilds(c, platformName, uploadUrl);
125
+ });
126
+ deleteFileIfExists(githubReleaseNotesPath);
127
+ };
128
+ exports.githubRelease = githubRelease;
@@ -0,0 +1,66 @@
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 https = __importStar(require("https"));
23
+ const querystring = __importStar(require("querystring"));
24
+ const path = __importStar(require("path"));
25
+ const fs = __importStar(require("fs"));
26
+ const replaceWebhookUrl = (newWebhookUrl, channelName) => {
27
+ const filePath = path.resolve(process.cwd(), 'renative.json');
28
+ const parsedFile = JSON.parse(fs.readFileSync(filePath).toString());
29
+ const jsonIndentSpaces = 4;
30
+ parsedFile.common.deploy.slack.webhookUrl = newWebhookUrl;
31
+ fs.writeFileSync(filePath, JSON.stringify(parsedFile, null, jsonIndentSpaces));
32
+ console.log(`Webhook for "${channelName}" channel successfully written into ${filePath}.`);
33
+ };
34
+ const postRequestCallback = (receivedData) => {
35
+ const parsedData = JSON.parse(receivedData);
36
+ if (parsedData.ok === false)
37
+ throw parsedData;
38
+ const { channel, url } = parsedData.incoming_webhook;
39
+ console.log(`\nGenerated slack webhook: ${url}`);
40
+ replaceWebhookUrl(url, channel);
41
+ };
42
+ const { redirect_uri, client_id, client_secret, code } = process.env;
43
+ const formData = querystring.stringify({ redirect_uri, client_id, client_secret, code });
44
+ const requestOptions = {
45
+ hostname: 'slack.com',
46
+ path: '/api/oauth.v2.access',
47
+ method: 'POST',
48
+ headers: {
49
+ 'Content-Type': 'application/x-www-form-urlencoded',
50
+ 'Content-Length': formData.length,
51
+ },
52
+ };
53
+ const request = https.request(requestOptions, (response) => {
54
+ let receivedData = '';
55
+ response.on('data', (d) => {
56
+ receivedData += d;
57
+ });
58
+ response.on('end', () => {
59
+ postRequestCallback(receivedData);
60
+ });
61
+ });
62
+ request.on('error', (error) => {
63
+ throw error;
64
+ });
65
+ request.write(formData);
66
+ request.end();
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeDistributionPayload = exports.makeReleaseCandidatePayload = exports.makeDevelopmentPayload = void 0;
4
+ const slackBlockKitBuilder_1 = require("./slackBlockKitBuilder");
5
+ const resolvers_1 = require("../../../resolvers");
6
+ const getVersionsObject = (c) => (0, resolvers_1.resolveDeployLocations)(c).versions;
7
+ const getVersion = (c) => Object.keys(getVersionsObject(c))[0] || '';
8
+ const getPlatformsObject = (c) => {
9
+ const version = getVersion(c);
10
+ const { platforms = {} } = getVersionsObject(c)[version] || {};
11
+ return platforms;
12
+ };
13
+ const getCommonAppName = (c) => {
14
+ try {
15
+ return c.buildConfig.common.appName;
16
+ }
17
+ catch (error) {
18
+ return '';
19
+ }
20
+ };
21
+ const makeFlavoursMarkdown = (platformName, entries) => entries
22
+ .map(([flavour, flavourData]) => {
23
+ const { indexUrl, packageUrl } = flavourData;
24
+ return `- *${flavour}* [<${packageUrl}|Download>] [<${indexUrl}|Open deployed index.html>]`;
25
+ })
26
+ .join('\n');
27
+ const makePackagePayload = (c, platformName) => {
28
+ const platformData = getPlatformsObject(c)[platformName];
29
+ if (platformData) {
30
+ const flavoursEntries = Object.entries(platformData);
31
+ return [
32
+ slackBlockKitBuilder_1.Divider.plain(),
33
+ slackBlockKitBuilder_1.Context.mrkdwns([`Platform: *${platformName}*`]),
34
+ slackBlockKitBuilder_1.Context.mrkdwns([makeFlavoursMarkdown(platformName, flavoursEntries)]),
35
+ ];
36
+ }
37
+ return [];
38
+ };
39
+ const makePackagesPayload = (c) => {
40
+ const platformList = Object.keys(getPlatformsObject(c));
41
+ return platformList
42
+ .map((platformName) => makePackagePayload(c, platformName))
43
+ .flat();
44
+ };
45
+ const makeHeaderPayload = (c, title, buttons) => {
46
+ const { travisBuild, gitHubRelease } = buttons || {};
47
+ const { owner, repo } = c.buildConfig.common.git || {};
48
+ const version = getVersion(c);
49
+ const buttonsData = [];
50
+ if (travisBuild) {
51
+ buttonsData.push({
52
+ text: 'View Travis Build Log',
53
+ url: process.env.TRAVIS_BUILD_WEB_URL || `https://travis-ci.com/github/${owner}/${repo}/branches`,
54
+ });
55
+ }
56
+ if (gitHubRelease) {
57
+ buttonsData.push({
58
+ text: 'View GitHub Release',
59
+ url: `https://github.com/${owner}/${repo}/releases/tag/${version}`,
60
+ });
61
+ }
62
+ return [
63
+ slackBlockKitBuilder_1.Divider.plain(),
64
+ slackBlockKitBuilder_1.Section.mrkdwn(title),
65
+ slackBlockKitBuilder_1.Context.mrkdwns([`Version: *${version}*`]),
66
+ slackBlockKitBuilder_1.Actions.buttons(buttonsData),
67
+ ];
68
+ };
69
+ const makePayload = (c, title, buttons) => ({
70
+ blocks: [
71
+ ...makeHeaderPayload(c, title, buttons),
72
+ ...makePackagesPayload(c),
73
+ ],
74
+ });
75
+ const makeDevelopmentPayload = (c) => {
76
+ const title = `There are new *development* builds for *${getCommonAppName(c)}* app!`;
77
+ const buttons = { travisBuild: true };
78
+ return makePayload(c, title, buttons);
79
+ };
80
+ exports.makeDevelopmentPayload = makeDevelopmentPayload;
81
+ const makeReleaseCandidatePayload = (c) => {
82
+ const title = `There are new *release candidate* builds for *${getCommonAppName(c)}* app!`;
83
+ const buttons = { travisBuild: true };
84
+ return makePayload(c, title, buttons);
85
+ };
86
+ exports.makeReleaseCandidatePayload = makeReleaseCandidatePayload;
87
+ const makeDistributionPayload = (c) => {
88
+ const title = `There are new *distribution* builds for *${getCommonAppName(c)}* app!`;
89
+ const buttons = { travisBuild: true, gitHubRelease: true };
90
+ return makePayload(c, title, buttons);
91
+ };
92
+ exports.makeDistributionPayload = makeDistributionPayload;
@@ -0,0 +1,44 @@
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.notifySlack = void 0;
23
+ const child_process_1 = require("child_process");
24
+ const payload = __importStar(require("./makePayload"));
25
+ const constants_1 = require("../../../constants");
26
+ const getPayload = (c) => {
27
+ const releaseType = c.runtime.scheme;
28
+ switch (releaseType) {
29
+ case constants_1.BuildSchemes.DEV_LATEST: return payload.makeDevelopmentPayload(c);
30
+ case constants_1.BuildSchemes.RC_LATEST: return payload.makeReleaseCandidatePayload(c);
31
+ case constants_1.BuildSchemes.RELEASE_DIST: return payload.makeDistributionPayload(c);
32
+ default: throw new Error('Notify Slack: unsupported or undefined release type! Did you pass it as an argument?');
33
+ }
34
+ };
35
+ const notifySlack = (c) => {
36
+ const contentType = '"Content-type: application/json"';
37
+ const data = `--data '${JSON.stringify(getPayload(c))}'`;
38
+ const webHookUrl = c.buildConfig.common.deploy.slack?.webhookUrl || '';
39
+ if (webHookUrl) {
40
+ const cmd = `curl -X POST -H ${contentType} ${data} ${webHookUrl}`;
41
+ (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
42
+ }
43
+ };
44
+ exports.notifySlack = notifySlack;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Context = exports.Divider = exports.Actions = exports.Section = void 0;
4
+ const mrkdwn = (text) => ({ type: 'mrkdwn', text });
5
+ const plainText = (text) => ({
6
+ type: 'plain_text',
7
+ text,
8
+ emoji: true,
9
+ });
10
+ const buttonWithUrl = (buttonProps) => ({
11
+ type: 'button',
12
+ text: plainText(buttonProps.text),
13
+ url: buttonProps.url,
14
+ });
15
+ const Section = {
16
+ mrkdwn: (text) => ({
17
+ type: 'section',
18
+ text: mrkdwn(text),
19
+ }),
20
+ };
21
+ exports.Section = Section;
22
+ const Actions = {
23
+ buttons: (btnsData) => ({
24
+ type: 'actions',
25
+ elements: btnsData.map(buttonWithUrl),
26
+ }),
27
+ };
28
+ exports.Actions = Actions;
29
+ const Divider = {
30
+ plain: () => ({ type: 'divider' }),
31
+ };
32
+ exports.Divider = Divider;
33
+ const Context = {
34
+ mrkdwns: (texts) => ({
35
+ type: 'context',
36
+ elements: texts.map(mrkdwn),
37
+ }),
38
+ };
39
+ exports.Context = Context;
@@ -0,0 +1,85 @@
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.sentryRelease = void 0;
23
+ const child_process_1 = require("child_process");
24
+ const fs = __importStar(require("fs"));
25
+ const constants_1 = require("../../constants");
26
+ const resolvers_1 = require("../../resolvers");
27
+ const UNSUPPORTED_PLATFORMS = [constants_1.Platforms.WEBTV];
28
+ const executeSync = (cmd) => (0, child_process_1.execSync)(cmd, { stdio: 'inherit' });
29
+ const createNewRelease = (version) => {
30
+ executeSync(`sentry-cli releases new ${version}`);
31
+ };
32
+ const uploadSourceMaps = (params) => {
33
+ const { version, sourceMapsPath, urlPrefix } = params;
34
+ executeSync('sentry-cli releases '
35
+ + `files ${version} `
36
+ + `upload-sourcemaps ${sourceMapsPath} `
37
+ + `--url-prefix "~/${urlPrefix}" `
38
+ + '--rewrite --validate');
39
+ };
40
+ const setReleaseCommits = (version) => {
41
+ try {
42
+ executeSync(`sentry-cli releases set-commits ${version} --auto --log-level=debug`);
43
+ }
44
+ catch (error) {
45
+ console.log('Sentry release commits failed: ', error);
46
+ }
47
+ };
48
+ const finalizeRelease = (version) => {
49
+ executeSync(`sentry-cli releases finalize ${version}`);
50
+ };
51
+ const processPlatform = (c, platform, version) => {
52
+ const processFlavour = (flavour) => {
53
+ const { platformBuildsDir } = c.buildConfig.paths;
54
+ const mapsPath = `${platformBuildsDir}/${flavour}_${platform}-public/public/content/js`;
55
+ const urlPrefix = `builds/${platform}/${flavour}/dist/${version}/public/content/js/`;
56
+ if (!fs.existsSync(mapsPath))
57
+ return;
58
+ console.log(`Uploading ${flavour}_${platform} sourcemaps to Sentry...`);
59
+ uploadSourceMaps({ version, sourceMapsPath: mapsPath, urlPrefix });
60
+ };
61
+ const { supportedFlavours = [] } = c.buildConfig.platforms[platform]?.deploy || {};
62
+ supportedFlavours.forEach(processFlavour);
63
+ };
64
+ const isSentryProjectConfigured = () => {
65
+ const cmd = (0, child_process_1.execSync)('sentry-cli info --config-status-json');
66
+ const sentryConfig = JSON.parse(cmd.toString()) || {};
67
+ return !!sentryConfig.config?.project;
68
+ };
69
+ const sentryRelease = (c) => {
70
+ if (!isSentryProjectConfigured()) {
71
+ console.log('Project is not defined...');
72
+ return;
73
+ }
74
+ const version = `v${c.buildConfig.common?.packageVersion}`;
75
+ if (!version)
76
+ return;
77
+ const supportedPlatforms = (0, resolvers_1.resolveSupportedPlatforms)(c);
78
+ const supportedPlatformsBySentry = supportedPlatforms.filter((platform) => !UNSUPPORTED_PLATFORMS.includes(platform));
79
+ createNewRelease(version);
80
+ supportedPlatformsBySentry.forEach((platform) => processPlatform(c, platform, version));
81
+ setReleaseCommits(version);
82
+ finalizeRelease(version);
83
+ console.log('Source Maps uploaded...');
84
+ };
85
+ exports.sentryRelease = sentryRelease;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUrlsMarkdown = void 0;
4
+ const constants_1 = require("../../constants");
5
+ const resolvers_1 = require("../../resolvers");
6
+ const newLine = '\r\n';
7
+ const getDataToProceed = (c, customPlatformList = []) => {
8
+ const locations = (0, resolvers_1.resolveDeployLocations)(c);
9
+ const { versions } = locations;
10
+ const { platforms } = versions[Object.keys(versions)[0]];
11
+ if (!customPlatformList.length)
12
+ return platforms;
13
+ const outputData = {};
14
+ const addToOutputIfPlatformHasData = (platformName) => {
15
+ const platformData = platforms[platformName];
16
+ if (platformData) {
17
+ outputData[platformName] = platformData;
18
+ }
19
+ };
20
+ customPlatformList.forEach(addToOutputIfPlatformHasData);
21
+ return outputData;
22
+ };
23
+ const beautifyPlatformName = (platformName) => {
24
+ switch (platformName.toLowerCase()) {
25
+ case constants_1.Platforms.ENTONE: return 'Entone';
26
+ case constants_1.Platforms.HBBTV: return 'HbbTV';
27
+ case constants_1.Platforms.KREATV: return 'KreaTV';
28
+ case constants_1.Platforms.SAPHI: return 'Saphi (Philips)';
29
+ case constants_1.Platforms.TIZEN: return 'Tizen (Samsung)';
30
+ case constants_1.Platforms.WEBOS: return 'webOS (LG)';
31
+ case constants_1.Platforms.WEBTV: return 'WebTV';
32
+ case constants_1.Platforms.XBOX: return 'Xbox';
33
+ default: return platformName;
34
+ }
35
+ };
36
+ const getPlatformOutput = (data, platformName) => {
37
+ if (platformName === constants_1.Platforms.TIZEN || platformName === constants_1.Platforms.WEBOS) {
38
+ return '';
39
+ }
40
+ const platformData = data[platformName];
41
+ let output = `**${beautifyPlatformName(platformName)}**${newLine}`;
42
+ const processPlatformEntry = (platformEntry) => {
43
+ const [flavour, flavourData] = platformEntry;
44
+ const { indexUrl } = flavourData;
45
+ output += `* [${flavour}](${indexUrl})${newLine}`;
46
+ };
47
+ Object.entries(platformData).forEach(processPlatformEntry);
48
+ return output;
49
+ };
50
+ const getUrlsMarkdown = (c, customPlatformList) => {
51
+ const dataToProceed = getDataToProceed(c, customPlatformList);
52
+ const markdownWithoutHeader = Object.keys(dataToProceed)
53
+ .map((platformName) => getPlatformOutput(dataToProceed, platformName))
54
+ .filter(Boolean)
55
+ .join(newLine);
56
+ if (markdownWithoutHeader.length) {
57
+ const urlHeader = `${newLine}## URL${newLine}`;
58
+ return urlHeader + markdownWithoutHeader;
59
+ }
60
+ return '';
61
+ };
62
+ exports.getUrlsMarkdown = getUrlsMarkdown;