@zohodesk/react-cli 0.0.1-beta.16 → 0.0.1-beta.162

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 (228) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +46 -3
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +708 -0
  5. package/bin/cli.js +134 -27
  6. package/cert/cert.pem +37 -129
  7. package/cert/key.pem +27 -27
  8. package/cert/passphrase.pem +1 -0
  9. package/files/eslintrc.js +62 -0
  10. package/files/prettierrc.js +3 -0
  11. package/lib/babel/cmjs-plugins-presets.js +16 -9
  12. package/lib/babel/es-plugins-presets.js +26 -14
  13. package/lib/common/getEntries.js +33 -24
  14. package/lib/common/getPublicPathConfig.js +40 -0
  15. package/lib/common/index.js +27 -13
  16. package/lib/common/splitChunks.js +64 -26
  17. package/lib/common/sslcertUpdater.js +59 -0
  18. package/lib/common/templateParameters.js +25 -0
  19. package/lib/configs/jest.config.js +26 -27
  20. package/lib/configs/libAlias.js +31 -0
  21. package/lib/configs/webpack.component.umd.config.js +31 -37
  22. package/lib/configs/webpack.css.umd.config.js +44 -44
  23. package/lib/configs/webpack.dev.config.js +96 -56
  24. package/lib/configs/webpack.docs.config.js +104 -98
  25. package/lib/configs/webpack.impact.config.js +116 -0
  26. package/lib/configs/webpack.prod.config.js +137 -85
  27. package/lib/hooks/docsProptypeHook.js +32 -38
  28. package/lib/jest/commitedFilesResult.js +144 -71
  29. package/lib/jest/coverageCollector.js +62 -29
  30. package/lib/jest/jsonMaker.js +54 -0
  31. package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
  32. package/lib/jest/preProcessors/jsPreprocessor.js +5 -6
  33. package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
  34. package/lib/jest/result.js +91 -41
  35. package/lib/jest/run.js +74 -27
  36. package/lib/jest/setup.js +103 -102
  37. package/lib/loaderUtils/getCSSLoaders.js +77 -0
  38. package/lib/loaderUtils/getDevJsLoaders.js +30 -23
  39. package/lib/loaderUtils/index.js +14 -7
  40. package/lib/loaders/docsLoader.js +15 -15
  41. package/lib/loaders/docsPropsLoader.js +14 -17
  42. package/lib/loaders/fileBountryLoader.js +17 -0
  43. package/lib/loaders/fileLoader.js +47 -38
  44. package/lib/loaders/scriptInstrumentLoader.js +21 -20
  45. package/lib/loaders/selectorMappingLoader.js +75 -0
  46. package/lib/loaders/workerLoader.js +136 -0
  47. package/lib/middlewares/HMRMiddleware.js +59 -41
  48. package/lib/middlewares/SSTMiddleware.js +21 -0
  49. package/lib/pluginUtils/getDevPlugins.js +175 -26
  50. package/lib/pluginUtils/getDocsPlugins.js +32 -17
  51. package/lib/pluginUtils/getLibraryImactPlugins.js +23 -0
  52. package/lib/pluginUtils/getLibraryPlugins.js +8 -10
  53. package/lib/pluginUtils/getProdPlugins.js +240 -37
  54. package/lib/pluginUtils/getServerPlugins.js +8 -11
  55. package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
  56. package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
  57. package/lib/pluginUtils/index.js +36 -43
  58. package/lib/plugins/CdnChangePlugin.js +77 -0
  59. package/lib/plugins/CleanupStatsPlugin.js +28 -0
  60. package/lib/plugins/EFCPlugin.js +241 -0
  61. package/lib/plugins/EFCPlugin.md +6 -0
  62. package/lib/plugins/EFCTemplatePlugin.js +151 -0
  63. package/lib/plugins/I18NInjectIntoIndexPlugin.js +141 -0
  64. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
  65. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
  66. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
  67. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
  68. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
  69. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
  70. package/lib/plugins/I18nSplitPlugin/README.md +25 -0
  71. package/lib/plugins/I18nSplitPlugin/index.js +185 -0
  72. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
  73. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
  74. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
  75. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
  76. package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
  77. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
  78. package/lib/plugins/ManifestPlugin.js +59 -62
  79. package/lib/plugins/ModuleStatsPlugin.js +98 -97
  80. package/lib/plugins/OptimizeJSPlugin.js +24 -41
  81. package/lib/plugins/PublicPathCallbackPlugin.js +63 -0
  82. package/lib/plugins/PublicPathChangePlugin.js +187 -174
  83. package/lib/plugins/ReportGeneratePlugin.js +181 -0
  84. package/lib/plugins/RequireVariablePublicPlugin.js +30 -0
  85. package/lib/plugins/ResourceHintsPlugin.js +53 -35
  86. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +80 -0
  87. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +82 -0
  88. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -0
  89. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +26 -0
  90. package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
  91. package/lib/plugins/ServiceWorkerPlugin.js +107 -0
  92. package/lib/plugins/ShadowDOMSupportPlugin.js +270 -0
  93. package/lib/plugins/SourceMapHookPlugin.js +25 -31
  94. package/lib/plugins/TPHashMappingPlugin.js +67 -0
  95. package/lib/plugins/UglifyCSSPlugin.js +23 -30
  96. package/lib/plugins/UnusedFilesFindPlugin.js +150 -97
  97. package/lib/plugins/index.js +118 -55
  98. package/lib/plugins/libraryImpactPlugin.js +190 -0
  99. package/lib/plugins/webpackwatchrunplugin.js +26 -0
  100. package/lib/postcss-plugins/ExcludeRTLPlugin.js +23 -0
  101. package/lib/postcss-plugins/RTLSplitPlugin.js +138 -0
  102. package/lib/schemas/index.js +466 -52
  103. package/lib/servers/clusterHubServer.js +22 -26
  104. package/lib/servers/docsServer.js +3 -5
  105. package/lib/servers/docsServerCore.js +93 -85
  106. package/lib/servers/helpServer.js +19 -21
  107. package/lib/servers/httpsOptions.js +19 -0
  108. package/lib/servers/impactServer.js +99 -92
  109. package/lib/servers/mockserver.js +44 -0
  110. package/lib/servers/nowatchserver.js +275 -0
  111. package/lib/servers/scrServer.js +147 -0
  112. package/lib/servers/server.js +118 -124
  113. package/lib/servers/ssServer.js +107 -65
  114. package/lib/sh/reportPublish.sh +16 -10
  115. package/lib/templates/CoverageScriptTemplate.js +45 -18
  116. package/lib/templates/WMSTemplate.js +17 -18
  117. package/lib/templates/linterConstant.js +10 -0
  118. package/lib/utils/babelPresets.js +12 -5
  119. package/lib/utils/buildstats.html +148 -0
  120. package/lib/utils/clean.js +12 -11
  121. package/lib/utils/copy.js +13 -127
  122. package/lib/utils/copyTimezones.js +21 -0
  123. package/lib/utils/createEventStream.js +24 -19
  124. package/lib/utils/cssClassNameGenerate.js +77 -0
  125. package/lib/utils/cssURLReplacer.js +67 -54
  126. package/lib/utils/dependencyPostPublish.js +42 -0
  127. package/lib/utils/fileUtils.js +125 -0
  128. package/lib/utils/folderIterator.js +47 -0
  129. package/lib/utils/getComponents.js +126 -0
  130. package/lib/utils/getCurrentBranch.js +11 -17
  131. package/lib/utils/getDependenciesImpactList.js +151 -0
  132. package/lib/utils/getHash.js +26 -0
  133. package/lib/utils/getIp.js +20 -0
  134. package/lib/utils/getOptions.js +55 -30
  135. package/lib/utils/getServerURL.js +25 -8
  136. package/lib/utils/index.js +259 -82
  137. package/lib/utils/init.js +2 -2
  138. package/lib/utils/initPreCommitHook.js +40 -31
  139. package/lib/utils/jsonHelper.js +97 -0
  140. package/lib/utils/libraryImpactConfig.js +63 -0
  141. package/lib/utils/lint/addScripts.js +27 -0
  142. package/lib/utils/lint/checkExistingConfig.js +67 -0
  143. package/lib/utils/lint/copyConfigs.js +24 -0
  144. package/lib/utils/lint/index.js +54 -0
  145. package/lib/utils/lint/lintScripts.js +11 -0
  146. package/lib/utils/lint/lintSetup.js +31 -0
  147. package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
  148. package/lib/utils/lint/question.js +30 -0
  149. package/lib/utils/lintReporter.js +142 -0
  150. package/lib/utils/mailSender.js +16 -25
  151. package/lib/utils/pullOrigin.js +28 -0
  152. package/lib/utils/reinstallDependencies.js +133 -0
  153. package/lib/utils/removeAttributes.js +25 -23
  154. package/lib/utils/repoClone.js +56 -63
  155. package/lib/utils/request.js +64 -77
  156. package/lib/utils/resultSchema.json +73 -0
  157. package/lib/utils/rtl.js +42 -0
  158. package/lib/utils/setEnvVariables.js +5 -6
  159. package/lib/utils/ssTestHack.js +48 -0
  160. package/lib/utils/switchBranch.js +28 -0
  161. package/lib/utils/urlConcat.js +22 -0
  162. package/package.json +92 -64
  163. package/templates/app/.eslintrc.js +140 -0
  164. package/templates/app/README.md +12 -12
  165. package/templates/app/app/index.html +24 -8
  166. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  167. package/templates/app/app/properties/i18nkeys.json +3 -3
  168. package/templates/app/docs/all.html +69 -69
  169. package/templates/app/mockapi/index.js +18 -13
  170. package/templates/app/package.json +37 -17
  171. package/templates/app/src/actions/SampleActions/index.js +37 -0
  172. package/templates/app/src/actions/index.js +65 -0
  173. package/templates/app/src/appUrls.js +19 -0
  174. package/templates/app/src/components/Alert/Alert.js +134 -0
  175. package/templates/app/src/components/Alert/Alert.module.css +79 -0
  176. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -0
  177. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -0
  178. package/templates/app/src/components/Sample/Sample.module.css +11 -0
  179. package/templates/app/src/components/Sample/SampleList.js +61 -0
  180. package/templates/app/src/components/Slider/Slider.css +41 -0
  181. package/templates/app/src/components/Slider/Slider.js +55 -0
  182. package/templates/app/src/containers/AlertContainer/index.js +15 -0
  183. package/templates/app/src/containers/AppContainer/index.js +96 -0
  184. package/templates/app/src/containers/AppContainer/index.module.css +27 -0
  185. package/templates/app/src/containers/CustomMatch/index.js +65 -0
  186. package/templates/app/src/containers/DevTools/index.js +10 -0
  187. package/templates/app/src/containers/Header/index.js +67 -0
  188. package/templates/app/src/containers/Header/index.module.css +43 -0
  189. package/templates/app/src/containers/Redirect/index.js +63 -0
  190. package/templates/app/src/containers/Redirector/index.js +47 -0
  191. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -0
  192. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -0
  193. package/templates/app/src/historyChange.js +5 -0
  194. package/templates/app/src/index.html +10 -0
  195. package/templates/app/src/index.js +24 -0
  196. package/templates/app/src/middleware/PromiseMiddleware.js +59 -0
  197. package/templates/app/src/reducers/alertData.js +11 -0
  198. package/templates/app/src/reducers/index.js +6 -0
  199. package/templates/app/src/reducers/samples.js +19 -0
  200. package/templates/app/src/store/configureStore.dev.js +51 -0
  201. package/templates/app/src/store/configureStore.js +5 -0
  202. package/templates/app/src/store/configureStore.prod.js +26 -0
  203. package/templates/app/src/util/Common.js +5 -0
  204. package/templates/app/src/util/RequestAPI.js +132 -0
  205. package/templates/appold/README.md +12 -0
  206. package/templates/appold/app/index.html +8 -0
  207. package/templates/appold/app/properties/ApplicationResources_en_US.properties +1 -0
  208. package/templates/appold/app/properties/i18nkeys.json +3 -0
  209. package/templates/appold/docs/all.html +69 -0
  210. package/templates/appold/mockapi/index.js +13 -0
  211. package/templates/{app → appold}/mockapi/tickets.json +0 -0
  212. package/templates/appold/package.json +17 -0
  213. package/templates/appold/src/components/Text/Text.css +0 -0
  214. package/templates/appold/src/components/Text/Text.js +23 -0
  215. package/templates/appold/src/components/Text/__tests__/Text.spec.js +30 -0
  216. package/templates/appold/src/components/Text/docs/Text__default.docs.js +16 -0
  217. package/templates/appold/src/components/docs.js +1 -0
  218. package/templates/appold/src/components/index.js +5 -0
  219. package/templates/appold/src/index.js +13 -0
  220. package/templates/docs/all.html +1 -1
  221. package/templates/docs/component.html +110 -69
  222. package/templates/docs/components.html +221 -0
  223. package/templates/docs/css/component.css +12 -14
  224. package/templates/docs/css/componentTest.css +7 -0
  225. package/templates/docs/css/style.css +150 -206
  226. package/templates/docs/impactReportTemplate.html +154 -0
  227. package/templates/docs/index.html +1482 -1336
  228. package/templates/library/src/index.js +0 -0
@@ -1,60 +1,209 @@
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 _path = require('path');
8
+ var _path = _interopRequireDefault(require("path"));
8
9
 
9
- var _path2 = _interopRequireDefault(_path);
10
+ var _fs = _interopRequireDefault(require("fs"));
10
11
 
11
- var _caseSensitivePathsWebpackPlugin = require('case-sensitive-paths-webpack-plugin');
12
+ var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
12
13
 
13
- var _caseSensitivePathsWebpackPlugin2 = _interopRequireDefault(_caseSensitivePathsWebpackPlugin);
14
+ var _lodashWebpackPlugin = _interopRequireDefault(require("lodash-webpack-plugin"));
14
15
 
15
- var _miniCssExtractPlugin = require('mini-css-extract-plugin');
16
+ var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
16
17
 
17
- var _miniCssExtractPlugin2 = _interopRequireDefault(_miniCssExtractPlugin);
18
+ var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
18
19
 
19
- var _webpack = require('webpack');
20
+ var _htmlWebpackInjectAttributesPlugin = _interopRequireDefault(require("html-webpack-inject-attributes-plugin"));
20
21
 
21
- var _webpack2 = _interopRequireDefault(_webpack);
22
+ var _I18nSplitPlugin = _interopRequireDefault(require("../plugins/I18nSplitPlugin"));
22
23
 
23
- var _plugins = require('../plugins');
24
+ var _RequireVariablePublicPlugin = _interopRequireDefault(require("../plugins/RequireVariablePublicPlugin"));
24
25
 
25
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+ var _copyWebpackPlugin = _interopRequireDefault(require("copy-webpack-plugin"));
27
+
28
+ var _webpack = _interopRequireDefault(require("webpack"));
29
+
30
+ var _plugins = require("../plugins");
26
31
 
27
- var getDevPlugins = function getDevPlugins(options) {
28
- var _options$app = options.app,
29
- folder = _options$app.folder,
30
- instrumentScript = _options$app.instrumentScript,
31
- unusedFiles = options.unusedFiles;
32
+ var _common = require("../common");
32
33
 
34
+ var _RtlCssPlugin = require("../plugins/RtlSplitPlugin/RtlCssPlugin");
33
35
 
34
- var plugins = [new _caseSensitivePathsWebpackPlugin2.default(), new _webpack2.default.IgnorePlugin(/^\.\/domain$/, /moment$/), new _webpack2.default.DefinePlugin({
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+
38
+ let getDevPlugins = (options, publicPath) => {
39
+ let {
40
+ app: {
41
+ tpFolder,
42
+ folder,
43
+ instrumentScript,
44
+ devCssFileBountry,
45
+ context,
46
+ hasEFC: prevOptionForEnableEFC,
47
+ hasShadowDOM,
48
+ server: {
49
+ mode
50
+ },
51
+ htmlTemplate: {
52
+ inject
53
+ },
54
+ crossorigin
55
+ },
56
+ efc: {
57
+ hasEFC: newOptionForEnableEFC,
58
+ templateFilePath,
59
+ nameScope: efcNameSpace,
60
+ localeAttr: efcLocaleAttr
61
+ },
62
+ css: {
63
+ enableRTLSplit
64
+ },
65
+ i18n,
66
+ unusedFiles
67
+ } = options;
68
+ const hasEFC = newOptionForEnableEFC || prevOptionForEnableEFC;
69
+ const cssLTRFileNameTempalte = enableRTLSplit ? 'css/[name].ltr.css' : 'css/[name].css';
70
+ const cssRTLFileNameTempalte = 'css/[name].rtl.css';
71
+ let plugins = [new _plugins.CleanUpStatsPlugin(), new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.IgnorePlugin(/^\.\/domain$/, /moment$/), new _webpack.default.DefinePlugin({
35
72
  __CLIENT__: true,
36
73
  __TEST__: false,
37
74
  __SERVER__: false,
38
75
  __DEVELOPMENT__: true,
39
76
  __LOCAL_PRODUCTION__: false,
40
77
  __DEVTOOLS__: true,
41
- __DOCS__: false
42
- }), new _miniCssExtractPlugin2.default({
43
- filename: 'css/[name].css',
44
- chunkFilename: 'css/[name].css'
78
+ __DOCS__: false,
79
+ 'process.env': {
80
+ NODE_ENV: JSON.stringify(mode === 'dev-no-warn' ? 'production' : 'development')
81
+ }
82
+ }), new _miniCssExtractPlugin.default({
83
+ filename: cssLTRFileNameTempalte,
84
+ // ignoreOrder: true,
85
+ chunkFilename: cssLTRFileNameTempalte
45
86
  }), new _plugins.ResourceHintsPlugin()];
46
87
 
88
+ if (enableRTLSplit) {
89
+ plugins.push(new _RtlCssPlugin.RtlCssPlugin({
90
+ templateLabel: options.css.templateLabel,
91
+ dirVarName: options.css.dirVarName,
92
+ disableMiniFiySelector: options.css.disableMiniFiySelector,
93
+ // config: {},
94
+ // sourcemap: true,
95
+ filename: cssRTLFileNameTempalte
96
+ }));
97
+ }
98
+
47
99
  if (unusedFiles.enable) {
48
100
  plugins.push(new _plugins.UnusedFilesFindPlugin(Object.assign(unusedFiles, {
49
- origin: _path2.default.join(process.cwd(), folder)
101
+ origin: _path.default.join(process.cwd(), folder)
50
102
  })));
51
103
  }
52
104
 
53
- if (instrumentScript) {
54
- plugins.push(new _plugins.ScriptInstrumentPlugin());
105
+ const i18nManifestFileName = 'i18n-manifest.json';
106
+ /**
107
+ * NOTE:
108
+ * this file name ext .i18n.js added
109
+ * Because, in service worker they maintain cache as file name based
110
+ * So, to make differce we added .i18n.js ext.
111
+ */
112
+
113
+ const i18nFileNameTemplate = 'i18n-chunk/[locale]/[name].i18n.js';
114
+ const i18nPublicPath = publicPath || '';
115
+
116
+ if (i18n.chunkSplitEnable) {
117
+ plugins.push(new _I18nSplitPlugin.default({
118
+ jsResource: i18n.jsResource,
119
+ localeVarName: i18n.localeVarName,
120
+ jsonpFunc: i18n.jsonpFunc,
121
+ disableDefault: i18n.disableDefault,
122
+ publicPath: i18nPublicPath,
123
+ i18nManifestFileName,
124
+ // template: (object, locale) => `window.loadI18n(${JSON.stringify(object)}, ${JSON.stringify(locale)})`,
125
+ filenameTemplate: i18nFileNameTemplate,
126
+ propertiesFolder: i18n.propertiesFolder
127
+ }));
128
+ } else {
129
+ let i18nPath = _path.default.join(process.cwd(), context, 'i18n');
130
+
131
+ if (_fs.default.existsSync(i18nPath)) {
132
+ plugins.push(new _copyWebpackPlugin.default([{
133
+ from: `${i18nPath}/`,
134
+ to: './i18n/[name].[ext]',
135
+ toType: 'template'
136
+ }]));
137
+ }
138
+ }
139
+
140
+ tpFolder && plugins.push(new _copyWebpackPlugin.default([{
141
+ from: `${_path.default.join(process.cwd(), context, tpFolder)}/`,
142
+ to: `./${tpFolder}/`,
143
+ toType: 'dir'
144
+ }]));
145
+ plugins.push(new _lodashWebpackPlugin.default({
146
+ collections: true,
147
+ shorthands: true
148
+ }));
149
+
150
+ if (hasEFC) {
151
+ plugins.push(new _htmlWebpackPlugin.default({
152
+ chunksSortMode: 'none',
153
+ filename: 'index.html',
154
+ template: _path.default.join(process.cwd(), folder, 'index.html'),
155
+ excludeChunks: ['efc', 'widget'],
156
+ templateParameters: _common.templateParameters,
157
+ scriptLoading: 'defer',
158
+ inject: inject
159
+ }));
160
+ crossorigin && plugins.push(new _htmlWebpackInjectAttributesPlugin.default({
161
+ crossorigin: 'anonymous'
162
+ }));
163
+ plugins.push(new _plugins.EFCPlugin({
164
+ isDevelopment: true,
165
+ i18nManifestFileName,
166
+ templateFilePath,
167
+ i18nFileNameTemplate,
168
+ serverUrl: publicPath,
169
+ entryPointName: 'efc',
170
+ nameScope: efcNameSpace,
171
+ localeAttr: efcLocaleAttr // outputFile: 'zohodesk-efc-sdk-latest.js',
172
+
173
+ }));
174
+ } else {
175
+ plugins.push(new _htmlWebpackPlugin.default({
176
+ chunksSortMode: 'none',
177
+ filename: 'index.html',
178
+ template: _path.default.join(process.cwd(), folder, 'index.html'),
179
+ templateParameters: _common.templateParameters,
180
+ scriptLoading: 'defer',
181
+ inject: inject
182
+ }));
183
+ crossorigin && plugins.push(new _htmlWebpackInjectAttributesPlugin.default({
184
+ crossorigin: 'anonymous'
185
+ }));
186
+ }
187
+
188
+ plugins.push(new _plugins.I18NInjectIntoIndexPlugin({
189
+ publicPath: i18nPublicPath,
190
+ isDevelopment: true,
191
+ templateLabel: i18n.templateLabel || '{{--user-locale}}',
192
+ i18nFileNameTemplate,
193
+ i18nManifestFileName,
194
+ mainChunkName: 'main'
195
+ }));
196
+ instrumentScript && plugins.push(new _plugins.ScriptInstrumentPlugin());
197
+ hasShadowDOM && plugins.push(new _plugins.ShadowDOMSupportPlugin());
198
+
199
+ if (devCssFileBountry) {
200
+ plugins.push(new _RequireVariablePublicPlugin.default({
201
+ requireFuncName: 'require'
202
+ }));
55
203
  }
56
204
 
57
- return plugins;
205
+ return plugins.filter(Boolean);
58
206
  };
59
207
 
60
- exports.default = getDevPlugins;
208
+ var _default = getDevPlugins;
209
+ exports.default = _default;
@@ -1,39 +1,54 @@
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 _caseSensitivePathsWebpackPlugin = require('case-sensitive-paths-webpack-plugin');
8
+ var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
8
9
 
9
- var _caseSensitivePathsWebpackPlugin2 = _interopRequireDefault(_caseSensitivePathsWebpackPlugin);
10
+ var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
10
11
 
11
- var _miniCssExtractPlugin = require('mini-css-extract-plugin');
12
+ var _webpack = _interopRequireDefault(require("webpack"));
12
13
 
13
- var _miniCssExtractPlugin2 = _interopRequireDefault(_miniCssExtractPlugin);
14
+ var _path = _interopRequireDefault(require("path"));
14
15
 
15
- var _webpack = require('webpack');
16
-
17
- var _webpack2 = _interopRequireDefault(_webpack);
18
-
19
- var _ModuleStatsPlugin = require('../plugins/ModuleStatsPlugin');
20
-
21
- var _ModuleStatsPlugin2 = _interopRequireDefault(_ModuleStatsPlugin);
16
+ var _plugins = require("../plugins");
22
17
 
23
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
19
 
25
- var getDocsPlugins = function getDocsPlugins(isSSTest) {
26
- var plugins = [new _caseSensitivePathsWebpackPlugin2.default(), new _webpack2.default.ProvidePlugin({
20
+ // isForLibraryImpact this variable for now only used in getLibraryImactPlugins.
21
+ // So you gona use it please check with that function as well
22
+ let getDocsPlugins = (isSSTest, options, isForLibraryImpact = false) => {
23
+ let {
24
+ app: {
25
+ folder
26
+ },
27
+ unusedFiles
28
+ } = options;
29
+ let plugins = [new _plugins.CleanUpStatsPlugin(), new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.ProvidePlugin({
27
30
  React: 'react'
28
- }), new _webpack2.default.DefinePlugin({
31
+ }), new _webpack.default.DefinePlugin({
29
32
  __TEST__: false,
30
33
  __DEVELOPMENT__: true,
31
34
  __DOCS__: true
32
- }), isSSTest && new _ModuleStatsPlugin2.default({ filename: 'moduleStats.js' }), new _miniCssExtractPlugin2.default({
35
+ }), !isForLibraryImpact && new _plugins.ModuleStatsPlugin({
36
+ filename: 'js/moduleStats.js'
37
+ }), new _miniCssExtractPlugin.default({
33
38
  filename: 'css/[name].css',
34
39
  chunkFilename: 'css/[name].css'
35
40
  })].filter(Boolean);
41
+
42
+ if (unusedFiles.enable) {
43
+ plugins.push(new _plugins.UnusedFilesFindPlugin(Object.assign(unusedFiles, {
44
+ docsFilename: 'Undocsfiles.json',
45
+ ssTest: true,
46
+ origin: _path.default.join(process.cwd(), folder)
47
+ })));
48
+ }
49
+
36
50
  return plugins;
37
51
  };
38
52
 
39
- exports.default = getDocsPlugins;
53
+ var _default = getDocsPlugins;
54
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getLibraryImactPlugins;
7
+
8
+ var _libraryImpactPlugin = _interopRequireDefault(require("../plugins/libraryImpactPlugin"));
9
+
10
+ var _getDocsPlugins = _interopRequireDefault(require("./getDocsPlugins"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ // import ModuleStatsPlugin from '../plugins/ModuleStatsPlugin';
15
+ function getLibraryImactPlugins(options) {
16
+ let plugins = (0, _getDocsPlugins.default)(false, options, true); // for performance But for furture maintanablity we adding isForLibraryImpact in getDocsPlugin
17
+ // plugins.filter(plugin => !(plugin instanceof ModuleStatsPlugin));
18
+
19
+ plugins.push(new _libraryImpactPlugin.default({
20
+ filename: 'js/libraryImpact.js'
21
+ }));
22
+ return plugins;
23
+ }
@@ -1,21 +1,18 @@
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 _caseSensitivePathsWebpackPlugin = require('case-sensitive-paths-webpack-plugin');
8
+ var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
8
9
 
9
- var _caseSensitivePathsWebpackPlugin2 = _interopRequireDefault(_caseSensitivePathsWebpackPlugin);
10
-
11
- var _webpack = require('webpack');
12
-
13
- var _webpack2 = _interopRequireDefault(_webpack);
10
+ var _webpack = _interopRequireDefault(require("webpack"));
14
11
 
15
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
13
 
17
- var getLibraryPlugins = function getLibraryPlugins() {
18
- var plugins = [new _caseSensitivePathsWebpackPlugin2.default(), new _webpack2.default.DefinePlugin({
14
+ let getLibraryPlugins = () => {
15
+ let plugins = [new _caseSensitivePathsWebpackPlugin.default(), new _webpack.default.DefinePlugin({
19
16
  __TEST__: false,
20
17
  __DEVELOPMENT__: false,
21
18
  __DOCS__: false,
@@ -27,4 +24,5 @@ var getLibraryPlugins = function getLibraryPlugins() {
27
24
  return plugins;
28
25
  };
29
26
 
30
- exports.default = getLibraryPlugins;
27
+ var _default = getLibraryPlugins;
28
+ exports.default = _default;