@zohodesk/react-cli 1.1.14-exp.2 → 1.1.14-kubernetes

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 (102) hide show
  1. package/README.md +16 -281
  2. package/bin/cli.js +55 -30
  3. package/docs/CustomChunks.md +9 -12
  4. package/docs/SelectorWeight.md +0 -3
  5. package/docs/ValueReplacer.md +0 -27
  6. package/docs/VariableConversion.md +1 -6
  7. package/lib/common/splitChunks.js +45 -65
  8. package/lib/common/testPattern.js +11 -9
  9. package/lib/common/valueReplacer.js +3 -1
  10. package/lib/configs/resolvers.js +5 -16
  11. package/lib/configs/webpack.css.umd.config.js +2 -3
  12. package/lib/configs/webpack.dev.config.js +5 -15
  13. package/lib/configs/webpack.docs.config.js +3 -14
  14. package/lib/configs/webpack.impact.config.js +2 -8
  15. package/lib/configs/webpack.prod.config.js +5 -15
  16. package/lib/constants.js +3 -3
  17. package/lib/loaderUtils/getCSSLoaders.js +49 -98
  18. package/lib/loaderUtils/windowsModification.js +1 -6
  19. package/lib/loaders/docsLoader.js +7 -18
  20. package/lib/loaders/selectorMappingLoader.js +9 -9
  21. package/lib/pluginUtils/getDevPlugins.js +6 -25
  22. package/lib/pluginUtils/getProdPlugins.js +5 -32
  23. package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
  24. package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
  25. package/lib/plugins/EFCPlugin.js +9 -9
  26. package/lib/plugins/EFCTemplatePlugin.js +12 -10
  27. package/lib/plugins/I18NInjectIntoIndexPlugin.js +9 -8
  28. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +3 -2
  29. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +13 -29
  30. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +7 -2
  31. package/lib/plugins/I18nSplitPlugin/index.js +1 -1
  32. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +8 -8
  33. package/lib/plugins/ReportGeneratePlugin.js +6 -8
  34. package/lib/plugins/ResourceHintsPlugin.js +3 -13
  35. package/lib/plugins/SelectorPlugin.js +37 -77
  36. package/lib/plugins/{MinifyPlugin.js → UglifyCSSPlugin.js} +3 -3
  37. package/lib/plugins/UnusedFilesFindPlugin.js +5 -7
  38. package/lib/plugins/VariableConversionCollector.js +101 -40
  39. package/lib/plugins/composeCommonPlugin.js +30 -0
  40. package/lib/plugins/index.js +7 -7
  41. package/lib/postcss-plugins/ExcludePlugin.js +1 -1
  42. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -4
  43. package/lib/postcss-plugins/ValueReplacer.js +29 -8
  44. package/lib/postcss-plugins/hoverActivePlugin.js +6 -0
  45. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +1 -0
  46. package/lib/postcss-plugins/variableModificationPlugin/index.js +38 -94
  47. package/lib/postcss-plugins/variableModifier.js +244 -0
  48. package/lib/schemas/index.js +18 -94
  49. package/lib/servers/devBuild.js +11 -13
  50. package/lib/servers/getCliPath.js +5 -3
  51. package/lib/servers/httpsOptions.js +13 -12
  52. package/lib/servers/nowatchserver.js +55 -62
  53. package/lib/servers/server.js +52 -53
  54. package/lib/utils/cssClassNameGenerate.js +13 -70
  55. package/lib/utils/getOptions.js +28 -35
  56. package/lib/utils/getServerURL.js +9 -1
  57. package/lib/utils/index.js +12 -14
  58. package/lib/utils/initPreCommitHook.js +5 -5
  59. package/lib/utils/pullOrigin.js +3 -3
  60. package/lib/utils/reinstallDependencies.js +3 -3
  61. package/lib/utils/switchBranch.js +2 -4
  62. package/package.json +3 -5
  63. package/templates/docs/all.html +0 -1
  64. package/templates/docs/component.html +0 -1
  65. package/templates/docs/components.html +0 -1
  66. package/templates/docs/css/style.css +169 -136
  67. package/templates/docs/index.html +632 -796
  68. package/.vscode/settings.json +0 -25
  69. package/docs/ComposeMinification.md +0 -13
  70. package/docs/MarkdownParser.md +0 -18
  71. package/docs/ReactLive.md +0 -14
  72. package/docs/patternFiltering.md +0 -57
  73. package/lib/common/buildEs.js +0 -12
  74. package/lib/common/runPreProcess.js +0 -71
  75. package/lib/deprecationLogger.js +0 -40
  76. package/lib/loaderUtils/tests/windowsModification.test.js +0 -10
  77. package/lib/loaders/__test__/markdownLoader.spec.js +0 -145
  78. package/lib/loaders/composeLoader.js +0 -298
  79. package/lib/loaders/markdownLoader.js +0 -71
  80. package/lib/loaders/reactLiveConvertor.js +0 -105
  81. package/lib/logger.js +0 -27
  82. package/lib/plugins/CustomAttributePlugin.js +0 -82
  83. package/lib/plugins/CustomAttributePlugin.md +0 -35
  84. package/lib/plugins/EfcResourceCleanupPlugin.js +0 -43
  85. package/lib/plugins/StatsPlugin.js +0 -82
  86. package/lib/plugins/utils/classHandling.js +0 -35
  87. package/lib/plugins/utils/fileHandling.js +0 -92
  88. package/lib/plugins/utils/tests/fileHandling.test.js +0 -30
  89. package/lib/plugins/variableConvertorUtils.js +0 -133
  90. package/lib/postcss-plugins/EmptyPlugin.js +0 -8
  91. package/lib/postcss-plugins/IncludePlugin.js +0 -23
  92. package/lib/postcss-plugins/SelectorReplace.js +0 -80
  93. package/lib/postcss-plugins/__test__/selectorReplace.test.js +0 -28
  94. package/lib/postcss-plugins/__test__/valueReplacer.spec.js +0 -43
  95. package/lib/servers/requireLocalOrGlobal.js +0 -61
  96. package/lib/utils/deprecationSupport.js +0 -134
  97. package/lib/utils/log.js +0 -11
  98. package/lib/utils/object-manipulation.js +0 -88
  99. package/lib/utils/selectorReplacer.js +0 -47
  100. package/lib/utils/variableConverter.js +0 -104
  101. package/npm-shrinkwrap.json +0 -33485
  102. package/templates/docs/css/markdown.css +0 -202
@@ -9,15 +9,12 @@ var _postcss = _interopRequireDefault(require("postcss"));
9
9
 
10
10
  var _ErrorHandler = require("../postcss-plugins/variableModificationPlugin/ErrorHandler");
11
11
 
12
- var _fileHandling = require("./utils/fileHandling");
13
-
14
- var _variableConvertorUtils = require("./variableConvertorUtils");
15
-
16
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
13
 
18
14
  // import { RawSource } from 'webpack-sources';
19
15
  const fs = require('fs');
20
16
 
17
+ const ignoreVals = ['--zd_size', '--zd_font_size', '--size', '--size_'];
21
18
  let variablesRead = {};
22
19
 
23
20
  const {
@@ -26,7 +23,29 @@ const {
26
23
  errHandler
27
24
  } = require('../postcss-plugins/variableModificationPlugin/index');
28
25
 
29
- 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']; // -- to convert the hyphen values to values --
26
+ 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 = [];
27
+ // -- is issue IO --
28
+
29
+ /*
30
+ issues eg :
31
+ issues = ['--zd_size', '--zd_font_size', '--size', '--size_'];
32
+ input :
33
+ --zd_size
34
+ output :
35
+ true
36
+ comment :
37
+ do not execute when --zd_size comes as prop
38
+ */
39
+
40
+ function isIgnoreValuePresent(ignoreVals, prop) {
41
+ let present = false;
42
+ ignoreVals.forEach(issue => {
43
+ if (prop && prop.includes(issue)) {
44
+ present = true;
45
+ }
46
+ });
47
+ return present;
48
+ } // -- to convert the hyphen values to values --
30
49
 
31
50
  /*
32
51
  input :
@@ -38,6 +57,49 @@ comment :
38
57
  to make the variable object using the output as key and decl.prop such as font-size as value
39
58
  */
40
59
 
60
+
61
+ function extractVariableName(val) {
62
+ return val.replace(/calc\((.+)\)/gi, '$1').replace(/var\((.+)\)/gi, '$1').replace('-1', '').replace('*', '').replace('\n', '').trim();
63
+ }
64
+
65
+ function rootConvertor(rootOriginal, variables, settingsObject) {
66
+ rootOriginal.walkRules(rule => {
67
+ rule.nodes.forEach((decl, index) => {
68
+ const prevNode = rule.nodes[index - 1];
69
+ const currentNode = rule.nodes[index];
70
+
71
+ if (decl.prop && decl.prop.includes('--')) {
72
+ if (prevNode && prevNode.type === 'comment' && prevNode.text.toLowerCase() === 'variable:ignore') {
73
+ return;
74
+ }
75
+
76
+ if (isIgnoreValuePresent(ignoreVals, decl.prop)) {
77
+ return;
78
+ }
79
+
80
+ if (settingsObject[variables[decl.prop]]) {
81
+ /* if there is no value for property, set it to default so that undefined doesn't get called as key */
82
+ if (!variables[decl.prop]) {
83
+ variables[decl.prop] = 'default';
84
+ }
85
+
86
+ const pxReplacement = settingsObject[variables[decl.prop]].replacements.px;
87
+ const valArr = decl.value.split(' '); // single values are considered in the above array and converted below
88
+
89
+ valArr.forEach((value, index) => {
90
+ if (value.includes('px')) {
91
+ const num = value.replace('px', '');
92
+ valArr[index] = pxReplacement.replace('$$', num);
93
+ }
94
+ });
95
+ currentNode.value = valArr.join(' ');
96
+ }
97
+ }
98
+ });
99
+ });
100
+ return rootOriginal;
101
+ }
102
+
41
103
  function createFolderIfNonExistant(path) {
42
104
  if (!fs.existsSync(path)) {
43
105
  fs.mkdirSync(path, {
@@ -56,12 +118,10 @@ class VariableConversionCollector {
56
118
  constructor(options = {}) {
57
119
  this.optimize = options.optimize;
58
120
  this.filename = options.cssVariableReplacementConfig;
59
- this.patterns = options.patterns; // console.log(options.patterns, this.patterns);
60
-
61
- this.initializeFiles();
121
+ this.fileHandler();
62
122
  }
63
123
 
64
- initializeFiles() {
124
+ fileHandler() {
65
125
  createFolderIfNonExistant('./.cli/logs/');
66
126
  createFolderIfNonExistant('./.cli/config/variables/');
67
127
  createFolderIfNonExistant('./.cli/config/selectorWeight/');
@@ -71,8 +131,7 @@ class VariableConversionCollector {
71
131
 
72
132
  apply(compiler) {
73
133
  const variables = {};
74
- const unassigned = {}; // console.log(windowsModification([this.filename])[0]);
75
-
134
+ const unassigned = {};
76
135
  const rawdata = fs.readFileSync(this.filename);
77
136
  const data = JSON.parse(rawdata);
78
137
  const {
@@ -124,13 +183,16 @@ class VariableConversionCollector {
124
183
  rootOriginal.walkRules(rule => {
125
184
  rule.walkDecls(decl => {
126
185
  decl.value.split(' ').forEach(val => {
127
- if (val && val.includes('--') && !new RegExp(_variableConvertorUtils.ignoreVals.join('|'), 'gi').test(val) && decl.prop) {
128
- const extractedValue = (0, _variableConvertorUtils.extractVariableName)(val);
186
+ if (val && val.includes('--') && !new RegExp(ignoreVals.join('|'), 'gi').test(val) && decl.prop) {
187
+ const extractedValue = extractVariableName(val);
129
188
 
130
189
  if (!variables[extractedValue]) {
131
190
  variables[extractedValue] = decl.prop;
132
191
  } else {
133
192
  if (new RegExp(supportedProps.join('|'), 'gi').test(decl.prop)) {
193
+ // console.log(
194
+ // `${extractedValue} : ${variables[extractedValue]} already exists please check!`
195
+ // );
134
196
  if (errorsAllowed.MULTIPLE_OCCURANCES) {
135
197
  const errObj = {
136
198
  decl,
@@ -144,6 +206,7 @@ class VariableConversionCollector {
144
206
  }
145
207
  }
146
208
  } else {
209
+ // console.log(decl.prop);
147
210
  if (/^--/gi.test(decl.prop) && val.trim() !== '' && !variables[decl.prop]) {
148
211
  if (!Object.keys(variablesRead.ignore).includes(decl.prop)) {
149
212
  unassigned[decl.prop] = variables[decl.prop];
@@ -175,7 +238,7 @@ class VariableConversionCollector {
175
238
  });
176
239
  }
177
240
  });
178
- }); // -- conversion for the root using variableConvertor --
241
+ }); // -- conversion for the root using rootConvertor --
179
242
 
180
243
  /*
181
244
  input :
@@ -193,33 +256,9 @@ class VariableConversionCollector {
193
256
  compilation.hooks.optimizeModules.tap('VariableConversionCollector', modules => {
194
257
  const mods = modules.filter(x => x.type.includes('css'));
195
258
  mods.forEach(module => {
196
- const filename = module.issuer.resource;
197
- /*
198
- input :
199
- filename : 'D:/MyWork/..../desk_client_app/supportapp/src/components/Avatar/Avatar.module.css,
200
-
201
- patterns.cssVariableReplacement:
202
- // include src folder, include deskapp folder, exclude node modules
203
- "cssVariableReplacement": [
204
- "src",
205
- "deskapp",
206
- "!node_modules"
207
- ]
208
-
209
- output :
210
- true or false
211
- */
212
-
213
- if (!(0, _fileHandling.isFileNameMatchingPluginPattern)({
214
- filename,
215
- filterArr: this.patterns.cssVariableReplacement
216
- })) {
217
- return;
218
- }
219
-
220
259
  const rootOriginal = _postcss.default.parse(module.content);
221
260
 
222
- module.content = (0, _variableConvertorUtils.variableConverter)(rootOriginal, variables, settingsObject).toString();
261
+ module.content = rootConvertor(rootOriginal, variables, settingsObject).toString();
223
262
  });
224
263
  });
225
264
  });
@@ -253,7 +292,29 @@ class VariableConversionCollector {
253
292
  if (a.type < b.type) {
254
293
  return -1;
255
294
  }
256
- });
295
+ }); // variable constructed now to be written in a json file
296
+ // const newVars = Object.keys(variables)
297
+ // //Filter Object with key contanis "NAME"
298
+ // .filter(key => variables[key].includes('--'))
299
+ // .reduce(
300
+ // (obj, key) =>
301
+ // Object.assign(obj, {
302
+ // [key]: variables[key]
303
+ // }),
304
+ // {}
305
+ // );
306
+ // console.log('new variables: ', newVars);
307
+ // try {
308
+ // fs.writeFileSync('./variableMapping.json', JSON.stringify(variables));
309
+ // } catch (err) {
310
+ // console.log(err);
311
+ // }
312
+ // fs.writeFile('./variableMapping.json', JSON.stringify(variables), err => {
313
+ // if (err) {
314
+ // throw err;
315
+ // }
316
+ // console.log('variable mapping file generated.');
317
+ // });
257
318
 
258
319
  if (errorConsoleStatus) {
259
320
  const errorHandler = new _ErrorHandler.ErrorHandler();
@@ -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;
@@ -33,12 +33,6 @@ Object.defineProperty(exports, "ManifestPlugin", {
33
33
  return _ManifestPlugin.default;
34
34
  }
35
35
  });
36
- Object.defineProperty(exports, "MinifyPlugin", {
37
- enumerable: true,
38
- get: function () {
39
- return _MinifyPlugin.default;
40
- }
41
- });
42
36
  Object.defineProperty(exports, "ModuleStatsPlugin", {
43
37
  enumerable: true,
44
38
  get: function () {
@@ -105,6 +99,12 @@ Object.defineProperty(exports, "TPHashMappingPlugin", {
105
99
  return _TPHashMappingPlugin.default;
106
100
  }
107
101
  });
102
+ Object.defineProperty(exports, "UglifyCSSPlugin", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _UglifyCSSPlugin.default;
106
+ }
107
+ });
108
108
  Object.defineProperty(exports, "UnusedFilesFindPlugin", {
109
109
  enumerable: true,
110
110
  get: function () {
@@ -126,7 +126,7 @@ var _OptimizeJSPlugin = _interopRequireDefault(require("./OptimizeJSPlugin"));
126
126
 
127
127
  var _ResourceHintsPlugin = _interopRequireDefault(require("./ResourceHintsPlugin"));
128
128
 
129
- var _MinifyPlugin = _interopRequireDefault(require("./MinifyPlugin"));
129
+ var _UglifyCSSPlugin = _interopRequireDefault(require("./UglifyCSSPlugin"));
130
130
 
131
131
  var _ManifestPlugin = _interopRequireDefault(require("./ManifestPlugin"));
132
132
 
@@ -10,7 +10,7 @@ module.exports = _postcss.default.plugin('postcss-exclude-files', opts => {
10
10
  } = opts;
11
11
  return (root, result) => {
12
12
  const inputFile = root.source.input.file;
13
- const isIgnoredFile = opts.ignore.some(file => inputFile.indexOf(file) !== -1);
13
+ let isIgnoredFile = opts.ignore.some(file => inputFile.indexOf(file) !== -1);
14
14
 
15
15
  if (!isIgnoredFile) {
16
16
  const handler = response => response.messages.forEach(msg => result.messages.push(msg));
@@ -18,6 +18,7 @@ const oppositeDir = {
18
18
  };
19
19
 
20
20
  function compareSelector(selector1, selector2) {
21
+ // console.log({ selector1, selector2 }, selector1 === selector2);
21
22
  return selector1 === selector2;
22
23
  }
23
24
 
@@ -65,6 +66,7 @@ function mergeIfSameSelector(rule) {
65
66
 
66
67
 
67
68
  function removeIfOppsiteDirRule(rule, direction, rootOptions) {
69
+ // console.log({ rule, type: rule.type });
68
70
  const selectors = rule.selector.split(/\s*,\s*/); // NOTE: if we use opposite dir selector as custom override reason,
69
71
  // and compain normal selector with it, In this case
70
72
  // we just a have to remove that selector only not full rule
@@ -85,10 +87,11 @@ function removeIfOppsiteDirRule(rule, direction, rootOptions) {
85
87
  }
86
88
 
87
89
  function removeIfOppsiteDirKeyframe(rule, direction) {
88
- const name = rule.params;
89
- const keyFrameDirName = name.slice(name.lastIndexOf('-') + 1);
90
+ let name = rule.params;
91
+ let keyFrameDirName = name.slice(name.lastIndexOf('-') + 1);
90
92
 
91
93
  if (keyFrameDirName === oppositeDir[direction]) {
94
+ // console.log({ m: 'removed', keyFrameName: rule.params });
92
95
  rule.remove();
93
96
  }
94
97
  }
@@ -106,10 +109,12 @@ function separateSingleDir(root, direction, rootOptions) {
106
109
 
107
110
  function separateRtlAndLtr(css, rootOptions) {
108
111
  // let processor = postcss([]).process(css);
109
- const root = postcss.parse(css); // let { root } = processor;
112
+ let root = postcss.parse(css); // let { root } = processor;
113
+ // console.log(processor, root);
110
114
  // NOTE: I did first rtl then ltr , Because for ltr I use original root ref
111
115
 
112
- const rtlRoot = separateSingleDir(root.clone(), 'rtl', rootOptions);
116
+ const rtlRoot = separateSingleDir(root.clone(), 'rtl', rootOptions); // console.log('############################');
117
+
113
118
  const ltrRoot = separateSingleDir(root, 'ltr', rootOptions);
114
119
  return {
115
120
  ltrRoot,
@@ -127,6 +132,7 @@ function separateRtlAndLtr(css, rootOptions) {
127
132
  // // root.append(postcss.comment({ text: 'comment' }));
128
133
  // root.append(postcss.comment({ text: 'this is spliting part ' }));
129
134
  // root.append(rtlRoot);
135
+ // //console.log({root, roots:root+""}, root+"")
130
136
  // // Transform CSS AST here
131
137
  // }
132
138
  // );
@@ -4,22 +4,43 @@ var _postcss = _interopRequireDefault(require("postcss"));
4
4
 
5
5
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
6
 
7
+ // module.exports = postcss.plugin('postcss-value-replacer', opts => {
8
+ // const { plugins } = opts;
9
+ // return (root, result) => {
10
+ // const inputFile = root.source.input.file;
11
+ // let isIgnoredFile= opts.ignore.some(file => inputFile.indexOf(file)!==-1);
12
+ // if (!isIgnoredFile) {
13
+ // const handler = response =>
14
+ // response.messages.forEach(msg => result.messages.push(msg));
15
+ // return postcss(plugins)
16
+ // .process(root, { from: undefined })
17
+ // .then(handler);
18
+ // }
19
+ // };
20
+ // });
21
+ // export default
7
22
  module.exports = _postcss.default.plugin('postcss-value-replacer', (valueReplacer = {}) => // Work with options here
8
23
  root => {
9
24
  root.walkDecls(decl => {
10
25
  valueReplacer.forEach(obj => {
11
26
  if (obj.props.indexOf(decl.prop) !== -1) {
12
- const ks = Object.keys(obj.values).sort((a, b) => b.length - a.length);
27
+ let ks = Object.keys(obj.values).sort((a, b) => b.length - a.length);
13
28
  ks.forEach(k => {
14
- // if (/^\^.*\$$/gi.test(k)) {
15
- if (k.startsWith('^') && k.endsWith('$')) {
16
- decl.value = decl.value.replace(new RegExp(k), obj.values[k]);
17
- } else {
18
- decl.value = decl.value.replace(k, obj.values[k]);
19
- }
29
+ decl.value = decl.value.replace(k, obj.values[k]);
20
30
  }); //decl.value = obj.values[decl.value];
21
31
  }
22
32
  }); //console.log({root, roots:root+""}, root+"")
23
33
  // Transform CSS AST here
24
- });
34
+ }); // root.walkDecls(decl => {
35
+ // valueReplacer.forEach(obj => {
36
+ // if (
37
+ // obj.props.indexOf(decl.prop) !== -1 &&
38
+ // obj.values[decl.value] !== undefined
39
+ // ) {
40
+ // decl.value = obj.values[decl.value];
41
+ // }
42
+ // });
43
+ // //console.log({root, roots:root+""}, root+"")
44
+ // // Transform CSS AST here
45
+ // });
25
46
  });
@@ -158,6 +158,7 @@ module.exports = _postcss.default.plugin('postcss-mobile-hover', mediaQueryHover
158
158
 
159
159
  function mediaCommaQuery(rule, index) {
160
160
  if (rule.parent.params !== undefined && !rule.parent.params.includes('hover')) {
161
+ //console.log(hovMed, actMed);
161
162
  let newSelector = '';
162
163
  const {
163
164
  hovMed,
@@ -231,6 +232,7 @@ module.exports = _postcss.default.plugin('postcss-mobile-hover', mediaQueryHover
231
232
  }
232
233
 
233
234
  function commaQuery(rule, index) {
235
+ //console.log("comma" , rule.selector.split('\n'));
234
236
  let newSelector = '';
235
237
  const hovQueries = [];
236
238
  rule.selector.split(/\s*,\s*/).forEach(_subrule => {
@@ -286,10 +288,13 @@ module.exports = _postcss.default.plugin('postcss-mobile-hover', mediaQueryHover
286
288
  });
287
289
  rootOriginal.walkRules(/:hover/i, (rule, index) => {
288
290
  // media hover query with ',' ' ' '+'
291
+ // console.log("media query" , rule.selector)
289
292
  if (rule.parent.type === 'atrule' && rule.selector.includes(',')) {
293
+ //console.log("media comma", rule.selector)
290
294
  mediaCommaQuery(rule, index);
291
295
  } else {
292
296
  // plus, space and other media queries
297
+ //console.log("media", rule.selector)
293
298
  mediaQuery(rule, index);
294
299
  } // usual hover query
295
300
 
@@ -306,6 +311,7 @@ module.exports = _postcss.default.plugin('postcss-mobile-hover', mediaQueryHover
306
311
  if (rule.selector.includes(',')) {
307
312
  commaQuery(rule, index);
308
313
  } else if (rule.selector.match(/ +|\++/g)) {
314
+ //console.log("plus or space" , rule.selector);
309
315
  if (rule.selector.includes('hover')) {
310
316
  hoverRules.push({
311
317
  rule,
@@ -36,6 +36,7 @@ class ErrorHandler {
36
36
 
37
37
  errorFunction(errObj) {
38
38
  if (errObj.type && this.allowedErrs[errObj.type] && errObj.decl.prop && errObj.decl.value) {
39
+ console.log(this.allowedErrs[errObj.type]);
39
40
  this[errObj.type](errObj);
40
41
  }
41
42
  }
@@ -10,6 +10,8 @@ const {
10
10
  ErrorHandler
11
11
  } = require('./ErrorHandler');
12
12
 
13
+ const errors = [];
14
+ const errorTable = [];
13
15
  const errHandler = new ErrorHandler();
14
16
  const convertableProps = {
15
17
  'font-size': true,
@@ -92,13 +94,7 @@ function pxToCalc(value) {
92
94
  return arr.join(' ');
93
95
  }
94
96
 
95
- const singleConvertor = ({
96
- value,
97
- changeVal,
98
- details,
99
- range,
100
- allowed
101
- }) => {
97
+ const singleConvertor = (value, changeVal, details, range) => {
102
98
  const {
103
99
  path,
104
100
  filename,
@@ -112,15 +108,7 @@ const singleConvertor = ({
112
108
  }
113
109
  }
114
110
 
115
- if (allowed && allowed.includes(decl.value) && decl.value.toString() !== '0') {
116
- return decl.value;
117
- }
118
-
119
111
  if (getNumericValue(value) >= range.start && getNumericValue(value) <= range.end || getNumericValue(value) === 0) {
120
- if (value.trim() === '0px') {
121
- return '0';
122
- }
123
-
124
112
  let retVal = value.replace(/(\d+)px/gi, changeVal.replace('$$', '$1'));
125
113
 
126
114
  if (/^-var/.test(retVal)) {
@@ -133,7 +121,7 @@ const singleConvertor = ({
133
121
  // console.log(value, 'not within range')
134
122
 
135
123
 
136
- const errObj = {
124
+ let errObj = {
137
125
  decl,
138
126
  type: 'RANGE_ERROR',
139
127
  filename,
@@ -141,8 +129,24 @@ const singleConvertor = ({
141
129
  path: path
142
130
  };
143
131
  errHandler.errorTable.push(errObj);
144
- errHandler.errorFunction(errObj);
145
- return;
132
+ errHandler.errorFunction(errObj); // errorFunction(
133
+ // {
134
+ // decl,
135
+ // type: 'RANGE_ERROR',
136
+ // filename,
137
+ // message: `value (${value}) (${typeof value}) not within range (${
138
+ // range.start
139
+ // },${range.end})\r`,
140
+ // path: path
141
+ // },
142
+ // 'RANGE_ERROR'
143
+ // );
144
+ // }
145
+ // addError(` prop: ${decl.prop} ,\n value : ${decl.value} ,\n filename : ${filename} ,\n filepath : ${path} ,\n line : ${decl.source.start.line} ,\n message : value (${value}) not within range (${range.start},${range.end})\r`)
146
+ // return value;
147
+ // } else {
148
+ // console.log('++++++++++++++++++++++rect val!', value);
149
+ // }
146
150
  };
147
151
 
148
152
  module.exports = {
@@ -175,7 +179,6 @@ module.exports = {
175
179
  });
176
180
  const valRegex = new RegExp(regValStr, 'gi');
177
181
  return rootOriginal => {
178
- // console.log(rootOriginal.source.input.from, 'passed through variable Plugin');
179
182
  rootOriginal.walkRules(rule => {
180
183
  // rule.nodes[-1] = {}
181
184
  // need map, forEach fine less memory
@@ -186,11 +189,10 @@ module.exports = {
186
189
  const fromPath = rootOriginal.source.input.from; // this will be problem for linux and mac use require('path').sep
187
190
  // split not need use slice and lastIndexOf less memory
188
191
 
189
- const filename = fromPath.split(path.sep).pop(); // if(filename.includes('AddFormResponsive.module.css'){
190
- // }
192
+ const filename = fromPath.split(path.sep).pop();
191
193
 
192
194
  if (prevNode && prevNode.type === 'comment' && prevNode.text.toLowerCase().includes(commentStr)) {
193
- const errObj = {
195
+ let errObj = {
194
196
  decl,
195
197
  type: 'DECLARATION_IGNORED',
196
198
  filename,
@@ -203,7 +205,8 @@ module.exports = {
203
205
  }
204
206
 
205
207
  if (settingsObject[decl.prop] && !decl.value.includes('var(--')) {
206
- const settings = settingsObject[decl.prop];
208
+ const settings = settingsObject[decl.prop]; // console.log(settings)
209
+
207
210
  const {
208
211
  allowed,
209
212
  range
@@ -214,9 +217,6 @@ module.exports = {
214
217
  .replace(/\d+/gi, '').replace('var(--zd_size)', 'px').replace('var(--zd_font_size)', 'px').replace('rect(', '').replace(')', '').replace('px,', 'px').replace(',', '').split(' ').filter(x => x !== ''); // unit = unit.replace(unit, unit.replace('-',''))
215
218
  // console.log('unit : ');
216
219
  // console.log(unit);
217
- // if (decl.prop === 'height') {
218
- // console.log(decl.prop, unit, 'case 1');
219
- // }
220
220
 
221
221
  unit.forEach((val, index) => {
222
222
  allowed.forEach(alwdVal => {
@@ -236,54 +236,26 @@ module.exports = {
236
236
  unitErrorVal = val;
237
237
  }
238
238
  }
239
- }); // if (decl.prop === 'height') {
240
- // console.log(decl.prop, unitErrorVal, unitError, unit, 'case 2');
241
- // }
242
- // console.log(allowed, replacements, range)
239
+ }); // console.log(allowed, replacements, range)
243
240
 
244
241
  if (!unitError) {
245
- let calcValue = false;
246
-
247
- if (decl.value.includes('calc')) {
248
- decl.value = pxToCalc(decl.value);
249
- calcValue = true;
250
- } // use variable decl.value.split(' ')
251
-
252
-
253
- if (range && !calcValue) {
242
+ // use variable decl.value.split(' ')
243
+ if (range) {
254
244
  // console.log('multiple :', decl.value)
255
- const tempVal = decl.value; // if (decl.prop === 'height') {
256
- // console.log(decl.prop, tempVal, decl.value, allowed, 'case 3');
257
- // }
258
- // if (decl.prop === 'height') {
259
- // console.log('allowed!', decl.prop, decl.value, allowed);
260
- // }
261
-
262
245
  let newVal = '';
263
- let splitValues = decl.value.split(' ');
264
- splitValues = splitValues.filter(val => val.trim() !== '');
265
- splitValues = splitValues.map(val => val.replace(/\r|\t|\n/gi, ''));
266
- splitValues.forEach(singleVal => {
267
- newVal += `${singleConvertor({
268
- value: singleVal,
269
- changeVal: settings.replacements.px,
270
- details: {
271
- decl,
272
- filename,
273
- path: fromPath
274
- },
275
- range,
276
- allowed
277
- })} `;
246
+ decl.value.split(' ').forEach(singleVal => {
247
+ newVal += `${singleConvertor(singleVal, settings.replacements.px, {
248
+ decl,
249
+ filename,
250
+ path: fromPath
251
+ }, range)} `;
278
252
  });
279
- decl.value = newVal; // if (decl.prop === 'height') {
280
- // console.log(decl.prop, tempVal, newVal, 'case 4');
281
- // }
253
+ decl.value = newVal;
282
254
  }
283
255
  } else {
284
256
  if (!decl.value.includes('calc')) {
285
257
  // addError(` prop: ${decl.prop} ,\n value : ${decl.value} ,\n filename : ${filename} ,\n filepath : ${path} ,\n line : ${decl.source.start.line} ,\n unit : ${unitErrorVal} ,\n message : ${unitErrorVal} (Unit) Not Allowed \r`);
286
- const errObj = {
258
+ let errObj = {
287
259
  decl,
288
260
  filename,
289
261
  unitErrorVal: unitErrorVal,
@@ -313,36 +285,8 @@ module.exports = {
313
285
  }
314
286
  }
315
287
  } else {
316
- if (settingsObject[decl.prop] && decl.value && decl.value.includes('px') && decl.value.includes('var(--')) {
317
- const valArr = decl.value.split(' ');
318
- const settings = settingsObject[decl.prop];
319
- const {
320
- range,
321
- allowed
322
- } = settings;
323
- const convertedVals = valArr.map(val => {
324
- if (val.includes('px')) {
325
- const convertedVal = singleConvertor({
326
- value: val,
327
- changeVal: settings.replacements.px,
328
- details: {
329
- decl,
330
- filename,
331
- path: fromPath
332
- },
333
- range,
334
- allowed
335
- });
336
- return convertedVal ? convertedVal : val;
337
- }
338
-
339
- return val;
340
- });
341
- decl.value = convertedVals.join(' ');
342
- }
343
-
344
288
  if (decl.prop && decl.value && !decl.prop.includes('--') && valRegex.test(decl.value) && (settingsObject[decl.prop] || convertableProps[decl.prop]) && decl.value.includes('var') && !decl.value.includes('calc')) {
345
- const errObj = {
289
+ let errObj = {
346
290
  decl,
347
291
  type: 'VARIABLE_PRESENT',
348
292
  filename,