@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,62 +1,64 @@
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 _loaderUtils = _interopRequireDefault(require("loader-utils"));
6
6
 
7
- var _loaderUtils = require('loader-utils');
8
-
9
- var _loaderUtils2 = _interopRequireDefault(_loaderUtils);
7
+ var _common = require("../common");
10
8
 
11
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
10
 
13
11
  module.exports = function (content) {
12
+ let {
13
+ userRequest
14
+ } = this._module.issuer;
14
15
  this.cacheable && this.cacheable();
16
+
15
17
  if (!this.emitFile) {
16
18
  throw new Error('emitFile is required from module system');
17
19
  }
18
20
 
19
- var options = _loaderUtils2.default.getOptions(this) || {};
20
- var query = this.resourceQuery ? _loaderUtils2.default.parseQuery(this.resourceQuery) : {};
21
-
22
- // let configKey = query.config || 'fileLoader';
21
+ let options = _loaderUtils.default.getOptions(this) || {};
22
+ let query = this.resourceQuery ? _loaderUtils.default.parseQuery(this.resourceQuery) : {}; // let configKey = query.config || 'fileLoader';
23
23
 
24
- var config = {
25
- publicPath: false,
24
+ let config = {
25
+ // publicPath: false,
26
26
  useRelativePath: false,
27
- name: '[hash].[ext]',
28
- publicPathStrigify: true
29
- };
27
+ name: '[hash].[ext]' // publicPathStrigify: true
30
28
 
31
- // options takes precedence over config
32
- Object.keys(options).forEach(function (attr) {
29
+ }; // options takes precedence over config
30
+
31
+ Object.keys(options).forEach(attr => {
33
32
  config[attr] = options[attr];
34
- });
33
+ }); // query takes precedence over config and options
35
34
 
36
- // query takes precedence over config and options
37
- Object.keys(query).forEach(function (attr) {
35
+ Object.keys(query).forEach(attr => {
38
36
  config[attr] = query[attr];
39
37
  });
38
+ let context = config.context || options.context;
40
39
 
41
- var context = config.context || options.context;
42
- var url = _loaderUtils2.default.interpolateName(this, config.name, {
40
+ let url = _loaderUtils.default.interpolateName(this, config.name, {
43
41
  context: context,
44
42
  content: content,
45
43
  regExp: config.regExp
46
44
  });
47
45
 
48
- var outputPath = '';
46
+ let outputPath = '';
47
+ let filePath = this.resourcePath;
49
48
 
50
- var filePath = this.resourcePath;
51
49
  if (config.useRelativePath) {
52
- var issuerContext = this._module && this._module.issuer && this._module.issuer.context || context;
53
- var relativeUrl = issuerContext && _path2.default.relative(issuerContext, filePath).split(_path2.default.sep).join('/');
54
- var relativePath = relativeUrl && _path2.default.dirname(relativeUrl) + '/';
50
+ let issuerContext = this._module && this._module.issuer && this._module.issuer.context || context;
51
+
52
+ let relativeUrl = issuerContext && _path.default.relative(issuerContext, filePath).split(_path.default.sep).join('/');
53
+
54
+ let relativePath = relativeUrl && `${_path.default.dirname(relativeUrl)}/`;
55
+
55
56
  if (~relativePath.indexOf('../')) {
56
- outputPath = _path2.default.posix.join(outputPath, relativePath, url);
57
+ outputPath = _path.default.posix.join(outputPath, relativePath, url);
57
58
  } else {
58
59
  outputPath = relativePath + url;
59
60
  }
61
+
60
62
  url = relativePath + url;
61
63
  } else if (config.outputPath) {
62
64
  // support functions as outputPath to generate them dynamically
@@ -66,21 +68,28 @@ module.exports = function (content) {
66
68
  outputPath = url;
67
69
  }
68
70
 
69
- var publicPath = '__webpack_public_path__ + ' + JSON.stringify(url);
70
- if (config.publicPath !== false) {
71
- // support functions as publicPath to generate them dynamically
72
- if (config.publicPathStringify) {
73
- publicPath = JSON.Stringify(typeof config.publicPath === 'function' ? config.publicPath(url) : config.publicPath + url);
74
- } else {
75
- publicPath = typeof config.publicPath === 'function' ? config.publicPath(url) : config.publicPath + url;
76
- }
77
- }
71
+ let requestFromJS = /\.js$/.test(userRequest);
72
+ let publicPath = requestFromJS ? (0, _common.getPublicPathConfig)(url) : `__webpack_public_path__ + ${JSON.stringify(url)}`; // if (config.publicPath !== false) {
73
+ // // support functions as publicPath to generate them dynamically
74
+ // if (config.publicPathStringify) {
75
+ // publicPath = JSON.Stringify(
76
+ // typeof config.publicPath === 'function'
77
+ // ? config.publicPath(url)
78
+ // : config.publicPath + url
79
+ // );
80
+ // } else {
81
+ // publicPath =
82
+ // typeof config.publicPath === 'function'
83
+ // ? config.publicPath(url)
84
+ // : config.publicPath + url;
85
+ // }
86
+ // }
78
87
 
79
88
  if (query.emitFile === undefined || query.emitFile) {
80
89
  this.emitFile(outputPath, content);
81
90
  }
82
91
 
83
- return 'module.exports = ' + publicPath + ';';
92
+ return `module.exports = ${publicPath};`;
84
93
  };
85
94
 
86
95
  module.exports.raw = true;
@@ -1,18 +1,16 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- var _esprima = require('esprima');
3
+ var esprima = _interopRequireWildcard(require("esprima"));
4
4
 
5
- var esprima = _interopRequireWildcard(_esprima);
6
-
7
- var _escodegen = require('escodegen');
8
-
9
- var _escodegen2 = _interopRequireDefault(_escodegen);
5
+ var _escodegen = _interopRequireDefault(require("escodegen"));
10
6
 
11
7
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
8
 
13
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
10
 
15
- var start = {
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+
13
+ let start = {
16
14
  type: 'ExpressionStatement',
17
15
  expression: {
18
16
  type: 'CallExpression',
@@ -56,22 +54,28 @@ var start = {
56
54
  }
57
55
  };
58
56
 
59
- var scriptInstrumentLoader = function scriptInstrumentLoader(source) {
60
- var parsed = esprima.parseModule(source, { jsx: true });
61
- for (var i in parsed.body) {
57
+ let scriptInstrumentLoader = function (source) {
58
+ let parsed = esprima.parseModule(source, {
59
+ jsx: true
60
+ });
61
+
62
+ for (let i in parsed.body) {
62
63
  if (parsed.body[i].type === 'FunctionDeclaration' || parsed.body[i].type === 'ExportDefaultDeclaration' || parsed.body[i].type === 'ExportNamedDeclaration') {
63
- var ParsedTemp = void 0;
64
+ let ParsedTemp;
65
+
64
66
  if (parsed.body[i].type === 'FunctionDeclaration') {
65
67
  ParsedTemp = parsed.body[i];
66
68
  } else {
67
69
  ParsedTemp = parsed.body[i].declaration;
68
70
  }
71
+
69
72
  if (ParsedTemp) {
70
73
  if (ParsedTemp.id) {
71
- var funcname = ParsedTemp.id.name;
74
+ let funcname = ParsedTemp.id.name;
75
+
72
76
  if (funcname !== 'mapStateToProps') {
73
77
  if (!funcname.includes('_')) {
74
- var startFunc = JSON.parse(JSON.stringify(start));
78
+ let startFunc = JSON.parse(JSON.stringify(start));
75
79
  startFunc.expression.arguments[0].value = this.resourcePath;
76
80
  startFunc.expression.arguments[0].raw = this.resourcePath;
77
81
  startFunc.expression.arguments[1].value = funcname;
@@ -84,8 +88,7 @@ var scriptInstrumentLoader = function scriptInstrumentLoader(source) {
84
88
  }
85
89
  }
86
90
 
87
- return _escodegen2.default.generate(parsed);
88
- // function removeDuplicates(arr) {
91
+ return _escodegen.default.generate(parsed); // function removeDuplicates(arr) {
89
92
  // let uniqueArray = [];
90
93
  // for (let i = 0; i < arr.length; i++) {
91
94
  // if (uniqueArray.indexOf(arr[i]) == -1) {
@@ -97,9 +100,7 @@ var scriptInstrumentLoader = function scriptInstrumentLoader(source) {
97
100
  // funcArray = removeDuplicates(funcArray);
98
101
  };
99
102
 
100
- module.exports = scriptInstrumentLoader;
101
-
102
- // let start = {
103
+ module.exports = scriptInstrumentLoader; // let start = {
103
104
  // type: 'ExpressionStatement',
104
105
  // expression: {
105
106
  // type: 'CallExpression',
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _path = _interopRequireDefault(require("path"));
4
+
5
+ var _fs = _interopRequireDefault(require("fs"));
6
+
7
+ var _utils = require("../utils");
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+
11
+ let options = (0, _utils.getOptions)();
12
+ const {
13
+ cssSelectorZipPath
14
+ } = options.impactService;
15
+
16
+ const zipname = _path.default.parse(cssSelectorZipPath).name; // console.log({ cssSelectorZipPath, zipname });
17
+ // TODO:NOTE: need to check about .. path related files creation
18
+ // for now no css files have given form react-cli need to make sure about it.
19
+
20
+
21
+ let zippath = _path.default.join(process.cwd(), cssSelectorZipPath);
22
+
23
+ if (_fs.default.existsSync(_path.default.join(process.cwd(), cssSelectorZipPath))) {
24
+ _fs.default.rmSync(zippath);
25
+
26
+ console.log('zip file deleted', zippath); // fs.rmSync(zippath, {force:true})
27
+ // console.log('created folder ==> ', dpath);
28
+ } // const minicssComment =
29
+ // '// extracted by mini-css-extract-plugin\n';
30
+
31
+
32
+ const startStr = '// extracted by mini-css-extract-plugin\n' + 'module.exports = ';
33
+
34
+ module.exports = function (source) {
35
+ const {
36
+ rootContext,
37
+ resourcePath
38
+ } = this;
39
+
40
+ const relativePath = _path.default.relative(rootContext, resourcePath);
41
+
42
+ let fpath = _path.default.join(rootContext, zipname, relativePath);
43
+
44
+ let originalpath = _path.default.join(rootContext, relativePath);
45
+
46
+ if (relativePath.startsWith('..')) {
47
+ throw `unexpected path ${relativePath}`;
48
+ }
49
+
50
+ let dpath = fpath.slice(0, fpath.lastIndexOf(_path.default.sep));
51
+
52
+ if (!_fs.default.existsSync(originalpath)) {
53
+ throw `originalpath not exixt ${originalpath}`;
54
+ }
55
+
56
+ if (!_fs.default.existsSync(dpath)) {
57
+ _fs.default.mkdirSync(dpath, {
58
+ recursive: true
59
+ });
60
+ }
61
+
62
+ let jsonStr = '{}';
63
+
64
+ if (source.startsWith(startStr)) {
65
+ // source will be like
66
+ // `// extracted by mini-css-extract-plugin\nmodule.exports = {"app":"zd-app"};`
67
+ jsonStr = source.slice(startStr.length, -1);
68
+ }
69
+
70
+ _fs.default.writeFileSync(`${fpath}_map`, jsonStr);
71
+
72
+ _fs.default.writeFileSync(fpath, _fs.default.readFileSync(originalpath));
73
+
74
+ return source;
75
+ };
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = loader;
7
+ exports.pitch = pitch;
8
+
9
+ var _path = _interopRequireDefault(require("path"));
10
+
11
+ var _loaderUtils = require("loader-utils");
12
+
13
+ var _schemaUtils = _interopRequireDefault(require("schema-utils"));
14
+
15
+ var _SingleEntryPlugin = _interopRequireDefault(require("webpack/lib/SingleEntryPlugin"));
16
+
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+
19
+ /* import WebWorkerTemplatePlugin from 'webpack/lib/webworker/WebWorkerTemplatePlugin';
20
+ import ExternalsPlugin from 'webpack/lib/ExternalsPlugin'; */
21
+ const schema = {
22
+ 'type': 'object',
23
+ 'properties': {
24
+ 'publicPath': {
25
+ 'anyOf': [{
26
+ 'type': 'string'
27
+ }, {
28
+ 'instanceof': 'Function'
29
+ }]
30
+ },
31
+ 'filename': {
32
+ 'anyOf': [{
33
+ 'type': 'string',
34
+ 'minLength': 1
35
+ }, {
36
+ 'instanceof': 'Function'
37
+ }]
38
+ },
39
+ 'chunkFilename': {
40
+ 'type': 'string',
41
+ 'minLength': 1
42
+ },
43
+ 'esModule': {
44
+ 'type': 'boolean'
45
+ }
46
+ },
47
+ 'additionalProperties': false
48
+ }; // eslint-disable-next-line
49
+
50
+ function loader() {}
51
+
52
+ function getDefaultFilename(filename) {
53
+ if (typeof filename === 'function') {
54
+ return filename;
55
+ }
56
+
57
+ return filename.replace(/\.([a-z]+)(\?.+)?$/i, '.worker.$1$2');
58
+ }
59
+
60
+ function getDefaultChunkFilename(chunkFilename) {
61
+ return chunkFilename.replace(/\.([a-z]+)(\?.+)?$/i, '.worker.$1$2');
62
+ }
63
+
64
+ function pitch(request) {
65
+ this.cacheable(false);
66
+ const options = (0, _loaderUtils.getOptions)(this);
67
+ (0, _schemaUtils.default)(schema, options, {
68
+ name: 'Worker Loader',
69
+ baseDataPath: 'options'
70
+ });
71
+ const workerContext = {};
72
+ const compilerOptions = this._compiler.options || {};
73
+ const filename = options.filename ? options.filename : getDefaultFilename(compilerOptions.output.filename);
74
+ const chunkFilename = options.chunkFilename ? options.chunkFilename : getDefaultChunkFilename(compilerOptions.output.chunkFilename);
75
+ const publicPath = options.publicPath ? options.publicPath : compilerOptions.output.publicPath;
76
+ workerContext.options = {
77
+ filename,
78
+ chunkFilename,
79
+ publicPath,
80
+ globalObject: 'self'
81
+ };
82
+ workerContext.compiler = this._compilation.createChildCompiler(`worker-loader ${request}`, workerContext.options);
83
+ /*
84
+ new WebWorkerTemplatePlugin().apply(workerContext.compiler);
85
+
86
+ if (compilerOptions.externals) {
87
+ new ExternalsPlugin(
88
+ getExternalsType(compilerOptions),
89
+ compilerOptions.externals
90
+ ).apply(workerContext.compiler);
91
+ } */
92
+
93
+ new _SingleEntryPlugin.default(this.context, `!!${request}`, _path.default.parse(this.resourcePath).name).apply(workerContext.compiler);
94
+ workerContext.request = request;
95
+ const cb = this.async();
96
+ workerContext.compiler.runAsChild((errorArg, entries, compilation) => {
97
+ let error = errorArg;
98
+
99
+ if (!error && compilation.errors && compilation.errors.length) {
100
+ // eslint-disable-next-line
101
+ error = compilation.errors[0];
102
+ }
103
+
104
+ const entry = entries && entries[0] && entries[0].files.values().next().value;
105
+
106
+ if (!error && !entry) {
107
+ error = Error(`WorkerPlugin: no entry for ${request}`);
108
+ }
109
+
110
+ if (error) {
111
+ return cb(error);
112
+ }
113
+
114
+ function workerCode() {
115
+ let blob;
116
+
117
+ try {
118
+ blob = new Blob([`importScripts('${this.workerUrl}');`], {
119
+ 'type': 'application/javascript'
120
+ });
121
+ } catch (e1) {
122
+ throw new Error(e1);
123
+ }
124
+
125
+ let url = window.URL || window.webkitURL;
126
+ let blobUrl = url.createObjectURL(blob);
127
+ let worker = new Worker(blobUrl);
128
+ return worker;
129
+ }
130
+
131
+ return cb(null, `${options.esModule ? 'export default' : 'module.exports ='} {\n
132
+ workerUrl: __webpack_public_path__ + ${JSON.stringify(entry)}, \n
133
+ getInstance: ${workerCode} \n
134
+ }`);
135
+ });
136
+ }
@@ -1,35 +1,43 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = HMRMiddleware;
7
+
7
8
  function pathMatch(url, path) {
8
9
  if (url === path) {
9
10
  return true;
10
11
  }
11
- var q = url.indexOf('?');
12
+
13
+ let q = url.indexOf('?');
14
+
12
15
  if (q === -1) {
13
16
  return false;
14
17
  }
18
+
15
19
  return url.substring(0, q) === path;
16
20
  }
17
21
 
18
22
  function createEventStream(heartbeat) {
19
- var clientId = 0;
20
- var clients = {};
23
+ let clientId = 0;
24
+ let clients = {};
25
+
21
26
  function everyClient(fn) {
22
- Object.keys(clients).forEach(function (id) {
27
+ Object.keys(clients).forEach(id => {
23
28
  fn(clients[id]);
24
29
  });
25
30
  }
26
- setInterval(function () {
27
- everyClient(function (client) {
28
- client.write('data: ' + JSON.stringify({ type: 'heartbeat' }) + '\n\n');
31
+
32
+ setInterval(() => {
33
+ everyClient(client => {
34
+ client.write(`data: ${JSON.stringify({
35
+ type: 'heartbeat'
36
+ })}\n\n`);
29
37
  });
30
38
  }, heartbeat).unref();
31
39
  return {
32
- handler: function handler(req, res) {
40
+ handler: function (req, res) {
33
41
  req.socket.setKeepAlive(true);
34
42
  res.writeHead(200, {
35
43
  'Access-Control-Allow-Origin': '*',
@@ -38,15 +46,15 @@ function createEventStream(heartbeat) {
38
46
  Connection: 'keep-alive'
39
47
  });
40
48
  res.write('\n');
41
- var id = clientId++;
49
+ let id = clientId++;
42
50
  clients[id] = res;
43
- req.on('close', function () {
51
+ req.on('close', () => {
44
52
  delete clients[id];
45
53
  });
46
54
  },
47
- publish: function publish(payload) {
48
- everyClient(function (client) {
49
- client.write('data: ' + JSON.stringify(payload) + '\n\n');
55
+ publish: function (payload) {
56
+ everyClient(client => {
57
+ client.write(`data: ${JSON.stringify(payload)}\n\n`);
50
58
  });
51
59
  }
52
60
  };
@@ -56,25 +64,26 @@ function extractBundles(stats) {
56
64
  // Stats has modules, single bundle
57
65
  if (stats.modules) {
58
66
  return [stats];
59
- }
67
+ } // Stats has children, multiple bundles
68
+
60
69
 
61
- // Stats has children, multiple bundles
62
70
  if (stats.children && stats.children.length) {
63
71
  return stats.children;
64
- }
72
+ } // Not sure, assume single
73
+
65
74
 
66
- // Not sure, assume single
67
75
  return [stats];
68
76
  }
69
77
 
70
78
  function publishStats(action, statsResult, eventStream, log) {
71
79
  // For multi-compiler, stats will be an object with a 'children' array of stats
72
- var bundles = extractBundles(statsResult.toJson({ errorDetails: false }));
73
- bundles.forEach(function (stats) {
80
+ let bundles = extractBundles(statsResult.toJson({
81
+ errorDetails: false
82
+ }));
83
+ bundles.forEach(stats => {
74
84
  if (log) {
75
- log('webpack built ' + (stats.name ? stats.name + ' ' : '') + stats.hash + ' in ' + stats.time + 'ms');
76
- }
77
- // if (
85
+ log(`webpack built ${stats.name ? `${stats.name} ` : ''}${stats.hash} in ${stats.time}ms`);
86
+ } // if (
78
87
  // // !force &&
79
88
  // action !== 'sync' &&
80
89
  // stats &&
@@ -86,6 +95,8 @@ function publishStats(action, statsResult, eventStream, log) {
86
95
  // type: 'still-ok'
87
96
  // });
88
97
  // }
98
+
99
+
89
100
  eventStream.publish({
90
101
  type: 'hash',
91
102
  data: stats.hash
@@ -109,47 +120,54 @@ function publishStats(action, statsResult, eventStream, log) {
109
120
  });
110
121
  }
111
122
 
112
- function HMRMiddleware(compiler) {
113
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
114
-
115
- opts.log =
116
- // eslint-disable-next-line no-console
123
+ function HMRMiddleware(compiler, opts = {}) {
124
+ opts.log = // eslint-disable-next-line no-console
117
125
  typeof opts.log === 'undefined' ? console.log.bind(console) : opts.log;
118
126
  opts.path = opts.path || '/__webpack_hmr';
119
127
  opts.heartbeat = opts.heartbeat || 10 * 1000;
128
+ let eventStream = createEventStream(opts.heartbeat);
129
+ let latestStats = null;
130
+ let loggedInfo = false;
131
+ compiler.hooks.beforeCompile.tap('HMRMiddleware', (c, callback) => {
132
+ if (opts.log && !loggedInfo) {
133
+ opts.log('webpack compilation starts...');
134
+ loggedInfo = true;
135
+ }
120
136
 
121
- var eventStream = createEventStream(opts.heartbeat);
122
- var latestStats = null;
123
-
124
- compiler.plugin('compile', function () {
137
+ callback && callback();
138
+ });
139
+ compiler.hooks.compile.tap('HMRMiddleware', () => {
125
140
  latestStats = null;
141
+
126
142
  if (opts.log) {
127
143
  opts.log('webpack building...');
128
144
  }
129
- eventStream.publish({ type: 'building' });
145
+
146
+ eventStream.publish({
147
+ type: 'building'
148
+ });
130
149
  });
131
- compiler.plugin('done', function (statsResult) {
150
+ compiler.hooks.done.tap('HMRMiddleware', statsResult => {
132
151
  // Keep hold of latest stats so they can be propagated to new clients
133
152
  latestStats = statsResult;
134
-
135
153
  publishStats('built', latestStats, eventStream, opts.log);
136
154
  });
137
- var middleware = function middleware(req, res, next) {
155
+
156
+ let middleware = function (req, res, next) {
138
157
  if (!pathMatch(req.url, opts.path)) {
139
158
  return next();
140
159
  }
141
- eventStream.handler(req, res);
142
- // if (latestStats) {
160
+
161
+ eventStream.handler(req, res); // if (latestStats) {
143
162
  // // Explicitly not passing in `log` fn as we don't want to log again on
144
163
  // // the server
145
164
  // // publishStats('sync', latestStats, eventStream);
146
165
  // }
147
166
  };
167
+
148
168
  middleware.publish = eventStream.publish;
149
169
  return middleware;
150
- }
151
-
152
- // function buildModuleMap(modules) {
170
+ } // function buildModuleMap(modules) {
153
171
  // let map = {};
154
172
  // modules.forEach(function(module) {
155
173
  // map[module.id] = module.name;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _utils = require("../utils");
9
+
10
+ function SSTMiddleware(compiler, callback) {
11
+ compiler.hooks.done.tap('SSTMiddleware', stats => {
12
+ (0, _utils.log)('Compilation finished!');
13
+ callback(stats.compilation.assets['js/moduleStats.js'].source());
14
+ });
15
+ return (res, req, next) => {
16
+ next();
17
+ };
18
+ }
19
+
20
+ var _default = SSTMiddleware;
21
+ exports.default = _default;