@zohodesk/react-cli 1.0.3-beta.1 → 1.0.3-exp.3

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 (139) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -180
  3. package/.prettierrc +6 -6
  4. package/Changelog.md +1019 -1019
  5. package/README.md +1197 -1189
  6. package/bin/cli.js +489 -483
  7. package/docs/ComposeMinification.md +13 -0
  8. package/docs/CustomChunks.md +26 -26
  9. package/docs/DevServerPort.md +39 -39
  10. package/docs/DevStart.md +18 -18
  11. package/docs/HoverActive.md +12 -12
  12. package/docs/InstallNode.md +28 -28
  13. package/docs/SelectorWeight.md +8 -8
  14. package/docs/TODOS.md +10 -10
  15. package/docs/ValueReplacer.md +60 -60
  16. package/docs/VariableConversion.md +729 -729
  17. package/docs/patternFiltering.md +27 -0
  18. package/docs/warnings_while_install.txt +35 -35
  19. package/files/eslintrc.js +62 -62
  20. package/files/prettierrc.js +3 -3
  21. package/lib/common/buildEs.js +12 -0
  22. package/lib/configs/webpack.css.umd.config.js +4 -4
  23. package/lib/configs/webpack.dev.config.js +6 -0
  24. package/lib/configs/webpack.docs.config.js +4 -0
  25. package/lib/configs/webpack.impact.config.js +4 -0
  26. package/lib/configs/webpack.prod.config.js +6 -0
  27. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  28. package/lib/loaderUtils/getCSSLoaders.js +80 -46
  29. package/lib/loaderUtils/tests/windowsModification.test.js +10 -0
  30. package/lib/loaderUtils/windowsModification.js +6 -1
  31. package/lib/loaders/composeLoader.js +172 -0
  32. package/lib/loaders/workerLoader.js +9 -9
  33. package/lib/pluginUtils/getDevPlugins.js +18 -8
  34. package/lib/pluginUtils/getProdPlugins.js +16 -8
  35. package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
  36. package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
  37. package/lib/plugins/CustomAttributePlugin.md +35 -35
  38. package/lib/plugins/EFCPlugin.md +6 -6
  39. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  40. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  41. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  42. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  43. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  44. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  45. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  46. package/lib/plugins/{UglifyCSSPlugin.js → MinifyPlugin.js} +3 -3
  47. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  48. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  49. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  50. package/lib/plugins/SelectorPlugin.js +64 -40
  51. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  52. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  53. package/lib/plugins/VariableConversionCollector.js +94 -84
  54. package/lib/plugins/index.js +7 -7
  55. package/lib/plugins/utils/classHandling.js +20 -0
  56. package/lib/plugins/utils/fileHandling.js +107 -0
  57. package/lib/plugins/utils/tests/fileHandling.test.js +30 -0
  58. package/lib/postcss-plugins/EmptyPlugin.js +8 -0
  59. package/lib/postcss-plugins/ExcludePlugin.js +1 -1
  60. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
  61. package/lib/postcss-plugins/ValueReplacer.js +5 -14
  62. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  63. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  64. package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
  65. package/lib/postcss-plugins/variableModificationPlugin/index.js +1 -19
  66. package/lib/schemas/index.js +31 -3
  67. package/lib/servers/server.js +2 -2
  68. package/lib/sh/pre-commit.sh +34 -34
  69. package/lib/sh/reportPublish.sh +45 -45
  70. package/lib/utils/buildstats.html +148 -148
  71. package/lib/utils/cssClassNameGenerate.js +40 -13
  72. package/lib/utils/getOptions.js +16 -0
  73. package/lib/utils/resultSchema.json +73 -73
  74. package/lib/utils/variableConverter.js +162 -0
  75. package/npm-shrinkwrap.json +14407 -14407
  76. package/npm8.md +9 -9
  77. package/package.json +122 -121
  78. package/postpublish.js +8 -8
  79. package/templates/app/.eslintrc.js +140 -140
  80. package/templates/app/README.md +12 -12
  81. package/templates/app/app/index.html +24 -24
  82. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  83. package/templates/app/app/properties/i18nkeys.json +3 -3
  84. package/templates/app/docs/all.html +69 -69
  85. package/templates/app/mockapi/index.js +18 -18
  86. package/templates/app/package.json +37 -37
  87. package/templates/app/src/actions/SampleActions/index.js +37 -37
  88. package/templates/app/src/actions/index.js +65 -65
  89. package/templates/app/src/appUrls.js +19 -19
  90. package/templates/app/src/components/Alert/Alert.js +134 -134
  91. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  92. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  93. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  94. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  95. package/templates/app/src/components/Sample/SampleList.js +61 -61
  96. package/templates/app/src/components/Slider/Slider.css +41 -41
  97. package/templates/app/src/components/Slider/Slider.js +55 -55
  98. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  99. package/templates/app/src/containers/AppContainer/index.js +96 -96
  100. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  101. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  102. package/templates/app/src/containers/DevTools/index.js +10 -10
  103. package/templates/app/src/containers/Header/index.js +67 -67
  104. package/templates/app/src/containers/Header/index.module.css +43 -43
  105. package/templates/app/src/containers/Redirect/index.js +63 -63
  106. package/templates/app/src/containers/Redirector/index.js +47 -47
  107. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  108. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  109. package/templates/app/src/historyChange.js +5 -5
  110. package/templates/app/src/index.html +10 -10
  111. package/templates/app/src/index.js +24 -24
  112. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  113. package/templates/app/src/reducers/alertData.js +11 -11
  114. package/templates/app/src/reducers/index.js +6 -6
  115. package/templates/app/src/reducers/samples.js +19 -19
  116. package/templates/app/src/store/configureStore.dev.js +51 -51
  117. package/templates/app/src/store/configureStore.js +5 -5
  118. package/templates/app/src/store/configureStore.prod.js +26 -26
  119. package/templates/app/src/util/Common.js +5 -5
  120. package/templates/app/src/util/RequestAPI.js +132 -132
  121. package/templates/docs/all.html +249 -249
  122. package/templates/docs/component.html +178 -178
  123. package/templates/docs/components.html +221 -221
  124. package/templates/docs/css/b.min.css +6 -6
  125. package/templates/docs/css/component.css +42 -42
  126. package/templates/docs/css/componentTest.css +6 -6
  127. package/templates/docs/css/hopscotch.css +585 -585
  128. package/templates/docs/css/style.css +1022 -1022
  129. package/templates/docs/impactReportTemplate.html +154 -154
  130. package/templates/docs/index.html +1501 -1501
  131. package/templates/docs/js/active-line.js +72 -72
  132. package/templates/docs/js/b.min.js +7 -7
  133. package/templates/docs/js/codemirror.js +9680 -9680
  134. package/templates/docs/js/designTokens.js +334 -334
  135. package/templates/docs/js/j.min.js +4 -4
  136. package/templates/docs/js/javascript.js +874 -874
  137. package/templates/docs/js/matchbrackets.js +145 -145
  138. package/lib/plugins/composeCommonPlugin.js +0 -30
  139. package/lib/postcss-plugins/variableModifier.js +0 -210
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ var _windowsModification = require("../loaderUtils/windowsModification");
4
+
5
+ var _fileHandling = require("../plugins/utils/fileHandling");
6
+
7
+ var _getOptions = _interopRequireDefault(require("./getOptions"));
8
+
9
+ var _folderIterator = _interopRequireDefault(require("./folderIterator"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ const postcss = require('postcss');
14
+
15
+ const path = require('path');
16
+
17
+ const fs = require('fs');
18
+
19
+ const postcssVariableConvertor = require('../postcss-plugins/variableModificationPlugin/index').plugin;
20
+
21
+ let cwd = process.cwd();
22
+ let src = path.join(cwd, process.argv[2]);
23
+ let dist = path.join(cwd, process.argv[3]);
24
+ const options = (0, _getOptions.default)();
25
+ const ignoreVals = ['--zd_size', '--zd_font_size', '--size', '--size_'];
26
+
27
+ function extractVariableName(val) {
28
+ return val.replace(/calc\((.+)\)/gi, '$1').replace(/var\((.+)\)/gi, '$1').replace('-1', '').replace('*', '').replace('\n', '').trim();
29
+ }
30
+
31
+ function isIgnoreValuePresent(ignoreVals, prop) {
32
+ let present = false;
33
+ ignoreVals.forEach(issue => {
34
+ if (prop && prop.includes(issue)) {
35
+ present = true;
36
+ }
37
+ });
38
+ return present;
39
+ }
40
+
41
+ function variableConverter(rootOriginal, variables, settingsObject) {
42
+ rootOriginal.walkRules(rule => {
43
+ rule.nodes.forEach((decl, index) => {
44
+ const prevNode = rule.nodes[index - 1];
45
+ const currentNode = rule.nodes[index];
46
+
47
+ if (decl.prop && decl.prop.includes('--')) {
48
+ if (prevNode && prevNode.type === 'comment' && prevNode.text.toLowerCase() === 'variable:ignore') {
49
+ return;
50
+ }
51
+
52
+ if (isIgnoreValuePresent(ignoreVals, decl.prop)) {
53
+ return;
54
+ }
55
+
56
+ if (settingsObject[variables[decl.prop]]) {
57
+ /* if there is no value for property, set it to default so that undefined doesn't get called as key */
58
+ if (!variables[decl.prop]) {
59
+ variables[decl.prop] = 'default';
60
+ }
61
+
62
+ const pxReplacement = settingsObject[variables[decl.prop]].replacements.px;
63
+ const valArr = decl.value.split(' '); // single values are considered in the above array and converted below
64
+
65
+ valArr.forEach((value, index) => {
66
+ if (value.includes('px')) {
67
+ const num = value.replace('px', '');
68
+ valArr[index] = pxReplacement.replace('$$', num);
69
+ }
70
+ });
71
+ currentNode.value = valArr.join(' ');
72
+ }
73
+ }
74
+ });
75
+ });
76
+ return rootOriginal;
77
+ }
78
+
79
+ function watchHandler(fromPath, toPath) {
80
+ let css = fs.readFileSync(fromPath, 'utf-8'); // console.log(css);
81
+
82
+ const {
83
+ css: cssOptions,
84
+ app: appOptions
85
+ } = options; // console.log(cssOptions, appOptions);
86
+
87
+ const {
88
+ cssVariableReplacementConfig: cssVariableConfigFilePath,
89
+ patterns: cssPatterns
90
+ } = cssOptions;
91
+ const {
92
+ cssVariableReplacementConfig: appVariableConfigFilePath,
93
+ patterns: appPatterns
94
+ } = appOptions;
95
+ const cssVariableOptions = cssVariableConfigFilePath && cssVariableConfigFilePath !== '' ? cssVariableConfigFilePath : appVariableConfigFilePath;
96
+ const filterArr = cssOptions && cssPatterns && cssPatterns.cssVariableReplacement && cssPatterns.cssVariableReplacement !== {} ? cssPatterns.cssVariableReplacement : appPatterns.cssVariableReplacement;
97
+ const rootOriginal = postcss.parse(css);
98
+ const variables = {}; // const unassigned = {};
99
+
100
+ const rawdata = fs.readFileSync(cssVariableOptions);
101
+ const data = JSON.parse(rawdata);
102
+ const {
103
+ settings: settingsObject // errorLog: errorLogStatus,
104
+ // errorInConsole: errorConsoleStatus,
105
+ // errorsAllowed,
106
+ // strictMode
107
+
108
+ } = data;
109
+ const oldCode = rootOriginal.toString();
110
+ rootOriginal.walkRules(rule => {
111
+ rule.walkDecls(decl => {
112
+ decl.value.split(' ').forEach(val => {
113
+ if (val && val.includes('--') && !new RegExp(ignoreVals.join('|'), 'gi').test(val) && decl.prop) {
114
+ const extractedValue = extractVariableName(val);
115
+
116
+ if (!variables[extractedValue]) {
117
+ variables[extractedValue] = decl.prop;
118
+ }
119
+ }
120
+ });
121
+ });
122
+ });
123
+ const strArray = (0, _windowsModification.windowsModificationFile)(process.cwd()).split('\\');
124
+ const lastElem = strArray[strArray.length - 1].toString();
125
+
126
+ if (!(0, _fileHandling.isFileNameMatchingPluginPattern)({
127
+ filename: fromPath,
128
+ filterArr,
129
+ rootDir: lastElem
130
+ })) {
131
+ return;
132
+ }
133
+
134
+ const convertedCode = variableConverter(rootOriginal, variables, settingsObject).toString();
135
+
136
+ if (convertedCode.trim() !== '') {
137
+ fs.writeFileSync(fromPath, convertedCode);
138
+ } // console.log(convertedCode);
139
+
140
+
141
+ postcss([postcssVariableConvertor(cssVariableOptions)]).process(css, {
142
+ from: fromPath,
143
+ to: toPath
144
+ }).then(result => {
145
+ fs.writeFileSync(toPath, result.css);
146
+
147
+ if (result.map) {
148
+ fs.writeFileSync(`${toPath}.map`, result.map);
149
+ }
150
+ }).then(() => {
151
+ fs.writeFileSync(fromPath, oldCode);
152
+ }); // console.log(variableOptions);
153
+ }
154
+
155
+ (0, _folderIterator.default)(src, dist, ['.css'], false, (fromPath, toPath) => {
156
+ // console.log(fromPath, toPath);
157
+ watchHandler(fromPath, toPath);
158
+ }); // if (canWacth) {
159
+ // useExitCleanup(() => {
160
+ // fs.unwatchFile(src, watchHandler);
161
+ // });
162
+ // }