@zohodesk/client_build_tool 0.0.1

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 (248) hide show
  1. package/.babelrc +12 -0
  2. package/.lintstagedrc +3 -0
  3. package/.vscode/settings.json +5 -0
  4. package/CHANGELOG.md +9 -0
  5. package/ConfigurationDocumentation.md +401 -0
  6. package/ContributionGuide.md +2 -0
  7. package/NOTES-Dec12.md +12 -0
  8. package/README.md +91 -0
  9. package/README_backup.md +82 -0
  10. package/TODO.md +35 -0
  11. package/cli.js +31 -0
  12. package/coverage/base.css +224 -0
  13. package/coverage/block-navigation.js +87 -0
  14. package/coverage/coverage-final.json +2 -0
  15. package/coverage/coverage-summary.json +3 -0
  16. package/coverage/favicon.png +0 -0
  17. package/coverage/index.html +116 -0
  18. package/coverage/prettify.css +1 -0
  19. package/coverage/prettify.js +2 -0
  20. package/coverage/sort-arrow-sprite.png +0 -0
  21. package/coverage/sorter.js +196 -0
  22. package/coverage/updateArrayWithDefault.js.html +196 -0
  23. package/docs/CSSCustomPluginsDocumentation.md +71 -0
  24. package/docs/CustomChunksConfiguration.md +0 -0
  25. package/docs/EFCFileTemplate.md +0 -0
  26. package/docs/MockApi.md +61 -0
  27. package/docs/NameTemplateUtility.md +93 -0
  28. package/docs/ServiseWorkerTemplate.md +0 -0
  29. package/docs/SupportedBrowserVersions.md +61 -0
  30. package/helpDocs/check.js +7 -0
  31. package/helpDocs/commmands/build.md +0 -0
  32. package/helpDocs/commmands/start.md +0 -0
  33. package/helpDocs/examples/buildWithContentHash.md +0 -0
  34. package/helpDocs/examples/startDevServer.md +0 -0
  35. package/helpDocs/examples/startWithMockAPI.md +0 -0
  36. package/helpDocs/node18-env.md +30 -0
  37. package/helpDocs/troubleshootings/NewMachineSetup.md +71 -0
  38. package/helpDocs/troubleshootings/README.md +9 -0
  39. package/helpDocs/troubleshootings/hg_install.sh +18 -0
  40. package/helpDocs/troubleshootings/newMachineMac.sh +86 -0
  41. package/helpDocs/troubleshootings/newMachineUbundu.bash +84 -0
  42. package/lib/allCommandsConfigs.js +25 -0
  43. package/lib/commands/build/commandExecutor.js +17 -0
  44. package/lib/commands/build/config.js +12 -0
  45. package/lib/commands/build/errorHander.js +10 -0
  46. package/lib/commands/build/optionsProcessor.js +35 -0
  47. package/lib/commands/buildEs/commandExecutor.js +33 -0
  48. package/lib/commands/buildEs/config.js +12 -0
  49. package/lib/commands/buildLib/commandExecutor.js +33 -0
  50. package/lib/commands/buildLib/config.js +12 -0
  51. package/lib/commands/mockserver/commandExecutor.js +43 -0
  52. package/lib/commands/mockserver/config.js +12 -0
  53. package/lib/commands/start/commandExecutor.js +12 -0
  54. package/lib/commands/start/config.js +12 -0
  55. package/lib/commands/start/deprecationHandler.js +10 -0
  56. package/lib/commands/start/errorHander.js +10 -0
  57. package/lib/commands/start/optionsProcessor.js +30 -0
  58. package/lib/commands/start/postProcessor.js +10 -0
  59. package/lib/commands/start/preProcessor.js +10 -0
  60. package/lib/commands/template/commandExecutor.js +28 -0
  61. package/lib/commands/template/config.js +12 -0
  62. package/lib/commands/version/commandExecutor.js +14 -0
  63. package/lib/commands/version/config.js +12 -0
  64. package/lib/commands/version/errorHander.js +10 -0
  65. package/lib/commandsRouter.js +74 -0
  66. package/lib/index.js +12 -0
  67. package/lib/logger.js +34 -0
  68. package/lib/schemas/applyValuesToSchema/index.js +34 -0
  69. package/lib/schemas/applyValuesToSchema/isObject.js +10 -0
  70. package/lib/schemas/applyValuesToSchema/isValid.js +14 -0
  71. package/lib/schemas/cliArgsToObject.js +39 -0
  72. package/lib/schemas/defaultConfigValues.js +276 -0
  73. package/lib/schemas/defaultConfigValuesOnly.js +161 -0
  74. package/lib/schemas/deprecatedOptionsHandler.js +67 -0
  75. package/lib/schemas/getNpmVersion.js +22 -0
  76. package/lib/schemas/giveDefaultValue.js +18 -0
  77. package/lib/schemas/npmConfigToObject.js +35 -0
  78. package/lib/schemas/readOptions.js +54 -0
  79. package/lib/schemas/readOptionsForConfigFile.js +42 -0
  80. package/lib/shared/babel/babelWebConfig.js +51 -0
  81. package/lib/shared/babel/babel_plugins/removeAttributesPlugin.js +23 -0
  82. package/lib/shared/babel/defaultBabelPlugins.js +26 -0
  83. package/lib/shared/babel/runBabelForJSFile.js +24 -0
  84. package/lib/shared/bundler/webpack/common/decidePublicPath.js +52 -0
  85. package/lib/shared/bundler/webpack/common/libAlias.js +31 -0
  86. package/lib/shared/bundler/webpack/common/modeUtils.js +31 -0
  87. package/lib/shared/bundler/webpack/common/nameTemplates.js +78 -0
  88. package/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
  89. package/lib/shared/bundler/webpack/configCustomLoaders.js +10 -0
  90. package/lib/shared/bundler/webpack/cssLoaders.js +16 -0
  91. package/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +95 -0
  92. package/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +112 -0
  93. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
  94. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +172 -0
  95. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +76 -0
  96. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +203 -0
  97. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
  98. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +73 -0
  99. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +88 -0
  100. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
  101. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
  102. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
  103. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +76 -0
  104. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +39 -0
  105. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +50 -0
  106. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +68 -0
  107. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
  108. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
  109. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +43 -0
  110. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
  111. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +66 -0
  112. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +13 -0
  113. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
  114. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
  115. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +129 -0
  116. package/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +54 -0
  117. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +24 -0
  118. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +17 -0
  119. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +35 -0
  120. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +18 -0
  121. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +44 -0
  122. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +18 -0
  123. package/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
  124. package/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +191 -0
  125. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +62 -0
  126. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +84 -0
  127. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
  128. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +27 -0
  129. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/classHandling.js +20 -0
  130. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/index.js +78 -0
  131. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/selectorWeightPrefixAdder.js +51 -0
  132. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/windowsModification.js +16 -0
  133. package/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +110 -0
  134. package/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +38 -0
  135. package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/addHashToFilePath.js +22 -0
  136. package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/index.js +55 -0
  137. package/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/index.js.js +49 -0
  138. package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +62 -0
  139. package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +362 -0
  140. package/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +14 -0
  141. package/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +57 -0
  142. package/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +87 -0
  143. package/lib/shared/bundler/webpack/defaultVendorPatternList.js +13 -0
  144. package/lib/shared/bundler/webpack/entryConfig.js +28 -0
  145. package/lib/shared/bundler/webpack/externals.js +13 -0
  146. package/lib/shared/bundler/webpack/getCSSLoaders.js +27 -0
  147. package/lib/shared/bundler/webpack/getFilenameFromModule.js +24 -0
  148. package/lib/shared/bundler/webpack/getSourceMapType.js +10 -0
  149. package/lib/shared/bundler/webpack/jsLoaders.js +17 -0
  150. package/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +12 -0
  151. package/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +18 -0
  152. package/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +56 -0
  153. package/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
  154. package/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +37 -0
  155. package/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
  156. package/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +138 -0
  157. package/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +60 -0
  158. package/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +21 -0
  159. package/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
  160. package/lib/shared/bundler/webpack/optimizationConfig.js +43 -0
  161. package/lib/shared/bundler/webpack/outputConfig.js +28 -0
  162. package/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +40 -0
  163. package/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +24 -0
  164. package/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +27 -0
  165. package/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +63 -0
  166. package/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +46 -0
  167. package/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +36 -0
  168. package/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +56 -0
  169. package/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +41 -0
  170. package/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
  171. package/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +32 -0
  172. package/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +23 -0
  173. package/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +24 -0
  174. package/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +21 -0
  175. package/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
  176. package/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +28 -0
  177. package/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +40 -0
  178. package/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +20 -0
  179. package/lib/shared/bundler/webpack/pluginConfigs/configTPHashMappingPlugin.js +32 -0
  180. package/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +25 -0
  181. package/lib/shared/bundler/webpack/plugins.js +50 -0
  182. package/lib/shared/bundler/webpack/resolvers.js +81 -0
  183. package/lib/shared/bundler/webpack/splitChunksConfig.js +113 -0
  184. package/lib/shared/bundler/webpack/statsConfig.js +21 -0
  185. package/lib/shared/bundler/webpack/utils/index.js +26 -0
  186. package/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +34 -0
  187. package/lib/shared/bundler/webpack/webpackBuild.js +27 -0
  188. package/lib/shared/bundler/webpack/webpackConfig.js +56 -0
  189. package/lib/shared/commands-utils/doBasicRequirementCheck.js +17 -0
  190. package/lib/shared/commands-utils/getCliPath.js +39 -0
  191. package/lib/shared/commands-utils/index.js +29 -0
  192. package/lib/shared/commands-utils/log.js +13 -0
  193. package/lib/shared/commands-utils/readArgsFormCommandLine.js +11 -0
  194. package/lib/shared/commands-utils/readOptionFormCommandLine.js +11 -0
  195. package/lib/shared/commands-utils/spawnSyncIO.js +38 -0
  196. package/lib/shared/constants.js +45 -0
  197. package/lib/shared/fileUtils/copyFile.js +38 -0
  198. package/lib/shared/fileUtils/directoryIterator.js +21 -0
  199. package/lib/shared/fileUtils/watchRun.js +100 -0
  200. package/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +21 -0
  201. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +10 -0
  202. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +66 -0
  203. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +136 -0
  204. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +32 -0
  205. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +20 -0
  206. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +20 -0
  207. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +24 -0
  208. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +43 -0
  209. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +52 -0
  210. package/lib/shared/postcss/custom_postcss_plugins/RTLSplitPlugin.js +139 -0
  211. package/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +90 -0
  212. package/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +57 -0
  213. package/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +343 -0
  214. package/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +55 -0
  215. package/lib/shared/postcss/getAllowedPostCssPlugins.js +30 -0
  216. package/lib/shared/postcss/getSpecificPostCssPlugin.js +58 -0
  217. package/lib/shared/postcss/runPostCssForCssFile.js +37 -0
  218. package/lib/shared/server/configWebpackDevMiddleware.js +41 -0
  219. package/lib/shared/server/corsHandling.js +21 -0
  220. package/lib/shared/server/getIp.js +30 -0
  221. package/lib/shared/server/getServerURL.js +29 -0
  222. package/lib/shared/server/httpsOptions.js +46 -0
  223. package/lib/shared/server/initExpressApp.js +19 -0
  224. package/lib/shared/server/initialHTMLHandling.js +99 -0
  225. package/lib/shared/server/mockApiHandler.js +60 -0
  226. package/lib/shared/server/mockServer.js +41 -0
  227. package/lib/shared/server/serveContextFiles.js +27 -0
  228. package/lib/shared/server/serverBywebpackDevMiddleware.js +35 -0
  229. package/lib/shared/server/startHttpServer.js +26 -0
  230. package/lib/shared/server/startHttpsServer.js +38 -0
  231. package/lib/shared/server/unwanted/addHttp2Server.js +41 -0
  232. package/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
  233. package/lib/shared/server/unwanted/mockApiSupport.js +19 -0
  234. package/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
  235. package/lib/shared/server/urlConcat.js +32 -0
  236. package/lib/shared/utils/requireLocalOrGlobal.js +81 -0
  237. package/lib/shared/utils/utils.js +1 -0
  238. package/lib/shared/utils/versionPrint.js +20 -0
  239. package/npm-shrinkwrap.json +14102 -0
  240. package/package.json +54 -0
  241. package/polyfillForOldNodeVersion.js +10 -0
  242. package/result.json +1 -0
  243. package/templates/app/README.MD +30 -0
  244. package/templates/app/package.json +12 -0
  245. package/templates/library/README.MD +28 -0
  246. package/templates/library/package.json +11 -0
  247. package/templates/wms/index.html +43 -0
  248. package/unittest/index.html +37 -0
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.httpsOptionsWithUserFriendlyError = httpsOptionsWithUserFriendlyError;
7
+
8
+ var _logger = require("../../logger");
9
+
10
+ var _requireLocalOrGlobal = require("../utils/requireLocalOrGlobal");
11
+
12
+ const defaultCertNpm = '@zohodesk-private/client_dev_cert';
13
+
14
+ function httpsOptionsWithUserFriendlyError(options) {
15
+ const {
16
+ httpsCerts
17
+ } = options.server;
18
+
19
+ if (typeof httpsCerts === 'string' && httpsCerts) {
20
+ const certificate = (0, _requireLocalOrGlobal.requireAllPossible)(httpsCerts);
21
+
22
+ if (certificate.local) {
23
+ (0, _logger.verboseLogger)(`Local '${httpsCerts}' package taken as HTTPS certificate`);
24
+ return certificate.local.httpsOptions;
25
+ }
26
+
27
+ if (certificate.global) {
28
+ (0, _logger.messageLogger)(`Global '${httpsCerts}' package taken as HTTPS certificate`);
29
+ return certificate.global.httpsOptions;
30
+ }
31
+
32
+ (0, _logger.errorLogger)(`
33
+ You have given 'server.httpsCerts' as "${httpsCerts}".
34
+ But it seems that file path have some problem;`);
35
+ process.exit(0);
36
+ }
37
+
38
+ const globalCertificate = (0, _requireLocalOrGlobal.requireGlobal)(defaultCertNpm);
39
+
40
+ if (globalCertificate) {
41
+ (0, _logger.messageLogger)(`Global '${defaultCertNpm}' package taken as HTTPS certificate`);
42
+ return globalCertificate.httpsOptions;
43
+ }
44
+
45
+ return null;
46
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.initExpressApp = initExpressApp;
7
+
8
+ var _express = _interopRequireDefault(require("express"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function initExpressApp() {
13
+ const app = (0, _express.default)();
14
+ app.use(_express.default.json());
15
+ app.use(_express.default.urlencoded({
16
+ extended: true
17
+ }));
18
+ return app;
19
+ }
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.initialHTMLHandling = initialHTMLHandling;
7
+
8
+ var _logger = require("../../logger");
9
+
10
+ /* eslint-disable no-use-before-define */
11
+ function initialHTMLHandling(compiler, app, options) {
12
+ const {
13
+ enableMockReplace
14
+ } = options;
15
+ const {
16
+ i18nChunkSplit
17
+ } = options;
18
+ const {
19
+ rtlSplit
20
+ } = options.css.plugins;
21
+ const {
22
+ httpsUrl,
23
+ httpUrl,
24
+ contextURL
25
+ } = options.serverExtras;
26
+ let initialHTML;
27
+ compiler.hooks.afterCompile.tap('ReactCLI', compilation => {
28
+ const indexHtml = compilation.assets['index.html']; // compiler.outputFileSystem.readFileSync("build/index.html");
29
+
30
+ if (indexHtml) {
31
+ initialHTML = indexHtml.source();
32
+ }
33
+ });
34
+ compiler.hooks.compile.tap('ReactCLI', () => {
35
+ (0, _logger.messageLogger)('Webpack re-building .......');
36
+ });
37
+ app.use(`${contextURL}/*`, (req, res) => {
38
+ const newHTML = modifyInitialHTML({
39
+ initialHTML,
40
+ options,
41
+ enableMockReplace,
42
+ req
43
+ });
44
+ res.send(newHTML);
45
+ });
46
+
47
+ function modifyInitialHTML({
48
+ initialHTML,
49
+ enableMockReplace,
50
+ req
51
+ }) {
52
+ let newHTML = enableMockReplace && initialHTML ? mockReplace(initialHTML, req.query) : initialHTML;
53
+
54
+ if (req.protocol === 'http') {
55
+ newHTML = newHTML.replaceAll(httpsUrl, httpUrl);
56
+ }
57
+
58
+ return newHTML;
59
+ }
60
+
61
+ function mockReplace(inputHTML, query) {
62
+ const {
63
+ dir,
64
+ locale
65
+ } = query || {};
66
+ let newHTML = inputHTML;
67
+
68
+ if (i18nChunkSplit.chunkSplitEnable) {
69
+ newHTML = replaceWithRandomLocale(newHTML, i18nChunkSplit.templateLabel, locale);
70
+ }
71
+
72
+ if (rtlSplit.enableRTLSplit) {
73
+ newHTML = replaceWithRandomDir(newHTML, rtlSplit.templateLabel, dir);
74
+ }
75
+
76
+ return newHTML;
77
+ }
78
+
79
+ function replaceWithRandomLocale(initialHTML, templateLabel, queryLocale) {
80
+ const locales = ['ar_EG', 'da_DK', 'de_DE', 'en_US', 'es_AR', 'es_ES', 'fr_FR', 'hi_IN', 'in_ID', 'it_IT', 'iw_IL', 'ja_JP', 'nl_NL', 'pl_PL', 'pt_BR', 'pt_PT', 'ro_RO', 'ru_RU', 'sv_SE', 'ta_IN', 'te_IN', 'tr_TR', 'zh_CN', 'zh_TW']; // app.use(`/desk/*`, (req, res) => {
81
+ // const locale = 'ta_IN';
82
+
83
+ const locale = queryLocale || locales[Math.floor(Math.random() * locales.length)];
84
+ (0, _logger.verboseLogger)({
85
+ locale
86
+ });
87
+ return initialHTML.replaceAll(templateLabel, locale);
88
+ }
89
+
90
+ function replaceWithRandomDir(initialHTML, templateLabel, queryDir) {
91
+ const dirs = ['ltr', 'rtl']; // const dir = 'rtl';
92
+
93
+ const dir = queryDir || dirs[Math.floor(Math.random() * dirs.length)];
94
+ (0, _logger.verboseLogger)({
95
+ dir
96
+ });
97
+ return initialHTML.replaceAll(templateLabel, dir);
98
+ }
99
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleMockApi = handleMockApi;
7
+ exports.mockApiHandler = mockApiHandler;
8
+
9
+ var _fs = require("fs");
10
+
11
+ var _httpProxyMiddleware = require("http-proxy-middleware");
12
+
13
+ var _constants = require("../constants");
14
+
15
+ var _logger = require("../../logger");
16
+
17
+ function mockApiHandler(app, options) {
18
+ const {
19
+ enable,
20
+ separateSeverPort,
21
+ mockEntryFile,
22
+ mockPrefix
23
+ } = options.mockServer;
24
+
25
+ if (!enable) {
26
+ return;
27
+ }
28
+
29
+ if (separateSeverPort) {
30
+ app.use(mockPrefix, (0, _httpProxyMiddleware.createProxyMiddleware)({
31
+ // eslint-disable-next-line no-useless-concat
32
+ target: 'ht' + `tp://localhost:${separateSeverPort}`,
33
+ changeOrigin: true
34
+ }));
35
+ (0, _logger.messageLogger)(`Please make sure you run mock Server separately in specified port (${separateSeverPort})`);
36
+ (0, _logger.messageLogger)(`If not running already you can run "cbt mock:server --mock_port=${separateSeverPort}"`);
37
+ } else {
38
+ // eslint-disable-next-line no-use-before-define
39
+ handleMockApi(mockEntryFile, app);
40
+ }
41
+ }
42
+
43
+ function handleMockApi(mockEntryFile, app) {
44
+ const entryFilePath = (0, _constants.joinWithAppPath)(mockEntryFile); // eslint-disable-next-line no-use-before-define
45
+
46
+ const mockFunc = safeRequire(entryFilePath);
47
+ console.log(mockFunc);
48
+ mockFunc?.mockApi?.(app);
49
+ } // function handleMockApi(params) {
50
+ // }
51
+
52
+
53
+ function safeRequire(entryFilePath) {
54
+ if (!(0, _fs.existsSync)(entryFilePath)) {
55
+ return null;
56
+ } // eslint-disable-next-line import/no-dynamic-require, global-require
57
+
58
+
59
+ return require(entryFilePath);
60
+ }
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ var _readOptions = require("../../schemas/readOptions");
5
+
6
+ var _corsHandling = require("./corsHandling");
7
+
8
+ var _getServerURL = require("./getServerURL");
9
+
10
+ var _initExpressApp = require("./initExpressApp");
11
+
12
+ var _mockApiHandler = require("./mockApiHandler");
13
+
14
+ var _startHttpServer = require("./startHttpServer");
15
+
16
+ function getMockServerExtras(options) {
17
+ const {
18
+ separateSeverPort
19
+ } = options.mockServer;
20
+ const httpPort = Number(separateSeverPort);
21
+ const httpUrl = (0, _getServerURL.getServerUrl)({
22
+ domain: 'localhost',
23
+ port: httpPort,
24
+ protocol: 'http'
25
+ });
26
+ return {
27
+ httpPort,
28
+ httpUrl,
29
+ isHttps: false
30
+ };
31
+ }
32
+
33
+ const options = (0, _readOptions.getOptions)();
34
+ const {
35
+ mockEntryFile
36
+ } = options.mockServer;
37
+ options.serverExtras = getMockServerExtras(options);
38
+ const app = (0, _initExpressApp.initExpressApp)();
39
+ (0, _corsHandling.corsHandling)(app, options);
40
+ (0, _startHttpServer.startHttpServer)(app, options);
41
+ (0, _mockApiHandler.handleMockApi)(mockEntryFile, app);
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.serveContextFiles = serveContextFiles;
7
+
8
+ var _express = _interopRequireDefault(require("express"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function serveContextFiles(app, options) {
13
+ const {
14
+ context,
15
+ contextFolderPath
16
+ } = options;
17
+ const {
18
+ contextURL
19
+ } = options.serverExtras;
20
+ app.use(`${contextURL}/fonts`, _express.default.static(`${context}/fonts`));
21
+
22
+ if (contextURL) {
23
+ app.use(contextURL, _express.default.static(contextFolderPath));
24
+ } else {
25
+ app.use(_express.default.static(context));
26
+ }
27
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.run = run;
7
+
8
+ var _corsHandling = require("./corsHandling");
9
+
10
+ var _initExpressApp = require("./initExpressApp");
11
+
12
+ var _configWebpackDevMiddleware = require("./configWebpackDevMiddleware");
13
+
14
+ var _startHttpsServer = require("./startHttpsServer");
15
+
16
+ var _initialHTMLHandling = require("./initialHTMLHandling");
17
+
18
+ var _startHttpServer = require("./startHttpServer");
19
+
20
+ var _mockApiHandler = require("./mockApiHandler");
21
+
22
+ // import { serveContextFiles } from './serveContextFiles';
23
+ // import { startHttpServer } from './startHttpServer';
24
+ function run(options) {
25
+ const app = (0, _initExpressApp.initExpressApp)();
26
+ (0, _corsHandling.corsHandling)(app, options);
27
+ (0, _mockApiHandler.mockApiHandler)(app, options);
28
+ const {
29
+ compiler
30
+ } = (0, _configWebpackDevMiddleware.configWebpackDevMiddleware)(app, options); // serveContextFiles(app, options);
31
+
32
+ (0, _startHttpsServer.startHttpsServer)(app, options);
33
+ (0, _startHttpServer.startHttpServer)(app, options);
34
+ (0, _initialHTMLHandling.initialHTMLHandling)(compiler, app, options);
35
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.startHttpServer = startHttpServer;
7
+
8
+ var _logger = require("../../logger");
9
+
10
+ function startHttpServer(app, options) {
11
+ const {
12
+ serverExtras
13
+ } = options;
14
+ const {
15
+ httpPort,
16
+ httpUrl
17
+ } = serverExtras;
18
+ app.listen(httpPort, err => {
19
+ if (err) {
20
+ throw err;
21
+ }
22
+
23
+ (0, _logger.messageLogger)(`Listening at ${httpUrl}`);
24
+ });
25
+ return app;
26
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.startHttpsServer = startHttpsServer;
7
+
8
+ var _https = _interopRequireDefault(require("https"));
9
+
10
+ var _logger = require("../../logger");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function startHttpsServer(app, options) {
15
+ const {
16
+ httpsOptions,
17
+ serverExtras
18
+ } = options;
19
+ const {
20
+ httpsPort,
21
+ httpsUrl
22
+ } = serverExtras;
23
+
24
+ if (!httpsOptions) {
25
+ return null;
26
+ }
27
+
28
+ const httpsServer = _https.default.createServer(httpsOptions, app);
29
+
30
+ httpsServer.listen(httpsPort, err => {
31
+ if (err) {
32
+ throw err;
33
+ }
34
+
35
+ (0, _logger.messageLogger)(`Listening at ${httpsUrl}`);
36
+ });
37
+ return httpsServer;
38
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addHttp2Server = addHttp2Server;
7
+
8
+ var _utils = require("../../../src/utils");
9
+
10
+ var _httpsOptions = require("../../../src/servers/httpsOptions");
11
+
12
+ function addHttp2Server(http2Port, host, domain, contextURL) {
13
+ const isCompatableHttp2 = Number(process.version.slice(1).split('.')[0]) >= 8;
14
+
15
+ if (isCompatableHttp2) {
16
+ const http2 = require('http2');
17
+
18
+ const http2Server = http2.createSecureServer(_httpsOptions.httpsOptions); // eslint-disable-next-line no-unused-vars
19
+
20
+ http2Server.on('stream', (stream, headers) => {
21
+ stream.respond({
22
+ 'content-type': 'text/html',
23
+ ':status': 200
24
+ });
25
+ stream.end('<h1>Hello World! <br>Working with http2</h1>');
26
+ });
27
+ http2Server.listen(http2Port, err => {
28
+ if (err) {
29
+ throw err;
30
+ }
31
+
32
+ (0, _utils.log)(`Listening at ${(0, _utils.getServerURL)({
33
+ host,
34
+ domain,
35
+ port: http2Port
36
+ }, 'htt' + 'ps')}${contextURL}/`, 'http2 server');
37
+ });
38
+ } else {
39
+ (0, _utils.log)('Your node version didn\'t adopted http2 support. Kindly update that to 8 LTS or above you can engage the http2');
40
+ }
41
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configWebpackDevMiddleware = configWebpackDevMiddleware;
7
+
8
+ var _webpackDevMiddleware = _interopRequireDefault(require("webpack-dev-middleware"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function configWebpackDevMiddleware({
13
+ publicPath,
14
+ writeToDisk,
15
+ enableDevCache,
16
+ disableWatch,
17
+ compress,
18
+ compiler
19
+ }) {
20
+ let webpackServerOptions = {
21
+ logLevel: 'error',
22
+ publicPath,
23
+ headers: {
24
+ 'Access-Control-Allow-Origin': '*'
25
+ },
26
+ compress
27
+ };
28
+
29
+ if (enableDevCache) {
30
+ webpackServerOptions.headers['Cache-Control'] = 'public, max-age=604800';
31
+ }
32
+
33
+ if (disableWatch) {
34
+ webpackServerOptions.watchOptions = {
35
+ ignored: /./
36
+ };
37
+ }
38
+
39
+ if (writeToDisk) {
40
+ webpackServerOptions.writeToDisk = true;
41
+ }
42
+
43
+ return (0, _webpackDevMiddleware.default)(compiler, webpackServerOptions);
44
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mockApiSupport = mockApiSupport;
7
+
8
+ var _httpProxyMiddleware = require("http-proxy-middleware");
9
+
10
+ function mockApiSupport(app, server) {
11
+ const {
12
+ mockPrefix,
13
+ mockPort
14
+ } = server;
15
+ app.use(mockPrefix, (0, _httpProxyMiddleware.createProxyMiddleware)({
16
+ target: 'ht' + `tp://localhost:${mockPort}`,
17
+ changeOrigin: true
18
+ }));
19
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.websocketMockSetup = websocketMockSetup;
7
+
8
+ var _ws = _interopRequireDefault(require("ws"));
9
+
10
+ var _logger = require("../../../logger");
11
+
12
+ var _constants = require("../../constants");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function websocketMockSetup(app, httpsServer) {
17
+ app.use('/wms/*', (req, res) => {
18
+ res.sendFile((0, _constants.getTemplatePath)('wms', 'index.html'));
19
+ });
20
+ const wss = new _ws.default.Server({
21
+ server: httpsServer
22
+ });
23
+ let wsPool = [];
24
+ wss.on('connection', ws => {
25
+ wsPool.push(ws);
26
+ ws.on('close', () => {
27
+ wsPool = wsPool.filter(ws1 => ws1 !== ws);
28
+ });
29
+ ws.on('message', message => {
30
+ (0, _logger.messageLogger)('received: %s', message);
31
+ });
32
+ ws.send('something');
33
+ });
34
+ app.post('/wmsmockapi', (req, res) => {
35
+ wsPool.forEach(ws => {
36
+ const {
37
+ body
38
+ } = req;
39
+
40
+ try {
41
+ ws.send(JSON.stringify(body));
42
+ } catch (e) {
43
+ (0, _logger.messageLogger)(e, body);
44
+ }
45
+ });
46
+ res.send('success');
47
+ });
48
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.urlConcat = urlConcat;
7
+
8
+ /* eslint-disable no-use-before-define */
9
+
10
+ /**
11
+ *
12
+ * @param {String} url
13
+ * @param {String} path
14
+ */
15
+ function urlConcat(url, path) {
16
+ const slashRemovedUrl = removeLastSlash(url);
17
+ const slashRemovedPath = removeFrontSlash(path);
18
+
19
+ if (slashRemovedUrl === '') {
20
+ return path;
21
+ }
22
+
23
+ return `${slashRemovedUrl}/${slashRemovedPath}`;
24
+ }
25
+
26
+ function removeLastSlash(url) {
27
+ return url.replace(/\/+$/, '');
28
+ }
29
+
30
+ function removeFrontSlash(url) {
31
+ return url.replace(/^\/+/, '');
32
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.globalNodeModules = void 0;
7
+ exports.requireAllPossible = requireAllPossible;
8
+ exports.requireGlobal = requireGlobal;
9
+ exports.requireInFolder = requireInFolder;
10
+ exports.requireLocal = requireLocal;
11
+ exports.requireLocalOrGlobal = requireLocalOrGlobal;
12
+
13
+ var _child_process = require("child_process");
14
+
15
+ var _path = _interopRequireDefault(require("path"));
16
+
17
+ var _constants = require("../constants");
18
+
19
+ var _logger = require("../../logger");
20
+
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+
23
+ const globalNodeModules = _path.default.join(`${(0, _child_process.execSync)('npm config get prefix')}`.trim(), 'lib');
24
+
25
+ exports.globalNodeModules = globalNodeModules;
26
+
27
+ function requireLocalOrGlobal(moduleName, opts = {}) {
28
+ let {
29
+ global = true
30
+ } = opts;
31
+ const {
32
+ local = true
33
+ } = opts;
34
+ const isRelativePath = moduleName[0] === '.'; // NOTE: if starts with . then it only mean local
35
+
36
+ if (isRelativePath) {
37
+ global = false;
38
+ }
39
+
40
+ const paths = [local && _constants.appPath, global && globalNodeModules].filter(Boolean); // eslint-disable-next-line no-use-before-define
41
+
42
+ return requireInFolder(moduleName, paths);
43
+ }
44
+
45
+ function requireInFolder(moduleName, paths) {
46
+ try {
47
+ const moduleResolvePath = require.resolve(moduleName, {
48
+ paths
49
+ }); // eslint-disable-next-line import/no-dynamic-require, global-require
50
+
51
+
52
+ return require(moduleResolvePath);
53
+ } catch (error) {
54
+ // NOTE: since we return null we can check out side
55
+ (0, _logger.verboseLogger)('Re validate: ', error);
56
+ return null;
57
+ }
58
+ }
59
+
60
+ function requireLocal(moduleName) {
61
+ return requireInFolder(moduleName, [_constants.appPath]);
62
+ }
63
+
64
+ function requireGlobal(moduleName) {
65
+ const isRelativePath = moduleName[0] === '.'; // NOTE: if starts with . then it only mean local
66
+
67
+ if (isRelativePath) {
68
+ return null;
69
+ }
70
+
71
+ return requireInFolder(moduleName, [globalNodeModules]);
72
+ }
73
+
74
+ function requireAllPossible(moduleName) {
75
+ const localP = requireLocal(moduleName);
76
+ const globalP = localP ? null : requireGlobal(moduleName);
77
+ return {
78
+ local: localP,
79
+ global: globalP
80
+ };
81
+ }
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.versionPrint = versionPrint;
7
+
8
+ var _child_process = require("child_process");
9
+
10
+ var _logger = require("../../logger");
11
+
12
+ var _package = _interopRequireDefault(require("../../../package.json"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function versionPrint(logger = _logger.messageLogger) {
17
+ logger(`Client Build Tool Version : ${_package.default.version}`);
18
+ logger(`Node Js Version : ${process.version}`);
19
+ logger(`Npm Version : ${(0, _child_process.execSync)('npm --version')}`);
20
+ }