slnodejs 6.1.900 → 6.1.906

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 (37) hide show
  1. package/browser-agent/dist/browser-agent-all.js +45 -7
  2. package/browser-agent/dist/browser-agent-all.min.js +3 -3
  3. package/browser-agent/package.json +1 -1
  4. package/package.json +1 -1
  5. package/tsOutputs/build-scanner/build-diff-process.js +198 -141
  6. package/tsOutputs/build-scanner/build-diff-process.js.map +1 -1
  7. package/tsOutputs/build-scanner/js_diff/sl-mapper.js.map +1 -1
  8. package/tsOutputs/cli-parse/cli.js +4 -1
  9. package/tsOutputs/cli-parse/cli.js.map +1 -1
  10. package/tsOutputs/cli-parse/constants/constants.js +3 -2
  11. package/tsOutputs/cli-parse/constants/constants.js.map +1 -1
  12. package/tsOutputs/cli-parse/contracts.d.ts +3 -0
  13. package/tsOutputs/cli-parse/contracts.js.map +1 -1
  14. package/tsOutputs/cli-parse/executors/build-args-dto.js +1 -0
  15. package/tsOutputs/cli-parse/executors/build-args-dto.js.map +1 -1
  16. package/tsOutputs/cli-parse/executors/build-executor.js +17 -1
  17. package/tsOutputs/cli-parse/executors/build-executor.js.map +1 -1
  18. package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js +15 -11
  19. package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js.map +1 -1
  20. package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js +1 -1
  21. package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js.map +1 -1
  22. package/tsOutputs/common/constants/sl-env-vars.d.ts +2 -0
  23. package/tsOutputs/common/constants/sl-env-vars.js +3 -0
  24. package/tsOutputs/common/constants/sl-env-vars.js.map +1 -1
  25. package/tsOutputs/common/http/backend-proxy-interface.d.ts +3 -1
  26. package/tsOutputs/common/http/backend-proxy.d.ts +3 -1
  27. package/tsOutputs/common/http/backend-proxy.js +9 -0
  28. package/tsOutputs/common/http/backend-proxy.js.map +1 -1
  29. package/tsOutputs/common/http/contracts.d.ts +73 -4
  30. package/tsOutputs/common/http/contracts.js +4 -1
  31. package/tsOutputs/common/http/contracts.js.map +1 -1
  32. package/tsOutputs/common/http/dry-run-proxy.js +17 -0
  33. package/tsOutputs/common/http/dry-run-proxy.js.map +1 -1
  34. package/tsOutputs/common/http/sl-routes.d.ts +4 -0
  35. package/tsOutputs/common/http/sl-routes.js +13 -0
  36. package/tsOutputs/common/http/sl-routes.js.map +1 -1
  37. package/tsOutputs/common/scm/contracts.d.ts +71 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sl-browser-agent",
3
- "version": "6.1.900",
3
+ "version": "6.1.906",
4
4
  "description": "le Browser Agent!",
5
5
  "main": "dist/browser-agent-all.js",
6
6
  "browser": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slnodejs",
3
- "version": "6.1.900",
3
+ "version": "6.1.906",
4
4
  "description": "",
5
5
  "main": "tsOutputs/api.js",
6
6
  "workspaces": [
@@ -1,26 +1,42 @@
1
- var Promise = require('promise');
2
- var FilesMapping = require("./js_diff/files-mapping");
3
- var EnsureFilesHandlerService = require("./mappings/ensure-files-handler.service").EnsureFilesHandlerService;
4
- var DryRunFilesMapping = require("./js_diff/dry-run-files-mapping");
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BuildDiffProcess = void 0;
13
+ const fs = require("fs");
14
+ const path = require("path");
15
+ const os = require("os");
16
+ const scm_files_container_1 = require("./scm/scm-files-container");
17
+ const files_container_1 = require("./mappings/files-container");
18
+ const sl_mapper_1 = require("./js_diff/sl-mapper");
19
+ const file_path_fixer_1 = require("./mappings/file-path-fixer");
20
+ const scm_file_fixer_1 = require("./scm/scm-file-fixer");
21
+ const cockpit_notifier_1 = require("../common/agent-events/cockpit-notifier");
22
+ const factory_1 = require("./source-map-eraser/factory");
23
+ // not updated cjs modules
24
+ const FilesMapping = require("./js_diff/files-mapping");
25
+ const EnsureFilesHandlerServiceModule = require("./mappings/ensure-files-handler.service");
26
+ const DryRunFilesMapping = require("./js_diff/dry-run-files-mapping");
27
+ const utils = require("./utils.js");
28
+ const DefaultValuesResolver = require("./default-values-resolver");
29
+ const fileAndFolderUtils = require("./file-and-folder-utils");
30
+ const BrowserInstrumenter = require("./instrumentation/browser-instrumenter");
31
+ const SlEnvModule = require("../common/constants/sl-env-vars");
32
+ const contracts_1 = require("./diagnostic/contracts");
33
+ const system_date_1 = require("../common/system-date");
5
34
  // TODO: Find a way to get version number without relative path
6
35
  // var version = require("../package.json").version;
7
- var version = "1.0.0";
8
- var utils = require('./utils.js');
9
- var os = require("os");
10
- var path = require("path");
11
- var DefaultValuesResolver = require('./default-values-resolver');
12
- var fileAndFolderUtils = require("./file-and-folder-utils");
13
- var BrowserInstrumenter = require('./instrumentation/browser-instrumenter');
14
- var dvr = new DefaultValuesResolver();
15
- var { ScmFilesContainer } = require("./scm/scm-files-container");
16
- var { FilesContainer } = require("./mappings/files-container");
17
- var CiaEnvVars = require("../common/constants/sl-env-vars").SlEnvVars.CIA;
18
- const { BrowserSlMapper, SlMapper, NodeV8RawCoverageSlMapper } = require('./js_diff/sl-mapper');
19
- const { FilePathFixer } = require('./mappings/file-path-fixer');
20
- const { ScmFileFixer } = require('./scm/scm-file-fixer');
21
- const { CockpitNotifier } = require('../common/agent-events/cockpit-notifier');
22
- const { SourceMapEraserFactory } = require('./source-map-eraser/factory');
23
- const fs = require('fs');
36
+ const version = '1.0.0';
37
+ const { EnsureFilesHandlerService } = EnsureFilesHandlerServiceModule;
38
+ const CiaEnvVars = SlEnvModule.SlEnvVars.CIA;
39
+ const dvr = new DefaultValuesResolver();
24
40
  function shouldSubmitSlMapping(buildArguments) {
25
41
  if (!buildArguments.instrumentationOnly) {
26
42
  return true;
@@ -30,18 +46,18 @@ function shouldSubmitSlMapping(buildArguments) {
30
46
  function shouldSubmitNodeV8RawCoverageSlMapper(buildArguments) {
31
47
  return buildArguments.v8Coverage;
32
48
  }
33
- function getSlMapperInstance(buildArguments) {
49
+ function resolveSlMapperInstance(buildArguments, outputPath, backendProxy, logger) {
34
50
  if (buildArguments.useRelativeSlMapping || buildArguments.instrumentForBrowsers) {
35
- return BrowserSlMapper;
51
+ return new sl_mapper_1.BrowserSlMapper(outputPath, backendProxy, buildArguments.buildSessionId, logger);
36
52
  }
37
- return SlMapper;
53
+ return new sl_mapper_1.SlMapper(outputPath, backendProxy, buildArguments.buildSessionId, logger);
38
54
  }
39
55
  function resolveFilePathFixer(handlerParams, buildArguments, slMapper, nodeV8RawCoverageSlMapper, logger) {
40
56
  if (buildArguments.scm === 'git') {
41
- return new ScmFileFixer(handlerParams.filesContainer, slMapper, nodeV8RawCoverageSlMapper, logger, handlerParams.projectRoot, handlerParams.scmRootDir, buildArguments.useModulePrefix, buildArguments.uniqueModuleId, buildArguments.v8Coverage);
57
+ return new scm_file_fixer_1.ScmFileFixer(handlerParams.filesContainer, slMapper, nodeV8RawCoverageSlMapper, logger, handlerParams.projectRoot, handlerParams.scmRootDir, buildArguments.useModulePrefix, buildArguments.uniqueModuleId, buildArguments.v8Coverage);
42
58
  }
43
59
  else {
44
- return new FilePathFixer(handlerParams.filesContainer, slMapper, nodeV8RawCoverageSlMapper, logger, handlerParams.projectRoot, buildArguments.useModulePrefix, buildArguments.uniqueModuleId, buildArguments.v8Coverage);
60
+ return new file_path_fixer_1.FilePathFixer(handlerParams.filesContainer, slMapper, nodeV8RawCoverageSlMapper, logger, handlerParams.projectRoot, buildArguments.useModulePrefix, buildArguments.uniqueModuleId, buildArguments.v8Coverage);
45
61
  }
46
62
  }
47
63
  // TODO: should be moved to ConfigLoader when it will exist in context of scan
@@ -63,63 +79,76 @@ function checkDeprecatedEnvVar(logger) {
63
79
  for (const deprecatedEnvVar of deprecatedEnvVars) {
64
80
  if (process.env[deprecatedEnvVar.key]) {
65
81
  logger.warn(`Deprecated env_var \`${deprecatedEnvVar.key}\` was provided. ${deprecatedEnvVar.message}`);
66
- CockpitNotifier.sendWarning(`Deprecated env_var \`${deprecatedEnvVar.key}\` was provided with value - '${process.env[deprecatedEnvVar.key]}'. ${deprecatedEnvVar.message}`);
82
+ cockpit_notifier_1.CockpitNotifier.sendWarning(`Deprecated env_var \`${deprecatedEnvVar.key}\` was provided with value - '${process.env[deprecatedEnvVar.key]}'. ${deprecatedEnvVar.message}`);
67
83
  }
68
84
  }
69
85
  }
86
+ // TODO: buildArgs not in use
70
87
  function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencies, logger, diagnostic) {
71
- var log = logger.child({
72
- className: "BuildDiffProcess"
88
+ const childLogger = logger.child({
89
+ className: 'BuildDiffProcess'
73
90
  });
74
91
  function createBuildDiffPromiseChain(buildArguments) {
75
92
  parsedDependencies = parsedDependencies || [];
76
- var handlerParams = {
93
+ const handlerParams = {
77
94
  buildArguments: buildArguments,
78
95
  cfg: buildArguments,
79
96
  finalOutput: {
80
97
  meta: createMetaTag(buildArguments),
81
- version: "2.0",
98
+ version: '2.0',
82
99
  files: [],
83
- dependencies: parsedDependencies
84
- }
100
+ dependencies: parsedDependencies,
101
+ includedFiles: [],
102
+ counters: {
103
+ methods: 0,
104
+ branches: 0,
105
+ }
106
+ },
107
+ processedFiles: null,
108
+ fileToCommitsMap: null,
109
+ scmRootDir: null,
110
+ filesContainer: null,
111
+ projectRoot: null,
112
+ filePathFixer: null,
113
+ commitToIndexMap: {},
114
+ emailToIndexMap: {},
85
115
  };
86
- var promiseChain = Promise.resolve();
116
+ let promiseChain = Promise.resolve();
87
117
  // TODO: should be moved to ConfigLoader when it will exist
88
- checkDeprecatedEnvVar(log);
118
+ checkDeprecatedEnvVar(childLogger);
89
119
  if (parsedDependencies.length == 0) { //If there are dependencies, no need to require workspacepath, scm, commit, and no need to perform actual scanning
90
- var scmInstance;
120
+ let scmInstance;
91
121
  if (buildArguments.workspacepath) {
92
- scmInstance = scmFactory.createScmByType(buildArguments.scm, buildArguments, buildArguments.workspacepath);
122
+ scmInstance = scmFactory.createScmByType(buildArguments.scm, buildArguments);
93
123
  if (scmInstance) {
94
124
  handlerParams.finalOutput.meta.scm = buildArguments.scm;
95
- log.info("Created an scmInstance of type '" + buildArguments.scm + "'. Searching for a local repository at '" + buildArguments.workspacepath + "'.");
125
+ childLogger.info(`Created an scmInstance of type '${buildArguments.scm}'. Searching for a local repository at '${buildArguments.workspacepath}'.`);
96
126
  if (!buildArguments.commit && !scmInstance.detectCommitVersion) {
97
- return Promise.reject("'commit' command-line argument is required, since automatic detection by the " + buildArguments.scm + " SCM is not supported");
127
+ return Promise.reject(`'commit' command-line argument is required, since automatic detection by the '${buildArguments.scm}' SCM is not supported`);
98
128
  }
99
129
  }
100
130
  else {
101
- log.warn("Unsupported scm type: '" + buildArguments.scm + "'.");
131
+ childLogger.warn(`Unsupported scm type: '${buildArguments.scm}'.`);
102
132
  }
103
133
  //2. If there is a mapping, get the diffs
104
134
  if (scmInstance) {
105
135
  promiseChain = promiseChain.then(() => collectScmData(buildArguments, handlerParams, scmInstance));
106
136
  }
107
137
  promiseChain = promiseChain.then(function () {
108
- var fileMappingInstance = buildArguments.isDryRunMode ? DryRunFilesMapping : FilesMapping;
109
- var filesMapping = new fileMappingInstance(handlerParams, diagnostic, log, handlerParams.projectRoot);
138
+ const FileMappingInstance = buildArguments.isDryRunMode ? DryRunFilesMapping : FilesMapping;
139
+ const filesMapping = new FileMappingInstance(handlerParams, diagnostic, childLogger, handlerParams.projectRoot);
110
140
  return filesMapping.process();
111
141
  });
112
142
  }
113
143
  }
114
144
  //4. Submit the final output to the server
115
- const slMapperInstance = getSlMapperInstance(buildArguments);
116
145
  let slMapper = null;
117
146
  let nodeV8RawCoverageSlMapper = null;
118
147
  promiseChain = promiseChain.then(function () {
119
- slMapper = new slMapperInstance(CiaEnvVars.getSlMappingPath(), backendProxy, buildArguments.buildSessionId, logger);
120
- nodeV8RawCoverageSlMapper = new NodeV8RawCoverageSlMapper(CiaEnvVars.getSlMappingPath(), backendProxy, buildArguments.buildSessionId, logger);
121
- handlerParams.filePathFixer = resolveFilePathFixer(handlerParams, buildArguments, slMapper, nodeV8RawCoverageSlMapper, logger);
122
- var fixer = new EnsureFilesHandlerService(logger, handlerParams.buildArguments, handlerParams.filesContainer, handlerParams.filePathFixer, handlerParams.scmRootDir, handlerParams.cfg, handlerParams.fileToCommitsMap, diagnostic);
148
+ slMapper = resolveSlMapperInstance(buildArguments, CiaEnvVars.getSlMappingPath(), backendProxy, childLogger);
149
+ nodeV8RawCoverageSlMapper = new sl_mapper_1.NodeV8RawCoverageSlMapper(CiaEnvVars.getSlMappingPath(), backendProxy, buildArguments.buildSessionId, childLogger);
150
+ handlerParams.filePathFixer = resolveFilePathFixer(handlerParams, buildArguments, slMapper, nodeV8RawCoverageSlMapper, childLogger);
151
+ const fixer = new EnsureFilesHandlerService(childLogger, handlerParams.buildArguments, handlerParams.filesContainer, handlerParams.filePathFixer, handlerParams.scmRootDir, handlerParams.cfg, handlerParams.fileToCommitsMap, diagnostic);
123
152
  const result = fixer.ensureProcess(handlerParams.finalOutput);
124
153
  handlerParams.finalOutput = result.output;
125
154
  if (buildArguments.awsConfigure) {
@@ -131,26 +160,21 @@ function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencie
131
160
  slMapping: slMapping
132
161
  }, null, 2));
133
162
  }
134
- // if (buildArguments.instrumentForBrowsers) {
135
- // promiseChain = promiseChain.then(function () {
136
- // return submitSlMapping(promiseChain, slMapper, buildArguments.uniqueModuleId, logger)
137
- // })
138
- // }
139
163
  if (buildArguments.instrumentationOnly) {
140
- log.info("No need to submit the files to server as the 'instrumentationOnly' flag is on.");
164
+ childLogger.info('No need to submit the files to server as the \'instrumentationOnly\' flag is on.');
141
165
  return Promise.resolve();
142
166
  }
143
167
  else {
144
168
  //TODO: [SLDEV-4708] When the call to the server fails, the agent is "silent" and not showing any error message.
145
- return backendProxy.submitBuildMapping(handlerParams.finalOutput);
169
+ return submitBuildMapping(buildArguments, handlerParams.finalOutput);
146
170
  }
147
171
  });
148
172
  //5. Print the counters
149
173
  promiseChain = promiseChain.then(function () {
150
- var mapping = handlerParams.finalOutput;
174
+ const mapping = handlerParams.finalOutput;
151
175
  const counters = countElements(mapping.files);
152
176
  if (!buildArguments.isDryRunMode) {
153
- log.lifecycle("Scanned " + counters.methods + " methods and " + counters.branches + " branches in " + counters.files + " files.");
177
+ childLogger.lifecycle(`Scanned ${counters.methods} methods and ${counters.branches} branches in ${counters.files} files.`);
154
178
  }
155
179
  });
156
180
  if (shouldSubmitSlMapping(buildArguments)) {
@@ -168,7 +192,7 @@ function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencie
168
192
  });
169
193
  // delete source maps if required
170
194
  if (buildArguments.excludeSourceMapFiles) {
171
- const sourceMapsEraser = SourceMapEraserFactory.createSourceMapEraserByMode(buildArguments.excludeSourceMapFiles, logger, buildArguments.workspacepath);
195
+ const sourceMapsEraser = factory_1.SourceMapEraserFactory.createSourceMapEraserByMode(buildArguments.excludeSourceMapFiles, childLogger, buildArguments.workspacepath);
172
196
  promiseChain = promiseChain.then(function () {
173
197
  return sourceMapsEraser.remove();
174
198
  });
@@ -179,25 +203,25 @@ function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencie
179
203
  if (handlerParams.finalOutput && handlerParams.finalOutput.files && !buildArguments.isDryRunMode) {
180
204
  delete handlerParams.finalOutput.files;
181
205
  }
182
- var promise = new Promise(function (resolve, reject) {
183
- var resolveWithoutHash = true;
184
- var delayShutdownInSeconds = buildArguments.delayShutdownInSeconds || 30;
185
- var downloadAgent = buildArguments.downloadAgent != null ? buildArguments.downloadAgent : true;
206
+ const promise = new Promise(function (resolve, reject) {
207
+ const resolveWithoutHash = true;
208
+ const delayShutdownInSeconds = buildArguments.delayShutdownInSeconds || 30;
209
+ const downloadAgent = buildArguments.downloadAgent != null ? buildArguments.downloadAgent : true;
186
210
  // TODO - is there any reason not to copy buildArguments as is an override specific fields which require logic?
187
- var instrumentationConfig = {
211
+ const instrumentationConfig = {
188
212
  appName: buildArguments.appname,
189
213
  build: buildArguments.build,
190
214
  customerId: buildArguments.customerId,
191
215
  branch: buildArguments.branch,
192
216
  sourceRoot: buildArguments.workspacepath,
193
- files: getProcessedFiles(buildArguments, handlerParams.processedFiles, logger),
217
+ files: getProcessedFiles(buildArguments, childLogger),
194
218
  outputPath: buildArguments.outputpath,
195
219
  copyAllFilesToOutput: buildArguments.copyAllFilesToOutput !== false,
196
220
  buildSessionId: buildArguments.buildSessionId,
197
- esModules: buildArguments["es6Modules"],
221
+ esModules: buildArguments['es6Modules'],
198
222
  server: buildArguments.server,
199
223
  token: buildArguments.token,
200
- instrumentationType: "browser",
224
+ instrumentationType: 'browser',
201
225
  resolveWithoutHash: resolveWithoutHash,
202
226
  delayShutdownInSeconds: delayShutdownInSeconds,
203
227
  downloadAgent: downloadAgent,
@@ -217,21 +241,21 @@ function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencie
217
241
  experimentalSizeReduction: buildArguments.experimentalSizeReduction,
218
242
  newInstrumenter: buildArguments.newInstrumenter,
219
243
  };
220
- log.info(`'instrumentForBrowsers' flag is on. Starting instrumentation. Instrumentation config: ${instrumentationConfig}`);
221
- var callback = function (err, processedFiles) {
244
+ childLogger.info(`'instrumentForBrowsers' flag is on. Starting instrumentation. Instrumentation config: ${instrumentationConfig}`);
245
+ const callback = function (err, processedFiles) {
222
246
  if (buildArguments.isDryRunMode) {
223
247
  return resolve({ err: err, processedFiles: processedFiles });
224
248
  }
225
249
  else if (err) {
226
- log.info(`Finished the instrumentation with an error. Error: ${err}`);
250
+ childLogger.info(`Finished the instrumentation with an error. Error: ${err}`);
227
251
  reject(err);
228
252
  }
229
253
  else {
230
- log.info("Finished the instrumentation successfully");
231
- return resolve();
254
+ childLogger.info('Finished the instrumentation successfully');
255
+ return resolve(null);
232
256
  }
233
257
  };
234
- runBrowserInstrumentation(log, instrumentationConfig, callback, slMapper);
258
+ runBrowserInstrumentation(childLogger, instrumentationConfig, callback, slMapper);
235
259
  });
236
260
  return promise;
237
261
  });
@@ -239,36 +263,36 @@ function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencie
239
263
  return promiseChain;
240
264
  }
241
265
  function collectScmData(buildArguments, handlerParams, scmInstance) {
242
- var promiseChain = Promise.resolve();
266
+ let promiseChain = Promise.resolve();
243
267
  //2.1 Get repository url from the SCM
244
268
  promiseChain = promiseChain.then(function () {
245
- log.info("Getting repository URL.");
269
+ childLogger.info('Getting repository URL.');
246
270
  return getRepositoryUrl(handlerParams, scmInstance);
247
271
  });
248
272
  //2.2 Get all contributors from the scm
249
273
  if (buildArguments.sendContributors) {
250
274
  promiseChain = promiseChain.then(function () {
251
- log.info("Getting contributors.");
275
+ childLogger.info('Getting contributors.');
252
276
  return getContributors(handlerParams, scmInstance);
253
277
  });
254
278
  }
255
279
  //2.3 Get branch history from the SCM
256
280
  promiseChain = promiseChain.then(function () {
257
- log.info("Loading branch history.");
281
+ childLogger.info('Loading branch history.');
258
282
  return loadBranchHistory(handlerParams, scmInstance);
259
283
  });
260
284
  //2.4 Get all commits effected each file
261
285
  if (buildArguments.sendContributors) {
262
286
  promiseChain = promiseChain.then(function (mapping) {
263
- log.info("Getting commits per file.");
287
+ childLogger.info('Getting commits per file.');
264
288
  return getCommitsPerFile(handlerParams, scmInstance);
265
289
  });
266
290
  }
267
291
  //2.5 if commit was not specified, automatically detect it
268
292
  if (!buildArguments.commit) {
269
293
  promiseChain = promiseChain.then(function () {
270
- log.info("Couldn't find a 'commit' on the 'buildArguments'. Trying to detect the commit version.");
271
- return scmInstance.detectCommitVersion(handlerParams, log).then(function (commit) {
294
+ childLogger.info(`Couldn't find a 'commit' on the 'buildArguments'. Trying to detect the commit version.`);
295
+ return scmInstance.detectCommitVersion(handlerParams, childLogger).then(function (commit) {
272
296
  if (commit) {
273
297
  handlerParams.finalOutput.meta.commit = commit;
274
298
  }
@@ -277,19 +301,19 @@ function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencie
277
301
  }
278
302
  //2.6 Find repository root directory
279
303
  promiseChain = promiseChain.then(function () {
280
- return scmInstance.getRootDirectory(handlerParams, log).then(function (rootDir) {
304
+ return scmInstance.getRootDirectory(handlerParams, childLogger).then(function (rootDir) {
281
305
  handlerParams.scmRootDir = rootDir;
282
- handlerParams.projectRoot = resolveProjectRoot(logger, diagnostic, buildArguments.projectRoot, handlerParams.scmRootDir);
306
+ handlerParams.projectRoot = resolveProjectRoot(childLogger, diagnostic, buildArguments.projectRoot, handlerParams.scmRootDir);
283
307
  });
284
308
  });
285
309
  //2.6 Get list of all files in git or fs
286
310
  promiseChain = promiseChain.then(function () {
287
- return scmInstance.getFiles(handlerParams, log).then(function (scmFiles) {
311
+ return scmInstance.getFiles(handlerParams, childLogger).then(function (scmFiles) {
288
312
  if (scmFiles && Array.isArray(scmFiles)) {
289
- return ScmFilesContainer.createWithFiles(logger, scmFiles);
313
+ return scm_files_container_1.ScmFilesContainer.createWithFiles(childLogger, scmFiles);
290
314
  }
291
315
  else {
292
- return FilesContainer.create(logger, handlerParams.projectRoot, buildArguments.excludedFiles);
316
+ return files_container_1.FilesContainer.create(childLogger, handlerParams.projectRoot, buildArguments.excludedFiles);
293
317
  }
294
318
  })
295
319
  .then(filesContainer => {
@@ -298,112 +322,146 @@ function BuildDiffProcess(buildArgs, backendProxy, scmFactory, parsedDependencie
298
322
  });
299
323
  // Get additional git details, like current branch and open branches if additionalGitDetails is enabled
300
324
  if (buildArguments.additionalGitDetails) {
301
- handlerParams.finalOutput.meta.additionalGitDetails = {};
325
+ handlerParams.finalOutput.meta.additionalGitDetails = {
326
+ currentBranch: null,
327
+ openBranches: null,
328
+ submodules: null,
329
+ };
302
330
  promiseChain = promiseChain.then(function () {
303
- return scmInstance.getCurrentGitBranch(handlerParams, log).then(function (currentBranch) {
331
+ return scmInstance.getCurrentGitBranch(handlerParams, childLogger).then(function (currentBranch) {
304
332
  handlerParams.finalOutput.meta.additionalGitDetails.currentBranch = currentBranch;
305
333
  });
306
334
  });
307
335
  promiseChain = promiseChain.then(function () {
308
- return scmInstance.getOpenGitBranches(handlerParams, log).then(function (openBranches) {
336
+ return scmInstance.getOpenGitBranches(handlerParams, childLogger).then(function (openBranches) {
309
337
  handlerParams.finalOutput.meta.additionalGitDetails.openBranches = openBranches;
310
338
  });
311
339
  });
312
340
  // Check if workflow includes git submodules
313
341
  promiseChain = promiseChain.then(function () {
314
- return scmInstance.getGitSubmodules(handlerParams, log).then(function (submodules) {
342
+ return scmInstance.getGitSubmodules(handlerParams, childLogger).then(function (submodules) {
315
343
  handlerParams.finalOutput.meta.additionalGitDetails.submodules = submodules;
316
344
  });
317
345
  });
318
346
  }
319
347
  return promiseChain;
320
348
  }
349
+ function submitBuildMapping(buildArguments, finalOutput) {
350
+ return __awaiter(this, void 0, void 0, function* () {
351
+ if (!buildArguments.partialBuildMapping || buildArguments.partialBuildMapping === 0) {
352
+ return backendProxy.submitBuildMapping(finalOutput);
353
+ }
354
+ const startTime = (0, system_date_1.getSystemDate)();
355
+ const chunkSize = buildArguments.partialBuildMapping;
356
+ const files = clone(finalOutput.files);
357
+ const staticPart = clone(finalOutput);
358
+ staticPart.files = [];
359
+ let partNumber = 1;
360
+ for (let i = 0; i < files.length; i += chunkSize, partNumber += 1) {
361
+ const filesToSend = files.slice(i, i + chunkSize);
362
+ const chunk = Object.assign(Object.assign({}, staticPart), { files: filesToSend });
363
+ chunk.meta.partId = partNumber;
364
+ yield backendProxy.submitPartialBuildMapping(chunk, buildArguments.agentId, buildArguments.buildSessionId, partNumber.toString());
365
+ }
366
+ const endTime = (0, system_date_1.getSystemDate)();
367
+ return backendProxy.submitBuildMappingEnd({
368
+ agentId: buildArguments.agentId,
369
+ status: {
370
+ success: true,
371
+ message: 'success',
372
+ duration: endTime.getTime() - startTime.getTime(),
373
+ },
374
+ labId: buildArguments.labId,
375
+ partsCount: partNumber - 1,
376
+ }, buildArguments.buildSessionId);
377
+ });
378
+ }
321
379
  this.run = function run(buildArguments) {
322
380
  return createBuildDiffPromiseChain(buildArguments);
323
381
  };
324
- function runBrowserInstrumentation(log, instrumentationConfig, callback, slMapper) {
325
- log.info("Running browser instrumentation.");
382
+ function runBrowserInstrumentation(logger, instrumentationConfig, callback, slMapper) {
383
+ logger.info('Running browser instrumentation.');
326
384
  instrumentationConfig.extensionsToInstrument = dvr.getFileExtensions();
327
- var bi = new BrowserInstrumenter(instrumentationConfig, log, slMapper);
385
+ const bi = new BrowserInstrumenter(instrumentationConfig, logger, slMapper);
328
386
  bi.instrument(callback);
329
387
  }
330
388
  function loadBranchHistory(handlerParams, scmInstance) {
331
- return scmInstance.getBranchHistory(handlerParams, log).then(function (gitLog) {
389
+ return scmInstance.getBranchHistory(handlerParams, childLogger).then(function (gitLog) {
332
390
  if (gitLog && gitLog.commitHistory && gitLog.commitHistory.length && gitLog.commitLog && gitLog.commitLog.length) {
333
- log.info('Branch history loaded (' + gitLog.commitHistory.length + ' commits)');
391
+ childLogger.info('Branch history loaded (' + gitLog.commitHistory.length + ' commits)');
334
392
  handlerParams.finalOutput.meta.history = gitLog.commitHistory;
335
393
  handlerParams.finalOutput.meta.commitLog = gitLog.commitLog;
336
394
  }
337
395
  else {
338
- logBranchHistoryNotFound(gitLog, log);
396
+ logBranchHistoryNotFound(gitLog, childLogger);
339
397
  }
340
- return loadCommitIndexMap(gitLog, handlerParams, log);
398
+ return loadCommitIndexMap(gitLog, handlerParams, childLogger);
341
399
  });
342
400
  }
343
401
  function getRepositoryUrl(handlerParams, scmInstance) {
344
- return scmInstance.getRepositoryUrl(handlerParams, log).then(function (repositoryUrl) {
402
+ return scmInstance.getRepositoryUrl(handlerParams, childLogger).then(function (repositoryUrl) {
345
403
  if (repositoryUrl) {
346
- log.info('Repository Url loaded (' + repositoryUrl + ')');
404
+ childLogger.info('Repository Url loaded (' + repositoryUrl + ')');
347
405
  handlerParams.finalOutput.meta.repositoryUrl = repositoryUrl;
348
406
  }
349
407
  return repositoryUrl;
350
408
  });
351
409
  }
352
410
  function getContributors(handlerParams, scmInstance) {
353
- return scmInstance.getContributors(handlerParams, log).then(function (contributorsLog) {
411
+ return scmInstance.getContributors(handlerParams, childLogger).then(function (contributorsLog) {
354
412
  if (contributorsLog && contributorsLog.contributors && contributorsLog.emailToIndexMap) {
355
- log.info('Contributors list loaded (' + contributorsLog.contributors.length + ' contributors)');
413
+ childLogger.info('Contributors list loaded (' + contributorsLog.contributors.length + ' contributors)');
356
414
  handlerParams.finalOutput.meta.contributors = contributorsLog.contributors;
357
415
  handlerParams.emailToIndexMap = contributorsLog.emailToIndexMap;
358
416
  }
359
417
  else {
360
- logContributorsNotFound(contributorsLog, log);
418
+ logContributorsNotFound(contributorsLog, childLogger);
361
419
  }
362
420
  return contributorsLog;
363
421
  });
364
422
  }
365
423
  function getCommitsPerFile(handlerParams, scmInstance) {
366
- return scmInstance.getCommitsPerFile(handlerParams, log).then(function (fileToCommitsMap) {
424
+ return scmInstance.getCommitsPerFile(handlerParams, childLogger).then(function (fileToCommitsMap) {
367
425
  if (fileToCommitsMap != null) {
368
- log.info('File commit map loaded (' + Object.keys(fileToCommitsMap).length + ' records)');
426
+ childLogger.info('File commit map loaded (' + Object.keys(fileToCommitsMap).length + ' records)');
369
427
  handlerParams.fileToCommitsMap = fileToCommitsMap;
370
428
  }
371
429
  else {
372
- log.error("Commits map is null or undefined.");
430
+ childLogger.error('Commits map is null or undefined.');
373
431
  }
374
432
  return fileToCommitsMap;
375
433
  });
376
434
  }
377
435
  }
378
- function logContributorsNotFound(contributorsLog, log) {
379
- var fieldsMap = {
436
+ exports.BuildDiffProcess = BuildDiffProcess;
437
+ function logContributorsNotFound(contributorsLog, logger) {
438
+ const fieldsMap = {
380
439
  contributorsLog: !contributorsLog,
381
440
  contributors: contributorsLog && !contributorsLog.contributors,
382
441
  emailToIndexMap: contributorsLog && !contributorsLog.emailToIndexMap
383
442
  };
384
- var missing = utils.getMissingProperties(fieldsMap);
385
- log.error("Contributors list not loaded, missing fields: " + missing);
443
+ const missing = utils.getMissingProperties(fieldsMap);
444
+ logger.error(`Contributors list not loaded, missing fields: ${missing}`);
386
445
  }
387
- function logBranchHistoryNotFound(gitLog, log) {
388
- var fieldsMap = {
446
+ function logBranchHistoryNotFound(gitLog, logger) {
447
+ const fieldsMap = {
389
448
  gitLog: !gitLog,
390
449
  commitHistory: gitLog && !gitLog.commitHistory,
391
450
  commitHistoryLength: gitLog && gitLog.commitHistory && !gitLog.commitHistory.length,
392
451
  commitLog: gitLog && !gitLog.commitLog,
393
452
  commitLogLength: gitLog && gitLog.commitLog && !gitLog.commitLog.length
394
453
  };
395
- var missing = utils.getMissingProperties(fieldsMap);
396
- log.error("Branch history not loaded, missing fields: " + missing);
454
+ const missing = utils.getMissingProperties(fieldsMap);
455
+ logger.error(`Branch history not loaded, missing fields: ${missing}`);
397
456
  }
398
457
  function clone(o) {
399
- //if (!o) return o; //Unreachable
400
458
  return JSON.parse(JSON.stringify(o));
401
459
  }
402
- var getProcessedFiles = function (buildArguments, processedFiles, logger) {
403
- var folderToScan = buildArguments.workspacepath;
460
+ function getProcessedFiles(buildArguments, logger) {
461
+ const folderToScan = buildArguments.workspacepath;
404
462
  return fileAndFolderUtils.scanDirRecursively(folderToScan, logger);
405
- };
406
- var loadCommitIndexMap = function (gitLog, handlerParams, log) {
463
+ }
464
+ function loadCommitIndexMap(gitLog, handlerParams, logger) {
407
465
  if (!handlerParams.buildArguments.sendContributors) {
408
466
  return gitLog;
409
467
  }
@@ -411,23 +469,22 @@ var loadCommitIndexMap = function (gitLog, handlerParams, log) {
411
469
  handlerParams.commitToIndexMap = gitLog.commitToIndexMap;
412
470
  }
413
471
  else {
414
- log.error("Commit log index map not loaded");
472
+ logger.error('Commit log index map not loaded');
415
473
  }
416
474
  return gitLog;
417
- };
475
+ }
418
476
  function createMetaTag(buildArguments) {
419
477
  return {
420
- "generated": new Date().valueOf(),
421
- "build": buildArguments.build,
422
- "commit": buildArguments.commit,
423
- "customerId": buildArguments.customerId,
424
- "appName": buildArguments.appname,
425
- //"technologies": "nodejs",
426
- "technology": "nodejs",
427
- "branch": buildArguments.branch,
428
- "environment": {
478
+ generated: (0, system_date_1.getSystemDate)().valueOf(),
479
+ build: buildArguments.build,
480
+ commit: buildArguments.commit,
481
+ customerId: buildArguments.customerId,
482
+ appName: buildArguments.appname,
483
+ technology: 'nodejs',
484
+ branch: buildArguments.branch,
485
+ environment: {
429
486
  agentVersion: version,
430
- agentType: "nodeJsBuildScanner",
487
+ agentType: 'nodeJsBuildScanner',
431
488
  processArgv: process.argv,
432
489
  machineName: os.hostname(),
433
490
  platform: os.platform(),
@@ -439,16 +496,17 @@ function createMetaTag(buildArguments) {
439
496
  dependencies: clone(process.versions),
440
497
  runtime: process.version
441
498
  },
442
- "authors": buildArguments.author,
443
- "logsUrl": buildArguments.logsUrl,
444
- "jobName": buildArguments.jobName,
445
- "moduleName": buildArguments.uniqueModuleId,
446
- "uniqueModuleId": buildArguments.uniqueModuleId,
447
- "configurationData": buildArguments,
448
- "scmProvider": buildArguments.scmProvider,
449
- "scmVersion": buildArguments.scmVersion,
450
- "scmBaseUrl": buildArguments.scmBaseUrl,
451
- "buildSessionId": buildArguments.buildSessionId
499
+ authors: buildArguments.author,
500
+ logsUrl: buildArguments.logsUrl,
501
+ jobName: buildArguments.jobName,
502
+ moduleName: buildArguments.uniqueModuleId,
503
+ uniqueModuleId: buildArguments.uniqueModuleId,
504
+ configurationData: buildArguments,
505
+ scmProvider: buildArguments.scmProvider,
506
+ scmVersion: buildArguments.scmVersion,
507
+ scmBaseUrl: buildArguments.scmBaseUrl,
508
+ buildSessionId: buildArguments.buildSessionId,
509
+ agentId: buildArguments.agentId,
452
510
  };
453
511
  }
454
512
  function countElements(files) {
@@ -476,20 +534,19 @@ function resolveProjectRoot(logger, diagnosticCollector, cliOption, scmRootDir)
476
534
  // relative path should be resolved first
477
535
  projectRoot = path.resolve(process.cwd(), normalizedRoot);
478
536
  }
479
- diagnosticCollector.projectRootResolved(projectRoot, 'command-argument');
537
+ diagnosticCollector.projectRootResolved(projectRoot, contracts_1.ProjectRootSource.COMMAND_ARG);
480
538
  logger.info(`Project root set to '${projectRoot}' from 'sourceRoot'`);
481
539
  }
482
540
  else if (scmRootDir) {
483
541
  projectRoot = scmRootDir;
484
- diagnosticCollector.projectRootResolved(projectRoot, 'scm');
542
+ diagnosticCollector.projectRootResolved(projectRoot, contracts_1.ProjectRootSource.SCM);
485
543
  logger.info(`Project root set to '${projectRoot}' same as git root`);
486
544
  }
487
545
  else {
488
546
  projectRoot = process.cwd();
489
- diagnosticCollector.projectRootResolved(projectRoot, 'cwd');
547
+ diagnosticCollector.projectRootResolved(projectRoot, contracts_1.ProjectRootSource.CWD);
490
548
  logger.info(`Project root set to '${projectRoot}' same as CWD`);
491
549
  }
492
550
  return utils.adjustPathSlashes(projectRoot);
493
551
  }
494
- module.exports.BuildDiffProcess = BuildDiffProcess;
495
552
  //# sourceMappingURL=build-diff-process.js.map