@zohodesk/react-cli 1.0.2 → 1.0.3-exp.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 (155) 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 +1209 -1165
  6. package/bin/cli.js +489 -483
  7. package/docs/ComposeMinification.md +14 -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/warnings_while_install.txt +35 -35
  18. package/files/eslintrc.js +62 -62
  19. package/files/prettierrc.js +3 -3
  20. package/lib/common/buildEs.js +12 -0
  21. package/lib/common/testPattern.js +0 -2
  22. package/lib/common/valueReplacer.js +1 -3
  23. package/lib/configs/resolvers.js +14 -3
  24. package/lib/configs/webpack.css.umd.config.js +4 -4
  25. package/lib/configs/webpack.dev.config.js +6 -0
  26. package/lib/configs/webpack.docs.config.js +4 -0
  27. package/lib/configs/webpack.impact.config.js +4 -0
  28. package/lib/configs/webpack.prod.config.js +6 -0
  29. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  30. package/lib/loaderUtils/getCSSLoaders.js +78 -49
  31. package/lib/loaderUtils/tests/windowsModification.test.js +10 -0
  32. package/lib/loaderUtils/windowsModification.js +6 -1
  33. package/lib/loaders/composeLoader.js +172 -0
  34. package/lib/loaders/selectorMappingLoader.js +9 -9
  35. package/lib/loaders/workerLoader.js +9 -9
  36. package/lib/logger.js +20 -0
  37. package/lib/pluginUtils/getDevPlugins.js +23 -8
  38. package/lib/pluginUtils/getProdPlugins.js +20 -8
  39. package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
  40. package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
  41. package/lib/plugins/CustomAttributePlugin.js +82 -0
  42. package/lib/plugins/CustomAttributePlugin.md +35 -0
  43. package/lib/plugins/EFCPlugin.js +9 -9
  44. package/lib/plugins/EFCPlugin.md +6 -6
  45. package/lib/plugins/EFCTemplatePlugin.js +10 -12
  46. package/lib/plugins/I18NInjectIntoIndexPlugin.js +12 -13
  47. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +2 -3
  48. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  49. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  50. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +10 -15
  51. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  52. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  53. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  54. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +8 -8
  55. package/lib/plugins/{UglifyCSSPlugin.js → MinifyPlugin.js} +3 -3
  56. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  57. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  58. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  59. package/lib/plugins/SelectorPlugin.js +66 -48
  60. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  61. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  62. package/lib/plugins/VariableConversionCollector.js +94 -88
  63. package/lib/plugins/index.js +7 -7
  64. package/lib/plugins/utils/classHandling.js +20 -0
  65. package/lib/plugins/utils/fileHandling.js +107 -0
  66. package/lib/plugins/utils/tests/fileHandling.test.js +30 -0
  67. package/lib/postcss-plugins/EmptyPlugin.js +8 -0
  68. package/lib/postcss-plugins/ExcludePlugin.js +1 -1
  69. package/lib/postcss-plugins/IncludePlugin.js +0 -1
  70. package/lib/postcss-plugins/RTLSplitPlugin.js +14 -20
  71. package/lib/postcss-plugins/ValueReplacer.js +2 -13
  72. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  73. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  74. package/lib/postcss-plugins/hoverActivePlugin.js +3 -9
  75. package/lib/postcss-plugins/variableModificationPlugin/index.js +2 -21
  76. package/lib/schemas/index.js +39 -4
  77. package/lib/servers/devBuild.js +13 -11
  78. package/lib/servers/httpsOptions.js +12 -13
  79. package/lib/servers/nowatchserver.js +5 -3
  80. package/lib/servers/requireLocalOrGlobal.js +61 -0
  81. package/lib/servers/server.js +3 -5
  82. package/lib/sh/pre-commit.sh +34 -34
  83. package/lib/sh/reportPublish.sh +45 -45
  84. package/lib/utils/buildstats.html +148 -148
  85. package/lib/utils/cssClassNameGenerate.js +38 -12
  86. package/lib/utils/getOptions.js +9 -0
  87. package/lib/utils/resultSchema.json +73 -73
  88. package/lib/utils/variableConvertor.js +159 -0
  89. package/npm8.md +9 -9
  90. package/package-lock.json +14412 -0
  91. package/package.json +121 -120
  92. package/postpublish.js +8 -8
  93. package/templates/app/.eslintrc.js +140 -140
  94. package/templates/app/README.md +12 -12
  95. package/templates/app/app/index.html +24 -24
  96. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  97. package/templates/app/app/properties/i18nkeys.json +3 -3
  98. package/templates/app/docs/all.html +69 -69
  99. package/templates/app/mockapi/index.js +18 -18
  100. package/templates/app/package.json +37 -37
  101. package/templates/app/src/actions/SampleActions/index.js +37 -37
  102. package/templates/app/src/actions/index.js +65 -65
  103. package/templates/app/src/appUrls.js +19 -19
  104. package/templates/app/src/components/Alert/Alert.js +134 -134
  105. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  106. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  107. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  108. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  109. package/templates/app/src/components/Sample/SampleList.js +61 -61
  110. package/templates/app/src/components/Slider/Slider.css +41 -41
  111. package/templates/app/src/components/Slider/Slider.js +55 -55
  112. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  113. package/templates/app/src/containers/AppContainer/index.js +96 -96
  114. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  115. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  116. package/templates/app/src/containers/DevTools/index.js +10 -10
  117. package/templates/app/src/containers/Header/index.js +67 -67
  118. package/templates/app/src/containers/Header/index.module.css +43 -43
  119. package/templates/app/src/containers/Redirect/index.js +63 -63
  120. package/templates/app/src/containers/Redirector/index.js +47 -47
  121. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  122. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  123. package/templates/app/src/historyChange.js +5 -5
  124. package/templates/app/src/index.html +10 -10
  125. package/templates/app/src/index.js +24 -24
  126. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  127. package/templates/app/src/reducers/alertData.js +11 -11
  128. package/templates/app/src/reducers/index.js +6 -6
  129. package/templates/app/src/reducers/samples.js +19 -19
  130. package/templates/app/src/store/configureStore.dev.js +51 -51
  131. package/templates/app/src/store/configureStore.js +5 -5
  132. package/templates/app/src/store/configureStore.prod.js +26 -26
  133. package/templates/app/src/util/Common.js +5 -5
  134. package/templates/app/src/util/RequestAPI.js +132 -132
  135. package/templates/docs/all.html +249 -249
  136. package/templates/docs/component.html +178 -178
  137. package/templates/docs/components.html +221 -221
  138. package/templates/docs/css/b.min.css +6 -6
  139. package/templates/docs/css/component.css +42 -42
  140. package/templates/docs/css/componentTest.css +6 -6
  141. package/templates/docs/css/hopscotch.css +585 -585
  142. package/templates/docs/css/style.css +1022 -1022
  143. package/templates/docs/impactReportTemplate.html +154 -154
  144. package/templates/docs/index.html +1501 -1501
  145. package/templates/docs/js/active-line.js +72 -72
  146. package/templates/docs/js/b.min.js +7 -7
  147. package/templates/docs/js/codemirror.js +9680 -9680
  148. package/templates/docs/js/designTokens.js +334 -334
  149. package/templates/docs/js/j.min.js +4 -4
  150. package/templates/docs/js/javascript.js +874 -874
  151. package/templates/docs/js/matchbrackets.js +145 -145
  152. package/lib/plugins/composeCommonPlugin.js +0 -30
  153. package/lib/postcss-plugins/variableModifier.js +0 -244
  154. package/result.json +0 -1
  155. package/unittest/index.html +0 -37
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ var _windowsModification = require("../loaderUtils/windowsModification");
4
+
5
+ var _fileHandling = require("../plugins/utils/fileHandling");
6
+
7
+ var _getOptions = _interopRequireDefault(require("../utils/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 variableConvertor(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
+ rootOriginal.walkRules(rule => {
110
+ rule.walkDecls(decl => {
111
+ decl.value.split(' ').forEach(val => {
112
+ if (val && val.includes('--') && !new RegExp(ignoreVals.join('|'), 'gi').test(val) && decl.prop) {
113
+ const extractedValue = extractVariableName(val);
114
+
115
+ if (!variables[extractedValue]) {
116
+ variables[extractedValue] = decl.prop;
117
+ }
118
+ }
119
+ });
120
+ });
121
+ });
122
+ const strArray = (0, _windowsModification.windowsModificationFile)(process.cwd()).split('\\');
123
+ const lastElem = strArray[strArray.length - 1].toString();
124
+
125
+ if (!(0, _fileHandling.isFileNameMatchingPluginPattern)({
126
+ filename: fromPath,
127
+ filterArr,
128
+ rootDir: lastElem
129
+ })) {
130
+ return;
131
+ }
132
+
133
+ const convertedCode = variableConvertor(rootOriginal, variables, settingsObject).toString();
134
+
135
+ if (convertedCode.trim() !== '') {
136
+ fs.writeFile(fromPath, convertedCode, () => true);
137
+ } // console.log(convertedCode);
138
+
139
+
140
+ postcss([postcssVariableConvertor(cssVariableOptions)]).process(css, {
141
+ from: fromPath,
142
+ to: toPath
143
+ }).then(result => {
144
+ fs.writeFile(toPath, result.css, () => true);
145
+
146
+ if (result.map) {
147
+ fs.writeFile(`${toPath}.map`, result.map, () => true);
148
+ }
149
+ }); // console.log(variableOptions);
150
+ }
151
+
152
+ (0, _folderIterator.default)(src, dist, ['.css'], false, (fromPath, toPath) => {
153
+ // console.log(fromPath, toPath);
154
+ watchHandler(fromPath, toPath);
155
+ }); // if (canWacth) {
156
+ // useExitCleanup(() => {
157
+ // fs.unwatchFile(src, watchHandler);
158
+ // });
159
+ // }
package/npm8.md CHANGED
@@ -1,9 +1,9 @@
1
- # npm 8 change related things
2
-
3
- 1. in npm run script config options `:` not working (properly|correctly), So we need to use `_` in the place of `:`
4
- For Example:
5
- - `--app:port` wouldn't work we have to do like this `--app_port`
6
- - `--clone:proj:name` wouldn't work we have to do like this `----clone_proj_name`
7
-
8
- @zohodes/react-cli or fz-react-cli regardless of what cli you use.
9
- So, we need to change all package.json script which is using this (`:`) we need to change as (`_`)
1
+ # npm 8 change related things
2
+
3
+ 1. in npm run script config options `:` not working (properly|correctly), So we need to use `_` in the place of `:`
4
+ For Example:
5
+ - `--app:port` wouldn't work we have to do like this `--app_port`
6
+ - `--clone:proj:name` wouldn't work we have to do like this `----clone_proj_name`
7
+
8
+ @zohodes/react-cli or fz-react-cli regardless of what cli you use.
9
+ So, we need to change all package.json script which is using this (`:`) we need to change as (`_`)