@zohodesk/react-cli 1.1.11-exp.3 → 1.1.11-exp.5

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 (420) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -180
  3. package/.prettierrc +6 -6
  4. package/.vscode/settings.json +24 -24
  5. package/Changelog.md +1019 -1019
  6. package/README.md +1371 -1394
  7. package/bin/cli.js +458 -458
  8. package/docs/ComposeMinification.md +13 -13
  9. package/docs/CustomChunks.md +29 -29
  10. package/docs/DevServerPort.md +39 -39
  11. package/docs/DevStart.md +18 -18
  12. package/docs/HoverActive.md +12 -12
  13. package/docs/InstallNode.md +28 -28
  14. package/docs/MarkdownParser.md +17 -17
  15. package/docs/ReactLive.md +13 -13
  16. package/docs/SelectorWeight.md +8 -8
  17. package/docs/TODOS.md +10 -10
  18. package/docs/ValueReplacer.md +60 -60
  19. package/docs/VariableConversion.md +729 -729
  20. package/docs/patternFiltering.md +56 -56
  21. package/docs/warnings_while_install.txt +35 -35
  22. package/files/eslintrc.js +62 -62
  23. package/files/prettierrc.js +3 -3
  24. package/lib/configs/webpack.css.umd.config.js +4 -4
  25. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  26. package/lib/loaderUtils/getCSSLoaders.js +50 -50
  27. package/lib/loaders/workerLoader.js +9 -9
  28. package/lib/pluginUtils/getDevPlugins.js +5 -5
  29. package/lib/pluginUtils/getProdPlugins.js +7 -20
  30. package/lib/plugins/CustomAttributePlugin.md +35 -35
  31. package/lib/plugins/EFCPlugin.md +6 -6
  32. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  33. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  34. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  35. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  36. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  37. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  38. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  39. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  40. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  41. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  42. package/lib/plugins/SelectorPlugin.js +29 -29
  43. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  44. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  45. package/lib/plugins/VariableConversionCollector.js +59 -59
  46. package/lib/plugins/utils/fileHandling.js +4 -4
  47. package/lib/plugins/variableConvertorUtils.js +13 -11
  48. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
  49. package/lib/postcss-plugins/ValueReplacer.js +7 -0
  50. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  51. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  52. package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
  53. package/lib/postcss-plugins/variableModificationPlugin/index.js +65 -17
  54. package/lib/schemas/index.js +0 -9
  55. package/lib/sh/pre-commit.sh +34 -34
  56. package/lib/sh/reportPublish.sh +45 -45
  57. package/lib/utils/buildstats.html +148 -148
  58. package/lib/utils/cssClassNameGenerate.js +13 -13
  59. package/lib/utils/getOptions.js +1 -2
  60. package/lib/utils/resultSchema.json +73 -73
  61. package/npm-shrinkwrap.json +33485 -33485
  62. package/npm8.md +9 -9
  63. package/package.json +123 -123
  64. package/packages/client_build_tool/lib/allCommandsConfigs.js +3 -1
  65. package/packages/client_build_tool/lib/commands/build/commandExecutor.js +3 -7
  66. package/packages/client_build_tool/lib/commands/build/config.js +2 -2
  67. package/packages/client_build_tool/lib/commands/build/optionsProcessor.js +45 -0
  68. package/packages/client_build_tool/lib/commands/buildEs/commandExecutor.js +20 -4
  69. package/packages/client_build_tool/lib/commands/buildEs/config.js +2 -2
  70. package/packages/client_build_tool/lib/commands/buildLib/commandExecutor.js +20 -4
  71. package/packages/client_build_tool/lib/commands/buildLib/config.js +2 -2
  72. package/packages/client_build_tool/lib/commands/mockserver/commandExecutor.js +43 -0
  73. package/packages/client_build_tool/lib/commands/mockserver/config.js +12 -0
  74. package/packages/client_build_tool/lib/commands/start/commandExecutor.js +0 -1
  75. package/packages/client_build_tool/lib/commands/start/config.js +2 -2
  76. package/packages/client_build_tool/lib/commands/start/{optionsProcesser.js → optionsProcessor.js} +14 -10
  77. package/packages/client_build_tool/lib/commands/start/postProcessor.js +10 -0
  78. package/packages/client_build_tool/lib/commands/start/preProcessor.js +10 -0
  79. package/packages/client_build_tool/lib/commands/template/commandExecutor.js +32 -0
  80. package/packages/client_build_tool/lib/commands/template/config.js +12 -0
  81. package/packages/client_build_tool/lib/commands/version/commandExecutor.js +14 -0
  82. package/packages/client_build_tool/lib/commands/version/config.js +12 -0
  83. package/packages/client_build_tool/lib/commands/version/errorHander.js +10 -0
  84. package/packages/client_build_tool/lib/commandsRouter.js +21 -16
  85. package/packages/client_build_tool/lib/index.js +12 -0
  86. package/packages/client_build_tool/lib/{buildToolLoggers.js → logger.js} +7 -5
  87. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/otherTestCases.test.js +234 -0
  88. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/passingDifferentDataTypesToSchema.test.js +103 -0
  89. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/passingEmptyObjects.test.js +41 -0
  90. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertArray.test.js +68 -0
  91. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertNumber.test.js +68 -0
  92. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertObject.test.js +141 -0
  93. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertString.test.js +68 -0
  94. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertUndefinedAndNull.test.js +132 -0
  95. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertArray.test.js +71 -0
  96. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertNumber.test.js +71 -0
  97. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertObject.test.js +73 -0
  98. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertString.test.js +71 -0
  99. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertUndefinedAndNull.test.js +138 -0
  100. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/index.js +34 -0
  101. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/isObject.js +10 -0
  102. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/isValid.js +14 -0
  103. package/packages/client_build_tool/lib/{shared/schemas → schemas}/cliArgsToObject.js +12 -10
  104. package/packages/client_build_tool/lib/schemas/defaultConfigValues.js +244 -0
  105. package/packages/client_build_tool/lib/schemas/defaultConfigValuesOnly.js +161 -0
  106. package/packages/client_build_tool/lib/schemas/deprecatedOptionsHandler.js +67 -0
  107. package/packages/client_build_tool/lib/{shared/schemas → schemas}/getNpmVersion.js +3 -2
  108. package/packages/client_build_tool/lib/schemas/giveDefaultValue.js +18 -0
  109. package/packages/client_build_tool/lib/{shared/schemas → schemas}/npmConfigToObject.js +12 -9
  110. package/packages/client_build_tool/lib/{shared/schemas → schemas}/readOptions.js +11 -12
  111. package/packages/client_build_tool/lib/{shared/schemas/readOptionsForPackageJson.js → schemas/readOptionsForConfigFile.js} +18 -2
  112. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Map.test.js +15 -0
  113. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/MathAndNumberMethod.test.js +30 -0
  114. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/ObjectAndModules.test.js +47 -0
  115. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Sets.test.js +18 -0
  116. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Symbol.test.js +25 -0
  117. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/arrowFunction.test.js +34 -0
  118. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/block-scoping.test.js +18 -0
  119. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/classes.test.js +55 -0
  120. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/defaultParameterValues.test.js +18 -0
  121. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/extraFeatures.test.js +82 -0
  122. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/forOf.test.js +20 -0
  123. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/promise.test.js +22 -0
  124. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/spreadOperator.test.js +20 -0
  125. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/spreadParams.test.js +24 -0
  126. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/stringAndArrayMethods.test.js +67 -0
  127. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/variables.test.js +21 -0
  128. package/packages/client_build_tool/lib/shared/babel/__test__/es2016/array-includes.test.js +13 -0
  129. package/packages/client_build_tool/lib/shared/babel/__test__/es2016/exponentationOperator.test.js +20 -0
  130. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/asyncAndawait.test.js +23 -0
  131. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-entries.test.js +24 -0
  132. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-getOwnproperties.test.js +24 -0
  133. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-values.test.js +24 -0
  134. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/stringMethods.test.js +20 -0
  135. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/asynchronous-iterator.test.js +19 -0
  136. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/object-rest-spread.test.js +24 -0
  137. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/promise-finally.test.js +26 -0
  138. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/regularExpressions.test.js +35 -0
  139. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/Json.stringify.test.js +21 -0
  140. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/arrayMethods.test.js +31 -0
  141. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/object-fromEntriesMethod.test.js +13 -0
  142. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/optionalCatchBinding.test.js +23 -0
  143. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/revisedFunctionToString.test.js +17 -0
  144. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/trim-startAndend-method.test.js +20 -0
  145. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/AssignmentOperator.test.js +27 -0
  146. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/Dynamic-Import.test.js +19 -0
  147. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/NullishOperator.test.js +15 -0
  148. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/bigInt.test.js +13 -0
  149. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/chainOperator.test.js +17 -0
  150. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/export-namespace-from.test.js +12 -0
  151. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/promiseAllSettledMathod.test.js +17 -0
  152. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/stringMatchMethod.test.js +13 -0
  153. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/NumericSeparator.test.js +23 -0
  154. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/logicalOperatorAssignments.test.js +25 -0
  155. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/promiseAny.test.js +16 -0
  156. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/stringReplaceMethod.test.js +16 -0
  157. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/Array-atMethod.test.js +13 -0
  158. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/ObjectKeyCheck.test.js +27 -0
  159. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/ObjecthasOwnMethod.test.js +19 -0
  160. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/RegexMatchIndices.test.js +20 -0
  161. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/String-atMethod.test.js +15 -0
  162. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/error.Cause.test.js +23 -0
  163. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/keysCheckinPrivateFields.test.js +27 -0
  164. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/privateMethodsAndFields.test.js +23 -0
  165. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/staticFieldsAndMethod.test.js +54 -0
  166. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/topLevelAwait.test.js +11 -0
  167. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/weakRef.test.js +17 -0
  168. package/packages/client_build_tool/lib/shared/babel/__test__/utilities.js +28 -0
  169. package/packages/client_build_tool/lib/shared/babel/babelWebConfig.js +49 -0
  170. package/packages/client_build_tool/lib/shared/babel/runBabelForJSFile.js +24 -0
  171. package/packages/client_build_tool/lib/shared/bundler/webpack/common/decidePublicPath.js +1 -3
  172. package/packages/client_build_tool/lib/shared/bundler/webpack/common/modeUtils.js +31 -0
  173. package/packages/client_build_tool/lib/shared/bundler/webpack/common/nameTemplates.js +32 -13
  174. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/AddManifestJson/addFilesToManifestJson.js +19 -0
  175. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/AddManifestJson/utilities.js +18 -0
  176. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +15 -24
  177. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +112 -0
  178. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +10 -10
  179. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +172 -0
  180. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +20 -80
  181. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +203 -0
  182. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  183. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +73 -0
  184. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +88 -0
  185. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -25
  186. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +5 -5
  187. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +9 -14
  188. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +12 -374
  189. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +50 -0
  190. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +1 -0
  191. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +6 -12
  192. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +23 -23
  193. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/classesAndObject.test.js +56 -0
  194. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/conditionalOperation.test.js +154 -0
  195. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/function.test.js +89 -0
  196. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/function2.test.js +71 -0
  197. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/loop.test.js +112 -0
  198. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/minifyBooleanValues.test.js +43 -0
  199. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/minimizeVariableNames.test.js +45 -0
  200. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/promise.test.js +53 -0
  201. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/removeCommentsAndEmptySpace.test.js +13 -0
  202. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/removeUnusedStrings.test.js +14 -0
  203. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/variableDeclaration.test.js +30 -0
  204. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +11 -8
  205. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +13 -0
  206. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +14 -12
  207. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +54 -0
  208. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/addFilesNamesToManifestJson.test.js +51 -0
  209. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/createInitialEntries.test.js +95 -0
  210. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/removeHashFromFileName.test.js +91 -0
  211. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +24 -0
  212. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +17 -0
  213. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +35 -0
  214. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +18 -0
  215. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +44 -0
  216. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +18 -0
  217. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +165 -0
  218. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +4 -5
  219. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +12 -17
  220. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -34
  221. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +13 -1
  222. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/classHandling.js +20 -0
  223. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/index.js +78 -0
  224. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/selectorWeightPrefixAdder.js +51 -0
  225. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/windowsModification.js +16 -0
  226. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +79 -124
  227. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +38 -0
  228. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/uglifyCss1.test.js +74 -0
  229. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/uglifycss.test.js +64 -0
  230. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/utilities.js +28 -0
  231. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/{UglifyCSSPlugin.js → UglifyCSSPlugin/index.js.js} +2 -2
  232. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +62 -0
  233. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +361 -0
  234. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +14 -0
  235. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +57 -0
  236. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +87 -0
  237. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/classesAndObject.test.js +56 -0
  238. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/conditionalOperation.test.js +154 -0
  239. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/function.test.js +89 -0
  240. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/function2.test.js +71 -0
  241. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/loop.test.js +112 -0
  242. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/minifyBooleanValues.test.js +43 -0
  243. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/minimizeVariableNames.test.js +45 -0
  244. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/promise.test.js +53 -0
  245. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/removeCommentsAndEmptySpace.test.js +13 -0
  246. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/removeUnusedStrings.test.js +14 -0
  247. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/variableDeclaration.test.js +30 -0
  248. package/packages/client_build_tool/lib/shared/bundler/webpack/entryConfig.js +28 -0
  249. package/packages/client_build_tool/lib/shared/bundler/webpack/externals.js +13 -0
  250. package/packages/client_build_tool/lib/shared/bundler/webpack/getCSSLoaders.js +9 -12
  251. package/packages/client_build_tool/lib/shared/bundler/webpack/getSourceMapType.js +10 -0
  252. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +0 -2
  253. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +4 -10
  254. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +52 -0
  255. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +37 -0
  256. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +44 -44
  257. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +19 -43
  258. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +0 -2
  259. package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/workerLoader.js +8 -8
  260. package/packages/client_build_tool/lib/shared/bundler/webpack/optimizationConfig.js +9 -5
  261. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +40 -0
  262. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +24 -0
  263. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +13 -4
  264. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +80 -0
  265. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +46 -0
  266. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +5 -2
  267. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +38 -10
  268. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +6 -0
  269. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +32 -0
  270. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +7 -2
  271. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +19 -0
  272. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +28 -0
  273. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +25 -3
  274. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +20 -0
  275. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +25 -0
  276. package/packages/client_build_tool/lib/shared/bundler/webpack/plugins.js +18 -9
  277. package/packages/client_build_tool/lib/shared/bundler/webpack/resolvers.js +19 -12
  278. package/packages/client_build_tool/lib/shared/bundler/webpack/splitChunksConfig.js +117 -1
  279. package/packages/client_build_tool/lib/shared/bundler/webpack/statsConfig.js +21 -0
  280. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/index.js +26 -0
  281. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +18 -0
  282. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackBuild.js +7 -4
  283. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackConfig.js +15 -13
  284. package/packages/client_build_tool/lib/shared/commands-utils/doBasicRequirementCheck.js +17 -0
  285. package/packages/client_build_tool/lib/shared/{commands-utlis → commands-utils}/getCliPath.js +8 -7
  286. package/packages/client_build_tool/lib/shared/{commands-utlis → commands-utils}/index.js +3 -3
  287. package/packages/client_build_tool/lib/shared/commands-utils/spawnSyncIO.js +38 -0
  288. package/packages/client_build_tool/lib/shared/constants.js +17 -5
  289. package/packages/client_build_tool/lib/shared/fileUtils/copyFile.js +38 -0
  290. package/packages/client_build_tool/lib/shared/fileUtils/directoryIterator.js +21 -0
  291. package/packages/client_build_tool/lib/shared/fileUtils/watchRun.js +100 -0
  292. package/packages/client_build_tool/lib/shared/postcss/__test__/ignoreTestCases.test.js +80 -0
  293. package/packages/client_build_tool/lib/shared/postcss/__test__/postcss-rtl-all-cases.test.js +119 -0
  294. package/packages/client_build_tool/lib/shared/postcss/__test__/postcssRtl.spec.js +34 -0
  295. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +21 -0
  296. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +10 -0
  297. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +66 -0
  298. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +136 -0
  299. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +32 -0
  300. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +20 -0
  301. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +20 -0
  302. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +24 -0
  303. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +43 -0
  304. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +52 -0
  305. package/packages/client_build_tool/lib/shared/{bundler/webpack/custom_postcss_loaders → postcss/custom_postcss_plugins}/RTLSplitPlugin.js +10 -10
  306. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +90 -0
  307. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +57 -0
  308. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +343 -0
  309. package/packages/client_build_tool/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +55 -0
  310. package/packages/client_build_tool/lib/shared/postcss/getAllowedPostCssPlugins.js +30 -0
  311. package/packages/client_build_tool/lib/shared/postcss/getSpecificPostCssPlugin.js +58 -0
  312. package/packages/client_build_tool/lib/shared/postcss/runPostCssForCssFile.js +37 -0
  313. package/packages/client_build_tool/lib/shared/server/configWebpackDevMiddleware.js +4 -3
  314. package/packages/client_build_tool/lib/shared/server/{corsHandleing.js → corsHandling.js} +5 -12
  315. package/packages/client_build_tool/lib/shared/server/getIp.js +3 -3
  316. package/packages/client_build_tool/lib/shared/server/httpsOptions.js +25 -32
  317. package/packages/client_build_tool/lib/shared/server/initialHTMLHandling.js +54 -21
  318. package/packages/client_build_tool/lib/shared/server/mockApiHandler.js +60 -0
  319. package/packages/client_build_tool/lib/shared/server/mockServer.js +41 -0
  320. package/packages/client_build_tool/lib/shared/server/serveContextFiles.js +1 -0
  321. package/packages/client_build_tool/lib/shared/server/serverBywebpackDevMiddleware.js +6 -10
  322. package/packages/client_build_tool/lib/shared/server/startHttpServer.js +2 -2
  323. package/packages/client_build_tool/lib/shared/server/startHttpsServer.js +6 -2
  324. package/packages/client_build_tool/lib/shared/server/unwanted/websocketMockSetup.js +7 -7
  325. package/packages/client_build_tool/lib/shared/server/urlConcat.js +17 -10
  326. package/packages/client_build_tool/lib/shared/utils/requireLocalOrGlobal.js +81 -0
  327. package/packages/client_build_tool/lib/shared/utils/versionPrint.js +20 -0
  328. package/packages/client_build_tool/node_modules/history/package.json +11 -8
  329. package/postpublish.js +8 -8
  330. package/result.json +1 -0
  331. package/templates/app/.eslintrc.js +140 -140
  332. package/templates/app/README.md +12 -12
  333. package/templates/app/app/index.html +24 -24
  334. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  335. package/templates/app/app/properties/i18nkeys.json +3 -3
  336. package/templates/app/docs/all.html +69 -69
  337. package/templates/app/mockapi/index.js +18 -18
  338. package/templates/app/package.json +37 -37
  339. package/templates/app/src/actions/SampleActions/index.js +37 -37
  340. package/templates/app/src/actions/index.js +65 -65
  341. package/templates/app/src/appUrls.js +19 -19
  342. package/templates/app/src/components/Alert/Alert.js +134 -134
  343. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  344. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  345. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  346. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  347. package/templates/app/src/components/Sample/SampleList.js +61 -61
  348. package/templates/app/src/components/Slider/Slider.css +41 -41
  349. package/templates/app/src/components/Slider/Slider.js +55 -55
  350. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  351. package/templates/app/src/containers/AppContainer/index.js +96 -96
  352. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  353. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  354. package/templates/app/src/containers/DevTools/index.js +10 -10
  355. package/templates/app/src/containers/Header/index.js +67 -67
  356. package/templates/app/src/containers/Header/index.module.css +43 -43
  357. package/templates/app/src/containers/Redirect/index.js +63 -63
  358. package/templates/app/src/containers/Redirector/index.js +47 -47
  359. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  360. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  361. package/templates/app/src/historyChange.js +5 -5
  362. package/templates/app/src/index.html +10 -10
  363. package/templates/app/src/index.js +24 -24
  364. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  365. package/templates/app/src/reducers/alertData.js +11 -11
  366. package/templates/app/src/reducers/index.js +6 -6
  367. package/templates/app/src/reducers/samples.js +19 -19
  368. package/templates/app/src/store/configureStore.dev.js +51 -51
  369. package/templates/app/src/store/configureStore.js +5 -5
  370. package/templates/app/src/store/configureStore.prod.js +26 -26
  371. package/templates/app/src/util/Common.js +5 -5
  372. package/templates/app/src/util/RequestAPI.js +132 -132
  373. package/templates/docs/all.html +250 -250
  374. package/templates/docs/component.html +179 -179
  375. package/templates/docs/components.html +222 -222
  376. package/templates/docs/css/b.min.css +6 -6
  377. package/templates/docs/css/component.css +42 -42
  378. package/templates/docs/css/componentTest.css +6 -6
  379. package/templates/docs/css/hopscotch.css +585 -585
  380. package/templates/docs/css/markdown.css +202 -202
  381. package/templates/docs/css/style.css +988 -988
  382. package/templates/docs/impactReportTemplate.html +154 -154
  383. package/templates/docs/index.html +1664 -1664
  384. package/templates/docs/js/active-line.js +72 -72
  385. package/templates/docs/js/b.min.js +7 -7
  386. package/templates/docs/js/codemirror.js +9680 -9680
  387. package/templates/docs/js/designTokens.js +334 -334
  388. package/templates/docs/js/j.min.js +4 -4
  389. package/templates/docs/js/javascript.js +874 -874
  390. package/templates/docs/js/matchbrackets.js +145 -145
  391. package/unittest/index.html +37 -0
  392. package/lib/plugins/StatsPlugin.js +0 -114
  393. package/packages/client_build_tool/lib/commands/build/index.js +0 -35
  394. package/packages/client_build_tool/lib/commands/build/optionsProcesser.js +0 -40
  395. package/packages/client_build_tool/lib/commands/start/postProcesser.js +0 -10
  396. package/packages/client_build_tool/lib/commands/start/preProcesser.js +0 -10
  397. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCPlugin.js +0 -1
  398. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nDependency.js +0 -99
  399. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nModule.js +0 -201
  400. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/ExcludePlugin.js +0 -58
  401. package/packages/client_build_tool/lib/shared/bundler/webpack/devServerConfig.js +0 -34
  402. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyThirdpartyFile.js +0 -38
  403. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configUglifyCSSPlugin.js +0 -15
  404. package/packages/client_build_tool/lib/shared/bundler/webpack/postcssPlugins.js +0 -36
  405. package/packages/client_build_tool/lib/shared/bundler/webpack/webpack.dev.config.js +0 -17
  406. package/packages/client_build_tool/lib/shared/commands-utlis/doBasicRequiermentCheck.js +0 -16
  407. package/packages/client_build_tool/lib/shared/commands-utlis/spanSync.js +0 -35
  408. package/packages/client_build_tool/lib/shared/schemas/applyValuesToShema.js +0 -37
  409. package/packages/client_build_tool/lib/shared/schemas/defaultConfigValues.js +0 -119
  410. package/packages/client_build_tool/lib/shared/schemas/deprecatedOptionsHandler.js +0 -65
  411. package/packages/client_build_tool/lib/shared/schemas/getCWD.js +0 -23
  412. package/packages/client_build_tool/lib/shared/schemas/oldDefaultConfigValues.js +0 -480
  413. package/packages/client_build_tool/lib/shared/schemas/readOptionsOld.js +0 -152
  414. package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.crt +0 -37
  415. package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.key +0 -27
  416. package/packages/client_build_tool/lib/shared/server/unwanted/devServerUtlis.js +0 -1
  417. package/packages/client_build_tool/lib/shared/server/unwanted/webpackConfig.js +0 -32
  418. /package/packages/client_build_tool/lib/shared/{commands-utlis → commands-utils}/log.js +0 -0
  419. /package/packages/client_build_tool/lib/shared/{commands-utlis → commands-utils}/readArgsFormCommandLine.js +0 -0
  420. /package/packages/client_build_tool/lib/shared/{commands-utlis → commands-utils}/readOptionFormCommandLine.js +0 -0
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EFCTemplatePlugin = void 0;
7
+
8
+ var _fs = require("fs");
9
+
10
+ var _logger = require("../../../../logger");
11
+
12
+ var _LocaleChunkAssetsStore = require("./I18nSplitPlugin/LocaleChunkAssetsStore");
13
+
14
+ var _constants = require("../../../constants");
15
+
16
+ var _getInitialAssetsFuncTemplate = require("./getInitialAssetsFuncTemplate");
17
+
18
+ const INITIAL_ASSETS_TEMPLATE = '// <--getInitialAssets-->';
19
+ const PUBLIC_PATH_TEMPLATE = '"<--publicPath-->"';
20
+ const pluginName = 'EFCTemplatePlugin';
21
+
22
+ class EFCTemplatePlugin {
23
+ constructor(options = {}) {
24
+ const {
25
+ i18nFileNameTemplate,
26
+ entryPointName,
27
+ outputFile,
28
+ version,
29
+ publicPath,
30
+ templateFilePath
31
+ } = options;
32
+ this.options = options;
33
+ this.templateFilePath = (0, _constants.joinWithAppPath)(templateFilePath);
34
+ this.i18nFileNameTemplate = i18nFileNameTemplate;
35
+ this.publicPath = publicPath; // NOTE: this logic may be needed for i18n splitted file name with contenthash cases
36
+ // this.i18nManifestFileName = options.i18nManifestFileName;
37
+ // IMPORTANT: here we merging options from package.json and options via constructor
38
+ // So when debugging consider this as well
39
+ // this.options = Object.assign({}, efcOptions, options);
40
+
41
+ this.entryPointName = entryPointName || 'efc';
42
+ this.outputFile = outputFile.replace('[version]', version);
43
+ } // NOTE: this logic may be needed for i18n splitted file name with contenthash cases
44
+ // getI18nManifest(compilation) {
45
+ // const i18nManifestFile =
46
+ // compilation.assets[this.options.i18nManifestFileName];
47
+ // if (i18nManifestFile) {
48
+ // const manifest = JSON.parse(i18nManifestFile.source());
49
+ // return manifest;
50
+ // }
51
+ // return {};
52
+ // }
53
+ // eslint-disable-next-line class-methods-use-this
54
+
55
+
56
+ templateReplacer(entryPoint, compilation) {
57
+ const {
58
+ enableRTLSplit
59
+ } = this.options; // const i18nManifest = this.getI18nManifest(compilation);
60
+
61
+ const initialAssetsFuncTemplate = (0, _getInitialAssetsFuncTemplate.getInitialAssetsFuncTemplate)({
62
+ entryPoint,
63
+ compilation,
64
+ enableRTLSplit,
65
+ i18nStore: this.store,
66
+ chunkSplitEnable: this.options.chunkSplitEnable,
67
+ i18nFileNameTemplate: this.i18nFileNameTemplate,
68
+ functionName: 'getInitialAssets'
69
+ });
70
+ const templateStr = (0, _fs.readFileSync)(this.templateFilePath).toString();
71
+ return templateStr.replace(INITIAL_ASSETS_TEMPLATE, initialAssetsFuncTemplate).replace(PUBLIC_PATH_TEMPLATE, this.publicPath);
72
+ }
73
+
74
+ apply(compiler) {
75
+ const {
76
+ RawSource
77
+ } = compiler.webpack.sources;
78
+ compiler.hooks.thisCompilation.tap(pluginName, compilation => {
79
+ // Get store for cache
80
+ this.store = (0, _LocaleChunkAssetsStore.getLocaleChunkAssetsStore)(compilation);
81
+ });
82
+ compiler.hooks.thisCompilation.tap(pluginName, compilation => {
83
+ compilation.hooks.processAssets.tap({
84
+ name: pluginName,
85
+ stage: compilation.PROCESS_ASSETS_STAGE_DERIVED
86
+ }, () => {
87
+ const {
88
+ entryPointName,
89
+ outputFile
90
+ } = this;
91
+ const entryPoint = compilation.entrypoints.get(entryPointName);
92
+
93
+ if (!entryPoint) {
94
+ return;
95
+ }
96
+
97
+ if (!(0, _fs.existsSync)(this.templateFilePath)) {
98
+ (0, _logger.errorLogger)(`EFC Template file not exists ${this.templateFilePath}`);
99
+ return;
100
+ }
101
+
102
+ const source = new RawSource(this.templateReplacer(entryPoint, compilation));
103
+ compilation.emitAsset(outputFile, source);
104
+ (0, _logger.messageLogger)('The EFC embedded code was created successfully..!!!');
105
+ (0, _logger.messageLogger)(`The EFC SDK File name ${outputFile}`);
106
+ });
107
+ });
108
+ }
109
+
110
+ }
111
+
112
+ exports.EFCTemplatePlugin = EFCTemplatePlugin;
@@ -1,11 +1,11 @@
1
- # I18n Split Plugin ContributionGuide
2
- we have modifyed mini-css-extract-plugin to sute our needs of i18n related extraction and downloading.
3
- So In future may be when we need to update mini-css-extract-plugin Kindly cross check with this I18n Plugin as well.
4
-
5
- Even not breaking change, may be just performacne update or feature update. addeding that to this plugin will be use full. Kindly consider it.
6
-
7
- ## Thing we Ignored
8
- * we use webpack ast hook for adding I18nDependency. So we did not need `loader.js`
9
- * we ignore order of import in single chunk since I18n going to be download as object.
10
- we did not need it.
1
+ # I18n Split Plugin ContributionGuide
2
+ we have modifyed mini-css-extract-plugin to sute our needs of i18n related extraction and downloading.
3
+ So In future may be when we need to update mini-css-extract-plugin Kindly cross check with this I18n Plugin as well.
4
+
5
+ Even not breaking change, may be just performacne update or feature update. addeding that to this plugin will be use full. Kindly consider it.
6
+
7
+ ## Thing we Ignored
8
+ * we use webpack ast hook for adding I18nDependency. So we did not need `loader.js`
9
+ * we ignore order of import in single chunk since I18n going to be download as object.
10
+ we did not need it.
11
11
  *
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.I18nFilesEmitPlugin = void 0;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ var _createHash = require("./createHash");
11
+
12
+ var _pathCreator = require("./pathCreator");
13
+
14
+ var _propertiesUtils = require("./utils/propertiesUtils");
15
+
16
+ var _LocaleChunkAssetsStore = require("./LocaleChunkAssetsStore");
17
+
18
+ /* eslint-disable no-restricted-syntax */
19
+ const pluginName = 'I18nFilesEmitPlugin';
20
+ const {
21
+ RawSource
22
+ } = _webpack.sources;
23
+
24
+ class I18nFilesEmitPlugin {
25
+ constructor(options) {
26
+ this.options = options; // this.options = {
27
+ // locales: options.locales,
28
+ // chunkFilename: options.chunkFilename,
29
+ // filename: options.filename,
30
+ // allI18nObject: options.allI18nObject,
31
+ // jsonpFunc: options.jsonpFunc
32
+ // };
33
+ }
34
+
35
+ apply(compiler) {
36
+ compiler.hooks.thisCompilation.tap(pluginName, compilation => {
37
+ // Get store for cache
38
+ this.store = (0, _LocaleChunkAssetsStore.getLocaleChunkAssetsStore)(compilation);
39
+ const i18nStore = this.store;
40
+ compilation.hooks.beforeHash.tap(pluginName, () => {
41
+ i18nStore.clear();
42
+ this.createAndStoreFileContentForEveryChunkAndLocale(compilation);
43
+ });
44
+ compilation.hooks.chunkHash.tap(pluginName, (chunk, hash) => {
45
+ this.updateChunkHashForEveryLocale(chunk, hash);
46
+ });
47
+ compilation.hooks.contentHash.tap(pluginName, chunk => {
48
+ if (!i18nStore.isChunkHasI18n(chunk.id)) {
49
+ return;
50
+ }
51
+
52
+ this.emitI18nFileForEveryLocale(chunk, compilation);
53
+ });
54
+ });
55
+ }
56
+
57
+ createAndStoreFileContentForEveryChunkAndLocale(compilation) {
58
+ const {
59
+ chunks
60
+ } = compilation;
61
+ const {
62
+ locales
63
+ } = this.options;
64
+ const i18nStore = this.store;
65
+
66
+ for (const chunk of chunks) {
67
+ const i18nKeys = i18nStore.getI18nKeysForChunk(chunk);
68
+
69
+ if (!i18nKeys.length) {
70
+ // eslint-disable-next-line no-continue
71
+ continue;
72
+ }
73
+
74
+ for (const locale of locales) {
75
+ const content = this.getI18nChunkFileContent(i18nKeys, locale);
76
+ i18nStore.storeData(chunk.id, locale, {
77
+ content
78
+ });
79
+ }
80
+ }
81
+ }
82
+
83
+ updateChunkHashForEveryLocale(chunk, hash) {
84
+ const {
85
+ locales
86
+ } = this.options;
87
+ const i18nStore = this.store;
88
+
89
+ if (i18nStore.isChunkHasI18n(chunk.id)) {
90
+ for (const loc of locales) {
91
+ const content = i18nStore.getContent(chunk.id, loc);
92
+ hash.update(content);
93
+ }
94
+ }
95
+ }
96
+
97
+ emitI18nFileForEveryLocale(chunk, compilation) {
98
+ const i18nStore = this.store;
99
+ const {
100
+ locales,
101
+ chunkFilename,
102
+ filename
103
+ } = this.options;
104
+ const fileNameTemplate = chunk.canBeInitial() ? filename : chunkFilename; // const { chunks } = compilation;
105
+
106
+ for (const locale of locales) {
107
+ const content = i18nStore.getContent(chunk.id, locale);
108
+ const contentHash = (0, _createHash.createHash)({
109
+ outputOptions: compilation.outputOptions,
110
+ content
111
+ });
112
+ const {
113
+ filename
114
+ } = I18nFilesEmitPlugin.createFilenameWithHash({
115
+ compilation,
116
+ contentHash,
117
+ fileNameTemplate,
118
+ chunk,
119
+ locale
120
+ });
121
+ i18nStore.storeData(chunk.id, locale, {
122
+ contentHash,
123
+ filename
124
+ });
125
+ compilation.emitAsset(filename, new RawSource(content));
126
+ }
127
+ }
128
+
129
+ static createFilenameWithHash({
130
+ compilation,
131
+ fileNameTemplate,
132
+ chunk,
133
+ locale,
134
+ contentHash
135
+ }) {
136
+ const fileName = fileNameTemplate.replaceAll('[locale]', locale);
137
+ const filename = (0, _pathCreator.pathCreator)(fileName, compilation, {
138
+ hash: compilation.hash,
139
+ chunkId: chunk.id,
140
+ chunkHash: chunk.hash,
141
+ contentHash
142
+ });
143
+ return {
144
+ contentHash,
145
+ filename
146
+ };
147
+ }
148
+
149
+ getI18nContentForkeys(i18nKeys, locale) {
150
+ const {
151
+ allI18nObject
152
+ } = this.options;
153
+ const data = {};
154
+
155
+ for (const key of i18nKeys) {
156
+ data[key] = allI18nObject[locale][key];
157
+ }
158
+
159
+ return data;
160
+ }
161
+
162
+ getI18nChunkFileContent(i18nKeys, loc) {
163
+ const {
164
+ jsonpFunc
165
+ } = this.options;
166
+ const data = this.getI18nContentForkeys(i18nKeys, loc);
167
+ return `${jsonpFunc}(${(0, _propertiesUtils.jsonToString)(data)})`;
168
+ }
169
+
170
+ }
171
+
172
+ exports.I18nFilesEmitPlugin = I18nFilesEmitPlugin;
@@ -7,67 +7,26 @@ exports.default = void 0;
7
7
 
8
8
  var _utils = require("./utils");
9
9
 
10
+ var _LocaleChunkAssetsStore = require("./LocaleChunkAssetsStore");
11
+
10
12
  /* eslint-disable max-classes-per-file */
11
- // import { I18nDependency } from './1I18nDependency';
12
- const pluginName = 'I18nKeysIdentifer';
13
- /**
14
- * this plugin search the i18 keys and make it as I18nDependency.
15
- * how it works?
16
- * this plugin get jsResourceI18nKeys in constructor.
17
- * we walk throught the js files AST
18
- * if any string literal in that AST is in jsResourceI18nKeys then we consider that string as I18n key
19
- * after the walk of AST we get some I18n keys
20
- * then we make it as I18nDependency.
13
+ const pluginName = 'I18nKeysIdentifier';
14
+ /**
15
+ * this plugin search the i18 keys and make it as I18nDependency.
16
+ * how it works?
17
+ * this plugin get jsResourceI18nKeys in constructor.
18
+ * we walk thought the js files AST
19
+ * if any string literal in that AST is in jsResourceI18nKeys then we consider that string as I18n key
20
+ * after the walk of AST we get some I18n keys
21
+ * then we make it as I18nDependency.
21
22
  */
22
23
 
23
24
  class I18nKeysIdentifer {
24
25
  constructor({
25
26
  jsResourceI18nKeys
26
- }, {
27
- I18nDependency,
28
- I18nModule
29
27
  }) {
30
28
  this.jsResourceI18nKeys = jsResourceI18nKeys;
31
- this.I18nDependency = I18nDependency;
32
- this.I18nModule = I18nModule;
33
- this.modulesI18nKeysMap = {};
34
- }
35
-
36
- defineConfigarationForI18nDependency(compilation) {
37
- const {
38
- I18nModule,
39
- I18nDependency
40
- } = this;
41
-
42
- class I18nModuleFactory {
43
- // eslint-disable-next-line class-methods-use-this
44
- create({
45
- dependencies: [dependency]
46
- }, callback) {
47
- callback(undefined, new I18nModule(dependency));
48
- }
49
-
50
- }
51
-
52
- compilation.dependencyFactories.set(I18nDependency, new I18nModuleFactory());
53
-
54
- class I18nDependencyTemplate {
55
- // eslint-disable-next-line class-methods-use-this
56
- apply() {}
57
-
58
- }
59
-
60
- compilation.dependencyTemplates.set(I18nDependency, new I18nDependencyTemplate());
61
- }
62
-
63
- addI18nDependency(module, i18nKeys) {
64
- const identifier = `i18n ${module.resource}`;
65
- const dep = new this.I18nDependency({
66
- identifier,
67
- content: JSON.stringify(i18nKeys),
68
- i18nKeys
69
- }, module.context, 0);
70
- module.addDependency(dep);
29
+ this.store = new _LocaleChunkAssetsStore.LocaleChunkAssetsStore();
71
30
  }
72
31
 
73
32
  apply(compiler) {
@@ -78,15 +37,13 @@ class I18nKeysIdentifer {
78
37
  // }
79
38
  // }
80
39
  compiler.hooks.thisCompilation.tap(pluginName, compilation => {
81
- // this below hook was tapped for we use I18nDependency
82
- // so we must define module factory for I18nDependency
83
- // and we must define how it import statement look like I18nDependencyTemplate
84
- this.defineConfigarationForI18nDependency(compilation);
40
+ this.store.updateCompilation(compilation);
41
+ (0, _LocaleChunkAssetsStore.setLocaleChunkAssetsStore)(compilation, this.store);
85
42
  });
86
43
  compiler.hooks.normalModuleFactory.tap(pluginName, factory => {
87
44
  // handler for parser
88
45
  const handler = parser => {
89
- parser.hooks.program.tap(pluginName, (ast, commmets) => {
46
+ parser.hooks.program.tap(pluginName, (ast, comments) => {
90
47
  const {
91
48
  module
92
49
  } = parser.state; //
@@ -98,19 +55,14 @@ class I18nKeysIdentifer {
98
55
 
99
56
  let i18nKeys = (0, _utils.collectI18nKeysfromAST)(ast, this.jsResourceI18nKeys);
100
57
  i18nKeys = i18nKeys.concat( // i18n grep proper contract regex
101
- (0, _utils.collectI18nKeysfromComments)(commmets, this.jsResourceI18nKeys));
58
+ (0, _utils.collectI18nKeysfromComments)(comments, this.jsResourceI18nKeys));
102
59
 
103
60
  if (i18nKeys.length) {
104
- // console.log(
105
- // 'i18nKeys.length',
106
- // module.resource,
107
- // i18nKeys.length < 5 ? i18nKeys : i18nKeys.length
108
- // );
109
- this.modulesI18nKeysMap[module.resource] = i18nKeys;
110
- this.addI18nDependency(module, i18nKeys);
61
+ // console.log('i18nKeys.length', module.resource, i18nKeys);
62
+ this.store.updateModuleI18nKeys(module.resource, i18nKeys);
111
63
  }
112
64
  });
113
- }; // this below hook was tapped for collect I18n Key from files and add as Deppenensy
65
+ }; // this below hook was tapped for collect I18n Key from files and add as Dependency
114
66
  // const factory = params.normalModuleFactory;
115
67
 
116
68
 
@@ -119,18 +71,6 @@ class I18nKeysIdentifer {
119
71
  });
120
72
  }
121
73
 
122
- } // I18nKeysIdentifer.isChunkHasI18n = function (chunk) {
123
- // // eslint-disable-next-line no-restricted-syntax
124
- // for (const module of chunk.modulesIterable) {
125
- // // eslint-disable-next-line no-restricted-syntax
126
- // for (const dep of module.dependencies) {
127
- // if (dep instanceof I18nDependency) {
128
- // return true;
129
- // }
130
- // }
131
- // }
132
- // return false;
133
- // };
134
-
74
+ }
135
75
 
136
76
  exports.default = I18nKeysIdentifer;
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.I18nRuntimeDealerPlugin = void 0;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
11
+
12
+ var _constants = require("./constants");
13
+
14
+ var _getI18nLoadingRuntimeModule = require("./getI18nLoadingRuntimeModule");
15
+
16
+ var _templateFileName = require("./templateFileName");
17
+
18
+ var _hashUtils = require("./utils/hashUtils");
19
+
20
+ var _urlConcat = require("../../../../server/urlConcat");
21
+
22
+ var _I18nFilesEmitPlugin = require("./I18nFilesEmitPlugin");
23
+
24
+ var _LocaleChunkAssetsStore = require("./LocaleChunkAssetsStore");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ const {
29
+ RawSource
30
+ } = _webpack.sources;
31
+ const pluginName = 'I18nRuntimeDealerPlugin'; // I18nExtractPlugin.loader = require.resolve('./loader');
32
+
33
+ class I18nRuntimeDealerPlugin {
34
+ constructor(options) {
35
+ this.options = options;
36
+ }
37
+
38
+ apply(compiler) {
39
+ compiler.hooks.thisCompilation.tap(pluginName, compilation => {
40
+ // Get store for cache
41
+ this.store = (0, _LocaleChunkAssetsStore.getLocaleChunkAssetsStore)(compilation);
42
+
43
+ if (!this.options.runtime) {
44
+ return;
45
+ }
46
+
47
+ this.createI18nDownloadCodeInRuntimeFile(compilation);
48
+ this.addI18nIntoInitialHtml(compilation);
49
+ });
50
+ }
51
+
52
+ addI18nIntoInitialHtml(compilation) {
53
+ const i18nStore = this.store;
54
+
55
+ _htmlWebpackPlugin.default.getHooks(compilation).beforeAssetTagGeneration.tap(pluginName, hookOptions => {
56
+ const {
57
+ assets
58
+ } = hookOptions;
59
+ const {
60
+ templateLabel,
61
+ filename,
62
+ publicPath = '',
63
+ mainChunkName
64
+ } = this.options; // const dummyContent = '// dummy comment';
65
+
66
+ const dummyContentHash = 'qwertyuiopasdfghjkl';
67
+ const entryPoint = compilation.entrypoints.get(mainChunkName);
68
+ const initialChunks = Array.from(entryPoint.chunks).filter(c => c.canBeInitial() && c.id !== c.runtime);
69
+ const initialI18nAssets = initialChunks.filter(c => i18nStore.isChunkHasI18n(c)).map(c => {
70
+ const data = _I18nFilesEmitPlugin.I18nFilesEmitPlugin.createFilenameWithHash({
71
+ compilation,
72
+ fileNameTemplate: filename,
73
+ chunk: c,
74
+ locale: templateLabel,
75
+ // NOTE: we used dummy content hash.
76
+ // Because we have no plan on use in content hash to initial I18n chunks
77
+ // So Dummy hash was being used it will not work just skip warnings
78
+ contentHash: dummyContentHash
79
+ });
80
+
81
+ return (0, _urlConcat.urlConcat)(publicPath, data.filename);
82
+ });
83
+ const allJSAssets = [...initialI18nAssets, ...assets.js].map(url => url.replaceAll('[locale]', templateLabel).replaceAll('%5Blocale%5D', templateLabel));
84
+ return {
85
+ assets: { ...assets,
86
+ js: allJSAssets
87
+ }
88
+ };
89
+ });
90
+ }
91
+
92
+ createI18nDownloadCodeInRuntimeFile(compilation) {
93
+ const {
94
+ chunkFilename,
95
+ locales,
96
+ localeVarName
97
+ } = this.options;
98
+ const chunkFilenameHasContentHash = (0, _hashUtils.hasContentHash)(chunkFilename);
99
+
100
+ const getI18nChunks = mainChunk => this.filterI18nUsedChunks(mainChunk.getAllAsyncChunks());
101
+
102
+ const I18nLoadingRuntimeModule = (0, _getI18nLoadingRuntimeModule.getI18nLoadingRuntimeModule)({
103
+ getI18nChunks
104
+ });
105
+ const enabledChunks = new WeakSet();
106
+
107
+ const chunkFilenameUrlGenerator = (i18nChunks, locale) => (0, _templateFileName.templateFileName)({
108
+ compilation,
109
+ localeVarName,
110
+ dynamicFilename: chunkFilename,
111
+ contentHashes: this.getContentHashes(locale),
112
+ chunks: i18nChunks
113
+ });
114
+
115
+ const prefixFunc = () => _constants.I18N_CHUNK_NAME_GENERATION_SEGMENT;
116
+
117
+ const handler = (entryRuntimeChunk, set) => {
118
+ if (enabledChunks.has(entryRuntimeChunk)) {
119
+ return;
120
+ }
121
+
122
+ enabledChunks.add(entryRuntimeChunk);
123
+ const {
124
+ chunkFilename,
125
+ // filename: initialFilename,
126
+ runtimeOptions
127
+ } = this.options;
128
+
129
+ if (typeof chunkFilename === 'string' && /\[(full)?hash(:\d+)?\]/.test(chunkFilename)) {
130
+ set.add(_webpack.RuntimeGlobals.getFullHash);
131
+ }
132
+
133
+ set.add(_webpack.RuntimeGlobals.publicPath);
134
+ compilation.addRuntimeModule(entryRuntimeChunk, new I18nLoadingRuntimeModule(set, {
135
+ prefixFunc: chunkFilenameHasContentHash ? prefixFunc : chunkFilenameUrlGenerator,
136
+ runtimeOptions,
137
+ chunkFilename
138
+ }));
139
+ };
140
+
141
+ compilation.hooks.runtimeRequirementInTree.for(_webpack.RuntimeGlobals.ensureChunkHandlers).tap(pluginName, handler);
142
+
143
+ if (chunkFilenameHasContentHash) {
144
+ compilation.hooks.processAssets.tap({
145
+ name: pluginName,
146
+ stage: _webpack.Compilation.PROCESS_ASSETS_STAGE_DERIVED // additionalAssets: true
147
+
148
+ }, assets => {
149
+ // eslint-disable-next-line no-underscore-dangle
150
+ const entries = compilation._getChunkGraphEntries();
151
+
152
+ function createRuntimeFilePerLocale({
153
+ locale,
154
+ runtimeFileName,
155
+ runtimeFileSourceStr,
156
+ i18nChunks
157
+ }) {
158
+ const newRuntimeName = runtimeFileName.replaceAll('[locale]', locale);
159
+ const replaceText = chunkFilenameUrlGenerator(i18nChunks, locale);
160
+ const replacedStr = runtimeFileSourceStr.replace(_constants.I18N_CHUNK_NAME_GENERATION_SEGMENT, replaceText);
161
+ compilation.emitAsset(newRuntimeName, new RawSource(replacedStr));
162
+ } // eslint-disable-next-line no-restricted-syntax
163
+
164
+
165
+ for (const entryChunk of entries) {
166
+ const i18nChunks = getI18nChunks(entryChunk);
167
+ const runtimeFileName = [...entryChunk.files][0];
168
+ const runtimeFileSourceStr = assets[runtimeFileName].source();
169
+ locales.forEach(locale => createRuntimeFilePerLocale({
170
+ locale,
171
+ entryChunk,
172
+ runtimeFileName,
173
+ runtimeFileSourceStr,
174
+ i18nChunks
175
+ })); // NOTE: we don't delete, Because of HTML plugin needs to add runtime file in html
176
+ // compilation.deleteAsset(runtimeFileName);
177
+ }
178
+ });
179
+ }
180
+ }
181
+
182
+ filterI18nUsedChunks(chunks) {
183
+ const i18nStore = this.store;
184
+ return Array.from(chunks).filter(c => i18nStore.isChunkHasI18n(c.id));
185
+ }
186
+
187
+ getContentHashes(locale) {
188
+ const i18nStore = this.store;
189
+ const contentHashes = {};
190
+ i18nStore.forEachChunkId(chunkId => {
191
+ const contentHash = i18nStore.getContentHash(chunkId, locale);
192
+
193
+ if (contentHash) {
194
+ contentHashes[chunkId] = contentHash;
195
+ }
196
+ }); // console.log({ contentHashes });
197
+
198
+ return contentHashes;
199
+ }
200
+
201
+ }
202
+
203
+ exports.I18nRuntimeDealerPlugin = I18nRuntimeDealerPlugin;