@zohodesk/react-cli 1.1.17 → 1.1.18-exp.1

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 (135) hide show
  1. package/README.md +13 -0
  2. package/lib/babel/babel-option-utils/babel-preset-react-option.js +22 -0
  3. package/lib/babel/cmjs-plugins-presets.js +7 -1
  4. package/lib/babel/es-plugins-presets.js +7 -1
  5. package/lib/configs/webpack.dev.config.js +7 -2
  6. package/lib/configs/webpack.prod.config.js +9 -2
  7. package/lib/loaderUtils/getDevJsLoaders.js +5 -1
  8. package/lib/schemas/index.js +4 -0
  9. package/npm-shrinkwrap.json +31 -5
  10. package/package.json +1 -1
  11. package/packages/client_build_tool/lib/allCommandsConfigs.js +23 -0
  12. package/packages/client_build_tool/lib/buildToolLoggers.js +32 -0
  13. package/packages/client_build_tool/lib/commands/build/commandExecutor.js +21 -0
  14. package/packages/client_build_tool/lib/commands/build/config.js +12 -0
  15. package/packages/client_build_tool/lib/commands/build/errorHander.js +10 -0
  16. package/packages/client_build_tool/lib/commands/build/index.js +35 -0
  17. package/packages/client_build_tool/lib/commands/build/optionsProcesser.js +40 -0
  18. package/packages/client_build_tool/lib/commands/buildEs/commandExecutor.js +17 -0
  19. package/packages/client_build_tool/lib/commands/buildEs/config.js +12 -0
  20. package/packages/client_build_tool/lib/commands/buildLib/commandExecutor.js +17 -0
  21. package/packages/client_build_tool/lib/commands/buildLib/config.js +12 -0
  22. package/packages/client_build_tool/lib/commands/start/commandExecutor.js +13 -0
  23. package/packages/client_build_tool/lib/commands/start/config.js +12 -0
  24. package/packages/client_build_tool/lib/commands/start/deprecationHandler.js +10 -0
  25. package/packages/client_build_tool/lib/commands/start/errorHander.js +10 -0
  26. package/packages/client_build_tool/lib/commands/start/optionsProcesser.js +36 -0
  27. package/packages/client_build_tool/lib/commands/start/postProcesser.js +10 -0
  28. package/packages/client_build_tool/lib/commands/start/preProcesser.js +10 -0
  29. package/packages/client_build_tool/lib/commandsRouter.js +71 -0
  30. package/packages/client_build_tool/lib/shared/bundler/webpack/common/decidePublicPath.js +44 -0
  31. package/packages/client_build_tool/lib/shared/bundler/webpack/common/libAlias.js +31 -0
  32. package/packages/client_build_tool/lib/shared/bundler/webpack/common/nameTemplates.js +51 -0
  33. package/packages/client_build_tool/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
  34. package/packages/client_build_tool/lib/shared/bundler/webpack/cssLoaders.js +16 -0
  35. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +111 -0
  36. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCPlugin.js +1 -0
  37. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
  38. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +136 -0
  39. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
  40. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
  41. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
  42. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
  43. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nDependency.js +99 -0
  44. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +81 -0
  45. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nModule.js +201 -0
  46. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +401 -0
  47. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +67 -0
  48. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
  49. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
  50. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +49 -0
  51. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
  52. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +63 -0
  53. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
  54. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
  55. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +127 -0
  56. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
  57. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +63 -0
  58. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +89 -0
  59. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
  60. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +15 -0
  61. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +155 -0
  62. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin.js +49 -0
  63. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/ExcludePlugin.js +58 -0
  64. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/RTLSplitPlugin.js +139 -0
  65. package/packages/client_build_tool/lib/shared/bundler/webpack/devServerConfig.js +34 -0
  66. package/packages/client_build_tool/lib/shared/bundler/webpack/getCSSLoaders.js +30 -0
  67. package/packages/client_build_tool/lib/shared/bundler/webpack/jsLoaders.js +17 -0
  68. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +14 -0
  69. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +24 -0
  70. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
  71. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
  72. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +138 -0
  73. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +83 -0
  74. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +23 -0
  75. package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
  76. package/packages/client_build_tool/lib/shared/bundler/webpack/optimizationConfig.js +39 -0
  77. package/packages/client_build_tool/lib/shared/bundler/webpack/outputConfig.js +28 -0
  78. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +18 -0
  79. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyThirdpartyFile.js +38 -0
  80. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +24 -0
  81. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +28 -0
  82. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +35 -0
  83. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
  84. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +23 -0
  85. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +19 -0
  86. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
  87. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +18 -0
  88. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configUglifyCSSPlugin.js +15 -0
  89. package/packages/client_build_tool/lib/shared/bundler/webpack/plugins.js +39 -0
  90. package/packages/client_build_tool/lib/shared/bundler/webpack/postcssPlugins.js +36 -0
  91. package/packages/client_build_tool/lib/shared/bundler/webpack/resolvers.js +42 -0
  92. package/packages/client_build_tool/lib/shared/bundler/webpack/splitChunksConfig.js +12 -0
  93. package/packages/client_build_tool/lib/shared/bundler/webpack/webpack.dev.config.js +17 -0
  94. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackBuild.js +24 -0
  95. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackConfig.js +50 -0
  96. package/packages/client_build_tool/lib/shared/commands-utlis/doBasicRequiermentCheck.js +16 -0
  97. package/packages/client_build_tool/lib/shared/commands-utlis/getCliPath.js +38 -0
  98. package/packages/client_build_tool/lib/shared/commands-utlis/index.js +29 -0
  99. package/packages/client_build_tool/lib/shared/commands-utlis/log.js +13 -0
  100. package/packages/client_build_tool/lib/shared/commands-utlis/readArgsFormCommandLine.js +11 -0
  101. package/packages/client_build_tool/lib/shared/commands-utlis/readOptionFormCommandLine.js +11 -0
  102. package/packages/client_build_tool/lib/shared/commands-utlis/spanSync.js +35 -0
  103. package/packages/client_build_tool/lib/shared/constants.js +33 -0
  104. package/packages/client_build_tool/lib/shared/schemas/applyValuesToShema.js +37 -0
  105. package/packages/client_build_tool/lib/shared/schemas/cliArgsToObject.js +37 -0
  106. package/packages/client_build_tool/lib/shared/schemas/defaultConfigValues.js +119 -0
  107. package/packages/client_build_tool/lib/shared/schemas/deprecatedOptionsHandler.js +65 -0
  108. package/packages/client_build_tool/lib/shared/schemas/getCWD.js +23 -0
  109. package/packages/client_build_tool/lib/shared/schemas/getNpmVersion.js +21 -0
  110. package/packages/client_build_tool/lib/shared/schemas/npmConfigToObject.js +32 -0
  111. package/packages/client_build_tool/lib/shared/schemas/oldDefaultConfigValues.js +480 -0
  112. package/packages/client_build_tool/lib/shared/schemas/readOptions.js +55 -0
  113. package/packages/client_build_tool/lib/shared/schemas/readOptionsForPackageJson.js +26 -0
  114. package/packages/client_build_tool/lib/shared/schemas/readOptionsOld.js +152 -0
  115. package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.crt +37 -0
  116. package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.key +27 -0
  117. package/packages/client_build_tool/lib/shared/server/configWebpackDevMiddleware.js +40 -0
  118. package/packages/client_build_tool/lib/shared/server/corsHandleing.js +28 -0
  119. package/packages/client_build_tool/lib/shared/server/getIp.js +30 -0
  120. package/packages/client_build_tool/lib/shared/server/getServerURL.js +29 -0
  121. package/packages/client_build_tool/lib/shared/server/httpsOptions.js +53 -0
  122. package/packages/client_build_tool/lib/shared/server/initExpressApp.js +19 -0
  123. package/packages/client_build_tool/lib/shared/server/initialHTMLHandling.js +66 -0
  124. package/packages/client_build_tool/lib/shared/server/serveContextFiles.js +24 -0
  125. package/packages/client_build_tool/lib/shared/server/serverBywebpackDevMiddleware.js +40 -0
  126. package/packages/client_build_tool/lib/shared/server/startHttpServer.js +26 -0
  127. package/packages/client_build_tool/lib/shared/server/startHttpsServer.js +34 -0
  128. package/packages/client_build_tool/lib/shared/server/unwanted/addHttp2Server.js +41 -0
  129. package/packages/client_build_tool/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
  130. package/packages/client_build_tool/lib/shared/server/unwanted/devServerUtlis.js +1 -0
  131. package/packages/client_build_tool/lib/shared/server/unwanted/mockApiSupport.js +19 -0
  132. package/packages/client_build_tool/lib/shared/server/unwanted/webpackConfig.js +32 -0
  133. package/packages/client_build_tool/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
  134. package/packages/client_build_tool/lib/shared/server/urlConcat.js +25 -0
  135. package/packages/client_build_tool/lib/shared/utils/utils.js +1 -0
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.excludeEmptyCheckPlugin = excludeEmptyCheckPlugin;
8
+
9
+ var _postcss = _interopRequireDefault(require("postcss"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
13
+ const ExcludePlugin = opts => {
14
+ const {
15
+ plugins,
16
+ exclude
17
+ } = opts;
18
+ return {
19
+ postcssPlugin: 'postcss-dark-theme-class',
20
+
21
+ Once(root, {
22
+ result
23
+ }) {
24
+ const inputFile = root.source.input.file;
25
+ const isIgnoredFile = exclude.some(file => inputFile.indexOf(file) !== -1);
26
+
27
+ if (!isIgnoredFile) {
28
+ const handler = response => response.messages.forEach(msg => result.messages.push(msg));
29
+
30
+ return (0, _postcss.default)(plugins).process(root, {
31
+ from: undefined
32
+ }).then(handler);
33
+ }
34
+
35
+ return root;
36
+ }
37
+
38
+ };
39
+ };
40
+
41
+ ExcludePlugin.postcss = true;
42
+ var _default = ExcludePlugin;
43
+ exports.default = _default;
44
+
45
+ function excludeEmptyCheckPlugin({
46
+ enable,
47
+ exclude,
48
+ plugins
49
+ }) {
50
+ if (!enable) {
51
+ return [];
52
+ }
53
+
54
+ return exclude.length === 0 ? plugins : [ExcludePlugin({
55
+ exclude,
56
+ plugins
57
+ })];
58
+ }
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.separateRtlAndLtr = separateRtlAndLtr;
7
+ exports.separateSingleDir = separateSingleDir;
8
+
9
+ var postcss = _interopRequireWildcard(require("postcss"));
10
+
11
+ 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); }
12
+
13
+ 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; }
14
+
15
+ /* eslint-disable no-param-reassign */
16
+ const oppositeDir = {
17
+ ltr: 'rtl',
18
+ rtl: 'ltr'
19
+ };
20
+
21
+ function compareSelector(selector1, selector2) {
22
+ // console.log({ selector1, selector2 }, selector1 === selector2);
23
+ return selector1 === selector2;
24
+ }
25
+
26
+ const directionRegexs = {
27
+ ltr: /\[dir=ltr\]/,
28
+ rtl: /\[dir=rtl\]/
29
+ };
30
+
31
+ const getRegex = dir => directionRegexs[dir];
32
+
33
+ const getOppositeRegex = dir => getRegex(oppositeDir[dir]);
34
+
35
+ function selectorMinifySameDir(selector, direction) {
36
+ // NOTE: if this rule is same dir as current need
37
+ // then we can just remove that [dir=ltr] or [dir=rtl]
38
+ // it just for minimaze selector
39
+ const regex = getRegex(direction);
40
+ return selector.replace(regex, '').trim();
41
+ }
42
+ /**
43
+ * this funtion will remove given rule,
44
+ * if given selector and it's previous sibiling rule selector are same
45
+ * current rule properties will move to previous sibiling rule.
46
+ * @param {Rule} rule current rule
47
+ */
48
+
49
+
50
+ function mergeIfSameSelector(rule) {
51
+ // NOTE: to merge dublicate selector rules
52
+ const prev = rule.prev();
53
+
54
+ if (prev && compareSelector(prev.selector, rule.selector)) {
55
+ rule.each(decl => {
56
+ prev.append(decl);
57
+ });
58
+ rule.remove();
59
+ }
60
+ }
61
+ /**
62
+ * this funtion will remove given rule,
63
+ * if given selector and it's previous sibiling rule selector are same
64
+ * current rule properties will move to previous sibiling rule.
65
+ * @param {Rule} rule current rule
66
+ */
67
+
68
+
69
+ function removeIfOppsiteDirRule(rule, direction, rootOptions) {
70
+ // console.log({ rule, type: rule.type });
71
+ const selectors = rule.selector.split(/\s*,\s*/); // NOTE: if we use opposite dir selector as custom override reason,
72
+ // and compain normal selector with it, In this case
73
+ // we just a have to remove that selector only not full rule
74
+
75
+ const oppositeDirRegex = getOppositeRegex(direction);
76
+ let remainingSelectors = selectors.filter(selector => !oppositeDirRegex.test(selector));
77
+
78
+ if (!rootOptions.disableMinifySelector) {
79
+ remainingSelectors = remainingSelectors.map(selector => selectorMinifySameDir(selector, direction));
80
+ }
81
+
82
+ if (remainingSelectors.length) {
83
+ rule.selector = remainingSelectors.join(', ');
84
+ } else {
85
+ // NOTE: every selector is opposite dir then we have to remove the rule
86
+ rule.remove();
87
+ }
88
+ }
89
+
90
+ function removeIfOppsiteDirKeyframe(rule, direction) {
91
+ const name = rule.params;
92
+ const keyFrameDirName = name.slice(name.lastIndexOf('-') + 1);
93
+
94
+ if (keyFrameDirName === oppositeDir[direction]) {
95
+ // console.log({ m: 'removed', keyFrameName: rule.params });
96
+ rule.remove();
97
+ }
98
+ }
99
+
100
+ function separateSingleDir(root, direction, rootOptions) {
101
+ root.walkRules(rule => {
102
+ removeIfOppsiteDirRule(rule, direction, rootOptions);
103
+ mergeIfSameSelector(rule);
104
+ });
105
+ root.walkAtRules(rule => {
106
+ removeIfOppsiteDirKeyframe(rule, direction);
107
+ });
108
+ return root;
109
+ }
110
+
111
+ function separateRtlAndLtr(css, rootOptions) {
112
+ // let processor = postcss([]).process(css);
113
+ const root = postcss.parse(css); // let { root } = processor;
114
+ // console.log(processor, root);
115
+ // NOTE: I did first rtl then ltr , Because for ltr I use original root ref
116
+
117
+ const rtlRoot = separateSingleDir(root.clone(), 'rtl', rootOptions); // console.log('############################');
118
+
119
+ const ltrRoot = separateSingleDir(root, 'ltr', rootOptions);
120
+ return {
121
+ ltrRoot,
122
+ rtlRoot,
123
+ ltr: ltrRoot.toString(),
124
+ rtl: rtlRoot.toString()
125
+ };
126
+ } // NOTE: to test in https://astexplorer.net/
127
+ // you can test with sample input https://astexplorer.net/#/gist/a892a509eb585099355ef53ef094f836/1ca70d5f7af3b88ca4910296e12f118e9712c874
128
+ // export default postcss.plugin('postcss-rtl-remove', (options = {}) =>
129
+ // // Work with options here
130
+ // root => {
131
+ // const rtlRoot = separateSingleDir(root.clone(), 'rtl');
132
+ // const ltrRoot = separateSingleDir(root, 'ltr');
133
+ // // root.append(postcss.comment({ text: 'comment' }));
134
+ // root.append(postcss.comment({ text: 'this is spliting part ' }));
135
+ // root.append(rtlRoot);
136
+ // //console.log({root, roots:root+""}, root+"")
137
+ // // Transform CSS AST here
138
+ // }
139
+ // );
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.devServerConfig = devServerConfig;
7
+
8
+ var _path = require("path");
9
+
10
+ var _constants = require("../../constants");
11
+
12
+ // import { httpsOptions } from '../../server/httpsOptions';
13
+ function devServerConfig(options) {
14
+ const {
15
+ context,
16
+ server
17
+ } = options;
18
+ const {
19
+ port
20
+ } = server;
21
+ return {
22
+ static: {
23
+ directory: (0, _path.join)(_constants.appPath, context)
24
+ },
25
+ allowedHosts: 'all',
26
+ // https: httpsOptions(options),
27
+ client: {
28
+ logging: 'error',
29
+ overlay: true
30
+ },
31
+ // contentBase: "app"
32
+ port
33
+ };
34
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCSSLoaders = getCSSLoaders;
7
+
8
+ var _miniCssExtractPlugin = _interopRequireDefault(require("mini-css-extract-plugin"));
9
+
10
+ var _getCssLoaderOptions = require("./loaderConfigs/getCssLoaderOptions");
11
+
12
+ var _postcssPlugins = require("./postcssPlugins");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function getCSSLoaders(options) {
17
+ const neededPostCssPlugins = (0, _postcssPlugins.postcssPlugins)(options);
18
+ const cssLoaderOptions = (0, _getCssLoaderOptions.getCssLoaderOptions)(options);
19
+ return [_miniCssExtractPlugin.default.loader, {
20
+ loader: 'css-loader',
21
+ options: cssLoaderOptions
22
+ }, neededPostCssPlugins.length && {
23
+ loader: 'postcss-loader',
24
+ options: {
25
+ postcssOptions: {
26
+ plugins: neededPostCssPlugins
27
+ }
28
+ }
29
+ }].filter(Boolean);
30
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.jsLoaders = jsLoaders;
7
+
8
+ var _babelLoaderConfig = require("./loaderConfigs/babelLoaderConfig");
9
+
10
+ function jsLoaders(options) {
11
+ return [{
12
+ test: /\.js$/,
13
+ exclude: /node_modules/,
14
+ use: [(0, _babelLoaderConfig.babelLoaderConfig)(options)] // include: path.join(appPath, folder)
15
+
16
+ }];
17
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assetLoaders = assetLoaders;
7
+
8
+ var _configsAssetsLoaders = require("./configsAssetsLoaders");
9
+
10
+ function assetLoaders(options) {
11
+ // const { enableChunkHash } = options;
12
+ // const nameTemplate = createNameTemplate(enableChunkHash);
13
+ return [(0, _configsAssetsLoaders.configImageLoader)(options), (0, _configsAssetsLoaders.configFontLoader)(options), (0, _configsAssetsLoaders.configSVGLoader)(options), (0, _configsAssetsLoaders.configAudioLoader)(options), (0, _configsAssetsLoaders.configVideoLoader)(options)];
14
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.babelLoaderConfig = babelLoaderConfig;
7
+ const supportedBrowserVersions = ['last 3 Chrome versions', 'last 3 Firefox versions', 'last 3 Edge versions', 'last 3 Safari versions'];
8
+
9
+ function babelLoaderConfig(options) {
10
+ return {
11
+ loader: 'babel-loader',
12
+ options: {
13
+ presets: [[require.resolve('@babel/preset-env'), {
14
+ modules: false,
15
+ useBuiltIns: 'usage',
16
+ corejs: 3,
17
+ targets: {
18
+ browsers: supportedBrowserVersions
19
+ }
20
+ }], require.resolve('@babel/preset-react')],
21
+ cacheDirectory: true
22
+ }
23
+ };
24
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configHtmlTemplateLoader = configHtmlTemplateLoader;
7
+
8
+ function configHtmlTemplateLoader(options) {
9
+ return {
10
+ test: /\.tmpl$/,
11
+ use: [{
12
+ loader: 'html-loader',
13
+ options: {
14
+ minimize: true
15
+ }
16
+ }]
17
+ };
18
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configWebWorkerLoader = configWebWorkerLoader;
7
+
8
+ var _nameTemplates = require("../common/nameTemplates");
9
+
10
+ function configWebWorkerLoader(options) {
11
+ return {
12
+ test: /\.worker.js$/,
13
+ use: {
14
+ loader: require.resolve('../loaders/workerLoader.js'),
15
+ options: {
16
+ esModule: true,
17
+ filename: (0, _nameTemplates.nameTemplates)('workerjs', options)
18
+ }
19
+ }
20
+ };
21
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configAudioLoader = configAudioLoader;
7
+ exports.configFontLoader = configFontLoader;
8
+ exports.configImageLoader = configImageLoader;
9
+ exports.configSVGLoader = configSVGLoader;
10
+ exports.configVideoLoader = configVideoLoader;
11
+
12
+ var _nameTemplates = require("../common/nameTemplates");
13
+
14
+ // function getLoaderOptionQueryString(params) {
15
+ const ImageExtRegex = /\.jpe?g$|\.gif$|\.png|\.webp$/;
16
+ const FontExtRegex = /\.woff2|\.woff$|\.ttf$|\.eot$/;
17
+ const SVGExtRegex = /\.svg$/;
18
+ const AudioExtRegex = /\.ogg$/;
19
+ const VideoExtRegex = /\.mp4|\.webm$/;
20
+
21
+ function createAssetLoader({
22
+ test,
23
+ nameTemplate,
24
+ limit
25
+ }) {
26
+ const conf = {
27
+ test,
28
+ type: 'asset'
29
+ };
30
+
31
+ if (limit) {
32
+ conf.parser = {
33
+ dataUrlCondition: {
34
+ maxSize: limit // 4 * 1024 // 4kb
35
+
36
+ }
37
+ };
38
+ } else {
39
+ conf.type = 'asset/resource';
40
+ }
41
+
42
+ if (nameTemplate) {
43
+ conf.generator = {
44
+ filename: nameTemplate
45
+ };
46
+ }
47
+
48
+ return conf;
49
+ }
50
+ /**
51
+ * @typedef {Object} LoaderConfig
52
+ * @property {Number} enableChunkHash
53
+ */
54
+
55
+ /**
56
+ * @param {LoaderConfig} options
57
+ * @returns
58
+ */
59
+
60
+
61
+ function configImageLoader(options) {
62
+ return createAssetLoader({
63
+ test: ImageExtRegex,
64
+ nameTemplate: (0, _nameTemplates.nameTemplates)('image', options),
65
+ limit: 1000
66
+ });
67
+ }
68
+
69
+ function configFontLoader(options) {
70
+ return createAssetLoader({
71
+ test: FontExtRegex,
72
+ nameTemplate: (0, _nameTemplates.nameTemplates)('font', options),
73
+ limit: 1000
74
+ });
75
+ }
76
+
77
+ function configSVGLoader(options) {
78
+ return createAssetLoader({
79
+ test: SVGExtRegex,
80
+ nameTemplate: (0, _nameTemplates.nameTemplates)('svg', options),
81
+ limit: 1000
82
+ });
83
+ }
84
+
85
+ function configAudioLoader(options) {
86
+ return createAssetLoader({
87
+ test: AudioExtRegex,
88
+ nameTemplate: (0, _nameTemplates.nameTemplates)('audio', options)
89
+ });
90
+ }
91
+
92
+ function configVideoLoader(options) {
93
+ return createAssetLoader({
94
+ test: VideoExtRegex,
95
+ nameTemplate: (0, _nameTemplates.nameTemplates)('video', options)
96
+ });
97
+ }
98
+ /*
99
+ export function createNameTemplate(enableChunkHash) {
100
+ const ext = `${enableChunkHash ? ".[hash:20]" : ""}.[ext]`;
101
+ return `[name]${ext}`;
102
+ }
103
+
104
+ export function createImageAndFontsAndSVGLoaders(enableChunkHash) {
105
+ const nameTemplate = createNameTemplate(enableChunkHash);
106
+ return [
107
+ configImageLoader(nameTemplate),
108
+ configFontLoader(nameTemplate),
109
+ configSVGLoader(nameTemplate),
110
+ configAudioLoader(nameTemplate)
111
+ ];
112
+ }
113
+ */
114
+
115
+ /*
116
+ export function createLoaderOptionObject(
117
+ loaderName,
118
+ nameTemplate,
119
+ fallback,
120
+ limit = 1000
121
+ ) {
122
+ return {
123
+ loader: loaderName,
124
+ options: {
125
+ limit,
126
+ name: nameTemplate,
127
+ fallback
128
+ }
129
+ };
130
+ }
131
+
132
+ function configLoaderObject(filter, loaderAndOptions) {
133
+ return {
134
+ test: filter,
135
+ use: loaderAndOptions
136
+ };
137
+ }
138
+ */
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _crypto = require("crypto");
9
+
10
+ var _os = _interopRequireDefault(require("os"));
11
+
12
+ var _path = _interopRequireDefault(require("path"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function getHash(str) {
17
+ return (0, _crypto.createHash)('md5').update(str).digest();
18
+ }
19
+
20
+ const isWindows = _os.default.platform().toLowerCase() === 'win32';
21
+
22
+ const isFileEligibleToHashClass = (resourcePath, machineBasedPatterns) => {
23
+ if (!resourcePath.includes('node_modules')) {
24
+ return false;
25
+ }
26
+
27
+ return machineBasedPatterns.some(p => resourcePath.includes(p));
28
+ };
29
+
30
+ var _default = options => {
31
+ const {
32
+ classNameOptions
33
+ } = options.css;
34
+ const {
35
+ cssHashSelectors,
36
+ classNamePrefix
37
+ } = classNameOptions;
38
+ let canApplyHashClassName = null;
39
+
40
+ if (cssHashSelectors) {
41
+ const {
42
+ filenames,
43
+ packages
44
+ } = cssHashSelectors;
45
+ const machineBasedPatterns = isWindows ? packages.map(e => e.replace(/\//g, '\\')) : packages;
46
+
47
+ canApplyHashClassName = function canApplyHashClassName(resourcePath, cleanFileName) {
48
+ return isFileEligibleToHashClass(resourcePath, machineBasedPatterns) || filenames.indexOf(cleanFileName);
49
+ };
50
+ }
51
+
52
+ return (context, localIdentName, localName) => {
53
+ // NOTE: in build macine we use date as folder path.
54
+ // So every time we create new build there is path will alway different
55
+ // in order to minmaze that problem we try in relative path;
56
+ // console.log('context.resourcePath', context.resourcePath, context);
57
+ // let contextResourcePath = context.resourcePath;
58
+ const {
59
+ rootContext,
60
+ resourcePath
61
+ } = context;
62
+
63
+ const relativePath = _path.default.relative(rootContext, resourcePath);
64
+
65
+ if (resourcePath.endsWith('.plain.css')) {
66
+ return localName;
67
+ }
68
+
69
+ const fileNameWithoutExt = _path.default.parse(relativePath).name;
70
+
71
+ const cleanFileName = fileNameWithoutExt.replace(/-/g, '_').toLowerCase(); // css file has casesensitive selector issue so can't toLowerCase
72
+ // let local = localName.toLowerCase()
73
+
74
+ if (canApplyHashClassName && canApplyHashClassName(resourcePath, cleanFileName)) {
75
+ const h = getHash(`${relativePath}-${localName}`, 10);
76
+ return `${classNamePrefix}${h}`;
77
+ }
78
+
79
+ return `${classNamePrefix}-${cleanFileName}-${localName}`;
80
+ };
81
+ };
82
+
83
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCssLoaderOptions = getCssLoaderOptions;
7
+
8
+ var _cssClassNameGenerate = _interopRequireDefault(require("./cssClassNameGenerate"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function getCssLoaderOptions(options) {
13
+ // const { classNameOptions } = options.css;
14
+ const cssLoaderOptions = {
15
+ importLoaders: 1,
16
+ modules: {
17
+ // localIdentName: classNameOptions.classNameBlob,
18
+ getLocalIdent: (0, _cssClassNameGenerate.default)(options)
19
+ },
20
+ sourceMap: true
21
+ };
22
+ return cssLoaderOptions;
23
+ }