@zohodesk/react-cli 0.0.1-exp.161.3 → 0.0.1-exp.164.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/.eslintrc.js +3 -7
  2. package/README.md +120 -9
  3. package/bin/cli.js +67 -21
  4. package/eslint/NOTES.md +3 -0
  5. package/eslint/a23.c +16 -0
  6. package/eslint/a28.c +25 -0
  7. package/eslint/a29.c +25 -0
  8. package/eslint/a30.c +29 -0
  9. package/eslint/a31.c +23 -0
  10. package/eslint/a35.c +23 -0
  11. package/eslint/a36.c +18 -0
  12. package/eslint/a37.c +25 -0
  13. package/eslint/a38.c +28 -0
  14. package/eslint/a39.c +17 -0
  15. package/eslint/a40.c +32 -0
  16. package/eslint/mockapi.html +18 -0
  17. package/eslint/mockapi.md +5 -0
  18. package/lib/common/criteriaHandler.js +91 -0
  19. package/lib/common/index.js +6 -6
  20. package/lib/common/splitChunks.js +54 -18
  21. package/lib/common/splitChunks1.js +95 -0
  22. package/lib/common/splitChunksNew.js +129 -0
  23. package/lib/common/testPattern.js +71 -0
  24. package/lib/configs/jest.config.js +12 -3
  25. package/lib/configs/libAlias.js +31 -0
  26. package/lib/configs/webpack.dev.config.js +6 -19
  27. package/lib/configs/webpack.prod.config.js +18 -21
  28. package/lib/loaderUtils/index.js +4 -4
  29. package/lib/pluginUtils/getDevPlugins.js +2 -0
  30. package/lib/pluginUtils/getProdPlugins.js +2 -0
  31. package/lib/pluginUtils/index.js +12 -12
  32. package/lib/plugins/EFCPlugin.js +43 -13
  33. package/lib/plugins/EFCTemplatePlugin.js +151 -0
  34. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +2 -2
  35. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +1 -1
  36. package/lib/plugins/ManifestPlugin.js +8 -0
  37. package/lib/plugins/index.js +36 -36
  38. package/lib/postcss-plugins/RTLSplitPlugin.js +1 -1
  39. package/lib/schemas/index.js +15 -0
  40. package/lib/templates/linterConstant.js +1 -1
  41. package/lib/utils/cssClassNameGenerate.js +9 -2
  42. package/lib/utils/cssURLReplacer.js +1 -1
  43. package/lib/utils/getCurrentBranch.js +1 -1
  44. package/lib/utils/getOptions.js +55 -1
  45. package/lib/utils/index.js +21 -19
  46. package/lib/utils/jsonHelper.js +12 -3
  47. package/lib/utils/reinstallDependencies.js +1 -1
  48. package/npm8.md +9 -0
  49. package/package.json +4 -4
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.endTag = exports.htmlTemplate = void 0;
6
+ exports.htmlTemplate = exports.endTag = void 0;
7
7
  const htmlTemplate = '<!DOCTYPE html><html> <head> <title>Eslint Security Rule</title> <style type="text/css"> body{margin: 0; font: 93.75%/1.6 -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;}body, html{width: 100%; height: 100%;}.pkCont{}.pkEmpty{height: 300px;display: flex;align-items: center;justify-content: center;font-size: 20px;}.pkUl{margin: 0; padding: 0; list-style-type: none;}.pkLi{}.pkRow{display: flex; padding: 12px 16px;}.pkArrowCont{cursor: pointer; width: 50px; display: flex; align-items: center; justify-content: center; background-color: #f4f5f5; border-radius: 4px;}.pkArrow{width: 1px; height: 1px; border: 5px solid; border-color: #000 transparent transparent; margin-top: 7px;}.pkDetailsOpen .pkArrow{margin: 0 0 7px; border-color: transparent transparent #000;}.pkFileName{font-weight: 600; margin: 0 8px;}.pkUrl{flex: 1; min-width: 0; min-height: 0; word-break: break-word; word-wrap: break-word; color: blue;}.pkDetails{margin-left: 66px; display: none;}.pkDetailsOpen .pkDetails{display: block;}.pkDetailsHead{font-weight: 600; display: flex; border: 1px solid #e5e5e5; padding: 3px 8px;}.pkDetailsBody{max-height: 400px; overflow: auto;}.pkDetailsRow{display: flex; padding: 10px 8px;}.pkDetailsRow:nth-child(even){background-color: #f4f5f5;}.pkDetailsCol{word-break: break-word; word-wrap: break-word;}.pkError{color: red;}.pkDetailsCol:nth-child(1){width: 10%;}.pkDetailsCol:nth-child(2){width: 10%;}.pkDetailsCol:nth-child(3){width: 40%;}.pkDetailsCol:nth-child(4){width: 40%;}</style> <script>function toggleWrapper(element){var classArray=element.parentElement.parentElement.className; if (classArray.includes("pkDetailsOpen")){element.parentElement.parentElement.className="pkLi";}else{element.parentElement.parentElement.className="pkLi pkDetailsOpen";}}</script> </head> <body> <div class="pkCont">';
8
8
  exports.htmlTemplate = htmlTemplate;
9
9
  const endTag = '</div></body></html>';
@@ -40,6 +40,13 @@ var _default = (unique = true, {
40
40
  filenames,
41
41
  packages
42
42
  }, classNamePrefix) => (context, localIdentName, localName) => {
43
+ // NOTE: in build macine we use date as folder path.
44
+ // So every time we create new build there is path will alway different
45
+ // in order to minmaze that problem we try in relative path;
46
+ // console.log('context.resourcePath', context.resourcePath, context);
47
+ // let contextResourcePath = context.resourcePath;
48
+ let relativePath = _path.default.relative(context.rootContext, context.resourcePath);
49
+
43
50
  if (context.resourcePath.endsWith('.plain.css')) {
44
51
  return localName;
45
52
  }
@@ -47,7 +54,7 @@ var _default = (unique = true, {
47
54
 
48
55
 
49
56
  if (unique) {
50
- let h = (0, _getHash.default)(context.resourcePath + localName, 10);
57
+ let h = (0, _getHash.default)(`${relativePath}-${localName}`, 10);
51
58
  return `${classNamePrefix}${h}`;
52
59
  }
53
60
  /* old production mode end*/
@@ -60,7 +67,7 @@ var _default = (unique = true, {
60
67
  //let local = localName.toLowerCase()
61
68
 
62
69
  if (isSelectorPackage(context.resourcePath, packages) || filenames.indexOf(cleanFileName) !== -1) {
63
- let h = (0, _getHash.default)(context.resourcePath + localName, 10);
70
+ let h = (0, _getHash.default)(`${relativePath}-${localName}`, 10);
64
71
  return `${classNamePrefix}${h}`;
65
72
  }
66
73
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.cssUrlReplacer = exports.getUrls = exports.getFileType = void 0;
6
+ exports.getUrls = exports.getFileType = exports.cssUrlReplacer = void 0;
7
7
 
8
8
  var _fs = _interopRequireDefault(require("fs"));
9
9
 
@@ -22,7 +22,7 @@ var _default = (type = 'git', cwd = process.cwd()) => {
22
22
  });
23
23
  }
24
24
 
25
- let [currentBranch] = results.output.filter(d => d);
25
+ let [currentBranch] = results && results.output ? results.output.filter(d => d) : [''];
26
26
  return currentBranch.replace(/(\r\n|\n|\r)/gm, '');
27
27
  };
28
28
 
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _child_process = require("child_process");
9
+
8
10
  var _fs = _interopRequireDefault(require("fs"));
9
11
 
10
12
  var _path = _interopRequireDefault(require("path"));
@@ -13,6 +15,9 @@ var _schemas = _interopRequireDefault(require("../schemas"));
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
18
+ // import { argv } from 'process';
19
+ const args = process.argv.slice(2); // console.log('argv', argv);
20
+
16
21
  const NPM_CONFIG_PREFIX = 'npm_config_'; // TODO: we have to do option parse logic little better
17
22
  // if user use react-cli stritly without using npm scripts options won't work,
18
23
  // So we have to write our own option parse logic or some other library
@@ -37,6 +42,52 @@ keysWithColon.forEach(key => {
37
42
  processEnv[nkey] = processEnv[key];
38
43
  });
39
44
 
45
+ function getNpmVersion() {
46
+ // require("child_process").
47
+ let vers = '6';
48
+
49
+ try {
50
+ [vers] = (0, _child_process.execSync)('npm -v').toString().trim().split('.');
51
+ } catch (error) {
52
+ console.log(error);
53
+ }
54
+
55
+ return vers;
56
+ }
57
+
58
+ function getCWD() {
59
+ // require("child_process").
60
+ let cwd = process.cwd();
61
+
62
+ try {
63
+ let ress = (0, _child_process.execSync)('npm bin').toString();
64
+ let i = ress.lastIndexOf('node_modules');
65
+ cwd = i === -1 ? cwd : ress.slice(0, i);
66
+ } catch (error) {
67
+ console.log(error);
68
+ }
69
+
70
+ return cwd;
71
+ } // experimental argumnet parsing logic
72
+
73
+
74
+ args.forEach(option => {
75
+ if (/^--./.test(option)) {
76
+ let equIndex = option.indexOf('='); // equIndex = equIndex === -1 ? option.length : equIndex;
77
+
78
+ let key = option.slice(2, equIndex);
79
+ let value = option.slice(equIndex + 1);
80
+
81
+ if (equIndex === -1) {
82
+ key = option.slice(2);
83
+ value = true;
84
+ }
85
+
86
+ key = key.replace(/-|:/g, '_');
87
+ processEnv[key] = value;
88
+ }
89
+ });
90
+
40
91
  let defaulter = (target, source) => {
41
92
  let defaultObject = {};
42
93
  Object.keys(target).forEach(key => {
@@ -87,7 +138,10 @@ let getOptions = () => {
87
138
  userSchemas = require(packagePath)['react-cli'] || {};
88
139
  }
89
140
 
90
- let options = defaulter(_schemas.default, userSchemas || {});
141
+ let options = defaulter(_schemas.default, userSchemas || {}); // for future may be for npm 8 edge cases
142
+
143
+ options.npmVersion = getNpmVersion();
144
+ options.cwd = getCWD();
91
145
  options.packageVersion = process.env.npm_package_version;
92
146
  global.reactCLIOptions = options;
93
147
  return options;
@@ -21,22 +21,16 @@ var _exportNames = {
21
21
  getComponents: true,
22
22
  ssTestHack: true
23
23
  };
24
- Object.defineProperty(exports, "getOptions", {
25
- enumerable: true,
26
- get: function () {
27
- return _getOptions.default;
28
- }
29
- });
30
24
  Object.defineProperty(exports, "createEventStream", {
31
25
  enumerable: true,
32
26
  get: function () {
33
27
  return _createEventStream.default;
34
28
  }
35
29
  });
36
- Object.defineProperty(exports, "getServerURL", {
30
+ Object.defineProperty(exports, "getComponents", {
37
31
  enumerable: true,
38
32
  get: function () {
39
- return _getServerURL.default;
33
+ return _getComponents.default;
40
34
  }
41
35
  });
42
36
  Object.defineProperty(exports, "getCurrentBranch", {
@@ -45,22 +39,23 @@ Object.defineProperty(exports, "getCurrentBranch", {
45
39
  return _getCurrentBranch.default;
46
40
  }
47
41
  });
48
- Object.defineProperty(exports, "switchBranch", {
42
+ Object.defineProperty(exports, "getDependenciesImpactList", {
49
43
  enumerable: true,
50
44
  get: function () {
51
- return _switchBranch.default;
45
+ return _getDependenciesImpactList.default;
52
46
  }
53
47
  });
54
- Object.defineProperty(exports, "pullOrigin", {
48
+ exports.getLibraryConflict = exports.getInfoFromPublicPaths = void 0;
49
+ Object.defineProperty(exports, "getOptions", {
55
50
  enumerable: true,
56
51
  get: function () {
57
- return _pullOrigin.default;
52
+ return _getOptions.default;
58
53
  }
59
54
  });
60
- Object.defineProperty(exports, "request", {
55
+ Object.defineProperty(exports, "getServerURL", {
61
56
  enumerable: true,
62
57
  get: function () {
63
- return _request.default;
58
+ return _getServerURL.default;
64
59
  }
65
60
  });
66
61
  Object.defineProperty(exports, "jsonHelper", {
@@ -69,16 +64,17 @@ Object.defineProperty(exports, "jsonHelper", {
69
64
  return _jsonHelper.default;
70
65
  }
71
66
  });
72
- Object.defineProperty(exports, "getDependenciesImpactList", {
67
+ exports.makeDir = exports.log = void 0;
68
+ Object.defineProperty(exports, "pullOrigin", {
73
69
  enumerable: true,
74
70
  get: function () {
75
- return _getDependenciesImpactList.default;
71
+ return _pullOrigin.default;
76
72
  }
77
73
  });
78
- Object.defineProperty(exports, "getComponents", {
74
+ Object.defineProperty(exports, "request", {
79
75
  enumerable: true,
80
76
  get: function () {
81
- return _getComponents.default;
77
+ return _request.default;
82
78
  }
83
79
  });
84
80
  Object.defineProperty(exports, "ssTestHack", {
@@ -87,7 +83,13 @@ Object.defineProperty(exports, "ssTestHack", {
87
83
  return _ssTestHack.default;
88
84
  }
89
85
  });
90
- exports.getLibraryConflict = exports.getInfoFromPublicPaths = exports.makeDir = exports.writeFile = exports.log = void 0;
86
+ Object.defineProperty(exports, "switchBranch", {
87
+ enumerable: true,
88
+ get: function () {
89
+ return _switchBranch.default;
90
+ }
91
+ });
92
+ exports.writeFile = void 0;
91
93
 
92
94
  var _stream = require("stream");
93
95
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setTestInfoStatus = exports.jsonHelper = exports.jsonConcate = exports.fileHandler = exports.getRunnerDetail = void 0;
6
+ exports.setTestInfoStatus = exports.jsonHelper = exports.jsonConcate = exports.getRunnerDetail = exports.fileHandler = void 0;
7
7
 
8
8
  let fs = require('fs');
9
9
 
@@ -45,12 +45,21 @@ let fileHandler = {
45
45
  };
46
46
  exports.fileHandler = fileHandler;
47
47
 
48
+ const isObject = obj => obj && obj.constructor === {}.constructor;
49
+
50
+ const isArray = obj => obj && obj.constructor === [].constructor; // In below funtion
51
+ // this function is for concat two json object like _.extend,
52
+ // if botha array we concat them
53
+ // if both object we use call this function recurcively
54
+ // if both differend data type we will just assign it
55
+
56
+
48
57
  let jsonConcate = (receiverObj, senterObj) => {
49
58
  Object.keys(senterObj).map(key => {
50
59
  if (Object.prototype.hasOwnProperty.call(receiverObj, key)) {
51
- if (receiverObj[key].constructor === {}.constructor && senterObj[key].constructor === {}.constructor) {
60
+ if (isObject(receiverObj[key]) && isObject(senterObj[key])) {
52
61
  jsonConcate(receiverObj[key], senterObj[key]);
53
- } else if (receiverObj[key].constructor === [].constructor && senterObj[key].constructor === [].constructor) {
62
+ } else if (isArray(receiverObj[key]) && isArray(senterObj[key])) {
54
63
  receiverObj[key] = receiverObj[key].concat(senterObj[key]);
55
64
  } else {
56
65
  receiverObj[key] = senterObj[key];
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.reinstallDependencies = exports.reinstallDependencies1 = exports.collectPackageDiff = void 0;
6
+ exports.reinstallDependencies1 = exports.reinstallDependencies = exports.collectPackageDiff = void 0;
7
7
 
8
8
  var _fs = _interopRequireDefault(require("fs"));
9
9
 
package/npm8.md ADDED
@@ -0,0 +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 (`_`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/react-cli",
3
- "version": "0.0.1-exp.161.3",
3
+ "version": "0.0.1-exp.164.1",
4
4
  "description": "A CLI tool for build modern web application and libraries",
5
5
  "scripts": {
6
6
  "init": "node ./lib/utils/init.js",
@@ -35,7 +35,7 @@
35
35
  "@babel/preset-env": "7.11.0",
36
36
  "@babel/preset-react": "7.10.4",
37
37
  "@babel/runtime": "7.11.2",
38
- "@zohodesk/datetimejs": "1.0.0-exp.6.1",
38
+ "@zohodesk/datetimejs": "1.0.0-beta.8",
39
39
  "@zohodesk/eslint-plugin-react-performance": "1.0.3",
40
40
  "@zohodesk/eslint-plugin-zsecurity": "0.0.1-beta.4",
41
41
  "@zohodesk/normalizer": "1.0.2",
@@ -55,6 +55,7 @@
55
55
  "copy-webpack-plugin": "5.1.2",
56
56
  "core-js": "3.6.5",
57
57
  "css-loader": "4.2.1",
58
+ "debug": "4.3.3",
58
59
  "escodegen": "2.0.0",
59
60
  "eslint": "7.6.0",
60
61
  "eslint-html-reporter": "0.7.4",
@@ -94,7 +95,6 @@
94
95
  "postcss-selector-replace": "1.0.2",
95
96
  "prop-types": "15.7.2",
96
97
  "react": "16.13.1",
97
- "react-dev-utils": "10.2.1",
98
98
  "react-dom": "16.13.1",
99
99
  "react-error-overlay": "6.0.7",
100
100
  "react-redux": "7.2.1",
@@ -117,7 +117,7 @@
117
117
  "url-loader": "4.1.0",
118
118
  "velocity-react": "1.4.3",
119
119
  "webpack": "4.44.1",
120
- "webpack-bundle-analyzer": "3.8.0",
120
+ "webpack-bundle-analyzer": "4.5.0",
121
121
  "webpack-cli": "3.3.12",
122
122
  "webpack-core": "0.6.9",
123
123
  "webpack-dev-middleware": "3.7.2",