@zohodesk/react-cli 0.0.1-exp.169.2 → 0.0.1-exp.175.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -179
  3. package/.prettierrc +6 -6
  4. package/README.md +1028 -951
  5. package/bin/cli.js +483 -483
  6. package/cert/Tsicsezwild-22-23.crt +37 -37
  7. package/cert/Tsicsezwild-22-23.key +27 -27
  8. package/docs/CustomChunks.md +26 -26
  9. package/docs/DevStart.md +18 -18
  10. package/docs/HoverActive.md +12 -12
  11. package/docs/InstallNode.md +28 -28
  12. package/docs/TODOS.md +10 -10
  13. package/docs/ValueReplacer.md +60 -60
  14. package/docs/VariableConversion.md +678 -0
  15. package/docs/warnings_while_install.txt +35 -35
  16. package/files/eslintrc.js +62 -62
  17. package/files/prettierrc.js +3 -3
  18. package/lib/babel/cmjs-plugins-presets.js +0 -4
  19. package/lib/babel/es-plugins-presets.js +0 -4
  20. package/lib/common/getEntries.js +0 -10
  21. package/lib/common/getPublicPathConfig.js +0 -6
  22. package/lib/common/index.js +0 -5
  23. package/lib/common/splitChunks.js +2 -13
  24. package/lib/common/sslcertUpdater.js +6 -17
  25. package/lib/common/templateParameters.js +0 -2
  26. package/lib/common/testPattern.js +10 -21
  27. package/lib/common/valueReplacer.js +0 -15
  28. package/lib/configs/jest.config.js +8 -21
  29. package/lib/configs/libAlias.js +11 -2
  30. package/lib/configs/webpack.component.umd.config.js +0 -5
  31. package/lib/configs/webpack.css.umd.config.js +5 -13
  32. package/lib/configs/webpack.dev.config.js +13 -24
  33. package/lib/configs/webpack.docs.config.js +6 -12
  34. package/lib/configs/webpack.impact.config.js +6 -10
  35. package/lib/configs/webpack.prod.config.js +15 -26
  36. package/lib/hooks/docsProptypeHook.js +3 -7
  37. package/lib/jest/commitedFilesResult.js +3 -45
  38. package/lib/jest/coverageCollector.js +0 -11
  39. package/lib/jest/jsonMaker.js +0 -6
  40. package/lib/jest/preProcessors/cssPreprocessor.js +14 -13
  41. package/lib/jest/preProcessors/jsPreprocessor.js +0 -2
  42. package/lib/jest/preProcessors/otherFilesPreprocessor.js +0 -3
  43. package/lib/jest/result.js +0 -22
  44. package/lib/jest/run.js +6 -17
  45. package/lib/jest/setup.js +5 -57
  46. package/lib/loaderUtils/configsAssetsLoaders.js +34 -44
  47. package/lib/loaderUtils/getCSSLoaders.js +41 -28
  48. package/lib/loaderUtils/getDevJsLoaders.js +0 -8
  49. package/lib/loaderUtils/index.js +0 -3
  50. package/lib/loaders/docsLoader.js +0 -7
  51. package/lib/loaders/docsPropsLoader.js +3 -7
  52. package/lib/loaders/fileBountryLoader.js +0 -2
  53. package/lib/loaders/fileLoader.js +11 -22
  54. package/lib/loaders/scriptInstrumentLoader.js +5 -13
  55. package/lib/loaders/selectorMappingLoader.js +7 -25
  56. package/lib/loaders/workerLoader.js +13 -29
  57. package/lib/middlewares/HMRMiddleware.js +13 -26
  58. package/lib/middlewares/SSTMiddleware.js +0 -3
  59. package/lib/pluginUtils/configHtmlWebpackPlugins.js +53 -0
  60. package/lib/pluginUtils/getDevPlugins.js +20 -64
  61. package/lib/pluginUtils/getDocsPlugins.js +1 -10
  62. package/lib/pluginUtils/getLibraryImactPlugins.js +4 -5
  63. package/lib/pluginUtils/getLibraryPlugins.js +0 -5
  64. package/lib/pluginUtils/getProdPlugins.js +32 -78
  65. package/lib/pluginUtils/getServerPlugins.js +0 -5
  66. package/lib/pluginUtils/getUMDCSSPlugins.js +0 -7
  67. package/lib/pluginUtils/getUMDComponentPlugins.js +0 -7
  68. package/lib/pluginUtils/index.js +0 -8
  69. package/lib/plugins/CdnChangePlugin.js +0 -14
  70. package/lib/plugins/CleanupStatsPlugin.js +0 -5
  71. package/lib/plugins/EFCPlugin.js +23 -34
  72. package/lib/plugins/EFCPlugin.md +6 -6
  73. package/lib/plugins/EFCTemplatePlugin.js +23 -32
  74. package/lib/plugins/I18NInjectIntoIndexPlugin.js +12 -38
  75. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +12 -17
  76. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +4 -10
  77. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +46 -77
  78. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +44 -59
  79. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +21 -30
  80. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  81. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  82. package/lib/plugins/I18nSplitPlugin/index.js +70 -80
  83. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +2 -12
  84. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +0 -1
  85. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +0 -5
  86. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +0 -6
  87. package/lib/plugins/I18nSplitPlugin/utils/index.js +0 -4
  88. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +2 -20
  89. package/lib/plugins/ManifestPlugin.js +0 -17
  90. package/lib/plugins/ModuleStatsPlugin.js +0 -23
  91. package/lib/plugins/OptimizeJSPlugin.js +0 -7
  92. package/lib/plugins/PublicPathCallbackPlugin.js +0 -10
  93. package/lib/plugins/PublicPathChangePlugin.js +4 -36
  94. package/lib/plugins/ReportGeneratePlugin.js +4 -30
  95. package/lib/plugins/RequireVariablePublicPlugin.js +0 -6
  96. package/lib/plugins/ResourceHintsPlugin.js +20 -27
  97. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +12 -17
  98. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +23 -38
  99. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  100. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +2 -5
  101. package/lib/plugins/ScriptInstrumentPlugin.js +0 -7
  102. package/lib/plugins/ServiceWorkerPlugin.js +13 -29
  103. package/lib/plugins/ShadowDOMSupportPlugin.js +3 -40
  104. package/lib/plugins/SourceMapHookPlugin.js +0 -9
  105. package/lib/plugins/TPHashMappingPlugin.js +5 -19
  106. package/lib/plugins/UglifyCSSPlugin.js +0 -9
  107. package/lib/plugins/UnusedFilesFindPlugin.js +2 -35
  108. package/lib/plugins/index.js +0 -19
  109. package/lib/plugins/libraryImpactPlugin.js +0 -32
  110. package/lib/plugins/webpackwatchrunplugin.js +0 -5
  111. package/lib/postcss-plugins/ExcludePlugin.js +0 -4
  112. package/lib/postcss-plugins/RTLSplitPlugin.js +24 -37
  113. package/lib/postcss-plugins/ValueReplacer.js +9 -6
  114. package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +0 -3
  115. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  116. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  117. package/lib/postcss-plugins/hoverActivePlugin.js +80 -92
  118. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +31 -0
  119. package/lib/postcss-plugins/variableModificationPlugin/index.js +232 -0
  120. package/lib/postcss-plugins/variableModifier.js +14 -20
  121. package/lib/schemas/index.js +28 -13
  122. package/lib/servers/clusterHubServer.js +0 -10
  123. package/lib/servers/devBuild.js +13 -24
  124. package/lib/servers/docsServer.js +0 -2
  125. package/lib/servers/docsServerCore.js +0 -21
  126. package/lib/servers/getCliPath.js +1 -10
  127. package/lib/servers/helpServer.js +0 -5
  128. package/lib/servers/httpsOptions.js +0 -4
  129. package/lib/servers/impactServer.js +2 -34
  130. package/lib/servers/mockserver.js +0 -9
  131. package/lib/servers/nowatchserver.js +12 -34
  132. package/lib/servers/scrServer.js +13 -20
  133. package/lib/servers/server.js +7 -35
  134. package/lib/servers/ssServer.js +0 -16
  135. package/lib/sh/pre-commit.sh +34 -34
  136. package/lib/sh/reportPublish.sh +45 -45
  137. package/lib/templates/CoverageScriptTemplate.js +0 -14
  138. package/lib/templates/WMSTemplate.js +6 -12
  139. package/lib/utils/babelPresets.js +0 -2
  140. package/lib/utils/buildstats.html +148 -148
  141. package/lib/utils/clean.js +2 -8
  142. package/lib/utils/copy.js +0 -6
  143. package/lib/utils/copyTimezones.js +0 -8
  144. package/lib/utils/createEventStream.js +0 -4
  145. package/lib/utils/cssClassNameGenerate.js +3 -19
  146. package/lib/utils/cssURLReplacer.js +0 -25
  147. package/lib/utils/dependencyPostPublish.js +0 -9
  148. package/lib/utils/fileUtils.js +0 -26
  149. package/lib/utils/folderIterator.js +0 -10
  150. package/lib/utils/getComponents.js +0 -21
  151. package/lib/utils/getCurrentBranch.js +0 -5
  152. package/lib/utils/getDependenciesImpactList.js +0 -21
  153. package/lib/utils/getHash.js +0 -7
  154. package/lib/utils/getIp.js +0 -2
  155. package/lib/utils/getOptions.js +38 -35
  156. package/lib/utils/getServerURL.js +0 -7
  157. package/lib/utils/index.js +2 -47
  158. package/lib/utils/init.js +0 -1
  159. package/lib/utils/initPreCommitHook.js +6 -29
  160. package/lib/utils/jsonHelper.js +2 -19
  161. package/lib/utils/libraryImpactConfig.js +0 -2
  162. package/lib/utils/lint/addScripts.js +2 -5
  163. package/lib/utils/lint/checkExistingConfig.js +3 -12
  164. package/lib/utils/lint/copyConfigs.js +0 -3
  165. package/lib/utils/lint/index.js +0 -9
  166. package/lib/utils/lint/lintScripts.js +0 -1
  167. package/lib/utils/lint/lintSetup.js +3 -4
  168. package/lib/utils/lint/lintStagedPreCommitHook.js +0 -1
  169. package/lib/utils/lint/question.js +0 -7
  170. package/lib/utils/lintReporter.js +0 -20
  171. package/lib/utils/mailSender.js +0 -7
  172. package/lib/utils/pullOrigin.js +0 -4
  173. package/lib/utils/reinstallDependencies.js +0 -28
  174. package/lib/utils/removeAttributes.js +0 -7
  175. package/lib/utils/repoClone.js +2 -27
  176. package/lib/utils/request.js +0 -12
  177. package/lib/utils/resultSchema.json +73 -73
  178. package/lib/utils/rtl.js +4 -16
  179. package/lib/utils/setEnvVariables.js +0 -2
  180. package/lib/utils/ssTestHack.js +0 -10
  181. package/lib/utils/switchBranch.js +0 -4
  182. package/lib/utils/urlConcat.js +0 -4
  183. package/lib/utils/useExitCleanup.js +9 -10
  184. package/npm8.md +9 -9
  185. package/package.json +146 -148
  186. package/postpublish.js +6 -6
  187. package/templates/app/.eslintrc.js +140 -140
  188. package/templates/app/README.md +12 -12
  189. package/templates/app/app/index.html +24 -24
  190. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  191. package/templates/app/app/properties/i18nkeys.json +3 -3
  192. package/templates/app/docs/all.html +69 -69
  193. package/templates/app/mockapi/index.js +18 -18
  194. package/templates/app/package.json +37 -37
  195. package/templates/app/src/actions/SampleActions/index.js +37 -37
  196. package/templates/app/src/actions/index.js +65 -65
  197. package/templates/app/src/appUrls.js +19 -19
  198. package/templates/app/src/components/Alert/Alert.js +134 -134
  199. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  200. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  201. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  202. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  203. package/templates/app/src/components/Sample/SampleList.js +61 -61
  204. package/templates/app/src/components/Slider/Slider.css +41 -41
  205. package/templates/app/src/components/Slider/Slider.js +55 -55
  206. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  207. package/templates/app/src/containers/AppContainer/index.js +96 -96
  208. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  209. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  210. package/templates/app/src/containers/DevTools/index.js +10 -10
  211. package/templates/app/src/containers/Header/index.js +67 -67
  212. package/templates/app/src/containers/Header/index.module.css +43 -43
  213. package/templates/app/src/containers/Redirect/index.js +63 -63
  214. package/templates/app/src/containers/Redirector/index.js +47 -47
  215. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  216. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  217. package/templates/app/src/historyChange.js +5 -5
  218. package/templates/app/src/index.html +10 -10
  219. package/templates/app/src/index.js +24 -24
  220. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  221. package/templates/app/src/reducers/alertData.js +11 -11
  222. package/templates/app/src/reducers/index.js +6 -6
  223. package/templates/app/src/reducers/samples.js +19 -19
  224. package/templates/app/src/store/configureStore.dev.js +51 -51
  225. package/templates/app/src/store/configureStore.js +5 -5
  226. package/templates/app/src/store/configureStore.prod.js +26 -26
  227. package/templates/app/src/util/Common.js +5 -5
  228. package/templates/app/src/util/RequestAPI.js +132 -132
  229. package/templates/docs/all.html +249 -249
  230. package/templates/docs/component.html +178 -178
  231. package/templates/docs/components.html +221 -221
  232. package/templates/docs/css/b.min.css +6 -6
  233. package/templates/docs/css/component.css +42 -42
  234. package/templates/docs/css/componentTest.css +6 -6
  235. package/templates/docs/css/hopscotch.css +585 -585
  236. package/templates/docs/css/style.css +1022 -1022
  237. package/templates/docs/impactReportTemplate.html +154 -154
  238. package/templates/docs/index.html +1501 -1493
  239. package/templates/docs/js/active-line.js +72 -72
  240. package/templates/docs/js/b.min.js +7 -7
  241. package/templates/docs/js/codemirror.js +9680 -9680
  242. package/templates/docs/js/designTokens.js +334 -334
  243. package/templates/docs/js/j.min.js +4 -4
  244. package/templates/docs/js/javascript.js +874 -874
  245. package/templates/docs/js/matchbrackets.js +145 -145
@@ -4,61 +4,52 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("./utils");
9
-
10
8
  var _webpack = require("webpack");
11
-
12
9
  var _I18nKeysIdentifer = _interopRequireDefault(require("./I18nKeysIdentifer"));
13
-
14
10
  var _I18nFilesEmitter = _interopRequireDefault(require("./I18nFilesEmitter"));
15
-
16
11
  var _I18nDownlodLogic = _interopRequireDefault(require("./I18nDownlodLogic"));
17
-
18
12
  var _getI18nKeysFormModules = _interopRequireDefault(require("./utils/getI18nKeysFormModules"));
19
-
20
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
14
  // #region initial
23
-
24
- /**
25
- * @TODO:
26
- * [?] add comment line options for properties file and get all keys form property file do right way to genarate them
27
- * [?] need to discuss with collectI18n Keys with js comment need to conform "what is the comment? "
15
+ /**
16
+ * @TODO:
17
+ * [?] add comment line options for properties file and get all keys form property file do right way to genarate them
18
+ * [?] need to discuss with collectI18n Keys with js comment need to conform "what is the comment? "
28
19
  */
29
20
 
30
- /**
31
- * Notes: this plugin has done below works
32
- * 1. collect I18n Keys from js files and make it as Depenencies
33
- * 2. we create file(asset) for chunk specific i18nChunk Files
34
- * 3. create hash for the specific i18nChunk Files
35
- * 4. write logic to requireEnsure method for dowlod I18n chunk download dynamicaly
36
- * 5. create manifest.json file which has the mapping of chunk-locales-i18nChunkFile
37
- * for the external referrece.
38
- * Hints :-
39
- * - file means your machine files
40
- * - asset means that also file but that will create by webpack after build
21
+ /**
22
+ * Notes: this plugin has done below works
23
+ * 1. collect I18n Keys from js files and make it as Depenencies
24
+ * 2. we create file(asset) for chunk specific i18nChunk Files
25
+ * 3. create hash for the specific i18nChunk Files
26
+ * 4. write logic to requireEnsure method for dowlod I18n chunk download dynamicaly
27
+ * 5. create manifest.json file which has the mapping of chunk-locales-i18nChunkFile
28
+ * for the external referrece.
29
+ * Hints :-
30
+ * - file means your machine files
31
+ * - asset means that also file but that will create by webpack after build
41
32
  */
33
+
42
34
  // const getI18nLocales = require('./utils/getI18nLocales');
43
35
  // const { ConcatSource, SourceMapSource, OriginalSource } = sources;
44
36
  const {
45
37
  createHash
46
38
  } = _webpack.util;
47
39
  const MODULE_TYPE = 'json/i18n';
48
-
49
40
  const i18ntype = locale => `${MODULE_TYPE}/${locale}`;
50
-
51
41
  const pluginName = 'i18n-plugin';
52
- /**
53
- * @typedef I18nPluginOptions
54
- * @property {String} filenameTemplate this was template for i18n chunk
55
- * @property {String} jsResource this was path for jsResource i18n file
56
- * @property {String} propertiesFolder this was path for propertiesFolder i18n file
57
- * @property {Boolean} disableDefault this option for disable defulat value for i18n keys, means if the language file does not have some key we don't give jsResource value
58
- * @property {String} i18nManifestFileName this was ouput path for i18n manifest.
59
- * @property {String} jsonpFunc this was function name, we will call that function everytime i18n chunk download.
60
- * @property {String} localeVarName this was variable name, we will call that function everytime i18n chunk download.
61
- *
42
+
43
+ /**
44
+ * @typedef I18nPluginOptions
45
+ * @property {String} filenameTemplate this was template for i18n chunk
46
+ * @property {String} jsResource this was path for jsResource i18n file
47
+ * @property {String} propertiesFolder this was path for propertiesFolder i18n file
48
+ * @property {Boolean} disableDefault this option for disable defulat value for i18n keys, means if the language file does not have some key we don't give jsResource value
49
+ * @property {String} i18nManifestFileName this was ouput path for i18n manifest.
50
+ * @property {String} jsonpFunc this was function name, we will call that function everytime i18n chunk download.
51
+ * @property {String} localeVarName this was variable name, we will call that function everytime i18n chunk download.
52
+ *
62
53
  */
63
54
 
64
55
  class I18nPlugin {
@@ -77,15 +68,16 @@ class I18nPlugin {
77
68
  propertiesFolder,
78
69
  jsonpFunc
79
70
  } = this.options;
80
- this.publicPath = publicPath; // gethere i18n keys and values
81
-
71
+ this.publicPath = publicPath;
72
+ // gethere i18n keys and values
82
73
  this.jsResourceI18nKeys = jsResource ? (0, _utils.getPropertiesAsJSON)(jsResource) : {};
83
74
  this.allI18nObject = (0, _utils.getAllI18n)({
84
75
  folderPath: propertiesFolder,
85
76
  disableDefault,
86
77
  jsResourceI18nKeys: this.jsResourceI18nKeys
87
- }); // initialize base data's and plugis
78
+ });
88
79
 
80
+ // initialize base data's and plugis
89
81
  this.locales = Object.keys(this.allI18nObject);
90
82
  this.i18nKeysIdentifer = new _I18nKeysIdentifer.default(this.jsResourceI18nKeys);
91
83
  this.i18nFilesEmitter = new _I18nFilesEmitter.default({
@@ -102,15 +94,14 @@ class I18nPlugin {
102
94
  localeVarName
103
95
  });
104
96
  }
105
-
106
97
  maintainHashForAllI18nAssets(compilation) {
107
- /**
108
- * we write chunkHash logic inside of our plugin Because we only add Dependency not Module.
109
- * So we need to update chunkHash for our assets
110
- * and we not able tell with just Modules.
111
- * Because, if we add Module for the Depenentcy then that module must has some hash.
112
- * But our I18n Hash is no module specific it was chunk specific,
113
- * that's why we do the stuf in the chunkHash hook.
98
+ /**
99
+ * we write chunkHash logic inside of our plugin Because we only add Dependency not Module.
100
+ * So we need to update chunkHash for our assets
101
+ * and we not able tell with just Modules.
102
+ * Because, if we add Module for the Depenentcy then that module must has some hash.
103
+ * But our I18n Hash is no module specific it was chunk specific,
104
+ * that's why we do the stuf in the chunkHash hook.
114
105
  */
115
106
  compilation.hooks.chunkHash.tap(pluginName, (chunk, chunkHash) => {
116
107
  const {
@@ -122,14 +113,13 @@ class I18nPlugin {
122
113
  hashDigestLength
123
114
  } = outputOptions;
124
115
  const i18nKeys = (0, _getI18nKeysFormModules.default)(chunk.modulesIterable);
125
-
126
116
  if (!i18nKeys.length) {
127
117
  return;
128
118
  }
129
-
130
119
  const {
131
120
  contentHash
132
- } = chunk; // contentHash = {
121
+ } = chunk;
122
+ // contentHash = {
133
123
  // javascript: 'abcd2938',
134
124
  // 'css/mini-extract': 'askdijasod'
135
125
  // };
@@ -141,45 +131,45 @@ class I18nPlugin {
141
131
  });
142
132
  });
143
133
  }
144
-
145
134
  apply(compiler) {
146
135
  this.i18nKeysIdentifer.apply(compiler);
147
136
  compiler.hooks.thisCompilation.tap(pluginName, compilation => {
148
137
  // this below hook was tapped for hash for the specific i18nChunk Files and write logic to requireEnsure
149
- this.maintainHashForAllI18nAssets(compilation); // const { mainTemplate } = compilation;
138
+ this.maintainHashForAllI18nAssets(compilation);
139
+
140
+ // const { mainTemplate } = compilation;
150
141
  // this.addDownloadLogicOfI18nInMainTemplate(mainTemplate);
151
142
  });
143
+
152
144
  this.i18nFilesEmitter.apply(compiler);
153
145
  this.i18nDownlodLogic.apply(compiler);
154
146
  }
155
-
156
147
  }
157
- /*
158
- // TODO: need to reimplement this logic
159
- // NOTE: this logic for split all content hash per mani chunk
160
- // like add chunk content hash to main locale i18n file
161
-
162
- // let isEntry = chunk.name === this.options.mainChunkName;
163
- // if (chunk.name === 'main' && chunk.hasEntryModule()) {
164
- if (isEntry) {
165
- const hashSource = new ConcatSource();
166
- const dummyChunk = new chunk.constructor();
167
- hashSource.add('// it wil be I18N file hash');
168
- const templateHooks = compilation.chunkTemplate.hooks;
169
- let c = templateHooks.render.call(
170
- templateHooks.module.call(
171
- hashSource,
172
- dummyChunk,
173
- compilation.moduleTemplate.javascript,
174
- compilation.dependencyTemplates
175
- ),
176
- dummyChunk,
177
- compilation.moduleTemplate.javascript,
178
- compilation.dependencyTemplates
179
- );
180
- console.log('entry, ', c, hashSource.toString());
181
- }
182
- */
183
-
184
148
 
149
+ /*
150
+ // TODO: need to reimplement this logic
151
+ // NOTE: this logic for split all content hash per mani chunk
152
+ // like add chunk content hash to main locale i18n file
153
+
154
+ // let isEntry = chunk.name === this.options.mainChunkName;
155
+ // if (chunk.name === 'main' && chunk.hasEntryModule()) {
156
+ if (isEntry) {
157
+ const hashSource = new ConcatSource();
158
+ const dummyChunk = new chunk.constructor();
159
+ hashSource.add('// it wil be I18N file hash');
160
+ const templateHooks = compilation.chunkTemplate.hooks;
161
+ let c = templateHooks.render.call(
162
+ templateHooks.module.call(
163
+ hashSource,
164
+ dummyChunk,
165
+ compilation.moduleTemplate.javascript,
166
+ compilation.dependencyTemplates
167
+ ),
168
+ dummyChunk,
169
+ compilation.moduleTemplate.javascript,
170
+ compilation.dependencyTemplates
171
+ );
172
+ console.log('entry, ', c, hashSource.toString());
173
+ }
174
+ */
185
175
  exports.default = I18nPlugin;
@@ -5,11 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.collectI18nKeysfromAST = collectI18nKeysfromAST;
7
7
  exports.collectI18nKeysfromComments = collectI18nKeysfromComments;
8
-
9
8
  const {
10
9
  walk
11
10
  } = require('estree-walker');
12
-
13
11
  function collectI18nKeysfromAST(ast, allI18n) {
14
12
  let i18nKeys = {};
15
13
  walk(ast, {
@@ -23,42 +21,34 @@ function collectI18nKeysfromAST(ast, allI18n) {
23
21
  });
24
22
  return Object.keys(i18nKeys);
25
23
  }
26
-
27
24
  const prefixI18nComment = 'I18N';
28
25
  const prefixI18nComment1 = 'dynamic-i18n-key';
29
-
30
26
  function getI18nKeysFromComment(comment) {
31
27
  let commentString = comment.value.trim();
32
28
  let i18nKeyStr;
33
-
34
29
  if (commentString.startsWith(prefixI18nComment)) {
35
30
  i18nKeyStr = commentString.slice(prefixI18nComment.length).trim();
36
31
  } else if (commentString.startsWith(prefixI18nComment1)) {
37
32
  i18nKeyStr = commentString.slice(prefixI18nComment1.length).trim();
38
33
  }
39
-
40
34
  if (!i18nKeyStr) {
41
35
  return [];
42
36
  }
43
-
44
37
  const i18nKeys = i18nKeyStr.split(',');
45
38
  return i18nKeys;
46
- } // export function fromComments(comments, allI18n) {
47
-
39
+ }
48
40
 
41
+ // export function fromComments(comments, allI18n) {
49
42
  function collectI18nKeysfromComments(comments, allI18n) {
50
43
  // TODO: need to implement
51
44
  let i18nKeys = {};
52
-
53
45
  for (let comment of comments) {
54
46
  let keys = getI18nKeysFromComment(comment);
55
-
56
47
  for (let key of keys) {
57
48
  if (key && allI18n[key]) {
58
49
  i18nKeys[key] = allI18n[key];
59
50
  }
60
51
  }
61
52
  }
62
-
63
53
  return Object.keys(i18nKeys);
64
54
  }
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getI18nFileUrlPathTemplate = getI18nFileUrlPathTemplate;
7
-
8
7
  function getI18nFileUrlPathTemplate(compilation, chunk, filenameTemplate, localeTemplate) {
9
8
  let urlpath = compilation.getPath(filenameTemplate, {
10
9
  chunk
@@ -4,23 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = getI18nKeysFormModules;
7
-
8
7
  var _I18nDependency = require("../I18nDependency");
9
-
10
8
  function getI18nKeysFormModules(modules) {
11
9
  const i18nTemObj = {};
12
-
13
10
  for (let m of modules) {
14
11
  for (let dep of m.dependencies) {
15
12
  if (!(dep instanceof _I18nDependency.I18nDependency)) {
16
13
  continue;
17
14
  }
18
-
19
15
  for (const key of dep.i18nKeys) {
20
16
  i18nTemObj[key] = 1;
21
17
  }
22
18
  }
23
19
  }
24
-
25
20
  return Object.keys(i18nTemObj);
26
21
  }
@@ -6,9 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.REGEXP_CONTENTHASH = void 0;
7
7
  exports.getShortI18nAssets = getShortI18nAssets;
8
8
  exports.hasContentHash = hasContentHash;
9
-
10
9
  var _urlConcat = require("../../../utils/urlConcat");
11
-
12
10
  // export const REGEXP_CHUNKHASH = /\[chunkhash(?::(\d+))?\]/gi;
13
11
  // export const REGEXP_HASH = /\[hash(?::(\d+))?\]/gi;
14
12
  // export const REGEXP_NAME = /\[name\]/gi;
@@ -16,22 +14,18 @@ var _urlConcat = require("../../../utils/urlConcat");
16
14
  // TODO: want to choose file type for i18n load
17
15
  const REGEXP_CONTENTHASH = /\[contenthash(?::(\d+))?\]/gi;
18
16
  exports.REGEXP_CONTENTHASH = REGEXP_CONTENTHASH;
19
-
20
17
  function hasContentHash(filenameTemplate) {
21
18
  return REGEXP_CONTENTHASH.test(filenameTemplate);
22
19
  }
23
-
24
20
  function getShortI18nAssets(chunks, i18nManifest, publicPathPrefix) {
25
21
  const i18nAssets = {};
26
22
  chunks.forEach(chunk => {
27
23
  const i18nFiles = i18nManifest[chunk.id];
28
-
29
24
  if (i18nFiles) {
30
25
  Object.keys(i18nFiles).forEach(locale => {
31
26
  if (!i18nAssets[locale]) {
32
27
  i18nAssets[locale] = [];
33
28
  }
34
-
35
29
  i18nAssets[locale].push((0, _urlConcat.urlConcat)(publicPathPrefix, i18nFiles[locale]));
36
30
  });
37
31
  }
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _collectI18nKeys = require("./collectI18nKeys");
8
-
9
7
  Object.keys(_collectI18nKeys).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _collectI18nKeys[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_collectI18nKeys).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _propertiesUtils = require("./propertiesUtils");
21
-
22
18
  Object.keys(_propertiesUtils).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _propertiesUtils[key]) return;
@@ -6,15 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getAllI18n = getAllI18n;
7
7
  exports.getPropertiesAsJSON = getPropertiesAsJSON;
8
8
  exports.jsonToString = jsonToString;
9
-
10
9
  var _fs = require("fs");
11
-
12
10
  var _path = require("path");
13
-
14
11
  function isComment(line) {
15
12
  return line[0] === '#';
16
13
  }
17
-
18
14
  function getPropertiesAsJSON(filePath) {
19
15
  try {
20
16
  const data = (0, _fs.readFileSync)(filePath);
@@ -22,15 +18,12 @@ function getPropertiesAsJSON(filePath) {
22
18
  const i18nObj = {};
23
19
  source.split(/\r?\n\r?/).forEach(fline => {
24
20
  const line = fline.trim();
25
-
26
21
  if (!line || isComment(line)) {
27
22
  return;
28
23
  }
29
-
30
24
  const ind = line.indexOf('=');
31
25
  const key = line.slice(0, ind).replace(/\\ /g, ' ');
32
26
  const value = line.slice(ind + 1);
33
-
34
27
  if (key && value) {
35
28
  i18nObj[key] = value;
36
29
  }
@@ -40,19 +33,15 @@ function getPropertiesAsJSON(filePath) {
40
33
  return {};
41
34
  }
42
35
  }
43
-
44
36
  function getLang(file) {
45
37
  let underScoreIndex = file.indexOf('_');
46
38
  let language = 'en_US';
47
-
48
39
  if (underScoreIndex !== -1) {
49
40
  language = file.substring(underScoreIndex + 1);
50
41
  language = language.slice(0, language.indexOf('.'));
51
42
  }
52
-
53
43
  return language;
54
44
  }
55
-
56
45
  function getAllI18n({
57
46
  folderPath,
58
47
  disableDefault,
@@ -66,13 +55,11 @@ function getAllI18n({
66
55
  const context = (0, _path.join)(process.cwd(), folderPath);
67
56
  files.forEach(file => {
68
57
  const filePath = (0, _path.join)(context, file);
69
-
70
58
  if (exclude.test(filePath) || !include.test(filePath)) {
71
59
  // console.log('exclude', filePath);
72
60
  return;
73
- } // console.log('include', filePath);
74
-
75
-
61
+ }
62
+ // console.log('include', filePath);
76
63
  const i18n = getPropertiesAsJSON(filePath);
77
64
  allLangI18n[getLang(file)] = disableDefault ? i18n : Object.assign({}, jsResourceI18nKeys, i18n);
78
65
  });
@@ -82,27 +69,22 @@ function getAllI18n({
82
69
  return {};
83
70
  }
84
71
  }
85
-
86
72
  function jsonToString(json, keySeperator) {
87
73
  let str = '{';
88
74
  let keys = Object.keys(json);
89
75
  keys.forEach((key, i) => {
90
76
  let value = json[key];
91
-
92
77
  if (!value) {
93
78
  return;
94
79
  }
95
-
96
80
  str += `"${keySeperator ? key.replace(/(\.|\\(\s+))/g, keySeperator) : key}":"${value.replace(/.?"/g, match => {
97
81
  if (match[0] === '\\') {
98
82
  return match;
99
83
  } else if (match.length === 2) {
100
84
  return `${match[0]}\\${match[1]}`;
101
85
  }
102
-
103
86
  return `\\${match}`;
104
87
  }).replace(/(\r\n|\n|\r)/g, '')}"`;
105
-
106
88
  if (i !== keys.length - 1) {
107
89
  str += ',';
108
90
  }
@@ -4,42 +4,32 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _webpackSources = require("webpack-sources");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  let filenameParser = filename => {
15
11
  let filepaths = filename.split('/');
16
12
  let hashedName = filepaths[filepaths.length - 1];
17
-
18
13
  let {
19
14
  name,
20
15
  ext
21
16
  } = _path.default.parse(hashedName);
22
-
23
17
  let nameparts = name.split('.');
24
-
25
18
  if (ext === '.css' && /^(rtl|ltr)$/.test(nameparts[nameparts.length - 1])) {
26
19
  return {
27
20
  name: nameparts.slice(0, nameparts.length - 2).join('.') + ext,
28
21
  hashedName
29
22
  };
30
23
  }
31
-
32
24
  return {
33
25
  name: nameparts.slice(0, nameparts.length - 1).join('.') + ext,
34
26
  hashedName
35
27
  };
36
28
  };
37
-
38
29
  class ManifestPlugin {
39
30
  constructor(options) {
40
31
  this.options = options;
41
32
  }
42
-
43
33
  apply(compiler) {
44
34
  compiler.hooks.emit.tap('PublicPathChangePlugin', compilation => {
45
35
  let stats = compilation.getStats().toJson();
@@ -48,25 +38,20 @@ class ManifestPlugin {
48
38
  name: filename,
49
39
  hashedName
50
40
  } = filenameParser(name);
51
-
52
41
  if (chunk.canBeInitial()) {
53
42
  if (!files.entryFiles) {
54
43
  files.entryFiles = {};
55
44
  }
56
-
57
45
  files.entryFiles[filename] = hashedName;
58
46
  }
59
-
60
47
  files[filename] = hashedName;
61
48
  return files;
62
49
  }, files), {});
63
50
  manifest = stats.assets.reduce((files, asset) => {
64
51
  let isEntryAsset = asset.chunks.length > 0;
65
-
66
52
  if (isEntryAsset) {
67
53
  return files;
68
54
  }
69
-
70
55
  let {
71
56
  name: filename
72
57
  } = asset;
@@ -80,7 +65,5 @@ class ManifestPlugin {
80
65
  compilation.assets[this.options.fileName] = new _webpackSources.RawSource(JSON.stringify(manifest));
81
66
  });
82
67
  }
83
-
84
68
  }
85
-
86
69
  exports.default = ManifestPlugin;
@@ -4,39 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _webpackSources = require("webpack-sources");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  let isValidModule = name => {
15
11
  if (name.includes('node_modules') && (name.includes(`@zohodesk${_path.default.sep}components`) || name.includes(`@zohodesk${_path.default.sep}dot`) || name.includes(`@zohodesk${_path.default.sep}icons`) || name.includes(`@zohodesk${_path.default.sep}svg`)) && !name.endsWith('docs.js')) {
16
12
  return true;
17
13
  }
18
-
19
14
  return !name.includes('index.js') && !name.endsWith('.css') && !name.endsWith('.png') && !name.includes('node_modules') && name.includes('src');
20
15
  };
21
-
22
16
  let getModuleName = modulePath => {
23
17
  let [name] = _path.default.parse(modulePath).name.split('.');
24
-
25
18
  if (modulePath.includes(`@zohodesk${_path.default.sep}components`)) {
26
19
  name = `@zohodesk/components/${name}`;
27
20
  } else if (modulePath.includes(`@zohodesk${_path.default.sep}dot`)) {
28
21
  name = `@zohodesk/dot/${name}`;
29
22
  }
30
-
31
23
  return name;
32
24
  };
33
-
34
25
  class ModuleStatsPlugin {
35
26
  constructor(options = {}) {
36
27
  this.options = options;
37
28
  this.options.filename = options.filename || 'js/moduleStats.js';
38
29
  }
39
-
40
30
  apply(compiler) {
41
31
  compiler.hooks.emit.tap('ModuleStatsPlugin', compilation => {
42
32
  let stats = compilation.getStats().toJson();
@@ -44,13 +34,11 @@ class ModuleStatsPlugin {
44
34
  let {
45
35
  modules
46
36
  } = stats;
47
-
48
37
  for (let module of modules) {
49
38
  let {
50
39
  name,
51
40
  reasons
52
41
  } = module;
53
-
54
42
  if (isValidModule(name)) {
55
43
  let references = new Set();
56
44
  let referencedby = new Set();
@@ -59,7 +47,6 @@ class ModuleStatsPlugin {
59
47
  compilation.modules.forEach(module => {
60
48
  module.reasons.forEach(reason => {
61
49
  let exportedValue = reason.dependency;
62
-
63
50
  if (exportedValue.type === 'harmony export imported specifier') {
64
51
  if (exportedValue.module.userRequest.includes(name.replace('.', ''))) {
65
52
  docsName = exportedValue.name;
@@ -68,35 +55,29 @@ class ModuleStatsPlugin {
68
55
  });
69
56
  });
70
57
  let currentModuleName = name;
71
-
72
58
  if (Array.isArray(reasons)) {
73
59
  for (let reason of reasons) {
74
60
  let {
75
61
  moduleName
76
62
  } = reason;
77
-
78
63
  if (isValidModule(moduleName)) {
79
64
  let reasonedModuleName = moduleName;
80
65
  referencedby.add(reasonedModuleName);
81
66
  }
82
67
  }
83
68
  }
84
-
85
69
  for (let subModule of modules) {
86
70
  let {
87
71
  name: subModuleName,
88
72
  reasons
89
73
  } = subModule;
90
-
91
74
  if (isValidModule(subModuleName)) {
92
75
  let currentModuleName = subModuleName;
93
-
94
76
  if (Array.isArray(reasons)) {
95
77
  for (let reason of reasons) {
96
78
  let {
97
79
  moduleName: reasonedModuleName
98
80
  } = reason;
99
-
100
81
  if (name === reasonedModuleName) {
101
82
  references.add(currentModuleName);
102
83
  }
@@ -104,7 +85,6 @@ class ModuleStatsPlugin {
104
85
  }
105
86
  }
106
87
  }
107
-
108
88
  results[currentModuleName] = {
109
89
  name: currentModuleName,
110
90
  references: Array.from(references),
@@ -114,11 +94,8 @@ class ModuleStatsPlugin {
114
94
  };
115
95
  }
116
96
  }
117
-
118
97
  compilation.assets[this.options.filename] = new _webpackSources.RawSource(JSON.stringify(results));
119
98
  });
120
99
  }
121
-
122
100
  }
123
-
124
101
  exports.default = ModuleStatsPlugin;
@@ -4,18 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _optimizeJs = _interopRequireDefault(require("optimize-js"));
9
-
10
8
  var _webpackSources = require("webpack-sources");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  class OptimizeJSPlugin {
15
11
  constructor(options = {}) {
16
12
  this.optimize = options.optimize;
17
13
  }
18
-
19
14
  apply(compiler) {
20
15
  compiler.hooks.compilation.tap('OptimizeJSPlugin', compilation => {
21
16
  compilation.hooks.afterOptimizeChunks.tap('OptimizeJSPlugin', chunks => {
@@ -34,8 +29,6 @@ class OptimizeJSPlugin {
34
29
  });
35
30
  });
36
31
  }
37
-
38
32
  }
39
-
40
33
  var _default = OptimizeJSPlugin;
41
34
  exports.default = _default;