@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,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configCopyPublicFolders = configCopyPublicFolders;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _copyWebpackPlugin = _interopRequireDefault(require("copy-webpack-plugin"));
11
+
12
+ var _fs = require("fs");
13
+
14
+ var _updateArrayWithDefault = require("../utils/updateArrayWithDefault");
15
+
16
+ var _constants = require("../../../constants");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ const defaultPublicFolders = [{
21
+ // source must be relative path not absolute path
22
+ source: 'public',
23
+ // target is the path that this copied file output path
24
+ target: 'public',
25
+ toType: 'dir'
26
+ }];
27
+
28
+ function folderPatterns(publicFolders) {
29
+ return publicFolders.map(conf => {
30
+ const publicFolderActualPath = (0, _constants.joinWithAppPath)(conf.source);
31
+
32
+ if (!conf.source || !conf.target || _path.default.isAbsolute(conf.source) || !(0, _fs.existsSync)(publicFolderActualPath)) {
33
+ return null;
34
+ }
35
+
36
+ return {
37
+ from: publicFolderActualPath,
38
+ to: conf.target,
39
+ toType: conf.toType || 'dir'
40
+ };
41
+ }).filter(Boolean);
42
+ }
43
+
44
+ function configCopyPublicFolders(options) {
45
+ let {
46
+ publicFolders
47
+ } = options;
48
+ publicFolders = (0, _updateArrayWithDefault.updateArrayWithDefault)(publicFolders, defaultPublicFolders);
49
+
50
+ if (publicFolders.length === 0) {
51
+ return null;
52
+ }
53
+
54
+ const patterns = folderPatterns(publicFolders);
55
+
56
+ if (patterns.length === 0) {
57
+ return null;
58
+ }
59
+
60
+ return new _copyWebpackPlugin.default({
61
+ patterns
62
+ });
63
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configEFCTemplatePlugin = configEFCTemplatePlugin;
7
+
8
+ var _nameTemplates = require("../common/nameTemplates");
9
+
10
+ var _EFCTemplatePlugin = require("../custom_plugins/EFCTemplatePlugin");
11
+
12
+ function configEFCTemplatePlugin(options) {
13
+ const {
14
+ publicPath
15
+ } = options;
16
+ const {
17
+ chunkSplitEnable
18
+ } = options.i18nChunkSplit;
19
+ const {
20
+ enableRTLSplit
21
+ } = options.css.plugins.rtlSplit;
22
+ const {
23
+ createSDkFile,
24
+ hasEFC,
25
+ entryPointName,
26
+ outputFile,
27
+ version,
28
+ templateFilePath
29
+ } = options.efc;
30
+
31
+ if (!hasEFC || !createSDkFile) {
32
+ return false;
33
+ }
34
+
35
+ const i18nFileNameTemplate = (0, _nameTemplates.nameTemplates)('i18njs', options);
36
+ return new _EFCTemplatePlugin.EFCTemplatePlugin({
37
+ entryPointName,
38
+ templateFilePath,
39
+ outputFile,
40
+ i18nFileNameTemplate,
41
+ version,
42
+ publicPath,
43
+ chunkSplitEnable,
44
+ enableRTLSplit
45
+ });
46
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configEnvVariables = configEnvVariables;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ var _modeUtils = require("../common/modeUtils");
11
+
12
+ function configEnvVariables(options) {
13
+ const mode = (0, _modeUtils.getWebpackMode)(options);
14
+ return new _webpack.DefinePlugin(mode === 'prod' ? {
15
+ __CLIENT__: true,
16
+ __TEST__: false,
17
+ __SERVER__: false,
18
+ __DEVELOPMENT__: true,
19
+ __LOCAL_PRODUCTION__: false,
20
+ __DEVTOOLS__: true,
21
+ __DOCS__: false,
22
+ NODE_ENV: JSON.stringify(mode),
23
+ 'process.env': {
24
+ NODE_ENV: JSON.stringify(mode)
25
+ }
26
+ } : {
27
+ __TEST__: false,
28
+ __DEVELOPMENT__: false,
29
+ // __LOCAL_PRODUCTION__: isDevelopment,
30
+ __DOCS__: false,
31
+ 'process.env': {
32
+ NODE_ENV: JSON.stringify('production')
33
+ },
34
+ __SERVER__: false
35
+ });
36
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configHtmlWebpackPlugin = configHtmlWebpackPlugin;
7
+
8
+ var _constants = require("../../../constants");
9
+
10
+ var _nameTemplates = require("../common/nameTemplates");
11
+
12
+ var _modeUtils = require("../common/modeUtils");
13
+
14
+ var _InitialHtmlPlugin = require("../custom_plugins/InitialHtmlPlugin");
15
+
16
+ function configHtmlWebpackPlugin(options) {
17
+ const {
18
+ htmlTemplate,
19
+ mode
20
+ } = options;
21
+ const {
22
+ inject,
23
+ templateFile
24
+ } = htmlTemplate;
25
+ const appInitialHTMLTemplatePath = (0, _constants.joinWithAppPath)(templateFile);
26
+ const minifyHtmlOptions = (0, _modeUtils.isProductionMode)(mode) ? // eslint-disable-next-line no-use-before-define
27
+ getHTMLMinifyOptions(htmlTemplate) : false;
28
+ return new _InitialHtmlPlugin.InitialHtmlPlugin({
29
+ mainChunkName: 'main',
30
+ filename: (0, _nameTemplates.nameTemplates)('html', options),
31
+ template: appInitialHTMLTemplatePath,
32
+ minify: minifyHtmlOptions,
33
+ inject,
34
+ scriptLoading: 'defer'
35
+ });
36
+ }
37
+
38
+ const defaultHTMLMiniFyOption = {
39
+ collapseWhitespace: true,
40
+ minifyCSS: true,
41
+ minifyJS: true,
42
+ keepClosingSlash: true,
43
+ removeComments: false,
44
+ removeRedundantAttributes: true,
45
+ removeScriptTypeAttributes: true,
46
+ removeStyleLinkTypeAttributes: true,
47
+ useShortDoctype: true
48
+ };
49
+
50
+ function getHTMLMinifyOptions(htmlTemplate) {
51
+ const {
52
+ minify
53
+ } = htmlTemplate;
54
+ const minifyHtmlOptions = minify === null ? false : minify;
55
+ return minifyHtmlOptions === true ? defaultHTMLMiniFyOption : minifyHtmlOptions;
56
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configI18nSplitPlugin = configI18nSplitPlugin;
7
+
8
+ var _nameTemplates = require("../common/nameTemplates");
9
+
10
+ var _I18nSplitPlugin = _interopRequireDefault(require("../custom_plugins/I18nSplitPlugin"));
11
+
12
+ var _resourceBasedPublicPath = require("../common/resourceBasedPublicPath");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function configI18nSplitPlugin(options) {
17
+ const {
18
+ i18nChunkSplit
19
+ } = options;
20
+
21
+ if (!i18nChunkSplit.chunkSplitEnable) {
22
+ return null;
23
+ }
24
+
25
+ const i18nPublicPath = (0, _resourceBasedPublicPath.resourceBasedPublicPath)('i18n', options); // const i18nPublicPathAsExpression = publicPathAsExpression('i18n', options);
26
+
27
+ return new _I18nSplitPlugin.default({
28
+ mainChunkName: 'main',
29
+ jsResource: i18nChunkSplit.jsResource,
30
+ localeVarName: i18nChunkSplit.localeVarName,
31
+ jsonpFunc: i18nChunkSplit.jsonpFunc,
32
+ templateLabel: i18nChunkSplit.templateLabel,
33
+ disableDefault: i18nChunkSplit.disableDefault,
34
+ filename: (0, _nameTemplates.nameTemplates)('i18njs', options),
35
+ chunkFilename: (0, _nameTemplates.nameTemplates)('i18nchunkjs', options),
36
+ publicPath: i18nPublicPath,
37
+ i18nManifestFileName: (0, _nameTemplates.nameTemplates)('i18nmanifest', options),
38
+ // template: (object, locale) => `window.loadI18n(${JSON.stringify(object)}, ${JSON.stringify(locale)})`,
39
+ propertiesFolder: i18nChunkSplit.propertiesFolder
40
+ });
41
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configIgnorePlugin = configIgnorePlugin;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ // eslint-disable-next-line no-unused-vars
11
+ function configIgnorePlugin(options) {
12
+ return new _webpack.IgnorePlugin({
13
+ resourceRegExp: /^\.\/domain$/,
14
+ contextRegExp: /moment$/
15
+ });
16
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configManifestJsonPlugin = configManifestJsonPlugin;
7
+
8
+ var _ManifestJsonPlugin = require("../custom_plugins/ManifestJsonPlugin");
9
+
10
+ function configManifestJsonPlugin(options) {
11
+ const {
12
+ manifestJson
13
+ } = options;
14
+
15
+ if (!manifestJson.enable) {
16
+ return null;
17
+ }
18
+
19
+ return new _ManifestJsonPlugin.AddFileToManifestJson([{
20
+ outputJsonFileName: 'manifest.json',
21
+ test: f => !/\.i18n\.js$|\.LICENSE\.txt$|\.map$/.test(f),
22
+ needInitialEntries: true
23
+ }, {
24
+ outputJsonFileName: 'i18nManifest.json',
25
+ test: f => /\.i18n\.js$/g.test(f),
26
+ needInitialEntries: false
27
+ }, {
28
+ outputJsonFileName: 'licenseManifest.json',
29
+ test: f => /\.LICENSE\.txt$/g.test(f),
30
+ needInitialEntries: false
31
+ }]);
32
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configMiniCSSExtractPlugin = configMiniCSSExtractPlugin;
7
+
8
+ var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
9
+
10
+ var _nameTemplates = require("../common/nameTemplates");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function configMiniCSSExtractPlugin(options) {
15
+ const {
16
+ enableRTLSplit
17
+ } = options.css.plugins.rtlSplit;
18
+ const cssLTRFileNameTempalte = enableRTLSplit ? (0, _nameTemplates.nameTemplates)('cssdir', options) : (0, _nameTemplates.nameTemplates)('css', options);
19
+ return new _miniCssExtractPlugin.default({
20
+ filename: cssLTRFileNameTempalte,
21
+ chunkFilename: cssLTRFileNameTempalte
22
+ });
23
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configProgressPlugin = configProgressPlugin;
7
+
8
+ var _webpack = _interopRequireDefault(require("webpack"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ // eslint-disable-next-line no-unused-vars
13
+ function configProgressPlugin(options) {
14
+ if (!options.printProgress) {
15
+ return null;
16
+ }
17
+
18
+ return new _webpack.default.ProgressPlugin({
19
+ handler: (percentage, message, ...args) => {
20
+ // eslint-disable-next-line no-console
21
+ console.info(percentage, message, ...args);
22
+ }
23
+ });
24
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configResourceHintsPlugin = configResourceHintsPlugin;
7
+
8
+ var _ResourceHintsPlugin = _interopRequireDefault(require("../custom_plugins/ResourceHintsPlugin"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function configResourceHintsPlugin(options) {
13
+ const {
14
+ publicPath,
15
+ resourceHints
16
+ } = options;
17
+ return new _ResourceHintsPlugin.default({
18
+ resourceHints,
19
+ publicPath: JSON.stringify(publicPath)
20
+ });
21
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configRtlCssPlugin = configRtlCssPlugin;
7
+
8
+ var _RtlCssPlugin = require("../custom_plugins/RtlSplitPlugin/RtlCssPlugin");
9
+
10
+ function configRtlCssPlugin(options) {
11
+ const {
12
+ enableRTLSplit,
13
+ templateLabel,
14
+ disableMinifySelector,
15
+ dirVarName
16
+ } = options.css.plugins.rtlSplit;
17
+
18
+ if (!enableRTLSplit) {
19
+ return null;
20
+ }
21
+
22
+ return new _RtlCssPlugin.RtlCssPlugin({
23
+ templateLabel,
24
+ disableMinifySelector,
25
+ dirVarName
26
+ });
27
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configSelectorWeightPlugin = configSelectorWeightPlugin;
7
+
8
+ var _SelectorWeightPlugin = _interopRequireDefault(require("../custom_plugins/SelectorWeightPlugin"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function configSelectorWeightPlugin(options) {
13
+ const {
14
+ selectorWeight
15
+ } = options.css.plugins;
16
+
17
+ if (!selectorWeight.enable) {
18
+ return null;
19
+ }
20
+
21
+ return new _SelectorWeightPlugin.default({
22
+ selectorWeightConfig: selectorWeight.configFile,
23
+ defaultSelector: selectorWeight.defaultSelector,
24
+ customFileDetails: selectorWeight.customFileDetails,
25
+ excludeStrings: selectorWeight.excludeStrings,
26
+ patterns: selectorWeight.patterns
27
+ });
28
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configServiceWorkerPlugin = configServiceWorkerPlugin;
7
+
8
+ var _nameTemplates = require("../common/nameTemplates");
9
+
10
+ var _ServiceWorkerPlugin = _interopRequireDefault(require("../custom_plugins/ServiceWorkerPlugin"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function configServiceWorkerPlugin(options) {
15
+ const {
16
+ serviceWorker
17
+ } = options;
18
+ const {
19
+ publicPath
20
+ } = options;
21
+ const {
22
+ chunkSplitEnable
23
+ } = options.i18nChunkSplit;
24
+ const {
25
+ enableRTLSplit
26
+ } = options.css.plugins.rtlSplit;
27
+
28
+ if (!serviceWorker.enable) {
29
+ return null;
30
+ }
31
+
32
+ const i18nFileNameTemplate = (0, _nameTemplates.nameTemplates)('i18njs', options);
33
+ return new _ServiceWorkerPlugin.default({ ...serviceWorker,
34
+ publicPath,
35
+ i18nFileNameTemplate,
36
+ chunkSplitEnable,
37
+ enableRTLSplit,
38
+ entryPointName: 'main'
39
+ });
40
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configSourceMapPlugin = configSourceMapPlugin;
7
+
8
+ var _SourceMapPlugin = require("../custom_plugins/SourceMapPlugin");
9
+
10
+ function configSourceMapPlugin(options) {
11
+ const {
12
+ createSeparateSMap
13
+ } = options;
14
+
15
+ if (createSeparateSMap === false) {
16
+ return null;
17
+ }
18
+
19
+ return new _SourceMapPlugin.SourceMapPlugin();
20
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configTPHashMappingPlugin = configTPHashMappingPlugin;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _TPHashMappingPlugin = require("../custom_plugins/TPHashMappingPlugin");
11
+
12
+ var _modeUtils = require("../common/modeUtils");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function configTPHashMappingPlugin(options) {
17
+ const {
18
+ fileHashMappingToVariable,
19
+ context,
20
+ mode
21
+ } = options; // const { tpFolder } = options.app;
22
+
23
+ if ((0, _modeUtils.isProductionMode)(mode)) {
24
+ return new _TPHashMappingPlugin.TPHashMappingPlugin({
25
+ fileMappings: fileHashMappingToVariable,
26
+ tpFolder: `${_path.default.join(process.cwd(), context)}`
27
+ });
28
+ }
29
+
30
+ ;
31
+ return null;
32
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configVariableConversionPlugin = configVariableConversionPlugin;
7
+
8
+ var _VariableConversionCollector = _interopRequireDefault(require("../custom_plugins/VariableConversionCollector"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function configVariableConversionPlugin(options) {
13
+ const {
14
+ cssVariableReplacement
15
+ } = options.css.plugins;
16
+
17
+ if (cssVariableReplacement.enable === false) {
18
+ return false;
19
+ }
20
+
21
+ return new _VariableConversionCollector.default({
22
+ configFile: cssVariableReplacement.configFile,
23
+ patterns: cssVariableReplacement.patterns
24
+ });
25
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.plugins = plugins;
7
+
8
+ var _configHtmlWebpackPlugin = require("./pluginConfigs/configHtmlWebpackPlugin");
9
+
10
+ var _configEnvVariables = require("./pluginConfigs/configEnvVariables");
11
+
12
+ var _configI18nSplitPlugin = require("./pluginConfigs/configI18nSplitPlugin");
13
+
14
+ var _configMiniCSSExtractPlugin = require("./pluginConfigs/configMiniCSSExtractPlugin");
15
+
16
+ var _configRtlCssPlugin = require("./pluginConfigs/configRtlCssPlugin");
17
+
18
+ var _configIgnorePlugin = require("./pluginConfigs/configIgnorePlugin");
19
+
20
+ var _configCdnChangePlugin = require("./pluginConfigs/configCdnChangePlugin");
21
+
22
+ var _configServiceWorkerPlugin = require("./pluginConfigs/configServiceWorkerPlugin");
23
+
24
+ var _configProgressPlugin = require("./pluginConfigs/configProgressPlugin");
25
+
26
+ var _configBundleAnalyzer = require("./pluginConfigs/configBundleAnalyzer");
27
+
28
+ var _configSelectorWeightPlugin = require("./pluginConfigs/configSelectorWeightPlugin");
29
+
30
+ var _configVariableConversionPlugin = require("./pluginConfigs/configVariableConversionPlugin");
31
+
32
+ var _configEFCTemplatePlugin = require("./pluginConfigs/configEFCTemplatePlugin");
33
+
34
+ var _configResourceHintsPlugin = require("./pluginConfigs/configResourceHintsPlugin");
35
+
36
+ var _configManifestJsonPlugin = require("./pluginConfigs/configManifestJsonPlugin");
37
+
38
+ var _configCopyPublicFolders = require("./pluginConfigs/configCopyPublicFolders");
39
+
40
+ var _configSourceMapPlugin = require("./pluginConfigs/configSourceMapPlugin");
41
+
42
+ var _configTPHashMappingPlugin = require("./pluginConfigs/configTPHashMappingPlugin");
43
+
44
+ // import { IgnorePlugin } from 'webpack';
45
+ function plugins(options) {
46
+ const {
47
+ webpackPlugins
48
+ } = options;
49
+ return [(0, _configEnvVariables.configEnvVariables)(options), (0, _configTPHashMappingPlugin.configTPHashMappingPlugin)(options), (0, _configCopyPublicFolders.configCopyPublicFolders)(options), (0, _configIgnorePlugin.configIgnorePlugin)(options), (0, _configMiniCSSExtractPlugin.configMiniCSSExtractPlugin)(options), (0, _configSelectorWeightPlugin.configSelectorWeightPlugin)(options), (0, _configVariableConversionPlugin.configVariableConversionPlugin)(options), (0, _configI18nSplitPlugin.configI18nSplitPlugin)(options), (0, _configRtlCssPlugin.configRtlCssPlugin)(options), (0, _configHtmlWebpackPlugin.configHtmlWebpackPlugin)(options), (0, _configCdnChangePlugin.configCdnChangePlugin)(options), (0, _configServiceWorkerPlugin.configServiceWorkerPlugin)(options), (0, _configEFCTemplatePlugin.configEFCTemplatePlugin)(options), (0, _configResourceHintsPlugin.configResourceHintsPlugin)(options), (0, _configBundleAnalyzer.configBundleAnalyzer)(options), (0, _configManifestJsonPlugin.configManifestJsonPlugin)(options), (0, _configSourceMapPlugin.configSourceMapPlugin)(options), (0, _configProgressPlugin.configProgressPlugin)(options), ...webpackPlugins].filter(Boolean);
50
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.loaderResolver = loaderResolver;
7
+ exports.moduleResolver = moduleResolver;
8
+
9
+ var _client_packages_group = require("@zohodesk/client_packages_group");
10
+
11
+ var _constants = require("../../constants");
12
+
13
+ var _libAlias = require("./common/libAlias");
14
+
15
+ var _requireLocalOrGlobal = require("../../utils/requireLocalOrGlobal");
16
+
17
+ var _logger = require("../../../logger");
18
+
19
+ /* eslint-disable no-use-before-define */
20
+ const defaultPackageGroupNpm = '@zohodesk/client_packages_group';
21
+
22
+ function decideNodeModulesPath(moduleResolvePath) {
23
+ if (typeof moduleResolvePath === 'string' && moduleResolvePath) {
24
+ const resolverPkg = (0, _requireLocalOrGlobal.requireAllPossible)(moduleResolvePath);
25
+
26
+ if (resolverPkg.local) {
27
+ (0, _logger.verboseLogger)(`Local '${moduleResolvePath}' package taken as Module Resolver`);
28
+ return resolverPkg.local.nodeModulesPath;
29
+ }
30
+
31
+ if (resolverPkg.global) {
32
+ (0, _logger.messageLogger)(`Global '${moduleResolvePath}' package taken as Module Resolver`);
33
+ return resolverPkg.global.nodeModulesPath;
34
+ }
35
+
36
+ (0, _logger.errorLogger)(`
37
+ You have given 'resolve.moduleResolvePath' as "${moduleResolvePath}".
38
+ But it seems that file path have some problem;`);
39
+ process.exit(0);
40
+ }
41
+
42
+ const globalResolverPkg = (0, _requireLocalOrGlobal.requireGlobal)(defaultPackageGroupNpm);
43
+
44
+ if (globalResolverPkg) {
45
+ (0, _logger.messageLogger)(`Global '${defaultPackageGroupNpm}' package taken as Module Resolver`);
46
+ return globalResolverPkg.nodeModulesPath;
47
+ }
48
+
49
+ (0, _logger.verboseLogger)(`CBT default '${defaultPackageGroupNpm}' package taken as Module Resolver`);
50
+ return _client_packages_group.nodeModulesPath;
51
+ }
52
+
53
+ function moduleResolver(options) {
54
+ const {
55
+ preferLocalFirst,
56
+ alias,
57
+ defaultAlias,
58
+ moduleResolvePath
59
+ } = options.resolve;
60
+ const nodeModulesPath = decideNodeModulesPath(moduleResolvePath);
61
+ return {
62
+ modules: useAppNodeModulesAsPreferred(preferLocalFirst, [nodeModulesPath, _constants.cliNodeModulesPath].filter(Boolean)),
63
+ alias: { ...(defaultAlias ? _libAlias.libAlias : {}),
64
+ ...(alias || {})
65
+ }
66
+ };
67
+ }
68
+
69
+ function loaderResolver(options) {
70
+ const {
71
+ preferLocalFirst
72
+ } = options.resolve;
73
+ return {
74
+ modules: useAppNodeModulesAsPreferred(preferLocalFirst, [_constants.cliNodeModulesPath])
75
+ };
76
+ }
77
+
78
+ function useAppNodeModulesAsPreferred(preferLocalFirst = false, paths = []) {
79
+ const filteredPaths = paths.filter(Boolean);
80
+ return preferLocalFirst ? ['node_modules', ...filteredPaths] : [...filteredPaths, 'node_modules'];
81
+ }