@zohodesk/react-cli 1.0.2 → 1.0.3-exp.2

Sign up to get free protection for your applications and to get access to all the features.
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 (`_`)