@zohodesk/client_build_tool 0.0.1-0.exp.0.0.3

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 (259) hide show
  1. package/.babelrc +12 -0
  2. package/.lintstagedrc +3 -0
  3. package/.vscode/settings.json +5 -0
  4. package/CHANGELOG.md +84 -0
  5. package/ConfigurationDocumentation.md +567 -0
  6. package/ContributionGuide.md +2 -0
  7. package/NOTES-Dec12.md +12 -0
  8. package/README.md +184 -0
  9. package/README_backup.md +100 -0
  10. package/TODO.md +35 -0
  11. package/cli.js +31 -0
  12. package/docs/BabelCustomizations.md +55 -0
  13. package/docs/CSSCustomPluginsDocumentation.md +71 -0
  14. package/docs/CustomChunksConfiguration.md +0 -0
  15. package/docs/EFCFileTemplate.md +0 -0
  16. package/docs/MockApi.md +61 -0
  17. package/docs/NameTemplateUtility.md +93 -0
  18. package/docs/ServiseWorkerTemplate.md +0 -0
  19. package/docs/SupportedBrowserVersions.md +61 -0
  20. package/helpDocs/check.js +7 -0
  21. package/helpDocs/commmands/build.md +0 -0
  22. package/helpDocs/commmands/start.md +0 -0
  23. package/helpDocs/examples/buildWithContentHash.md +0 -0
  24. package/helpDocs/examples/startDevServer.md +0 -0
  25. package/helpDocs/examples/startWithMockAPI.md +0 -0
  26. package/helpDocs/node18-env.md +30 -0
  27. package/helpDocs/troubleshootings/NewMachineSetup.md +71 -0
  28. package/helpDocs/troubleshootings/README.md +9 -0
  29. package/helpDocs/troubleshootings/hg_install.sh +18 -0
  30. package/helpDocs/troubleshootings/newMachineMac.sh +86 -0
  31. package/helpDocs/troubleshootings/newMachineUbundu.bash +84 -0
  32. package/lib/allCommandsConfigs.js +25 -0
  33. package/lib/commands/build/commandExecutor.js +17 -0
  34. package/lib/commands/build/config.js +12 -0
  35. package/lib/commands/build/optionsProcessor.js +35 -0
  36. package/lib/commands/build/preProcessor.js +12 -0
  37. package/lib/commands/buildEs/commandExecutor.js +33 -0
  38. package/lib/commands/buildEs/config.js +12 -0
  39. package/lib/commands/buildEs/preProcessor.js +17 -0
  40. package/lib/commands/buildLib/commandExecutor.js +33 -0
  41. package/lib/commands/buildLib/config.js +12 -0
  42. package/lib/commands/buildLib/preProcessor.js +17 -0
  43. package/lib/commands/mockserver/commandExecutor.js +43 -0
  44. package/lib/commands/mockserver/config.js +12 -0
  45. package/lib/commands/pre_process/commandExecutor.js +18 -0
  46. package/lib/commands/pre_process/config.js +12 -0
  47. package/lib/commands/start/commandExecutor.js +12 -0
  48. package/lib/commands/start/config.js +12 -0
  49. package/lib/commands/start/optionsProcessor.js +30 -0
  50. package/lib/commands/start/preProcessor.js +12 -0
  51. package/lib/commands/template/commandExecutor.js +28 -0
  52. package/lib/commands/template/config.js +12 -0
  53. package/lib/commands/version/commandExecutor.js +14 -0
  54. package/lib/commands/version/config.js +12 -0
  55. package/lib/commandsRouter.js +74 -0
  56. package/lib/index.js +12 -0
  57. package/lib/logger.js +34 -0
  58. package/lib/schemas/applyValuesToSchema/index.js +34 -0
  59. package/lib/schemas/applyValuesToSchema/isObject.js +10 -0
  60. package/lib/schemas/applyValuesToSchema/isValid.js +14 -0
  61. package/lib/schemas/cliArgsToObject.js +39 -0
  62. package/lib/schemas/defaultConfigValues.js +393 -0
  63. package/lib/schemas/defaultConfigValuesOnly.js +200 -0
  64. package/lib/schemas/deprecatedOptionsHandler.js +67 -0
  65. package/lib/schemas/getNpmVersion.js +22 -0
  66. package/lib/schemas/giveDefaultValue.js +18 -0
  67. package/lib/schemas/npmConfigToObject.js +35 -0
  68. package/lib/schemas/readOptions.js +87 -0
  69. package/lib/schemas/readOptionsForConfigFile.js +42 -0
  70. package/lib/shared/babel/addDefaultPlugins.js +15 -0
  71. package/lib/shared/babel/babelWebConfig.js +54 -0
  72. package/lib/shared/babel/babel_plugins/removeAttributesPlugin.js +23 -0
  73. package/lib/shared/babel/getBabelPlugin.js +42 -0
  74. package/lib/shared/babel/runBabelForJSFile.js +24 -0
  75. package/lib/shared/babel/runBabelForTsFile.js +30 -0
  76. package/lib/shared/bundler/webpack/common/decidePublicPath.js +57 -0
  77. package/lib/shared/bundler/webpack/common/hashUtils.js +20 -0
  78. package/lib/shared/bundler/webpack/common/libAlias.js +31 -0
  79. package/lib/shared/bundler/webpack/common/modeUtils.js +39 -0
  80. package/lib/shared/bundler/webpack/common/nameTemplates.js +105 -0
  81. package/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
  82. package/lib/shared/bundler/webpack/configCustomLoaders.js +10 -0
  83. package/lib/shared/bundler/webpack/cssLoaders.js +16 -0
  84. package/lib/shared/bundler/webpack/custom_plugins/BundleIntegrityReport/index.js +83 -0
  85. package/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin/index.js +119 -0
  86. package/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin/webpackCustomJsUrlLoader.js +46 -0
  87. package/lib/shared/bundler/webpack/custom_plugins/CustomScriptLoadingPlugin.js +109 -0
  88. package/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +112 -0
  89. package/lib/shared/bundler/webpack/custom_plugins/I18nNumericIndexPlugin/I18nNumericIndexHtmlInjectorPlugin.js +47 -0
  90. package/lib/shared/bundler/webpack/custom_plugins/I18nNumericIndexPlugin/I18nNumericIndexPlugin.js +190 -0
  91. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
  92. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +174 -0
  93. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +76 -0
  94. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +223 -0
  95. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
  96. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +73 -0
  97. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +88 -0
  98. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
  99. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
  100. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
  101. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +76 -0
  102. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +39 -0
  103. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +50 -0
  104. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +68 -0
  105. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
  106. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
  107. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +43 -0
  108. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
  109. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectAstKeys.js +98 -0
  110. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +66 -0
  111. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +13 -0
  112. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
  113. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
  114. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +129 -0
  115. package/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +60 -0
  116. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +30 -0
  117. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +23 -0
  118. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +35 -0
  119. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +18 -0
  120. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +46 -0
  121. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +18 -0
  122. package/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
  123. package/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +193 -0
  124. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +62 -0
  125. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +84 -0
  126. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
  127. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +27 -0
  128. package/lib/shared/bundler/webpack/custom_plugins/RuntimeResourceCleanup/index.js +73 -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 +120 -0
  134. package/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPluginUtils.js +13 -0
  135. package/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +71 -0
  136. package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/addHashToFilePath.js +22 -0
  137. package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/index.js +55 -0
  138. package/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/index.js.js +49 -0
  139. package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +62 -0
  140. package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +362 -0
  141. package/lib/shared/bundler/webpack/custom_plugins/custom_attribute_plugin/index.js +80 -0
  142. package/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +14 -0
  143. package/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +57 -0
  144. package/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +87 -0
  145. package/lib/shared/bundler/webpack/defaultVendorPatternList.js +13 -0
  146. package/lib/shared/bundler/webpack/devtoolConfig.js +13 -0
  147. package/lib/shared/bundler/webpack/entryConfig.js +28 -0
  148. package/lib/shared/bundler/webpack/externals.js +17 -0
  149. package/lib/shared/bundler/webpack/getCSSLoaders.js +29 -0
  150. package/lib/shared/bundler/webpack/getFilenameFromModule.js +24 -0
  151. package/lib/shared/bundler/webpack/jsLoaders.js +30 -0
  152. package/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +12 -0
  153. package/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +18 -0
  154. package/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +56 -0
  155. package/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
  156. package/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +37 -0
  157. package/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
  158. package/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +86 -0
  159. package/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +65 -0
  160. package/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +21 -0
  161. package/lib/shared/bundler/webpack/loaderConfigs/i18nIdReplaceLoaderConfig.js +94 -0
  162. package/lib/shared/bundler/webpack/loaders/i18nIdReplaceLoader.js +201 -0
  163. package/lib/shared/bundler/webpack/loaders/miniCssFallBackLoader.js +7 -0
  164. package/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
  165. package/lib/shared/bundler/webpack/optimizationConfig.js +56 -0
  166. package/lib/shared/bundler/webpack/outputConfig.js +38 -0
  167. package/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +40 -0
  168. package/lib/shared/bundler/webpack/pluginConfigs/configBundleIntegrityReport.js +36 -0
  169. package/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +28 -0
  170. package/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +27 -0
  171. package/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +63 -0
  172. package/lib/shared/bundler/webpack/pluginConfigs/configCustomAttributesPlugin.js +20 -0
  173. package/lib/shared/bundler/webpack/pluginConfigs/configCustomScriptLoadingStrategyPlugin.js +76 -0
  174. package/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +46 -0
  175. package/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +51 -0
  176. package/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +56 -0
  177. package/lib/shared/bundler/webpack/pluginConfigs/configI18nNumericIndexPlugin.js +113 -0
  178. package/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +41 -0
  179. package/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
  180. package/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +44 -0
  181. package/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +24 -0
  182. package/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +24 -0
  183. package/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +21 -0
  184. package/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
  185. package/lib/shared/bundler/webpack/pluginConfigs/configRuntimeResourceCleanup.js +31 -0
  186. package/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +28 -0
  187. package/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +40 -0
  188. package/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +20 -0
  189. package/lib/shared/bundler/webpack/pluginConfigs/configTPHashMappingPlugin.js +32 -0
  190. package/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +25 -0
  191. package/lib/shared/bundler/webpack/plugins.js +77 -0
  192. package/lib/shared/bundler/webpack/resolvers.js +82 -0
  193. package/lib/shared/bundler/webpack/splitChunksConfig.js +116 -0
  194. package/lib/shared/bundler/webpack/statsConfig.js +30 -0
  195. package/lib/shared/bundler/webpack/tsLoaders.js +17 -0
  196. package/lib/shared/bundler/webpack/utils/index.js +31 -0
  197. package/lib/shared/bundler/webpack/utils/object-manipulation.js +87 -0
  198. package/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +34 -0
  199. package/lib/shared/bundler/webpack/webpackBuild.js +27 -0
  200. package/lib/shared/bundler/webpack/webpackConfig.js +58 -0
  201. package/lib/shared/commands-utils/doBasicRequirementCheck.js +17 -0
  202. package/lib/shared/commands-utils/getCliPath.js +39 -0
  203. package/lib/shared/commands-utils/index.js +29 -0
  204. package/lib/shared/commands-utils/log.js +13 -0
  205. package/lib/shared/commands-utils/readArgsFormCommandLine.js +11 -0
  206. package/lib/shared/commands-utils/readOptionFormCommandLine.js +11 -0
  207. package/lib/shared/commands-utils/spawnSyncIO.js +38 -0
  208. package/lib/shared/constants.js +48 -0
  209. package/lib/shared/fileUtils/copyFile.js +38 -0
  210. package/lib/shared/fileUtils/directoryIterator.js +21 -0
  211. package/lib/shared/fileUtils/watchRun.js +112 -0
  212. package/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +21 -0
  213. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +10 -0
  214. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +66 -0
  215. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +136 -0
  216. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +32 -0
  217. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +20 -0
  218. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +20 -0
  219. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +24 -0
  220. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +43 -0
  221. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +52 -0
  222. package/lib/shared/postcss/custom_postcss_plugins/RTLSplitPlugin.js +139 -0
  223. package/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +90 -0
  224. package/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +57 -0
  225. package/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +347 -0
  226. package/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +55 -0
  227. package/lib/shared/postcss/getAllowedPostCssPlugins.js +30 -0
  228. package/lib/shared/postcss/getSpecificPostCssPlugin.js +58 -0
  229. package/lib/shared/postcss/runPostCssForCssFile.js +37 -0
  230. package/lib/shared/pre_process/runPreProcess.js +58 -0
  231. package/lib/shared/server/configWebpackDevMiddleware.js +41 -0
  232. package/lib/shared/server/corsHandling.js +30 -0
  233. package/lib/shared/server/getIp.js +30 -0
  234. package/lib/shared/server/getServerURL.js +36 -0
  235. package/lib/shared/server/httpsOptions.js +46 -0
  236. package/lib/shared/server/initExpressApp.js +19 -0
  237. package/lib/shared/server/initialHTMLHandling.js +99 -0
  238. package/lib/shared/server/mockApiHandler.js +67 -0
  239. package/lib/shared/server/mockServer.js +41 -0
  240. package/lib/shared/server/serveContextFiles.js +27 -0
  241. package/lib/shared/server/serverBywebpackDevMiddleware.js +35 -0
  242. package/lib/shared/server/startHttpServer.js +26 -0
  243. package/lib/shared/server/startHttpsServer.js +38 -0
  244. package/lib/shared/server/unwanted/addHttp2Server.js +41 -0
  245. package/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
  246. package/lib/shared/server/unwanted/mockApiSupport.js +19 -0
  247. package/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
  248. package/lib/shared/server/urlConcat.js +32 -0
  249. package/lib/shared/utils/requireLocalOrGlobal.js +81 -0
  250. package/lib/shared/utils/utils.js +1 -0
  251. package/lib/shared/utils/versionPrint.js +20 -0
  252. package/npm-shrinkwrap.json +5657 -0
  253. package/package.json +64 -0
  254. package/polyfillForOldNodeVersion.js +10 -0
  255. package/templates/app/README.MD +30 -0
  256. package/templates/app/package.json +12 -0
  257. package/templates/library/README.MD +28 -0
  258. package/templates/library/package.json +11 -0
  259. package/templates/wms/index.html +43 -0
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCSSLoaders = getCSSLoaders;
7
+
8
+ var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
9
+
10
+ var _configPostCssLoader = require("./loaderConfigs/configPostCssLoader");
11
+
12
+ var _getCssLoaderOptions = require("./loaderConfigs/getCssLoaderOptions");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function getCSSLoaders(options) {
17
+ const cssLoaderOptions = (0, _getCssLoaderOptions.getCssLoaderOptions)(options);
18
+ return [{
19
+ loader: require.resolve('./loaders/miniCssFallBackLoader')
20
+ }, {
21
+ loader: _miniCssExtractPlugin.default.loader,
22
+ options: {
23
+ publicPath: '../'
24
+ }
25
+ }, {
26
+ loader: 'css-loader',
27
+ options: cssLoaderOptions
28
+ }, (0, _configPostCssLoader.configPostCssLoader)(options)].filter(Boolean);
29
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CSS_MODULE_TYPE = void 0;
7
+ exports.getFilenameFromModule = getFilenameFromModule;
8
+ const CSS_MODULE_TYPE = 'css/mini-extract';
9
+ exports.CSS_MODULE_TYPE = CSS_MODULE_TYPE;
10
+
11
+ function getFilenameFromModule(webpackModule) {
12
+ const {
13
+ userRequest
14
+ } = webpackModule;
15
+
16
+ if (webpackModule.type === CSS_MODULE_TYPE) {
17
+ const {
18
+ _identifier: identifier = ''
19
+ } = webpackModule;
20
+ return identifier.slice(identifier.lastIndexOf('!') + 1);
21
+ }
22
+
23
+ return userRequest;
24
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.jsLoaders = jsLoaders;
7
+
8
+ var _babelLoaderConfig = require("./loaderConfigs/babelLoaderConfig");
9
+
10
+ var {
11
+ i18nIdReplaceLoaderConfig
12
+ } = require("./loaderConfigs/i18nIdReplaceLoaderConfig");
13
+
14
+ function jsLoaders(options) {
15
+ const useLoaders = [(0, _babelLoaderConfig.babelLoaderConfig)(options)];
16
+
17
+ if (options.i18nIndexing && options.i18nIndexing.enable) {
18
+ const i18nLoader = i18nIdReplaceLoaderConfig(options);
19
+
20
+ if (i18nLoader) {
21
+ useLoaders.push(i18nLoader);
22
+ }
23
+ }
24
+
25
+ return [{
26
+ test: /\.js$/,
27
+ exclude: /node_modules/,
28
+ use: useLoaders
29
+ }];
30
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assetLoaders = assetLoaders;
7
+
8
+ var _configsAssetsLoaders = require("./configsAssetsLoaders");
9
+
10
+ function assetLoaders(options) {
11
+ return [(0, _configsAssetsLoaders.configImageLoader)(options), (0, _configsAssetsLoaders.configFontLoader)(options), (0, _configsAssetsLoaders.configSVGLoader)(options), (0, _configsAssetsLoaders.configAudioLoader)(options), (0, _configsAssetsLoaders.configVideoLoader)(options)];
12
+ }
@@ -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,86 @@
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
+ const ImageExtRegex = /\.jpe?g$|\.gif$|\.png|\.webp$/;
15
+ const FontExtRegex = /\.woff2|\.woff$|\.ttf$|\.eot$/;
16
+ const SVGExtRegex = /\.svg$/;
17
+ const AudioExtRegex = /\.ogg|\.mp3$/;
18
+ const VideoExtRegex = /\.mp4|\.webm$/;
19
+
20
+ function createAssetLoader({
21
+ test,
22
+ nameTemplate,
23
+ limit
24
+ }) {
25
+ const conf = {
26
+ test,
27
+ type: 'asset'
28
+ };
29
+
30
+ if (limit) {
31
+ conf.parser = {
32
+ dataUrlCondition: {
33
+ maxSize: limit // 4 * 1024 // 4kb
34
+
35
+ }
36
+ };
37
+ } else {
38
+ conf.type = 'asset/resource';
39
+ }
40
+
41
+ if (nameTemplate) {
42
+ conf.generator = {
43
+ filename: nameTemplate
44
+ };
45
+ }
46
+
47
+ return conf;
48
+ }
49
+
50
+ function configImageLoader(options) {
51
+ return createAssetLoader({
52
+ test: ImageExtRegex,
53
+ nameTemplate: (0, _nameTemplates.nameTemplates)('image', options),
54
+ limit: 1000
55
+ });
56
+ }
57
+
58
+ function configFontLoader(options) {
59
+ return createAssetLoader({
60
+ test: FontExtRegex,
61
+ nameTemplate: (0, _nameTemplates.nameTemplates)('font', options),
62
+ limit: 1000
63
+ });
64
+ }
65
+
66
+ function configSVGLoader(options) {
67
+ return createAssetLoader({
68
+ test: SVGExtRegex,
69
+ nameTemplate: (0, _nameTemplates.nameTemplates)('svg', options),
70
+ limit: 1000
71
+ });
72
+ }
73
+
74
+ function configAudioLoader(options) {
75
+ return createAssetLoader({
76
+ test: AudioExtRegex,
77
+ nameTemplate: (0, _nameTemplates.nameTemplates)('audio', options)
78
+ });
79
+ }
80
+
81
+ function configVideoLoader(options) {
82
+ return createAssetLoader({
83
+ test: VideoExtRegex,
84
+ nameTemplate: (0, _nameTemplates.nameTemplates)('video', options)
85
+ });
86
+ }
@@ -0,0 +1,65 @@
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
+ let cleanFileName = fileNameWithoutExt.replace(/-/g, '_').toLowerCase();
55
+
56
+ if (cleanFileName.endsWith('.module')) {
57
+ cleanFileName = cleanFileName.slice(0, -7);
58
+ }
59
+
60
+ const suitableBlob = getSuitableBlob(customizations, resourcePath);
61
+ return suitableBlob.replaceAll('[local]', localName).replaceAll('[prefix]', classNamePrefix).replaceAll('[filename]', cleanFileName).replaceAll('[hash]', getHash(`${relativePath}-${localName}`, 10));
62
+ };
63
+ };
64
+
65
+ 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,94 @@
1
+ "use strict";
2
+
3
+ const path = require('path');
4
+
5
+ const fs = require('fs');
6
+
7
+ let allI18nDataFromPropertiesCache = null;
8
+
9
+ function loadJSResourcesOnce(options) {
10
+ if (allI18nDataFromPropertiesCache) {
11
+ return allI18nDataFromPropertiesCache;
12
+ }
13
+
14
+ let resourcePathToLoad = '';
15
+
16
+ if (options.i18nIndexing && options.i18nIndexing.enable && options.i18nIndexing.jsResourcePath) {
17
+ resourcePathToLoad = options.i18nIndexing.jsResourcePath;
18
+ } else if (options.i18nChunkSplit && options.i18nChunkSplit.jsResource) {
19
+ resourcePathToLoad = options.i18nChunkSplit.jsResource;
20
+ } else {
21
+ allI18nDataFromPropertiesCache = {};
22
+ return allI18nDataFromPropertiesCache;
23
+ }
24
+
25
+ const propertiesFilePath = path.resolve(process.cwd(), resourcePathToLoad);
26
+ const i18nData = {};
27
+
28
+ try {
29
+ const data = fs.readFileSync(propertiesFilePath, {
30
+ encoding: 'utf-8'
31
+ });
32
+ const lines = data.split(/\r?\n/);
33
+ lines.forEach(line => {
34
+ const trimmedLine = line.trim();
35
+
36
+ if (trimmedLine.startsWith('#') || trimmedLine.startsWith('!') || trimmedLine === '') {
37
+ return;
38
+ }
39
+
40
+ let separatorIndex = -1;
41
+
42
+ for (let i = 0; i < trimmedLine.length; i++) {
43
+ if ((trimmedLine[i] === '=' || trimmedLine[i] === ':') && (i === 0 || trimmedLine[i - 1] !== '\\')) {
44
+ separatorIndex = i;
45
+ break;
46
+ }
47
+ }
48
+
49
+ if (separatorIndex > 0) {
50
+ let key = trimmedLine.substring(0, separatorIndex).trim();
51
+ const value = trimmedLine.substring(separatorIndex + 1).trim();
52
+ key = key.replace(/\\ /g, ' ');
53
+
54
+ if (key) {
55
+ i18nData[key] = value;
56
+ }
57
+ }
58
+ });
59
+ } catch (err) {// Silent error handling
60
+ }
61
+
62
+ allI18nDataFromPropertiesCache = i18nData;
63
+ return allI18nDataFromPropertiesCache;
64
+ }
65
+
66
+ function i18nIdReplaceLoaderConfig(options) {
67
+ const allI18nData = loadJSResourcesOnce(options);
68
+
69
+ const i18nKeyReplaceLoaderPath = require.resolve('../loaders/i18nIdReplaceLoader.js');
70
+
71
+ const loaderOptions = {
72
+ allI18nData: allI18nData,
73
+ sourceMaps: !!options.devtool && options.devtool.includes('source-map'),
74
+ isDebug: options.mode === 'development'
75
+ };
76
+
77
+ if (options.i18nIndexing && options.i18nIndexing.enable) {
78
+ loaderOptions.useNumericIndexing = true;
79
+ loaderOptions.numericMapPath = options.i18nIndexing.numericMapPath;
80
+ loaderOptions.fallbackToHash = options.i18nIndexing.fallbackToHash !== undefined ? options.i18nIndexing.fallbackToHash : true;
81
+ } else {
82
+ loaderOptions.useNumericIndexing = false;
83
+ loaderOptions.fallbackToHash = true;
84
+ }
85
+
86
+ return {
87
+ loader: i18nKeyReplaceLoaderPath,
88
+ options: loaderOptions
89
+ };
90
+ }
91
+
92
+ module.exports = {
93
+ i18nIdReplaceLoaderConfig
94
+ };