@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,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.babelLoaderConfig = babelLoaderConfig;
7
+
8
+ var _babelWebConfig = require("../../../babel/babelWebConfig");
9
+
10
+ function babelLoaderConfig(options) {
11
+ const babelConfig = (0, _babelWebConfig.babelWebConfig)(options);
12
+ return {
13
+ loader: 'babel-loader',
14
+ options: { ...babelConfig,
15
+ cacheDirectory: true
16
+ }
17
+ };
18
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.checkIsPatternsMatchFilename = checkIsPatternsMatchFilename;
7
+ exports.modifyAsExclude = modifyAsExclude;
8
+
9
+ var _ignore = _interopRequireDefault(require("ignore"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ /**
14
+ @param {Array<String>} patterns:
15
+ // include src folder, include deskapp folder, exclude node modules
16
+ [
17
+ "src",
18
+ "deskapp",
19
+ "!node_modules"
20
+ ]
21
+ @param {String} filename :
22
+ filename : 'D:/MyWork/..../desk_client_app/supportapp/src/components/Avatar/Avatar.module.css,
23
+
24
+ @return {Boolean} : true or false
25
+ */
26
+ function checkIsPatternsMatchFilename(patterns, filename) {
27
+ if (!filename) {
28
+ return false;
29
+ }
30
+
31
+ if (typeof patterns === 'undefined') {
32
+ return true;
33
+ }
34
+
35
+ if (typeof patterns === 'function') {
36
+ return patterns(filename);
37
+ }
38
+
39
+ if (typeof patterns === 'string') {
40
+ // eslint-disable-next-line no-param-reassign
41
+ patterns = [patterns];
42
+ }
43
+
44
+ if (Array.isArray(patterns)) {
45
+ return patterns.length ? (0, _ignore.default)({
46
+ allowRelativePaths: true
47
+ }).add(patterns).ignores(filename) : true;
48
+ } // eslint-disable-next-line no-throw-literal
49
+
50
+
51
+ throw `UnKnown pattern Error ${JSON.stringify(patterns)}`;
52
+ }
53
+
54
+ function modifyAsExclude(patterns) {
55
+ return patterns.map(pattern => pattern[0] === '!' ? pattern.slice(1) : `!${pattern}`);
56
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configHtmlTemplateLoader = configHtmlTemplateLoader;
7
+
8
+ function configHtmlTemplateLoader(options) {
9
+ return {
10
+ test: /\.tmpl$/,
11
+ use: [{
12
+ loader: 'html-loader',
13
+ options: {
14
+ minimize: true
15
+ }
16
+ }]
17
+ };
18
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configPostCssLoader = configPostCssLoader;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _filterPluginsAllowedForSpecficFile = require("../../../postcss/filterPluginsAllowedForSpecficFile");
11
+
12
+ var _getAllowedPostCssPlugins = require("../../../postcss/getAllowedPostCssPlugins");
13
+
14
+ var _constants = require("../../../constants");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ // import EmptyPlugin from '../custom_postcss_plugins/EmptyPlugin';
19
+ function configPostCssLoader(options) {
20
+ const pluginsOptions = options.css.plugins;
21
+ const enabledPlugins = (0, _filterPluginsAllowedForSpecficFile.getEnabledPlugins)(pluginsOptions);
22
+ const getAllowedPostCssPlugins = (0, _getAllowedPostCssPlugins.postcssPluginGetter)(options);
23
+
24
+ function configPostCssPlugins(params) {
25
+ const filename = _path.default.relative(_constants.appPath, params.resourcePath);
26
+
27
+ const allowedPostCssPlugins = getAllowedPostCssPlugins(filename);
28
+ return allowedPostCssPlugins;
29
+ }
30
+
31
+ return enabledPlugins.length && {
32
+ loader: 'postcss-loader',
33
+ options: {
34
+ postcssOptions: configPostCssPlugins
35
+ }
36
+ };
37
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configWebWorkerLoader = configWebWorkerLoader;
7
+
8
+ var _nameTemplates = require("../common/nameTemplates");
9
+
10
+ function configWebWorkerLoader(options) {
11
+ return {
12
+ test: /\.worker.js$/,
13
+ use: {
14
+ loader: require.resolve('../loaders/workerLoader.js'),
15
+ options: {
16
+ esModule: true,
17
+ filename: (0, _nameTemplates.nameTemplates)('workerjs', options)
18
+ }
19
+ }
20
+ };
21
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configAudioLoader = configAudioLoader;
7
+ exports.configFontLoader = configFontLoader;
8
+ exports.configImageLoader = configImageLoader;
9
+ exports.configSVGLoader = configSVGLoader;
10
+ exports.configVideoLoader = configVideoLoader;
11
+
12
+ var _nameTemplates = require("../common/nameTemplates");
13
+
14
+ // function getLoaderOptionQueryString(params) {
15
+ const ImageExtRegex = /\.jpe?g$|\.gif$|\.png|\.webp$/;
16
+ const FontExtRegex = /\.woff2|\.woff$|\.ttf$|\.eot$/;
17
+ const SVGExtRegex = /\.svg$/;
18
+ const AudioExtRegex = /\.ogg$/;
19
+ const VideoExtRegex = /\.mp4|\.webm$/;
20
+
21
+ function createAssetLoader({
22
+ test,
23
+ nameTemplate,
24
+ limit
25
+ }) {
26
+ const conf = {
27
+ test,
28
+ type: 'asset'
29
+ };
30
+
31
+ if (limit) {
32
+ conf.parser = {
33
+ dataUrlCondition: {
34
+ maxSize: limit // 4 * 1024 // 4kb
35
+
36
+ }
37
+ };
38
+ } else {
39
+ conf.type = 'asset/resource';
40
+ }
41
+
42
+ if (nameTemplate) {
43
+ conf.generator = {
44
+ filename: nameTemplate
45
+ };
46
+ }
47
+
48
+ return conf;
49
+ }
50
+ /**
51
+ * @typedef {Object} LoaderConfig
52
+ * @property {Number} enableChunkHash
53
+ */
54
+
55
+ /**
56
+ * @param {LoaderConfig} options
57
+ * @returns
58
+ */
59
+
60
+
61
+ function configImageLoader(options) {
62
+ return createAssetLoader({
63
+ test: ImageExtRegex,
64
+ nameTemplate: (0, _nameTemplates.nameTemplates)('image', options),
65
+ limit: 1000
66
+ });
67
+ }
68
+
69
+ function configFontLoader(options) {
70
+ return createAssetLoader({
71
+ test: FontExtRegex,
72
+ nameTemplate: (0, _nameTemplates.nameTemplates)('font', options),
73
+ limit: 1000
74
+ });
75
+ }
76
+
77
+ function configSVGLoader(options) {
78
+ return createAssetLoader({
79
+ test: SVGExtRegex,
80
+ nameTemplate: (0, _nameTemplates.nameTemplates)('svg', options),
81
+ limit: 1000
82
+ });
83
+ }
84
+
85
+ function configAudioLoader(options) {
86
+ return createAssetLoader({
87
+ test: AudioExtRegex,
88
+ nameTemplate: (0, _nameTemplates.nameTemplates)('audio', options)
89
+ });
90
+ }
91
+
92
+ function configVideoLoader(options) {
93
+ return createAssetLoader({
94
+ test: VideoExtRegex,
95
+ nameTemplate: (0, _nameTemplates.nameTemplates)('video', options)
96
+ });
97
+ }
98
+ /*
99
+ export function createNameTemplate(enableChunkHash) {
100
+ const ext = `${enableChunkHash ? ".[hash:20]" : ""}.[ext]`;
101
+ return `[name]${ext}`;
102
+ }
103
+
104
+ export function createImageAndFontsAndSVGLoaders(enableChunkHash) {
105
+ const nameTemplate = createNameTemplate(enableChunkHash);
106
+ return [
107
+ configImageLoader(nameTemplate),
108
+ configFontLoader(nameTemplate),
109
+ configSVGLoader(nameTemplate),
110
+ configAudioLoader(nameTemplate)
111
+ ];
112
+ }
113
+ */
114
+
115
+ /*
116
+ export function createLoaderOptionObject(
117
+ loaderName,
118
+ nameTemplate,
119
+ fallback,
120
+ limit = 1000
121
+ ) {
122
+ return {
123
+ loader: loaderName,
124
+ options: {
125
+ limit,
126
+ name: nameTemplate,
127
+ fallback
128
+ }
129
+ };
130
+ }
131
+
132
+ function configLoaderObject(filter, loaderAndOptions) {
133
+ return {
134
+ test: filter,
135
+ use: loaderAndOptions
136
+ };
137
+ }
138
+ */
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.getHash = getHash;
8
+
9
+ var _crypto = require("crypto");
10
+
11
+ var _path = _interopRequireDefault(require("path"));
12
+
13
+ var _checkIsPatternsMatchFilename = require("./checkIsPatternsMatchFilename");
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ function getHash(str, length) {
18
+ return (0, _crypto.createHash)('md5').update(str).digest('hex').slice(0, length);
19
+ }
20
+
21
+ const defaultSelectorBlob = '[prefix]-[filename]-[local]';
22
+
23
+ function getSuitableBlob(customizations = [], filename) {
24
+ const custom = customizations.find(({
25
+ enable,
26
+ patterns
27
+ }) => enable && (0, _checkIsPatternsMatchFilename.checkIsPatternsMatchFilename)(patterns, filename));
28
+ return custom && custom.blob || defaultSelectorBlob;
29
+ }
30
+
31
+ var _default = options => {
32
+ const {
33
+ classNameOptions
34
+ } = options.css;
35
+ const {
36
+ classNamePrefix,
37
+ customizations
38
+ } = classNameOptions;
39
+ return (context, localIdentName, localName) => {
40
+ // NOTE: in build machine we use date as folder path.
41
+ // So every time we create new build there is path will alway different
42
+ // So, in order to minimize that problem we try in relative path;
43
+ // console.log('context.resourcePath', context.resourcePath, context);
44
+ // let contextResourcePath = context.resourcePath;
45
+ const {
46
+ rootContext,
47
+ resourcePath
48
+ } = context;
49
+
50
+ const relativePath = _path.default.relative(rootContext, resourcePath);
51
+
52
+ const fileNameWithoutExt = _path.default.parse(relativePath).name;
53
+
54
+ const cleanFileName = fileNameWithoutExt.replace(/-/g, '_').toLowerCase();
55
+ const suitableBlob = getSuitableBlob(customizations, resourcePath);
56
+ return suitableBlob.replaceAll('[local]', localName).replaceAll('[prefix]', classNamePrefix).replaceAll('[filename]', cleanFileName).replaceAll('[hash]', getHash(`${relativePath}-${localName}`, 10));
57
+ };
58
+ };
59
+
60
+ exports.default = _default;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCssLoaderOptions = getCssLoaderOptions;
7
+
8
+ var _cssClassNameGenerate = _interopRequireDefault(require("./cssClassNameGenerate"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function getCssLoaderOptions(options) {
13
+ const cssLoaderOptions = {
14
+ importLoaders: 1,
15
+ modules: {
16
+ getLocalIdent: (0, _cssClassNameGenerate.default)(options)
17
+ },
18
+ sourceMap: true
19
+ };
20
+ return cssLoaderOptions;
21
+ }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = loader;
7
+ exports.pitch = pitch;
8
+
9
+ var _path = _interopRequireDefault(require("path"));
10
+
11
+ var _SingleEntryPlugin = _interopRequireDefault(require("webpack/lib/SingleEntryPlugin"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ // import { getOptions } from 'loader-utils';
16
+ // import validateOptions from 'schema-utils';
17
+ const schema = {
18
+ 'type': 'object',
19
+ 'properties': {
20
+ 'publicPath': {
21
+ 'anyOf': [{
22
+ 'type': 'string'
23
+ }, {
24
+ 'instanceof': 'Function'
25
+ }]
26
+ },
27
+ 'filename': {
28
+ 'anyOf': [{
29
+ 'type': 'string',
30
+ 'minLength': 1
31
+ }, {
32
+ 'instanceof': 'Function'
33
+ }]
34
+ },
35
+ 'chunkFilename': {
36
+ 'type': 'string',
37
+ 'minLength': 1
38
+ },
39
+ 'esModule': {
40
+ 'type': 'boolean'
41
+ }
42
+ },
43
+ 'additionalProperties': false
44
+ }; // eslint-disable-next-line
45
+
46
+ function loader() {}
47
+
48
+ function getDefaultFilename(filename) {
49
+ if (typeof filename === 'function') {
50
+ return filename;
51
+ }
52
+
53
+ return filename.replace(/\.([a-z]+)(\?.+)?$/i, '.worker.$1$2');
54
+ }
55
+
56
+ function getDefaultChunkFilename(chunkFilename) {
57
+ return chunkFilename.replace(/\.([a-z]+)(\?.+)?$/i, '.worker.$1$2');
58
+ }
59
+
60
+ function pitch(request) {
61
+ this.cacheable(false);
62
+ const options = this.getOptions(); // console.log(this.getOptions());
63
+ // validateOptions(schema, options, {
64
+ // name: 'Worker Loader',
65
+ // baseDataPath: 'options'
66
+ // });
67
+
68
+ const workerContext = {};
69
+ const compilerOptions = this._compiler.options || {};
70
+ const filename = options.filename ? options.filename : getDefaultFilename(compilerOptions.output.filename);
71
+ const chunkFilename = options.chunkFilename ? options.chunkFilename : getDefaultChunkFilename(compilerOptions.output.chunkFilename);
72
+ const publicPath = options.publicPath ? options.publicPath : compilerOptions.output.publicPath;
73
+ workerContext.options = {
74
+ filename,
75
+ chunkFilename,
76
+ publicPath,
77
+ globalObject: 'self'
78
+ };
79
+ workerContext.compiler = this._compilation.createChildCompiler(`worker-loader ${request}`, workerContext.options);
80
+ /*
81
+ new WebWorkerTemplatePlugin().apply(workerContext.compiler);
82
+
83
+ if (compilerOptions.externals) {
84
+ new ExternalsPlugin(
85
+ getExternalsType(compilerOptions),
86
+ compilerOptions.externals
87
+ ).apply(workerContext.compiler);
88
+ } */
89
+
90
+ new _SingleEntryPlugin.default(this.context, `!!${request}`, _path.default.parse(this.resourcePath).name).apply(workerContext.compiler);
91
+ workerContext.request = request;
92
+ const cb = this.async();
93
+ workerContext.compiler.runAsChild((errorArg, entries, compilation) => {
94
+ let error = errorArg;
95
+
96
+ if (!error && compilation.errors && compilation.errors.length) {
97
+ // eslint-disable-next-line
98
+ error = compilation.errors[0];
99
+ }
100
+
101
+ const entry = entries && entries[0] && entries[0].files.values().next().value;
102
+
103
+ if (!error && !entry) {
104
+ error = Error(`WorkerPlugin: no entry for ${request}`);
105
+ }
106
+
107
+ if (error) {
108
+ return cb(error);
109
+ }
110
+
111
+ function workerCode() {
112
+ let blob;
113
+
114
+ try {
115
+ blob = new Blob([`importScripts('${this.workerUrl}');`], {
116
+ 'type': 'application/javascript'
117
+ });
118
+ } catch (e1) {
119
+ throw new Error(e1);
120
+ }
121
+
122
+ let url = window.URL || window.webkitURL;
123
+ let blobUrl = url.createObjectURL(blob);
124
+ let worker = new Worker(blobUrl);
125
+ return worker;
126
+ }
127
+
128
+ return cb(null, `${options.esModule ? 'export default' : 'module.exports ='} {\n
129
+ workerUrl: __webpack_public_path__ + ${JSON.stringify(entry)}, \n
130
+ getInstance: ${workerCode} \n
131
+ }`);
132
+ });
133
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.optimizationConfig = optimizationConfig;
7
+
8
+ var _nameTemplates = require("./common/nameTemplates");
9
+
10
+ var _hashUtils = require("./custom_plugins/I18nSplitPlugin/utils/hashUtils");
11
+
12
+ var _configCSSMinifierPlugin = require("./pluginConfigs/configCSSMinifierPlugin");
13
+
14
+ var _splitChunksConfig = require("./splitChunksConfig");
15
+
16
+ function optimizationConfig(options) {
17
+ const {
18
+ changeRuntimeChunkChar
19
+ } = options;
20
+ const {
21
+ chunkSplitEnable
22
+ } = options.i18nChunkSplit;
23
+ const i18nChunkFilename = (0, _nameTemplates.nameTemplates)('i18nchunkjs', options);
24
+ const chunkFilenameHasContentHash = (0, _hashUtils.hasContentHash)(i18nChunkFilename);
25
+ /**
26
+ * NOTE: we only need multiple runtime files when we use contentHash
27
+ * other wise we don't need multiple runtime files based locale
28
+ * that's why we added chunkSplitEnable && chunkFilenameHasContentHash logic
29
+ */
30
+
31
+ const suffix = // chunkSplitEnable ? '_[locale]' : '';
32
+ chunkSplitEnable && chunkFilenameHasContentHash ? '_[locale]' : '';
33
+ const char = changeRuntimeChunkChar;
34
+ return {
35
+ splitChunks: (0, _splitChunksConfig.splitChunksConfig)(options),
36
+ minimizer: [// For webpack@5 you can use the `...` syntax to extend existing minimizers (i.e. `terser-webpack-plugin`), uncomment the next line
37
+ '...', (0, _configCSSMinifierPlugin.configCSSMinifierPlugin)(options)].filter(Boolean),
38
+ moduleIds: 'named',
39
+ runtimeChunk: {
40
+ name: entrypoint => `runtime${char}${entrypoint.name}${suffix}`
41
+ }
42
+ };
43
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.outputConfig = outputConfig;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _constants = require("../../constants");
11
+
12
+ var _nameTemplates = require("./common/nameTemplates");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function outputConfig(options) {
17
+ const {
18
+ output,
19
+ publicPath
20
+ } = options;
21
+ return {
22
+ filename: (0, _nameTemplates.nameTemplates)('js', options),
23
+ chunkFilename: (0, _nameTemplates.nameTemplates)('chunkjs', options),
24
+ publicPath,
25
+ // clean: true,
26
+ path: _path.default.resolve(_constants.appPath, output)
27
+ };
28
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configBundleAnalyzer = configBundleAnalyzer;
7
+
8
+ var _webpackBundleAnalyzer = require("webpack-bundle-analyzer");
9
+
10
+ var _modeUtils = require("../common/modeUtils");
11
+
12
+ /* eslint-disable no-use-before-define */
13
+ function configBundleAnalyzer(options) {
14
+ const mode = (0, _modeUtils.getWebpackMode)(options);
15
+
16
+ if ((0, _modeUtils.isProductionMode)(mode) && options.bundleAnalyze) {
17
+ const bundleAnalyzerOptions = getBundleAnalyzerOptions(options);
18
+ return new _webpackBundleAnalyzer.BundleAnalyzerPlugin(bundleAnalyzerOptions);
19
+ }
20
+
21
+ return null;
22
+ } // eslint-disable-next-line no-unused-vars
23
+
24
+
25
+ function getBundleAnalyzerOptions(options) {
26
+ return {
27
+ analyzerMode: 'static',
28
+ generateStatsFile: true,
29
+ openAnalyzer: false,
30
+ statsOptions: {
31
+ source: false,
32
+ normal: true,
33
+ chunks: false,
34
+ chunkGroups: false,
35
+ module: false,
36
+ assets: true,
37
+ assetsSort: 'name'
38
+ }
39
+ };
40
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configCSSMinifierPlugin = configCSSMinifierPlugin;
7
+
8
+ var _cssMinimizerWebpackPlugin = _interopRequireDefault(require("css-minimizer-webpack-plugin"));
9
+
10
+ var _modeUtils = require("../common/modeUtils");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ // import UglifyCSSPlugin from '../custom_plugins/UglifyCSSPlugin';
15
+ // eslint-disable-next-line no-unused-vars
16
+ function configCSSMinifierPlugin(options) {
17
+ if ((0, _modeUtils.isNotProduction)(options)) {
18
+ return null;
19
+ } // return null;
20
+ // return new UglifyCSSPlugin();
21
+
22
+
23
+ return new _cssMinimizerWebpackPlugin.default();
24
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configCdnChangePlugin = configCdnChangePlugin;
7
+
8
+ var _modeUtils = require("../common/modeUtils");
9
+
10
+ var _CdnChangePlugin = _interopRequireDefault(require("../custom_plugins/CdnChangePlugin"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function configCdnChangePlugin(options) {
15
+ const {
16
+ cdnMapping,
17
+ mode
18
+ } = options;
19
+
20
+ if (!cdnMapping.isCdnEnabled || (0, _modeUtils.isDevelopmentMode)(mode)) {
21
+ return null;
22
+ }
23
+
24
+ return new _CdnChangePlugin.default({ ...cdnMapping,
25
+ createSeparateSMap: options.createSeparateSMap
26
+ });
27
+ }