@zohodesk/react-cli 0.0.1-beta.99 → 0.0.1-betaa.138.2

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 (202) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +183 -183
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +636 -491
  5. package/bin/cli.js +372 -367
  6. package/files/eslintrc.js +57 -0
  7. package/files/prettierrc.js +3 -0
  8. package/lib/babel/cmjs-plugins-presets.js +16 -9
  9. package/lib/babel/es-plugins-presets.js +26 -14
  10. package/lib/common/getEntries.js +31 -22
  11. package/lib/common/getPublicPathConfig.js +27 -13
  12. package/lib/common/index.js +21 -25
  13. package/lib/common/splitChunks.js +62 -53
  14. package/lib/common/templateParameters.js +10 -8
  15. package/lib/configs/jest.config.js +15 -25
  16. package/lib/configs/webpack.component.umd.config.js +31 -37
  17. package/lib/configs/webpack.css.umd.config.js +44 -47
  18. package/lib/configs/webpack.dev.config.js +70 -52
  19. package/lib/configs/webpack.docs.config.js +106 -106
  20. package/lib/configs/webpack.prod.config.js +95 -75
  21. package/lib/hooks/docsProptypeHook.js +32 -38
  22. package/lib/jest/commitedFilesResult.js +103 -74
  23. package/lib/jest/coverageCollector.js +41 -21
  24. package/lib/jest/jsonMaker.js +15 -16
  25. package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
  26. package/lib/jest/preProcessors/jsPreprocessor.js +3 -5
  27. package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
  28. package/lib/jest/result.js +90 -45
  29. package/lib/jest/run.js +43 -43
  30. package/lib/jest/setup.js +102 -95
  31. package/lib/loaderUtils/getCSSLoaders.js +21 -22
  32. package/lib/loaderUtils/getDevJsLoaders.js +25 -23
  33. package/lib/loaderUtils/index.js +11 -13
  34. package/lib/loaders/docsLoader.js +15 -15
  35. package/lib/loaders/docsPropsLoader.js +14 -17
  36. package/lib/loaders/fileLoader.js +33 -35
  37. package/lib/loaders/scriptInstrumentLoader.js +21 -20
  38. package/lib/loaders/workerLoader.js +136 -0
  39. package/lib/middlewares/HMRMiddleware.js +54 -45
  40. package/lib/middlewares/SSTMiddleware.js +8 -5
  41. package/lib/pluginUtils/getDevPlugins.js +114 -52
  42. package/lib/pluginUtils/getDocsPlugins.js +25 -29
  43. package/lib/pluginUtils/getLibraryPlugins.js +8 -10
  44. package/lib/pluginUtils/getProdPlugins.js +163 -74
  45. package/lib/pluginUtils/getServerPlugins.js +8 -11
  46. package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
  47. package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
  48. package/lib/pluginUtils/index.js +36 -43
  49. package/lib/plugins/CdnChangePlugin.js +63 -0
  50. package/lib/plugins/CleanupStatsPlugin.js +18 -32
  51. package/lib/plugins/CustomAttributePlugin.js +79 -0
  52. package/lib/plugins/CustomAttributePlugin.md +35 -0
  53. package/lib/plugins/EFCPlugin.js +185 -0
  54. package/lib/plugins/I18NInjectIntoIndexPlugin.js +118 -52
  55. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
  56. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
  57. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
  58. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
  59. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
  60. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
  61. package/lib/plugins/I18nSplitPlugin/README.md +25 -0
  62. package/lib/plugins/I18nSplitPlugin/index.js +185 -0
  63. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
  64. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
  65. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
  66. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
  67. package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
  68. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
  69. package/lib/plugins/ManifestPlugin.js +52 -63
  70. package/lib/plugins/ModuleStatsPlugin.js +83 -173
  71. package/lib/plugins/OptimizeJSPlugin.js +24 -41
  72. package/lib/plugins/PublicPathCallbackPlugin.js +42 -116
  73. package/lib/plugins/PublicPathChangePlugin.js +175 -284
  74. package/lib/plugins/ReportGeneratePlugin.js +150 -151
  75. package/lib/plugins/ResourceHintsPlugin.js +53 -35
  76. package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
  77. package/lib/plugins/ServiceWorkerPlugin.js +81 -57
  78. package/lib/plugins/ShadowDOMSupportPlugin.js +153 -234
  79. package/lib/plugins/SourceMapHookPlugin.js +21 -33
  80. package/lib/plugins/TPHashMappingPlugin.js +67 -0
  81. package/lib/plugins/UglifyCSSPlugin.js +23 -30
  82. package/lib/plugins/UnusedFilesFindPlugin.js +137 -152
  83. package/lib/plugins/index.js +100 -91
  84. package/lib/plugins/webpackwatchrunplugin.js +18 -30
  85. package/lib/postcss-plugins/ExcludeRTLPlugin.js +14 -17
  86. package/lib/schemas/index.js +336 -81
  87. package/lib/servers/clusterHubServer.js +22 -26
  88. package/lib/servers/docsServer.js +3 -5
  89. package/lib/servers/docsServerCore.js +84 -91
  90. package/lib/servers/helpServer.js +19 -21
  91. package/lib/servers/impactServer.js +99 -92
  92. package/lib/servers/mockserver.js +24 -24
  93. package/lib/servers/scrServer.js +78 -98
  94. package/lib/servers/server.js +101 -122
  95. package/lib/servers/ssServer.js +63 -61
  96. package/lib/sh/pre-commit.sh +34 -34
  97. package/lib/sh/reportPublish.sh +45 -46
  98. package/lib/templates/CoverageScriptTemplate.js +45 -18
  99. package/lib/templates/WMSTemplate.js +17 -18
  100. package/lib/templates/linterConstant.js +6 -4
  101. package/lib/utils/babelPresets.js +12 -5
  102. package/lib/utils/buildstats.html +148 -148
  103. package/lib/utils/clean.js +12 -11
  104. package/lib/utils/copy.js +12 -34
  105. package/lib/utils/copyTimezones.js +9 -16
  106. package/lib/utils/createEventStream.js +24 -19
  107. package/lib/utils/cssClassNameGenerate.js +44 -73
  108. package/lib/utils/cssURLReplacer.js +60 -54
  109. package/lib/utils/dependencyPostPublish.js +20 -19
  110. package/lib/utils/fileUtils.js +66 -54
  111. package/lib/utils/folderIterator.js +20 -21
  112. package/lib/utils/getComponents.js +70 -27
  113. package/lib/utils/getCurrentBranch.js +11 -17
  114. package/lib/utils/getDependenciesImpactList.js +114 -187
  115. package/lib/utils/getHash.js +9 -13
  116. package/lib/utils/getIp.js +9 -9
  117. package/lib/utils/getOptions.js +26 -29
  118. package/lib/utils/getServerURL.js +19 -10
  119. package/lib/utils/index.js +147 -126
  120. package/lib/utils/init.js +2 -2
  121. package/lib/utils/initPreCommitHook.js +40 -32
  122. package/lib/utils/jsonHelper.js +37 -21
  123. package/lib/utils/lint/addScripts.js +27 -0
  124. package/lib/utils/lint/checkExistingConfig.js +67 -0
  125. package/lib/utils/lint/copyConfigs.js +24 -0
  126. package/lib/utils/lint/index.js +54 -0
  127. package/lib/utils/lint/lintScripts.js +11 -0
  128. package/lib/utils/lint/lintSetup.js +31 -0
  129. package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
  130. package/lib/utils/lint/question.js +30 -0
  131. package/lib/utils/lintReporter.js +70 -56
  132. package/lib/utils/mailSender.js +12 -27
  133. package/lib/utils/pullOrigin.js +21 -18
  134. package/lib/utils/reinstallDependencies.js +76 -85
  135. package/lib/utils/removeAttributes.js +25 -23
  136. package/lib/utils/repoClone.js +47 -45
  137. package/lib/utils/request.js +64 -77
  138. package/lib/utils/resultSchema.json +73 -73
  139. package/lib/utils/rtl.js +22 -29
  140. package/lib/utils/setEnvVariables.js +5 -6
  141. package/lib/utils/ssTestHack.js +21 -19
  142. package/lib/utils/switchBranch.js +21 -20
  143. package/lib/utils/urlConcat.js +22 -0
  144. package/package.json +141 -136
  145. package/templates/app/.eslintrc.js +140 -140
  146. package/templates/app/README.md +12 -12
  147. package/templates/app/app/index.html +24 -24
  148. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  149. package/templates/app/app/properties/i18nkeys.json +3 -3
  150. package/templates/app/docs/all.html +69 -69
  151. package/templates/app/mockapi/index.js +18 -18
  152. package/templates/app/package.json +37 -37
  153. package/templates/app/src/actions/SampleActions/index.js +37 -37
  154. package/templates/app/src/actions/index.js +65 -65
  155. package/templates/app/src/appUrls.js +19 -19
  156. package/templates/app/src/components/Alert/Alert.js +134 -134
  157. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  158. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  159. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  160. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  161. package/templates/app/src/components/Sample/SampleList.js +61 -61
  162. package/templates/app/src/components/Slider/Slider.css +41 -41
  163. package/templates/app/src/components/Slider/Slider.js +55 -55
  164. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  165. package/templates/app/src/containers/AppContainer/index.js +96 -96
  166. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  167. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  168. package/templates/app/src/containers/DevTools/index.js +10 -10
  169. package/templates/app/src/containers/Header/index.js +67 -67
  170. package/templates/app/src/containers/Header/index.module.css +43 -43
  171. package/templates/app/src/containers/Redirect/index.js +63 -63
  172. package/templates/app/src/containers/Redirector/index.js +47 -47
  173. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  174. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  175. package/templates/app/src/historyChange.js +5 -5
  176. package/templates/app/src/index.html +10 -10
  177. package/templates/app/src/index.js +24 -24
  178. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  179. package/templates/app/src/reducers/alertData.js +11 -11
  180. package/templates/app/src/reducers/index.js +6 -6
  181. package/templates/app/src/reducers/samples.js +19 -19
  182. package/templates/app/src/store/configureStore.dev.js +51 -51
  183. package/templates/app/src/store/configureStore.js +5 -5
  184. package/templates/app/src/store/configureStore.prod.js +26 -26
  185. package/templates/app/src/util/Common.js +5 -5
  186. package/templates/app/src/util/RequestAPI.js +132 -132
  187. package/templates/docs/all.html +249 -249
  188. package/templates/docs/component.html +178 -178
  189. package/templates/docs/components.html +221 -221
  190. package/templates/docs/css/b.min.css +6 -6
  191. package/templates/docs/css/component.css +42 -42
  192. package/templates/docs/css/componentTest.css +6 -6
  193. package/templates/docs/css/hopscotch.css +585 -585
  194. package/templates/docs/css/style.css +1022 -1022
  195. package/templates/docs/index.html +1493 -1493
  196. package/templates/docs/js/active-line.js +72 -72
  197. package/templates/docs/js/b.min.js +7 -7
  198. package/templates/docs/js/codemirror.js +9680 -9680
  199. package/templates/docs/js/designTokens.js +334 -334
  200. package/templates/docs/js/j.min.js +4 -4
  201. package/templates/docs/js/javascript.js +874 -874
  202. package/templates/docs/js/matchbrackets.js +145 -145
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.REGEXP_CONTENTHASH = void 0;
7
+ exports.getShortI18nAssets = getShortI18nAssets;
8
+ exports.hasContentHash = hasContentHash;
9
+
10
+ var _urlConcat = require("../../../utils/urlConcat");
11
+
12
+ // export const REGEXP_CHUNKHASH = /\[chunkhash(?::(\d+))?\]/gi;
13
+ // export const REGEXP_HASH = /\[hash(?::(\d+))?\]/gi;
14
+ // export const REGEXP_NAME = /\[name\]/gi;
15
+ // export const REGEXP_PLACEHOLDERS = /\[(name|id|chunkhash)\]/gi;
16
+ // TODO: want to choose file type for i18n load
17
+ const REGEXP_CONTENTHASH = /\[contenthash(?::(\d+))?\]/gi;
18
+ exports.REGEXP_CONTENTHASH = REGEXP_CONTENTHASH;
19
+
20
+ function hasContentHash(filenameTemplate) {
21
+ return REGEXP_CONTENTHASH.test(filenameTemplate);
22
+ }
23
+
24
+ function getShortI18nAssets(chunks, i18nManifest, publicPathPrefix) {
25
+ const i18nAssets = {};
26
+ chunks.forEach(chunk => {
27
+ const i18nFiles = i18nManifest[chunk.id];
28
+
29
+ if (i18nFiles) {
30
+ Object.keys(i18nFiles).forEach(locale => {
31
+ if (!i18nAssets[locale]) {
32
+ i18nAssets[locale] = [];
33
+ }
34
+
35
+ i18nAssets[locale].push((0, _urlConcat.urlConcat)(publicPathPrefix, i18nFiles[locale]));
36
+ });
37
+ }
38
+ });
39
+ return i18nAssets;
40
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _collectI18nKeys = require("./collectI18nKeys");
8
+
9
+ Object.keys(_collectI18nKeys).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _collectI18nKeys[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _collectI18nKeys[key];
16
+ }
17
+ });
18
+ });
19
+
20
+ var _propertiesUtils = require("./propertiesUtils");
21
+
22
+ Object.keys(_propertiesUtils).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (key in exports && exports[key] === _propertiesUtils[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _propertiesUtils[key];
29
+ }
30
+ });
31
+ });
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getAllI18n = getAllI18n;
7
+ exports.getPropertiesAsJSON = getPropertiesAsJSON;
8
+ exports.jsonToString = jsonToString;
9
+
10
+ var _fs = require("fs");
11
+
12
+ var _path = require("path");
13
+
14
+ function isComment(line) {
15
+ return line[0] === '#';
16
+ }
17
+
18
+ function getPropertiesAsJSON(filePath) {
19
+ try {
20
+ const data = (0, _fs.readFileSync)(filePath);
21
+ let source = data.toString();
22
+ const i18nObj = {};
23
+ source.split(/\r?\n\r?/).forEach(fline => {
24
+ const line = fline.trim();
25
+
26
+ if (!line || isComment(line)) {
27
+ return;
28
+ }
29
+
30
+ const ind = line.indexOf('=');
31
+ const key = line.slice(0, ind).replace(/\\ /g, ' ');
32
+ const value = line.slice(ind + 1);
33
+
34
+ if (key && value) {
35
+ i18nObj[key] = value;
36
+ }
37
+ }, {});
38
+ return i18nObj;
39
+ } catch (err) {
40
+ return {};
41
+ }
42
+ }
43
+
44
+ function getLang(file) {
45
+ let underScoreIndex = file.indexOf('_');
46
+ let language = 'en_US';
47
+
48
+ if (underScoreIndex !== -1) {
49
+ language = file.substring(underScoreIndex + 1);
50
+ language = language.slice(0, language.indexOf('.'));
51
+ }
52
+
53
+ return language;
54
+ }
55
+
56
+ function getAllI18n({
57
+ folderPath,
58
+ disableDefault,
59
+ jsResourceI18nKeys,
60
+ exclude = /^[^_]+$/,
61
+ include = /\.properties$/
62
+ }) {
63
+ try {
64
+ const files = (0, _fs.readdirSync)(folderPath, 'utf8');
65
+ const allLangI18n = {};
66
+ const context = (0, _path.join)(process.cwd(), folderPath);
67
+ files.forEach(file => {
68
+ const filePath = (0, _path.join)(context, file);
69
+
70
+ if (exclude.test(filePath) || !include.test(filePath)) {
71
+ // console.log('exclude', filePath);
72
+ return;
73
+ } // console.log('include', filePath);
74
+
75
+
76
+ const i18n = getPropertiesAsJSON(filePath);
77
+ allLangI18n[getLang(file)] = disableDefault ? i18n : Object.assign({}, jsResourceI18nKeys, i18n);
78
+ });
79
+ return allLangI18n;
80
+ } catch (err) {
81
+ // console.log(err);
82
+ return {};
83
+ }
84
+ }
85
+
86
+ function jsonToString(json, keySeperator) {
87
+ let str = '{';
88
+ let keys = Object.keys(json);
89
+ keys.forEach((key, i) => {
90
+ let value = json[key];
91
+
92
+ if (!value) {
93
+ return;
94
+ }
95
+
96
+ str += `"${keySeperator ? key.replace(/(\.|\\(\s+))/g, keySeperator) : key}":"${value.replace(/.?"/g, match => {
97
+ if (match[0] === '\\') {
98
+ return match;
99
+ } else if (match.length === 2) {
100
+ return `${match[0]}\\${match[1]}`;
101
+ }
102
+
103
+ return `\\${match}`;
104
+ }).replace(/(\r\n|\n|\r)/g, '')}"`;
105
+
106
+ if (i !== keys.length - 1) {
107
+ str += ',';
108
+ }
109
+ });
110
+ str += '}';
111
+ return str;
112
+ }
@@ -1,89 +1,78 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
6
7
 
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
+ var _path = _interopRequireDefault(require("path"));
8
9
 
9
- var _path = require('path');
10
-
11
- var _path2 = _interopRequireDefault(_path);
12
-
13
- var _webpackSources = require('webpack-sources');
10
+ var _webpackSources = require("webpack-sources");
14
11
 
15
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
13
 
17
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14
+ let filenameParser = filename => {
15
+ let filepaths = filename.split('/');
16
+ let hashedName = filepaths[filepaths.length - 1];
18
17
 
19
- var filenameParser = function filenameParser(filename) {
20
- var filepaths = filename.split('/');
21
- var hashedName = filepaths[filepaths.length - 1];
18
+ let {
19
+ name,
20
+ ext
21
+ } = _path.default.parse(hashedName);
22
22
 
23
- var _path$parse = _path2.default.parse(hashedName),
24
- name = _path$parse.name,
25
- ext = _path$parse.ext;
26
-
27
- var nameparts = name.split('.');
23
+ let nameparts = name.split('.');
28
24
  return {
29
25
  name: nameparts.slice(0, nameparts.length - 1).join('.') + ext,
30
- hashedName: hashedName
26
+ hashedName
31
27
  };
32
28
  };
33
29
 
34
- var ManifestPlugin = function () {
35
- function ManifestPlugin(options) {
36
- _classCallCheck(this, ManifestPlugin);
37
-
30
+ class ManifestPlugin {
31
+ constructor(options) {
38
32
  this.options = options;
39
33
  }
40
34
 
41
- _createClass(ManifestPlugin, [{
42
- key: 'apply',
43
- value: function apply(compiler) {
44
- var _this = this;
45
-
46
- compiler.hooks.emit.tap('PublicPathChangePlugin', function (compilation) {
47
- var stats = compilation.getStats().toJson();
48
-
49
- var manifest = compilation.chunks.reduce(function (files, chunk) {
50
- return chunk.files.reduce(function (files, name) {
51
- var _filenameParser = filenameParser(name),
52
- filename = _filenameParser.name,
53
- hashedName = _filenameParser.hashedName;
54
-
55
- if (chunk.canBeInitial()) {
56
- if (!files.entryFiles) {
57
- files.entryFiles = {};
58
- }
59
- files.entryFiles[filename] = hashedName;
60
- }
61
- files[filename] = hashedName;
62
- return files;
63
- }, files);
64
- }, {});
65
-
66
- manifest = stats.assets.reduce(function (files, asset) {
67
- var isEntryAsset = asset.chunks.length > 0;
68
- if (isEntryAsset) {
69
- return files;
35
+ apply(compiler) {
36
+ compiler.hooks.emit.tap('PublicPathChangePlugin', compilation => {
37
+ let stats = compilation.getStats().toJson();
38
+ let manifest = compilation.chunks.reduce((files, chunk) => chunk.files.reduce((files, name) => {
39
+ let {
40
+ name: filename,
41
+ hashedName
42
+ } = filenameParser(name);
43
+
44
+ if (chunk.canBeInitial()) {
45
+ if (!files.entryFiles) {
46
+ files.entryFiles = {};
70
47
  }
71
- var filename = asset.name;
72
48
 
73
- var _filenameParser2 = filenameParser(filename),
74
- name = _filenameParser2.name,
75
- hashedName = _filenameParser2.hashedName;
49
+ files.entryFiles[filename] = hashedName;
50
+ }
76
51
 
77
- files[name] = hashedName;
78
- return files;
79
- }, manifest);
52
+ files[filename] = hashedName;
53
+ return files;
54
+ }, files), {});
55
+ manifest = stats.assets.reduce((files, asset) => {
56
+ let isEntryAsset = asset.chunks.length > 0;
80
57
 
81
- compilation.assets[_this.options.fileName] = new _webpackSources.RawSource(JSON.stringify(manifest));
82
- });
83
- }
84
- }]);
58
+ if (isEntryAsset) {
59
+ return files;
60
+ }
61
+
62
+ let {
63
+ name: filename
64
+ } = asset;
65
+ let {
66
+ name,
67
+ hashedName
68
+ } = filenameParser(filename);
69
+ files[name] = hashedName;
70
+ return files;
71
+ }, manifest);
72
+ compilation.assets[this.options.fileName] = new _webpackSources.RawSource(JSON.stringify(manifest));
73
+ });
74
+ }
85
75
 
86
- return ManifestPlugin;
87
- }();
76
+ }
88
77
 
89
78
  exports.default = ManifestPlugin;
@@ -1,214 +1,124 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
6
7
 
7
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
+ var _path = _interopRequireDefault(require("path"));
8
9
 
9
- var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
10
-
11
- var _path = require('path');
12
-
13
- var _path2 = _interopRequireDefault(_path);
14
-
15
- var _webpackSources = require('webpack-sources');
10
+ var _webpackSources = require("webpack-sources");
16
11
 
17
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
13
 
19
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
-
21
- var isValidModule = function isValidModule(name) {
22
- if (name.includes('node_modules') && (name.includes('@zohodesk' + _path2.default.sep + 'components') || name.includes('@zohodesk' + _path2.default.sep + 'dot')) && !name.endsWith('index.js') && !name.endsWith('docs.js')) {
14
+ let isValidModule = name => {
15
+ if (name.includes('node_modules') && (name.includes(`@zohodesk${_path.default.sep}components`) || name.includes(`@zohodesk${_path.default.sep}dot`)) && !name.endsWith('index.js') && !name.endsWith('docs.js')) {
23
16
  return true;
24
17
  }
25
18
 
26
19
  return !name.includes('index.js') && !name.endsWith('.css') && !name.endsWith('.png') && !name.includes('node_modules') && name.includes('src');
27
20
  };
28
21
 
29
- var getModuleName = function getModuleName(modulePath) {
30
- var _path$parse$name$spli = _path2.default.parse(modulePath).name.split('.'),
31
- _path$parse$name$spli2 = _slicedToArray(_path$parse$name$spli, 1),
32
- name = _path$parse$name$spli2[0];
22
+ let getModuleName = modulePath => {
23
+ let [name] = _path.default.parse(modulePath).name.split('.');
33
24
 
34
- if (modulePath.includes('@zohodesk' + _path2.default.sep + 'components')) {
35
- name = '@zohodesk/components/' + name;
36
- } else if (modulePath.includes('@zohodesk' + _path2.default.sep + 'dot')) {
37
- name = '@zohodesk/dot/' + name;
25
+ if (modulePath.includes(`@zohodesk${_path.default.sep}components`)) {
26
+ name = `@zohodesk/components/${name}`;
27
+ } else if (modulePath.includes(`@zohodesk${_path.default.sep}dot`)) {
28
+ name = `@zohodesk/dot/${name}`;
38
29
  }
30
+
39
31
  return name;
40
32
  };
41
33
 
42
- var ModuleStatsPlugin = function () {
43
- function ModuleStatsPlugin() {
44
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
45
-
46
- _classCallCheck(this, ModuleStatsPlugin);
47
-
34
+ class ModuleStatsPlugin {
35
+ constructor(options = {}) {
48
36
  this.options = options;
49
37
  this.options.filename = options.filename || 'js/moduleStats.js';
50
38
  }
51
39
 
52
- _createClass(ModuleStatsPlugin, [{
53
- key: 'apply',
54
- value: function apply(compiler) {
55
- var _this = this;
56
-
57
- compiler.hooks.emit.tap('ModuleStatsPlugin', function (compilation) {
58
- var stats = compilation.getStats().toJson();
59
- var results = {};
60
- var modules = stats.modules;
61
-
62
- var _loop = function _loop(module) {
63
- var name = module.name,
64
- reasons = module.reasons;
65
-
66
- if (isValidModule(name)) {
67
- var references = new Set();
68
- var referencedby = new Set();
69
- var docsName = void 0;
70
- compilation.modules.forEach(function (module) {
71
- module.reasons.forEach(function (reason) {
72
- var exportedValue = reason.dependency;
73
- if (exportedValue.type === 'harmony export imported specifier') {
74
- if (exportedValue.module.userRequest.includes(name.replace('.', ''))) {
75
- docsName = exportedValue.name;
76
- }
40
+ apply(compiler) {
41
+ compiler.hooks.emit.tap('ModuleStatsPlugin', compilation => {
42
+ let stats = compilation.getStats().toJson();
43
+ let results = {};
44
+ let {
45
+ modules
46
+ } = stats;
47
+
48
+ for (let module of modules) {
49
+ let {
50
+ name,
51
+ reasons
52
+ } = module;
53
+
54
+ if (isValidModule(name)) {
55
+ let references = new Set();
56
+ let referencedby = new Set();
57
+ let docsName;
58
+ let fileName;
59
+ compilation.modules.forEach(module => {
60
+ module.reasons.forEach(reason => {
61
+ let exportedValue = reason.dependency;
62
+
63
+ if (exportedValue.type === 'harmony export imported specifier') {
64
+ if (exportedValue.module.userRequest.includes(name.replace('.', ''))) {
65
+ docsName = exportedValue.name;
77
66
  }
78
- });
67
+ }
79
68
  });
69
+ });
70
+ let currentModuleName = getModuleName(name);
71
+
72
+ if (Array.isArray(reasons)) {
73
+ for (let reason of reasons) {
74
+ let {
75
+ moduleName
76
+ } = reason;
77
+
78
+ if (isValidModule(moduleName)) {
79
+ let reasonedModuleName = getModuleName(moduleName);
80
+ referencedby.add(reasonedModuleName);
81
+ }
82
+ }
83
+ }
80
84
 
81
- var currentModuleName = getModuleName(name);
82
- if (Array.isArray(reasons)) {
83
- var _iteratorNormalCompletion2 = true;
84
- var _didIteratorError2 = false;
85
- var _iteratorError2 = undefined;
85
+ for (let subModule of modules) {
86
+ let {
87
+ name: subModuleName,
88
+ reasons
89
+ } = subModule;
86
90
 
87
- try {
88
- for (var _iterator2 = reasons[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
89
- var reason = _step2.value;
90
- var moduleName = reason.moduleName;
91
+ if (isValidModule(subModuleName)) {
92
+ let currentModuleName = getModuleName(subModuleName);
91
93
 
94
+ if (Array.isArray(reasons)) {
95
+ for (let reason of reasons) {
96
+ let {
97
+ moduleName: reasonedModuleName
98
+ } = reason;
92
99
 
93
- if (isValidModule(moduleName)) {
94
- var reasonedModuleName = getModuleName(moduleName);
95
- referencedby.add(reasonedModuleName);
96
- }
97
- }
98
- } catch (err) {
99
- _didIteratorError2 = true;
100
- _iteratorError2 = err;
101
- } finally {
102
- try {
103
- if (!_iteratorNormalCompletion2 && _iterator2.return) {
104
- _iterator2.return();
105
- }
106
- } finally {
107
- if (_didIteratorError2) {
108
- throw _iteratorError2;
100
+ if (name === reasonedModuleName) {
101
+ references.add(currentModuleName);
109
102
  }
110
103
  }
111
104
  }
112
105
  }
113
- var _iteratorNormalCompletion3 = true;
114
- var _didIteratorError3 = false;
115
- var _iteratorError3 = undefined;
116
-
117
- try {
118
- for (var _iterator3 = modules[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
119
- var subModule = _step3.value;
120
- var subModuleName = subModule.name,
121
- _reasons = subModule.reasons;
122
-
123
- if (isValidModule(subModuleName)) {
124
- var _currentModuleName = getModuleName(subModuleName);
125
- if (Array.isArray(_reasons)) {
126
- var _iteratorNormalCompletion4 = true;
127
- var _didIteratorError4 = false;
128
- var _iteratorError4 = undefined;
129
-
130
- try {
131
- for (var _iterator4 = _reasons[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
132
- var _reason = _step4.value;
133
- var _reasonedModuleName = _reason.moduleName;
134
-
135
- if (name === _reasonedModuleName) {
136
- references.add(_currentModuleName);
137
- }
138
- }
139
- } catch (err) {
140
- _didIteratorError4 = true;
141
- _iteratorError4 = err;
142
- } finally {
143
- try {
144
- if (!_iteratorNormalCompletion4 && _iterator4.return) {
145
- _iterator4.return();
146
- }
147
- } finally {
148
- if (_didIteratorError4) {
149
- throw _iteratorError4;
150
- }
151
- }
152
- }
153
- }
154
- }
155
- }
156
- } catch (err) {
157
- _didIteratorError3 = true;
158
- _iteratorError3 = err;
159
- } finally {
160
- try {
161
- if (!_iteratorNormalCompletion3 && _iterator3.return) {
162
- _iterator3.return();
163
- }
164
- } finally {
165
- if (_didIteratorError3) {
166
- throw _iteratorError3;
167
- }
168
- }
169
- }
170
-
171
- results[currentModuleName] = {
172
- name: currentModuleName,
173
- references: Array.from(references),
174
- referencedby: Array.from(referencedby),
175
- docsName: docsName ? docsName : ''
176
- };
177
106
  }
178
- };
179
-
180
- var _iteratorNormalCompletion = true;
181
- var _didIteratorError = false;
182
- var _iteratorError = undefined;
183
107
 
184
- try {
185
-
186
- for (var _iterator = modules[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
187
- var module = _step.value;
188
-
189
- _loop(module);
190
- }
191
- } catch (err) {
192
- _didIteratorError = true;
193
- _iteratorError = err;
194
- } finally {
195
- try {
196
- if (!_iteratorNormalCompletion && _iterator.return) {
197
- _iterator.return();
198
- }
199
- } finally {
200
- if (_didIteratorError) {
201
- throw _iteratorError;
202
- }
203
- }
108
+ results[currentModuleName] = {
109
+ name: currentModuleName,
110
+ references: Array.from(references),
111
+ referencedby: Array.from(referencedby),
112
+ docsName: docsName ? docsName : '',
113
+ fileName: name ? name : currentModuleName
114
+ };
204
115
  }
116
+ }
205
117
 
206
- compilation.assets[_this.options.filename] = new _webpackSources.RawSource(JSON.stringify(results));
207
- });
208
- }
209
- }]);
118
+ compilation.assets[this.options.filename] = new _webpackSources.RawSource(JSON.stringify(results));
119
+ });
120
+ }
210
121
 
211
- return ModuleStatsPlugin;
212
- }();
122
+ }
213
123
 
214
124
  exports.default = ModuleStatsPlugin;