@zohodesk/react-cli 1.0.3-beta.1 → 1.0.3-exp.3

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 (139) hide show
  1. package/.eslintignore +7 -7
  2. package/.eslintrc.js +180 -180
  3. package/.prettierrc +6 -6
  4. package/Changelog.md +1019 -1019
  5. package/README.md +1197 -1189
  6. package/bin/cli.js +489 -483
  7. package/docs/ComposeMinification.md +13 -0
  8. package/docs/CustomChunks.md +26 -26
  9. package/docs/DevServerPort.md +39 -39
  10. package/docs/DevStart.md +18 -18
  11. package/docs/HoverActive.md +12 -12
  12. package/docs/InstallNode.md +28 -28
  13. package/docs/SelectorWeight.md +8 -8
  14. package/docs/TODOS.md +10 -10
  15. package/docs/ValueReplacer.md +60 -60
  16. package/docs/VariableConversion.md +729 -729
  17. package/docs/patternFiltering.md +27 -0
  18. package/docs/warnings_while_install.txt +35 -35
  19. package/files/eslintrc.js +62 -62
  20. package/files/prettierrc.js +3 -3
  21. package/lib/common/buildEs.js +12 -0
  22. package/lib/configs/webpack.css.umd.config.js +4 -4
  23. package/lib/configs/webpack.dev.config.js +6 -0
  24. package/lib/configs/webpack.docs.config.js +4 -0
  25. package/lib/configs/webpack.impact.config.js +4 -0
  26. package/lib/configs/webpack.prod.config.js +6 -0
  27. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  28. package/lib/loaderUtils/getCSSLoaders.js +80 -46
  29. package/lib/loaderUtils/tests/windowsModification.test.js +10 -0
  30. package/lib/loaderUtils/windowsModification.js +6 -1
  31. package/lib/loaders/composeLoader.js +172 -0
  32. package/lib/loaders/workerLoader.js +9 -9
  33. package/lib/pluginUtils/getDevPlugins.js +18 -8
  34. package/lib/pluginUtils/getProdPlugins.js +16 -8
  35. package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
  36. package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
  37. package/lib/plugins/CustomAttributePlugin.md +35 -35
  38. package/lib/plugins/EFCPlugin.md +6 -6
  39. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  40. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  41. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  42. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  43. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  44. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  45. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  46. package/lib/plugins/{UglifyCSSPlugin.js → MinifyPlugin.js} +3 -3
  47. package/lib/plugins/ResourceHintsPlugin.js +17 -17
  48. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  49. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  50. package/lib/plugins/SelectorPlugin.js +64 -40
  51. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  52. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  53. package/lib/plugins/VariableConversionCollector.js +94 -84
  54. package/lib/plugins/index.js +7 -7
  55. package/lib/plugins/utils/classHandling.js +20 -0
  56. package/lib/plugins/utils/fileHandling.js +107 -0
  57. package/lib/plugins/utils/tests/fileHandling.test.js +30 -0
  58. package/lib/postcss-plugins/EmptyPlugin.js +8 -0
  59. package/lib/postcss-plugins/ExcludePlugin.js +1 -1
  60. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
  61. package/lib/postcss-plugins/ValueReplacer.js +5 -14
  62. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  63. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  64. package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
  65. package/lib/postcss-plugins/variableModificationPlugin/index.js +1 -19
  66. package/lib/schemas/index.js +31 -3
  67. package/lib/servers/server.js +2 -2
  68. package/lib/sh/pre-commit.sh +34 -34
  69. package/lib/sh/reportPublish.sh +45 -45
  70. package/lib/utils/buildstats.html +148 -148
  71. package/lib/utils/cssClassNameGenerate.js +40 -13
  72. package/lib/utils/getOptions.js +16 -0
  73. package/lib/utils/resultSchema.json +73 -73
  74. package/lib/utils/variableConverter.js +162 -0
  75. package/npm-shrinkwrap.json +14407 -14407
  76. package/npm8.md +9 -9
  77. package/package.json +122 -121
  78. package/postpublish.js +8 -8
  79. package/templates/app/.eslintrc.js +140 -140
  80. package/templates/app/README.md +12 -12
  81. package/templates/app/app/index.html +24 -24
  82. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  83. package/templates/app/app/properties/i18nkeys.json +3 -3
  84. package/templates/app/docs/all.html +69 -69
  85. package/templates/app/mockapi/index.js +18 -18
  86. package/templates/app/package.json +37 -37
  87. package/templates/app/src/actions/SampleActions/index.js +37 -37
  88. package/templates/app/src/actions/index.js +65 -65
  89. package/templates/app/src/appUrls.js +19 -19
  90. package/templates/app/src/components/Alert/Alert.js +134 -134
  91. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  92. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  93. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  94. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  95. package/templates/app/src/components/Sample/SampleList.js +61 -61
  96. package/templates/app/src/components/Slider/Slider.css +41 -41
  97. package/templates/app/src/components/Slider/Slider.js +55 -55
  98. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  99. package/templates/app/src/containers/AppContainer/index.js +96 -96
  100. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  101. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  102. package/templates/app/src/containers/DevTools/index.js +10 -10
  103. package/templates/app/src/containers/Header/index.js +67 -67
  104. package/templates/app/src/containers/Header/index.module.css +43 -43
  105. package/templates/app/src/containers/Redirect/index.js +63 -63
  106. package/templates/app/src/containers/Redirector/index.js +47 -47
  107. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  108. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  109. package/templates/app/src/historyChange.js +5 -5
  110. package/templates/app/src/index.html +10 -10
  111. package/templates/app/src/index.js +24 -24
  112. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  113. package/templates/app/src/reducers/alertData.js +11 -11
  114. package/templates/app/src/reducers/index.js +6 -6
  115. package/templates/app/src/reducers/samples.js +19 -19
  116. package/templates/app/src/store/configureStore.dev.js +51 -51
  117. package/templates/app/src/store/configureStore.js +5 -5
  118. package/templates/app/src/store/configureStore.prod.js +26 -26
  119. package/templates/app/src/util/Common.js +5 -5
  120. package/templates/app/src/util/RequestAPI.js +132 -132
  121. package/templates/docs/all.html +249 -249
  122. package/templates/docs/component.html +178 -178
  123. package/templates/docs/components.html +221 -221
  124. package/templates/docs/css/b.min.css +6 -6
  125. package/templates/docs/css/component.css +42 -42
  126. package/templates/docs/css/componentTest.css +6 -6
  127. package/templates/docs/css/hopscotch.css +585 -585
  128. package/templates/docs/css/style.css +1022 -1022
  129. package/templates/docs/impactReportTemplate.html +154 -154
  130. package/templates/docs/index.html +1501 -1501
  131. package/templates/docs/js/active-line.js +72 -72
  132. package/templates/docs/js/b.min.js +7 -7
  133. package/templates/docs/js/codemirror.js +9680 -9680
  134. package/templates/docs/js/designTokens.js +334 -334
  135. package/templates/docs/js/j.min.js +4 -4
  136. package/templates/docs/js/javascript.js +874 -874
  137. package/templates/docs/js/matchbrackets.js +145 -145
  138. package/lib/plugins/composeCommonPlugin.js +0 -30
  139. package/lib/postcss-plugins/variableModifier.js +0 -210
@@ -0,0 +1,27 @@
1
+ # Pattern filtering
2
+
3
+ As replacement for exclude we now have patterns in place of exclude to include or exclude a file based on its name in package.json.
4
+
5
+
6
+ # Example for patterns :
7
+
8
+ **Old System** :
9
+ To exclude `node_modules` folder from convertion for the `cssVariableReplacement` plugin, we used to have :
10
+
11
+ `react-cli > app > exclude > cssVariableReplacement` as ['node_modules'] in `package.json`
12
+
13
+ **New System** :
14
+
15
+ To include all files for convertion for the `cssVariableReplacement` plugin, we now have :
16
+
17
+ `react-cli > app > patterns > cssVariableReplacement` as ['*'] in `package.json`
18
+
19
+ To include `src` files for convertion for the `cssVariableReplacement` plugin, we now have :
20
+
21
+ `react-cli > app > patterns > cssVariableReplacement` as ['src'] in `package.json`
22
+
23
+ To exclude `node_modules` files for convertion for the `cssVariableReplacement` plugin, we now have :
24
+
25
+ `react-cli > app > patterns > cssVariableReplacement` as ['!node_modules'] in `package.json`
26
+ Here the `!` denotes that the folder structure/file is not to be converted.
27
+
@@ -1,35 +1,35 @@
1
- npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
2
- npm WARN deprecated eslint-loader@4.0.2: This loader has been deprecated. Please use eslint-webpack-plugin
3
- npm WARN deprecated gitlab@14.2.2: The gitlab package has found a new home in the @gitbeaker organization. For the latest gitlab node library, check out @gitbeaker/node. A full list of the features can be found here: https://github.com/jdalrymple/gitbeaker#readme
4
- npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
5
- npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
6
- npm WARN deprecated webdriverio@4.14.4: outdated version, please use @next
7
- npm WARN deprecated mkdirp@0.3.5: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
8
- npm WARN deprecated cross-spawn-async@1.0.1: cross-spawn no longer requires a build toolchain, use it instead
9
- npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
10
- npm WARN deprecated core-js@2.6.12: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
11
- npm WARN deprecated har-validator@5.1.5: this library is no longer supported
12
- npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
13
- npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
14
- npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
15
- npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
16
- npm WARN deprecated flatten@1.0.3: flatten is deprecated in favor of utility frameworks such as lodash.
17
- npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents):
18
- npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
19
- npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^2.1.2 (node_modules/jest-haste-map/node_modules/fsevents):
20
- npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
21
- npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/nodemon/node_modules/chokidar/node_modules/fsevents):
22
- npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
23
- npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/watchpack/node_modules/chokidar/node_modules/fsevents):
24
- npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
25
- npm WARN check2@1.0.0 No description
26
- npm WARN check2@1.0.0 No repository field.
27
-
28
- + @zohodesk/react-cli@0.0.1-beta.165
29
- updated 1 package and audited 1899 packages in 51.509s
30
-
31
- 21 packages are looking for funding
32
- run `npm fund` for details
33
-
34
- found 42 vulnerabilities (2 low, 20 moderate, 8 high, 12 critical)
35
- run `npm audit fix` to fix them, or `npm audit` for details
1
+ npm WARN deprecated babel-eslint@10.1.0: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
2
+ npm WARN deprecated eslint-loader@4.0.2: This loader has been deprecated. Please use eslint-webpack-plugin
3
+ npm WARN deprecated gitlab@14.2.2: The gitlab package has found a new home in the @gitbeaker organization. For the latest gitlab node library, check out @gitbeaker/node. A full list of the features can be found here: https://github.com/jdalrymple/gitbeaker#readme
4
+ npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
5
+ npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
6
+ npm WARN deprecated webdriverio@4.14.4: outdated version, please use @next
7
+ npm WARN deprecated mkdirp@0.3.5: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
8
+ npm WARN deprecated cross-spawn-async@1.0.1: cross-spawn no longer requires a build toolchain, use it instead
9
+ npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
10
+ npm WARN deprecated core-js@2.6.12: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
11
+ npm WARN deprecated har-validator@5.1.5: this library is no longer supported
12
+ npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
13
+ npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
14
+ npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
15
+ npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
16
+ npm WARN deprecated flatten@1.0.3: flatten is deprecated in favor of utility frameworks such as lodash.
17
+ npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents):
18
+ npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
19
+ npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^2.1.2 (node_modules/jest-haste-map/node_modules/fsevents):
20
+ npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
21
+ npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/nodemon/node_modules/chokidar/node_modules/fsevents):
22
+ npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
23
+ npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/watchpack/node_modules/chokidar/node_modules/fsevents):
24
+ npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
25
+ npm WARN check2@1.0.0 No description
26
+ npm WARN check2@1.0.0 No repository field.
27
+
28
+ + @zohodesk/react-cli@0.0.1-beta.165
29
+ updated 1 package and audited 1899 packages in 51.509s
30
+
31
+ 21 packages are looking for funding
32
+ run `npm fund` for details
33
+
34
+ found 42 vulnerabilities (2 low, 20 moderate, 8 high, 12 critical)
35
+ run `npm audit fix` to fix them, or `npm audit` for details
package/files/eslintrc.js CHANGED
@@ -1,62 +1,62 @@
1
- const [off, , error] = ['off', 'warn', 'error'];
2
-
3
- module.exports = {
4
- env: {
5
- browser: true,
6
- es2021: true,
7
- },
8
- extends: [
9
- 'plugin:react/recommended',
10
- 'plugin:react-hooks/recommended',
11
- 'airbnb',
12
- 'prettier',
13
- ],
14
- parserOptions: {
15
- ecmaFeatures: {
16
- jsx: true,
17
- },
18
- ecmaVersion: 12,
19
- sourceType: 'module',
20
- },
21
- plugins: [
22
- 'react',
23
- 'css-modules',
24
- '@zohodesk/zsecurity',
25
- '@zohodesk/react-performance',
26
- ],
27
- rules: {
28
- // Internal Rules
29
- '@zohodesk/react-performance/no-ref-mapstatetoprops': error,
30
- '@zohodesk/zsecurity/no-unsecure-html': error,
31
- '@zohodesk/zsecurity/no-protocol-check': error,
32
-
33
- // CSS Module Rules
34
- 'css-modules/no-unused-class': [error, { camelCase: true }],
35
- 'css-modules/no-undef-class': [error, { camelCase: 'only' }],
36
-
37
- 'import/no-unresolved': off,
38
- 'import/no-extraneous-dependencies': off,
39
-
40
- // As redux used
41
- 'no-shadow': off, // As we import the action files and use the same name in getting from props built from connect.
42
- 'react/jsx-filename-extension': off,
43
-
44
- // As we don't follow
45
- 'react/require-default-props': off,
46
- 'react/jsx-props-no-spreading': off,
47
-
48
- // As we didn't update
49
- 'react/jsx-fragments': off,
50
-
51
- // Not needed
52
- 'no-plusplus': off,
53
- 'no-unused-expressions': [
54
- error,
55
- {
56
- allowShortCircuit: true,
57
- allowTernary: true,
58
- },
59
- ],
60
- 'react/jsx-no-target-blank': error,
61
- },
62
- };
1
+ const [off, , error] = ['off', 'warn', 'error'];
2
+
3
+ module.exports = {
4
+ env: {
5
+ browser: true,
6
+ es2021: true,
7
+ },
8
+ extends: [
9
+ 'plugin:react/recommended',
10
+ 'plugin:react-hooks/recommended',
11
+ 'airbnb',
12
+ 'prettier',
13
+ ],
14
+ parserOptions: {
15
+ ecmaFeatures: {
16
+ jsx: true,
17
+ },
18
+ ecmaVersion: 12,
19
+ sourceType: 'module',
20
+ },
21
+ plugins: [
22
+ 'react',
23
+ 'css-modules',
24
+ '@zohodesk/zsecurity',
25
+ '@zohodesk/react-performance',
26
+ ],
27
+ rules: {
28
+ // Internal Rules
29
+ '@zohodesk/react-performance/no-ref-mapstatetoprops': error,
30
+ '@zohodesk/zsecurity/no-unsecure-html': error,
31
+ '@zohodesk/zsecurity/no-protocol-check': error,
32
+
33
+ // CSS Module Rules
34
+ 'css-modules/no-unused-class': [error, { camelCase: true }],
35
+ 'css-modules/no-undef-class': [error, { camelCase: 'only' }],
36
+
37
+ 'import/no-unresolved': off,
38
+ 'import/no-extraneous-dependencies': off,
39
+
40
+ // As redux used
41
+ 'no-shadow': off, // As we import the action files and use the same name in getting from props built from connect.
42
+ 'react/jsx-filename-extension': off,
43
+
44
+ // As we don't follow
45
+ 'react/require-default-props': off,
46
+ 'react/jsx-props-no-spreading': off,
47
+
48
+ // As we didn't update
49
+ 'react/jsx-fragments': off,
50
+
51
+ // Not needed
52
+ 'no-plusplus': off,
53
+ 'no-unused-expressions': [
54
+ error,
55
+ {
56
+ allowShortCircuit: true,
57
+ allowTernary: true,
58
+ },
59
+ ],
60
+ 'react/jsx-no-target-blank': error,
61
+ },
62
+ };
@@ -1,3 +1,3 @@
1
- module.exports = {
2
- trailingComma: 'none',
3
- };
1
+ module.exports = {
2
+ trailingComma: 'none',
3
+ };
@@ -0,0 +1,12 @@
1
+ // result = spawnSync(
2
+ // babel,
3
+ // [
4
+ // 'src',
5
+ // '--out-dir',
6
+ // 'es',
7
+ // `--presets=${require.resolve('../lib/babel/es-plugins-presets.js')}`,
8
+ // '--copy-files'
9
+ // ].concat(args),
10
+ // { stdio: 'inherit' }
11
+ // );
12
+ "use strict";
@@ -67,10 +67,10 @@ module.exports = {
67
67
  }],
68
68
  include: _path.default.join(appPath, 'src')
69
69
  }
70
- /*,
71
- {
72
- test: /\.css$/,
73
- use: [MiniCssExtractPlugin.loader, 'css-loader']
70
+ /*,
71
+ {
72
+ test: /\.css$/,
73
+ use: [MiniCssExtractPlugin.loader, 'css-loader']
74
74
  }*/
75
75
  , {
76
76
  test: /(\.module)?\.css$/,
@@ -25,6 +25,8 @@ const {
25
25
  outputFolder,
26
26
  plugins,
27
27
  exclude,
28
+ patterns,
29
+ patternsRootDir,
28
30
  mediaQueryHoverActiveString,
29
31
  cssVariableReplacementConfig,
30
32
  selectorWeightConfig,
@@ -102,6 +104,8 @@ module.exports = {
102
104
  use: (0, _loaderUtils.getCSSLoaders)({
103
105
  plugins,
104
106
  exclude,
107
+ patterns,
108
+ patternsRootDir,
105
109
  mediaQueryHoverActiveString,
106
110
  cssVariableReplacementConfig,
107
111
  selectorWeightConfig,
@@ -114,6 +118,8 @@ module.exports = {
114
118
  use: (0, _loaderUtils.getCSSLoaders)({
115
119
  plugins,
116
120
  exclude,
121
+ patterns,
122
+ patternsRootDir,
117
123
  mediaQueryHoverActiveString,
118
124
  cssVariableReplacementConfig,
119
125
  selectorWeightConfig,
@@ -22,6 +22,8 @@ const {
22
22
  cssUniqueness,
23
23
  plugins,
24
24
  exclude,
25
+ patterns,
26
+ patternsRootDir,
25
27
  mediaQueryHoverActiveString,
26
28
  cssVariableReplacementConfig,
27
29
  selectorWeightConfig,
@@ -77,6 +79,8 @@ module.exports = isSSTest => ({
77
79
  use: (0, _loaderUtils.getCSSLoaders)({
78
80
  plugins,
79
81
  exclude,
82
+ patterns,
83
+ patternsRootDir,
80
84
  mediaQueryHoverActiveString,
81
85
  cssVariableReplacementConfig,
82
86
  selectorWeightConfig,
@@ -21,6 +21,8 @@ const {
21
21
  cssUniqueness,
22
22
  plugins,
23
23
  exclude,
24
+ patterns,
25
+ patternsRootDir,
24
26
  mediaQueryHoverActiveString,
25
27
  cssVariableReplacementConfig,
26
28
  selectorWeightConfig,
@@ -77,6 +79,8 @@ module.exports = {
77
79
  use: (0, _loaderUtils.getCSSLoaders)({
78
80
  plugins,
79
81
  exclude,
82
+ patterns,
83
+ patternsRootDir,
80
84
  mediaQueryHoverActiveString,
81
85
  cssVariableReplacementConfig,
82
86
  selectorWeightConfig,
@@ -29,6 +29,8 @@ const {
29
29
  server,
30
30
  plugins,
31
31
  exclude,
32
+ patterns,
33
+ patternsRootDir,
32
34
  mediaQueryHoverActiveString,
33
35
  cssVariableReplacementConfig,
34
36
  selectorWeightConfig,
@@ -153,6 +155,8 @@ module.exports = {
153
155
  use: (0, _loaderUtils.getCSSLoaders)({
154
156
  plugins,
155
157
  exclude,
158
+ patterns,
159
+ patternsRootDir,
156
160
  cssVariableReplacementConfig,
157
161
  selectorWeightConfig,
158
162
  mediaQueryHoverActiveString,
@@ -165,6 +169,8 @@ module.exports = {
165
169
  use: (0, _loaderUtils.getCSSLoaders)({
166
170
  plugins,
167
171
  exclude,
172
+ patterns,
173
+ patternsRootDir,
168
174
  mediaQueryHoverActiveString,
169
175
  cssVariableReplacementConfig,
170
176
  selectorWeightConfig,
@@ -79,39 +79,39 @@ function createNameTemplate(enableChunkHash) {
79
79
  const ext = `${enableChunkHash ? '.[hash:20]' : ''}.[ext]`;
80
80
  return `[name]${ext}`;
81
81
  }
82
- /*
83
- export function createImageAndFontsAndSVGLoaders(enableChunkHash) {
84
- const nameTemplate = createNameTemplate(enableChunkHash);
85
- return [
86
- configImageLoader(nameTemplate),
87
- configFontLoader(nameTemplate),
88
- configSVGLoader(nameTemplate),
89
- configAudioLoader(nameTemplate)
90
- ];
91
- }
82
+ /*
83
+ export function createImageAndFontsAndSVGLoaders(enableChunkHash) {
84
+ const nameTemplate = createNameTemplate(enableChunkHash);
85
+ return [
86
+ configImageLoader(nameTemplate),
87
+ configFontLoader(nameTemplate),
88
+ configSVGLoader(nameTemplate),
89
+ configAudioLoader(nameTemplate)
90
+ ];
91
+ }
92
92
  */
93
93
 
94
- /*
95
- export function createLoaderOptionObject(
96
- loaderName,
97
- nameTemplate,
98
- fallback,
99
- limit = 1000
100
- ) {
101
- return {
102
- loader: loaderName,
103
- options: {
104
- limit,
105
- name: nameTemplate,
106
- fallback
107
- }
108
- };
109
- }
110
-
111
- function configLoaderObject(filter, loaderAndOptions) {
112
- return {
113
- test: filter,
114
- use: loaderAndOptions
115
- };
116
- }
94
+ /*
95
+ export function createLoaderOptionObject(
96
+ loaderName,
97
+ nameTemplate,
98
+ fallback,
99
+ limit = 1000
100
+ ) {
101
+ return {
102
+ loader: loaderName,
103
+ options: {
104
+ limit,
105
+ name: nameTemplate,
106
+ fallback
107
+ }
108
+ };
109
+ }
110
+
111
+ function configLoaderObject(filter, loaderAndOptions) {
112
+ return {
113
+ test: filter,
114
+ use: loaderAndOptions
115
+ };
116
+ }
117
117
  */
@@ -11,7 +11,7 @@ var _cssClassNameGenerate = _interopRequireDefault(require("../utils/cssClassNam
11
11
 
12
12
  var _utils = require("../utils");
13
13
 
14
- var _windowsModification = require("./windowsModification");
14
+ var _fileHandling = require("../plugins/utils/fileHandling");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
@@ -19,21 +19,11 @@ const fs = require('fs');
19
19
 
20
20
  const options = (0, _utils.getOptions)();
21
21
 
22
- function excludeEmptyCheckPlugin({
23
- enable,
24
- ignore,
25
- plugins
26
- }) {
27
- return enable ? ignore.length === 0 ? plugins : [require('../postcss-plugins/ExcludePlugin')({
28
- ignore,
29
- plugins
30
- })] : [];
31
- }
32
-
33
22
  const getCSSLoaders = optionsObj => {
34
23
  const {
35
24
  plugins,
36
- exclude,
25
+ patterns,
26
+ patternsRootDir,
37
27
  mediaQueryHoverActiveString,
38
28
  cssVariableReplacementConfig,
39
29
  classNameBlob,
@@ -51,10 +41,6 @@ const getCSSLoaders = optionsObj => {
51
41
  const {
52
42
  cssSelectorZipPath
53
43
  } = options.impactService;
54
- const rtlExcludeLocal = (0, _windowsModification.windowsModification)(exclude.rtl);
55
- const hoverActiveExcludeLocal = (0, _windowsModification.windowsModification)(exclude.hoverActive);
56
- const combinerMediaQueryExcludeLocal = (0, _windowsModification.windowsModification)(exclude.combinerMediaQuery);
57
- const cssVariableReplacementExcludeLocal = (0, _windowsModification.windowsModification)(exclude.cssVariableReplacement);
58
44
  const cssLoaderOptions = {
59
45
  // importLoaders: hasRTL||hoverActive ? 1 : 0,
60
46
  importLoaders: 1,
@@ -65,34 +51,19 @@ const getCSSLoaders = optionsObj => {
65
51
  if (classNameBlob) {
66
52
  cssLoaderOptions.modules.localIdentName = classNameBlob;
67
53
  } else {
68
- cssLoaderOptions.modules.getLocalIdent = (0, _cssClassNameGenerate.default)(cssUniqueness, cssHashSelectors, classNamePrefix);
69
- }
70
-
71
- const postcssPlugins = [valueReplacer && require('../postcss-plugins/ValueReplacer')(valueReplacer), selectorReplace && require('../postcss-plugins/SelectorReplace')(selectorReplace), ...excludeEmptyCheckPlugin({
72
- enable: plugins.hasRTL,
73
- ignore: rtlExcludeLocal,
74
- plugins: [require('@zohodesk/postcss-rtl')({
75
- addPrefixToSelector: function addPrefixToSelector(selector, prefix) {
76
- if (prefix === '[dir]') {
77
- return selector;
78
- }
79
-
80
- return `${prefix} ${selector}`; // Make selectors like [dir=rtl] > .selector
54
+ cssLoaderOptions.modules.getLocalIdent = (0, _cssClassNameGenerate.default)(cssUniqueness, cssHashSelectors, classNamePrefix, patterns, patternsRootDir);
55
+ } // console.log('selector weight config : ', selectorWeightConfig);
56
+
57
+
58
+ let postcssPlugins = [plugins.valueReplacer && require('../postcss-plugins/ValueReplacer')(valueReplacer), plugins.selectorReplace && require('../postcss-plugins/SelectorReplace')(selectorReplace), plugins.hasRTL && require('@zohodesk/postcss-rtl')({
59
+ addPrefixToSelector: function addPrefixToSelector(selector, prefix) {
60
+ if (prefix === '[dir]') {
61
+ return selector;
81
62
  }
82
- })]
83
- }), ...excludeEmptyCheckPlugin({
84
- enable: plugins.combinerMediaQuery,
85
- ignore: combinerMediaQueryExcludeLocal,
86
- plugins: [require('postcss-combine-media-query')]
87
- }), ...excludeEmptyCheckPlugin({
88
- enable: plugins.hoverActive,
89
- ignore: hoverActiveExcludeLocal,
90
- plugins: [require('../postcss-plugins/hoverActivePlugin')(mediaQueryHoverActiveString)]
91
- }), ...excludeEmptyCheckPlugin({
92
- enable: plugins.cssVariableReplacement,
93
- ignore: cssVariableReplacementExcludeLocal,
94
- plugins: [fs.existsSync(cssVariableReplacementConfig) && require('../postcss-plugins/variableModificationPlugin/index').plugin(cssVariableReplacementConfig)]
95
- })].filter(Boolean);
63
+
64
+ return `${prefix} ${selector}`; // Make selectors like [dir=rtl] > .selector
65
+ }
66
+ }), plugins.combinerMediaQuery && require('postcss-combine-media-query')(), plugins.hoverActive && require('../postcss-plugins/hoverActivePlugin')(mediaQueryHoverActiveString), plugins.cssVariableReplacement && fs.existsSync(cssVariableReplacementConfig) && require('../postcss-plugins/variableModificationPlugin/index').plugin(cssVariableReplacementConfig)].filter(Boolean);
96
67
  return [cssSelectorZipPath && {
97
68
  loader: require.resolve('../loaders/selectorMappingLoader')
98
69
  }, {
@@ -112,10 +83,73 @@ const getCSSLoaders = optionsObj => {
112
83
  loader: 'postcss-loader',
113
84
  options: {
114
85
  ident: 'postcss',
115
- plugins: function () {
116
- return postcssPlugins;
86
+ plugins: function (params) {
87
+ // console.log('check here : ', params.resourcePath);
88
+ // getCSSLoaders for all postcss filtering
89
+
90
+ /*
91
+ input :
92
+ params.resourcePath : 'D:/MyWork/..../desk_client_app/supportapp/src/components/Avatar/Avatar.module.css,
93
+ patterns : [
94
+ // include all files
95
+ "valueReplacer": [
96
+ "*"
97
+ ],
98
+ // include all files
99
+ "selectorReplace": [
100
+ "*"
101
+ ],
102
+ // include src folder, include deskapp folder, exclude node modules
103
+ "hoverActive": [
104
+ "src",
105
+ "deskapp",
106
+ "!node_modules"
107
+ ],
108
+ // include src folder, include deskapp folder, exclude node modules
109
+ "combinerMediaQuery": [
110
+ "src",
111
+ "deskapp",
112
+ "!node_modules"
113
+ ],
114
+ // include src folder, include deskapp folder, exclude node modules
115
+ "hasRTL": [
116
+ "src",
117
+ "deskapp",
118
+ "!node_modules"
119
+ ],
120
+ // include src folder, include deskapp folder, exclude node modules
121
+ "cssVariableReplacement": [
122
+ "src",
123
+ "deskapp",
124
+ "!node_modules"
125
+ ],
126
+ // include src folder, include deskapp folder, exclude node modules
127
+ "selectorWeight": [
128
+ "src",
129
+ "deskapp",
130
+ "!node_modules"
131
+ ],
132
+ // include all files
133
+ "cssUniqueness": [
134
+ "*"
135
+ ]
136
+ ],
137
+
138
+ [ postcssPlugins that are implemented ]
139
+ rootDir : patternsRootDir : 'supportapp'
140
+ */
141
+ postcssPlugins = (0, _fileHandling.isFileNameMatchingPattern)({
142
+ filename: params.resourcePath,
143
+ filterObject: patterns,
144
+ plugins: postcssPlugins,
145
+ rootDir: patternsRootDir
146
+ }); // postcssPlugins that are allowed
147
+
148
+ return postcssPlugins.length > 0 ? postcssPlugins : [require('../postcss-plugins/EmptyPlugin')()];
117
149
  }
118
150
  }
151
+ } : null, plugins.composeMinification ? {
152
+ loader: require.resolve('../loaders/composeLoader')
119
153
  } : null].filter(Boolean);
120
154
  };
121
155
 
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ const {
4
+ windowsModificationFile
5
+ } = require('../windowsModification');
6
+
7
+ const tests = ['D:\\MyWork\\React Build\\desk_client_app\\jsapps\\supportapp\\src\\components\\Accessibility\\Accessibility.module.css', 'D:/MyWork/React Build/desk_client_app/jsapps/supportapp/src/components/Accessibility/Accessibility.module.css', 'desk_client_app\\jsapps\\supportapp\\src\\components\\Accessibility\\Accessibility.module.css', 'desk_client_app/jsapps/supportapp/src/components/Accessibility/Accessibility.module.css', 'src\\components\\Accessibility\\Accessibility.module.css', 'src/components/Accessibility/Accessibility.module.css', 'Accessibility.module.css', ''];
8
+ tests.forEach(test => {
9
+ console.log(windowsModificationFile(test));
10
+ });
@@ -4,8 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.windowsModification = windowsModification;
7
+ exports.windowsModificationFile = windowsModificationFile;
7
8
  const isWin = process.platform === 'win32';
8
9
 
9
10
  function windowsModification(array) {
10
11
  return isWin ? array && Array.isArray(array) && array.map(r => r.replace(/\//g, '\\')) : array;
11
- }
12
+ }
13
+
14
+ function windowsModificationFile(filename) {
15
+ return isWin ? filename.replace(/\//g, '\\') : filename;
16
+ } // module.exports = { windowsModification, windowsModificationFile };