@zohodesk/react-cli 1.1.27 → 1.1.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (353) hide show
  1. package/README.md +18 -0
  2. package/lib/configs/jest.config.js +1 -1
  3. package/lib/configs/libAlias.js +2 -2
  4. package/lib/configs/resolvers.js +2 -2
  5. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +2 -5
  6. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +4 -1
  7. package/lib/plugins/I18nSplitPlugin/utils/unicodeConversion.js +6 -8
  8. package/lib/schemas/index.js +1 -0
  9. package/package.json +1 -1
  10. package/packages/client_build_tool/lib/allCommandsConfigs.js +25 -0
  11. package/packages/client_build_tool/lib/commands/build/commandExecutor.js +17 -0
  12. package/packages/client_build_tool/lib/commands/build/config.js +12 -0
  13. package/packages/client_build_tool/lib/commands/build/optionsProcessor.js +35 -0
  14. package/packages/client_build_tool/lib/commands/build/preProcessor.js +12 -0
  15. package/packages/client_build_tool/lib/commands/buildEs/commandExecutor.js +33 -0
  16. package/packages/client_build_tool/lib/commands/buildEs/config.js +12 -0
  17. package/packages/client_build_tool/lib/commands/buildEs/preProcessor.js +17 -0
  18. package/packages/client_build_tool/lib/commands/buildLib/commandExecutor.js +33 -0
  19. package/packages/client_build_tool/lib/commands/buildLib/config.js +12 -0
  20. package/packages/client_build_tool/lib/commands/buildLib/preProcessor.js +17 -0
  21. package/packages/client_build_tool/lib/commands/mockserver/commandExecutor.js +43 -0
  22. package/packages/client_build_tool/lib/commands/mockserver/config.js +12 -0
  23. package/packages/client_build_tool/lib/commands/pre_process/commandExecutor.js +18 -0
  24. package/packages/client_build_tool/lib/commands/pre_process/config.js +12 -0
  25. package/packages/client_build_tool/lib/commands/start/commandExecutor.js +12 -0
  26. package/packages/client_build_tool/lib/commands/start/config.js +12 -0
  27. package/packages/client_build_tool/lib/commands/start/optionsProcessor.js +30 -0
  28. package/packages/client_build_tool/lib/commands/start/preProcessor.js +12 -0
  29. package/packages/client_build_tool/lib/commands/template/commandExecutor.js +28 -0
  30. package/packages/client_build_tool/lib/commands/template/config.js +12 -0
  31. package/packages/client_build_tool/lib/commands/version/commandExecutor.js +14 -0
  32. package/packages/client_build_tool/lib/commands/version/config.js +12 -0
  33. package/packages/client_build_tool/lib/commandsRouter.js +74 -0
  34. package/packages/client_build_tool/lib/index.js +12 -0
  35. package/packages/client_build_tool/lib/logger.js +34 -0
  36. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/otherTestCases.test.js +234 -0
  37. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/passingDifferentDataTypesToSchema.test.js +103 -0
  38. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/passingEmptyObjects.test.js +41 -0
  39. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertArray.test.js +68 -0
  40. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertNumber.test.js +68 -0
  41. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertObject.test.js +141 -0
  42. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertString.test.js +68 -0
  43. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByCustomOptions/convertUndefinedAndNull.test.js +132 -0
  44. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertArray.test.js +71 -0
  45. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertNumber.test.js +71 -0
  46. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertObject.test.js +73 -0
  47. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertString.test.js +71 -0
  48. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/__test__/replacingSchemaValueByProcessEnv/convertUndefinedAndNull.test.js +138 -0
  49. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/index.js +34 -0
  50. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/isObject.js +10 -0
  51. package/packages/client_build_tool/lib/schemas/applyValuesToSchema/isValid.js +14 -0
  52. package/packages/client_build_tool/lib/schemas/cliArgsToObject.js +39 -0
  53. package/packages/client_build_tool/lib/schemas/defaultConfigValues.js +349 -0
  54. package/packages/client_build_tool/lib/schemas/defaultConfigValuesOnly.js +187 -0
  55. package/packages/client_build_tool/lib/schemas/deprecatedOptionsHandler.js +67 -0
  56. package/packages/client_build_tool/lib/schemas/getNpmVersion.js +22 -0
  57. package/packages/client_build_tool/lib/schemas/giveDefaultValue.js +18 -0
  58. package/packages/client_build_tool/lib/schemas/npmConfigToObject.js +35 -0
  59. package/packages/client_build_tool/lib/schemas/readOptions.js +54 -0
  60. package/packages/client_build_tool/lib/schemas/readOptionsForConfigFile.js +42 -0
  61. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Map.test.js +15 -0
  62. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/MathAndNumberMethod.test.js +30 -0
  63. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/ObjectAndModules.test.js +47 -0
  64. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Sets.test.js +18 -0
  65. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/Symbol.test.js +25 -0
  66. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/arrowFunction.test.js +34 -0
  67. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/block-scoping.test.js +18 -0
  68. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/classes.test.js +55 -0
  69. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/defaultParameterValues.test.js +18 -0
  70. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/extraFeatures.test.js +82 -0
  71. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/forOf.test.js +20 -0
  72. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/promise.test.js +22 -0
  73. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/spreadOperator.test.js +20 -0
  74. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/spreadParams.test.js +24 -0
  75. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/stringAndArrayMethods.test.js +67 -0
  76. package/packages/client_build_tool/lib/shared/babel/__test__/es2015/variables.test.js +21 -0
  77. package/packages/client_build_tool/lib/shared/babel/__test__/es2016/array-includes.test.js +13 -0
  78. package/packages/client_build_tool/lib/shared/babel/__test__/es2016/exponentationOperator.test.js +20 -0
  79. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/asyncAndawait.test.js +23 -0
  80. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-entries.test.js +24 -0
  81. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-getOwnproperties.test.js +24 -0
  82. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/object-values.test.js +24 -0
  83. package/packages/client_build_tool/lib/shared/babel/__test__/es2017/stringMethods.test.js +20 -0
  84. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/asynchronous-iterator.test.js +19 -0
  85. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/object-rest-spread.test.js +24 -0
  86. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/promise-finally.test.js +26 -0
  87. package/packages/client_build_tool/lib/shared/babel/__test__/es2018/regularExpressions.test.js +35 -0
  88. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/Json.stringify.test.js +21 -0
  89. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/arrayMethods.test.js +31 -0
  90. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/object-fromEntriesMethod.test.js +13 -0
  91. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/optionalCatchBinding.test.js +23 -0
  92. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/revisedFunctionToString.test.js +17 -0
  93. package/packages/client_build_tool/lib/shared/babel/__test__/es2019/trim-startAndend-method.test.js +20 -0
  94. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/AssignmentOperator.test.js +27 -0
  95. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/Dynamic-Import.test.js +19 -0
  96. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/NullishOperator.test.js +15 -0
  97. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/bigInt.test.js +13 -0
  98. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/chainOperator.test.js +17 -0
  99. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/export-namespace-from.test.js +12 -0
  100. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/promiseAllSettledMathod.test.js +17 -0
  101. package/packages/client_build_tool/lib/shared/babel/__test__/es2020/stringMatchMethod.test.js +13 -0
  102. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/NumericSeparator.test.js +23 -0
  103. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/logicalOperatorAssignments.test.js +25 -0
  104. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/promiseAny.test.js +16 -0
  105. package/packages/client_build_tool/lib/shared/babel/__test__/es2021/stringReplaceMethod.test.js +16 -0
  106. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/Array-atMethod.test.js +13 -0
  107. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/ObjectKeyCheck.test.js +27 -0
  108. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/ObjecthasOwnMethod.test.js +19 -0
  109. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/RegexMatchIndices.test.js +20 -0
  110. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/String-atMethod.test.js +15 -0
  111. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/error.Cause.test.js +23 -0
  112. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/keysCheckinPrivateFields.test.js +27 -0
  113. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/privateMethodsAndFields.test.js +23 -0
  114. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/staticFieldsAndMethod.test.js +54 -0
  115. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/topLevelAwait.test.js +11 -0
  116. package/packages/client_build_tool/lib/shared/babel/__test__/es2022/weakRef.test.js +17 -0
  117. package/packages/client_build_tool/lib/shared/babel/__test__/utilities.js +28 -0
  118. package/packages/client_build_tool/lib/shared/babel/addDefaultPlugins.js +15 -0
  119. package/packages/client_build_tool/lib/shared/babel/babelWebConfig.js +54 -0
  120. package/packages/client_build_tool/lib/shared/babel/babel_plugins/removeAttributesPlugin.js +23 -0
  121. package/packages/client_build_tool/lib/shared/babel/getBabelPlugin.js +37 -0
  122. package/packages/client_build_tool/lib/shared/babel/runBabelForJSFile.js +24 -0
  123. package/packages/client_build_tool/lib/shared/babel/runBabelForTsFile.js +30 -0
  124. package/packages/client_build_tool/lib/shared/bundler/webpack/common/decidePublicPath.js +57 -0
  125. package/packages/client_build_tool/lib/shared/bundler/webpack/common/libAlias.js +31 -0
  126. package/packages/client_build_tool/lib/shared/bundler/webpack/common/modeUtils.js +39 -0
  127. package/packages/client_build_tool/lib/shared/bundler/webpack/common/nameTemplates.js +105 -0
  128. package/packages/client_build_tool/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
  129. package/packages/client_build_tool/lib/shared/bundler/webpack/configCustomLoaders.js +10 -0
  130. package/packages/client_build_tool/lib/shared/bundler/webpack/cssLoaders.js +16 -0
  131. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/BundleIntegrityReport/index.js +83 -0
  132. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin/index.js +119 -0
  133. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin/webpackCustomJsUrlLoader.js +46 -0
  134. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CustomScriptLoadingPlugin.js +109 -0
  135. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +112 -0
  136. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
  137. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +174 -0
  138. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +76 -0
  139. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +223 -0
  140. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
  141. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +73 -0
  142. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +88 -0
  143. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
  144. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
  145. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
  146. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +76 -0
  147. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +39 -0
  148. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +50 -0
  149. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +68 -0
  150. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
  151. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
  152. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +43 -0
  153. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
  154. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/classesAndObject.test.js +56 -0
  155. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/conditionalOperation.test.js +154 -0
  156. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/function.test.js +89 -0
  157. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/function2.test.js +71 -0
  158. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/loop.test.js +112 -0
  159. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/minifyBooleanValues.test.js +43 -0
  160. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/minimizeVariableNames.test.js +45 -0
  161. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/promise.test.js +53 -0
  162. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/removeCommentsAndEmptySpace.test.js +13 -0
  163. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/removeUnusedStrings.test.js +14 -0
  164. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/terser/__test__/variableDeclaration.test.js +30 -0
  165. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +66 -0
  166. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +13 -0
  167. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
  168. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
  169. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +129 -0
  170. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +60 -0
  171. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/addFilesNamesToManifestJson.test.js +51 -0
  172. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/createInitialEntries.test.js +95 -0
  173. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/__test__/removeHashFromFileName.test.js +91 -0
  174. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +30 -0
  175. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +23 -0
  176. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +35 -0
  177. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +18 -0
  178. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +46 -0
  179. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +18 -0
  180. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
  181. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +193 -0
  182. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +62 -0
  183. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +84 -0
  184. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
  185. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +27 -0
  186. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RuntimeResourceCleanup/index.js +73 -0
  187. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/classHandling.js +20 -0
  188. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/index.js +78 -0
  189. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/selectorWeightPrefixAdder.js +51 -0
  190. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/windowsModification.js +16 -0
  191. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +114 -0
  192. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPluginUtils.js +13 -0
  193. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +68 -0
  194. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/addHashToFilePath.js +22 -0
  195. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/index.js +55 -0
  196. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/uglifyCss1.test.js +74 -0
  197. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/uglifycss.test.js +64 -0
  198. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/__test__/utilities.js +28 -0
  199. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/index.js.js +49 -0
  200. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +62 -0
  201. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +362 -0
  202. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/custom_attribute_plugin/index.js +80 -0
  203. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +14 -0
  204. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +57 -0
  205. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +87 -0
  206. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/classesAndObject.test.js +56 -0
  207. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/conditionalOperation.test.js +154 -0
  208. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/function.test.js +89 -0
  209. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/function2.test.js +71 -0
  210. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/loop.test.js +112 -0
  211. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/minifyBooleanValues.test.js +43 -0
  212. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/minimizeVariableNames.test.js +45 -0
  213. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/promise.test.js +53 -0
  214. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/removeCommentsAndEmptySpace.test.js +13 -0
  215. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/removeUnusedStrings.test.js +14 -0
  216. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/terser/__test__/variableDeclaration.test.js +30 -0
  217. package/packages/client_build_tool/lib/shared/bundler/webpack/defaultVendorPatternList.js +13 -0
  218. package/packages/client_build_tool/lib/shared/bundler/webpack/devtoolConfig.js +13 -0
  219. package/packages/client_build_tool/lib/shared/bundler/webpack/entryConfig.js +28 -0
  220. package/packages/client_build_tool/lib/shared/bundler/webpack/externals.js +17 -0
  221. package/packages/client_build_tool/lib/shared/bundler/webpack/getCSSLoaders.js +29 -0
  222. package/packages/client_build_tool/lib/shared/bundler/webpack/getFilenameFromModule.js +24 -0
  223. package/packages/client_build_tool/lib/shared/bundler/webpack/jsLoaders.js +17 -0
  224. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +12 -0
  225. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +18 -0
  226. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +56 -0
  227. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
  228. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +37 -0
  229. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
  230. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +86 -0
  231. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +65 -0
  232. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +21 -0
  233. package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/miniCssFallBackLoader.js +7 -0
  234. package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
  235. package/packages/client_build_tool/lib/shared/bundler/webpack/optimizationConfig.js +56 -0
  236. package/packages/client_build_tool/lib/shared/bundler/webpack/outputConfig.js +38 -0
  237. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +40 -0
  238. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configBundleIntegrityReport.js +36 -0
  239. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +28 -0
  240. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +27 -0
  241. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +63 -0
  242. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCustomAttributesPlugin.js +20 -0
  243. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCustomScriptLoadingStrategyPlugin.js +76 -0
  244. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +46 -0
  245. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +51 -0
  246. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +56 -0
  247. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +41 -0
  248. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
  249. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +44 -0
  250. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +24 -0
  251. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +24 -0
  252. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +21 -0
  253. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
  254. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configRuntimeResourceCleanup.js +31 -0
  255. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +28 -0
  256. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +40 -0
  257. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +20 -0
  258. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configTPHashMappingPlugin.js +32 -0
  259. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +25 -0
  260. package/packages/client_build_tool/lib/shared/bundler/webpack/plugins.js +58 -0
  261. package/packages/client_build_tool/lib/shared/bundler/webpack/resolvers.js +82 -0
  262. package/packages/client_build_tool/lib/shared/bundler/webpack/splitChunksConfig.js +116 -0
  263. package/packages/client_build_tool/lib/shared/bundler/webpack/statsConfig.js +30 -0
  264. package/packages/client_build_tool/lib/shared/bundler/webpack/tsLoaders.js +17 -0
  265. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/__test__/getArrayWithDefaultWithCustomEqual.test.js +54 -0
  266. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/__test__/updateArrayWithDefault.test.js +47 -0
  267. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/index.js +31 -0
  268. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/object-manipulation.js +87 -0
  269. package/packages/client_build_tool/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +34 -0
  270. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackBuild.js +27 -0
  271. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackConfig.js +58 -0
  272. package/packages/client_build_tool/lib/shared/commands-utils/doBasicRequirementCheck.js +17 -0
  273. package/packages/client_build_tool/lib/shared/commands-utils/getCliPath.js +39 -0
  274. package/packages/client_build_tool/lib/shared/commands-utils/index.js +29 -0
  275. package/packages/client_build_tool/lib/shared/commands-utils/log.js +13 -0
  276. package/packages/client_build_tool/lib/shared/commands-utils/readArgsFormCommandLine.js +11 -0
  277. package/packages/client_build_tool/lib/shared/commands-utils/readOptionFormCommandLine.js +11 -0
  278. package/packages/client_build_tool/lib/shared/commands-utils/spawnSyncIO.js +38 -0
  279. package/packages/client_build_tool/lib/shared/constants.js +48 -0
  280. package/packages/client_build_tool/lib/shared/fileUtils/copyFile.js +38 -0
  281. package/packages/client_build_tool/lib/shared/fileUtils/directoryIterator.js +21 -0
  282. package/packages/client_build_tool/lib/shared/fileUtils/watchRun.js +112 -0
  283. package/packages/client_build_tool/lib/shared/postcss/__test__/ignoreTestCases.test.js +80 -0
  284. package/packages/client_build_tool/lib/shared/postcss/__test__/postcss-rtl-all-cases.test.js +119 -0
  285. package/packages/client_build_tool/lib/shared/postcss/__test__/postcssRtl.spec.js +34 -0
  286. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +21 -0
  287. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +10 -0
  288. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +66 -0
  289. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +136 -0
  290. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +32 -0
  291. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +20 -0
  292. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +20 -0
  293. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +24 -0
  294. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +43 -0
  295. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +52 -0
  296. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/RTLSplitPlugin.js +139 -0
  297. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +90 -0
  298. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +57 -0
  299. package/packages/client_build_tool/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +347 -0
  300. package/packages/client_build_tool/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +55 -0
  301. package/packages/client_build_tool/lib/shared/postcss/getAllowedPostCssPlugins.js +30 -0
  302. package/packages/client_build_tool/lib/shared/postcss/getSpecificPostCssPlugin.js +58 -0
  303. package/packages/client_build_tool/lib/shared/postcss/runPostCssForCssFile.js +37 -0
  304. package/packages/client_build_tool/lib/shared/pre_process/runPreProcess.js +58 -0
  305. package/packages/client_build_tool/lib/shared/server/configWebpackDevMiddleware.js +41 -0
  306. package/packages/client_build_tool/lib/shared/server/corsHandling.js +30 -0
  307. package/packages/client_build_tool/lib/shared/server/getIp.js +30 -0
  308. package/packages/client_build_tool/lib/shared/server/getServerURL.js +36 -0
  309. package/packages/client_build_tool/lib/shared/server/httpsOptions.js +46 -0
  310. package/packages/client_build_tool/lib/shared/server/initExpressApp.js +19 -0
  311. package/packages/client_build_tool/lib/shared/server/initialHTMLHandling.js +99 -0
  312. package/packages/client_build_tool/lib/shared/server/mockApiHandler.js +60 -0
  313. package/packages/client_build_tool/lib/shared/server/mockServer.js +41 -0
  314. package/packages/client_build_tool/lib/shared/server/serveContextFiles.js +27 -0
  315. package/packages/client_build_tool/lib/shared/server/serverBywebpackDevMiddleware.js +35 -0
  316. package/packages/client_build_tool/lib/shared/server/startHttpServer.js +26 -0
  317. package/packages/client_build_tool/lib/shared/server/startHttpsServer.js +38 -0
  318. package/packages/client_build_tool/lib/shared/server/unwanted/addHttp2Server.js +41 -0
  319. package/packages/client_build_tool/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
  320. package/packages/client_build_tool/lib/shared/server/unwanted/mockApiSupport.js +19 -0
  321. package/packages/client_build_tool/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
  322. package/packages/client_build_tool/lib/shared/server/urlConcat.js +32 -0
  323. package/packages/client_build_tool/lib/shared/utils/requireLocalOrGlobal.js +81 -0
  324. package/packages/client_build_tool/lib/shared/utils/utils.js +1 -0
  325. package/packages/client_build_tool/lib/shared/utils/versionPrint.js +20 -0
  326. package/packages/client_build_tool/node_modules/history/CHANGES.md +395 -0
  327. package/packages/client_build_tool/node_modules/history/DOMUtils.js +3 -0
  328. package/packages/client_build_tool/node_modules/history/ExecutionEnvironment.js +3 -0
  329. package/packages/client_build_tool/node_modules/history/LICENSE +21 -0
  330. package/packages/client_build_tool/node_modules/history/LocationUtils.js +3 -0
  331. package/packages/client_build_tool/node_modules/history/PathUtils.js +3 -0
  332. package/packages/client_build_tool/node_modules/history/README.md +282 -0
  333. package/packages/client_build_tool/node_modules/history/cjs/history.js +933 -0
  334. package/packages/client_build_tool/node_modules/history/cjs/history.min.js +1 -0
  335. package/packages/client_build_tool/node_modules/history/createBrowserHistory.js +3 -0
  336. package/packages/client_build_tool/node_modules/history/createHashHistory.js +3 -0
  337. package/packages/client_build_tool/node_modules/history/createMemoryHistory.js +3 -0
  338. package/packages/client_build_tool/node_modules/history/createTransitionManager.js +3 -0
  339. package/packages/client_build_tool/node_modules/history/es/DOMUtils.js +7 -0
  340. package/packages/client_build_tool/node_modules/history/es/ExecutionEnvironment.js +7 -0
  341. package/packages/client_build_tool/node_modules/history/es/LocationUtils.js +7 -0
  342. package/packages/client_build_tool/node_modules/history/es/PathUtils.js +7 -0
  343. package/packages/client_build_tool/node_modules/history/es/createBrowserHistory.js +7 -0
  344. package/packages/client_build_tool/node_modules/history/es/createHashHistory.js +7 -0
  345. package/packages/client_build_tool/node_modules/history/es/createMemoryHistory.js +7 -0
  346. package/packages/client_build_tool/node_modules/history/es/createTransitionManager.js +7 -0
  347. package/packages/client_build_tool/node_modules/history/es/warnAboutDeprecatedESMImport.js +35 -0
  348. package/packages/client_build_tool/node_modules/history/esm/history.js +904 -0
  349. package/packages/client_build_tool/node_modules/history/index.js +7 -0
  350. package/packages/client_build_tool/node_modules/history/package.json +120 -0
  351. package/packages/client_build_tool/node_modules/history/umd/history.js +1059 -0
  352. package/packages/client_build_tool/node_modules/history/umd/history.min.js +1 -0
  353. package/packages/client_build_tool/node_modules/history/warnAboutDeprecatedCJSRequire.js +35 -0
@@ -0,0 +1,95 @@
1
+ # I18n Split As Chunks Plugin
2
+
3
+ generaly we have manage our all I18n keys and values as language specific i18n files and then we download all i18n in initial page load.
4
+
5
+ ### what is the problem with this?.
6
+
7
+ the problem is i18n file keep get's grown it will affect the the inital page load and critial rendering path.
8
+ So, We have decide to create a plugin for split i18n per chunk's of js vise.
9
+
10
+ ### what is i18n split?
11
+
12
+ it is like code split for i18n.
13
+ we will collect i18n from js chunk and we will create separate i18n chunk per js chunk,
14
+ with this we already load Js chunks are on demand and now we also download i18n also ondemand with this the initial and forthere actions.
15
+ when js download's we will download i18n with it.
16
+
17
+ ### How to we going to i18n split?
18
+
19
+ we will read the js chunk and collect I18n keys form it,
20
+ then we will create i18n chunk files with these used keys.
21
+
22
+ ### how do you collect i18n keys from js files?
23
+
24
+ we will traverse the js file's AST (static analysis) and find i18 keys,
25
+ we will concider all string which is in jsResource file as i18n keys.
26
+ and you can tell dynamic i18n key by js comments,
27
+ Like Below:-
28
+
29
+ ```js
30
+ fetch('tickets?view=view1').then(data => {
31
+ // I18n support.ticketsEmpty
32
+ // I18n support.viewNotFount
33
+ // I18n support.permissionDenied
34
+ let text = getI18nValue(data.i18nkey);
35
+ });
36
+ ```
37
+
38
+ ### is there any posiblity for unwanted keys in some chunk?
39
+
40
+ Yes, there is two posiblity
41
+
42
+ 1. js comment , if you write js comment but it is not needed then it will be add into i18n chunk
43
+ `To Resolve` we currently do not have perfect idea for this, But we can check this by chunk size limit.
44
+ `idea's will be welcome`
45
+ 2. like we said "we will concider all string which is in jsResource file as i18n keys",
46
+ So if you use string not for i18n but it was in jsResource then it will be add into i18n chunk.
47
+ `To Resolve` this problem we can use some kinda prefix or something.
48
+
49
+ ### how do we downlowd and give to app?
50
+
51
+ we have over write defualt webpack requireEnsure (every dynamic chunk requests are done by that function) function.
52
+ and we parlarly dowload i18n files. and we ask jsonFunction, to our plugin.
53
+ So we send i18nkeys , when it was download,
54
+ you must store all i18n keys, we give asycrnsly by that function download in that patticular.
55
+ so you must store and update (like append or assign) everytime that function call.
56
+
57
+ ### how to use this feature?
58
+
59
+ to use this feature use have give the below oprtions
60
+ `package.json`
61
+
62
+ ```json
63
+ {
64
+ /// ...some things
65
+ "react-cli": {
66
+ // ...some things
67
+ "i18n": {
68
+ "chunkSplitEnable": true,
69
+ "jsResource": "./deskapp/properties/JSResources.properties",
70
+ "localeVarName": "window.userInfo.langCode",
71
+ "jsonpFunc": "window.loadI18nChunk",
72
+ "templateLabel": "{{--user-locale}}", // this is for html template i18n file path locate template
73
+ "propertiesFolder": "./deskapp/properties"
74
+ }
75
+ // ...some things
76
+ }
77
+ }
78
+ ```
79
+
80
+ <!-- not need below -->
81
+ <!--we have added new feature for css to write logic to how hover related css work in hoverhover and a
82
+
83
+ ### is there any problems with static analysis?
84
+ Yes,
85
+
86
+ ### how do we use dynamic i18n key?
87
+
88
+ and we will download i18n file with
89
+
90
+ and when js chunk download's then we will download i18n as need.
91
+ we all know in our app we loading i18n as one single big file for each locale(language).
92
+ we are going to split i18n as per js chunk, and when js chunk download's then we will download i18n as need.
93
+
94
+
95
+ -->
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LocaleChunkAssetsStore = void 0;
7
+ exports.getLocaleChunkAssetsStore = getLocaleChunkAssetsStore;
8
+ exports.setLocaleChunkAssetsStore = setLocaleChunkAssetsStore;
9
+
10
+ var _ModulesI18nKeysStore = require("./ModulesI18nKeysStore");
11
+
12
+ class LocaleChunkAssetsStore extends _ModulesI18nKeysStore.ModulesI18nKeysStore {
13
+ constructor() {
14
+ super();
15
+ this.data = {};
16
+ }
17
+
18
+ clear() {
19
+ this.data = {};
20
+ }
21
+
22
+ storeData(chunkId, locale, data) {
23
+ if (!this.data[chunkId]) {
24
+ this.data[chunkId] = {};
25
+ }
26
+
27
+ const chunkBasedData = this.data[chunkId];
28
+ chunkBasedData[locale] = { ...(chunkBasedData[locale] || {}),
29
+ ...data
30
+ };
31
+ }
32
+
33
+ getChunkIdsWhichHasI18n() {
34
+ return Object.keys(this.data);
35
+ }
36
+
37
+ forEachChunkId(cb) {
38
+ // Object.keys(localeChunkAssestMap).forEach
39
+ this.getChunkIdsWhichHasI18n().forEach(cb);
40
+ }
41
+
42
+ isChunkHasI18n(chunkId) {
43
+ if (typeof chunkId === 'object') {
44
+ return super.isChunkHasI18n(chunkId);
45
+ }
46
+
47
+ return !!this.data[chunkId];
48
+ }
49
+
50
+ getDate(chunkId, locale) {
51
+ return this.data[chunkId]?.[locale];
52
+ }
53
+
54
+ getContent(chunkId, locale) {
55
+ return this.data[chunkId]?.[locale]?.content;
56
+ }
57
+
58
+ getContentHash(chunkId, locale) {
59
+ return this.data[chunkId]?.[locale]?.contentHash;
60
+ }
61
+
62
+ }
63
+
64
+ exports.LocaleChunkAssetsStore = LocaleChunkAssetsStore;
65
+ const storeCache = new WeakMap();
66
+
67
+ function getLocaleChunkAssetsStore(compilation) {
68
+ return storeCache.get(compilation);
69
+ }
70
+
71
+ function setLocaleChunkAssetsStore(compilation, store) {
72
+ return storeCache.set(compilation, store);
73
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ModulesI18nKeysStore = void 0;
7
+
8
+ var _iterateModulesInChunk = require("./iterateModulesInChunk");
9
+
10
+ class ModulesI18nKeysStore {
11
+ constructor() {
12
+ this.modulesI18nKeysMap = {};
13
+ this.compilation = null;
14
+ }
15
+
16
+ updateCompilation(compilation) {
17
+ this.compilation = compilation;
18
+ }
19
+
20
+ updateModuleI18nKeys(resource, i18nKeys) {
21
+ this.modulesI18nKeysMap[resource] = i18nKeys;
22
+ }
23
+
24
+ getModuleI18nKeys(resource) {
25
+ return this.modulesI18nKeysMap[resource];
26
+ }
27
+
28
+ isChunkHasI18n(chunk) {
29
+ const {
30
+ modulesI18nKeysMap,
31
+ compilation
32
+ } = this;
33
+ let hasModuleI18n = false;
34
+ (0, _iterateModulesInChunk.iterateModulesInChunk)({
35
+ chunk,
36
+ compilation,
37
+ cb: ({
38
+ module: mod,
39
+ stop: stopLoop
40
+ }) => {
41
+ if (mod.resource) {
42
+ const keys = modulesI18nKeysMap[mod.resource];
43
+
44
+ if (keys && keys.length > 0) {
45
+ hasModuleI18n = true;
46
+ stopLoop();
47
+ }
48
+ }
49
+ }
50
+ });
51
+ return hasModuleI18n;
52
+ }
53
+
54
+ getI18nKeysForChunk(chunk) {
55
+ const {
56
+ modulesI18nKeysMap,
57
+ compilation
58
+ } = this;
59
+ const i18nKeysMap = {};
60
+
61
+ function updateI18nKeys(mod) {
62
+ const keys = modulesI18nKeysMap[mod.resource];
63
+
64
+ if (keys) {
65
+ // eslint-disable-next-line no-restricted-syntax
66
+ for (const key of keys) {
67
+ i18nKeysMap[key] = 1;
68
+ }
69
+ }
70
+ }
71
+
72
+ (0, _iterateModulesInChunk.iterateModulesInChunk)({
73
+ chunk,
74
+ compilation,
75
+ cb: ({
76
+ module: mod
77
+ }) => {
78
+ if (mod.resource) {
79
+ updateI18nKeys(mod);
80
+ }
81
+ }
82
+ });
83
+ return Object.keys(i18nKeysMap);
84
+ }
85
+
86
+ }
87
+
88
+ exports.ModulesI18nKeysStore = ModulesI18nKeysStore;
@@ -0,0 +1,25 @@
1
+ # I18n Split As Chunks Plugin
2
+
3
+ generaly we have manage our all I18n keys and values as language specific i18n files and then we download all i18n in initial page load.
4
+
5
+ Ok, what is the problem with this?.
6
+ the problem is i18n file keep get's grown it will affect the the inital page load and critial rendering path.
7
+ So, We have decide to create a plugin for split i18n per chunk's of js vise, Which mean we diside to create for each js chunk has its own i18n chunks, with this we already load Js chunks are on demand and now we also download i18n also ondemand with this the initial and forthere actions.
8
+
9
+ Ok, How to you do this thing?
10
+ we have read the js chunk and collect I18n keys what are used in that chunk and we will create i18n chunk files with only used key.
11
+
12
+ Ok, How do you collect that keys?
13
+ we now have two experimental stage to collect I18n keys.
14
+
15
+ 1. we read jsResource.properties (or all keys I18n file) then we walk this AST of js and we collect all string which is jsResource.properties.
16
+ 2. for dynamic we discide to use comment some thing like
17
+ `// I18n support.tickekt.email.notvalid`
18
+
19
+ ok, how do you downlowd and give to app?
20
+ we have over write defualt webpack require ensure function.
21
+ So every dynamic chunk requset are done by that function.
22
+ So we parlarly dowload i18n files. and we ask jsonFunction, to our plugin.
23
+ So we send i18nkeys , when it was download,
24
+ you must store all i18n keys, we give asycrnsly by that function download in that patticular.
25
+ so you must store and update (like append or assign) everytime that function call.
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TYPES = exports.SINGLE_DOT_PATH_SEGMENT = exports.MODULE_TYPE = exports.I18N_CHUNK_NAME_GENERATION_SEGMENT = exports.DEFAULT_FILENAME = exports.DEFAULT_CHUNK_FILENAME = exports.CODE_GENERATION_RESULT = exports.BASE_URI = exports.AUTO_PUBLIC_PATH = exports.ABSOLUTE_PUBLIC_PATH = void 0;
7
+ const MODULE_TYPE = 'i18n/mini-extract';
8
+ exports.MODULE_TYPE = MODULE_TYPE;
9
+ const AUTO_PUBLIC_PATH = '__mini_i18n_extract_plugin_public_path_auto__';
10
+ exports.AUTO_PUBLIC_PATH = AUTO_PUBLIC_PATH;
11
+ const ABSOLUTE_PUBLIC_PATH = 'webpack:///mini-i18n-extract-plugin/';
12
+ exports.ABSOLUTE_PUBLIC_PATH = ABSOLUTE_PUBLIC_PATH;
13
+ const BASE_URI = 'webpack://';
14
+ exports.BASE_URI = BASE_URI;
15
+ const SINGLE_DOT_PATH_SEGMENT = '__mini_i18n_extract_plugin_single_dot_path_segment__';
16
+ exports.SINGLE_DOT_PATH_SEGMENT = SINGLE_DOT_PATH_SEGMENT;
17
+ const I18N_CHUNK_NAME_GENERATION_SEGMENT = '__mini_i18n_extract_plugin_i18n_chunk_name_generation_segment__';
18
+ exports.I18N_CHUNK_NAME_GENERATION_SEGMENT = I18N_CHUNK_NAME_GENERATION_SEGMENT;
19
+ const DEFAULT_FILENAME = 'i18n-chunks/[locale]/[name].[contenthash].i18n.js';
20
+ exports.DEFAULT_FILENAME = DEFAULT_FILENAME;
21
+ const DEFAULT_CHUNK_FILENAME = 'i18n-chunks/[locale]/[id].[contenthash].i18n.js';
22
+ exports.DEFAULT_CHUNK_FILENAME = DEFAULT_CHUNK_FILENAME;
23
+ const TYPES = new Set([MODULE_TYPE]);
24
+ exports.TYPES = TYPES;
25
+ const CODE_GENERATION_RESULT = {
26
+ sources: new Map(),
27
+ runtimeRequirements: new Set()
28
+ };
29
+ exports.CODE_GENERATION_RESULT = CODE_GENERATION_RESULT;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createHash = createHash;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ function createHash({
11
+ outputOptions,
12
+ content
13
+ }) {
14
+ const {
15
+ hashFunction,
16
+ hashDigest,
17
+ hashDigestLength
18
+ } = outputOptions;
19
+
20
+ const hash = _webpack.util.createHash(hashFunction);
21
+
22
+ hash.update(content);
23
+ return hash.digest(hashDigest).substring(0, hashDigestLength);
24
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getI18nLoadingRuntimeModule = getI18nLoadingRuntimeModule;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ /* eslint-disable no-restricted-syntax */
11
+ const getChunksMapObject = i18nChunks => {
12
+ const obj = {};
13
+
14
+ for (const chunk of i18nChunks) {
15
+ obj[chunk.id] = 1;
16
+ }
17
+
18
+ return obj;
19
+ };
20
+
21
+ function getI18nLoadingRuntimeModule({
22
+ getI18nChunks
23
+ }) {
24
+ class I18nLoadingRuntimeModule extends _webpack.RuntimeModule {
25
+ constructor(runtimeRequirements, {
26
+ runtimeOptions,
27
+ prefixFunc
28
+ }) {
29
+ super('i18n loading', 10);
30
+ this.runtimeRequirements = runtimeRequirements;
31
+ this.prefixFunc = prefixFunc;
32
+ this.runtimeOptions = runtimeOptions;
33
+ }
34
+
35
+ generate() {
36
+ const {
37
+ chunk,
38
+ runtimeRequirements,
39
+ prefixFunc,
40
+ compilation
41
+ } = this;
42
+ const {
43
+ runtimeTemplate,
44
+ outputOptions: {
45
+ crossOriginLoading
46
+ }
47
+ } = compilation; // const i18nChunks = getI18nChunks(chunk, compilation);
48
+ // REASON: we do it in here is in dev mode thing may change
49
+ // const i18nChunks = getI18nChunks(entryRuntimeChunk);
50
+
51
+ const i18nChunks = getI18nChunks(chunk);
52
+ const withLoading = runtimeRequirements.has(_webpack.RuntimeGlobals.ensureChunkHandlers) && i18nChunks.length > 0;
53
+
54
+ if (!withLoading) {
55
+ return '// no i18n chunks loading';
56
+ }
57
+
58
+ const chunkMap = getChunksMapObject(i18nChunks);
59
+ const {
60
+ attributes,
61
+ scriptType,
62
+ insert: insertRoot
63
+ } = this.runtimeOptions;
64
+ const insertPlace = typeof insertRoot === 'function' ? `(${insertRoot.toString()})(scriptTag)` : _webpack.Template.asString([`var target = document.querySelector("${insertRoot}");`, 'target.parentNode.insertBefore(scriptTag, target.nextSibling);']);
65
+ return _webpack.Template.asString([`${prefixFunc(i18nChunks)}`, `var createI18nScriptTag = ${runtimeTemplate.basicFunction('chunkId, fullsrc, resolve, reject', ['var scriptTag = document.createElement("script");', attributes ? _webpack.Template.asString(Object.entries(attributes).map(entry => {
66
+ const [key, value] = entry;
67
+ return `scriptTag.setAttribute(${JSON.stringify(key)}, ${JSON.stringify(value)});`;
68
+ })) : '', '__webpack_require__.nc && scriptTag.setAttribute("nonce", __webpack_require__.nc)', scriptType ? `scriptTag.type = ${JSON.stringify(scriptType)};` : '', `var onScriptComplete = ${runtimeTemplate.basicFunction('event', ['// avoid mem leaks.', 'scriptTag.onerror = scriptTag.onload = null;', 'if (event.type === \'load\') {', _webpack.Template.indent(['resolve();']), '} else {', _webpack.Template.indent(['var errorType = event && (event.type === \'load\' ? \'missing\' : event.type);', 'var realSrc = event && event.target && event.target.src || fullsrc;', 'var err = new Error("Loading I18N chunk " + chunkId + " failed.\\n(" + realSrc + ")");', 'err.code = "I18N_CHUNK_LOAD_FAILED";', 'err.type = errorType;', 'err.request = realSrc;', 'scriptTag.parentNode.removeChild(scriptTag)', 'reject(err);']), '}'])}`, 'scriptTag.onerror = scriptTag.onload = onScriptComplete;', 'scriptTag.src = fullsrc;', crossOriginLoading ? _webpack.Template.asString(['if (scriptTag.src.indexOf(window.location.origin + \'/\') !== 0) {', _webpack.Template.indent(`scriptTag.crossOrigin = ${JSON.stringify(crossOriginLoading)};`), '}']) : '', insertRoot && insertPlace || _webpack.Template.asString(['document.head.appendChild(scriptTag);']), 'return scriptTag;'])};`, `var findI18nScriptTag = ${runtimeTemplate.basicFunction('src, fullsrc', ['var existingScriptTags = document.getElementsByTagName("script");', 'for(var i = 0; i < existingScriptTags.length; i++) {', _webpack.Template.indent(['var tag = existingScriptTags[i];', 'var dataSrc = tag.getAttribute("data-src") || tag.getAttribute("src");', 'if((dataSrc === src || dataSrc === fullsrc)) return tag;']), '}', 'var existingStyleTags = document.getElementsByTagName("style");', 'for(var i = 0; i < existingStyleTags.length; i++) {', _webpack.Template.indent(['var tag = existingStyleTags[i];', 'var dataSrc = tag.getAttribute("data-src");', 'if(dataSrc === src || dataSrc === fullsrc) return tag;']), '}'])};`, `var loadI18nScriptTag = ${runtimeTemplate.basicFunction('chunkId', `return new Promise(${runtimeTemplate.basicFunction('resolve, reject', [`var src = ${_webpack.RuntimeGlobals.require}.miniI18nF(chunkId);`, `var fullsrc = ${_webpack.RuntimeGlobals.publicPath} + src;`, 'if(findI18nScriptTag(src, fullsrc)) return resolve();', 'createI18nScriptTag(chunkId, fullsrc, resolve, reject);'])});`)}`, '// object to store loaded I18N chunks', 'var installedI18nChunks = {', _webpack.Template.indent(
69
+ /** @type {string[]} */
70
+ chunk.ids.map(id => `${JSON.stringify(id)}: 0`).join(',\n')), '};', '', `${_webpack.RuntimeGlobals.ensureChunkHandlers}.miniI18n = ${runtimeTemplate.basicFunction('chunkId, promises', [`var i18nChunks = ${JSON.stringify(chunkMap)};`, 'if(installedI18nChunks[chunkId]) promises.push(installedI18nChunks[chunkId]);', 'else if(installedI18nChunks[chunkId] !== 0 && i18nChunks[chunkId]) {', _webpack.Template.indent([`promises.push(installedI18nChunks[chunkId] = loadI18nScriptTag(chunkId).then(${runtimeTemplate.basicFunction('', 'installedI18nChunks[chunkId] = 0;')}, ${runtimeTemplate.basicFunction('e', ['delete installedI18nChunks[chunkId];', 'throw e;'])}));`]), '}'])};`, '']);
71
+ }
72
+
73
+ }
74
+
75
+ return I18nLoadingRuntimeModule;
76
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pluginName = exports.default = void 0;
7
+
8
+ var _I18nKeysIdentifer = _interopRequireDefault(require("./I18nKeysIdentifer"));
9
+
10
+ var _optionsHandler = require("./optionsHandler");
11
+
12
+ var _I18nFilesEmitPlugin = require("./I18nFilesEmitPlugin");
13
+
14
+ var _I18nRuntimeDealerPlugin = require("./I18nRuntimeDealerPlugin");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ // import getI18nKeysFormModules from './utils/getI18nKeysFormModules';
19
+ const pluginName = 'mini-i18n-extract-plugin';
20
+ exports.pluginName = pluginName;
21
+ const pluginSymbol = Symbol(pluginName);
22
+
23
+ class I18nExtractPlugin {
24
+ constructor(options = {}) {
25
+ // initialize options
26
+ this.options = (0, _optionsHandler.optionsHandler)(options);
27
+ }
28
+
29
+ apply(compiler) {
30
+ new _I18nKeysIdentifer.default(this.options).apply(compiler);
31
+ new _I18nFilesEmitPlugin.I18nFilesEmitPlugin(this.options).apply(compiler);
32
+ new _I18nRuntimeDealerPlugin.I18nRuntimeDealerPlugin(this.options).apply(compiler);
33
+ }
34
+
35
+ }
36
+
37
+ exports.default = I18nExtractPlugin;
38
+ I18nExtractPlugin.pluginName = pluginName;
39
+ I18nExtractPlugin.pluginSymbol = pluginSymbol;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.iterateModulesInChunk = iterateModulesInChunk;
7
+
8
+ var _ConcatenatedModule = _interopRequireDefault(require("webpack/lib/optimize/ConcatenatedModule"));
9
+
10
+ var _getChunkModules = require("./utils/getChunkModules");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function iterateModulesInChunk({
15
+ chunk,
16
+ cb,
17
+ compilation
18
+ }) {
19
+ let canStopLoop = false;
20
+
21
+ function stopLoop() {
22
+ canStopLoop = true;
23
+ }
24
+
25
+ function iterateNestedModules(mod) {
26
+ if (mod.resource) {
27
+ cb({
28
+ module: mod,
29
+ stop: stopLoop
30
+ });
31
+ return canStopLoop;
32
+ }
33
+
34
+ if (mod instanceof _ConcatenatedModule.default) {
35
+ const {
36
+ modules
37
+ } = mod;
38
+ return Array.from(modules).some(mod => iterateNestedModules(mod));
39
+ }
40
+
41
+ return canStopLoop;
42
+ } // eslint-disable-next-line no-restricted-syntax
43
+
44
+
45
+ for (const mod of (0, _getChunkModules.getChunkModules)(chunk, compilation)) {
46
+ if (iterateNestedModules(mod)) {
47
+ return;
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.optionsHandler = optionsHandler;
7
+
8
+ var _constants = require("./constants");
9
+
10
+ var _readI18nValues = require("./readI18nValues");
11
+
12
+ /* eslint-disable no-use-before-define */
13
+ function optionsHandler(options) {
14
+ const {
15
+ disableDefault,
16
+ jsResource,
17
+ propertiesFolder
18
+ } = options;
19
+ const {
20
+ jsResourceI18nKeys,
21
+ allI18nObject,
22
+ locales
23
+ } = (0, _readI18nValues.readI18nValues)({
24
+ jsResource,
25
+ propertiesFolder,
26
+ disableDefault
27
+ });
28
+ return {
29
+ filename: options.filename || _constants.DEFAULT_FILENAME,
30
+ chunkFilename: options.chunkFilename || chunkNameDecider(options.filename),
31
+ mainChunkName: options.mainChunkName,
32
+ templateLabel: options.templateLabel,
33
+ publicPath: options.publicPath,
34
+ disableDefault: options.disableDefault,
35
+ i18nManifestFileName: options.i18nManifestFileName,
36
+ jsonpFunc: options.jsonpFunc,
37
+ localeVarName: options.localeVarName,
38
+ jsResource: options.jsResource,
39
+ propertiesFolder: options.propertiesFolder,
40
+ jsResourceI18nKeys,
41
+ allI18nObject,
42
+ locales,
43
+ // template: (object, locale) => `window.loadI18n(${JSON.stringify(object)}, ${JSON.stringify(locale)})`,
44
+ runtime: true,
45
+ runtimeOptions: {
46
+ insert: options.insert,
47
+ scriptType: typeof options.scriptType === 'boolean' && options.scriptType === true || typeof options.scriptType === 'undefined' ? 'text/javascript' : options.scriptType,
48
+ attributes: options.attributes
49
+ }
50
+ };
51
+ }
52
+
53
+ function chunkNameDecider(filename) {
54
+ if (typeof filename !== 'function') {
55
+ const hasName = filename.includes('[name]');
56
+ const hasId = filename.includes('[id]');
57
+ const hasChunkHash = filename.includes('[chunkhash]');
58
+ const hasContentHash = filename.includes('[contenthash]');
59
+
60
+ if (hasChunkHash || hasContentHash || hasName || hasId) {
61
+ return filename;
62
+ }
63
+
64
+ return filename.replace(/(^|\/)([^/]*(?:\?|$))/, '$1[id].$2');
65
+ }
66
+
67
+ return _constants.DEFAULT_CHUNK_FILENAME;
68
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pathCreator = pathCreator;
7
+
8
+ var _constants = require("./constants");
9
+
10
+ function pathCreator(filenameTemplate, compilation, data) {
11
+ return compilation.getAssetPath(filenameTemplate.replace(/\[locale\]/gi, data.locale), {
12
+ hash: data.hash,
13
+ chunk: {
14
+ id: data.chunkId,
15
+ hash: data.chunkHash,
16
+ contentHash: {
17
+ [_constants.MODULE_TYPE]: data.contentHash
18
+ },
19
+ name: data.chunkName
20
+ },
21
+ contentHashType: _constants.MODULE_TYPE
22
+ });
23
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.readI18nValues = readI18nValues;
7
+
8
+ var _propertiesUtils = require("./utils/propertiesUtils");
9
+
10
+ // gethere i18n keys and values
11
+ function readI18nValues({
12
+ jsResource,
13
+ propertiesFolder,
14
+ disableDefault
15
+ }) {
16
+ const jsResourceI18nKeys = jsResource ? (0, _propertiesUtils.getPropertiesAsJSON)(jsResource) : {};
17
+ const allI18nObject = (0, _propertiesUtils.getAllI18n)({
18
+ folderPath: propertiesFolder,
19
+ disableDefault,
20
+ jsResourceI18nKeys
21
+ }); // initialize base data's and plugis
22
+
23
+ const locales = Object.keys(allI18nObject);
24
+ return {
25
+ jsResourceI18nKeys,
26
+ allI18nObject,
27
+ locales
28
+ };
29
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.templateFileName = templateFileName;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ var _templateHashHelpers = require("./templateHashHelpers");
11
+
12
+ function templateFileName({
13
+ compilation,
14
+ dynamicFilename,
15
+ localeVarName,
16
+ chunks,
17
+ contentHashes
18
+ }) {
19
+ const MODULE_TYPE = 'text/mini-i18n';
20
+ const {
21
+ mapExpr,
22
+ mapExprWithLength
23
+ } = (0, _templateHashHelpers.templateHashHelpers)(chunks); // "i18n-chunk/[locale]/[name].[chunkhash].js"
24
+
25
+ const i18nURLPathTemplate = compilation.getPath(JSON.stringify(dynamicFilename).replace(/\[locale\]/gi, '"+ locale +"'), {
26
+ hash: `" + ${_webpack.RuntimeGlobals.getFullHash}() + "`,
27
+ hashWithLength: length => `" + ${_webpack.RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
28
+ chunk: {
29
+ id: '" + chunkId + "',
30
+ hash: mapExpr(c => c.renderedHash),
31
+ hashWithLength: mapExprWithLength(c => c.renderedHash),
32
+ name: mapExpr(c => c.name || c.id),
33
+ contentHash: {
34
+ [MODULE_TYPE]: mapExpr(c => contentHashes[c.id])
35
+ },
36
+ contentHashWithLength: {
37
+ [MODULE_TYPE]: mapExprWithLength(c => contentHashes[c.id])
38
+ }
39
+ },
40
+ contentHashType: MODULE_TYPE
41
+ });
42
+ return _webpack.Template.asString([`${_webpack.RuntimeGlobals.require}.miniI18nF = function(chunkId){var locale = (${localeVarName});return (${i18nURLPathTemplate})}`]);
43
+ }