@zohodesk/react-cli 1.0.3-beta.1 → 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 (138) 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 -1189
  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/configs/webpack.css.umd.config.js +4 -4
  22. package/lib/configs/webpack.dev.config.js +6 -0
  23. package/lib/configs/webpack.docs.config.js +4 -0
  24. package/lib/configs/webpack.impact.config.js +4 -0
  25. package/lib/configs/webpack.prod.config.js +6 -0
  26. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  27. package/lib/loaderUtils/getCSSLoaders.js +80 -46
  28. package/lib/loaderUtils/tests/windowsModification.test.js +10 -0
  29. package/lib/loaderUtils/windowsModification.js +6 -1
  30. package/lib/loaders/composeLoader.js +172 -0
  31. package/lib/loaders/workerLoader.js +9 -9
  32. package/lib/pluginUtils/getDevPlugins.js +18 -8
  33. package/lib/pluginUtils/getProdPlugins.js +16 -8
  34. package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
  35. package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
  36. package/lib/plugins/CustomAttributePlugin.md +35 -35
  37. package/lib/plugins/EFCPlugin.md +6 -6
  38. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  39. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  40. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  41. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  42. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  43. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  44. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  45. package/lib/plugins/{UglifyCSSPlugin.js → MinifyPlugin.js} +3 -3
  46. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  47. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  48. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  49. package/lib/plugins/SelectorPlugin.js +64 -40
  50. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  51. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  52. package/lib/plugins/VariableConversionCollector.js +94 -84
  53. package/lib/plugins/index.js +7 -7
  54. package/lib/plugins/utils/classHandling.js +20 -0
  55. package/lib/plugins/utils/fileHandling.js +107 -0
  56. package/lib/plugins/utils/tests/fileHandling.test.js +30 -0
  57. package/lib/postcss-plugins/EmptyPlugin.js +8 -0
  58. package/lib/postcss-plugins/ExcludePlugin.js +1 -1
  59. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
  60. package/lib/postcss-plugins/ValueReplacer.js +5 -14
  61. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  62. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  63. package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
  64. package/lib/postcss-plugins/variableModificationPlugin/index.js +1 -19
  65. package/lib/schemas/index.js +31 -3
  66. package/lib/servers/server.js +2 -2
  67. package/lib/sh/pre-commit.sh +34 -34
  68. package/lib/sh/reportPublish.sh +45 -45
  69. package/lib/utils/buildstats.html +148 -148
  70. package/lib/utils/cssClassNameGenerate.js +40 -13
  71. package/lib/utils/getOptions.js +9 -0
  72. package/lib/utils/resultSchema.json +73 -73
  73. package/lib/utils/variableConvertor.js +159 -0
  74. package/npm8.md +9 -9
  75. package/{npm-shrinkwrap.json → package-lock.json} +14412 -14407
  76. package/package.json +121 -121
  77. package/postpublish.js +8 -8
  78. package/templates/app/.eslintrc.js +140 -140
  79. package/templates/app/README.md +12 -12
  80. package/templates/app/app/index.html +24 -24
  81. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  82. package/templates/app/app/properties/i18nkeys.json +3 -3
  83. package/templates/app/docs/all.html +69 -69
  84. package/templates/app/mockapi/index.js +18 -18
  85. package/templates/app/package.json +37 -37
  86. package/templates/app/src/actions/SampleActions/index.js +37 -37
  87. package/templates/app/src/actions/index.js +65 -65
  88. package/templates/app/src/appUrls.js +19 -19
  89. package/templates/app/src/components/Alert/Alert.js +134 -134
  90. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  91. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  92. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  93. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  94. package/templates/app/src/components/Sample/SampleList.js +61 -61
  95. package/templates/app/src/components/Slider/Slider.css +41 -41
  96. package/templates/app/src/components/Slider/Slider.js +55 -55
  97. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  98. package/templates/app/src/containers/AppContainer/index.js +96 -96
  99. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  100. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  101. package/templates/app/src/containers/DevTools/index.js +10 -10
  102. package/templates/app/src/containers/Header/index.js +67 -67
  103. package/templates/app/src/containers/Header/index.module.css +43 -43
  104. package/templates/app/src/containers/Redirect/index.js +63 -63
  105. package/templates/app/src/containers/Redirector/index.js +47 -47
  106. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  107. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  108. package/templates/app/src/historyChange.js +5 -5
  109. package/templates/app/src/index.html +10 -10
  110. package/templates/app/src/index.js +24 -24
  111. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  112. package/templates/app/src/reducers/alertData.js +11 -11
  113. package/templates/app/src/reducers/index.js +6 -6
  114. package/templates/app/src/reducers/samples.js +19 -19
  115. package/templates/app/src/store/configureStore.dev.js +51 -51
  116. package/templates/app/src/store/configureStore.js +5 -5
  117. package/templates/app/src/store/configureStore.prod.js +26 -26
  118. package/templates/app/src/util/Common.js +5 -5
  119. package/templates/app/src/util/RequestAPI.js +132 -132
  120. package/templates/docs/all.html +249 -249
  121. package/templates/docs/component.html +178 -178
  122. package/templates/docs/components.html +221 -221
  123. package/templates/docs/css/b.min.css +6 -6
  124. package/templates/docs/css/component.css +42 -42
  125. package/templates/docs/css/componentTest.css +6 -6
  126. package/templates/docs/css/hopscotch.css +585 -585
  127. package/templates/docs/css/style.css +1022 -1022
  128. package/templates/docs/impactReportTemplate.html +154 -154
  129. package/templates/docs/index.html +1501 -1501
  130. package/templates/docs/js/active-line.js +72 -72
  131. package/templates/docs/js/b.min.js +7 -7
  132. package/templates/docs/js/codemirror.js +9680 -9680
  133. package/templates/docs/js/designTokens.js +334 -334
  134. package/templates/docs/js/j.min.js +4 -4
  135. package/templates/docs/js/javascript.js +874 -874
  136. package/templates/docs/js/matchbrackets.js +145 -145
  137. package/lib/plugins/composeCommonPlugin.js +0 -30
  138. package/lib/postcss-plugins/variableModifier.js +0 -210
@@ -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 (`_`)