@zohodesk/react-cli 0.0.1-exp.175.1 → 0.0.1-exp.176.11

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 (165) hide show
  1. package/README.md +35 -40
  2. package/docs/SelectorWeight.md +6 -0
  3. package/docs/VariableConversion.md +33 -1
  4. package/lib/babel/cmjs-plugins-presets.js +4 -0
  5. package/lib/babel/es-plugins-presets.js +4 -0
  6. package/lib/common/getEntries.js +10 -0
  7. package/lib/common/getPublicPathConfig.js +6 -0
  8. package/lib/common/index.js +5 -0
  9. package/lib/common/splitChunks.js +13 -2
  10. package/lib/common/sslcertUpdater.js +17 -6
  11. package/lib/common/templateParameters.js +2 -0
  12. package/lib/common/testPattern.js +21 -10
  13. package/lib/common/valueReplacer.js +15 -0
  14. package/lib/configs/jest.config.js +9 -0
  15. package/lib/configs/libAlias.js +2 -4
  16. package/lib/configs/webpack.component.umd.config.js +5 -0
  17. package/lib/configs/webpack.css.umd.config.js +13 -5
  18. package/lib/configs/webpack.dev.config.js +36 -2
  19. package/lib/configs/webpack.docs.config.js +21 -1
  20. package/lib/configs/webpack.impact.config.js +19 -1
  21. package/lib/configs/webpack.prod.config.js +37 -3
  22. package/lib/hooks/docsProptypeHook.js +7 -3
  23. package/lib/jest/commitedFilesResult.js +45 -3
  24. package/lib/jest/coverageCollector.js +11 -0
  25. package/lib/jest/jsonMaker.js +6 -0
  26. package/lib/jest/preProcessors/cssPreprocessor.js +8 -0
  27. package/lib/jest/preProcessors/jsPreprocessor.js +2 -0
  28. package/lib/jest/preProcessors/otherFilesPreprocessor.js +3 -0
  29. package/lib/jest/result.js +22 -0
  30. package/lib/jest/run.js +17 -6
  31. package/lib/jest/setup.js +57 -5
  32. package/lib/loaderUtils/configsAssetsLoaders.js +11 -1
  33. package/lib/loaderUtils/getCSSLoaders.js +35 -20
  34. package/lib/loaderUtils/getDevJsLoaders.js +8 -0
  35. package/lib/loaderUtils/index.js +3 -0
  36. package/lib/loaderUtils/windowsModification.js +11 -0
  37. package/lib/loaders/docsLoader.js +7 -0
  38. package/lib/loaders/docsPropsLoader.js +7 -3
  39. package/lib/loaders/fileBountryLoader.js +2 -0
  40. package/lib/loaders/fileLoader.js +22 -11
  41. package/lib/loaders/scriptInstrumentLoader.js +13 -5
  42. package/lib/loaders/selectorMappingLoader.js +25 -7
  43. package/lib/loaders/workerLoader.js +20 -4
  44. package/lib/middlewares/HMRMiddleware.js +26 -13
  45. package/lib/middlewares/SSTMiddleware.js +3 -0
  46. package/lib/pluginUtils/configHtmlWebpackPlugins.js +9 -3
  47. package/lib/pluginUtils/getDevPlugins.js +63 -17
  48. package/lib/pluginUtils/getDocsPlugins.js +10 -1
  49. package/lib/pluginUtils/getLibraryImactPlugins.js +5 -4
  50. package/lib/pluginUtils/getLibraryPlugins.js +5 -0
  51. package/lib/pluginUtils/getProdPlugins.js +72 -23
  52. package/lib/pluginUtils/getServerPlugins.js +5 -0
  53. package/lib/pluginUtils/getUMDCSSPlugins.js +7 -0
  54. package/lib/pluginUtils/getUMDComponentPlugins.js +7 -0
  55. package/lib/pluginUtils/index.js +8 -0
  56. package/lib/plugins/CdnChangePlugin.js +14 -0
  57. package/lib/plugins/CleanupStatsPlugin.js +5 -0
  58. package/lib/plugins/EFCPlugin.js +34 -23
  59. package/lib/plugins/EFCTemplatePlugin.js +32 -23
  60. package/lib/plugins/I18NInjectIntoIndexPlugin.js +34 -8
  61. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +17 -12
  62. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +10 -4
  63. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +39 -8
  64. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +29 -14
  65. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +22 -13
  66. package/lib/plugins/I18nSplitPlugin/index.js +23 -13
  67. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +12 -2
  68. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +1 -0
  69. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +5 -0
  70. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +6 -0
  71. package/lib/plugins/I18nSplitPlugin/utils/index.js +4 -0
  72. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +20 -2
  73. package/lib/plugins/ManifestPlugin.js +17 -0
  74. package/lib/plugins/ModuleStatsPlugin.js +23 -0
  75. package/lib/plugins/OptimizeJSPlugin.js +7 -0
  76. package/lib/plugins/PublicPathCallbackPlugin.js +10 -0
  77. package/lib/plugins/PublicPathChangePlugin.js +36 -4
  78. package/lib/plugins/ReportGeneratePlugin.js +30 -4
  79. package/lib/plugins/RequireVariablePublicPlugin.js +6 -0
  80. package/lib/plugins/ResourceHintsPlugin.js +10 -3
  81. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +17 -12
  82. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +16 -9
  83. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +5 -2
  84. package/lib/plugins/ScriptInstrumentPlugin.js +7 -0
  85. package/lib/plugins/SelectorPlugin.js +97 -0
  86. package/lib/plugins/ServiceWorkerPlugin.js +20 -4
  87. package/lib/plugins/ShadowDOMSupportPlugin.js +40 -3
  88. package/lib/plugins/SourceMapHookPlugin.js +9 -0
  89. package/lib/plugins/TPHashMappingPlugin.js +15 -1
  90. package/lib/plugins/UglifyCSSPlugin.js +9 -0
  91. package/lib/plugins/UnusedFilesFindPlugin.js +35 -2
  92. package/lib/plugins/VariableConversionCollector.js +252 -0
  93. package/lib/plugins/composeCommonPlugin.js +30 -0
  94. package/lib/plugins/index.js +19 -0
  95. package/lib/plugins/libraryImpactPlugin.js +32 -0
  96. package/lib/plugins/webpackwatchrunplugin.js +5 -0
  97. package/lib/postcss-plugins/ExcludePlugin.js +4 -0
  98. package/lib/postcss-plugins/RTLSplitPlugin.js +27 -14
  99. package/lib/postcss-plugins/ValueReplacer.js +6 -9
  100. package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +3 -0
  101. package/lib/postcss-plugins/hoverActivePlugin.js +66 -30
  102. package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +40 -13
  103. package/lib/postcss-plugins/variableModificationPlugin/index.js +215 -141
  104. package/lib/postcss-plugins/variableModifier.js +20 -13
  105. package/lib/schemas/index.js +23 -4
  106. package/lib/servers/clusterHubServer.js +10 -0
  107. package/lib/servers/devBuild.js +24 -13
  108. package/lib/servers/docsServer.js +2 -0
  109. package/lib/servers/docsServerCore.js +21 -0
  110. package/lib/servers/getCliPath.js +9 -0
  111. package/lib/servers/helpServer.js +5 -0
  112. package/lib/servers/httpsOptions.js +4 -0
  113. package/lib/servers/impactServer.js +34 -2
  114. package/lib/servers/mockserver.js +9 -0
  115. package/lib/servers/nowatchserver.js +34 -12
  116. package/lib/servers/scrServer.js +20 -13
  117. package/lib/servers/server.js +35 -7
  118. package/lib/servers/ssServer.js +16 -0
  119. package/lib/templates/CoverageScriptTemplate.js +14 -0
  120. package/lib/templates/WMSTemplate.js +12 -6
  121. package/lib/utils/babelPresets.js +2 -0
  122. package/lib/utils/clean.js +8 -2
  123. package/lib/utils/copy.js +6 -0
  124. package/lib/utils/copyTimezones.js +8 -0
  125. package/lib/utils/createEventStream.js +4 -0
  126. package/lib/utils/cssClassNameGenerate.js +19 -3
  127. package/lib/utils/cssURLReplacer.js +50 -38
  128. package/lib/utils/dependencyPostPublish.js +9 -0
  129. package/lib/utils/fileUtils.js +26 -0
  130. package/lib/utils/folderIterator.js +10 -0
  131. package/lib/utils/getComponents.js +21 -0
  132. package/lib/utils/getCurrentBranch.js +5 -0
  133. package/lib/utils/getDependenciesImpactList.js +21 -0
  134. package/lib/utils/getFileType.js +49 -0
  135. package/lib/utils/getHash.js +7 -0
  136. package/lib/utils/getIp.js +2 -0
  137. package/lib/utils/getOptions.js +39 -14
  138. package/lib/utils/getServerURL.js +7 -0
  139. package/lib/utils/index.js +47 -2
  140. package/lib/utils/init.js +1 -0
  141. package/lib/utils/initPreCommitHook.js +29 -6
  142. package/lib/utils/jsonHelper.js +19 -2
  143. package/lib/utils/libraryImpactConfig.js +2 -0
  144. package/lib/utils/lint/addScripts.js +5 -2
  145. package/lib/utils/lint/checkExistingConfig.js +12 -3
  146. package/lib/utils/lint/copyConfigs.js +3 -0
  147. package/lib/utils/lint/index.js +9 -0
  148. package/lib/utils/lint/lintScripts.js +1 -0
  149. package/lib/utils/lint/lintSetup.js +4 -3
  150. package/lib/utils/lint/lintStagedPreCommitHook.js +1 -0
  151. package/lib/utils/lint/question.js +7 -0
  152. package/lib/utils/lintReporter.js +20 -0
  153. package/lib/utils/mailSender.js +7 -0
  154. package/lib/utils/pullOrigin.js +4 -0
  155. package/lib/utils/reinstallDependencies.js +28 -0
  156. package/lib/utils/removeAttributes.js +7 -0
  157. package/lib/utils/repoClone.js +27 -2
  158. package/lib/utils/request.js +12 -0
  159. package/lib/utils/rtl.js +16 -4
  160. package/lib/utils/setEnvVariables.js +2 -0
  161. package/lib/utils/ssTestHack.js +10 -0
  162. package/lib/utils/switchBranch.js +4 -0
  163. package/lib/utils/urlConcat.js +4 -0
  164. package/lib/utils/useExitCleanup.js +10 -9
  165. package/package.json +10 -9
@@ -3,55 +3,57 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getUrls = exports.getFileType = exports.cssUrlReplacer = void 0;
6
+ exports.cssUrlReplacer = void 0;
7
+ Object.defineProperty(exports, "getFileType", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _getFileType.getFileType;
11
+ }
12
+ });
13
+ exports.getUrls = void 0;
14
+
7
15
  var _fs = _interopRequireDefault(require("fs"));
8
- var _path = _interopRequireDefault(require("path"));
16
+
9
17
  var _crypto = _interopRequireDefault(require("crypto"));
18
+
19
+ var _getFileType = require("./getFileType");
20
+
10
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- let urlRegex = /url\(.*?\)/g;
12
- let getHash = (file, isPath = false, needSubStr = true) => {
22
+
23
+ const urlRegex = /url\(.*?\)/g;
24
+
25
+ const getHash = (file, isPath = false, needSubStr = true) => {
13
26
  let hash = _crypto.default.createHash('md5');
27
+
14
28
  if (isPath) {
15
29
  hash.update(_fs.default.readFileSync(file));
16
30
  } else {
17
31
  hash.update(file);
18
32
  }
33
+
19
34
  hash = hash.digest('hex');
20
35
  return hash ? needSubStr ? hash.substring(0, 20) : hash : null;
21
36
  };
22
- let getFileType = file => {
23
- let {
24
- ext
25
- } = _path.default.parse(file);
26
- if (ext === '.gif' || ext === '.png' || ext === '.jpg' || ext === '.jpeg' || ext === '.ico') {
27
- return 'image';
28
- } else if (ext === '.svg' || ext === '.woff' || ext === '.eot' || ext === '.ttf' || ext === '.woff2') {
29
- return 'font';
30
- } else if (ext === '.js') {
31
- return 'js';
32
- } else if (ext === '.css') {
33
- return 'css';
34
- }
35
- return null;
36
- };
37
- exports.getFileType = getFileType;
38
- let formatUrl = str => {
37
+
38
+ const formatUrl = str => {
39
39
  let char = str.includes('"') ? '"' : str.includes('\'') ? '\'' : '(';
40
- let statingIdx = str.indexOf(char) + 1;
41
- let substr = str.substring(statingIdx, str.length);
40
+ const statingIdx = str.indexOf(char) + 1;
41
+ const substr = str.substring(statingIdx, str.length);
42
42
  char = char === '(' ? ')' : char;
43
43
  return substr.substring(0, substr.indexOf(char));
44
44
  };
45
- let getUrls = css => {
46
- let urlMatches = css.match(urlRegex);
45
+
46
+ const getUrls = css => {
47
+ const urlMatches = css.match(urlRegex);
47
48
  let src = css;
49
+
48
50
  if (urlMatches) {
49
- let patterns = {};
51
+ const patterns = {};
50
52
  urlMatches.forEach(pattern => {
51
- let url = formatUrl(pattern);
52
- let hash = getHash(url);
53
+ const url = formatUrl(pattern);
54
+ const hash = getHash(url);
53
55
  patterns[url] = hash;
54
- let regex = new RegExp(pattern.replace(/([<>*()?${}|])/g, '\\$1'), 'g');
56
+ const regex = new RegExp(pattern.replace(/([<>*()?${}|])/g, '\\$1'), 'g');
55
57
  src = src.replace(regex, hash);
56
58
  });
57
59
  return {
@@ -60,16 +62,20 @@ let getUrls = css => {
60
62
  };
61
63
  }
62
64
  };
65
+
63
66
  exports.getUrls = getUrls;
64
- let cssUrlReplacer = (css, domains, chunkHash = {}) => {
65
- let obj = getUrls(css);
67
+
68
+ const cssUrlReplacer = (css, domains, chunkHash = {}) => {
69
+ const obj = getUrls(css);
66
70
  let src = css;
71
+
67
72
  if (obj) {
68
- let patterns = obj.urls;
73
+ const patterns = obj.urls;
69
74
  src = obj.css;
70
75
  Object.keys(patterns).forEach(pattern => {
71
76
  let urlParts = pattern.split('/');
72
77
  let fileName = urlParts.pop();
78
+
73
79
  if (fileName.includes('#')) {
74
80
  if (fileName.includes('?')) {
75
81
  fileName = fileName.replace(/\?.*#/g, '#');
@@ -77,21 +83,24 @@ let cssUrlReplacer = (css, domains, chunkHash = {}) => {
77
83
  } else {
78
84
  fileName = fileName.replace(/\?.*$/g, '');
79
85
  }
80
- let hash = patterns[pattern];
81
- let filename = fileName.replace(/(\?|#).*?$/g, '');
82
- let regex = new RegExp(hash, 'g');
86
+
87
+ const hash = patterns[pattern];
88
+ const filename = fileName.replace(/(\?|#).*?$/g, '');
89
+ const regex = new RegExp(hash, 'g');
83
90
  let {
84
91
  hashedName
85
92
  } = chunkHash[filename] || fileName;
93
+
86
94
  if (domains && typeof urlParts[0] === 'string' && !urlParts[0].includes('http')) {
87
- let {
95
+ const {
88
96
  font,
89
97
  image
90
98
  } = domains;
91
- let type = getFileType(filename);
92
- let customPath = type === 'image' ? `${image}/images` : type === 'font' ? `${font}/fonts` : urlParts.join('/');
99
+ const type = (0, _getFileType.getFileType)(filename);
100
+ const customPath = type === 'image' ? `${image}/images` : type === 'font' ? `${font}/fonts` : urlParts.join('/');
93
101
  urlParts = customPath.split('/');
94
102
  }
103
+
95
104
  if (hashedName) {
96
105
  if (fileName.includes('#')) {
97
106
  if (fileName.includes('?')) {
@@ -101,11 +110,14 @@ let cssUrlReplacer = (css, domains, chunkHash = {}) => {
101
110
  }
102
111
  }
103
112
  }
113
+
104
114
  urlParts.push(hashedName || fileName);
105
115
  urlParts = urlParts.join('/');
106
116
  src = src.replace(regex, `url('${urlParts}')`);
107
117
  });
108
118
  }
119
+
109
120
  return src;
110
121
  };
122
+
111
123
  exports.cssUrlReplacer = cssUrlReplacer;
@@ -1,22 +1,31 @@
1
1
  "use strict";
2
2
 
3
3
  var _child_process = require("child_process");
4
+
4
5
  var _path = _interopRequireDefault(require("path"));
6
+
5
7
  var _request = _interopRequireDefault(require("./request"));
8
+
6
9
  var _index = require("./index");
10
+
7
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
8
13
  let changeset = (0, _child_process.execSync)('git rev-parse HEAD', {
9
14
  cwd: process.cwd()
10
15
  }).toString() || '';
11
16
  changeset = changeset.trim();
17
+
12
18
  if (!changeset) {
13
19
  throw new Error('Changeset doesn\'t exists');
14
20
  }
21
+
15
22
  (0, _index.log)(changeset, 'changeset');
23
+
16
24
  let {
17
25
  version,
18
26
  name
19
27
  } = require(_path.default.join(process.cwd(), './package.json'));
28
+
20
29
  (0, _request.default)({
21
30
  url: `${'ht'}${'tp'}://tsi-desk-mock.tsi.zohocorpin.com:8080/Hbase/addKey?method=addkey`,
22
31
  method: 'POST',
@@ -4,21 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.copy = void 0;
7
+
7
8
  var _path = _interopRequireDefault(require("path"));
9
+
8
10
  var _fs = _interopRequireDefault(require("fs"));
11
+
9
12
  var _index = require("./index");
13
+
10
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
11
16
  let removeDirectory = dirPath => {
12
17
  _fs.default.readdirSync(dirPath).forEach(fileOrDir => {
13
18
  let fileOrDirPath = _path.default.join(dirPath, fileOrDir);
19
+
14
20
  if (_fs.default.statSync(fileOrDirPath).isDirectory()) {
15
21
  removeDirectory(fileOrDirPath);
16
22
  } else {
17
23
  _fs.default.unlinkSync(fileOrDirPath);
18
24
  }
19
25
  });
26
+
20
27
  _fs.default.rmdirSync(dirPath);
21
28
  };
29
+
22
30
  let copyFile = (srcPath, targetPath, isCopy = true, changeExt) => {
23
31
  let {
24
32
  ext,
@@ -26,6 +34,7 @@ let copyFile = (srcPath, targetPath, isCopy = true, changeExt) => {
26
34
  name,
27
35
  root
28
36
  } = _path.default.parse(targetPath);
37
+
29
38
  if (changeExt[ext]) {
30
39
  ext = changeExt[ext];
31
40
  targetPath = _path.default.format({
@@ -37,7 +46,9 @@ let copyFile = (srcPath, targetPath, isCopy = true, changeExt) => {
37
46
  }
38
47
 
39
48
  let readStream = _fs.default.createReadStream(srcPath);
49
+
40
50
  let writeStream = _fs.default.createWriteStream(targetPath);
51
+
41
52
  readStream.pipe(writeStream);
42
53
  writeStream.on('finish', () => {
43
54
  if (!isCopy) {
@@ -45,23 +56,29 @@ let copyFile = (srcPath, targetPath, isCopy = true, changeExt) => {
45
56
  }
46
57
  });
47
58
  };
59
+
48
60
  let iterateDirectory = (srcPath, targetPath, isCopy, extensions, flatten, changeExt) => {
49
61
  _fs.default.readdirSync(srcPath).forEach(fileOrDir => {
50
62
  let fromPath = _path.default.join(srcPath, fileOrDir);
63
+
51
64
  let toPath = targetPath;
65
+
52
66
  if (flatten !== 'flatten' || !_fs.default.statSync(fromPath).isDirectory()) {
53
67
  toPath = _path.default.join(targetPath, fileOrDir);
54
68
  }
69
+
55
70
  if (_fs.default.statSync(fromPath).isDirectory()) {
56
71
  if (!_fs.default.existsSync(toPath)) {
57
72
  _fs.default.mkdirSync(toPath);
58
73
  }
74
+
59
75
  iterateDirectory(fromPath, toPath, isCopy, extensions, flatten, changeExt);
60
76
  } else {
61
77
  if (extensions) {
62
78
  let {
63
79
  ext
64
80
  } = _path.default.parse(fromPath);
81
+
65
82
  if (extensions.indexOf(ext) !== -1) {
66
83
  copyFile(fromPath, toPath, true, changeExt);
67
84
  }
@@ -71,29 +88,38 @@ let iterateDirectory = (srcPath, targetPath, isCopy, extensions, flatten, change
71
88
  }
72
89
  });
73
90
  };
91
+
74
92
  let copy = (srcPath, targetPath, isCopy, exts, flatten, changeExt = {}) => {
75
93
  if (_fs.default.statSync(srcPath).isDirectory()) {
76
94
  if (!_fs.default.existsSync(targetPath)) {
77
95
  _fs.default.mkdirSync(targetPath);
78
96
  }
97
+
79
98
  let {
80
99
  name
81
100
  } = _path.default.parse(srcPath);
101
+
82
102
  let originPath = targetPath;
103
+
83
104
  if (flatten !== 'flatten') {
84
105
  originPath = _path.default.join(targetPath, name);
106
+
85
107
  if (!_fs.default.existsSync(originPath)) {
86
108
  _fs.default.mkdirSync(originPath);
87
109
  }
88
110
  }
111
+
89
112
  iterateDirectory(srcPath, originPath, isCopy, exts, flatten, changeExt);
90
113
  } else {
91
114
  /* direct file copy issue there but that feature not needed i think*/
92
115
  copyFile(srcPath, targetPath, isCopy, changeExt);
93
116
  }
117
+
94
118
  if (!isCopy) {
95
119
  removeDirectory(srcPath);
96
120
  }
121
+
97
122
  (0, _index.log)(isCopy ? 'Folder/file are copied!' : 'Folder/file are moved!');
98
123
  };
124
+
99
125
  exports.copy = copy;
@@ -4,26 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _fs = _interopRequireDefault(require("fs"));
9
+
8
10
  var _path = _interopRequireDefault(require("path"));
11
+
9
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
10
14
  let iterateDirectory = (srcPath, targetPath, extensions, flatten, cb) => {
11
15
  _fs.default.readdirSync(srcPath).forEach(fileOrDir => {
12
16
  let fromPath = _path.default.join(srcPath, fileOrDir);
17
+
13
18
  let toPath = targetPath;
19
+
14
20
  if (flatten !== 'flatten' || !_fs.default.statSync(fromPath).isDirectory()) {
15
21
  toPath = _path.default.join(targetPath, fileOrDir);
16
22
  }
23
+
17
24
  if (_fs.default.statSync(fromPath).isDirectory()) {
18
25
  if (!_fs.default.existsSync(toPath)) {
19
26
  _fs.default.mkdirSync(toPath);
20
27
  }
28
+
21
29
  iterateDirectory(fromPath, toPath, extensions, flatten, cb);
22
30
  } else {
23
31
  if (extensions) {
24
32
  let {
25
33
  ext
26
34
  } = _path.default.parse(fromPath);
35
+
27
36
  if (extensions.indexOf(ext) !== -1) {
28
37
  cb(fromPath, toPath);
29
38
  }
@@ -33,5 +42,6 @@ let iterateDirectory = (srcPath, targetPath, extensions, flatten, cb) => {
33
42
  }
34
43
  });
35
44
  };
45
+
36
46
  var _default = iterateDirectory;
37
47
  exports.default = _default;
@@ -4,20 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  let eliminateDuplicates = inputList => {
8
9
  let outputList = [];
9
10
  let tempObj = {};
11
+
10
12
  for (let i = 0; i < inputList.length; i++) {
11
13
  tempObj[inputList[i]] = 1;
12
14
  }
15
+
13
16
  for (let j in tempObj) {
14
17
  if (tempObj[j]) {
15
18
  outputList.push(j);
16
19
  }
17
20
  }
21
+
18
22
  outputList = outputList.filter(item => item);
19
23
  return outputList;
20
24
  };
25
+
21
26
  let removeExtn = componentObjectList => {
22
27
  let fileNameArray = [];
23
28
  componentObjectList.forEach(fileObject => {
@@ -26,31 +31,41 @@ let removeExtn = componentObjectList => {
26
31
  });
27
32
  return fileNameArray;
28
33
  };
34
+
29
35
  let getChangedFileName = impactedObject => {
30
36
  let changedComponentsList = [];
37
+
31
38
  if (impactedObject.ADDED && impactedObject.ADDED.length) {
32
39
  changedComponentsList = changedComponentsList.concat(removeExtn(impactedObject.ADDED));
33
40
  }
41
+
34
42
  if (impactedObject.UPDATED && impactedObject.UPDATED.length) {
35
43
  changedComponentsList = changedComponentsList.concat(removeExtn(impactedObject.UPDATED));
36
44
  }
45
+
37
46
  if (impactedObject.REMOVED && impactedObject.REMOVED.length) {
38
47
  changedComponentsList = changedComponentsList.concat(removeExtn(impactedObject.REMOVED));
39
48
  }
49
+
40
50
  return changedComponentsList;
41
51
  };
52
+
42
53
  let referencedbyList = [];
54
+
43
55
  let getReferencedBy = (moduleDataObject, fileName) => {
44
56
  if (moduleDataObject[fileName]) {
45
57
  let referenceObject = moduleDataObject[fileName];
46
58
  let referencedbyObject = referenceObject.referencedby;
59
+
47
60
  if (referencedbyObject.length) {
48
61
  if (!referencedbyList.includes(referenceObject.docsName)) {
49
62
  referencedbyList.push(referenceObject.docsName);
50
63
  }
64
+
51
65
  referencedbyObject.forEach(referencedByFile => {
52
66
  if (!referencedbyList.includes(moduleDataObject[referencedByFile].docsName)) {
53
67
  let result = getReferencedBy(moduleDataObject, referencedByFile);
68
+
54
69
  if (typeof result === 'string') {
55
70
  referencedbyList.push(result);
56
71
  }
@@ -60,8 +75,10 @@ let getReferencedBy = (moduleDataObject, fileName) => {
60
75
  return fileName;
61
76
  }
62
77
  }
78
+
63
79
  return referencedbyList;
64
80
  };
81
+
65
82
  let checkDocs = AppComponentObject => {
66
83
  let unDocsComponentNameList = [];
67
84
  Object.keys(AppComponentObject).forEach(actionKey => {
@@ -79,6 +96,7 @@ let checkDocs = AppComponentObject => {
79
96
  });
80
97
  return unDocsComponentNameList;
81
98
  };
99
+
82
100
  var _default = (mDataStr, ComponentObj) => {
83
101
  let mDataObject = JSON.parse(mDataStr);
84
102
  let impactedComponentList = [];
@@ -87,9 +105,11 @@ var _default = (mDataStr, ComponentObj) => {
87
105
  if (libraryName === 'AppSource') {
88
106
  unDocsComList = checkDocs(ComponentObj[libraryName]);
89
107
  }
108
+
90
109
  let totalChangedFilesList = getChangedFileName(ComponentObj[libraryName]);
91
110
  totalChangedFilesList.forEach(changedFileName => {
92
111
  let referencedByComponents = getReferencedBy(mDataObject, changedFileName);
112
+
93
113
  if (Array.isArray(referencedByComponents)) {
94
114
  impactedComponentList = impactedComponentList.concat(referencedByComponents);
95
115
  } else if (typeof referencedByComponents === 'string') {
@@ -102,4 +122,5 @@ var _default = (mDataStr, ComponentObj) => {
102
122
  unDocsComList: unDocsComList
103
123
  };
104
124
  };
125
+
105
126
  exports.default = _default;
@@ -4,9 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _child_process = require("child_process");
9
+
8
10
  var _default = (type = 'git', cwd = process.cwd()) => {
9
11
  let results;
12
+
10
13
  if (type === 'git') {
11
14
  results = (0, _child_process.spawnSync)('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
12
15
  encoding: 'utf8',
@@ -18,7 +21,9 @@ var _default = (type = 'git', cwd = process.cwd()) => {
18
21
  cwd
19
22
  });
20
23
  }
24
+
21
25
  let [currentBranch] = results && results.output ? results.output.filter(d => d) : [''];
22
26
  return currentBranch.replace(/(\r\n|\n|\r)/gm, '');
23
27
  };
28
+
24
29
  exports.default = _default;
@@ -4,19 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _path = _interopRequireDefault(require("path"));
9
+
8
10
  var _request = _interopRequireDefault(require("./request"));
11
+
9
12
  var _libraryImpactConfig = _interopRequireDefault(require("./libraryImpactConfig"));
13
+
10
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
11
16
  let dependencies = ['@zohodesk/components', '@zohodesk/dot', '@zohodesk/icons', '@zohodesk/svg', '@zohodesk/variables'];
17
+
12
18
  let getCurrentDependenciesInfo = () => {
13
19
  let packageJson = require(_path.default.join(process.cwd(), 'package.json'));
20
+
14
21
  let info = {};
22
+
15
23
  for (let dependency of dependencies) {
16
24
  info[dependency] = packageJson.dependencies[dependency];
17
25
  }
26
+
18
27
  return info;
19
28
  };
29
+
20
30
  let getLiveDependenciesInfo = (branch, tokenGit) => new Promise((resolve, reject) => {
21
31
  let url = `${'ht'}${'tps'}://zgit.csez.zohocorpin.com/api/v4/projects/1143/repository/files/jsapps%2Fsupportapp%2Fpackage.json?ref=${branch}`;
22
32
  (0, _request.default)({
@@ -32,12 +42,15 @@ let getLiveDependenciesInfo = (branch, tokenGit) => new Promise((resolve, reject
32
42
  dependencies: depend
33
43
  } = JSON.parse(Buffer.from(content, 'base64').toString());
34
44
  let info = {};
45
+
35
46
  for (let dependency of dependencies) {
36
47
  info[dependency] = depend[dependency];
37
48
  }
49
+
38
50
  resolve(info);
39
51
  }).catch(reject);
40
52
  });
53
+
41
54
  let getDependencyChangeset = (dependency, version) => {
42
55
  return new Promise(resolve => {
43
56
  let url = `${'ht'}${'tp'}://tsi-desk-mock.tsi.zohocorpin.com:8080/Hbase/getKey?method=getkey&tablename=${dependency}_changesets&row=dependencies_changesets&column=${version}`;
@@ -49,10 +62,12 @@ let getDependencyChangeset = (dependency, version) => {
49
62
  if (body == "") {
50
63
  console.log("Changeset for the " + dependency + " version " + version + " not stored in Hbase!");
51
64
  }
65
+
52
66
  resolve(body);
53
67
  });
54
68
  });
55
69
  };
70
+
56
71
  let getImpactDiff = (srcBranch, targetBranch, appName) => new Promise(resolve => {
57
72
  let diff = {
58
73
  [appName]: {}
@@ -77,9 +92,11 @@ let getImpactDiff = (srcBranch, targetBranch, appName) => new Promise(resolve =>
77
92
  name,
78
93
  ext
79
94
  } = _path.default.parse(FILEPATH);
95
+
80
96
  if (!diff[appName][key]) {
81
97
  diff[appName][key] = [];
82
98
  }
99
+
83
100
  diff[appName][key].push({
84
101
  name: name + ext,
85
102
  FILEPATH
@@ -90,11 +107,13 @@ let getImpactDiff = (srcBranch, targetBranch, appName) => new Promise(resolve =>
90
107
  resolve(diff);
91
108
  });
92
109
  });
110
+
93
111
  var _default = (srcBranch, liveBranch, tokenGit, serviceName = 'ZohoDeskLibrary') => new Promise(resolve => {
94
112
  let currentDependencies = getCurrentDependenciesInfo();
95
113
  getLiveDependenciesInfo(liveBranch, tokenGit).then(liveDependencies => {
96
114
  let diff = {};
97
115
  let promises = [];
116
+
98
117
  for (let dependency of dependencies) {
99
118
  promises.push(new Promise(resolve => {
100
119
  if (currentDependencies[dependency] !== liveDependencies[dependency]) {
@@ -114,6 +133,7 @@ var _default = (srcBranch, liveBranch, tokenGit, serviceName = 'ZohoDeskLibrary'
114
133
  }
115
134
  }));
116
135
  }
136
+
117
137
  promises.push(new Promise(resolve => {
118
138
  getImpactDiff(srcBranch, liveBranch, 'AppSource').then(impacts => {
119
139
  Object.assign(diff, impacts);
@@ -127,4 +147,5 @@ var _default = (srcBranch, liveBranch, tokenGit, serviceName = 'ZohoDeskLibrary'
127
147
  throw e;
128
148
  });
129
149
  });
150
+
130
151
  exports.default = _default;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFileType = getFileType;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ /* eslint-disable no-use-before-define */
13
+ function getFileType(file) {
14
+ const {
15
+ ext
16
+ } = _path.default.parse(file);
17
+
18
+ if (isImageFileExt(ext)) {
19
+ return 'image';
20
+ } else if (isFontFileExt(ext)) {
21
+ return 'font';
22
+ } else if (isVideoFileExt(ext)) {
23
+ return 'video';
24
+ } else if (isAudioFileExt(ext)) {
25
+ return 'audio';
26
+ } else if (ext === '.js') {
27
+ return 'js';
28
+ } else if (ext === '.css') {
29
+ return 'css';
30
+ }
31
+
32
+ return null;
33
+ }
34
+
35
+ function isImageFileExt(ext) {
36
+ return ext === '.gif' || ext === '.png' || ext === '.jpg' || ext === '.jpeg' || ext === '.ico';
37
+ }
38
+
39
+ function isFontFileExt(ext) {
40
+ return ext === '.svg' || ext === '.woff' || ext === '.eot' || ext === '.ttf' || ext === '.woff2';
41
+ }
42
+
43
+ function isVideoFileExt(ext) {
44
+ return ext === '.mp4';
45
+ }
46
+
47
+ function isAudioFileExt(ext) {
48
+ return ext === '.ogg';
49
+ }
@@ -4,15 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = getHash;
7
+
7
8
  var _crypto = _interopRequireDefault(require("crypto"));
9
+
8
10
  var _fs = _interopRequireDefault(require("fs"));
11
+
9
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
10
14
  function getHash(file, size = 20, isPath = false) {
11
15
  let hash = _crypto.default.createHash('md5');
16
+
12
17
  let fileNew = file;
18
+
13
19
  if (isPath) {
14
20
  fileNew = _fs.default.readFileSync(file);
15
21
  }
22
+
16
23
  hash.update(fileNew);
17
24
  hash = hash.digest('hex');
18
25
  return hash ? hash.substring(0, size) : null;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  let os = require('os');
4
+
4
5
  module.exports = function getIP() {
5
6
  let ifaces = os.networkInterfaces();
6
7
  let ips = [];
@@ -9,6 +10,7 @@ module.exports = function getIP() {
9
10
  if ('IPv4' !== iface.family || iface.internal !== false) {
10
11
  return null;
11
12
  }
13
+
12
14
  return iface.address;
13
15
  }).filter(a => a);
14
16
  ips = ips.concat(a);