@zohodesk/react-cli 0.0.1-exp.176.3 → 0.0.1-exp.178.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.
- package/.eslintignore +7 -7
- package/.eslintrc.js +180 -180
- package/.prettierrc +6 -6
- package/{CHANGELOG.md → CHANGELOG-fz.md} +0 -0
- package/Changelog.md +1019 -0
- package/README.md +1112 -1025
- package/bin/cli.js +482 -482
- package/docs/CustomChunks.md +26 -26
- package/docs/DevServerPort.md +39 -0
- package/docs/DevStart.md +18 -18
- package/docs/HoverActive.md +12 -12
- package/docs/InstallNode.md +28 -28
- package/docs/SelectorWeight.md +6 -6
- package/docs/TODOS.md +10 -10
- package/docs/ValueReplacer.md +60 -60
- package/docs/VariableConversion.md +724 -719
- package/docs/warnings_while_install.txt +35 -35
- package/files/eslintrc.js +62 -62
- package/files/prettierrc.js +3 -3
- package/lib/configs/resolvers.js +40 -0
- package/lib/configs/webpack.css.umd.config.js +4 -4
- package/lib/configs/webpack.dev.config.js +4 -11
- package/lib/configs/webpack.docs.config.js +4 -11
- package/lib/configs/webpack.impact.config.js +5 -7
- package/lib/configs/webpack.prod.config.js +9 -13
- package/lib/constants.js +31 -0
- package/lib/loaderUtils/configsAssetsLoaders.js +34 -34
- package/lib/loaders/workerLoader.js +9 -9
- package/lib/pluginUtils/getDevPlugins.js +5 -5
- package/lib/pluginUtils/getProdPlugins.js +5 -5
- package/lib/plugins/EFCPlugin.md +6 -6
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
- package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
- package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
- package/lib/plugins/I18nSplitPlugin/README.md +25 -25
- package/lib/plugins/I18nSplitPlugin/index.js +57 -57
- package/lib/plugins/ResourceHintsPlugin.js +17 -17
- package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
- package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
- package/lib/plugins/ServiceWorkerPlugin.js +9 -9
- package/lib/plugins/TPHashMappingPlugin.js +4 -4
- package/lib/plugins/VariableConversionCollector.js +104 -74
- package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
- package/lib/postcss-plugins/__test__/test1Input.css +38 -38
- package/lib/postcss-plugins/__test__/test1Output.css +38 -38
- package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
- package/lib/schemas/index.js +8 -0
- package/lib/servers/docsServerCore.js +13 -12
- package/lib/servers/httpsOptions.js +40 -9
- package/lib/servers/nowatchserver.js +12 -11
- package/lib/servers/server.js +23 -20
- package/lib/sh/pre-commit.sh +34 -34
- package/lib/sh/reportPublish.sh +45 -45
- package/lib/utils/buildstats.html +148 -148
- package/lib/utils/cssURLReplacer.js +30 -43
- package/lib/utils/getFileType.js +49 -0
- package/lib/utils/getOptions.js +13 -13
- package/lib/utils/resultSchema.json +73 -73
- package/npm8.md +9 -9
- package/package.json +122 -146
- package/postpublish.js +8 -6
- package/result.json +1 -0
- package/templates/app/.eslintrc.js +140 -140
- package/templates/app/README.md +12 -12
- package/templates/app/app/index.html +24 -24
- package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
- package/templates/app/app/properties/i18nkeys.json +3 -3
- package/templates/app/docs/all.html +69 -69
- package/templates/app/mockapi/index.js +18 -18
- package/templates/app/package.json +37 -37
- package/templates/app/src/actions/SampleActions/index.js +37 -37
- package/templates/app/src/actions/index.js +65 -65
- package/templates/app/src/appUrls.js +19 -19
- package/templates/app/src/components/Alert/Alert.js +134 -134
- package/templates/app/src/components/Alert/Alert.module.css +79 -79
- package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
- package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
- package/templates/app/src/components/Sample/Sample.module.css +11 -11
- package/templates/app/src/components/Sample/SampleList.js +61 -61
- package/templates/app/src/components/Slider/Slider.css +41 -41
- package/templates/app/src/components/Slider/Slider.js +55 -55
- package/templates/app/src/containers/AlertContainer/index.js +15 -15
- package/templates/app/src/containers/AppContainer/index.js +96 -96
- package/templates/app/src/containers/AppContainer/index.module.css +27 -27
- package/templates/app/src/containers/CustomMatch/index.js +65 -65
- package/templates/app/src/containers/DevTools/index.js +10 -10
- package/templates/app/src/containers/Header/index.js +67 -67
- package/templates/app/src/containers/Header/index.module.css +43 -43
- package/templates/app/src/containers/Redirect/index.js +63 -63
- package/templates/app/src/containers/Redirector/index.js +47 -47
- package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
- package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
- package/templates/app/src/historyChange.js +5 -5
- package/templates/app/src/index.html +10 -10
- package/templates/app/src/index.js +24 -24
- package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
- package/templates/app/src/reducers/alertData.js +11 -11
- package/templates/app/src/reducers/index.js +6 -6
- package/templates/app/src/reducers/samples.js +19 -19
- package/templates/app/src/store/configureStore.dev.js +51 -51
- package/templates/app/src/store/configureStore.js +5 -5
- package/templates/app/src/store/configureStore.prod.js +26 -26
- package/templates/app/src/util/Common.js +5 -5
- package/templates/app/src/util/RequestAPI.js +132 -132
- package/templates/docs/all.html +249 -249
- package/templates/docs/component.html +178 -178
- package/templates/docs/components.html +221 -221
- package/templates/docs/css/b.min.css +6 -6
- package/templates/docs/css/component.css +42 -42
- package/templates/docs/css/componentTest.css +6 -6
- package/templates/docs/css/hopscotch.css +585 -585
- package/templates/docs/css/style.css +1022 -1022
- package/templates/docs/impactReportTemplate.html +154 -154
- package/templates/docs/index.html +1501 -1501
- package/templates/docs/js/active-line.js +72 -72
- package/templates/docs/js/b.min.js +7 -7
- package/templates/docs/js/codemirror.js +9680 -9680
- package/templates/docs/js/designTokens.js +334 -334
- package/templates/docs/js/j.min.js +4 -4
- package/templates/docs/js/javascript.js +874 -874
- package/templates/docs/js/matchbrackets.js +145 -145
- package/unittest/index.html +37 -0
- package/cert/Tsicsezwild-22-23.crt +0 -37
- package/cert/Tsicsezwild-22-23.key +0 -27
|
@@ -24,12 +24,12 @@ const isCss = filename => _path.default.extname(filename) === '.css'; // this p
|
|
|
24
24
|
|
|
25
25
|
class RtlCssPlugin {
|
|
26
26
|
constructor(options = {}) {
|
|
27
|
-
/**
|
|
28
|
-
* @typedef {Object} Options
|
|
29
|
-
* @property {String} filename [not used]
|
|
30
|
-
* @property {String} dirVarName
|
|
31
|
-
* @property {Boolean} sourcemap
|
|
32
|
-
* @property {Object} config
|
|
27
|
+
/**
|
|
28
|
+
* @typedef {Object} Options
|
|
29
|
+
* @property {String} filename [not used]
|
|
30
|
+
* @property {String} dirVarName
|
|
31
|
+
* @property {Boolean} sourcemap
|
|
32
|
+
* @property {Object} config
|
|
33
33
|
*/
|
|
34
34
|
this.options = {
|
|
35
35
|
filename: options.filename || '[name].rtl.css',
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
# RTL Split
|
|
2
|
-
|
|
3
|
-
we are doing in build time generating rtl related css code by using @zohodesk/postcss-rt npm.
|
|
4
|
-
It was automated, That postcss plugin create rtl reacted css and put them into same file, with css selector [dir=rtl] and ltr realted css with [dir=ltr].
|
|
5
|
-
Here is problem mostly no one need rtl and ltr related css at the same time in browser,
|
|
6
|
-
we are try to split them by [dir] and load which type of css is needed.
|
|
7
|
-
For this purpose we created RTL Split Plugin
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# To Try it out rtl-ltr split
|
|
11
|
-
### how to use this feature?
|
|
12
|
-
|
|
13
|
-
to use this feature use have give the below oprtions
|
|
14
|
-
`package.json`
|
|
15
|
-
```json
|
|
16
|
-
{
|
|
17
|
-
/// ...some things
|
|
18
|
-
"react-cli": {
|
|
19
|
-
// ...some things
|
|
20
|
-
"css": {
|
|
21
|
-
"enableRTLSplit": true,
|
|
22
|
-
"templateLabel": "{{--dir}}",// this is for html template css file path dir template
|
|
23
|
-
"disableMiniFiySelector": false,
|
|
24
|
-
"dirVarName": "document.dir" // this will be used for download css based on dir
|
|
25
|
-
},
|
|
26
|
-
// ...some things
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
1
|
+
# RTL Split
|
|
2
|
+
|
|
3
|
+
we are doing in build time generating rtl related css code by using @zohodesk/postcss-rt npm.
|
|
4
|
+
It was automated, That postcss plugin create rtl reacted css and put them into same file, with css selector [dir=rtl] and ltr realted css with [dir=ltr].
|
|
5
|
+
Here is problem mostly no one need rtl and ltr related css at the same time in browser,
|
|
6
|
+
we are try to split them by [dir] and load which type of css is needed.
|
|
7
|
+
For this purpose we created RTL Split Plugin
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# To Try it out rtl-ltr split
|
|
11
|
+
### how to use this feature?
|
|
12
|
+
|
|
13
|
+
to use this feature use have give the below oprtions
|
|
14
|
+
`package.json`
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
/// ...some things
|
|
18
|
+
"react-cli": {
|
|
19
|
+
// ...some things
|
|
20
|
+
"css": {
|
|
21
|
+
"enableRTLSplit": true,
|
|
22
|
+
"templateLabel": "{{--dir}}",// this is for html template css file path dir template
|
|
23
|
+
"disableMiniFiySelector": false,
|
|
24
|
+
"dirVarName": "document.dir" // this will be used for download css based on dir
|
|
25
|
+
},
|
|
26
|
+
// ...some things
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
@@ -51,11 +51,11 @@ class ServiceWorkerPlugin {
|
|
|
51
51
|
if (err) {
|
|
52
52
|
throw new Error(err);
|
|
53
53
|
} else {
|
|
54
|
-
/* const extractedChunks = compilation.chunks.filter(chunk => {
|
|
55
|
-
if ('canBeInitial' in chunk) {
|
|
56
|
-
return chunk.canBeInitial();
|
|
57
|
-
}
|
|
58
|
-
return chunk.isInitial();
|
|
54
|
+
/* const extractedChunks = compilation.chunks.filter(chunk => {
|
|
55
|
+
if ('canBeInitial' in chunk) {
|
|
56
|
+
return chunk.canBeInitial();
|
|
57
|
+
}
|
|
58
|
+
return chunk.isInitial();
|
|
59
59
|
}); */
|
|
60
60
|
// let [js, css, , , i18nPublicPath] = this.publicPaths;
|
|
61
61
|
// let initialChunkUrls = [];
|
|
@@ -64,10 +64,10 @@ class ServiceWorkerPlugin {
|
|
|
64
64
|
let entrypoint = compilation.entrypoints.get('main');
|
|
65
65
|
let initialChunkUrls = entrypoint.getFiles();
|
|
66
66
|
const cssDirTemplate = '@dir@';
|
|
67
|
-
/**
|
|
68
|
-
* NOTE:
|
|
69
|
-
* if chunkSplitEnable is false means,
|
|
70
|
-
* serviceWorker will get i18n files path for html
|
|
67
|
+
/**
|
|
68
|
+
* NOTE:
|
|
69
|
+
* if chunkSplitEnable is false means,
|
|
70
|
+
* serviceWorker will get i18n files path for html
|
|
71
71
|
*/
|
|
72
72
|
|
|
73
73
|
let initalI18nAssets = chunkSplitEnable ? entrypoint.chunks.filter(chunk => _I18nKeysIdentifer.default.isChunkHasI18n(chunk)).map(chunk => (0, _getI18nFileUrlPathTemplate.getI18nFileUrlPathTemplate)(compilation, chunk, this.i18nFileNameTemplate, '@locale@')) : [];
|
|
@@ -15,10 +15,10 @@ var _crypto = _interopRequireDefault(require("crypto"));
|
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
|
-
/**
|
|
19
|
-
* Plugin that generates hash for the provided list of third party files
|
|
20
|
-
* Map the provided key with the file hash and add it to the list of exisiting global constants.
|
|
21
|
-
* Plugin in turn uses the defineplugin to generate global constants.
|
|
18
|
+
/**
|
|
19
|
+
* Plugin that generates hash for the provided list of third party files
|
|
20
|
+
* Map the provided key with the file hash and add it to the list of exisiting global constants.
|
|
21
|
+
* Plugin in turn uses the defineplugin to generate global constants.
|
|
22
22
|
*/
|
|
23
23
|
class TPHashMappingPlugin {
|
|
24
24
|
constructor(options) {
|
|
@@ -15,6 +15,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
15
15
|
const fs = require('fs');
|
|
16
16
|
|
|
17
17
|
const ignoreVals = ['--zd_size', '--zd_font_size', '--size', '--size_'];
|
|
18
|
+
let variablesRead = {};
|
|
18
19
|
|
|
19
20
|
const {
|
|
20
21
|
errors,
|
|
@@ -25,15 +26,15 @@ const {
|
|
|
25
26
|
const supportedProps = ['font-size', 'margin', 'margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'padding', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right', '^top', '^right', '^bottom', '^left', '^width', 'min-width', 'max-width', '^height', 'min-height', 'max-height', 'text-indent', 'clip', 'flex-basis', 'row-gap', 'gap', 'column-gap', 'flex']; // const avoidProps = [];
|
|
26
27
|
// -- is issue IO --
|
|
27
28
|
|
|
28
|
-
/*
|
|
29
|
-
issues eg :
|
|
30
|
-
issues = ['--zd_size', '--zd_font_size', '--size', '--size_'];
|
|
31
|
-
input :
|
|
32
|
-
--zd_size
|
|
33
|
-
output :
|
|
34
|
-
true
|
|
35
|
-
comment :
|
|
36
|
-
do not execute when --zd_size comes as prop
|
|
29
|
+
/*
|
|
30
|
+
issues eg :
|
|
31
|
+
issues = ['--zd_size', '--zd_font_size', '--size', '--size_'];
|
|
32
|
+
input :
|
|
33
|
+
--zd_size
|
|
34
|
+
output :
|
|
35
|
+
true
|
|
36
|
+
comment :
|
|
37
|
+
do not execute when --zd_size comes as prop
|
|
37
38
|
*/
|
|
38
39
|
|
|
39
40
|
function isIgnoreValuePresent(ignoreVals, prop) {
|
|
@@ -46,14 +47,14 @@ function isIgnoreValuePresent(ignoreVals, prop) {
|
|
|
46
47
|
return present;
|
|
47
48
|
} // -- to convert the hyphen values to values --
|
|
48
49
|
|
|
49
|
-
/*
|
|
50
|
-
input :
|
|
51
|
-
var(--zdt_uploadlist_default_width)
|
|
52
|
-
output :
|
|
53
|
-
--zdt_uploadlist_default_width
|
|
54
|
-
|
|
55
|
-
comment :
|
|
56
|
-
to make the variable object using the output as key and decl.prop such as font-size as value
|
|
50
|
+
/*
|
|
51
|
+
input :
|
|
52
|
+
var(--zdt_uploadlist_default_width)
|
|
53
|
+
output :
|
|
54
|
+
--zdt_uploadlist_default_width
|
|
55
|
+
|
|
56
|
+
comment :
|
|
57
|
+
to make the variable object using the output as key and decl.prop such as font-size as value
|
|
57
58
|
*/
|
|
58
59
|
|
|
59
60
|
|
|
@@ -64,8 +65,8 @@ function extractVariableName(val) {
|
|
|
64
65
|
function rootConvertor(rootOriginal, variables, settingsObject) {
|
|
65
66
|
rootOriginal.walkRules(rule => {
|
|
66
67
|
rule.nodes.forEach((decl, index) => {
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
const prevNode = rule.nodes[index - 1];
|
|
69
|
+
const currentNode = rule.nodes[index];
|
|
69
70
|
|
|
70
71
|
if (decl.prop && decl.prop.includes('--')) {
|
|
71
72
|
if (prevNode && prevNode.type === 'comment' && prevNode.text.toLowerCase() === 'variable:ignore') {
|
|
@@ -83,11 +84,11 @@ function rootConvertor(rootOriginal, variables, settingsObject) {
|
|
|
83
84
|
}
|
|
84
85
|
|
|
85
86
|
const pxReplacement = settingsObject[variables[decl.prop]].replacements.px;
|
|
86
|
-
|
|
87
|
+
const valArr = decl.value.split(' '); // single values are considered in the above array and converted below
|
|
87
88
|
|
|
88
89
|
valArr.forEach((value, index) => {
|
|
89
90
|
if (value.includes('px')) {
|
|
90
|
-
|
|
91
|
+
const num = value.replace('px', '');
|
|
91
92
|
valArr[index] = pxReplacement.replace('$$', num);
|
|
92
93
|
}
|
|
93
94
|
});
|
|
@@ -99,10 +100,33 @@ function rootConvertor(rootOriginal, variables, settingsObject) {
|
|
|
99
100
|
return rootOriginal;
|
|
100
101
|
}
|
|
101
102
|
|
|
103
|
+
function createFolderIfNonExistant(path) {
|
|
104
|
+
if (!fs.existsSync(path)) {
|
|
105
|
+
fs.mkdirSync(path, {
|
|
106
|
+
recursive: true
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function createFileIfNonExistant(path, content) {
|
|
112
|
+
if (fs.existsSync(path)) {
|
|
113
|
+
fs.writeFileSync(path, content, 'utf-8');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
102
117
|
class VariableConversionCollector {
|
|
103
118
|
constructor(options = {}) {
|
|
104
119
|
this.optimize = options.optimize;
|
|
105
120
|
this.filename = options.cssVariableReplacementConfig;
|
|
121
|
+
this.fileHandler();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
fileHandler() {
|
|
125
|
+
createFolderIfNonExistant('./.cli/logs/');
|
|
126
|
+
createFolderIfNonExistant('./.cli/config/variables/');
|
|
127
|
+
createFolderIfNonExistant('./.cli/config/selectorWeight/');
|
|
128
|
+
createFileIfNonExistant('./.cli/logs/unassignedVariables.log', '{}');
|
|
129
|
+
createFileIfNonExistant('./.cli/logs/css_error.log', '{}');
|
|
106
130
|
}
|
|
107
131
|
|
|
108
132
|
apply(compiler) {
|
|
@@ -114,7 +138,8 @@ class VariableConversionCollector {
|
|
|
114
138
|
settings: settingsObject,
|
|
115
139
|
errorLog: errorLogStatus,
|
|
116
140
|
errorInConsole: errorConsoleStatus,
|
|
117
|
-
errorsAllowed
|
|
141
|
+
errorsAllowed,
|
|
142
|
+
strictMode
|
|
118
143
|
} = data; // If theres is no setting for default prop in settingsObject, set one.
|
|
119
144
|
|
|
120
145
|
if (!settingsObject.default) {
|
|
@@ -129,20 +154,20 @@ class VariableConversionCollector {
|
|
|
129
154
|
}
|
|
130
155
|
};
|
|
131
156
|
}
|
|
132
|
-
/*
|
|
133
|
-
purpose of tap : to create a variable object such as:
|
|
134
|
-
{
|
|
135
|
-
--zdt_uploadlist_default_width : width,
|
|
136
|
-
--zdt_uploadlist_default_height : height,
|
|
137
|
-
}
|
|
138
|
-
which will help in the conversion further
|
|
157
|
+
/*
|
|
158
|
+
purpose of tap : to create a variable object such as:
|
|
159
|
+
{
|
|
160
|
+
--zdt_uploadlist_default_width : width,
|
|
161
|
+
--zdt_uploadlist_default_height : height,
|
|
162
|
+
}
|
|
163
|
+
which will help in the conversion further
|
|
139
164
|
*/
|
|
140
165
|
|
|
141
166
|
|
|
142
|
-
if (fs.existsSync('
|
|
143
|
-
|
|
144
|
-
Object.keys(
|
|
145
|
-
variables[key] =
|
|
167
|
+
if (fs.existsSync('./.cli/config/variables/variableMapping.json')) {
|
|
168
|
+
variablesRead = JSON.parse(fs.readFileSync('./.cli/config/variables/variableMapping.json', 'utf-8'));
|
|
169
|
+
Object.keys(variablesRead.changes).forEach(key => {
|
|
170
|
+
variables[key] = variablesRead.changes[key];
|
|
146
171
|
});
|
|
147
172
|
}
|
|
148
173
|
|
|
@@ -169,7 +194,7 @@ class VariableConversionCollector {
|
|
|
169
194
|
// `${extractedValue} : ${variables[extractedValue]} already exists please check!`
|
|
170
195
|
// );
|
|
171
196
|
if (errorsAllowed.MULTIPLE_OCCURANCES) {
|
|
172
|
-
|
|
197
|
+
const errObj = {
|
|
173
198
|
decl,
|
|
174
199
|
type: 'MULTIPLE_OCCURANCES',
|
|
175
200
|
filename,
|
|
@@ -182,29 +207,28 @@ class VariableConversionCollector {
|
|
|
182
207
|
}
|
|
183
208
|
} else {
|
|
184
209
|
// console.log(decl.prop);
|
|
185
|
-
if (/^--/gi.test(decl.prop) &&
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
unassigned[decl.prop] = variables[decl.prop];
|
|
210
|
+
if (/^--/gi.test(decl.prop) && val.trim() !== '' && !variables[decl.prop]) {
|
|
211
|
+
if (!Object.keys(variablesRead.ignore).includes(decl.prop)) {
|
|
212
|
+
unassigned[decl.prop] = variables[decl.prop];
|
|
213
|
+
}
|
|
190
214
|
}
|
|
191
215
|
}
|
|
192
216
|
});
|
|
193
217
|
});
|
|
194
218
|
});
|
|
195
|
-
/*
|
|
196
|
-
current value example:
|
|
197
|
-
{
|
|
198
|
-
--zdt_uploadlist_default_width : --zd_upload_width,
|
|
199
|
-
--zd_upload_width : width
|
|
200
|
-
}
|
|
201
|
-
expected value :
|
|
202
|
-
{
|
|
203
|
-
--zdt_uploadlist_default_width : width,
|
|
204
|
-
--zd_upload_width : width
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
conversion is done in the while loop below
|
|
219
|
+
/*
|
|
220
|
+
current value example:
|
|
221
|
+
{
|
|
222
|
+
--zdt_uploadlist_default_width : --zd_upload_width,
|
|
223
|
+
--zd_upload_width : width
|
|
224
|
+
}
|
|
225
|
+
expected value :
|
|
226
|
+
{
|
|
227
|
+
--zdt_uploadlist_default_width : width,
|
|
228
|
+
--zd_upload_width : width
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
conversion is done in the while loop below
|
|
208
232
|
*/
|
|
209
233
|
|
|
210
234
|
Object.keys(variables).forEach(key => {
|
|
@@ -216,17 +240,17 @@ class VariableConversionCollector {
|
|
|
216
240
|
});
|
|
217
241
|
}); // -- conversion for the root using rootConvertor --
|
|
218
242
|
|
|
219
|
-
/*
|
|
220
|
-
input :
|
|
221
|
-
.a{
|
|
222
|
-
padding : 20px
|
|
223
|
-
}
|
|
224
|
-
output :
|
|
225
|
-
// on settingObject file :
|
|
226
|
-
{ padding : { replacements : { px : 'zd_size$$' }}}
|
|
227
|
-
.a{
|
|
228
|
-
padding : zd_size20;
|
|
229
|
-
}
|
|
243
|
+
/*
|
|
244
|
+
input :
|
|
245
|
+
.a{
|
|
246
|
+
padding : 20px
|
|
247
|
+
}
|
|
248
|
+
output :
|
|
249
|
+
// on settingObject file :
|
|
250
|
+
{ padding : { replacements : { px : 'zd_size$$' }}}
|
|
251
|
+
.a{
|
|
252
|
+
padding : zd_size20;
|
|
253
|
+
}
|
|
230
254
|
*/
|
|
231
255
|
|
|
232
256
|
compilation.hooks.optimizeModules.tap('VariableConversionCollector', modules => {
|
|
@@ -238,24 +262,30 @@ class VariableConversionCollector {
|
|
|
238
262
|
});
|
|
239
263
|
});
|
|
240
264
|
});
|
|
241
|
-
/*
|
|
242
|
-
purpose of tap : to display the errors encountered so far
|
|
243
|
-
input :
|
|
244
|
-
all css files
|
|
245
|
-
output :
|
|
246
|
-
all errors that are present in the errTable arr
|
|
265
|
+
/*
|
|
266
|
+
purpose of tap : to display the errors encountered so far
|
|
267
|
+
input :
|
|
268
|
+
all css files
|
|
269
|
+
output :
|
|
270
|
+
all errors that are present in the errTable arr
|
|
247
271
|
*/
|
|
248
272
|
|
|
249
273
|
compiler.hooks.afterEmit.tap('error-display', () => {
|
|
250
|
-
if (Object.keys(unassigned).length > 0) {
|
|
274
|
+
if (Object.keys(unassigned).length > 0 && strictMode) {
|
|
251
275
|
console.log();
|
|
252
276
|
console.log(unassigned);
|
|
253
277
|
console.log();
|
|
278
|
+
let str = '{\n';
|
|
279
|
+
Object.keys(unassigned).forEach(key => {
|
|
280
|
+
str += `"${key}" : "${unassigned[key]}",\n`;
|
|
281
|
+
});
|
|
282
|
+
str += '}';
|
|
283
|
+
fs.writeFileSync('./.cli/logs/unassignedVariables.log', str, 'utf-8');
|
|
254
284
|
throw new Error('^^^ Variables above have not been assigned! ^^^');
|
|
255
285
|
}
|
|
256
286
|
|
|
257
|
-
|
|
258
|
-
|
|
287
|
+
const avlTypes = new Set([]);
|
|
288
|
+
const srtArr = errTable.sort((a, b) => {
|
|
259
289
|
avlTypes.add(a.type);
|
|
260
290
|
avlTypes.add(b.type);
|
|
261
291
|
|
|
@@ -302,13 +332,13 @@ class VariableConversionCollector {
|
|
|
302
332
|
}
|
|
303
333
|
|
|
304
334
|
if (errorLogStatus) {
|
|
305
|
-
fs.writeFileSync('
|
|
335
|
+
fs.writeFileSync('./.cli/logs/css_error.log', '');
|
|
306
336
|
console.log('writing to logFile...');
|
|
307
337
|
|
|
308
338
|
if (errors.length > 0) {
|
|
309
339
|
errors.forEach((err, index) => {
|
|
310
340
|
if (errTable[index].decl.prop && errTable[index].decl.value) {
|
|
311
|
-
fs.appendFileSync('
|
|
341
|
+
fs.appendFileSync('./.cli/logs/css_error.log', err);
|
|
312
342
|
}
|
|
313
343
|
});
|
|
314
344
|
}
|
|
@@ -38,11 +38,11 @@ function selectorMinifySameDir(selector, direction) {
|
|
|
38
38
|
const regex = getRegex(direction);
|
|
39
39
|
return selector.replace(regex, '').trim();
|
|
40
40
|
}
|
|
41
|
-
/**
|
|
42
|
-
* this funtion will remove given rule,
|
|
43
|
-
* if given selector and it's previous sibiling rule selector are same
|
|
44
|
-
* current rule properties will move to previous sibiling rule.
|
|
45
|
-
* @param {Rule} rule current rule
|
|
41
|
+
/**
|
|
42
|
+
* this funtion will remove given rule,
|
|
43
|
+
* if given selector and it's previous sibiling rule selector are same
|
|
44
|
+
* current rule properties will move to previous sibiling rule.
|
|
45
|
+
* @param {Rule} rule current rule
|
|
46
46
|
*/
|
|
47
47
|
|
|
48
48
|
|
|
@@ -57,11 +57,11 @@ function mergeIfSameSelector(rule) {
|
|
|
57
57
|
rule.remove();
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
/**
|
|
61
|
-
* this funtion will remove given rule,
|
|
62
|
-
* if given selector and it's previous sibiling rule selector are same
|
|
63
|
-
* current rule properties will move to previous sibiling rule.
|
|
64
|
-
* @param {Rule} rule current rule
|
|
60
|
+
/**
|
|
61
|
+
* this funtion will remove given rule,
|
|
62
|
+
* if given selector and it's previous sibiling rule selector are same
|
|
63
|
+
* current rule properties will move to previous sibiling rule.
|
|
64
|
+
* @param {Rule} rule current rule
|
|
65
65
|
*/
|
|
66
66
|
|
|
67
67
|
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
/*Hover_active:ignore*/
|
|
2
|
-
g,a:hover{
|
|
3
|
-
color : red
|
|
4
|
-
}
|
|
5
|
-
/*Hover:ignore*/
|
|
6
|
-
h:hover{
|
|
7
|
-
background : yellow
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/* Hover_active:ignore */
|
|
11
|
-
g,d+e:hover{
|
|
12
|
-
color : black
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
g,d e:hover{
|
|
16
|
-
color : black
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@media screen and (max-width:61.25em){
|
|
20
|
-
/* Hover_active:ignore */
|
|
21
|
-
a,b,a:hover, b:hover{
|
|
22
|
-
background-color : blue
|
|
23
|
-
}
|
|
24
|
-
a + b,a:hover + b:hover{
|
|
25
|
-
background-color : blue
|
|
26
|
-
}
|
|
27
|
-
a b:hover{
|
|
28
|
-
background-color : blue
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.cc:hover {
|
|
32
|
-
color: red;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
c:hover{
|
|
36
|
-
color : red
|
|
37
|
-
}
|
|
38
|
-
|
|
1
|
+
/*Hover_active:ignore*/
|
|
2
|
+
g,a:hover{
|
|
3
|
+
color : red
|
|
4
|
+
}
|
|
5
|
+
/*Hover:ignore*/
|
|
6
|
+
h:hover{
|
|
7
|
+
background : yellow
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* Hover_active:ignore */
|
|
11
|
+
g,d+e:hover{
|
|
12
|
+
color : black
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
g,d e:hover{
|
|
16
|
+
color : black
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@media screen and (max-width:61.25em){
|
|
20
|
+
/* Hover_active:ignore */
|
|
21
|
+
a,b,a:hover, b:hover{
|
|
22
|
+
background-color : blue
|
|
23
|
+
}
|
|
24
|
+
a + b,a:hover + b:hover{
|
|
25
|
+
background-color : blue
|
|
26
|
+
}
|
|
27
|
+
a b:hover{
|
|
28
|
+
background-color : blue
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.cc:hover {
|
|
32
|
+
color: red;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
c:hover{
|
|
36
|
+
color : red
|
|
37
|
+
}
|
|
38
|
+
|
|
39
39
|
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
/*Hover_active:ignore*/
|
|
2
|
-
g,a:hover{
|
|
3
|
-
color : red
|
|
4
|
-
}
|
|
5
|
-
/*Hover:ignore*/
|
|
6
|
-
h:hover{
|
|
7
|
-
background : yellow
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/* Hover_active:ignore */
|
|
11
|
-
g,d+e:hover{
|
|
12
|
-
color : black
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
g,d e:hover{
|
|
16
|
-
color : black
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@media screen and (max-width:61.25em){
|
|
20
|
-
/* Hover_active:ignore */
|
|
21
|
-
a,b,a:hover, b:hover{
|
|
22
|
-
background-color : blue
|
|
23
|
-
}
|
|
24
|
-
a + b,a:hover + b:hover{
|
|
25
|
-
background-color : blue
|
|
26
|
-
}
|
|
27
|
-
a b:hover{
|
|
28
|
-
background-color : blue
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.cc:hover {
|
|
32
|
-
color: red;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
c:hover{
|
|
36
|
-
color : red
|
|
37
|
-
}
|
|
38
|
-
|
|
1
|
+
/*Hover_active:ignore*/
|
|
2
|
+
g,a:hover{
|
|
3
|
+
color : red
|
|
4
|
+
}
|
|
5
|
+
/*Hover:ignore*/
|
|
6
|
+
h:hover{
|
|
7
|
+
background : yellow
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* Hover_active:ignore */
|
|
11
|
+
g,d+e:hover{
|
|
12
|
+
color : black
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
g,d e:hover{
|
|
16
|
+
color : black
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@media screen and (max-width:61.25em){
|
|
20
|
+
/* Hover_active:ignore */
|
|
21
|
+
a,b,a:hover, b:hover{
|
|
22
|
+
background-color : blue
|
|
23
|
+
}
|
|
24
|
+
a + b,a:hover + b:hover{
|
|
25
|
+
background-color : blue
|
|
26
|
+
}
|
|
27
|
+
a b:hover{
|
|
28
|
+
background-color : blue
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.cc:hover {
|
|
32
|
+
color: red;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
c:hover{
|
|
36
|
+
color : red
|
|
37
|
+
}
|
|
38
|
+
|
|
39
39
|
}
|
|
@@ -4,9 +4,9 @@ var _postcss = _interopRequireDefault(require("postcss"));
|
|
|
4
4
|
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
* we have give support for ignore(exclude) comments
|
|
9
|
-
* These are the comments' keyword
|
|
7
|
+
/**
|
|
8
|
+
* we have give support for ignore(exclude) comments
|
|
9
|
+
* These are the comments' keyword
|
|
10
10
|
*/
|
|
11
11
|
const hoverIgnoreQuery = 'Hover:ignore',
|
|
12
12
|
activeIgnoreQuery = 'Active:ignore',
|
package/lib/schemas/index.js
CHANGED
|
@@ -91,6 +91,10 @@ var _default = {
|
|
|
91
91
|
cssDirStatement: null
|
|
92
92
|
},
|
|
93
93
|
app: {
|
|
94
|
+
moduleResolvePath: {
|
|
95
|
+
value: '',
|
|
96
|
+
cli: 'module_resolve_path'
|
|
97
|
+
},
|
|
94
98
|
// this option only for impact testing
|
|
95
99
|
devCssFileBountry: {
|
|
96
100
|
value: '',
|
|
@@ -137,6 +141,10 @@ var _default = {
|
|
|
137
141
|
value: 'dev',
|
|
138
142
|
cli: 'app_mode'
|
|
139
143
|
},
|
|
144
|
+
httpsCerts: {
|
|
145
|
+
value: null,
|
|
146
|
+
cli: 'https_certs'
|
|
147
|
+
},
|
|
140
148
|
branch: {
|
|
141
149
|
value: 'master',
|
|
142
150
|
cli: 'app_branch'
|