@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,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getI18nAssetForChunkAsStr = getI18nAssetForChunkAsStr;
7
+ exports.getI18nAssetsForChunkAsArrayStr = getI18nAssetsForChunkAsArrayStr;
8
+ exports.getInitialI18nAssetsArrayStr = getInitialI18nAssetsArrayStr;
9
+
10
+ var _I18nFilesEmitPlugin = require("./I18nSplitPlugin/I18nFilesEmitPlugin");
11
+
12
+ /* eslint-disable no-use-before-define */
13
+ // for SMap relate changes
14
+ // CdnChangePlugin
15
+ // SourceMapHookPlugin
16
+ function getInitialI18nAssetsArrayStr({
17
+ entryPoint,
18
+ compilation,
19
+ i18nStore,
20
+ chunkSplitEnable,
21
+ i18nFileNameTemplate
22
+ }) {
23
+ return getI18nAssetsForChunkAsArrayStr({
24
+ chunks: entryPoint.chunks,
25
+ compilation,
26
+ i18nStore,
27
+ chunkSplitEnable,
28
+ i18nFileNameTemplate
29
+ });
30
+ }
31
+
32
+ function getI18nAssetsForChunkAsArrayStr({
33
+ chunks,
34
+ compilation,
35
+ i18nStore,
36
+ chunkSplitEnable,
37
+ i18nFileNameTemplate
38
+ }) {
39
+ if (!chunkSplitEnable) {
40
+ // NOTE: we have used lang variable inside
41
+ // NOTE: below code for full i18n for now it is not implemented
42
+ // if (!chunkSplitEnable) {
43
+ // let i18nAssets = {};
44
+ // const i18nFiles = Object.keys(compilation.assets).filter(
45
+ // assert => assert.indexOf(`i18n${path.sep}`) !== -1
46
+ // );
47
+ // // hook for i18n url contains i18n/ may cause problem
48
+ // i18nAssets = i18nFiles.reduce((res, i18nFilePath) => {
49
+ // const fileName = i18nFilePath.replace(`i18n${path.sep}`, '');
50
+ // const splittedFileName = fileName.split('.');
51
+ // res[splittedFileName[0]] = i18nFilePath;
52
+ // return res;
53
+ // }, {});
54
+ // return `[${JSON.stringify(i18nAssets)}[lang]]`;
55
+ // }
56
+ return '[]';
57
+ }
58
+
59
+ const i18nAssetsUrlTemplates = [...chunks].map(chunk => getI18nAssetForChunkAsStr({
60
+ chunk,
61
+ compilation,
62
+ i18nStore,
63
+ i18nFileNameTemplate
64
+ })).filter(Boolean);
65
+ return `${JSON.stringify(i18nAssetsUrlTemplates)}.map(urlPath => urlPath.replace(/@locale@/g, lang))`;
66
+ }
67
+
68
+ function getI18nAssetForChunkAsStr({
69
+ chunk,
70
+ compilation,
71
+ i18nStore,
72
+ i18nFileNameTemplate
73
+ }) {
74
+ if (!i18nStore.isChunkHasI18n(chunk)) {
75
+ return '';
76
+ }
77
+
78
+ const i18nAssetsUrlTemplates = _I18nFilesEmitPlugin.I18nFilesEmitPlugin.createFilenameWithHash({
79
+ compilation,
80
+ fileNameTemplate: i18nFileNameTemplate,
81
+ chunk,
82
+ locale: '@locale@',
83
+ contentHash: 'contentHash'
84
+ }).filename;
85
+
86
+ return i18nAssetsUrlTemplates;
87
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ const terser = require('terser');
4
+
5
+ test('normal object', () => {
6
+ const code = `
7
+ const student = {
8
+ name: 'Sheldon',
9
+ score: 100,
10
+ grade: 'A',
11
+ }
12
+ console.log(student)
13
+ delete student.score
14
+ student.grade = 'F'
15
+ console.log(student)
16
+ student = {}
17
+ `;
18
+ return terser.minify(code).then(minify => {
19
+ expect(minify.code).toBe('const student={name:"Sheldon",score:100,grade:"A"};console.log(student),delete student.score,student.grade="F",console.log(student),student={};');
20
+ });
21
+ });
22
+ test('Assignment shorthand syntax takes extra space', () => {
23
+ const code = `
24
+ const person = {
25
+ name: 'Tom',
26
+ age: '22',
27
+ };
28
+ const {name, age} = person;
29
+ console.log(name); // 'Tom'
30
+ console.log(age); // '22'
31
+ `;
32
+ return terser.minify(code).then(minify => {
33
+ expect(minify.code).toBe('const person={name:"Tom",age:"22"},{name:name,age:age}=person;console.log(name),console.log(age);');
34
+ });
35
+ });
36
+ test('minimize the name of parameter inside the class object', () => {
37
+ const code = `
38
+ class Dog {
39
+ constructor(name) {
40
+ this._name = name;
41
+ }
42
+ introduce() {
43
+ console.log('This is ' + this._name + ' !');
44
+ }
45
+ static bark() {
46
+ console.log('Woof!');
47
+ }
48
+ }
49
+ const myDog = new Dog('Buster');
50
+ myDog.introduce();
51
+ Dog.bark();
52
+ `;
53
+ return terser.minify(code).then(minify => {
54
+ expect(minify.code).toBe('class Dog{constructor(o){this._name=o}introduce(){console.log("This is "+this._name+" !")}static bark(){console.log("Woof!")}}const myDog=new Dog("Buster");myDog.introduce(),Dog.bark();');
55
+ });
56
+ });
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable max-lines */
4
+ const terser = require('terser');
5
+
6
+ describe('if condition', () => {
7
+ it('remove unused if condition with true value', () => {
8
+ const code = `
9
+
10
+ if (true) {
11
+ console.log('Mail sent to recipient');
12
+ }
13
+ `;
14
+ return terser.minify(code).then(minify => {
15
+ expect(minify.code).toBe('console.log("Mail sent to recipient");');
16
+ });
17
+ });
18
+ it('remove unused if condition with false value', () => {
19
+ const code = `
20
+ if (false) {
21
+ console.log('Mail sent to recipient');
22
+ }
23
+ `;
24
+ return terser.minify(code).then(minify => {
25
+ expect(minify.code).toBe('0;');
26
+ });
27
+ });
28
+ it('remove unused if statements when using a let or var type variable', () => {
29
+ const code = `
30
+ let isMailSent = true;
31
+
32
+ if (isMailSent) {
33
+ console.log('Mail sent to recipient');
34
+ }
35
+ `;
36
+ return terser.minify(code).then(minify => {
37
+ expect(minify.code).toBe('let isMailSent=!0;isMailSent&&console.log("Mail sent to recipient");');
38
+ });
39
+ });
40
+ it('remove unused if statements using a const variable', () => {
41
+ const code = `
42
+ const isMailSent = true;
43
+
44
+ if (isMailSent) {
45
+ console.log('Mail sent to recipient');
46
+ }
47
+ `;
48
+ return terser.minify(code).then(minify => {
49
+ expect(minify.code).toBe('const isMailSent=!0;console.log("Mail sent to recipient");');
50
+ });
51
+ });
52
+ it('if and else statement', () => {
53
+ const code = `
54
+ let isMailSent = true;
55
+
56
+ if (isMailSent) {
57
+ console.log('Mail sent to recipient');
58
+ }else{
59
+ console.log(3)
60
+ }
61
+ `;
62
+ return terser.minify(code).then(minify => {
63
+ expect(minify.code).toBe('let isMailSent=!0;isMailSent?console.log("Mail sent to recipient"):console.log(3);');
64
+ });
65
+ });
66
+ it('if and else statement returns same value', () => {
67
+ const code = `
68
+ let isMailSent = true;
69
+
70
+ if (isMailSent) {
71
+ console.log('Mail sent to recipient');
72
+ }else{
73
+ console.log('Mail sent to recipient');
74
+ }
75
+ `;
76
+ return terser.minify(code).then(minify => {
77
+ expect(minify.code).toBe('let isMailSent=!0;console.log("Mail sent to recipient");');
78
+ });
79
+ });
80
+ it('using else if statement return same value', () => {
81
+ const code = `
82
+ let isMailSent = true;
83
+
84
+ if (isMailSent) {
85
+ console.log('Mail sent to recipient');
86
+ }else if(!isMailSent){
87
+ console.log('Mail sent to recipient');
88
+ }
89
+ `;
90
+ return terser.minify(code).then(minify => {
91
+ expect(minify.code).toBe('let isMailSent=!0;isMailSent?console.log("Mail sent to recipient"):isMailSent||console.log("Mail sent to recipient");');
92
+ });
93
+ });
94
+ it('using else if statement return different value', () => {
95
+ const code = `
96
+ let isMailSent = true;
97
+ if (isMailSent) {
98
+ console.log('Mail sent to recipient');
99
+ }else if(isMailSent == 1){
100
+ console.log('Mail not sent to recipient');
101
+ }
102
+ `;
103
+ return terser.minify(code).then(minify => {
104
+ expect(minify.code).toBe('let isMailSent=!0;isMailSent?console.log("Mail sent to recipient"):1==isMailSent&&console.log("Mail not sent to recipient");');
105
+ });
106
+ });
107
+ it('skips the false content', () => {
108
+ const code = `
109
+ const size = 4;
110
+ if (size > 100) {
111
+ console.log('Big');
112
+ } else if (size > 20) {
113
+ console.log('Medium');
114
+ } else if (size > 4) {
115
+ console.log('Small');
116
+ } else {
117
+ console.log('Tiny');
118
+ }
119
+ `;
120
+ return terser.minify(code).then(minify => {
121
+ expect(minify.code).toBe('const size=4;console.log("Tiny");');
122
+ });
123
+ });
124
+ });
125
+ test('nullish operator', () => {
126
+ const code = `
127
+ const a = undefined;
128
+ console.log(undefined??"hi")
129
+ `;
130
+ return terser.minify(code).then(minify => {
131
+ expect(minify.code).toBe('const a=void 0;console.log("hi");');
132
+ });
133
+ });
134
+ describe('switch Case', () => {
135
+ it('first value matched but runs for all', () => {
136
+ const code = `
137
+ const food = 'oyster';
138
+
139
+ switch (food) {
140
+ case 'oyster':
141
+ console.log('The taste of the sea');
142
+ break;
143
+ case 'pizza':
144
+ console.log('A delicious pie');
145
+ break;
146
+ default:
147
+ console.log('Enjoy your meal');
148
+ }
149
+ `;
150
+ return terser.minify(code).then(minify => {
151
+ expect(minify.code).toBe('const food="oyster";switch(food){case"oyster":console.log("The taste of the sea");break;case"pizza":console.log("A delicious pie");break;default:console.log("Enjoy your meal")}');
152
+ });
153
+ });
154
+ });
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ const terser = require('terser');
4
+
5
+ test('arrow function reducing the arguments name', () => {
6
+ const code = `
7
+ const sum = (param1, param2) => {
8
+ return param1 + param2;
9
+ };
10
+ console.log(sum(2, 5));
11
+ `;
12
+ return terser.minify(code).then(minify => {
13
+ expect(minify.code).toBe('const sum=(o,s)=>o+s;console.log(sum(2,5));');
14
+ });
15
+ });
16
+ test('arrow function with console', () => {
17
+ const code = `
18
+ const printHello = () => {
19
+ console.log('hi')
20
+ return ('hello');
21
+ };
22
+ printHello();
23
+ `;
24
+ return terser.minify(code).then(minify => {
25
+ expect(minify.code).toBe('const printHello=()=>(console.log("hi"),"hello");console.log("hi");');
26
+ });
27
+ });
28
+ test('remove unused or unwanted codes inside function', () => {
29
+ const code = `
30
+ function a(){
31
+ let x = 3;
32
+ let a = 1;
33
+ //this is a function
34
+ let result = (a == 1) ? true : false
35
+ result = (x == 1) ? true : false;
36
+ }
37
+ `;
38
+ return terser.minify(code).then(minify => {
39
+ expect(minify.code).toBe('function a(){let n=!0;n=!1}');
40
+ });
41
+ });
42
+ describe('function', () => {
43
+ it('Minify a simple function', () => {
44
+ const code = `
45
+ function sum(num1, num2) {
46
+ return num1 + num2;
47
+ }
48
+ `;
49
+ return terser.minify(code).then(minify => {
50
+ expect(minify.code).toBe('function sum(n,u){return n+u}');
51
+ });
52
+ });
53
+ it('Minify a function with a variable declaration', () => {
54
+ const code = `
55
+ function sum(num1, num2) {
56
+ var result = num1 + num2;
57
+ return result;
58
+ }
59
+ `;
60
+ return terser.minify(code).then(minify => {
61
+ expect(minify.code).toBe('function sum(n,u){return n+u}');
62
+ });
63
+ });
64
+ it('Minify a function with a if condition', () => {
65
+ const code = `
66
+ function sum(num1, num2) {
67
+ if (num1 > num2) {
68
+ return num1;
69
+ } else {
70
+ return num2;
71
+ }
72
+ }
73
+ `;
74
+ return terser.minify(code).then(minify => {
75
+ expect(minify.code).toBe('function sum(n,u){return n>u?n:u}');
76
+ });
77
+ });
78
+ it('Minify a function with return statement', () => {
79
+ const code = `
80
+ function sum(num1, num2) {
81
+ var result = num1 + num2;
82
+ return result;
83
+ }
84
+ `;
85
+ return terser.minify(code).then(minify => {
86
+ expect(minify.code).toBe('function sum(n,u){return n+u}');
87
+ });
88
+ });
89
+ });
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ const terser = require('terser');
4
+
5
+ describe('function', () => {
6
+ it('Minify a function with console.log', () => {
7
+ const code = `
8
+ function sum(num1, num2) {
9
+ var result = num1 + num2;
10
+ console.log(result)
11
+ }
12
+ `;
13
+ return terser.minify(code).then(minify => {
14
+ expect(minify.code).toBe('function sum(o,n){var c=o+n;console.log(c)}');
15
+ });
16
+ });
17
+ it('Minify a function with return and console.log', () => {
18
+ const code = `
19
+ function sum(num1, num2) {
20
+ var result = num1 + num2;
21
+ console.log(result);
22
+ return result;
23
+ }
24
+ `;
25
+ return terser.minify(code).then(minify => {
26
+ expect(minify.code).toBe('function sum(n,o){var r=n+o;return console.log(r),r}');
27
+ });
28
+ });
29
+ it('remove unused (dead codes) and unwanted variables inside the function', () => {
30
+ const code = `
31
+ function sum(num1, num2) {
32
+ var result = num1 + num2;
33
+ const functName = 'addition';
34
+ var i = 0;
35
+ return result;
36
+ }
37
+ `;
38
+ return terser.minify(code).then(minify => {
39
+ expect(minify.code).toBe('function sum(n,u){return n+u}');
40
+ });
41
+ });
42
+ it('Minify a function with a for loop', () => {
43
+ const code = `
44
+ function sum(num1, num2) {
45
+ for (var i = 0; i < num1; i++) {
46
+ console.log(i)
47
+ }
48
+ }
49
+ `;
50
+ return terser.minify(code).then(minify => {
51
+ expect(minify.code).toBe('function sum(o,n){for(var c=0;c<o;c++)console.log(c)}');
52
+ });
53
+ });
54
+ it('Minify a function with a if condition inside a for loop', () => {
55
+ const code = `
56
+ function sum(num1, num2) {
57
+ for (var i = 0; i < num1; i++) {
58
+ if(i > 0){
59
+ console.log(i)
60
+ }
61
+ else{
62
+ console.log(0);
63
+ }
64
+ }
65
+ }
66
+ `;
67
+ return terser.minify(code).then(minify => {
68
+ expect(minify.code).toBe('function sum(o,l){for(var n=0;n<o;n++)n>0?console.log(n):console.log(0)}');
69
+ });
70
+ });
71
+ });
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ /* eslint-disable max-lines */
4
+ const terser = require('terser');
5
+
6
+ describe('normal for loop', () => {
7
+ it('minimize variable names inside the loop when using let type', () => {
8
+ const code = `
9
+ for (let book = 0; book < 4; book += 1) {
10
+ console.log(book);
11
+ };
12
+ `;
13
+ return terser.minify(code).then(minify => {
14
+ expect(minify.code).toBe('for(let o=0;o<4;o+=1)console.log(o);');
15
+ });
16
+ });
17
+ it('for loop with variable keyword var', () => {
18
+ const code = `
19
+ for (var book = 0; book < 4; book += 1) {
20
+ console.log(book);
21
+ };
22
+ `;
23
+ return terser.minify(code).then(minify => {
24
+ expect(minify.code).toBe('for(var book=0;book<4;book+=1)console.log(book);');
25
+ });
26
+ });
27
+ it('remove unused variable with keyword let and const', () => {
28
+ const code = `
29
+ for (let number = 0;number>28;number++){
30
+ console.log(number);
31
+ let number2 = 28;
32
+ const number3 = 32;
33
+ };
34
+ `;
35
+ return terser.minify(code).then(minify => {
36
+ expect(minify.code).toBe('for(let o=0;o>28;o++){console.log(o)}');
37
+ });
38
+ });
39
+ it('take unused variable with keyword var', () => {
40
+ const code = `
41
+ for (let number = 0;number>28;number++){
42
+ console.log(number);
43
+ var number2 = 28;
44
+ var number3 = 32;
45
+ };
46
+ `;
47
+ return terser.minify(code).then(minify => {
48
+ expect(minify.code).toBe('for(let e=0;e>28;e++){console.log(e);var number2=28,number3=32}');
49
+ });
50
+ });
51
+ it('remove unused and unwanted codes like if statement', () => {
52
+ const code = `
53
+ for (let number = 0;number>28;number++){
54
+ console.log(number);
55
+ if(true){
56
+ let i = 0;
57
+ }
58
+ };
59
+ `;
60
+ return terser.minify(code).then(minify => {
61
+ expect(minify.code).toBe('for(let o=0;o>28;o++){console.log(o)}');
62
+ });
63
+ });
64
+ it('using break in loops', () => {
65
+ const code = `
66
+ for (let number = 0;number>28;number++){
67
+ console.log(number);
68
+ break;
69
+ };
70
+ `;
71
+ return terser.minify(code).then(minify => {
72
+ expect(minify.code).toBe('for(let o=0;o>28;o++){console.log(o);break}');
73
+ });
74
+ });
75
+ it('using breaks in loops with an condition', () => {
76
+ const code = `
77
+ for (let number = 0;number>28;number++){
78
+ console.log(number);
79
+ if(number != 0)
80
+ break;
81
+ };
82
+ `;
83
+ return terser.minify(code).then(minify => {
84
+ expect(minify.code).toBe('for(let o=0;o>28&&(console.log(o),0==o);o++);');
85
+ });
86
+ });
87
+ it('using continue in loops with an condition', () => {
88
+ const code = `
89
+ for (let number = 0;number>28;number++){
90
+ if(number > 0)
91
+ continue;
92
+ console.log(2);
93
+ };
94
+ `;
95
+ return terser.minify(code).then(minify => {
96
+ expect(minify.code).toBe('for(let o=0;o>28;o++)o>0||console.log(2);');
97
+ });
98
+ });
99
+ it('remove the code which are write below the continue', () => {
100
+ const code = `
101
+ for (let number = 0;number>28;number++){
102
+ console.log(2)
103
+ continue;
104
+ console.log(3)
105
+
106
+ };
107
+ `;
108
+ return terser.minify(code).then(minify => {
109
+ expect(minify.code).toBe('for(let o=0;o>28;o++)console.log(2);');
110
+ });
111
+ });
112
+ });
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ const terser = require('terser');
4
+
5
+ test('minimize boolean values', () => {
6
+ const code = `
7
+ let a = true;
8
+ let b = false`;
9
+ return terser.minify(code).then(minify => {
10
+ expect(minify.code).toBe('let a=!0,b=!1;');
11
+ });
12
+ });
13
+ test('terinary operator with var and let', () => {
14
+ const code = `
15
+ var x = 3;
16
+ let a = 1;
17
+ let result = (a == 1) ? true : false
18
+ result = (x == 1) ? true : false;
19
+ `;
20
+ return terser.minify(code).then(minify => {
21
+ expect(minify.code).toBe('var x=3;let a=1,result=1==a;result=1==x;');
22
+ });
23
+ });
24
+ test('terinary operator with const', () => {
25
+ const code = `
26
+ const x = 3;
27
+ const a = 1;
28
+ let result = (a == 1) ? true : false
29
+ result = (x == 1) ? true : false;
30
+ `;
31
+ return terser.minify(code).then(minify => {
32
+ expect(minify.code).toBe('const x=3,a=1;let result=!0;result=!1;');
33
+ });
34
+ });
35
+ test('minimize values when using logical and comparision operators', () => {
36
+ const code = `
37
+ let result = (true && true ) ? true : false
38
+ result = (1>2) ? true : false;
39
+ `;
40
+ return terser.minify(code).then(minify => {
41
+ expect(minify.code).toBe('let result=!0;result=!1;');
42
+ });
43
+ });
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ const terser = require('terser');
4
+
5
+ test('reduce repeated variable names', () => {
6
+ const code = `
7
+ let number = 10;
8
+ number = number+10;
9
+ `;
10
+ return terser.minify(code).then(minify => {
11
+ expect(minify.code).toBe('let number=10;number+=10;');
12
+ });
13
+ });
14
+ test('variable names less than values with const', () => {
15
+ const code = `
16
+ const val = false;
17
+
18
+ console.log(val);
19
+ `;
20
+ return terser.minify(code).then(minify => {
21
+ expect(minify.code).toBe('const val=!1;console.log(val);');
22
+ });
23
+ });
24
+ test('variable names greather than values with const', () => {
25
+ const code = `
26
+ const found = true;
27
+
28
+ console.log(found);
29
+ `;
30
+ return terser.minify(code).then(minify => {
31
+ expect(minify.code).toBe('const found=!0;console.log(true);');
32
+ });
33
+ });
34
+ test('checking varible names with let and var', () => {
35
+ const code = `
36
+ let val = false;
37
+
38
+ var done = 3
39
+
40
+ console.log(val,done);
41
+ `;
42
+ return terser.minify(code).then(minify => {
43
+ expect(minify.code).toBe('let val=!1;var done=3;console.log(val,done);');
44
+ });
45
+ });