@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,58 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const webpack_base_1 = require("./webpack.base");
23
+ const Extend = __importStar(require("./webpack.extend"));
24
+ const config = {
25
+ currentDir: __dirname,
26
+ metaTags: { viewport: `content="width=${Extend.resolution.width}, user-scalable=no"` },
27
+ environment: 'production',
28
+ ...Extend,
29
+ };
30
+ const C = (0, webpack_base_1.generateConfig)(config);
31
+ const plugins = [
32
+ C.Plugins.forkTsChecker,
33
+ C.Plugins.webpack,
34
+ C.Plugins.html,
35
+ C.Plugins.harddisk,
36
+ C.Plugins.css,
37
+ C.Plugins.fileManager,
38
+ ];
39
+ exports.default = {
40
+ entry: C.entry,
41
+ output: C.output,
42
+ module: {
43
+ rules: [
44
+ C.Rules.babel,
45
+ C.Rules.css,
46
+ C.Rules.image,
47
+ C.Rules.fonts,
48
+ C.Rules.sourcemap,
49
+ ].filter(Boolean),
50
+ },
51
+ plugins: plugins.filter(Boolean),
52
+ resolve: {
53
+ symlinks: true,
54
+ extensions: C.extensions,
55
+ alias: C.aliases,
56
+ },
57
+ ...config.extend || {},
58
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sdkInstaller = void 0;
4
+ var sdkInstaller_1 = require("./sdkInstaller");
5
+ Object.defineProperty(exports, "sdkInstaller", { enumerable: true, get: function () { return sdkInstaller_1.sdkInstaller; } });
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sdkInstaller = void 0;
4
+ const path_1 = require("path");
5
+ const url_1 = require("url");
6
+ const services_1 = require("./services");
7
+ const log = (message) => process.stdout.write(message);
8
+ const sdkInstaller = async ({ zipPath, installPath, enableLogs }) => {
9
+ const logger = enableLogs ? log : () => false;
10
+ const pathsToDelete = [];
11
+ let usedInstallPath;
12
+ try {
13
+ const parsedZipPath = (0, path_1.parse)(zipPath);
14
+ const parsedZipUrl = (0, url_1.parse)(zipPath);
15
+ if (!parsedZipUrl.protocol) {
16
+ throw new Error('Installation from local packages is not supported yet.');
17
+ }
18
+ logger('Downloading...');
19
+ const downloadedFilePath = `${process.cwd()}/${parsedZipPath.base}`;
20
+ pathsToDelete.push(downloadedFilePath);
21
+ await (0, services_1.download)(zipPath, downloadedFilePath);
22
+ logger('\rUnpacking...');
23
+ const unzippedDirPath = `${process.cwd()}/${parsedZipPath.name}`;
24
+ pathsToDelete.push(unzippedDirPath);
25
+ (0, services_1.unzip)(downloadedFilePath);
26
+ logger('\rInstalling...');
27
+ usedInstallPath = (0, services_1.install)(unzippedDirPath, installPath);
28
+ }
29
+ catch (e) {
30
+ (0, services_1.clean)(pathsToDelete);
31
+ throw e;
32
+ }
33
+ logger('\rCleaning...');
34
+ (0, services_1.clean)(pathsToDelete);
35
+ logger(`\rInstalled to ${usedInstallPath}\n`);
36
+ return usedInstallPath;
37
+ };
38
+ exports.sdkInstaller = sdkInstaller;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clean = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const deleteFileOrDirectory = (path) => {
6
+ (0, child_process_1.spawnSync)('rm', ['-r', path]);
7
+ };
8
+ const clean = (pathsToBeDeleted) => {
9
+ pathsToBeDeleted.forEach(deleteFileOrDirectory);
10
+ };
11
+ exports.clean = clean;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.download = void 0;
4
+ const fs = require("fs");
5
+ const path = require("path");
6
+ const url = require("url");
7
+ const http = require("http");
8
+ const https = require("https");
9
+ const createDirPathIfDoesntExist = async (dirPath) => {
10
+ if (!fs.existsSync(dirPath)) {
11
+ fs.mkdirSync(dirPath, { recursive: true });
12
+ }
13
+ };
14
+ const getNetworkProtocolAdapter = (requestedUrl) => {
15
+ const { protocol } = url.parse(requestedUrl);
16
+ switch (protocol) {
17
+ case 'http:': return http;
18
+ case 'https:': return https;
19
+ default: throw new Error(`${protocol} protocol is not supported`);
20
+ }
21
+ };
22
+ const getResponseError = (response) => {
23
+ const HTTP_RESPONSE_STATUS_CODE_OK = 200;
24
+ const { statusCode, headers } = response;
25
+ const contentType = headers['content-type'];
26
+ if (statusCode !== HTTP_RESPONSE_STATUS_CODE_OK) {
27
+ return new Error(`Request Failed. Status Code: ${statusCode}`);
28
+ }
29
+ if (!contentType) {
30
+ return new Error('Missing Content-Type: expected application/zip');
31
+ }
32
+ if (!/^application\/zip/.test(contentType)) {
33
+ return new Error(`Wrong Content-Type: expected application/zip, received ${contentType}`);
34
+ }
35
+ return null;
36
+ };
37
+ const download = async (fromUrl, toFilePath) => {
38
+ const toDirPath = path.parse(toFilePath).dir;
39
+ await createDirPathIfDoesntExist(toDirPath);
40
+ return new Promise((resolve, reject) => {
41
+ const request = getNetworkProtocolAdapter(fromUrl).get(fromUrl, (response) => {
42
+ const error = getResponseError(response);
43
+ if (error) {
44
+ reject(error);
45
+ return;
46
+ }
47
+ const file = fs.createWriteStream(toFilePath);
48
+ file.on('error', reject);
49
+ file.on('finish', resolve);
50
+ response.pipe(file);
51
+ });
52
+ request.on('error', reject);
53
+ });
54
+ };
55
+ exports.download = download;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clean = exports.install = exports.unzip = exports.download = void 0;
4
+ var download_1 = require("./download");
5
+ Object.defineProperty(exports, "download", { enumerable: true, get: function () { return download_1.download; } });
6
+ var unzip_1 = require("./unzip");
7
+ Object.defineProperty(exports, "unzip", { enumerable: true, get: function () { return unzip_1.unzip; } });
8
+ var install_1 = require("./install");
9
+ Object.defineProperty(exports, "install", { enumerable: true, get: function () { return install_1.install; } });
10
+ var clean_1 = require("./clean");
11
+ Object.defineProperty(exports, "clean", { enumerable: true, get: function () { return clean_1.clean; } });
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.install = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const getInstalledPathFromOutput = (output) => {
6
+ var _a;
7
+ const prefix = 'INSTALL_PATH=';
8
+ const installedPathRow = output
9
+ .split('\n')
10
+ .map((outputRow) => outputRow.trim())
11
+ .filter((trimmedOutputRow) => trimmedOutputRow.startsWith(prefix));
12
+ return ((_a = installedPathRow[0]) === null || _a === void 0 ? void 0 : _a.replace(prefix, '')) || '';
13
+ };
14
+ const install = (installerDirPath, installToPath) => {
15
+ const installationScriptPath = `${installerDirPath}/install.js`;
16
+ const installationCommandWithoutCustomPath = `node ${installationScriptPath}`;
17
+ const installationCmdToBeUsed = installToPath
18
+ ? `${installationCommandWithoutCustomPath} ${installToPath}`
19
+ : installationCommandWithoutCustomPath;
20
+ const execOptions = { maxBuffer: 5242880 };
21
+ const installationScriptOutput = (0, child_process_1.execSync)(installationCmdToBeUsed, execOptions).toString();
22
+ return getInstalledPathFromOutput(installationScriptOutput);
23
+ };
24
+ exports.install = install;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unzip = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const unzip = (filePath) => {
6
+ const spawnOptions = { maxBuffer: 5242880 };
7
+ const unzipProcess = (0, child_process_1.spawnSync)('unzip', ['-n', filePath], spawnOptions);
8
+ if (unzipProcess.stderr.length) {
9
+ throw new Error(unzipProcess.stderr.toString());
10
+ }
11
+ };
12
+ exports.unzip = unzip;
@@ -0,0 +1 @@
1
+ export { sdkInstaller } from './sdkInstaller';
@@ -0,0 +1,7 @@
1
+ declare type SdkInstallerOptions = {
2
+ zipPath: string;
3
+ installPath?: string;
4
+ enableLogs?: boolean;
5
+ };
6
+ declare const sdkInstaller: ({ zipPath, installPath, enableLogs }: SdkInstallerOptions) => Promise<string>;
7
+ export { sdkInstaller };
@@ -0,0 +1,2 @@
1
+ declare const clean: (pathsToBeDeleted: string[]) => void;
2
+ export { clean };
@@ -0,0 +1,2 @@
1
+ declare const download: (fromUrl: string, toFilePath: string) => Promise<void>;
2
+ export { download };
@@ -0,0 +1,4 @@
1
+ export { download } from './download';
2
+ export { unzip } from './unzip';
3
+ export { install } from './install';
4
+ export { clean } from './clean';
@@ -0,0 +1,2 @@
1
+ declare const install: (installerDirPath: string, installToPath?: string | undefined) => string;
2
+ export { install };
@@ -0,0 +1,2 @@
1
+ declare const unzip: (filePath: string) => void;
2
+ export { unzip };
@@ -1,11 +1,12 @@
1
1
  # BIGscreen JSX Types
2
2
  BIGscreen JSX is a set of tools that allow you to write JSX and converts it to JS Dom API.
3
- This package contains types originally from @types/react, modified for smartapps-bigscreen-jsx needs.
3
+ This package contains types originally from @types/react, modified for bigscreen-jsx needs.
4
4
 
5
5
  # Contributing
6
- Navigate to `<root>/packages/types-smartapps-bigscreen-jsx/node_modules/@types/react/`.
7
- All react types are inside files `index.d.ts` and `global.d.ts`. Modify them to suit your needs and afterwards run this command in the `packages/types-smartapps-bigscreen-jsx/` directory:
6
+ Navigate to `<root>/node_modules/@types/react/`.
7
+ All react types are inside files `index.d.ts` and `global.d.ts`. Modify them to suit your needs and afterwards run this commands in the `<root>` directory:
8
8
 
9
9
  `npx patch-package @types/react`
10
+ `npm install`
10
11
 
11
- You can confirm everything worked by looking into `packages/types-smartapps-bigscreen-jsx/patches/`. You should see a file named `@types+react+<version-etc>.patch` that includes diff of your changes.
12
+ You can confirm everything worked by looking into `<root>/patches/`. You should see a file named `@types+react+<version-etc>.patch` that includes diff of your changes.
@@ -1406,10 +1406,10 @@ declare namespace React {
1406
1406
  onCompositionUpdateCapture?: CompositionEventHandler<T> | undefined;
1407
1407
 
1408
1408
  // Focus Events
1409
- onFocus?: FocusEventHandler<T> | undefined;
1410
- onFocusCapture?: FocusEventHandler<T> | undefined;
1411
- onBlur?: FocusEventHandler<T> | undefined;
1412
- onBlurCapture?: FocusEventHandler<T> | undefined;
1409
+ onFocus?: (event: any) => void;
1410
+ onFocusCapture?: (event: globalThis.FocusEvent) => void;
1411
+ onBlur?: (event: globalThis.FocusEvent) => void;
1412
+ onBlurCapture?: (event: globalThis.FocusEvent) => void;
1413
1413
 
1414
1414
  // Form Events
1415
1415
  onChange?: (event: globalThis.Event) => void;
@@ -35,6 +35,8 @@ import { generateUuid } from '@24i/bigscreen-sdk/utils/generateUuid';
35
35
  - **[timers](#timers)** - functions to simplify work with setTimeout and setInterval.
36
36
  - **[counter](#counter)** - exports `createCounter` that allows you to add value to counter till callback is triggered at some point.
37
37
  - **[xhr](#xhr)** - provides wrap over `XMLHttpRequest`, with the possibility to repeat the failing request.
38
+ - **[simulateKeyPress](#simulateKeyPress)** - simulate key press in the `keydown` handler.
39
+ - **[keyPressSimulator](#keyPressSimulator)** - simulate key press globally for the specific keys.
38
40
 
39
41
  ### addClass
40
42
  Adds a class to the element in the reference.
@@ -347,3 +349,11 @@ const retryConfig = {
347
349
  const options = { ...xhrSendOptions, retryConfig };
348
350
  const response = await xhrSendRetry(url, options);
349
351
  ```
352
+
353
+ ### keyPressSimulator and simulateKeyPress
354
+ Modifies `keydown` event behavior to be similar to `keypress` and causes triggering `keydown` event only once
355
+ before the key is released. This is because `keypress` event is deprecated and it is not implemented
356
+ with the same behavior on all platforms.
357
+
358
+ - Use globally for the specific keys with `keyPressSimulator` util.
359
+ - Use locally in the `keydown` handler with `simulateKeyPress` util.
@@ -34,3 +34,8 @@ export {
34
34
  } from './timeConstants';
35
35
  export { xhrSend, xhrSendRetry, defaultRetryConfig, mockXhr } from './xhr';
36
36
  export type { XhrOptions, XhrResponse, RetryConfig, RSOptions, ShouldRetryParam } from './xhr';
37
+ export {
38
+ registerKeyPressSimulator,
39
+ unregisterKeyPressSimulator,
40
+ simulateKeyPress,
41
+ } from './keyPress';
@@ -0,0 +1,2 @@
1
+ export { registerKeyPressSimulator, unregisterKeyPressSimulator } from './keyPressSimulator';
2
+ export { simulateKeyPress } from './simulateKeyPress';
@@ -0,0 +1,44 @@
1
+ import { Key } from '@24i/bigscreen-sdk/driver-base/keymap';
2
+ import { stopEvent } from '@24i/bigscreen-sdk/utils';
3
+
4
+ let keysPressed: Record<number, boolean>;
5
+
6
+ const onKeyDown = (e: KeyboardEvent) => {
7
+ const { keyCode } = e;
8
+ if (keysPressed[keyCode] === true) {
9
+ stopEvent(e);
10
+ } else if (typeof keysPressed[keyCode] !== 'undefined') {
11
+ keysPressed[keyCode] = true;
12
+ }
13
+ };
14
+
15
+ const onKeyUp = (e: KeyboardEvent) => {
16
+ const { keyCode } = e;
17
+ if (keysPressed[keyCode] === true) keysPressed[keyCode] = false;
18
+ };
19
+
20
+ /**
21
+ * Modifies `keydown` event behavior to similar to `keypress` and causes
22
+ * triggering `keydown` event only once before the key is released. This is
23
+ * because `keypress` event is deprecated and it is not implemented with the same
24
+ * behavior on all platforms. This functionality is applied across the board for
25
+ * all provided keys globally. To use in one specific handler only
26
+ * use `simulateKeyPress` util.
27
+ * @param keys array with keys to behave as keypress
28
+ */
29
+ export const registerKeyPressSimulator = (keys: Key[]) => {
30
+ keysPressed = {};
31
+ keys.forEach((key) => {
32
+ keysPressed[key.keyCode] = false;
33
+ });
34
+ window.document.addEventListener('keydown', onKeyDown, true);
35
+ window.document.addEventListener('keyup', onKeyUp, true);
36
+ };
37
+
38
+ /**
39
+ * Unregister key press simulator events, turn off the functionality.
40
+ */
41
+ export const unregisterKeyPressSimulator = () => {
42
+ window.document.removeEventListener('keydown', onKeyDown, true);
43
+ window.document.removeEventListener('keyup', onKeyUp, true);
44
+ };
@@ -0,0 +1,25 @@
1
+ const NO_KEY = -1;
2
+
3
+ /**
4
+ * Returns a new `keydown` handler wrapped with the simulated key press functionality.
5
+ * Modifies `keydown` event behavior to similar to `keypress` and causes triggering keydown
6
+ * event only once before the key is released. This is because `keypress` event is deprecated
7
+ * and it is not implemented with the same behavior on all platforms. Apply this globally for
8
+ * the specific keys by using `keyPressSimulator` util.
9
+ * @param onKeyDown original handler for keydown event
10
+ * @returns decorated handler with key press functionality
11
+ */
12
+ export const simulateKeyPress = (onKeyDown: (e: KeyboardEvent) => void) => {
13
+ let keyPressed = NO_KEY;
14
+ const onKeyUp = (e: KeyboardEvent) => {
15
+ if (e.keyCode !== keyPressed) return;
16
+ window.document.removeEventListener('keyup', onKeyUp);
17
+ keyPressed = NO_KEY;
18
+ };
19
+ return (e: KeyboardEvent) => {
20
+ if (keyPressed !== NO_KEY) return;
21
+ keyPressed = e.keyCode;
22
+ window.document.addEventListener('keyup', onKeyUp);
23
+ onKeyDown(e);
24
+ };
25
+ };