@zohodesk/react-cli 1.1.7 → 1.1.8-exp.2

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 (131) 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 +1293 -1251
  6. package/bin/cli.js +497 -497
  7. package/docs/ComposeMinification.md +13 -13
  8. package/docs/CustomChunks.md +29 -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/MarkdownParser.md +17 -17
  14. package/docs/ReactLive.md +13 -13
  15. package/docs/SelectorWeight.md +8 -8
  16. package/docs/TODOS.md +10 -10
  17. package/docs/ValueReplacer.md +60 -60
  18. package/docs/VariableConversion.md +729 -729
  19. package/docs/patternFiltering.md +56 -56
  20. package/docs/warnings_while_install.txt +35 -35
  21. package/files/eslintrc.js +62 -62
  22. package/files/prettierrc.js +3 -3
  23. package/lib/common/splitChunks.js +65 -45
  24. package/lib/common/testPattern.js +9 -9
  25. package/lib/configs/webpack.css.umd.config.js +4 -4
  26. package/lib/configs/webpack.dev.config.js +24 -3
  27. package/lib/configs/webpack.docs.config.js +22 -3
  28. package/lib/configs/webpack.impact.config.js +4 -2
  29. package/lib/configs/webpack.prod.config.js +6 -3
  30. package/lib/deprecationLogger.js +41 -0
  31. package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
  32. package/lib/loaderUtils/getCSSLoaders.js +77 -56
  33. package/lib/loaders/workerLoader.js +9 -9
  34. package/lib/pluginUtils/getDevPlugins.js +8 -7
  35. package/lib/pluginUtils/getProdPlugins.js +6 -6
  36. package/lib/plugins/CustomAttributePlugin.md +35 -35
  37. package/lib/plugins/EFCPlugin.md +6 -6
  38. package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
  39. package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
  40. package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
  41. package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
  42. package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
  43. package/lib/plugins/I18nSplitPlugin/README.md +25 -25
  44. package/lib/plugins/I18nSplitPlugin/index.js +57 -57
  45. package/lib/plugins/ResourceHintsPlugin.js +30 -20
  46. package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
  47. package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
  48. package/lib/plugins/SelectorPlugin.js +29 -29
  49. package/lib/plugins/ServiceWorkerPlugin.js +9 -9
  50. package/lib/plugins/TPHashMappingPlugin.js +4 -4
  51. package/lib/plugins/VariableConversionCollector.js +59 -59
  52. package/lib/plugins/utils/fileHandling.js +35 -42
  53. package/lib/plugins/variableConvertorUtils.js +9 -9
  54. package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
  55. package/lib/postcss-plugins/__test__/test1Input.css +38 -38
  56. package/lib/postcss-plugins/__test__/test1Output.css +38 -38
  57. package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
  58. package/lib/schemas/index.js +19 -36
  59. package/lib/sh/pre-commit.sh +34 -34
  60. package/lib/sh/reportPublish.sh +45 -45
  61. package/lib/utils/buildstats.html +148 -148
  62. package/lib/utils/cssClassNameGenerate.js +13 -13
  63. package/lib/utils/deprecationSupport.js +123 -0
  64. package/lib/utils/getOptions.js +18 -78
  65. package/lib/utils/resultSchema.json +73 -73
  66. package/npm-shrinkwrap.json +14454 -33393
  67. package/npm8.md +9 -9
  68. package/package.json +123 -123
  69. package/postpublish.js +8 -8
  70. package/result.json +1 -0
  71. package/templates/app/.eslintrc.js +140 -140
  72. package/templates/app/README.md +12 -12
  73. package/templates/app/app/index.html +24 -24
  74. package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
  75. package/templates/app/app/properties/i18nkeys.json +3 -3
  76. package/templates/app/docs/all.html +69 -69
  77. package/templates/app/mockapi/index.js +18 -18
  78. package/templates/app/package.json +37 -37
  79. package/templates/app/src/actions/SampleActions/index.js +37 -37
  80. package/templates/app/src/actions/index.js +65 -65
  81. package/templates/app/src/appUrls.js +19 -19
  82. package/templates/app/src/components/Alert/Alert.js +134 -134
  83. package/templates/app/src/components/Alert/Alert.module.css +79 -79
  84. package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
  85. package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
  86. package/templates/app/src/components/Sample/Sample.module.css +11 -11
  87. package/templates/app/src/components/Sample/SampleList.js +61 -61
  88. package/templates/app/src/components/Slider/Slider.css +41 -41
  89. package/templates/app/src/components/Slider/Slider.js +55 -55
  90. package/templates/app/src/containers/AlertContainer/index.js +15 -15
  91. package/templates/app/src/containers/AppContainer/index.js +96 -96
  92. package/templates/app/src/containers/AppContainer/index.module.css +27 -27
  93. package/templates/app/src/containers/CustomMatch/index.js +65 -65
  94. package/templates/app/src/containers/DevTools/index.js +10 -10
  95. package/templates/app/src/containers/Header/index.js +67 -67
  96. package/templates/app/src/containers/Header/index.module.css +43 -43
  97. package/templates/app/src/containers/Redirect/index.js +63 -63
  98. package/templates/app/src/containers/Redirector/index.js +47 -47
  99. package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
  100. package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
  101. package/templates/app/src/historyChange.js +5 -5
  102. package/templates/app/src/index.html +10 -10
  103. package/templates/app/src/index.js +24 -24
  104. package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
  105. package/templates/app/src/reducers/alertData.js +11 -11
  106. package/templates/app/src/reducers/index.js +6 -6
  107. package/templates/app/src/reducers/samples.js +19 -19
  108. package/templates/app/src/store/configureStore.dev.js +51 -51
  109. package/templates/app/src/store/configureStore.js +5 -5
  110. package/templates/app/src/store/configureStore.prod.js +26 -26
  111. package/templates/app/src/util/Common.js +5 -5
  112. package/templates/app/src/util/RequestAPI.js +132 -132
  113. package/templates/docs/all.html +250 -250
  114. package/templates/docs/component.html +179 -179
  115. package/templates/docs/components.html +222 -222
  116. package/templates/docs/css/b.min.css +6 -6
  117. package/templates/docs/css/component.css +42 -42
  118. package/templates/docs/css/componentTest.css +6 -6
  119. package/templates/docs/css/hopscotch.css +585 -585
  120. package/templates/docs/css/markdown.css +202 -202
  121. package/templates/docs/css/style.css +1022 -1022
  122. package/templates/docs/impactReportTemplate.html +154 -154
  123. package/templates/docs/index.html +1502 -1502
  124. package/templates/docs/js/active-line.js +72 -72
  125. package/templates/docs/js/b.min.js +7 -7
  126. package/templates/docs/js/codemirror.js +9680 -9680
  127. package/templates/docs/js/designTokens.js +334 -334
  128. package/templates/docs/js/j.min.js +4 -4
  129. package/templates/docs/js/javascript.js +874 -874
  130. package/templates/docs/js/matchbrackets.js +145 -145
  131. package/unittest/index.html +37 -0
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deprecationSupport = deprecationSupport;
7
+
8
+ var _path = _interopRequireDefault(require("path"));
9
+
10
+ var _deprecationLogger = require("../deprecationLogger");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ // function selectn(obj, key) {
15
+ // let temp = obj;
16
+ // let keys = key.split('.');
17
+ // for (let i = 0; i < keys.length; i++) {
18
+ // const element = keys[i];
19
+ // temp = temp && temp[element];
20
+ // }
21
+ // return temp;
22
+ // }
23
+ function deprecationSupport(options) {
24
+ options.app.plugins = options.app.plugins || {
25
+ valueReplacer: false,
26
+ hasRTL: false,
27
+ selectorReplace: false,
28
+ hoverActive: false,
29
+ combinerMediaQuery: false,
30
+ cssVariableReplacement: false,
31
+ selectorWeight: false,
32
+ minifier: false,
33
+ composeMinification: false
34
+ };
35
+ options.docs.plugins = options.docs.plugins || {
36
+ valueReplacer: false,
37
+ hasRTL: false,
38
+ selectorReplace: false,
39
+ hoverActive: false,
40
+ combinerMediaQuery: false,
41
+ cssVariableReplacement: false,
42
+ selectorWeight: false,
43
+ minifier: false,
44
+ composeMinification: false
45
+ };
46
+ options.css.plugins = options.css.plugins || {
47
+ valueReplacer: false,
48
+ hasRTL: false,
49
+ selectorReplace: false,
50
+ hoverActive: false,
51
+ combinerMediaQuery: false,
52
+ cssVariableReplacement: false,
53
+ selectorWeight: false,
54
+ minifier: false,
55
+ composeMinification: false
56
+ }; // deprecationLoggerStart();
57
+ // if (selectn(options, ".app.hasRTL") === true) {
58
+
59
+ if (options.app.hasRTL === true) {
60
+ (0, _deprecationLogger.deprecateOption)('app.hasRTL', 'app.plugins.hasRTL');
61
+ options.app.plugins.hasRTL = true;
62
+ }
63
+
64
+ if (options.docs.hasRTL === true) {
65
+ (0, _deprecationLogger.deprecateOption)('docs.hasRTL', 'docs.plugins.hasRTL');
66
+ options.docs.plugins.hasRTL = true;
67
+ }
68
+
69
+ if (options.app.rtlExclude.length > 0) {
70
+ (0, _deprecationLogger.deprecateOption)('app.rtlExclude', 'app.exclude.rtl');
71
+ options.app.exclude.rtl = options.app.rtlExclude;
72
+ }
73
+
74
+ if (options.docs.rtlExclude.length > 0) {
75
+ (0, _deprecationLogger.deprecateOption)('docs.rtlExclude', 'docs.exclude.rtl');
76
+ options.docs.exclude.rtl = options.docs.rtlExclude;
77
+ }
78
+
79
+ if (options.app.selectorReplace !== null) {
80
+ (0, _deprecationLogger.deprecateMessage)('when you use app.selectorReplace mention enable or disable app.plugins.selectorReplace by setting value to true or false');
81
+ options.app.plugins.selectorReplace = true;
82
+ }
83
+
84
+ if (options.docs.selectorReplace !== null) {
85
+ (0, _deprecationLogger.deprecateMessage)('when you use app.selectorReplace mention enable or disable app.plugins.selectorReplace by setting value to true or false');
86
+ options.docs.plugins.selectorReplace = true;
87
+ }
88
+
89
+ if (options.css.valueReplacer !== null) {
90
+ (0, _deprecationLogger.deprecateMessage)('when you use app.valueReplacer mention enable or disable app.plugins.valueReplacer by setting value to true or false');
91
+ options.app.plugins.valueReplacer = true;
92
+ }
93
+
94
+ if (options.app.exclude && options.app.exclude.hasRTL && options.app.exclude.rtl && options.app.exclude.hasRTL.length === 0 && options.app.exclude.rtl.length > 0) {
95
+ (0, _deprecationLogger.deprecateOption)('app.hasRTL', 'app.plugins.hasRTL');
96
+ options.app.exclude.hasRTL = options.app.exclude.rtl;
97
+ }
98
+
99
+ if (options.docs.exclude && options.docs.exclude.hasRTL && options.docs.exclude.rtl && options.docs.exclude.hasRTL.length === 0 && options.docs.exclude.rtl.length > 0) {
100
+ (0, _deprecationLogger.deprecateOption)('docs.hasRTL', 'docs.plugins.hasRTL');
101
+ options.docs.exclude.hasRTL = options.docs.exclude.rtl;
102
+ }
103
+
104
+ if (!options.app.patterns) {
105
+ options.app.patterns = {};
106
+ }
107
+
108
+ function addExcludesToPattern(patterns, exclude) {
109
+ Object.keys(patterns).forEach(key => {
110
+ if (exclude[key] && patterns[key].length === 0) {
111
+ let tempArr = exclude[key];
112
+ tempArr = tempArr.map(x => _path.default.join('!**', x, '**')); // Since patterns[key] is empty we need to wildcard for allow all others.
113
+
114
+ tempArr.unshift('*');
115
+ patterns[key] = tempArr;
116
+ }
117
+ });
118
+ }
119
+
120
+ addExcludesToPattern(options.app.patterns, options.app.exclude);
121
+ addExcludesToPattern(options.docs.patterns, options.docs.exclude);
122
+ (0, _deprecationLogger.deprecationLoggerEnd)();
123
+ }
@@ -7,14 +7,20 @@ exports.default = void 0;
7
7
 
8
8
  var _child_process = require("child_process");
9
9
 
10
- var _fs = _interopRequireDefault(require("fs"));
10
+ var _fs = _interopRequireWildcard(require("fs"));
11
11
 
12
12
  var _path = _interopRequireDefault(require("path"));
13
13
 
14
14
  var _schemas = _interopRequireDefault(require("../schemas"));
15
15
 
16
+ var _deprecationSupport = require("./deprecationSupport");
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
20
+ 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); }
21
+
22
+ 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; }
23
+
18
24
  // import { argv } from 'process';
19
25
  const args = process.argv.slice(2); // console.log('argv', argv);
20
26
 
@@ -122,85 +128,19 @@ const defaulter = (target, source) => {
122
128
  return defaultObject;
123
129
  };
124
130
 
125
- global.reactCLIOptions = null; // function selectn(obj, key) {
126
- // let temp = obj;
127
- // let keys = key.split('.');
128
- // for (let i = 0; i < keys.length; i++) {
129
- // const element = keys[i];
130
- // temp = temp && temp[element];
131
- // }
132
- // return temp;
133
- // }
134
-
135
- function deprecationSupport(options) {
136
- // if (selectn(options, ".app.hasRTL") === true) {
137
- if (options.app.hasRTL === true) {
138
- options.app.plugins.hasRTL = true;
139
- }
140
-
141
- if (options.docs.hasRTL === true) {
142
- options.docs.plugins.hasRTL = true;
143
- }
144
-
145
- if (options.app.rtlExclude.length > 0) {
146
- options.app.exclude.rtl = options.app.rtlExclude;
147
- }
131
+ global.reactCLIOptions = null;
148
132
 
149
- if (options.docs.rtlExclude.length > 0) {
150
- options.docs.exclude.rtl = options.docs.rtlExclude;
151
- }
133
+ const getOptionsFromConfigFile = (appPath, configFileName) => {
134
+ const fileName = configFileName || 'build.config.js';
152
135
 
153
- if (options.app.selectorReplace !== null) {
154
- options.app.plugins.selectorReplace = true;
155
- }
136
+ const packagePath = _path.default.join(appPath, fileName);
156
137
 
157
- if (options.docs.selectorReplace !== null) {
158
- options.docs.plugins.selectorReplace = true;
138
+ if ((0, _fs.existsSync)(packagePath)) {
139
+ return require(packagePath).config;
159
140
  }
160
141
 
161
- if (options.css.valueReplacer !== null) {
162
- options.app.plugins.valueReplacer = true;
163
- }
164
-
165
- options.app.exclude.hasRTL = options.app.exclude.rtl;
166
-
167
- if (!options.app.patterns) {
168
- options.app.patterns = {};
169
- }
170
-
171
- if (options.app.patterns.valueReplacer.length === 0) {
172
- options.app.patterns.valueReplacer = ['*'];
173
- }
174
-
175
- if (options.app.patterns.selectorReplace.length === 0) {
176
- options.app.patterns.selectorReplace = ['*'];
177
- }
178
-
179
- if (options.docs.patterns.selectorReplace.length === 0) {
180
- options.docs.patterns.selectorReplace = ['*'];
181
- }
182
-
183
- Object.keys(options.app.patterns).forEach(key => {
184
- if (options.app.exclude[key] && options.app.patterns[key].length === 0) {
185
- let tempArr = options.app.exclude[key];
186
- tempArr = tempArr.map(x => {
187
- x = x.replace(/\//gi, _path.default.sep);
188
- return `!**${x[0] === _path.default.sep || x[0] === '@' ? '' : _path.default.sep}${x}${x[x.length - 1] === _path.default.sep ? '' : _path.default.sep}**`;
189
- });
190
- options.app.patterns[key] = tempArr;
191
- }
192
- });
193
- Object.keys(options.docs.patterns).forEach(key => {
194
- if (options.docs.exclude[key] && options.docs.patterns[key].length === 0) {
195
- let tempArr = options.docs.exclude[key];
196
- tempArr = tempArr.map(x => {
197
- x = x.replace(/\//gi, _path.default.sep);
198
- return `!**${x[0] === _path.default.sep || x[0] === '@' ? '' : _path.default.sep}${x}${x[x.length - 1] === _path.default.sep ? '' : _path.default.sep}**`;
199
- });
200
- options.docs.patterns[key] = tempArr;
201
- }
202
- });
203
- }
142
+ return null;
143
+ };
204
144
 
205
145
  const getOptions = () => {
206
146
  if (global.reactCLIOptions) {
@@ -208,19 +148,19 @@ const getOptions = () => {
208
148
  }
209
149
 
210
150
  const appPath = process.cwd();
211
- let userSchemas;
151
+ let userSchemas = getOptionsFromConfigFile(appPath, processEnv.config_file);
212
152
 
213
153
  const packagePath = _path.default.join(appPath, 'package.json');
214
154
 
215
155
  if (_fs.default.existsSync(packagePath)) {
216
- userSchemas = require(packagePath)['react-cli'] || {};
156
+ userSchemas = userSchemas || require(packagePath)['react-cli'] || {};
217
157
  }
218
158
 
219
159
  const options = defaulter(_schemas.default, userSchemas || {}); // for future may be for npm 8 edge cases
220
160
 
221
161
  options.npmVersion = getNpmVersion();
222
162
  options.cwd = getCWD();
223
- deprecationSupport(options);
163
+ (0, _deprecationSupport.deprecationSupport)(options);
224
164
  options.packageVersion = process.env.npm_package_version;
225
165
  global.reactCLIOptions = options;
226
166
  return options;
@@ -1,73 +1,73 @@
1
- {
2
- "jobDetails": {
3
- "isTriggeredFromGit": true,
4
- "isCIPassed": true,
5
- "developerName": "GITLAB_USER_NAME",
6
- "jobID": "CI_PIPELINE_ID",
7
- "branchName": "CI_COMMIT_REF_NAME",
8
- "commitMessage": "CI_COMMIT_MESSAGE",
9
- "jobURL": "CI_JOB_URL",
10
- "isByManual": "CI_JOB_MANUAL",
11
- "commitID": "CI_COMMIT_SHA",
12
- "executionTime": "Date.now()-Date.now()",
13
- "hostName": "kathir-zt252"
14
- },
15
- "tests": {
16
- "unitCase": {
17
- "startTime": "123455",
18
- "endTime": "123446",
19
- "isExecuted": true,
20
- "numberOfSuccess": "",
21
- "numberOfFails": "",
22
- "numberOfCases": "",
23
- "numberOfSuites": "",
24
- "fileDetail": {
25
- "fileName": "sample.spec.js",
26
- "caseDetail": {
27
- "failedCaseLists": [],
28
- "passedCaseList": []
29
- }
30
- },
31
- "coverageDetail": {
32
- "codeCoveragePercentage": "",
33
- "fileCoveragePercentage": ""
34
- }
35
- },
36
- "modifiedFileUnitCase": {
37
- "hasChanges": "true",
38
- "startTime": "123455",
39
- "endTime": "123446",
40
- "isExecuted": true,
41
- "isPassed": true,
42
- "numberOfSuccess": "",
43
- "numberOfFails": "",
44
- "numberOfCases": "",
45
- "numberOfSuites": "",
46
- "fileDetail": {
47
- "fileName": "sample.spec.js",
48
- "caseDetail": {
49
- "failedCaseLists": [],
50
- "passedCaseList": []
51
- }
52
- },
53
- "coverageDetail": {
54
- "codeCoveragePercentage": "",
55
- "fileCoveragePercentage": ""
56
- }
57
- },
58
- "screenshotTest": {
59
- "message": "some",
60
- "startTime": "123455",
61
- "endTime": "123446",
62
- "isThisExecuted": true,
63
- "compareBranch": "master",
64
- "isPassed": true,
65
- "result": {
66
- "numberOfComponents": 200,
67
- "numberOfDiffFiles": 20,
68
- "improperDocsList": [],
69
- "erroredComponents": []
70
- }
71
- }
72
- }
73
- }
1
+ {
2
+ "jobDetails": {
3
+ "isTriggeredFromGit": true,
4
+ "isCIPassed": true,
5
+ "developerName": "GITLAB_USER_NAME",
6
+ "jobID": "CI_PIPELINE_ID",
7
+ "branchName": "CI_COMMIT_REF_NAME",
8
+ "commitMessage": "CI_COMMIT_MESSAGE",
9
+ "jobURL": "CI_JOB_URL",
10
+ "isByManual": "CI_JOB_MANUAL",
11
+ "commitID": "CI_COMMIT_SHA",
12
+ "executionTime": "Date.now()-Date.now()",
13
+ "hostName": "kathir-zt252"
14
+ },
15
+ "tests": {
16
+ "unitCase": {
17
+ "startTime": "123455",
18
+ "endTime": "123446",
19
+ "isExecuted": true,
20
+ "numberOfSuccess": "",
21
+ "numberOfFails": "",
22
+ "numberOfCases": "",
23
+ "numberOfSuites": "",
24
+ "fileDetail": {
25
+ "fileName": "sample.spec.js",
26
+ "caseDetail": {
27
+ "failedCaseLists": [],
28
+ "passedCaseList": []
29
+ }
30
+ },
31
+ "coverageDetail": {
32
+ "codeCoveragePercentage": "",
33
+ "fileCoveragePercentage": ""
34
+ }
35
+ },
36
+ "modifiedFileUnitCase": {
37
+ "hasChanges": "true",
38
+ "startTime": "123455",
39
+ "endTime": "123446",
40
+ "isExecuted": true,
41
+ "isPassed": true,
42
+ "numberOfSuccess": "",
43
+ "numberOfFails": "",
44
+ "numberOfCases": "",
45
+ "numberOfSuites": "",
46
+ "fileDetail": {
47
+ "fileName": "sample.spec.js",
48
+ "caseDetail": {
49
+ "failedCaseLists": [],
50
+ "passedCaseList": []
51
+ }
52
+ },
53
+ "coverageDetail": {
54
+ "codeCoveragePercentage": "",
55
+ "fileCoveragePercentage": ""
56
+ }
57
+ },
58
+ "screenshotTest": {
59
+ "message": "some",
60
+ "startTime": "123455",
61
+ "endTime": "123446",
62
+ "isThisExecuted": true,
63
+ "compareBranch": "master",
64
+ "isPassed": true,
65
+ "result": {
66
+ "numberOfComponents": 200,
67
+ "numberOfDiffFiles": 20,
68
+ "improperDocsList": [],
69
+ "erroredComponents": []
70
+ }
71
+ }
72
+ }
73
+ }