@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.
- package/README.md +35 -40
- package/docs/SelectorWeight.md +6 -0
- package/docs/VariableConversion.md +33 -1
- package/lib/babel/cmjs-plugins-presets.js +4 -0
- package/lib/babel/es-plugins-presets.js +4 -0
- package/lib/common/getEntries.js +10 -0
- package/lib/common/getPublicPathConfig.js +6 -0
- package/lib/common/index.js +5 -0
- package/lib/common/splitChunks.js +13 -2
- package/lib/common/sslcertUpdater.js +17 -6
- package/lib/common/templateParameters.js +2 -0
- package/lib/common/testPattern.js +21 -10
- package/lib/common/valueReplacer.js +15 -0
- package/lib/configs/jest.config.js +9 -0
- package/lib/configs/libAlias.js +2 -4
- package/lib/configs/webpack.component.umd.config.js +5 -0
- package/lib/configs/webpack.css.umd.config.js +13 -5
- package/lib/configs/webpack.dev.config.js +36 -2
- package/lib/configs/webpack.docs.config.js +21 -1
- package/lib/configs/webpack.impact.config.js +19 -1
- package/lib/configs/webpack.prod.config.js +37 -3
- package/lib/hooks/docsProptypeHook.js +7 -3
- package/lib/jest/commitedFilesResult.js +45 -3
- package/lib/jest/coverageCollector.js +11 -0
- package/lib/jest/jsonMaker.js +6 -0
- package/lib/jest/preProcessors/cssPreprocessor.js +8 -0
- package/lib/jest/preProcessors/jsPreprocessor.js +2 -0
- package/lib/jest/preProcessors/otherFilesPreprocessor.js +3 -0
- package/lib/jest/result.js +22 -0
- package/lib/jest/run.js +17 -6
- package/lib/jest/setup.js +57 -5
- package/lib/loaderUtils/configsAssetsLoaders.js +11 -1
- package/lib/loaderUtils/getCSSLoaders.js +35 -20
- package/lib/loaderUtils/getDevJsLoaders.js +8 -0
- package/lib/loaderUtils/index.js +3 -0
- package/lib/loaderUtils/windowsModification.js +11 -0
- package/lib/loaders/docsLoader.js +7 -0
- package/lib/loaders/docsPropsLoader.js +7 -3
- package/lib/loaders/fileBountryLoader.js +2 -0
- package/lib/loaders/fileLoader.js +22 -11
- package/lib/loaders/scriptInstrumentLoader.js +13 -5
- package/lib/loaders/selectorMappingLoader.js +25 -7
- package/lib/loaders/workerLoader.js +20 -4
- package/lib/middlewares/HMRMiddleware.js +26 -13
- package/lib/middlewares/SSTMiddleware.js +3 -0
- package/lib/pluginUtils/configHtmlWebpackPlugins.js +9 -3
- package/lib/pluginUtils/getDevPlugins.js +63 -17
- package/lib/pluginUtils/getDocsPlugins.js +10 -1
- package/lib/pluginUtils/getLibraryImactPlugins.js +5 -4
- package/lib/pluginUtils/getLibraryPlugins.js +5 -0
- package/lib/pluginUtils/getProdPlugins.js +72 -23
- package/lib/pluginUtils/getServerPlugins.js +5 -0
- package/lib/pluginUtils/getUMDCSSPlugins.js +7 -0
- package/lib/pluginUtils/getUMDComponentPlugins.js +7 -0
- package/lib/pluginUtils/index.js +8 -0
- package/lib/plugins/CdnChangePlugin.js +14 -0
- package/lib/plugins/CleanupStatsPlugin.js +5 -0
- package/lib/plugins/EFCPlugin.js +34 -23
- package/lib/plugins/EFCTemplatePlugin.js +32 -23
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +34 -8
- package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +17 -12
- package/lib/plugins/I18nSplitPlugin/I18nDependency.js +10 -4
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +39 -8
- package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +29 -14
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +22 -13
- package/lib/plugins/I18nSplitPlugin/index.js +23 -13
- package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +12 -2
- package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +1 -0
- package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +5 -0
- package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +6 -0
- package/lib/plugins/I18nSplitPlugin/utils/index.js +4 -0
- package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +20 -2
- package/lib/plugins/ManifestPlugin.js +17 -0
- package/lib/plugins/ModuleStatsPlugin.js +23 -0
- package/lib/plugins/OptimizeJSPlugin.js +7 -0
- package/lib/plugins/PublicPathCallbackPlugin.js +10 -0
- package/lib/plugins/PublicPathChangePlugin.js +36 -4
- package/lib/plugins/ReportGeneratePlugin.js +30 -4
- package/lib/plugins/RequireVariablePublicPlugin.js +6 -0
- package/lib/plugins/ResourceHintsPlugin.js +10 -3
- package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +17 -12
- package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +16 -9
- package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +5 -2
- package/lib/plugins/ScriptInstrumentPlugin.js +7 -0
- package/lib/plugins/SelectorPlugin.js +97 -0
- package/lib/plugins/ServiceWorkerPlugin.js +20 -4
- package/lib/plugins/ShadowDOMSupportPlugin.js +40 -3
- package/lib/plugins/SourceMapHookPlugin.js +9 -0
- package/lib/plugins/TPHashMappingPlugin.js +15 -1
- package/lib/plugins/UglifyCSSPlugin.js +9 -0
- package/lib/plugins/UnusedFilesFindPlugin.js +35 -2
- package/lib/plugins/VariableConversionCollector.js +252 -0
- package/lib/plugins/composeCommonPlugin.js +30 -0
- package/lib/plugins/index.js +19 -0
- package/lib/plugins/libraryImpactPlugin.js +32 -0
- package/lib/plugins/webpackwatchrunplugin.js +5 -0
- package/lib/postcss-plugins/ExcludePlugin.js +4 -0
- package/lib/postcss-plugins/RTLSplitPlugin.js +27 -14
- package/lib/postcss-plugins/ValueReplacer.js +6 -9
- package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +3 -0
- package/lib/postcss-plugins/hoverActivePlugin.js +66 -30
- package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +40 -13
- package/lib/postcss-plugins/variableModificationPlugin/index.js +215 -141
- package/lib/postcss-plugins/variableModifier.js +20 -13
- package/lib/schemas/index.js +23 -4
- package/lib/servers/clusterHubServer.js +10 -0
- package/lib/servers/devBuild.js +24 -13
- package/lib/servers/docsServer.js +2 -0
- package/lib/servers/docsServerCore.js +21 -0
- package/lib/servers/getCliPath.js +9 -0
- package/lib/servers/helpServer.js +5 -0
- package/lib/servers/httpsOptions.js +4 -0
- package/lib/servers/impactServer.js +34 -2
- package/lib/servers/mockserver.js +9 -0
- package/lib/servers/nowatchserver.js +34 -12
- package/lib/servers/scrServer.js +20 -13
- package/lib/servers/server.js +35 -7
- package/lib/servers/ssServer.js +16 -0
- package/lib/templates/CoverageScriptTemplate.js +14 -0
- package/lib/templates/WMSTemplate.js +12 -6
- package/lib/utils/babelPresets.js +2 -0
- package/lib/utils/clean.js +8 -2
- package/lib/utils/copy.js +6 -0
- package/lib/utils/copyTimezones.js +8 -0
- package/lib/utils/createEventStream.js +4 -0
- package/lib/utils/cssClassNameGenerate.js +19 -3
- package/lib/utils/cssURLReplacer.js +50 -38
- package/lib/utils/dependencyPostPublish.js +9 -0
- package/lib/utils/fileUtils.js +26 -0
- package/lib/utils/folderIterator.js +10 -0
- package/lib/utils/getComponents.js +21 -0
- package/lib/utils/getCurrentBranch.js +5 -0
- package/lib/utils/getDependenciesImpactList.js +21 -0
- package/lib/utils/getFileType.js +49 -0
- package/lib/utils/getHash.js +7 -0
- package/lib/utils/getIp.js +2 -0
- package/lib/utils/getOptions.js +39 -14
- package/lib/utils/getServerURL.js +7 -0
- package/lib/utils/index.js +47 -2
- package/lib/utils/init.js +1 -0
- package/lib/utils/initPreCommitHook.js +29 -6
- package/lib/utils/jsonHelper.js +19 -2
- package/lib/utils/libraryImpactConfig.js +2 -0
- package/lib/utils/lint/addScripts.js +5 -2
- package/lib/utils/lint/checkExistingConfig.js +12 -3
- package/lib/utils/lint/copyConfigs.js +3 -0
- package/lib/utils/lint/index.js +9 -0
- package/lib/utils/lint/lintScripts.js +1 -0
- package/lib/utils/lint/lintSetup.js +4 -3
- package/lib/utils/lint/lintStagedPreCommitHook.js +1 -0
- package/lib/utils/lint/question.js +7 -0
- package/lib/utils/lintReporter.js +20 -0
- package/lib/utils/mailSender.js +7 -0
- package/lib/utils/pullOrigin.js +4 -0
- package/lib/utils/reinstallDependencies.js +28 -0
- package/lib/utils/removeAttributes.js +7 -0
- package/lib/utils/repoClone.js +27 -2
- package/lib/utils/request.js +12 -0
- package/lib/utils/rtl.js +16 -4
- package/lib/utils/setEnvVariables.js +2 -0
- package/lib/utils/ssTestHack.js +10 -0
- package/lib/utils/switchBranch.js +4 -0
- package/lib/utils/urlConcat.js +4 -0
- package/lib/utils/useExitCleanup.js +10 -9
- package/package.json +10 -9
|
@@ -3,55 +3,57 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
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
|
-
|
|
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
|
-
|
|
12
|
-
|
|
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
|
-
|
|
23
|
-
|
|
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
|
-
|
|
41
|
-
|
|
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
|
-
|
|
46
|
-
|
|
45
|
+
|
|
46
|
+
const getUrls = css => {
|
|
47
|
+
const urlMatches = css.match(urlRegex);
|
|
47
48
|
let src = css;
|
|
49
|
+
|
|
48
50
|
if (urlMatches) {
|
|
49
|
-
|
|
51
|
+
const patterns = {};
|
|
50
52
|
urlMatches.forEach(pattern => {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
const url = formatUrl(pattern);
|
|
54
|
+
const hash = getHash(url);
|
|
53
55
|
patterns[url] = hash;
|
|
54
|
-
|
|
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
|
-
|
|
65
|
-
|
|
67
|
+
|
|
68
|
+
const cssUrlReplacer = (css, domains, chunkHash = {}) => {
|
|
69
|
+
const obj = getUrls(css);
|
|
66
70
|
let src = css;
|
|
71
|
+
|
|
67
72
|
if (obj) {
|
|
68
|
-
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
95
|
+
const {
|
|
88
96
|
font,
|
|
89
97
|
image
|
|
90
98
|
} = domains;
|
|
91
|
-
|
|
92
|
-
|
|
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',
|
package/lib/utils/fileUtils.js
CHANGED
|
@@ -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
|
+
}
|
package/lib/utils/getHash.js
CHANGED
|
@@ -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;
|
package/lib/utils/getIp.js
CHANGED
|
@@ -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);
|