slnodejs 6.1.916 → 6.1.922

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 (77) hide show
  1. package/package.json +1 -1
  2. package/tsOutputs/build-scanner/build-diff-process.js +2 -0
  3. package/tsOutputs/build-scanner/build-diff-process.js.map +1 -1
  4. package/tsOutputs/build-scanner/instrumentation/browser-instrumenter.js +11 -2
  5. package/tsOutputs/build-scanner/instrumentation/browser-instrumenter.js.map +1 -1
  6. package/tsOutputs/cli-parse/cli.js +6 -0
  7. package/tsOutputs/cli-parse/cli.js.map +1 -1
  8. package/tsOutputs/cli-parse/contracts.d.ts +5 -0
  9. package/tsOutputs/cli-parse/contracts.js.map +1 -1
  10. package/tsOutputs/cli-parse/executors/build-args-dto.js +1 -0
  11. package/tsOutputs/cli-parse/executors/build-args-dto.js.map +1 -1
  12. package/tsOutputs/cli-parse/executors/build-executor.js +19 -1
  13. package/tsOutputs/cli-parse/executors/build-executor.js.map +1 -1
  14. package/tsOutputs/cli-parse/executors/run-executor.js +2 -1
  15. package/tsOutputs/cli-parse/executors/run-executor.js.map +1 -1
  16. package/tsOutputs/common/agent-events/agent-events-controller.js.map +1 -1
  17. package/tsOutputs/common/config-process/config.d.ts +2 -0
  18. package/tsOutputs/common/config-process/config.js +2 -0
  19. package/tsOutputs/common/config-process/config.js.map +1 -1
  20. package/tsOutputs/common/constants/sl-env-vars.d.ts +6 -0
  21. package/tsOutputs/common/constants/sl-env-vars.js +6 -0
  22. package/tsOutputs/common/constants/sl-env-vars.js.map +1 -1
  23. package/tsOutputs/common/footprints-process-v6/hits-collector.js +1 -0
  24. package/tsOutputs/common/footprints-process-v6/hits-collector.js.map +1 -1
  25. package/tsOutputs/common/footprints-process-v6/hits-converter.d.ts +3 -1
  26. package/tsOutputs/common/footprints-process-v6/hits-converter.js +12 -3
  27. package/tsOutputs/common/footprints-process-v6/hits-converter.js.map +1 -1
  28. package/tsOutputs/common/footprints-process-v6/index.d.ts +4 -8
  29. package/tsOutputs/common/footprints-process-v6/index.js +2 -14
  30. package/tsOutputs/common/footprints-process-v6/index.js.map +1 -1
  31. package/tsOutputs/common/http/contracts.d.ts +1 -1
  32. package/tsOutputs/common/watchdog.d.ts +9 -8
  33. package/tsOutputs/common/watchdog.js +1 -4
  34. package/tsOutputs/common/watchdog.js.map +1 -1
  35. package/tsOutputs/test-listener/agent-loader.js +8 -2
  36. package/tsOutputs/test-listener/agent-loader.js.map +1 -1
  37. package/tsOutputs/test-listener/agent.d.ts +1 -1
  38. package/tsOutputs/test-listener/bootstrap.js +4 -0
  39. package/tsOutputs/test-listener/bootstrap.js.map +1 -1
  40. package/tsOutputs/test-listener/config-process/config-loader.js +1 -1
  41. package/tsOutputs/test-listener/config-process/config-loader.js.map +1 -1
  42. package/tsOutputs/test-listener/factory.d.ts +3 -5
  43. package/tsOutputs/test-listener/factory.js +18 -24
  44. package/tsOutputs/test-listener/factory.js.map +1 -1
  45. package/tsOutputs/test-listener/logs-process/index.d.ts +2 -2
  46. package/tsOutputs/common/uuid.js +0 -21
  47. package/tsOutputs/common/uuid.js.map +0 -1
  48. package/tsOutputs/test-listener/config-process/config-system.d.ts +0 -88
  49. package/tsOutputs/test-listener/config-process/config-system.js +0 -259
  50. package/tsOutputs/test-listener/config-process/config-system.js.map +0 -1
  51. package/tsOutputs/test-listener/config-process/index.js +0 -110
  52. package/tsOutputs/test-listener/config-process/index.js.map +0 -1
  53. package/tsOutputs/test-listener/config.d.ts +0 -50
  54. package/tsOutputs/test-listener/config.js +0 -62
  55. package/tsOutputs/test-listener/config.js.map +0 -1
  56. package/tsOutputs/test-listener/environment-data-service.d.ts +0 -11
  57. package/tsOutputs/test-listener/environment-data-service.js +0 -60
  58. package/tsOutputs/test-listener/environment-data-service.js.map +0 -1
  59. package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js +0 -36
  60. package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js.map +0 -1
  61. package/tsOutputs/test-listener/footprints-process/index.js +0 -226
  62. package/tsOutputs/test-listener/footprints-process/index.js.map +0 -1
  63. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-base.js +0 -130
  64. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-base.js.map +0 -1
  65. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-contract.js +0 -3
  66. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-contract.js.map +0 -1
  67. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js +0 -272
  68. package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js.map +0 -1
  69. package/tsOutputs/test-listener/queue.js +0 -40
  70. package/tsOutputs/test-listener/queue.js.map +0 -1
  71. package/tsOutputs/test-listener/state-tracker-process/index.js +0 -143
  72. package/tsOutputs/test-listener/state-tracker-process/index.js.map +0 -1
  73. package/tsOutputs/test-listener/utils.js +0 -68
  74. package/tsOutputs/test-listener/utils.js.map +0 -1
  75. package/tsOutputs/test-listener/watchdog.d.ts +0 -89
  76. package/tsOutputs/test-listener/watchdog.js +0 -128
  77. package/tsOutputs/test-listener/watchdog.js.map +0 -1
@@ -1,130 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IstanbulToFootprintsBase = void 0;
4
- const path = require("path");
5
- const messages_formatter_1 = require("../../common/messages-formatter");
6
- const GLOBAL_ISTANBUL_CONTAINER_NAMES = ['__coverage__'];
7
- function newNumberArray(length) {
8
- const arr = [];
9
- for (let i = 0; i < length; i++)
10
- arr.push(0);
11
- return arr;
12
- }
13
- class IstanbulToFootprintsBase {
14
- constructor(logger) {
15
- this.previousIstanbulCounters = {};
16
- this.relativeModulePaths = {};
17
- this.logger = logger;
18
- }
19
- getIstanbulCounters() {
20
- if (this.globalCoverageContainer)
21
- return this.globalCoverageContainer;
22
- const re = /^\$\$cov_[0-9]+\$\$$/;
23
- const keys = Object.keys(global);
24
- if (this.logger.isDebugEnabled()) {
25
- this.logger.debug('The \'global\' object contains the following keys:\n\t' + keys.join('\n\t'));
26
- }
27
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
28
- for (let i = 0; i < keys.length; i++) {
29
- const k = keys[i];
30
- if ((re.exec(k)) !== null || GLOBAL_ISTANBUL_CONTAINER_NAMES.indexOf(k) >= 0) {
31
- this.globalCoverageContainer = global[k];
32
- return this.globalCoverageContainer;
33
- }
34
- }
35
- return null;
36
- }
37
- getRelativeModulePath(module) {
38
- if (!this.relativeModulePaths[module.path]) {
39
- this.relativeModulePaths[module.path] = path.relative(process.cwd(), module.path).replace(/\\/g, '/');
40
- }
41
- return this.relativeModulePaths[module.path];
42
- }
43
- formatLoc(loc) {
44
- return loc.line + ',' + loc.column;
45
- }
46
- getCurrentFootprints() {
47
- const diff = this.getIstanbulCountersDiff(this.getIstanbulCounters());
48
- return diff;
49
- }
50
- getIstanbulCountersDiff(currentCounters) {
51
- if (!currentCounters) {
52
- this.logger.error('Couldn\'t get istanbul counters, return empty diff.');
53
- return {};
54
- }
55
- const diff = {};
56
- let diffModule = null;
57
- function createModuleForDiff(istanbulModule) {
58
- diffModule = diff[istanbulModule] = { b: {}, f: {}, s: {} };
59
- return diffModule;
60
- }
61
- const prevCounters = this.previousIstanbulCounters;
62
- for (const istanbulModule in currentCounters) {
63
- diffModule = null;
64
- if (!prevCounters[istanbulModule]) {
65
- prevCounters[istanbulModule] = { b: {}, f: {}, s: {} };
66
- }
67
- const prevModule = prevCounters[istanbulModule];
68
- for (const funcId in currentCounters[istanbulModule].f) {
69
- if (prevModule.f[funcId] === undefined) {
70
- prevModule.f[funcId] = 0;
71
- }
72
- const currentFunctionHits = currentCounters[istanbulModule].f[funcId];
73
- const prevFunctionHits = prevModule.f[funcId] || 0;
74
- if (currentFunctionHits > prevFunctionHits) {
75
- //this is a diff
76
- diffModule = diffModule || createModuleForDiff(istanbulModule);
77
- diffModule.f[funcId] = (currentFunctionHits - prevFunctionHits);
78
- prevModule.f[funcId] = currentFunctionHits;
79
- }
80
- }
81
- for (const branchId in currentCounters[istanbulModule].b) {
82
- const currentBranchesHits = currentCounters[istanbulModule].b[branchId];
83
- const prevBranchHits = prevModule.b[branchId];
84
- if (prevBranchHits) {
85
- for (let i = 0, j = currentBranchesHits.length; i < j; i++) {
86
- const currentHits = currentBranchesHits[i], previousHits = prevBranchHits[i] || 0;
87
- if (currentHits > previousHits) {
88
- //this is a diff
89
- diffModule = diffModule || createModuleForDiff(istanbulModule);
90
- diffModule.b[branchId] = diffModule.b[branchId] || newNumberArray(currentBranchesHits.length);
91
- diffModule.b[branchId][i] = currentHits - previousHits;
92
- prevBranchHits[i] = currentHits;
93
- }
94
- }
95
- }
96
- else {
97
- prevModule.b[branchId] = currentBranchesHits.slice();
98
- let branchSetHasHits = false;
99
- for (let i = 0, j = currentBranchesHits.length; i < j && !branchSetHasHits; i++) {
100
- if (currentBranchesHits[i])
101
- branchSetHasHits = true;
102
- }
103
- if (branchSetHasHits) {
104
- diffModule = diffModule || createModuleForDiff(istanbulModule);
105
- diffModule.b[branchId] = currentBranchesHits.slice();
106
- }
107
- }
108
- }
109
- }
110
- this.logDiff(diff);
111
- return diff;
112
- }
113
- logDiff(diff) {
114
- if (!this.logger.isDebugEnabled()) {
115
- return;
116
- }
117
- const modules = Object.keys(diff);
118
- const formatter = new messages_formatter_1.MessagesFormatter();
119
- modules.forEach((module) => {
120
- const methods = diff[module].f || {};
121
- const branches = diff[module].b || {};
122
- const methodsSize = Object.keys(methods).length;
123
- const branchesSize = Object.keys(branches).length;
124
- formatter.addContent(`${module}: ${methodsSize} methods and ${branchesSize} branches`);
125
- });
126
- this.logger.debug(`Found coverage data for ${modules.length} files:\n ${formatter.content}`);
127
- }
128
- }
129
- exports.IstanbulToFootprintsBase = IstanbulToFootprintsBase;
130
- //# sourceMappingURL=istanbul-to-footprints-base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"istanbul-to-footprints-base.js","sourceRoot":"","sources":["../../../test-listener/footprints-process/istanbul-to-footprints-base.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=istanbul-to-footprints-contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"istanbul-to-footprints-contract.js","sourceRoot":"","sources":["../../../test-listener/footprints-process/istanbul-to-footprints-contract.ts"],"names":[],"mappings":""}
@@ -1,272 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IstanbulToFootprintsV3 = void 0;
4
- const istanbul_to_footprints_base_1 = require("./istanbul-to-footprints-base");
5
- const fs = require("fs");
6
- const path = require("path");
7
- const sourceMap = require("source-map");
8
- class IstanbulToFootprintsV3 extends istanbul_to_footprints_base_1.IstanbulToFootprintsBase {
9
- constructor(cfg, logger) {
10
- super(logger);
11
- this.cfg = cfg;
12
- this.totalTests = 0;
13
- if (!logger)
14
- throw new Error('logger is required');
15
- if (!cfg)
16
- throw new Error('cfg is required');
17
- }
18
- resetState() {
19
- this.totalTests = 0;
20
- //Holds the a mapping between a uniqueId for an element in a test, to an index in this elements 'hits' array.
21
- this.eidToHitsIndex = {};
22
- this.uniqueIdToElement = {};
23
- this.testNameToTestData = {};
24
- this.fileNameToAppFile = {};
25
- this.fileToSourceMapConsumer = {};
26
- }
27
- createFootprintsPackageForSending(queuedFootprints, extraData) {
28
- this.resetState();
29
- const result = this.createFootprintsFile(extraData);
30
- const app = result.apps[0]; //We assume single App for now.
31
- const istanbulMaps = this.getIstanbulCounters();
32
- // eslint-disable-next-line @typescript-eslint/no-this-alias
33
- const context = this;
34
- queuedFootprints.forEach(fp => {
35
- const test = this.getOrCreateTestData(fp.testName, fp.executionId, fp.localTime, result);
36
- for (const moduleName in fp.footprints) {
37
- const istanbulModule = fp.footprints[moduleName];
38
- const moduleWithMaps = istanbulMaps[moduleName];
39
- this.logger.debug('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
40
- this.logger.debug(`moduleName: ${moduleName}`);
41
- if (!moduleWithMaps) {
42
- continue;
43
- }
44
- const relPath = this.getRelativeModulePath(moduleWithMaps);
45
- if (!context.fileToSourceMapConsumer[relPath]) {
46
- context.fileToSourceMapConsumer[relPath] = this.readSourceMaps(relPath);
47
- this.logger.debug('Read source maps for file\':' + relPath + '\'');
48
- }
49
- const sourceMap = this.fileToSourceMapConsumer[relPath];
50
- const file = this.getOrCreateFootprintsAppFile(relPath, app);
51
- if (istanbulModule.f) {
52
- for (const funcId in istanbulModule.f) {
53
- const hits = istanbulModule.f[funcId];
54
- if (hits > 0) {
55
- const funcInfo = moduleWithMaps.fnMap[funcId];
56
- let start = funcInfo.loc.start;
57
- if (funcInfo.decl) {
58
- start = funcInfo.decl.start; //For NYC
59
- }
60
- const sourceMapData = this.readSourceMapData(sourceMap, start, relPath);
61
- let filePath = relPath;
62
- if (sourceMapData) {
63
- filePath = sourceMapData.originalFilename;
64
- start = sourceMapData.originalStart;
65
- }
66
- const uniqueId = filePath + '@' + this.formatLoc(start);
67
- const methodElement = this.getOrCreateMethodElement(uniqueId, file);
68
- if (this.cfg.extendedFootprints.value) {
69
- methodElement.funcInfo = JSON.stringify(funcInfo);
70
- methodElement.sourceMapData = JSON.stringify(sourceMapData);
71
- }
72
- this.addOrUpdateElementHits(test, uniqueId, methodElement, hits);
73
- }
74
- }
75
- }
76
- if (istanbulModule.b) {
77
- for (const branchId in istanbulModule.b) {
78
- const ifElseAndSwitchCasesArr = istanbulModule.b[branchId];
79
- const expressionInfo = moduleWithMaps.branchMap[branchId];
80
- for (let idx = 0; idx < ifElseAndSwitchCasesArr.length; idx++) {
81
- const branchInfo = expressionInfo.locations[idx];
82
- const hits = ifElseAndSwitchCasesArr[idx];
83
- if (hits > 0) {
84
- let start = branchInfo.start;
85
- const sourceMapData = this.readSourceMapData(sourceMap, start, relPath);
86
- let filePath = relPath;
87
- if (sourceMapData) {
88
- filePath = sourceMapData.originalFilename;
89
- start = sourceMapData.originalStart;
90
- }
91
- const uniqueId = filePath + '|' + this.formatLoc(start) + '|' + idx;
92
- const branchElement = this.getOrCreateBranchElement(uniqueId, file);
93
- if (this.cfg.extendedFootprints.value) {
94
- branchElement.branchInfo = JSON.stringify(branchInfo);
95
- branchElement.sourceMapData = JSON.stringify(sourceMapData);
96
- }
97
- this.addOrUpdateElementHits(test, uniqueId, branchElement, hits);
98
- }
99
- }
100
- }
101
- }
102
- }
103
- });
104
- return result;
105
- }
106
- addOrUpdateElementHits(testData, elementUniqueId, element, hits) {
107
- const HITS_INDEX = 1;
108
- const eid = elementUniqueId + '|' + testData.index;
109
- const index = this.eidToHitsIndex[eid];
110
- if (index != null) {
111
- const testIndexAndHits = element.hits[index];
112
- let elementHits = testIndexAndHits[HITS_INDEX];
113
- elementHits = elementHits + hits;
114
- testIndexAndHits[HITS_INDEX] = elementHits;
115
- }
116
- else {
117
- const testIndexAndHits = new Array();
118
- testIndexAndHits.push(testData.index);
119
- testIndexAndHits.push(hits);
120
- const length = element.hits.push(testIndexAndHits);
121
- this.eidToHitsIndex[eid] = length - 1;
122
- }
123
- }
124
- getOrCreateTestData(testName, executionId, localTime, result) {
125
- if (!this.testNameToTestData[testName]) {
126
- const test = {
127
- executionId: executionId,
128
- localTime: localTime,
129
- testName: testName
130
- };
131
- result.tests.push(test);
132
- this.testNameToTestData[testName] = {
133
- index: this.totalTests++,
134
- test: test
135
- };
136
- }
137
- return this.testNameToTestData[testName];
138
- }
139
- getOrCreateMethodElement(uniqueId, file) {
140
- if (!this.uniqueIdToElement[uniqueId]) {
141
- const x = {
142
- hits: new Array(),
143
- uniqueId: uniqueId
144
- };
145
- this.uniqueIdToElement[uniqueId] = x;
146
- file.methods.push(x);
147
- }
148
- return this.uniqueIdToElement[uniqueId];
149
- }
150
- getOrCreateBranchElement(uniqueId, file) {
151
- if (!this.uniqueIdToElement[uniqueId]) {
152
- const x = {
153
- hits: new Array(),
154
- uniqueId: uniqueId
155
- };
156
- this.uniqueIdToElement[uniqueId] = x;
157
- file.branches.push(x);
158
- }
159
- return this.uniqueIdToElement[uniqueId];
160
- }
161
- getOrCreateFootprintsAppFile(fileName, app) {
162
- if (this.fileNameToAppFile[fileName]) {
163
- return this.fileNameToAppFile[fileName];
164
- }
165
- //File doesn't exist in request.
166
- const file = {
167
- methods: new Array(),
168
- branches: new Array(),
169
- lines: new Array(),
170
- path: fileName
171
- };
172
- app.files.push(file);
173
- this.fileNameToAppFile[fileName] = file;
174
- return file;
175
- }
176
- createFootprintsFile(extraData) {
177
- //Supporting only one app right now
178
- const app = {
179
- appName: this.cfg.appName.value,
180
- branchName: this.cfg.branch.value,
181
- buildName: this.cfg.build.value,
182
- moduleName: null,
183
- files: new Array()
184
- };
185
- extraData.apps.push(app);
186
- return extraData;
187
- }
188
- readSourceMaps(fullFilename) {
189
- if (!fullFilename)
190
- return;
191
- const sourceMapsFilename = fullFilename + '.map';
192
- let contents, rawSourceMapJsonData, consumer;
193
- try {
194
- contents = fs.readFileSync(sourceMapsFilename).toString();
195
- }
196
- catch (e) {
197
- //Sourcemap file not found
198
- return null;
199
- }
200
- try {
201
- rawSourceMapJsonData = JSON.parse(contents);
202
- }
203
- catch (e) {
204
- console.error('[Sealights] Ignoring invalid source map: ' + sourceMapsFilename);
205
- return null;
206
- }
207
- try {
208
- //console.log('Procssing source maps from file: '+sourceMapsFilename);
209
- consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData);
210
- return consumer;
211
- }
212
- catch (e) {
213
- console.error('[Sealights] Error processing source maps for file: ' + sourceMapsFilename);
214
- return null;
215
- }
216
- }
217
- readSourceMapData(sourceMaps, start, coveragePath) {
218
- if (!sourceMaps)
219
- return null;
220
- try {
221
- //console.log('Checking original position for '+name+' at'+JSON.stringify(start));
222
- const originalPosition = sourceMaps.originalPositionFor(start); //{ line: start.line, column: start[1] });
223
- //console.log('Original position: '+JSON.stringify(originalPosition));
224
- if (originalPosition && originalPosition.source && originalPosition.line !== null && originalPosition.column !== null) {
225
- let originalFilename = originalPosition.source;
226
- if (originalFilename.indexOf('webpack:///webpack/') === -1 &&
227
- originalFilename.indexOf('webpack:///external') === -1) { //Ignore embedded and external module
228
- if (originalFilename.indexOf('webpack:///') === 0) {
229
- originalFilename = originalFilename.substring(11); //'webpack:///'.length
230
- }
231
- originalFilename = this.fixRelPath(coveragePath, originalFilename);
232
- const originalStart = { line: originalPosition.line, column: originalPosition.column };
233
- const result = { originalFilename: originalFilename, originalStart: originalStart };
234
- return result;
235
- }
236
- }
237
- }
238
- catch (e) {
239
- console.error(e);
240
- }
241
- return null;
242
- }
243
- fixRelPath(p1, p2) {
244
- try {
245
- if (!p1 || p1.length == 0)
246
- return p1;
247
- if (!p2 || p2.length == 0)
248
- return p1;
249
- //Make sure both paths are unix-style
250
- p1 = this.adjustPathSlashes(p1);
251
- p2 = this.adjustPathSlashes(p2);
252
- if (p2[0] == '/')
253
- return p2; //Absolute path
254
- const parts1 = p1.split('/');
255
- parts1.pop(); //remove the filename
256
- const parts2 = p2.split('/');
257
- const p3 = parts1.concat(parts2);
258
- const finalPath = this.adjustPathSlashes(path.normalize(p3.join('/')));
259
- return finalPath;
260
- }
261
- catch (err) {
262
- //log.error("Failed to fix real path for source maps. Error: " + err + ". Original File Name: " + p1 + ". Function: " + p2);
263
- return p2;
264
- }
265
- }
266
- adjustPathSlashes(filePath) {
267
- filePath = (filePath || '').replace(/\\/g, '/');
268
- return filePath;
269
- }
270
- }
271
- exports.IstanbulToFootprintsV3 = IstanbulToFootprintsV3;
272
- //# sourceMappingURL=istanbul-to-footprints-v3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"istanbul-to-footprints-v3.js","sourceRoot":"","sources":["../../../test-listener/footprints-process/istanbul-to-footprints-v3.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Queue = void 0;
4
- const events = require("events");
5
- class Queue extends events.EventEmitter {
6
- constructor() {
7
- super(...arguments);
8
- this.queue = [];
9
- this.maxItemsInQueue = 1000;
10
- }
11
- requeue(items) {
12
- if (!items || !items.length)
13
- return;
14
- this.queue = items.concat(this.queue);
15
- }
16
- enqueue(item) {
17
- this.queue.push(item);
18
- if (this.maxItemsInQueue == this.queue.length) {
19
- this.emit('full');
20
- }
21
- }
22
- getQueueSize() {
23
- return this.queue.length;
24
- }
25
- dequeue(size) {
26
- if (size == 0)
27
- size = this.queue.length; //dequeue all
28
- if (this.queue.length == 0)
29
- return [];
30
- if (size > this.queue.length)
31
- size = this.queue.length;
32
- const dequeuedItems = this.queue.splice(0, size);
33
- return dequeuedItems;
34
- }
35
- clear() {
36
- this.queue = [];
37
- }
38
- }
39
- exports.Queue = Queue;
40
- //# sourceMappingURL=queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../test-listener/queue.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAClC,MAAa,KAAS,SAAQ,MAAM,CAAC,YAAY;IAAjD;;QAaY,UAAK,GAAQ,EAAE,CAAC;QAChB,oBAAe,GAAW,IAAI,CAAC;IAmB3C,CAAC;IAhCU,OAAO,CAAC,KAAU;QACrB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,OAAO,CAAC,IAAO;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC;YACzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACrB;IACL,CAAC;IAKM,YAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAEM,OAAO,CAAC,IAAY;QACvB,IAAI,IAAI,IAAI,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa;QACtD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAE7B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;CACJ;AAjCD,sBAiCC"}
@@ -1,143 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StateTrackerProcess = void 0;
4
- const events = require("events");
5
- const timers_1 = require("timers");
6
- const sl_env_vars_1 = require("../../common/constants/sl-env-vars");
7
- const INITIAL_COLOR = '00000000-0000-0000-0000-000000000000/__init';
8
- class StateTrackerProcess extends events.EventEmitter {
9
- constructor(cfg, configProcess, stateTrackerProxy, checkTestStatusWatchdog, logger) {
10
- super();
11
- this.cfg = cfg;
12
- this.configProcess = configProcess;
13
- this.stateTrackerProxy = stateTrackerProxy;
14
- this.checkTestStatusWatchdog = checkTestStatusWatchdog;
15
- this.logger = logger;
16
- this.currentTestIdentifier = null;
17
- this._hasAnonymousMappingAtServer = false;
18
- this.isRunning = false;
19
- if (!cfg) {
20
- throw new Error('cfg is required');
21
- }
22
- if (!configProcess) {
23
- throw new Error('configProcess is required');
24
- }
25
- if (!stateTrackerProxy) {
26
- throw new Error('stateTrackerProxy is required');
27
- }
28
- if (!checkTestStatusWatchdog) {
29
- throw new Error('checkTestStatusWatchdog is required');
30
- }
31
- if (!logger) {
32
- throw new Error('logger is required');
33
- }
34
- if (this.cfg.useInitialColor.value && this.currentTestIdentifier == null) {
35
- this.switchToAnonFootprints();
36
- }
37
- configProcess.on('configuration_changed', (newCfg) => {
38
- if (newCfg.useInitialColor.value && this.currentTestIdentifier == null) {
39
- this.switchToAnonFootprints();
40
- }
41
- this.cfg = newCfg;
42
- });
43
- this.startCheckingTestStatusAtServer();
44
- }
45
- startCheckingTestStatusAtServer() {
46
- if (sl_env_vars_1.SlEnvVars.inProductionListenerMode()) {
47
- this.logger.debug('In production listener, no need to check test status in server');
48
- return;
49
- }
50
- this.checkTestStatusWatchdog.on('alarm', () => {
51
- this.checkTestStatusAtServer();
52
- });
53
- //Invoke it directly after the CTOR ends.
54
- (0, timers_1.setTimeout)(() => { this.checkTestStatusAtServer(); }, 0);
55
- }
56
- checkTestStatusAtServer() {
57
- if (this.currentTestIdentifier == INITIAL_COLOR) {
58
- //check if there is still a mapping
59
- this.stateTrackerProxy.checkMappingStatus((err, hasMapping) => {
60
- if (err) {
61
- this.logger.warn(`Error while checking test execution status ${err}`);
62
- }
63
- else { //Agent was in "initial color" and now the server returns that the mapping is no longer active
64
- this._hasAnonymousMappingAtServer = hasMapping;
65
- }
66
- });
67
- }
68
- else {
69
- this.logger.info('\'currentTestIdentifier\' is null. That means that footprints will not be sent.');
70
- }
71
- }
72
- hasAnonymousMappingAtServer() {
73
- return this._hasAnonymousMappingAtServer;
74
- }
75
- isAnonymousColor(testIdentifier) {
76
- return INITIAL_COLOR == testIdentifier;
77
- }
78
- switchToAnonFootprints() {
79
- this.logger.info('Switching to anonymous footprints.');
80
- this.setTestIdentifier(INITIAL_COLOR, false);
81
- }
82
- getCurrentTestIdentifier() {
83
- return this.currentTestIdentifier;
84
- }
85
- setTestIdentifier(newTestIdentifier, silent) {
86
- this.logger.info('setting test identifier: ' + newTestIdentifier);
87
- if ((this.currentTestIdentifier == null) && (newTestIdentifier != null) || (this.currentTestIdentifier != null && this.currentTestIdentifier != newTestIdentifier && newTestIdentifier != INITIAL_COLOR)) {
88
- const previousTestIdentifier = this.currentTestIdentifier;
89
- this.currentTestIdentifier = newTestIdentifier;
90
- if (this.isRunning) {
91
- if (!silent) {
92
- this.emit('test_identifier_changed', this.currentTestIdentifier, previousTestIdentifier);
93
- }
94
- else {
95
- this.logger.info('Test identifier changed, running in silent mode not enqueuing footprints');
96
- }
97
- this.checkTestStatusWatchdog.reset();
98
- }
99
- }
100
- else {
101
- this.logger.info('Not setting the color. newTestIdentifier is \'' + newTestIdentifier + '\' ' + 'and currentTestIdentifier is \'' + this.currentTestIdentifier + '\'');
102
- }
103
- }
104
- start() {
105
- if (this.isRunning) {
106
- return;
107
- }
108
- this.checkTestStatusWatchdog.start();
109
- this.isRunning = true;
110
- }
111
- stop(callback) {
112
- try {
113
- if (!this.isRunning) {
114
- return callback();
115
- }
116
- this.checkTestStatusWatchdog.stop();
117
- this.isRunning = false;
118
- callback();
119
- }
120
- catch (err) {
121
- //TODO: log
122
- return callback();
123
- }
124
- }
125
- static splitTestIdToExecutionAndTestName(testId) {
126
- testId = testId || '';
127
- const executionId = testId.split('/')[0];
128
- let testName = (testId.indexOf('/') == -1) ? '' : testId.substring(executionId.length + 1);
129
- if (!executionId) {
130
- testName = '';
131
- }
132
- return { executionId: executionId, testName: testName };
133
- }
134
- static combineExecutionIdAndTestName(executionId, testName) {
135
- testName = testName || '';
136
- if (!executionId) {
137
- return '';
138
- }
139
- return executionId + '/' + testName;
140
- }
141
- }
142
- exports.StateTrackerProcess = StateTrackerProcess;
143
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../test-listener/state-tracker-process/index.ts"],"names":[],"mappings":"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"}