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

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