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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -180
  3. package/.prettierrc +6 -6
  4. package/README.md +1025 -1028
  5. package/bin/cli.js +482 -482
  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/SelectorWeight.md +6 -0
  13. package/docs/TODOS.md +10 -10
  14. package/docs/ValueReplacer.md +60 -60
  15. package/docs/VariableConversion.md +719 -678
  16. package/docs/warnings_while_install.txt +35 -35
  17. package/files/eslintrc.js +62 -62
  18. package/files/prettierrc.js +3 -3
  19. package/lib/babel/cmjs-plugins-presets.js +4 -0
  20. package/lib/babel/es-plugins-presets.js +4 -0
  21. package/lib/common/getEntries.js +10 -0
  22. package/lib/common/getPublicPathConfig.js +6 -0
  23. package/lib/common/index.js +5 -0
  24. package/lib/common/splitChunks.js +13 -2
  25. package/lib/common/sslcertUpdater.js +17 -6
  26. package/lib/common/templateParameters.js +2 -0
  27. package/lib/common/testPattern.js +21 -10
  28. package/lib/common/valueReplacer.js +15 -0
  29. package/lib/configs/jest.config.js +9 -0
  30. package/lib/configs/libAlias.js +2 -4
  31. package/lib/configs/webpack.component.umd.config.js +5 -0
  32. package/lib/configs/webpack.css.umd.config.js +13 -5
  33. package/lib/configs/webpack.dev.config.js +36 -2
  34. package/lib/configs/webpack.docs.config.js +21 -1
  35. package/lib/configs/webpack.impact.config.js +19 -1
  36. package/lib/configs/webpack.prod.config.js +37 -3
  37. package/lib/hooks/docsProptypeHook.js +7 -3
  38. package/lib/jest/commitedFilesResult.js +45 -3
  39. package/lib/jest/coverageCollector.js +11 -0
  40. package/lib/jest/jsonMaker.js +6 -0
  41. package/lib/jest/preProcessors/cssPreprocessor.js +8 -0
  42. package/lib/jest/preProcessors/jsPreprocessor.js +2 -0
  43. package/lib/jest/preProcessors/otherFilesPreprocessor.js +3 -0
  44. package/lib/jest/result.js +22 -0
  45. package/lib/jest/run.js +17 -6
  46. package/lib/jest/setup.js +57 -5
  47. package/lib/loaderUtils/configsAssetsLoaders.js +44 -34
  48. package/lib/loaderUtils/getCSSLoaders.js +35 -20
  49. package/lib/loaderUtils/getDevJsLoaders.js +8 -0
  50. package/lib/loaderUtils/index.js +3 -0
  51. package/lib/loaderUtils/windowsModification.js +11 -0
  52. package/lib/loaders/docsLoader.js +7 -0
  53. package/lib/loaders/docsPropsLoader.js +7 -3
  54. package/lib/loaders/fileBountryLoader.js +2 -0
  55. package/lib/loaders/fileLoader.js +22 -11
  56. package/lib/loaders/scriptInstrumentLoader.js +13 -5
  57. package/lib/loaders/selectorMappingLoader.js +25 -7
  58. package/lib/loaders/workerLoader.js +29 -13
  59. package/lib/middlewares/HMRMiddleware.js +26 -13
  60. package/lib/middlewares/SSTMiddleware.js +3 -0
  61. package/lib/pluginUtils/configHtmlWebpackPlugins.js +9 -3
  62. package/lib/pluginUtils/getDevPlugins.js +68 -22
  63. package/lib/pluginUtils/getDocsPlugins.js +10 -1
  64. package/lib/pluginUtils/getLibraryImactPlugins.js +5 -4
  65. package/lib/pluginUtils/getLibraryPlugins.js +5 -0
  66. package/lib/pluginUtils/getProdPlugins.js +77 -28
  67. package/lib/pluginUtils/getServerPlugins.js +5 -0
  68. package/lib/pluginUtils/getUMDCSSPlugins.js +7 -0
  69. package/lib/pluginUtils/getUMDComponentPlugins.js +7 -0
  70. package/lib/pluginUtils/index.js +8 -0
  71. package/lib/plugins/CdnChangePlugin.js +14 -0
  72. package/lib/plugins/CleanupStatsPlugin.js +5 -0
  73. package/lib/plugins/EFCPlugin.js +34 -23
  74. package/lib/plugins/EFCPlugin.md +6 -6
  75. package/lib/plugins/EFCTemplatePlugin.js +32 -23
  76. package/lib/plugins/I18NInjectIntoIndexPlugin.js +38 -12
  77. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +17 -12
  78. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +10 -4
  79. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +77 -46
  80. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +59 -44
  81. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +30 -21
  82. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  83. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  84. package/lib/plugins/I18nSplitPlugin/index.js +80 -70
  85. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +12 -2
  86. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +1 -0
  87. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +5 -0
  88. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +6 -0
  89. package/lib/plugins/I18nSplitPlugin/utils/index.js +4 -0
  90. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +20 -2
  91. package/lib/plugins/ManifestPlugin.js +17 -0
  92. package/lib/plugins/ModuleStatsPlugin.js +23 -0
  93. package/lib/plugins/OptimizeJSPlugin.js +7 -0
  94. package/lib/plugins/PublicPathCallbackPlugin.js +10 -0
  95. package/lib/plugins/PublicPathChangePlugin.js +36 -4
  96. package/lib/plugins/ReportGeneratePlugin.js +30 -4
  97. package/lib/plugins/RequireVariablePublicPlugin.js +6 -0
  98. package/lib/plugins/ResourceHintsPlugin.js +27 -20
  99. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +17 -12
  100. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +22 -15
  101. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  102. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +5 -2
  103. package/lib/plugins/ScriptInstrumentPlugin.js +7 -0
  104. package/lib/plugins/SelectorPlugin.js +97 -0
  105. package/lib/plugins/ServiceWorkerPlugin.js +29 -13
  106. package/lib/plugins/ShadowDOMSupportPlugin.js +40 -3
  107. package/lib/plugins/SourceMapHookPlugin.js +9 -0
  108. package/lib/plugins/TPHashMappingPlugin.js +19 -5
  109. package/lib/plugins/UglifyCSSPlugin.js +9 -0
  110. package/lib/plugins/UnusedFilesFindPlugin.js +35 -2
  111. package/lib/plugins/VariableConversionCollector.js +322 -0
  112. package/lib/plugins/composeCommonPlugin.js +30 -0
  113. package/lib/plugins/index.js +19 -0
  114. package/lib/plugins/libraryImpactPlugin.js +32 -0
  115. package/lib/plugins/webpackwatchrunplugin.js +5 -0
  116. package/lib/postcss-plugins/ExcludePlugin.js +4 -0
  117. package/lib/postcss-plugins/RTLSplitPlugin.js +37 -24
  118. package/lib/postcss-plugins/ValueReplacer.js +6 -9
  119. package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +3 -0
  120. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  121. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  122. package/lib/postcss-plugins/hoverActivePlugin.js +69 -33
  123. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +42 -13
  124. package/lib/postcss-plugins/variableModificationPlugin/index.js +216 -141
  125. package/lib/postcss-plugins/variableModifier.js +20 -13
  126. package/lib/schemas/index.js +23 -4
  127. package/lib/servers/clusterHubServer.js +10 -0
  128. package/lib/servers/devBuild.js +24 -13
  129. package/lib/servers/docsServer.js +2 -0
  130. package/lib/servers/docsServerCore.js +21 -0
  131. package/lib/servers/getCliPath.js +9 -0
  132. package/lib/servers/helpServer.js +5 -0
  133. package/lib/servers/httpsOptions.js +4 -0
  134. package/lib/servers/impactServer.js +34 -2
  135. package/lib/servers/mockserver.js +9 -0
  136. package/lib/servers/nowatchserver.js +34 -12
  137. package/lib/servers/scrServer.js +20 -13
  138. package/lib/servers/server.js +35 -7
  139. package/lib/servers/ssServer.js +16 -0
  140. package/lib/sh/pre-commit.sh +34 -34
  141. package/lib/sh/reportPublish.sh +45 -45
  142. package/lib/templates/CoverageScriptTemplate.js +14 -0
  143. package/lib/templates/WMSTemplate.js +12 -6
  144. package/lib/utils/babelPresets.js +2 -0
  145. package/lib/utils/buildstats.html +148 -148
  146. package/lib/utils/clean.js +8 -2
  147. package/lib/utils/copy.js +6 -0
  148. package/lib/utils/copyTimezones.js +8 -0
  149. package/lib/utils/createEventStream.js +4 -0
  150. package/lib/utils/cssClassNameGenerate.js +19 -3
  151. package/lib/utils/cssURLReplacer.js +25 -0
  152. package/lib/utils/dependencyPostPublish.js +9 -0
  153. package/lib/utils/fileUtils.js +26 -0
  154. package/lib/utils/folderIterator.js +10 -0
  155. package/lib/utils/getComponents.js +21 -0
  156. package/lib/utils/getCurrentBranch.js +5 -0
  157. package/lib/utils/getDependenciesImpactList.js +21 -0
  158. package/lib/utils/getHash.js +7 -0
  159. package/lib/utils/getIp.js +2 -0
  160. package/lib/utils/getOptions.js +39 -14
  161. package/lib/utils/getServerURL.js +7 -0
  162. package/lib/utils/index.js +47 -2
  163. package/lib/utils/init.js +1 -0
  164. package/lib/utils/initPreCommitHook.js +29 -6
  165. package/lib/utils/jsonHelper.js +19 -2
  166. package/lib/utils/libraryImpactConfig.js +2 -0
  167. package/lib/utils/lint/addScripts.js +5 -2
  168. package/lib/utils/lint/checkExistingConfig.js +12 -3
  169. package/lib/utils/lint/copyConfigs.js +3 -0
  170. package/lib/utils/lint/index.js +9 -0
  171. package/lib/utils/lint/lintScripts.js +1 -0
  172. package/lib/utils/lint/lintSetup.js +4 -3
  173. package/lib/utils/lint/lintStagedPreCommitHook.js +1 -0
  174. package/lib/utils/lint/question.js +7 -0
  175. package/lib/utils/lintReporter.js +20 -0
  176. package/lib/utils/mailSender.js +7 -0
  177. package/lib/utils/pullOrigin.js +4 -0
  178. package/lib/utils/reinstallDependencies.js +28 -0
  179. package/lib/utils/removeAttributes.js +7 -0
  180. package/lib/utils/repoClone.js +27 -2
  181. package/lib/utils/request.js +12 -0
  182. package/lib/utils/resultSchema.json +73 -73
  183. package/lib/utils/rtl.js +16 -4
  184. package/lib/utils/setEnvVariables.js +2 -0
  185. package/lib/utils/ssTestHack.js +10 -0
  186. package/lib/utils/switchBranch.js +4 -0
  187. package/lib/utils/urlConcat.js +4 -0
  188. package/lib/utils/useExitCleanup.js +10 -9
  189. package/npm8.md +9 -9
  190. package/package.json +146 -146
  191. package/postpublish.js +6 -6
  192. package/templates/app/.eslintrc.js +140 -140
  193. package/templates/app/README.md +12 -12
  194. package/templates/app/app/index.html +24 -24
  195. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  196. package/templates/app/app/properties/i18nkeys.json +3 -3
  197. package/templates/app/docs/all.html +69 -69
  198. package/templates/app/mockapi/index.js +18 -18
  199. package/templates/app/package.json +37 -37
  200. package/templates/app/src/actions/SampleActions/index.js +37 -37
  201. package/templates/app/src/actions/index.js +65 -65
  202. package/templates/app/src/appUrls.js +19 -19
  203. package/templates/app/src/components/Alert/Alert.js +134 -134
  204. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  205. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  206. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  207. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  208. package/templates/app/src/components/Sample/SampleList.js +61 -61
  209. package/templates/app/src/components/Slider/Slider.css +41 -41
  210. package/templates/app/src/components/Slider/Slider.js +55 -55
  211. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  212. package/templates/app/src/containers/AppContainer/index.js +96 -96
  213. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  214. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  215. package/templates/app/src/containers/DevTools/index.js +10 -10
  216. package/templates/app/src/containers/Header/index.js +67 -67
  217. package/templates/app/src/containers/Header/index.module.css +43 -43
  218. package/templates/app/src/containers/Redirect/index.js +63 -63
  219. package/templates/app/src/containers/Redirector/index.js +47 -47
  220. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  221. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  222. package/templates/app/src/historyChange.js +5 -5
  223. package/templates/app/src/index.html +10 -10
  224. package/templates/app/src/index.js +24 -24
  225. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  226. package/templates/app/src/reducers/alertData.js +11 -11
  227. package/templates/app/src/reducers/index.js +6 -6
  228. package/templates/app/src/reducers/samples.js +19 -19
  229. package/templates/app/src/store/configureStore.dev.js +51 -51
  230. package/templates/app/src/store/configureStore.js +5 -5
  231. package/templates/app/src/store/configureStore.prod.js +26 -26
  232. package/templates/app/src/util/Common.js +5 -5
  233. package/templates/app/src/util/RequestAPI.js +132 -132
  234. package/templates/docs/all.html +249 -249
  235. package/templates/docs/component.html +178 -178
  236. package/templates/docs/components.html +221 -221
  237. package/templates/docs/css/b.min.css +6 -6
  238. package/templates/docs/css/component.css +42 -42
  239. package/templates/docs/css/componentTest.css +6 -6
  240. package/templates/docs/css/hopscotch.css +585 -585
  241. package/templates/docs/css/style.css +1022 -1022
  242. package/templates/docs/impactReportTemplate.html +154 -154
  243. package/templates/docs/index.html +1501 -1501
  244. package/templates/docs/js/active-line.js +72 -72
  245. package/templates/docs/js/b.min.js +7 -7
  246. package/templates/docs/js/codemirror.js +9680 -9680
  247. package/templates/docs/js/designTokens.js +334 -334
  248. package/templates/docs/js/j.min.js +4 -4
  249. package/templates/docs/js/javascript.js +874 -874
  250. package/templates/docs/js/matchbrackets.js +145 -145
@@ -0,0 +1,322 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _postcss = _interopRequireDefault(require("postcss"));
9
+
10
+ var _ErrorHandler = require("../postcss-plugins/variableModificationPlugin/ErrorHandler");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ // import { RawSource } from 'webpack-sources';
15
+ const fs = require('fs');
16
+
17
+ const ignoreVals = ['--zd_size', '--zd_font_size', '--size', '--size_'];
18
+
19
+ const {
20
+ errors,
21
+ errTable,
22
+ errHandler
23
+ } = require('../postcss-plugins/variableModificationPlugin/index');
24
+
25
+ const supportedProps = ['font-size', 'margin', 'margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'padding', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right', '^top', '^right', '^bottom', '^left', '^width', 'min-width', 'max-width', '^height', 'min-height', 'max-height', 'text-indent', 'clip', 'flex-basis', 'row-gap', 'gap', 'column-gap', 'flex']; // const avoidProps = [];
26
+ // -- is issue IO --
27
+
28
+ /*
29
+ issues eg :
30
+ issues = ['--zd_size', '--zd_font_size', '--size', '--size_'];
31
+ input :
32
+ --zd_size
33
+ output :
34
+ true
35
+ comment :
36
+ do not execute when --zd_size comes as prop
37
+ */
38
+
39
+ function isIgnoreValuePresent(ignoreVals, prop) {
40
+ let present = false;
41
+ ignoreVals.forEach(issue => {
42
+ if (prop && prop.includes(issue)) {
43
+ present = true;
44
+ }
45
+ });
46
+ return present;
47
+ } // -- to convert the hyphen values to values --
48
+
49
+ /*
50
+ input :
51
+ var(--zdt_uploadlist_default_width)
52
+ output :
53
+ --zdt_uploadlist_default_width
54
+
55
+ comment :
56
+ to make the variable object using the output as key and decl.prop such as font-size as value
57
+ */
58
+
59
+
60
+ function extractVariableName(val) {
61
+ return val.replace(/calc\((.+)\)/gi, '$1').replace(/var\((.+)\)/gi, '$1').replace('-1', '').replace('*', '').replace('\n', '').trim();
62
+ }
63
+
64
+ function rootConvertor(rootOriginal, variables, settingsObject) {
65
+ rootOriginal.walkRules(rule => {
66
+ rule.nodes.forEach((decl, index) => {
67
+ let prevNode = rule.nodes[index - 1];
68
+ let currentNode = rule.nodes[index];
69
+
70
+ if (decl.prop && decl.prop.includes('--')) {
71
+ if (prevNode && prevNode.type === 'comment' && prevNode.text.toLowerCase() === 'variable:ignore') {
72
+ return;
73
+ }
74
+
75
+ if (isIgnoreValuePresent(ignoreVals, decl.prop)) {
76
+ return;
77
+ }
78
+
79
+ if (settingsObject[variables[decl.prop]]) {
80
+ /* if there is no value for property, set it to default so that undefined doesn't get called as key */
81
+ if (!variables[decl.prop]) {
82
+ variables[decl.prop] = 'default';
83
+ }
84
+
85
+ const pxReplacement = settingsObject[variables[decl.prop]].replacements.px;
86
+ let valArr = decl.value.split(' '); // single values are considered in the above array and converted below
87
+
88
+ valArr.forEach((value, index) => {
89
+ if (value.includes('px')) {
90
+ let num = value.replace('px', '');
91
+ valArr[index] = pxReplacement.replace('$$', num);
92
+ }
93
+ });
94
+ currentNode.value = valArr.join(' ');
95
+ }
96
+ }
97
+ });
98
+ });
99
+ return rootOriginal;
100
+ }
101
+
102
+ class VariableConversionCollector {
103
+ constructor(options = {}) {
104
+ this.optimize = options.optimize;
105
+ this.filename = options.cssVariableReplacementConfig;
106
+ }
107
+
108
+ apply(compiler) {
109
+ const variables = {};
110
+ const unassigned = {};
111
+ const rawdata = fs.readFileSync(this.filename);
112
+ const data = JSON.parse(rawdata);
113
+ const {
114
+ settings: settingsObject,
115
+ errorLog: errorLogStatus,
116
+ errorInConsole: errorConsoleStatus,
117
+ errorsAllowed
118
+ } = data; // If theres is no setting for default prop in settingsObject, set one.
119
+
120
+ if (!settingsObject.default) {
121
+ settingsObject.default = {
122
+ allowed: ['px', 'em', 'fit-content', 'auto', '%', 'inherit', '-moz-fit-content', 'vh', '0', 'initial', 'vw'],
123
+ replacements: {
124
+ px: 'var(--zd_size$$)'
125
+ },
126
+ range: {
127
+ start: -99999,
128
+ end: 99999
129
+ }
130
+ };
131
+ }
132
+ /*
133
+ purpose of tap : to create a variable object such as:
134
+ {
135
+ --zdt_uploadlist_default_width : width,
136
+ --zdt_uploadlist_default_height : height,
137
+ }
138
+ which will help in the conversion further
139
+ */
140
+
141
+
142
+ if (fs.existsSync('./variableMapping.json')) {
143
+ const data = JSON.parse(fs.readFileSync('./variableMapping.json', 'utf-8'));
144
+ Object.keys(data).forEach(key => {
145
+ variables[key] = data[key];
146
+ });
147
+ }
148
+
149
+ compiler.hooks.compilation.tap('VariableConversionCollector', compilation => {
150
+ compilation.hooks.optimizeModules.tap('VariableConversionCollector', modules => {
151
+ const mods = modules.filter(x => x.type.includes('css'));
152
+ mods.forEach(module => {
153
+ const rootOriginal = _postcss.default.parse(module.content);
154
+
155
+ const filename = module.issuer.resource;
156
+
157
+ if (!filename.includes('node_modules')) {
158
+ rootOriginal.walkRules(rule => {
159
+ rule.walkDecls(decl => {
160
+ decl.value.split(' ').forEach(val => {
161
+ if (val && val.includes('--') && !new RegExp(ignoreVals.join('|'), 'gi').test(val) && decl.prop) {
162
+ const extractedValue = extractVariableName(val);
163
+
164
+ if (!variables[extractedValue]) {
165
+ variables[extractedValue] = decl.prop;
166
+ } else {
167
+ if (new RegExp(supportedProps.join('|'), 'gi').test(decl.prop)) {
168
+ // console.log(
169
+ // `${extractedValue} : ${variables[extractedValue]} already exists please check!`
170
+ // );
171
+ if (errorsAllowed.MULTIPLE_OCCURANCES) {
172
+ let errObj = {
173
+ decl,
174
+ type: 'MULTIPLE_OCCURANCES',
175
+ filename,
176
+ message: `${extractedValue} : ${variables[extractedValue]} already exists please check!`
177
+ };
178
+ errHandler.errorTable.push(errObj);
179
+ errHandler.errorFunction(errObj);
180
+ }
181
+ }
182
+ }
183
+ } else {
184
+ // console.log(decl.prop);
185
+ if (/^--/gi.test(decl.prop) && new RegExp(supportedProps.join('|'), 'gi').test(decl.prop) && val.trim() !== '' && !variables[decl.prop]) {
186
+ // console.log(
187
+ // `${decl.prop} : ${variables[decl.prop]},`
188
+ // );
189
+ unassigned[decl.prop] = variables[decl.prop];
190
+ }
191
+ }
192
+ });
193
+ });
194
+ });
195
+ /*
196
+ current value example:
197
+ {
198
+ --zdt_uploadlist_default_width : --zd_upload_width,
199
+ --zd_upload_width : width
200
+ }
201
+ expected value :
202
+ {
203
+ --zdt_uploadlist_default_width : width,
204
+ --zd_upload_width : width
205
+ }
206
+
207
+ conversion is done in the while loop below
208
+ */
209
+
210
+ Object.keys(variables).forEach(key => {
211
+ while (variables[variables[key]]) {
212
+ variables[key] = variables[variables[key]];
213
+ }
214
+ });
215
+ }
216
+ });
217
+ }); // -- conversion for the root using rootConvertor --
218
+
219
+ /*
220
+ input :
221
+ .a{
222
+ padding : 20px
223
+ }
224
+ output :
225
+ // on settingObject file :
226
+ { padding : { replacements : { px : 'zd_size$$' }}}
227
+ .a{
228
+ padding : zd_size20;
229
+ }
230
+ */
231
+
232
+ compilation.hooks.optimizeModules.tap('VariableConversionCollector', modules => {
233
+ const mods = modules.filter(x => x.type.includes('css'));
234
+ mods.forEach(module => {
235
+ const rootOriginal = _postcss.default.parse(module.content);
236
+
237
+ module.content = rootConvertor(rootOriginal, variables, settingsObject).toString();
238
+ });
239
+ });
240
+ });
241
+ /*
242
+ purpose of tap : to display the errors encountered so far
243
+ input :
244
+ all css files
245
+ output :
246
+ all errors that are present in the errTable arr
247
+ */
248
+
249
+ compiler.hooks.afterEmit.tap('error-display', () => {
250
+ if (Object.keys(unassigned).length > 0) {
251
+ console.log();
252
+ console.log(unassigned);
253
+ console.log();
254
+ throw new Error('^^^ Variables above have not been assigned! ^^^');
255
+ }
256
+
257
+ let avlTypes = new Set([]);
258
+ let srtArr = errTable.sort((a, b) => {
259
+ avlTypes.add(a.type);
260
+ avlTypes.add(b.type);
261
+
262
+ if (a.type < b.type) {
263
+ return -1;
264
+ }
265
+ }); // variable constructed now to be written in a json file
266
+ // const newVars = Object.keys(variables)
267
+ // //Filter Object with key contanis "NAME"
268
+ // .filter(key => variables[key].includes('--'))
269
+ // .reduce(
270
+ // (obj, key) =>
271
+ // Object.assign(obj, {
272
+ // [key]: variables[key]
273
+ // }),
274
+ // {}
275
+ // );
276
+ // console.log('new variables: ', newVars);
277
+ // try {
278
+ // fs.writeFileSync('./variableMapping.json', JSON.stringify(variables));
279
+ // } catch (err) {
280
+ // console.log(err);
281
+ // }
282
+ // fs.writeFile('./variableMapping.json', JSON.stringify(variables), err => {
283
+ // if (err) {
284
+ // throw err;
285
+ // }
286
+ // console.log('variable mapping file generated.');
287
+ // });
288
+
289
+ if (errorConsoleStatus) {
290
+ const errorHandler = new _ErrorHandler.ErrorHandler();
291
+ avlTypes.forEach(type => {
292
+ console.log('---------------------------------------------------------------------------------------------------------------------------');
293
+ console.log(`Error Type : ${type}`);
294
+ console.log('---------------------------------------------------------------------------------------------------------------------------');
295
+ srtArr.forEach(err => {
296
+ if (err.decl.prop && err.decl.value && err.type === type) {
297
+ errorHandler.printError(err);
298
+ }
299
+ });
300
+ console.log('---------------------------------------------------------------------------------------------------------------------------');
301
+ });
302
+ }
303
+
304
+ if (errorLogStatus) {
305
+ fs.writeFileSync('./css_error.log', '');
306
+ console.log('writing to logFile...');
307
+
308
+ if (errors.length > 0) {
309
+ errors.forEach((err, index) => {
310
+ if (errTable[index].decl.prop && errTable[index].decl.value) {
311
+ fs.appendFileSync('./css_error.log', err);
312
+ }
313
+ });
314
+ }
315
+ }
316
+ });
317
+ }
318
+
319
+ }
320
+
321
+ var _default = VariableConversionCollector;
322
+ exports.default = _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _postcss = _interopRequireDefault(require("postcss"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ class ComposeCommonPlugin {
13
+ constructor(options = {}) {
14
+ this.optimize = options.optimize;
15
+ }
16
+
17
+ apply(compiler) {
18
+ compiler.hooks.compilation.tap('OptimizeJSPlugin', compilation => {
19
+ compilation.hooks.optimizeModules.tap('OptimizeMods', modules => {
20
+ modules.forEach(module => {
21
+ console.log(module);
22
+ });
23
+ });
24
+ });
25
+ }
26
+
27
+ }
28
+
29
+ var _default = ComposeCommonPlugin;
30
+ exports.default = _default;
@@ -111,22 +111,41 @@ Object.defineProperty(exports, "UnusedFilesFindPlugin", {
111
111
  return _UnusedFilesFindPlugin.default;
112
112
  }
113
113
  });
114
+
114
115
  var _ModuleStatsPlugin = _interopRequireDefault(require("./ModuleStatsPlugin"));
116
+
115
117
  var _SourceMapHookPlugin = _interopRequireDefault(require("./SourceMapHookPlugin"));
118
+
116
119
  var _UnusedFilesFindPlugin = _interopRequireDefault(require("./UnusedFilesFindPlugin"));
120
+
117
121
  var _ScriptInstrumentPlugin = _interopRequireDefault(require("./ScriptInstrumentPlugin"));
122
+
118
123
  var _PublicPathChangePlugin = _interopRequireDefault(require("./PublicPathChangePlugin"));
124
+
119
125
  var _OptimizeJSPlugin = _interopRequireDefault(require("./OptimizeJSPlugin"));
126
+
120
127
  var _ResourceHintsPlugin = _interopRequireDefault(require("./ResourceHintsPlugin"));
128
+
121
129
  var _UglifyCSSPlugin = _interopRequireDefault(require("./UglifyCSSPlugin"));
130
+
122
131
  var _ManifestPlugin = _interopRequireDefault(require("./ManifestPlugin"));
132
+
123
133
  var _CleanupStatsPlugin = _interopRequireDefault(require("./CleanupStatsPlugin"));
134
+
124
135
  var _EFCPlugin = _interopRequireDefault(require("./EFCPlugin"));
136
+
125
137
  var _PublicPathCallbackPlugin = _interopRequireDefault(require("./PublicPathCallbackPlugin"));
138
+
126
139
  var _I18NInjectIntoIndexPlugin = _interopRequireDefault(require("./I18NInjectIntoIndexPlugin"));
140
+
127
141
  var _ReportGeneratePlugin = _interopRequireDefault(require("./ReportGeneratePlugin"));
142
+
128
143
  var _ShadowDOMSupportPlugin = _interopRequireDefault(require("./ShadowDOMSupportPlugin"));
144
+
129
145
  var _ServiceWorkerPlugin = _interopRequireDefault(require("./ServiceWorkerPlugin"));
146
+
130
147
  var _TPHashMappingPlugin = _interopRequireDefault(require("./TPHashMappingPlugin"));
148
+
131
149
  var _CdnChangePlugin = _interopRequireDefault(require("./CdnChangePlugin"));
150
+
132
151
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -4,12 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _path = _interopRequireDefault(require("path"));
9
+
8
10
  var _fs = _interopRequireDefault(require("fs"));
11
+
9
12
  var _webpackSources = require("webpack-sources");
13
+
10
14
  var _jsonHelper = require("../utils/jsonHelper");
15
+
11
16
  var _utils = require("../utils");
17
+
12
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
13
20
  let resultFileName = `${process.cwd()}/result.json`;
14
21
  let options = (0, _utils.getOptions)();
15
22
  let {
@@ -24,21 +31,27 @@ let {
24
31
  (0, _jsonHelper.jsonHelper)(resultFileName, 'tests.libraryImpactOnSource.compareBranch', referBranch);
25
32
  (0, _jsonHelper.jsonHelper)(resultFileName, 'tests.libraryImpactOnSource.TestBranch', currentBranch);
26
33
  (0, _jsonHelper.jsonHelper)(resultFileName, 'tests.libraryImpactOnSource.isExecuted', true);
34
+
27
35
  let isValidModule = name => {
28
36
  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')) {
29
37
  return true;
30
38
  }
39
+
31
40
  return !name.includes('index.js') && !name.endsWith('.css') && !name.endsWith('.png') && !name.includes('node_modules') && name.includes('src');
32
41
  };
42
+
33
43
  let getModuleName = modulePath => {
34
44
  let [name] = _path.default.parse(modulePath).name.split('.');
45
+
35
46
  if (modulePath.includes(`@zohodesk${_path.default.sep}components`)) {
36
47
  name = `@zohodesk/components/${name}`;
37
48
  } else if (modulePath.includes(`@zohodesk${_path.default.sep}dot`)) {
38
49
  name = `@zohodesk/dot/${name}`;
39
50
  }
51
+
40
52
  return name;
41
53
  };
54
+
42
55
  class LibraryImpactPlugin {
43
56
  constructor(options = {}) {
44
57
  this.options = options;
@@ -47,10 +60,12 @@ class LibraryImpactPlugin {
47
60
  this.bottomHtml = '</div> <script type="text/javascript"> const details = document.querySelectorAll("details"); details.forEach((targetDetail) => { targetDetail.addEventListener("click", () => { // Close all the details that are not targetDetail. details.forEach((detail) => { if (detail !== targetDetail) { detail.removeAttribute("open"); } }); }); }); </script></body></html>';
48
61
  this.resultJson = {};
49
62
  }
63
+
50
64
  apply(compiler) {
51
65
  let loggedInfo = false;
52
66
  compiler.hooks.beforeCompile.tap('LibraryImpactPlugin', () => {
53
67
  (0, _jsonHelper.jsonHelper)(resultFileName, 'tests.libraryImpactOnSource.startTime', Date.now());
68
+
54
69
  if (!loggedInfo) {
55
70
  (0, _utils.log)('\x1b[33m%s\x1b[0m', '************************************************************ \n ');
56
71
  (0, _utils.log)('\x1b[5m\x1b[44m%s\x1b[0m', 'Finding Impacted Source Files Please Wait ...');
@@ -63,11 +78,13 @@ class LibraryImpactPlugin {
63
78
  let {
64
79
  modules
65
80
  } = stats;
81
+
66
82
  for (let module of modules) {
67
83
  let {
68
84
  name,
69
85
  reasons
70
86
  } = module;
87
+
71
88
  if (isValidModule(name)) {
72
89
  let references = new Set();
73
90
  let referencedby = new Set();
@@ -76,6 +93,7 @@ class LibraryImpactPlugin {
76
93
  compilation.modules.forEach(module => {
77
94
  module.reasons.forEach(reason => {
78
95
  let exportedValue = reason.dependency;
96
+
79
97
  if (exportedValue.type === 'harmony export imported specifier') {
80
98
  if (exportedValue.module.userRequest.includes(name.replace('.', ''))) {
81
99
  docsName = exportedValue.name;
@@ -84,29 +102,35 @@ class LibraryImpactPlugin {
84
102
  });
85
103
  });
86
104
  let currentModuleName = name;
105
+
87
106
  if (Array.isArray(reasons)) {
88
107
  for (let reason of reasons) {
89
108
  let {
90
109
  moduleName
91
110
  } = reason;
111
+
92
112
  if (isValidModule(moduleName)) {
93
113
  let reasonedModuleName = moduleName;
94
114
  referencedby.add(reasonedModuleName);
95
115
  }
96
116
  }
97
117
  }
118
+
98
119
  for (let subModule of modules) {
99
120
  let {
100
121
  name: subModuleName,
101
122
  reasons
102
123
  } = subModule;
124
+
103
125
  if (isValidModule(subModuleName)) {
104
126
  let currentModuleName = subModuleName;
127
+
105
128
  if (Array.isArray(reasons)) {
106
129
  for (let reason of reasons) {
107
130
  let {
108
131
  moduleName: reasonedModuleName
109
132
  } = reason;
133
+
110
134
  if (name === reasonedModuleName) {
111
135
  references.add(currentModuleName);
112
136
  }
@@ -114,6 +138,7 @@ class LibraryImpactPlugin {
114
138
  }
115
139
  }
116
140
  }
141
+
117
142
  results[currentModuleName] = {
118
143
  name: currentModuleName,
119
144
  references: Array.from(references),
@@ -123,9 +148,11 @@ class LibraryImpactPlugin {
123
148
  };
124
149
  }
125
150
  }
151
+
126
152
  (0, _utils.getDependenciesImpactList)(currentBranch, referBranch, tokenGit, serviceName).then(impactedList => {
127
153
  this.resultJson = (0, _utils.getLibraryConflict)(JSON.stringify(results), impactedList, changesOnly);
128
154
  (0, _jsonHelper.jsonHelper)(resultFileName, 'tests.libraryImpactOnSource.result', this.resultJson);
155
+
129
156
  if (this.resultJson.result.status) {
130
157
  (0, _utils.log)(this.resultJson.response);
131
158
  this.resultJson.response.forEach(fileObject => {
@@ -140,12 +167,15 @@ class LibraryImpactPlugin {
140
167
  (0, _utils.log)(this.resultJson.result.message);
141
168
  this.topHtml = this.topHtml + '<div style="font-size: xxx-large; text-align: center; padding-top: 50px;"> ' + this.resultJson.result.message + '</div>';
142
169
  }
170
+
143
171
  if (!_fs.default.existsSync('./coverageTest')) {
144
172
  _fs.default.mkdirSync('./coverageTest');
173
+
145
174
  _fs.default.writeFileSync('./coverageTest/impactLibrary.html', this.topHtml + this.bottomHtml, 'utf8');
146
175
  } else {
147
176
  _fs.default.writeFileSync('./coverageTest/impactLibrary.html', this.topHtml + this.bottomHtml, 'utf8');
148
177
  }
178
+
149
179
  (0, _jsonHelper.jsonHelper)(resultFileName, 'tests.libraryImpactOnSource.endTime', Date.now());
150
180
  });
151
181
  });
@@ -154,5 +184,7 @@ class LibraryImpactPlugin {
154
184
  (0, _utils.log)('Compilation finished!!!');
155
185
  });
156
186
  }
187
+
157
188
  }
189
+
158
190
  exports.default = LibraryImpactPlugin;
@@ -4,12 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _utils = require("../utils");
9
+
8
10
  class WebpackWatchRunPlugin {
9
11
  apply(compiler) {
10
12
  compiler.hooks.watchRun.tap('WatchRun', comp => {
11
13
  const changedTimes = comp.watchFileSystem.watcher.mtimes;
12
14
  const changedFiles = Object.keys(changedTimes).map(file => `\n ${file}`).join('');
15
+
13
16
  if (changedFiles.length) {
14
17
  (0, _utils.log)('====================================');
15
18
  (0, _utils.log)('NEW BUILD FILES CHANGED:', changedFiles);
@@ -17,5 +20,7 @@ class WebpackWatchRunPlugin {
17
20
  }
18
21
  });
19
22
  }
23
+
20
24
  }
25
+
21
26
  exports.default = WebpackWatchRunPlugin;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  var _postcss = _interopRequireDefault(require("postcss"));
4
+
4
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
+
5
7
  module.exports = _postcss.default.plugin('postcss-exclude-files', opts => {
6
8
  const {
7
9
  plugins
@@ -9,8 +11,10 @@ module.exports = _postcss.default.plugin('postcss-exclude-files', opts => {
9
11
  return (root, result) => {
10
12
  const inputFile = root.source.input.file;
11
13
  let isIgnoredFile = opts.ignore.some(file => inputFile.indexOf(file) !== -1);
14
+
12
15
  if (!isIgnoredFile) {
13
16
  const handler = response => response.messages.forEach(msg => result.messages.push(msg));
17
+
14
18
  return (0, _postcss.default)(plugins).process(root, {
15
19
  from: undefined
16
20
  }).then(handler);