@zohodesk/react-cli 0.0.1-beta.17 → 0.0.1-beta.171

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 (292) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +49 -10
  3. package/.prettierrc +6 -0
  4. package/CHANGELOG.md +5 -0
  5. package/README.md +859 -0
  6. package/bin/cli.js +215 -46
  7. package/cert/Tsicsezwild-22-23.crt +37 -0
  8. package/cert/Tsicsezwild-22-23.key +27 -0
  9. package/docs/CustomChunks.md +26 -0
  10. package/docs/DevStart.md +18 -0
  11. package/docs/HoverActive.md +12 -0
  12. package/docs/InstallNode.md +28 -0
  13. package/docs/TODOS.md +10 -0
  14. package/docs/ValueReplacer.md +60 -0
  15. package/docs/warnings_while_install.txt +35 -0
  16. package/files/eslintrc.js +62 -0
  17. package/files/prettierrc.js +3 -0
  18. package/lib/babel/cmjs-plugins-presets.js +24 -0
  19. package/lib/babel/es-plugins-presets.js +34 -0
  20. package/lib/common/getEntries.js +33 -46
  21. package/lib/common/getPublicPathConfig.js +40 -0
  22. package/lib/common/index.js +24 -19
  23. package/lib/common/splitChunks.js +110 -25
  24. package/lib/common/sslcertUpdater.js +59 -0
  25. package/lib/common/templateParameters.js +25 -0
  26. package/lib/common/testPattern.js +69 -0
  27. package/lib/common/valueReplacer.js +55 -0
  28. package/lib/configs/jest.config.js +31 -27
  29. package/lib/configs/libAlias.js +31 -0
  30. package/lib/configs/webpack.component.umd.config.js +46 -53
  31. package/lib/configs/webpack.css.umd.config.js +47 -46
  32. package/lib/configs/webpack.dev.config.js +99 -84
  33. package/lib/configs/webpack.docs.config.js +65 -57
  34. package/lib/configs/webpack.impact.config.js +109 -0
  35. package/lib/configs/webpack.prod.config.js +147 -104
  36. package/lib/hooks/docsProptypeHook.js +32 -38
  37. package/lib/jest/commitedFilesResult.js +144 -71
  38. package/lib/jest/coverageCollector.js +68 -35
  39. package/lib/jest/jsonMaker.js +54 -0
  40. package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
  41. package/lib/jest/preProcessors/jsPreprocessor.js +5 -6
  42. package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
  43. package/lib/jest/result.js +92 -42
  44. package/lib/jest/run.js +75 -28
  45. package/lib/jest/setup.js +103 -102
  46. package/lib/loaderUtils/configsAssetsLoaders.js +117 -0
  47. package/lib/loaderUtils/getCSSLoaders.js +113 -0
  48. package/lib/loaderUtils/getDevJsLoaders.js +35 -23
  49. package/lib/loaderUtils/index.js +14 -7
  50. package/lib/loaders/docsLoader.js +15 -15
  51. package/lib/loaders/docsPropsLoader.js +14 -17
  52. package/lib/loaders/fileBountryLoader.js +17 -0
  53. package/lib/loaders/fileLoader.js +47 -38
  54. package/lib/loaders/scriptInstrumentLoader.js +23 -20
  55. package/lib/loaders/selectorMappingLoader.js +75 -0
  56. package/lib/loaders/workerLoader.js +136 -0
  57. package/lib/middlewares/HMRMiddleware.js +90 -72
  58. package/lib/middlewares/SSTMiddleware.js +21 -0
  59. package/lib/pluginUtils/getDevPlugins.js +177 -30
  60. package/lib/pluginUtils/getDocsPlugins.js +36 -15
  61. package/lib/pluginUtils/getLibraryImactPlugins.js +23 -0
  62. package/lib/pluginUtils/getLibraryPlugins.js +8 -10
  63. package/lib/pluginUtils/getProdPlugins.js +244 -37
  64. package/lib/pluginUtils/getServerPlugins.js +8 -11
  65. package/lib/pluginUtils/getUMDCSSPlugins.js +14 -18
  66. package/lib/pluginUtils/getUMDComponentPlugins.js +14 -9
  67. package/lib/pluginUtils/index.js +36 -43
  68. package/lib/plugins/CdnChangePlugin.js +77 -0
  69. package/lib/plugins/CleanupStatsPlugin.js +28 -0
  70. package/lib/plugins/EFCPlugin.js +241 -0
  71. package/lib/plugins/EFCPlugin.md +6 -0
  72. package/lib/plugins/EFCTemplatePlugin.js +151 -0
  73. package/lib/plugins/I18NInjectIntoIndexPlugin.js +141 -0
  74. package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
  75. package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
  76. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
  77. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
  78. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
  79. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -0
  80. package/lib/plugins/I18nSplitPlugin/README.md +25 -0
  81. package/lib/plugins/I18nSplitPlugin/index.js +185 -0
  82. package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
  83. package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
  84. package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
  85. package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
  86. package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
  87. package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
  88. package/lib/plugins/ManifestPlugin.js +86 -0
  89. package/lib/plugins/ModuleStatsPlugin.js +98 -97
  90. package/lib/plugins/OptimizeJSPlugin.js +41 -0
  91. package/lib/plugins/PublicPathCallbackPlugin.js +63 -0
  92. package/lib/plugins/PublicPathChangePlugin.js +226 -0
  93. package/lib/plugins/ReportGeneratePlugin.js +181 -0
  94. package/lib/plugins/RequireVariablePublicPlugin.js +30 -0
  95. package/lib/plugins/ResourceHintsPlugin.js +67 -0
  96. package/lib/plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +80 -0
  97. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +82 -0
  98. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -0
  99. package/lib/plugins/RtlSplitPlugin/replaceCssDirTemplate.js +26 -0
  100. package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
  101. package/lib/plugins/ServiceWorkerPlugin.js +107 -0
  102. package/lib/plugins/ShadowDOMSupportPlugin.js +270 -0
  103. package/lib/plugins/SourceMapHookPlugin.js +25 -59
  104. package/lib/plugins/TPHashMappingPlugin.js +67 -0
  105. package/lib/plugins/UglifyCSSPlugin.js +39 -0
  106. package/lib/plugins/UnusedFilesFindPlugin.js +150 -97
  107. package/lib/plugins/index.js +127 -37
  108. package/lib/plugins/libraryImpactPlugin.js +190 -0
  109. package/lib/plugins/webpackwatchrunplugin.js +26 -0
  110. package/lib/postcss-plugins/ExcludePlugin.js +23 -0
  111. package/lib/postcss-plugins/RTLSplitPlugin.js +138 -0
  112. package/lib/postcss-plugins/ValueReplacer.js +46 -0
  113. package/lib/postcss-plugins/__test__/hoverActivePlugin.spec.js +22 -0
  114. package/lib/postcss-plugins/__test__/test1Input.css +39 -0
  115. package/lib/postcss-plugins/__test__/test1Output.css +39 -0
  116. package/lib/postcss-plugins/hoverActivePlugin.js +368 -0
  117. package/lib/postcss-plugins/variableModifier.js +243 -0
  118. package/lib/schemas/index.js +541 -65
  119. package/lib/servers/clusterHubServer.js +22 -26
  120. package/lib/servers/devBuild.js +102 -0
  121. package/lib/servers/docsServer.js +3 -5
  122. package/lib/servers/docsServerCore.js +94 -79
  123. package/lib/servers/getCliPath.js +28 -0
  124. package/lib/servers/helpServer.js +19 -21
  125. package/lib/servers/httpsOptions.js +18 -0
  126. package/lib/servers/impactServer.js +123 -115
  127. package/lib/servers/mockserver.js +44 -0
  128. package/lib/servers/nowatchserver.js +200 -0
  129. package/lib/servers/scrServer.js +147 -0
  130. package/lib/servers/server.js +134 -132
  131. package/lib/servers/ssServer.js +106 -70
  132. package/lib/sh/reportPublish.sh +16 -10
  133. package/lib/templates/CoverageScriptTemplate.js +45 -18
  134. package/lib/templates/WMSTemplate.js +17 -18
  135. package/lib/templates/linterConstant.js +10 -0
  136. package/lib/utils/babelPresets.js +12 -4
  137. package/lib/utils/buildstats.html +148 -0
  138. package/lib/utils/clean.js +12 -11
  139. package/lib/utils/copy.js +16 -109
  140. package/lib/utils/copyTimezones.js +21 -0
  141. package/lib/utils/createEventStream.js +24 -19
  142. package/lib/utils/cssClassNameGenerate.js +77 -0
  143. package/lib/utils/cssURLReplacer.js +136 -0
  144. package/lib/utils/dependencyPostPublish.js +42 -0
  145. package/lib/utils/fileUtils.js +125 -0
  146. package/lib/utils/folderIterator.js +47 -0
  147. package/lib/utils/getComponents.js +126 -0
  148. package/lib/utils/getCurrentBranch.js +11 -17
  149. package/lib/utils/getDependenciesImpactList.js +151 -0
  150. package/lib/utils/getHash.js +26 -0
  151. package/lib/utils/getIp.js +20 -0
  152. package/lib/utils/getOptions.js +113 -28
  153. package/lib/utils/getServerURL.js +25 -8
  154. package/lib/utils/index.js +283 -68
  155. package/lib/utils/init.js +2 -2
  156. package/lib/utils/initPreCommitHook.js +47 -27
  157. package/lib/utils/jsonHelper.js +106 -0
  158. package/lib/utils/libraryImpactConfig.js +63 -0
  159. package/lib/utils/lint/addScripts.js +27 -0
  160. package/lib/utils/lint/checkExistingConfig.js +67 -0
  161. package/lib/utils/lint/copyConfigs.js +24 -0
  162. package/lib/utils/lint/index.js +54 -0
  163. package/lib/utils/lint/lintScripts.js +11 -0
  164. package/lib/utils/lint/lintSetup.js +31 -0
  165. package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
  166. package/lib/utils/lint/question.js +30 -0
  167. package/lib/utils/lintReporter.js +142 -0
  168. package/lib/utils/mailSender.js +16 -25
  169. package/lib/utils/pullOrigin.js +28 -0
  170. package/lib/utils/reinstallDependencies.js +133 -0
  171. package/lib/utils/removeAttributes.js +25 -23
  172. package/lib/utils/repoClone.js +59 -63
  173. package/lib/utils/request.js +64 -77
  174. package/lib/utils/resultSchema.json +73 -0
  175. package/lib/utils/rtl.js +59 -0
  176. package/lib/utils/setEnvVariables.js +13 -0
  177. package/lib/utils/ssTestHack.js +48 -0
  178. package/lib/utils/switchBranch.js +28 -0
  179. package/lib/utils/urlConcat.js +22 -0
  180. package/lib/utils/useExitCleanup.js +55 -0
  181. package/npm8.md +9 -0
  182. package/package.json +96 -64
  183. package/postpublish.js +6 -0
  184. package/templates/app/.eslintrc.js +140 -0
  185. package/templates/app/README.md +12 -12
  186. package/templates/app/app/index.html +24 -8
  187. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  188. package/templates/app/app/properties/i18nkeys.json +3 -3
  189. package/templates/app/docs/all.html +69 -69
  190. package/templates/app/mockapi/index.js +18 -13
  191. package/templates/app/package.json +37 -17
  192. package/templates/app/src/actions/SampleActions/index.js +37 -0
  193. package/templates/app/src/actions/index.js +65 -0
  194. package/templates/app/src/appUrls.js +19 -0
  195. package/templates/app/src/components/Alert/Alert.js +134 -0
  196. package/templates/app/src/components/Alert/Alert.module.css +79 -0
  197. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -0
  198. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -0
  199. package/templates/app/src/components/Sample/Sample.module.css +11 -0
  200. package/templates/app/src/components/Sample/SampleList.js +61 -0
  201. package/templates/app/src/components/Slider/Slider.css +41 -0
  202. package/templates/app/src/components/Slider/Slider.js +55 -0
  203. package/templates/app/src/containers/AlertContainer/index.js +15 -0
  204. package/templates/app/src/containers/AppContainer/index.js +96 -0
  205. package/templates/app/src/containers/AppContainer/index.module.css +27 -0
  206. package/templates/app/src/containers/CustomMatch/index.js +65 -0
  207. package/templates/app/src/containers/DevTools/index.js +10 -0
  208. package/templates/app/src/containers/Header/index.js +67 -0
  209. package/templates/app/src/containers/Header/index.module.css +43 -0
  210. package/templates/app/src/containers/Redirect/index.js +63 -0
  211. package/templates/app/src/containers/Redirector/index.js +47 -0
  212. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -0
  213. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -0
  214. package/templates/app/src/historyChange.js +5 -0
  215. package/templates/app/src/index.html +10 -0
  216. package/templates/app/src/index.js +24 -0
  217. package/templates/app/src/middleware/PromiseMiddleware.js +59 -0
  218. package/templates/app/src/reducers/alertData.js +11 -0
  219. package/templates/app/src/reducers/index.js +6 -0
  220. package/templates/app/src/reducers/samples.js +19 -0
  221. package/templates/app/src/store/configureStore.dev.js +51 -0
  222. package/templates/app/src/store/configureStore.js +5 -0
  223. package/templates/app/src/store/configureStore.prod.js +26 -0
  224. package/templates/app/src/util/Common.js +5 -0
  225. package/templates/app/src/util/RequestAPI.js +132 -0
  226. package/templates/appold/README.md +12 -0
  227. package/templates/appold/app/index.html +8 -0
  228. package/templates/appold/app/properties/ApplicationResources_en_US.properties +1 -0
  229. package/templates/appold/app/properties/i18nkeys.json +3 -0
  230. package/templates/appold/docs/all.html +69 -0
  231. package/templates/appold/mockapi/index.js +13 -0
  232. package/templates/{app → appold}/mockapi/tickets.json +0 -0
  233. package/templates/appold/package.json +17 -0
  234. package/templates/appold/src/components/Text/Text.css +0 -0
  235. package/templates/appold/src/components/Text/Text.js +23 -0
  236. package/templates/appold/src/components/Text/__tests__/Text.spec.js +30 -0
  237. package/templates/appold/src/components/Text/docs/Text__default.docs.js +16 -0
  238. package/templates/appold/src/components/docs.js +1 -0
  239. package/templates/appold/src/components/index.js +5 -0
  240. package/templates/appold/src/index.js +13 -0
  241. package/templates/docs/all.html +1 -1
  242. package/templates/docs/component.html +110 -69
  243. package/templates/docs/components.html +221 -0
  244. package/templates/docs/css/component.css +12 -14
  245. package/templates/docs/css/componentTest.css +7 -0
  246. package/templates/docs/css/style.css +150 -206
  247. package/templates/docs/impactReportTemplate.html +154 -0
  248. package/templates/docs/index.html +1482 -1336
  249. package/templates/library/src/index.js +0 -0
  250. package/.npmignore +0 -3
  251. package/cert/cert.pem +0 -129
  252. package/cert/key.pem +0 -27
  253. package/lib/common/getInsertAt.js +0 -36
  254. package/lib/common/getInsertIntoFunction.js +0 -13
  255. package/lib/configs/webpack.server.config.js +0 -93
  256. package/lib/plugins/ChunkManifestReplacePlugin.js +0 -94
  257. package/lib/plugins/RuntimePublicPathPlugin.js +0 -46
  258. package/lib/rmcntrlm.sh +0 -14
  259. package/lib/servers/nodeServer.js +0 -238
  260. package/lib/templates/HMRTemplate.js +0 -256
  261. package/lib/templates/publicPathTemplate.js +0 -16
  262. package/lib/utils/setConfig.js +0 -14
  263. package/node_modules/history/CHANGES.md +0 -395
  264. package/node_modules/history/DOMUtils.js +0 -3
  265. package/node_modules/history/ExecutionEnvironment.js +0 -3
  266. package/node_modules/history/LICENSE +0 -21
  267. package/node_modules/history/LocationUtils.js +0 -3
  268. package/node_modules/history/PathUtils.js +0 -3
  269. package/node_modules/history/README.md +0 -282
  270. package/node_modules/history/cjs/history.js +0 -933
  271. package/node_modules/history/cjs/history.min.js +0 -1
  272. package/node_modules/history/createBrowserHistory.js +0 -3
  273. package/node_modules/history/createHashHistory.js +0 -3
  274. package/node_modules/history/createMemoryHistory.js +0 -3
  275. package/node_modules/history/createTransitionManager.js +0 -3
  276. package/node_modules/history/es/DOMUtils.js +0 -7
  277. package/node_modules/history/es/ExecutionEnvironment.js +0 -7
  278. package/node_modules/history/es/LocationUtils.js +0 -7
  279. package/node_modules/history/es/PathUtils.js +0 -7
  280. package/node_modules/history/es/createBrowserHistory.js +0 -7
  281. package/node_modules/history/es/createHashHistory.js +0 -7
  282. package/node_modules/history/es/createMemoryHistory.js +0 -7
  283. package/node_modules/history/es/createTransitionManager.js +0 -7
  284. package/node_modules/history/es/warnAboutDeprecatedESMImport.js +0 -35
  285. package/node_modules/history/esm/history.js +0 -904
  286. package/node_modules/history/index.js +0 -7
  287. package/node_modules/history/package.json +0 -134
  288. package/node_modules/history/umd/history.js +0 -1059
  289. package/node_modules/history/umd/history.min.js +0 -1
  290. package/node_modules/history/warnAboutDeprecatedCJSRequire.js +0 -35
  291. package/templates/app/.npmignore +0 -9
  292. package/templates/library/.npmignore +0 -9
@@ -1,88 +1,81 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _path = require('path');
3
+ var _path = _interopRequireDefault(require("path"));
4
4
 
5
- var _path2 = _interopRequireDefault(_path);
5
+ var _utils = require("../utils");
6
6
 
7
- var _utils = require('../utils');
7
+ var _pluginUtils = require("../pluginUtils");
8
8
 
9
- var _pluginUtils = require('../pluginUtils');
9
+ var _loaderUtils = require("../loaderUtils");
10
10
 
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ var _libAlias = require("./libAlias");
12
+
13
+ var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
12
14
 
13
- var options = (0, _utils.getOptions)();
14
- var _options$docs = options.docs,
15
- server = _options$docs.server,
16
- componentFolder = _options$docs.componentFolder,
17
- cssUniqueness = _options$docs.cssUniqueness,
18
- singleStyleTag = _options$docs.singleStyleTag,
19
- folder = options.app.folder;
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
16
 
21
- var appPath = process.cwd();
22
- var serverUrl = (0, _utils.getServerURL)(server);
23
- var className = cssUniqueness ? 'fz__[hash:base64:5]' : '[name]__[local]';
17
+ let options = (0, _utils.getOptions)();
18
+ let {
19
+ unstableDepsInverse,
20
+ docs: {
21
+ componentFolder,
22
+ disableES5Transpile,
23
+ enableChunkHash,
24
+ cssUniqueness,
25
+ plugins,
26
+ exclude,
27
+ mediaQueryHoverActiveString,
28
+ cssHashSelectors,
29
+ classNamePrefix
30
+ },
31
+ app: {
32
+ folder
33
+ }
34
+ } = options;
35
+ let appPath = process.cwd();
36
+ const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
24
37
 
25
- module.exports = {
38
+ module.exports = isSSTest => ({
26
39
  entry: {
27
- main: [_path2.default.resolve(__dirname, '..', 'hooks', 'docsProptypeHook.js'), _path2.default.join(appPath, componentFolder, 'index.js')],
40
+ main: [_path.default.resolve(__dirname, '..', 'hooks', 'docsProptypeHook.js'), _path.default.join(appPath, componentFolder, 'index.js')],
28
41
  vendor: ['react', 'react-dom', 'redux', 'react-redux']
29
42
  },
30
- devtool: 'eval',
43
+ devtool: 'none',
31
44
  mode: 'development',
32
45
  output: {
33
- path: _path2.default.join(appPath, 'build'),
34
- filename: '[name].js',
35
- publicPath: serverUrl + '/docs/js',
46
+ path: _path.default.join(appPath, 'build'),
47
+ filename: 'js/[name].js',
48
+ publicPath: '/docs/',
36
49
  library: 'Component',
37
50
  libraryTarget: 'umd'
38
51
  },
39
- plugins: (0, _pluginUtils.getDocsPlugins)(),
52
+ plugins: (0, _pluginUtils.getDocsPlugins)(isSSTest, options),
40
53
  module: {
41
54
  rules: [{
42
55
  test: /\.js$/,
43
56
  use: [{
44
57
  loader: 'babel-loader',
45
58
  options: {
46
- presets: [[require.resolve('babel-preset-env'), { modules: false }], require.resolve('babel-preset-react')],
47
- plugins: [[require.resolve('babel-plugin-transform-runtime'), {
59
+ presets: [[require.resolve('@babel/preset-env'), {
60
+ modules: false
61
+ }], require.resolve('@babel/preset-react')],
62
+ plugins: [[require.resolve('@babel/plugin-transform-runtime'), {
48
63
  helpers: true,
49
- polyfill: true,
50
- regenerator: false,
51
- moduleName: 'babel-runtime'
52
- }]],
64
+ regenerator: false
65
+ }], require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('@babel/plugin-syntax-object-rest-spread')],
53
66
  cacheDirectory: true
54
67
  }
55
68
  }],
56
- include: _path2.default.join(appPath, folder)
57
- // exclude: /node_modules/
69
+ include: _path.default.join(appPath, folder)
58
70
  }, {
59
71
  test: /\.docs\.js$/,
60
72
  use: require.resolve('../loaders/docsLoader.js'),
73
+ include: _path.default.join(appPath, folder),
61
74
  exclude: /node_modules/
62
75
  }, {
63
- test: /\.css$/,
64
- use: [{
65
- loader: 'style-loader',
66
- options: {
67
- singleton: singleStyleTag
68
- }
69
- }, {
70
- loader: 'css-loader',
71
- options: {
72
- modules: true,
73
- localIdentName: className
74
- }
75
- }]
76
- }, {
77
- test: /\.jpe?g$|\.gif$|\.png$/,
78
- use: ['url-loader?limit=1000&name=./images/[name].[ext]']
79
- }, {
80
- test: /\.woff2|\.woff$|\.ttf$|\.eot$/,
81
- use: ['url-loader?limit=1000&name=./fonts/[name].[ext]']
82
- }, {
83
- test: /\.svg$/,
84
- use: ['url-loader?limit=1&name=./fonts/[name].[ext]']
85
- }, {
76
+ test: /(\.module)?\.css$/,
77
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
78
+ }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
86
79
  test: /\.html$/,
87
80
  use: {
88
81
  loader: 'html-loader',
@@ -91,15 +84,30 @@ module.exports = {
91
84
  interpolate: 'require'
92
85
  }
93
86
  }
87
+ }, {
88
+ test: /\.tmpl$/,
89
+ use: [{
90
+ loader: 'html-loader',
91
+ options: {
92
+ minimize: {
93
+ removeComments: true,
94
+ collapseWhitespace: false,
95
+ removeAttributeQuotes: false,
96
+ minifyCSS: false,
97
+ minifyJS: false
98
+ }
99
+ }
100
+ }]
94
101
  }]
95
102
  },
96
103
  externals: {
97
104
  ZC: '$ZC'
98
105
  },
99
106
  resolve: {
100
- modules: [_path2.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
107
+ modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules'],
108
+ alias: disableES5Transpile ? _libAlias.libAlias : {}
101
109
  },
102
110
  resolveLoader: {
103
- modules: [_path2.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
111
+ modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
104
112
  }
105
- };
113
+ });
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ var _path = _interopRequireDefault(require("path"));
4
+
5
+ var _utils = require("../utils");
6
+
7
+ var _loaderUtils = require("../loaderUtils");
8
+
9
+ var _getLibraryImactPlugins = _interopRequireDefault(require("../pluginUtils/getLibraryImactPlugins"));
10
+
11
+ var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ let options = (0, _utils.getOptions)();
16
+ let {
17
+ docs: {
18
+ componentFolder,
19
+ cssUniqueness,
20
+ plugins,
21
+ exclude,
22
+ mediaQueryHoverActiveString,
23
+ cssHashSelectors,
24
+ enableChunkHash,
25
+ classNamePrefix
26
+ },
27
+ app: {
28
+ folder
29
+ }
30
+ } = options;
31
+ let appPath = process.cwd();
32
+ const nameTemplate = (0, _configsAssetsLoaders.createNameTemplate)(enableChunkHash);
33
+ module.exports = {
34
+ entry: {
35
+ main: [_path.default.resolve(__dirname, '..', 'hooks', 'docsProptypeHook.js'), _path.default.join(appPath, componentFolder, 'index.js')],
36
+ vendor: ['react', 'react-dom', 'redux', 'react-redux']
37
+ },
38
+ devtool: 'none',
39
+ mode: 'development',
40
+ output: {
41
+ path: _path.default.join(appPath, 'build'),
42
+ filename: 'js/[name].js',
43
+ publicPath: '/docs/',
44
+ library: 'Component',
45
+ libraryTarget: 'umd'
46
+ },
47
+ plugins: (0, _getLibraryImactPlugins.default)(options),
48
+ module: {
49
+ rules: [{
50
+ test: /\.js$/,
51
+ use: [{
52
+ loader: 'babel-loader',
53
+ options: {
54
+ presets: [[require.resolve('@babel/preset-env'), {
55
+ modules: false
56
+ }], require.resolve('@babel/preset-react')],
57
+ plugins: [[require.resolve('@babel/plugin-transform-runtime'), {
58
+ helpers: true,
59
+ regenerator: false
60
+ }], require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('@babel/plugin-syntax-object-rest-spread')],
61
+ cacheDirectory: true
62
+ }
63
+ }],
64
+ include: _path.default.join(appPath, folder)
65
+ }, {
66
+ test: /\.docs\.js$/,
67
+ use: require.resolve('../loaders/docsLoader.js'),
68
+ include: _path.default.join(appPath, folder),
69
+ exclude: /node_modules/
70
+ }, {
71
+ test: /(\.module)?\.css$/,
72
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
73
+ }, (0, _configsAssetsLoaders.configImageLoader)(nameTemplate), (0, _configsAssetsLoaders.configFontLoader)(nameTemplate), (0, _configsAssetsLoaders.configSVGLoader)(nameTemplate), (0, _configsAssetsLoaders.configAudioLoader)(nameTemplate), (0, _configsAssetsLoaders.configVideoLoader)(nameTemplate), {
74
+ test: /\.html$/,
75
+ use: {
76
+ loader: 'html-loader',
77
+ options: {
78
+ attrs: [':data-src'],
79
+ interpolate: 'require'
80
+ }
81
+ }
82
+ }, {
83
+ test: /\.tmpl$/,
84
+ use: [{
85
+ loader: 'html-loader',
86
+ options: {
87
+ interpolate: 'require',
88
+ ignoreCustomFragments: [/\{\{.*?}}/, /\$\{.*?}/],
89
+ minimize: true,
90
+ removeComments: true,
91
+ collapseWhitespace: false,
92
+ removeAttributeQuotes: false,
93
+ minifyCSS: false,
94
+ minifyJS: false
95
+ }
96
+ }]
97
+ }]
98
+ },
99
+ externals: {
100
+ ZC: '$ZC'
101
+ },
102
+ resolve: {
103
+ modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
104
+ },
105
+ resolveLoader: {
106
+ modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
107
+ },
108
+ stats: 'errors-only'
109
+ };
@@ -1,82 +1,108 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _path = require('path');
3
+ var _path = _interopRequireDefault(require("path"));
4
4
 
5
- var _path2 = _interopRequireDefault(_path);
5
+ var _utils = require("../utils");
6
6
 
7
- var _utils = require('../utils');
7
+ var _common = require("../common");
8
8
 
9
- var _common = require('../common');
9
+ var _pluginUtils = require("../pluginUtils");
10
10
 
11
- var _miniCssExtractPlugin = require('mini-css-extract-plugin');
11
+ var _loaderUtils = require("../loaderUtils");
12
12
 
13
- var _miniCssExtractPlugin2 = _interopRequireDefault(_miniCssExtractPlugin);
13
+ var _libAlias = require("./libAlias");
14
14
 
15
- var _pluginUtils = require('../pluginUtils');
15
+ var _configsAssetsLoaders = require("../loaderUtils/configsAssetsLoaders");
16
16
 
17
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
18
 
19
- var options = (0, _utils.getOptions)();
20
-
21
- var _options$app = options.app,
22
- folder = _options$app.folder,
23
- context = _options$app.context,
24
- styleTarget = _options$app.styleTarget,
25
- useInsertInto = _options$app.useInsertInto,
26
- useInsertAt = _options$app.useInsertAt,
27
- cssUniqueness = _options$app.cssUniqueness,
28
- enableChunkHash = _options$app.enableChunkHash,
29
- outputFolder = _options$app.outputFolder,
30
- disableES5Transpile = _options$app.disableES5Transpile,
31
- singleStyleTag = _options$app.singleStyleTag,
32
- removeAttribute = _options$app.removeAttribute;
33
-
34
-
35
- var appPath = process.cwd();
36
- //let { images, fonts } = staticDomainKeys;
37
- var className = cssUniqueness ? 'fz__[hash:base64:5]' : '[name]__[local]';
38
-
39
- var _process = process,
40
- _process$isDevelopmen = _process.isDevelopment,
41
- isDevelopment = _process$isDevelopmen === undefined ? false : _process$isDevelopmen;
42
-
19
+ // import TerserPlugin from 'terser-webpack-plugin';
20
+ let options = (0, _utils.getOptions)();
21
+ let {
22
+ unstableDepsInverse,
23
+ app: {
24
+ folder,
25
+ context,
26
+ enableChunkHash,
27
+ outputFolder,
28
+ disableES5Transpile,
29
+ removeAttribute,
30
+ enableSMap,
31
+ server,
32
+ plugins,
33
+ exclude,
34
+ mediaQueryHoverActiveString,
35
+ cssUniqueness,
36
+ server: {
37
+ mode
38
+ },
39
+ seperateCssModules,
40
+ changeRuntimeChunkChar,
41
+ cssHashSelectors,
42
+ classNamePrefix,
43
+ selectorReplace,
44
+ removePropTypes,
45
+ devConsoleExculde,
46
+ crossorigin
47
+ }
48
+ } = options;
49
+ let appPath = process.cwd();
50
+ let isDevelopment = mode === 'prod' || mode === 'dev' || mode === 'dev-no-warn';
43
51
  enableChunkHash = !isDevelopment && enableChunkHash;
44
-
45
- var styleLoaderOption = {
46
- singleton: singleStyleTag
52
+ let output = {
53
+ path: _path.default.resolve(appPath, outputFolder),
54
+ filename: enableChunkHash ? 'js/[name].[chunkhash:20]_.js' : 'js/[name]_.js',
55
+ chunkFilename: enableChunkHash ? 'js/[name].[chunkhash:20]_.js' : 'js/[name]_.js',
56
+ jsonpFunction: `${context}Jsonp`,
57
+ sourceMapFilename: enableChunkHash ? 'js/[name].[chunkhash:20]_.js.map' : 'js/[name]_.js.map'
47
58
  };
48
59
 
49
- if (useInsertInto) {
50
- styleLoaderOption.insertInto = (0, _common.getInsertIntoFunction)(styleTarget);
60
+ if (crossorigin) {
61
+ output.crossOriginLoading = 'anonymous';
51
62
  }
52
- if (useInsertAt) {
53
- var getInsertAt = require('../common/getInsertAt');
54
- var insertAt = getInsertAt();
55
- styleLoaderOption.insertAt = insertAt;
63
+
64
+ if (isDevelopment) {
65
+ let {
66
+ disableContextURL
67
+ } = server;
68
+ let contextURL = disableContextURL ? '' : context;
69
+ let serverUrl = (0, _utils.getServerURL)(server, 'https');
70
+ output.publicPath = `${[serverUrl, contextURL].filter(a => a).join('/')}/`;
56
71
  }
57
72
 
73
+ let shouldRemovePropTypes = !isDevelopment && removePropTypes;
58
74
  module.exports = {
59
75
  entry: (0, _common.getEntries)(options, 'production'),
60
- devtool: isDevelopment ? 'source-map' : 'hidden-source-map',
76
+ devtool: isDevelopment ? 'cheap-module-source-map' : enableSMap ? 'hidden-source-map' : 'none',
61
77
  mode: 'production',
62
- output: {
63
- path: _path2.default.resolve(appPath, outputFolder),
64
- filename: enableChunkHash ? 'js/[name].[chunkhash:20].js' : 'js/[name].js',
65
- chunkFilename: enableChunkHash ? 'js/[name].[chunkhash:20].js' : 'js/[name].js',
66
- jsonpFunction: context + 'Jsonp',
67
- sourceMapFilename: enableChunkHash ? 'smap/[name].[chunkhash:20].map' : 'smap/[name].map'
68
- },
78
+ output,
69
79
  optimization: {
70
80
  splitChunks: _common.splitChunks,
71
- minimize: true,
72
81
  runtimeChunk: {
73
- name: function name(entrypoint) {
74
- return 'runtime~' + entrypoint.name;
75
- }
82
+ name: entrypoint => changeRuntimeChunkChar ? `./runtime-${entrypoint.name}` : `./runtime~${entrypoint.name}`
76
83
  },
77
- concatenateModules: true
84
+ concatenateModules: true,
85
+ minimize: true,
86
+ // by default if minimize: true in webpack minimize then webpack automaticaly add TerserPlugin,
87
+ // So we are overrideing it.
88
+ // minimizer: [
89
+ // new TerserPlugin({
90
+ // cache: true,
91
+ // parallel: true,
92
+ // sourceMap: isDevelopment && enableSMap,
93
+ // exclude: /\/smap/
94
+ // })
95
+ // ],
96
+ moduleIds: 'named'
97
+ },
98
+ stats: {
99
+ children: false,
100
+ colors: true,
101
+ // excludeAssets: /i18n/,
102
+ // excludeAssets: /./,
103
+ warningsFilter: /\[mini-css-extract-plugin\]/
78
104
  },
79
- plugins: (0, _pluginUtils.getProdPlugins)(options),
105
+ plugins: (0, _pluginUtils.getProdPlugins)(options, output.publicPath),
80
106
  module: {
81
107
  /* strictExportPresence for break the build when imported module not present in respective file */
82
108
  strictExportPresence: true,
@@ -85,40 +111,46 @@ module.exports = {
85
111
  use: [{
86
112
  loader: 'babel-loader',
87
113
  options: {
88
- presets: [[require.resolve('babel-preset-env'), disableES5Transpile ? {
114
+ presets: [[require.resolve('@babel/preset-env'), disableES5Transpile ? {
89
115
  modules: false,
90
- useBuiltIns: true,
116
+ useBuiltIns: 'usage',
117
+ corejs: 3,
91
118
  targets: {
92
- browsers: ['Chrome >= 60', 'Safari >= 10.1', 'iOS >= 10.3', 'Firefox >= 54', 'Edge >= 15']
119
+ browsers: ['last 3 Chrome versions', 'last 3 Firefox versions', 'last 3 Edge versions', 'last 3 Safari versions']
93
120
  }
94
- } : { modules: false }], require.resolve('babel-preset-react')],
95
- plugins: disableES5Transpile ? [removeAttribute ? require.resolve('../utils/removeAttributes') : false].filter(Boolean) : [removeAttribute ? require.resolve('../utils/removeAttributes') : false, [require.resolve('babel-plugin-transform-runtime'), {
121
+ } : {
122
+ modules: false
123
+ }], require.resolve('@babel/preset-react')],
124
+ plugins: disableES5Transpile ? [removeAttribute ? require.resolve('../utils/removeAttributes') : false, require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('babel-plugin-lodash'), require.resolve('@babel/plugin-proposal-object-rest-spread'), devConsoleExculde ? [require.resolve('babel-plugin-transform-remove-console'), {
125
+ exclude: ['error', 'log']
126
+ }] : null].filter(Boolean) : [removeAttribute ? require.resolve('../utils/removeAttributes') : false, shouldRemovePropTypes ? [require.resolve('babel-plugin-transform-react-remove-prop-types'), removePropTypes] : false, [require.resolve('@babel/plugin-transform-runtime'), {
96
127
  helpers: true,
97
- polyfill: true,
98
- regenerator: false,
99
- moduleName: 'babel-runtime'
100
- }]].filter(Boolean),
128
+ regenerator: false
129
+ }], require.resolve('@babel/plugin-proposal-object-rest-spread'), require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('babel-plugin-lodash'), devConsoleExculde ? [require.resolve('babel-plugin-transform-remove-console'), {
130
+ exclude: ['error', 'log']
131
+ }] : null].filter(Boolean),
101
132
  cacheDirectory: true
102
133
  }
103
- }],
104
- include: _path2.default.join(appPath, folder)
105
- }, {
106
- test: /\.css$/,
107
- use: [{
108
- loader: _miniCssExtractPlugin2.default.loader,
109
- options: {
110
- // you can specify a publicPath here
111
- // by default it use publicPath in webpackOptions.output
112
- //publicPath: '../'
113
- }
114
- }, {
115
- loader: 'css-loader',
116
- options: {
117
- modules: true,
118
- localIdentName: '' + className,
119
- minimize: true
134
+ }].filter(Boolean),
135
+ // include: path.join(appPath, folder)
136
+ include: module => {
137
+ let srcPath = _path.default.join(appPath, folder);
138
+
139
+ let depsPath = _path.default.join(appPath, 'node_modules', '@zohodesk');
140
+
141
+ if (module.includes(srcPath) || devConsoleExculde && module.includes(depsPath)) {
142
+ return true;
120
143
  }
121
- }]
144
+
145
+ return false;
146
+ }
147
+ }, seperateCssModules ? {
148
+ test: /\.css$/,
149
+ exclude: /\.module\.css$/,
150
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, '[local]', false, null)
151
+ } : null, {
152
+ test: seperateCssModules ? /\.module\.css$/ : /\.css$/,
153
+ use: (0, _loaderUtils.getCSSLoaders)(plugins, exclude, mediaQueryHoverActiveString, false, cssUniqueness, selectorReplace, cssHashSelectors, classNamePrefix)
122
154
  }, {
123
155
  test: /\.jpe?g$|\.gif$|\.png$/,
124
156
  use: [{
@@ -126,27 +158,17 @@ module.exports = {
126
158
  options: {
127
159
  limit: 1000,
128
160
  name: enableChunkHash ? './images/[name].[hash:20].[ext]' : './images/[name].[ext]',
129
- // publicPath: url =>
130
- // `staticDomain[${JSON.stringify(images)}] + ${JSON.stringify(
131
- // url
132
- // )}`,
133
- //publicPathStringify: false,
134
- fallback: _path2.default.join(__dirname, '..', 'loaders', 'fileLoader.js')
161
+ fallback: _path.default.join(__dirname, '..', 'loaders', 'fileLoader.js')
135
162
  }
136
163
  }]
137
- }, {
164
+ }, (0, _configsAssetsLoaders.configVideoLoaderObj)(enableChunkHash ? './images/[name].[hash:20].[ext]' : './images/[name].[ext]'), {
138
165
  test: /\.woff2|\.woff$|\.ttf$|\.eot$/,
139
166
  use: [{
140
167
  loader: 'url-loader',
141
168
  options: {
142
169
  limit: 1000,
143
170
  name: enableChunkHash ? './fonts/[name].[hash:20].[ext]' : './fonts/[name].[ext]',
144
- // publicPath: url =>
145
- // `staticDomain[${JSON.stringify(fonts)}] + ${JSON.stringify(
146
- // url
147
- // )}`,
148
- // publicPathStringify: false,
149
- fallback: _path2.default.join(__dirname, '..', 'loaders', 'fileLoader.js')
171
+ fallback: _path.default.join(__dirname, '..', 'loaders', 'fileLoader.js')
150
172
  }
151
173
  }]
152
174
  }, {
@@ -156,23 +178,44 @@ module.exports = {
156
178
  options: {
157
179
  limit: 1,
158
180
  name: enableChunkHash ? './fonts/[name].[hash:20].[ext]' : './fonts/[name].[ext]',
159
- // publicPath: url =>
160
- // `staticDomain[${JSON.stringify(fonts)}] + ${JSON.stringify(
161
- // url
162
- // )}`,
163
- // publicPathStringify: false,
164
- fallback: _path2.default.join(__dirname, '..', 'loaders', 'fileLoader.js')
181
+ fallback: _path.default.join(__dirname, '..', 'loaders', 'fileLoader.js')
182
+ }
183
+ }]
184
+ }, {
185
+ test: /\.ogg$/,
186
+ use: [{
187
+ loader: 'file-loader',
188
+ options: {
189
+ name: enableChunkHash ? './fonts/[name].[hash:20].[ext]' : './fonts/[name].[ext]'
190
+ }
191
+ }]
192
+ }, {
193
+ test: /\.tmpl$/,
194
+ use: [{
195
+ loader: 'html-loader',
196
+ options: {
197
+ minimize: false
165
198
  }
166
199
  }]
167
- }]
200
+ }, {
201
+ test: /\.worker.js$/,
202
+ use: {
203
+ loader: require.resolve('../loaders/workerLoader.js'),
204
+ options: {
205
+ esModule: true,
206
+ filename: 'js/[name].[chunkhash:20].js'
207
+ }
208
+ }
209
+ }].filter(Boolean)
168
210
  },
169
211
  externals: {
170
212
  ZC: '$ZC'
171
213
  },
172
214
  resolve: {
173
- modules: [_path2.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
215
+ modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules'],
216
+ alias: disableES5Transpile ? _libAlias.libAlias : {}
174
217
  },
175
218
  resolveLoader: {
176
- modules: [_path2.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
219
+ modules: unstableDepsInverse ? ['node_modules', _path.default.resolve(__dirname, '..', '..', 'node_modules')] : [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
177
220
  }
178
221
  };