@datadog/datadog-ci 2.32.0 → 2.32.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 (56) hide show
  1. package/README.md +3 -3
  2. package/dist/commands/deployment/constants.d.ts +1 -0
  3. package/dist/commands/deployment/constants.js +2 -1
  4. package/dist/commands/deployment/constants.js.map +1 -1
  5. package/dist/commands/deployment/mark.d.ts +2 -1
  6. package/dist/commands/deployment/mark.js +21 -7
  7. package/dist/commands/deployment/mark.js.map +1 -1
  8. package/dist/commands/gate/evaluate.js +1 -1
  9. package/dist/commands/git-metadata/api.js +1 -1
  10. package/dist/commands/git-metadata/api.js.map +1 -1
  11. package/dist/commands/git-metadata/upload.js +1 -1
  12. package/dist/commands/git-metadata/upload.js.map +1 -1
  13. package/dist/commands/junit/upload.js +4 -1
  14. package/dist/commands/junit/upload.js.map +1 -1
  15. package/dist/commands/react-native/xcode.d.ts +1 -0
  16. package/dist/commands/react-native/xcode.js +38 -5
  17. package/dist/commands/react-native/xcode.js.map +1 -1
  18. package/dist/commands/sarif/renderer.d.ts +3 -3
  19. package/dist/commands/sarif/renderer.js +19 -4
  20. package/dist/commands/sarif/renderer.js.map +1 -1
  21. package/dist/commands/sarif/upload.js +8 -9
  22. package/dist/commands/sarif/upload.js.map +1 -1
  23. package/dist/commands/sbom/api.js.map +1 -1
  24. package/dist/commands/sbom/language.js +4 -1
  25. package/dist/commands/sbom/language.js.map +1 -1
  26. package/dist/commands/sbom/license.js +0 -4
  27. package/dist/commands/sbom/license.js.map +1 -1
  28. package/dist/commands/sbom/payload.js +76 -0
  29. package/dist/commands/sbom/payload.js.map +1 -1
  30. package/dist/commands/sbom/renderer.d.ts +6 -0
  31. package/dist/commands/sbom/renderer.js +58 -0
  32. package/dist/commands/sbom/renderer.js.map +1 -0
  33. package/dist/commands/sbom/types.d.ts +24 -0
  34. package/dist/commands/sbom/types.js +1 -0
  35. package/dist/commands/sbom/types.js.map +1 -1
  36. package/dist/commands/sbom/upload.js +22 -17
  37. package/dist/commands/sbom/upload.js.map +1 -1
  38. package/dist/commands/synthetics/api.d.ts +9 -3
  39. package/dist/commands/synthetics/api.js +28 -17
  40. package/dist/commands/synthetics/api.js.map +1 -1
  41. package/dist/commands/synthetics/batch.d.ts +3 -0
  42. package/dist/commands/synthetics/batch.js +172 -0
  43. package/dist/commands/synthetics/batch.js.map +1 -0
  44. package/dist/commands/synthetics/interfaces.d.ts +6 -6
  45. package/dist/commands/synthetics/reporters/default.d.ts +2 -2
  46. package/dist/commands/synthetics/reporters/default.js +1 -1
  47. package/dist/commands/synthetics/reporters/default.js.map +1 -1
  48. package/dist/commands/synthetics/run-tests-lib.d.ts +2 -6
  49. package/dist/commands/synthetics/run-tests-lib.js +46 -38
  50. package/dist/commands/synthetics/run-tests-lib.js.map +1 -1
  51. package/dist/commands/synthetics/utils/public.js +8 -130
  52. package/dist/commands/synthetics/utils/public.js.map +1 -1
  53. package/dist/helpers/tags.d.ts +5 -0
  54. package/dist/helpers/tags.js +8 -1
  55. package/dist/helpers/tags.js.map +1 -1
  56. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"license.js","sourceRoot":"","sources":["../../../src/commands/sbom/license.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../../src/commands/sbom/license.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,62 @@ const crypto_1 = __importDefault(require("crypto"));
32
32
  const tags_1 = require("../../helpers/tags");
33
33
  const language_1 = require("./language");
34
34
  const license_1 = require("./license");
35
+ // Parse a location from the file generated by osv-scanner into a location that can be
36
+ // sent to our API.
37
+ const parseLocation = (location) => {
38
+ if (!location) {
39
+ return undefined;
40
+ }
41
+ if (!location.file_name ||
42
+ !location.line_start ||
43
+ !location.line_end ||
44
+ !location.column_start ||
45
+ !location.column_end) {
46
+ return undefined;
47
+ }
48
+ if (location.line_end < location.line_start) {
49
+ return undefined;
50
+ }
51
+ if (location.line_end === location.line_start && location.column_end <= location.column_start) {
52
+ return undefined;
53
+ }
54
+ // check location values
55
+ if (location.line_start <= 0 || location.line_end <= 0 || location.column_start <= 0 || location.column_end <= 0) {
56
+ return undefined;
57
+ }
58
+ return {
59
+ file_name: location.file_name,
60
+ start: {
61
+ line: location.line_start,
62
+ col: location.column_start,
63
+ },
64
+ end: {
65
+ line: location.line_end,
66
+ col: location.column_end,
67
+ },
68
+ };
69
+ };
70
+ // Parse all locations from the OSV scanner. If one fails to be parse, it's set to undefined
71
+ const parseLocationsString = (locations) => {
72
+ try {
73
+ const parsed = JSON.parse(locations);
74
+ const res = {
75
+ block: parseLocation(parsed['block']),
76
+ namespace: parseLocation(parsed['namespace']),
77
+ name: parseLocation(parsed['name']),
78
+ version: parseLocation(parsed['version']),
79
+ };
80
+ // if block is not defined, the API fails and we should rather ignore the payload
81
+ if (!res.block) {
82
+ return undefined;
83
+ }
84
+ return res;
85
+ }
86
+ catch (e) {
87
+ console.error(`error when parsing locations: ${e}`);
88
+ }
89
+ return undefined;
90
+ };
35
91
  // Generate the payload we send to the API
36
92
  // jsonContent is the SBOM file content read from disk
37
93
  // tags are the list of tags we retrieved
@@ -62,6 +118,25 @@ const generatePayload = (jsonContent, tags, service, env) => {
62
118
  console.error(`cannot find purl for component ${component['name']}`);
63
119
  continue;
64
120
  }
121
+ const locations = [];
122
+ // Extract the unique location strings from the file.
123
+ const locationsStrings = new Set();
124
+ if (component['evidence'] && component['evidence']['occurrences']) {
125
+ for (const occ of component['evidence']['occurrences']) {
126
+ if (occ['location']) {
127
+ const loc = occ['location'];
128
+ if (!locationsStrings.has(loc)) {
129
+ locationsStrings.add(loc);
130
+ }
131
+ }
132
+ }
133
+ }
134
+ for (const l of locationsStrings) {
135
+ const loc = parseLocationsString(l);
136
+ if (loc) {
137
+ locations.push(loc);
138
+ }
139
+ }
65
140
  const dependency = {
66
141
  name: component['name'],
67
142
  group: component['group'] || undefined,
@@ -69,6 +144,7 @@ const generatePayload = (jsonContent, tags, service, env) => {
69
144
  language: lang,
70
145
  licenses: (0, license_1.getLicensesFromComponent)(component),
71
146
  purl,
147
+ locations,
72
148
  };
73
149
  dependencies.push(dependency);
74
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/commands/sbom/payload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAClC,oDAA2B;AAG3B,6CAM2B;AAE3B,yCAAmD;AACnD,uCAAkD;AAGlD,0CAA0C;AAC1C,sDAAsD;AACtD,yCAAyC;AAClC,MAAM,eAAe,GAAG,CAC7B,WAAgB,EAChB,IAAc,EACd,OAAe,EACf,GAAW,EACa,EAAE;IAC1B,IACE,CAAC,IAAI,CAAC,8BAAuB,CAAC;QAC9B,CAAC,IAAI,CAAC,6BAAsB,CAAC;QAC7B,CAAC,IAAI,CAAC,cAAO,CAAC;QACd,CAAC,IAAI,CAAC,iBAAU,CAAC;QACjB,CAAC,IAAI,CAAC,yBAAkB,CAAC,EACzB;QACA,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,YAAY,GAAiB,EAAE,CAAA;IAErC,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;YAC7B,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;gBACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBACrE,SAAQ;iBACT;gBACD,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;oBACnC,SAAQ;iBACT;gBAED,MAAM,IAAI,GAAG,IAAA,mCAAwB,EAAC,SAAS,CAAC,CAAA;gBAEhD,IAAI,CAAC,IAAI,EAAE;oBACT,SAAQ;iBACT;gBAED,MAAM,IAAI,GAAuB,SAAS,CAAC,MAAM,CAAC,CAAA;gBAElD,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBACpE,SAAQ;iBACT;gBAED,MAAM,UAAU,GAAe;oBAC7B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;oBACvB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS;oBACtC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;oBAC7B,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAA,kCAAwB,EAAC,SAAS,CAAC;oBAC7C,IAAI;iBACL,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aAC9B;SACF;KACF;IAED,OAAO;QACL,EAAE,EAAE,gBAAM,CAAC,UAAU,EAAE;QACvB,MAAM,EAAE;YACN,WAAW,EAAE,IAAI,CAAC,6BAAsB,CAAC;YACzC,YAAY,EAAE,IAAI,CAAC,8BAAuB,CAAC;YAC3C,GAAG,EAAE,IAAI,CAAC,cAAO,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,iBAAU,CAAC;SACzB;QACD,UAAU,EAAE;YACV,GAAG,EAAE,IAAI,CAAC,yBAAkB,CAAC;SAC9B;QACD,IAAI;QACJ,YAAY;QACZ,OAAO;QACP,GAAG;KACJ,CAAA;AACH,CAAC,CAAA;AAtEY,QAAA,eAAe,mBAsE3B"}
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/commands/sbom/payload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAClC,oDAA2B;AAG3B,6CAM2B;AAE3B,yCAAmD;AACnD,uCAAkD;AAGlD,sFAAsF;AACtF,mBAAmB;AACnB,MAAM,aAAa,GAAG,CAAC,QAA0B,EAAwB,EAAE;IACzE,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,SAAS,CAAA;KACjB;IACD,IACE,CAAC,QAAQ,CAAC,SAAS;QACnB,CAAC,QAAQ,CAAC,UAAU;QACpB,CAAC,QAAQ,CAAC,QAAQ;QAClB,CAAC,QAAQ,CAAC,YAAY;QACtB,CAAC,QAAQ,CAAC,UAAU,EACpB;QACA,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAAE;QAC3C,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,YAAY,EAAE;QAC7F,OAAO,SAAS,CAAA;KACjB;IAED,wBAAwB;IACxB,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,QAAQ,CAAC,YAAY,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE;QAChH,OAAO,SAAS,CAAA;KACjB;IAED,OAAO;QACL,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ,CAAC,UAAU;YACzB,GAAG,EAAE,QAAQ,CAAC,YAAY;SAC3B;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,GAAG,EAAE,QAAQ,CAAC,UAAU;SACzB;KACF,CAAA;AACH,CAAC,CAAA;AAED,4FAA4F;AAC5F,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAyB,EAAE;IACxE,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAEpC,MAAM,GAAG,GAAc;YACrB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC1C,CAAA;QAED,iFAAiF;QACjF,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YACd,OAAO,SAAS,CAAA;SACjB;QAED,OAAO,GAAG,CAAA;KACX;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAA;KACpD;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,0CAA0C;AAC1C,sDAAsD;AACtD,yCAAyC;AAClC,MAAM,eAAe,GAAG,CAC7B,WAAgB,EAChB,IAAc,EACd,OAAe,EACf,GAAW,EACa,EAAE;IAC1B,IACE,CAAC,IAAI,CAAC,8BAAuB,CAAC;QAC9B,CAAC,IAAI,CAAC,6BAAsB,CAAC;QAC7B,CAAC,IAAI,CAAC,cAAO,CAAC;QACd,CAAC,IAAI,CAAC,iBAAU,CAAC;QACjB,CAAC,IAAI,CAAC,yBAAkB,CAAC,EACzB;QACA,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,YAAY,GAAiB,EAAE,CAAA;IAErC,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;YAC7B,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;gBACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBACrE,SAAQ;iBACT;gBACD,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;oBACnC,SAAQ;iBACT;gBAED,MAAM,IAAI,GAAG,IAAA,mCAAwB,EAAC,SAAS,CAAC,CAAA;gBAEhD,IAAI,CAAC,IAAI,EAAE;oBACT,SAAQ;iBACT;gBAED,MAAM,IAAI,GAAuB,SAAS,CAAC,MAAM,CAAC,CAAA;gBAElD,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBACpE,SAAQ;iBACT;gBAED,MAAM,SAAS,GAAgB,EAAE,CAAA;gBAEjC,qDAAqD;gBACrD,MAAM,gBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAA;gBAC/C,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,EAAE;oBACjE,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,EAAE;wBACtD,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE;4BACnB,MAAM,GAAG,GAAW,GAAG,CAAC,UAAU,CAAC,CAAA;4BAEnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gCAC9B,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;6BAC1B;yBACF;qBACF;iBACF;gBAED,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE;oBAChC,MAAM,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;oBACnC,IAAI,GAAG,EAAE;wBACP,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;qBACpB;iBACF;gBAED,MAAM,UAAU,GAAe;oBAC7B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;oBACvB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS;oBACtC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;oBAC7B,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAA,kCAAwB,EAAC,SAAS,CAAC;oBAC7C,IAAI;oBACJ,SAAS;iBACV,CAAA;gBACD,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;aAC9B;SACF;KACF;IAED,OAAO;QACL,EAAE,EAAE,gBAAM,CAAC,UAAU,EAAE;QACvB,MAAM,EAAE;YACN,WAAW,EAAE,IAAI,CAAC,6BAAsB,CAAC;YACzC,YAAY,EAAE,IAAI,CAAC,8BAAuB,CAAC;YAC3C,GAAG,EAAE,IAAI,CAAC,cAAO,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,iBAAU,CAAC;SACzB;QACD,UAAU,EAAE;YACV,GAAG,EAAE,IAAI,CAAC,yBAAkB,CAAC;SAC9B;QACD,IAAI;QACJ,YAAY;QACZ,OAAO;QACP,GAAG;KACJ,CAAA;AACH,CAAC,CAAA;AA9FY,QAAA,eAAe,mBA8F3B"}
@@ -0,0 +1,6 @@
1
+ export declare const renderInvalidFile: (sbomReport: string) => string;
2
+ export declare const renderInvalidPayload: (sbomReport: string) => string;
3
+ export declare const renderMissingSpan: (errorMessage: string) => string;
4
+ export declare const renderFailedUpload: (sbomReport: string, error: any) => string;
5
+ export declare const renderUploading: (sbomReport: string) => string;
6
+ export declare const renderSuccessfulCommand: (fileCount: number, duration: number) => string;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.renderSuccessfulCommand = exports.renderUploading = exports.renderFailedUpload = exports.renderMissingSpan = exports.renderInvalidPayload = exports.renderInvalidFile = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const utils_1 = require("../junit/utils");
9
+ const ICONS = {
10
+ FAILED: '❌',
11
+ SUCCESS: '✅',
12
+ WARNING: '⚠️',
13
+ INFO: 'ℹ️',
14
+ };
15
+ const renderInvalidFile = (sbomReport) => {
16
+ const reportPath = `[${chalk_1.default.bold.dim(sbomReport)}]`;
17
+ let fullStr = '';
18
+ fullStr += chalk_1.default.red(`${ICONS.FAILED} Invalid SBOM report file ${reportPath}.\n`);
19
+ fullStr += chalk_1.default.red(`The report is not a valid SBOM or is not compliant with our json schema.\n`);
20
+ return fullStr;
21
+ };
22
+ exports.renderInvalidFile = renderInvalidFile;
23
+ const renderInvalidPayload = (sbomReport) => {
24
+ const reportPath = `[${chalk_1.default.bold.dim(sbomReport)}]`;
25
+ return chalk_1.default.red(`Cannot generate payload for file ${reportPath}.\n`);
26
+ };
27
+ exports.renderInvalidPayload = renderInvalidPayload;
28
+ const renderMissingSpan = (errorMessage) => {
29
+ const currentPath = `[${chalk_1.default.bold.dim(process.cwd())}]`;
30
+ let fullStr = '';
31
+ fullStr += chalk_1.default.yellow(`${ICONS.WARNING} Validation failed: ${errorMessage}.\n`);
32
+ fullStr += chalk_1.default.yellow(`Upload attempted from ${currentPath}. Is this the directory for which this analysis was run?\n`);
33
+ fullStr += chalk_1.default.yellow(`The upload must come from a directory with a ".git" directory.\n`);
34
+ return fullStr;
35
+ };
36
+ exports.renderMissingSpan = renderMissingSpan;
37
+ const renderFailedUpload = (sbomReport, error) => {
38
+ var _a;
39
+ const reportPath = `[${chalk_1.default.bold.dim(sbomReport)}]`;
40
+ let fullStr = '';
41
+ fullStr += chalk_1.default.red(`${ICONS.FAILED} Failed upload SBOM file ${reportPath}: ${error.message}\n`);
42
+ if ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) {
43
+ fullStr += chalk_1.default.red(`API status code: ${error.response.status}\n`);
44
+ }
45
+ return fullStr;
46
+ };
47
+ exports.renderFailedUpload = renderFailedUpload;
48
+ const renderUploading = (sbomReport) => `Uploading SBOM report in ${sbomReport}\n`;
49
+ exports.renderUploading = renderUploading;
50
+ const renderSuccessfulCommand = (fileCount, duration) => {
51
+ let fullStr = '';
52
+ fullStr += chalk_1.default.green(`${ICONS.SUCCESS} Uploaded ${fileCount} files in ${duration} seconds.\n`);
53
+ fullStr += chalk_1.default.green(`${ICONS.INFO} Results available on ${(0, utils_1.getBaseUrl)()}ci/code-analysis\n`);
54
+ fullStr += chalk_1.default.green('=================================================================================================\n');
55
+ return fullStr;
56
+ };
57
+ exports.renderSuccessfulCommand = renderSuccessfulCommand;
58
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/commands/sbom/renderer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare enum DependencyLanguage {
2
+ DOTNET = "dotnet",
2
3
  NPM = "node",
3
4
  PYTHON = "python",
4
5
  PHP = "php",
@@ -45,6 +46,28 @@ export declare enum DependencyLicense {
45
46
  UNLICENSE = "Unlicense",
46
47
  ZLIB = "Zlib"
47
48
  }
49
+ export interface LocationFromFile {
50
+ file_name: string;
51
+ line_start: number;
52
+ line_end: number;
53
+ column_start: number;
54
+ column_end: number;
55
+ }
56
+ export interface Position {
57
+ line: number;
58
+ col: number;
59
+ }
60
+ export interface Location {
61
+ file_name: string;
62
+ start: Position;
63
+ end: Position;
64
+ }
65
+ export interface Locations {
66
+ block: undefined | Location;
67
+ namespace: undefined | Location;
68
+ name: undefined | Location;
69
+ version: undefined | Location;
70
+ }
48
71
  export interface Dependency {
49
72
  name: string;
50
73
  version: string;
@@ -52,6 +75,7 @@ export interface Dependency {
52
75
  language: DependencyLanguage;
53
76
  licenses: DependencyLicense[];
54
77
  purl: string;
78
+ locations: undefined | Locations[];
55
79
  }
56
80
  export interface CommitInformation {
57
81
  author_name: string;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DependencyLicense = exports.DependencyLanguage = void 0;
4
4
  var DependencyLanguage;
5
5
  (function (DependencyLanguage) {
6
+ DependencyLanguage["DOTNET"] = "dotnet";
6
7
  DependencyLanguage["NPM"] = "node";
7
8
  DependencyLanguage["PYTHON"] = "python";
8
9
  DependencyLanguage["PHP"] = "php";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/sbom/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,kCAAY,CAAA;IACZ,uCAAiB,CAAA;IACjB,iCAAW,CAAA;IACX,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,+BAAS,CAAA;IACT,iCAAW,CAAA;AACb,CAAC,EARW,kBAAkB,kCAAlB,kBAAkB,QAQ7B;AAED,uJAAuJ;AACvJ,IAAY,iBAqCX;AArCD,WAAY,iBAAiB;IAC3B,qCAAgB,CAAA;IAChB,2CAAsB,CAAA;IACtB,+CAA0B,CAAA;IAC1B,qCAAgB,CAAA;IAChB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAC3B,2DAAsC,CAAA;IACtC,gDAA2B,CAAA;IAC3B,qCAAgB,CAAA;IAChB,8BAAS,CAAA;IACT,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,kDAA6B,CAAA;IAC7B,oCAAe,CAAA;IACf,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,yCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,gCAAW,CAAA;IACX,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,kCAAa,CAAA;IACb,yCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,gCAAW,CAAA;IACX,4CAAuB,CAAA;IACvB,oCAAe,CAAA;IACf,gCAAW,CAAA;IACX,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,8CAAyB,CAAA;IACzB,wCAAmB,CAAA;IACnB,kCAAa,CAAA;IACb,4CAAuB,CAAA;IACvB,kCAAa,CAAA;AACf,CAAC,EArCW,iBAAiB,iCAAjB,iBAAiB,QAqC5B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/sbom/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,kCAAY,CAAA;IACZ,uCAAiB,CAAA;IACjB,iCAAW,CAAA;IACX,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,+BAAS,CAAA;IACT,iCAAW,CAAA;AACb,CAAC,EATW,kBAAkB,kCAAlB,kBAAkB,QAS7B;AAED,uJAAuJ;AACvJ,IAAY,iBAqCX;AArCD,WAAY,iBAAiB;IAC3B,qCAAgB,CAAA;IAChB,2CAAsB,CAAA;IACtB,+CAA0B,CAAA;IAC1B,qCAAgB,CAAA;IAChB,gDAA2B,CAAA;IAC3B,gDAA2B,CAAA;IAC3B,2DAAsC,CAAA;IACtC,gDAA2B,CAAA;IAC3B,qCAAgB,CAAA;IAChB,8BAAS,CAAA;IACT,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,kDAA6B,CAAA;IAC7B,oCAAe,CAAA;IACf,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,yCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,gCAAW,CAAA;IACX,uCAAkB,CAAA;IAClB,uCAAkB,CAAA;IAClB,kCAAa,CAAA;IACb,yCAAoB,CAAA;IACpB,yCAAoB,CAAA;IACpB,gCAAW,CAAA;IACX,4CAAuB,CAAA;IACvB,oCAAe,CAAA;IACf,gCAAW,CAAA;IACX,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,8CAAyB,CAAA;IACzB,wCAAmB,CAAA;IACnB,kCAAa,CAAA;IACb,4CAAuB,CAAA;IACvB,kCAAa,CAAA;AACf,CAAC,EArCW,iBAAiB,iCAAjB,iBAAiB,QAqC5B"}
@@ -15,12 +15,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.UploadSbomCommand = void 0;
16
16
  const fs_1 = __importDefault(require("fs"));
17
17
  const process_1 = __importDefault(require("process"));
18
- const chalk_1 = __importDefault(require("chalk"));
19
18
  const clipanion_1 = require("clipanion");
20
19
  const tags_1 = require("../../helpers/tags");
21
- const utils_1 = require("../junit/utils");
22
20
  const api_1 = require("./api");
23
21
  const payload_1 = require("./payload");
22
+ const renderer_1 = require("./renderer");
24
23
  const validation_1 = require("./validation");
25
24
  class UploadSbomCommand extends clipanion_1.Command {
26
25
  constructor() {
@@ -59,48 +58,54 @@ class UploadSbomCommand extends clipanion_1.Command {
59
58
  return 1;
60
59
  }
61
60
  if (!this.config.apiKey) {
62
- this.context.stderr.write('API key not defined\n');
61
+ this.context.stderr.write('API key not defined, define the environment variable DD_API_KEY.\n');
62
+ return 1;
63
+ }
64
+ if (!this.config.appKey) {
65
+ this.context.stderr.write('APP key not defined, define the environment variable DD_APP_KEY.\n');
63
66
  return 1;
64
67
  }
65
68
  // Get the API helper to send the payload
66
69
  const api = (0, api_1.getApiHelper)(this.config.apiKey, this.config.appKey);
67
70
  const tags = yield (0, tags_1.getSpanTags)(this.config, this.tags);
71
+ // Check if we have all the mandatory git fields
72
+ const spanTagsKeys = Object.keys(tags);
73
+ const filteredSpanTags = spanTagsKeys.filter((key) => tags_1.mandatoryGitFields[key]);
74
+ if (filteredSpanTags.length !== Object.keys(tags_1.mandatoryGitFields).length) {
75
+ this.context.stdout.write((0, renderer_1.renderMissingSpan)('missing span tags (CI, git, or user-provided tags)'));
76
+ return 1;
77
+ }
68
78
  const validator = (0, validation_1.getValidator)();
79
+ const startTimeMs = Date.now();
69
80
  for (const basePath of this.basePaths) {
70
81
  if (this.debug) {
71
82
  this.context.stdout.write(`Processing file ${basePath}\n`);
72
83
  }
73
84
  if (!(0, validation_1.validateSbomFile)(basePath, validator, !!this.debug)) {
74
- this.context.stdout.write(`File ${chalk_1.default.red.bold(basePath)} is not a valid SBOM file.\n`);
85
+ this.context.stdout.write((0, renderer_1.renderInvalidFile)(basePath));
75
86
  return 1;
76
87
  }
77
- const filePath = basePath;
78
88
  const jsonContent = JSON.parse(fs_1.default.readFileSync(basePath).toString('utf8'));
79
89
  // Upload content
80
90
  try {
81
91
  const scaPayload = (0, payload_1.generatePayload)(jsonContent, tags, service, environment);
82
92
  if (!scaPayload) {
83
- console.log(`Cannot generate payload for file ${filePath}`);
93
+ this.context.stdout.write((0, renderer_1.renderInvalidPayload)(basePath));
84
94
  continue;
85
95
  }
86
- const startTimeMs = Date.now();
87
- const response = yield api(scaPayload);
88
- const endTimeMs = Date.now();
96
+ this.context.stdout.write((0, renderer_1.renderUploading)(basePath));
97
+ yield api(scaPayload);
89
98
  if (this.debug) {
90
- this.context.stdout.write(`Upload done, status: ${response.status}\n`);
99
+ this.context.stdout.write(`Upload done for ${basePath}.\n`);
91
100
  }
92
- const apiTimeMs = endTimeMs - startTimeMs;
93
- this.context.stdout.write(`File ${basePath} successfully uploaded in ${apiTimeMs} ms\n`);
94
101
  }
95
102
  catch (error) {
96
- process_1.default.stderr.write(`Error while writing the payload: ${error.message}\n`);
97
- if (error.response) {
98
- process_1.default.stderr.write(`API status: ${error.response.status}\n`);
99
- }
103
+ this.context.stderr.write((0, renderer_1.renderFailedUpload)(basePath, error));
100
104
  return 1;
101
105
  }
102
106
  }
103
- this.context.stdout.write(`Upload finished, results available on ${(0, utils_1.getBaseUrl)()}ci/code-analysis\n`);
107
+ const uploadTimeMs = (Date.now() - startTimeMs) / 1000;
108
+ this.context.stdout.write((0, renderer_1.renderSuccessfulCommand)(this.basePaths.length, uploadTimeMs));
104
109
  return 0;
105
110
  });
106
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/sbom/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/sbom/upload.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,16 @@ export declare class EndpointError extends Error {
11
11
  }
12
12
  export declare const formatBackendErrors: (requestError: AxiosError<BackendError>) => string;
13
13
  export declare const completeMultipartMobileApplicationUpload: (request: (args: AxiosRequestConfig) => AxiosPromise<void>) => (applicationId: string, uploadId: string, key: string, uploadPartResponses: MobileApplicationUploadPartResponse[]) => Promise<void>;
14
- export declare const isForbiddenError: (error: AxiosError | EndpointError) => boolean;
15
- export declare const isNotFoundError: (error: AxiosError | EndpointError) => boolean;
14
+ export type RetryPolicy = {
15
+ retryOn404?: boolean | undefined;
16
+ retryOn429?: boolean | undefined;
17
+ };
18
+ export declare const determineRetryDelay: (retries: number, error: Error, retryPolicy?: RetryPolicy) => number | undefined;
19
+ export declare const isForbiddenError: (error: Error) => boolean;
20
+ export declare const isNotFoundError: (error: Error) => boolean;
21
+ export declare const isTooManyRequestsError: (error: Error) => boolean;
16
22
  export declare const isNodeError: (error: unknown) => error is NodeJS.ErrnoException;
17
- export declare const is5xxError: (error: AxiosError | EndpointError) => boolean | 0 | undefined;
23
+ export declare const is5xxError: (error: Error) => boolean;
18
24
  export declare const apiConstructor: (configuration: APIConfiguration) => {
19
25
  getBatch: (batchId: string) => Promise<Batch>;
20
26
  getMobileApplicationPresignedURLs: (applicationId: string, appSize: number, parts: MobileApplicationUploadPart[]) => Promise<MultipartPresignedUrlsResponse>;
@@ -9,8 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getApiHelper = exports.apiConstructor = exports.is5xxError = exports.isNodeError = exports.isNotFoundError = exports.isForbiddenError = exports.completeMultipartMobileApplicationUpload = exports.formatBackendErrors = exports.EndpointError = void 0;
12
+ exports.getApiHelper = exports.apiConstructor = exports.is5xxError = exports.isNodeError = exports.isTooManyRequestsError = exports.isNotFoundError = exports.isForbiddenError = exports.determineRetryDelay = exports.completeMultipartMobileApplicationUpload = exports.formatBackendErrors = exports.EndpointError = void 0;
13
13
  const querystring_1 = require("querystring");
14
+ const axios_1 = require("axios");
14
15
  const utils_1 = require("../../helpers/utils");
15
16
  const errors_1 = require("./errors");
16
17
  const run_tests_command_1 = require("./run-tests-command");
@@ -18,6 +19,8 @@ const public_1 = require("./utils/public");
18
19
  const MAX_RETRIES = 3;
19
20
  const DELAY_BETWEEN_RETRIES = 500; // In ms
20
21
  const LARGE_DELAY_BETWEEN_RETRIES = 1000; // In ms
22
+ // SYNTH-13709: Use the `Retry-After` header.
23
+ const DELAY_BETWEEN_429_RETRIES = 5000; // In ms
21
24
  class EndpointError extends Error {
22
25
  constructor(message, status) {
23
26
  super(message);
@@ -52,13 +55,13 @@ const triggerTests = (request) => (data) => __awaiter(void 0, void 0, void 0, fu
52
55
  headers: { 'X-Trigger-App': public_1.ciTriggerApp },
53
56
  method: 'POST',
54
57
  url: '/synthetics/tests/trigger/ci',
55
- }, request);
58
+ }, request, { retryOn429: true });
56
59
  return resp.data;
57
60
  });
58
61
  const getTest = (request) => (testId) => __awaiter(void 0, void 0, void 0, function* () {
59
62
  const resp = yield retryRequest({
60
63
  url: `/synthetics/tests/${testId}`,
61
- }, request);
64
+ }, request, { retryOn429: true });
62
65
  return resp.data;
63
66
  });
64
67
  const searchTests = (request) => (query) => __awaiter(void 0, void 0, void 0, function* () {
@@ -79,7 +82,10 @@ const getSyntheticsOrgSettings = (request) => () => __awaiter(void 0, void 0, vo
79
82
  return resp.data;
80
83
  });
81
84
  const getBatch = (request) => (batchId) => __awaiter(void 0, void 0, void 0, function* () {
82
- const resp = yield retryRequest({ url: `/synthetics/ci/batch/${batchId}` }, request, retryOn5xxOr404Errors);
85
+ const resp = yield retryRequest({ url: `/synthetics/ci/batch/${batchId}` }, request, {
86
+ retryOn404: true,
87
+ retryOn429: true,
88
+ });
83
89
  const serverBatch = resp.data.data;
84
90
  return {
85
91
  results: serverBatch.results.filter((r) => r.status !== 'skipped' || r.selective_rerun),
@@ -92,7 +98,7 @@ const pollResults = (request) => (resultIds) => __awaiter(void 0, void 0, void 0
92
98
  result_ids: JSON.stringify(resultIds),
93
99
  },
94
100
  url: '/synthetics/tests/poll_results',
95
- }, request, retryOn5xxOr404Errors);
101
+ }, request, { retryOn404: true, retryOn429: true });
96
102
  return resp.data.results;
97
103
  });
98
104
  const getTunnelPresignedURL = (request) => (testIds) => __awaiter(void 0, void 0, void 0, function* () {
@@ -165,37 +171,42 @@ const createMobileVersion = (request) => (version) => __awaiter(void 0, void 0,
165
171
  }, request);
166
172
  return resp.data;
167
173
  });
168
- const retryOn5xxErrors = (retries, error) => {
169
- // Retry on Node.js errors for both retry policies.
174
+ const retryWithJitter = (delay = DELAY_BETWEEN_429_RETRIES) => delay + Math.floor(Math.random() * delay);
175
+ const determineRetryDelay = (retries, error, retryPolicy = { retryOn404: false, retryOn429: false }) => {
176
+ // Always retry on Node.js errors
170
177
  if (retries < MAX_RETRIES && (0, exports.isNodeError)(error)) {
171
178
  return LARGE_DELAY_BETWEEN_RETRIES;
172
179
  }
180
+ // Always retry on 5xx
173
181
  if (retries < MAX_RETRIES && (0, exports.is5xxError)(error)) {
174
182
  return DELAY_BETWEEN_RETRIES;
175
183
  }
176
- };
177
- const retryOn5xxOr404Errors = (retries, error) => {
178
- const retryOn5xxDelay = retryOn5xxErrors(retries, error);
179
- if (retryOn5xxDelay) {
180
- return retryOn5xxDelay;
181
- }
182
- if (retries < MAX_RETRIES && (0, exports.isNotFoundError)(error)) {
184
+ // Retry on 404
185
+ if (retryPolicy.retryOn404 && retries < MAX_RETRIES && (0, exports.isNotFoundError)(error)) {
183
186
  return DELAY_BETWEEN_RETRIES;
184
187
  }
188
+ // Retry on 429
189
+ if (retryPolicy.retryOn429 && retries < MAX_RETRIES && (0, exports.isTooManyRequestsError)(error)) {
190
+ return retryWithJitter(DELAY_BETWEEN_429_RETRIES);
191
+ }
185
192
  };
186
- const getErrorHttpStatus = (error) => { var _a; return 'status' in error ? error.status : (_a = error.response) === null || _a === void 0 ? void 0 : _a.status; };
193
+ exports.determineRetryDelay = determineRetryDelay;
194
+ const isEndpointError = (error) => error instanceof EndpointError;
195
+ const getErrorHttpStatus = (error) => { var _a; return isEndpointError(error) ? error.status : (0, axios_1.isAxiosError)(error) ? (_a = error.response) === null || _a === void 0 ? void 0 : _a.status : undefined; };
187
196
  const isForbiddenError = (error) => getErrorHttpStatus(error) === 403;
188
197
  exports.isForbiddenError = isForbiddenError;
189
198
  const isNotFoundError = (error) => getErrorHttpStatus(error) === 404;
190
199
  exports.isNotFoundError = isNotFoundError;
200
+ const isTooManyRequestsError = (error) => getErrorHttpStatus(error) === 429;
201
+ exports.isTooManyRequestsError = isTooManyRequestsError;
191
202
  const isNodeError = (error) => !!error && 'code' in error;
192
203
  exports.isNodeError = isNodeError;
193
204
  const is5xxError = (error) => {
194
205
  const statusCode = getErrorHttpStatus(error);
195
- return statusCode && statusCode >= 500 && statusCode <= 599;
206
+ return statusCode && statusCode >= 500 && statusCode <= 599 ? true : false;
196
207
  };
197
208
  exports.is5xxError = is5xxError;
198
- const retryRequest = (args, request, retryPolicy = retryOn5xxErrors) => (0, public_1.retry)(() => request(args), retryPolicy);
209
+ const retryRequest = (args, request, statusCodesToRetryOn) => (0, public_1.retry)(() => request(args), (retries, e) => (0, exports.determineRetryDelay)(retries, e, statusCodesToRetryOn));
199
210
  const apiConstructor = (configuration) => {
200
211
  const { baseUrl, baseIntakeUrl, baseUnstableUrl, apiKey, appKey, proxyOpts } = configuration;
201
212
  const baseOptions = { apiKey, appKey, proxyOpts };
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/synthetics/api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAqC;AAIrC,+CAAqD;AAErD,qCAAsC;AAiBtC,2DAAwD;AACxD,2CAAkE;AAElE,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,MAAM,qBAAqB,GAAG,GAAG,CAAA,CAAC,QAAQ;AAC1C,MAAM,2BAA2B,GAAG,IAAI,CAAA,CAAC,QAAQ;AAMjD,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAmB,OAAe,EAAS,MAAc;QACvD,KAAK,CAAC,OAAO,CAAC,CAAA;QADG,YAAO,GAAP,OAAO,CAAQ;QAAS,WAAM,GAAN,MAAM,CAAQ;QAEvD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IACtD,CAAC;CACF;AALD,sCAKC;AAEM,MAAM,mBAAmB,GAAG,CAAC,YAAsC,EAAE,EAAE;;IAC5E,IAAI,MAAA,MAAA,YAAY,CAAC,QAAQ,0CAAE,IAAI,0CAAE,MAAM,EAAE;QACvC,MAAM,UAAU,GAAG,YAAY,MAAA,YAAY,CAAC,MAAM,0CAAE,OAAO,GAAG,MAAA,YAAY,CAAC,MAAM,0CAAE,GAAG,YAAY,CAAA;QAClG,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAA;QAChD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC,CAAA;YAEzE,OAAO,GAAG,UAAU,KAAK,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;SACtD;aAAM,IAAI,MAAM,CAAC,MAAM,EAAE;YACxB,OAAO,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;SACtC;aAAM;YACL,OAAO,kBAAkB,MAAA,YAAY,CAAC,MAAM,0CAAE,OAAO,GAAG,MAAA,YAAY,CAAC,MAAM,0CAAE,GAAG,EAAE,CAAA;SACnF;KACF;IAED,OAAO,mBAAmB,MAAA,YAAY,CAAC,MAAM,0CAAE,OAAO,GAAG,MAAA,YAAY,CAAC,MAAM,0CAAE,GAAG,KAAK,YAAY,CAAC,OAAO,EAAE,CAAA;AAC9G,CAAC,CAAA;AAhBY,QAAA,mBAAmB,uBAgB/B;AAED,MAAM,YAAY,GAAG,CAAC,OAA4D,EAAE,EAAE,CAAC,CAAO,IAAa,EAAE,EAAE;IAC7G,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;QACE,IAAI;QACJ,OAAO,EAAE,EAAC,eAAe,EAAE,qBAAY,EAAC;QACxC,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,8BAA8B;KACpC,EACD,OAAO,CACR,CAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC,CAAA,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,OAA+D,EAAE,EAAE,CAAC,CAAO,MAAc,EAAE,EAAE;IAC5G,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;QACE,GAAG,EAAE,qBAAqB,MAAM,EAAE;KACnC,EACD,OAAO,CACR,CAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC,CAAA,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,OAAqE,EAAE,EAAE,CAAC,CAC7F,KAAa,EACb,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;QACE,MAAM,EAAE;YACN,+EAA+E;YAC/E,KAAK,EAAE,wCAAoB,GAAG,CAAC;YAC/B,IAAI,EAAE,KAAK;SACZ;QACD,GAAG,EAAE,0BAA0B;KAChC,EACD,OAAO,CACR,CAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC,CAAA,CAAA;AAED,MAAM,wBAAwB,GAAG,CAC/B,OAA0E,EAC1E,EAAE,CAAC,GAAS,EAAE;IACd,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;QACE,GAAG,EAAE,sBAAsB;KAC5B,EACD,OAAO,CACR,CAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC,CAAA,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,OAAwE,EAAE,EAAE,CAAC,CAC7F,OAAe,EACC,EAAE;IAClB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,EAAC,GAAG,EAAE,wBAAwB,OAAO,EAAE,EAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAA;IAEzG,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IAElC,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,eAAe,CAAqB;QAC3G,MAAM,EAAE,WAAW,CAAC,MAAM;KAC3B,CAAA;AACH,CAAC,CAAA,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,OAA4E,EAAE,EAAE,CAAC,CACpG,SAAmB,EACnB,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;QACE,MAAM,EAAE;YACN,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SACtC;QACD,GAAG,EAAE,gCAAgC;KACtC,EACD,OAAO,EACP,qBAAqB,CACtB,CAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;AAC1B,CAAC,CAAA,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,OAAkE,EAAE,EAAE,CAAC,CACpG,OAAiB,EACjB,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;QACE,MAAM,EAAE;YACN,OAAO,EAAE,OAAO;SACjB;QACD,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,uBAAS,EAAC,MAAM,CAAC;QAC/C,GAAG,EAAE,uBAAuB;KAC7B,EACD,OAAO,CACR,CAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC,CAAA,CAAA;AAED,MAAM,iCAAiC,GAAG,CACxC,OAAmF,EACnF,EAAE,CAAC,CACH,aAAqB,EACrB,OAAe,EACf,KAAoC,EACK,EAAE;IAC3C,MAAM,cAAc,GAAG,CAAC,IAAiC,EAAE,EAAE,CAAC,CAAC;QAC7D,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;QACE,IAAI,EAAE;YACJ,OAAO;YACP,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;SACjC;QACD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,mCAAmC,aAAa,2BAA2B;KACjF,EACD,OAAO,CACR,CAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC,CAAA,CAAA;AAED,MAAM,2BAA2B,GAAG,CAAC,OAAyD,EAAE,EAAE,CAAC,CACjG,KAAoC,EACpC,4BAA+F,EAC/C,EAAE;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE;QAC1G,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;YACE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YACxC,OAAO,EAAE;gBACP,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBAChD,4EAA4E;gBAC5E,gDAAgD;gBAChD,2CAA2C;gBAC3C,2CAA2C;gBAC3C,cAAc,EAAE,IAAI;aACrB;YACD,aAAa,EAAE,QAAQ;YACvB,gBAAgB,EAAE,QAAQ;YAC1B,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,YAAY;SAClB,EACD,OAAO,CACR,CAAA;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAc,CAAA;QAE9C,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;SAC/B,CAAA;IACH,CAAC,CAAA,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAC9B,CAAC,CAAA,CAAA;AAEM,MAAM,wCAAwC,GAAG,CACtD,OAAyD,EACzD,EAAE,CAAC,CACH,aAAqB,EACrB,QAAgB,EAChB,GAAW,EACX,mBAA0D,EAC1D,EAAE;IACF,MAAM,YAAY,CAChB;QACE,IAAI,EAAE;YACJ,GAAG;YACH,KAAK,EAAE,mBAAmB;YAC1B,QAAQ;SACT;QACD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,mCAAmC,aAAa,4BAA4B;KAClF,EACD,OAAO,CACR,CAAA;AACH,CAAC,CAAA,CAAA;AApBY,QAAA,wCAAwC,4CAoBpD;AAED,MAAM,mBAAmB,GAAG,CAAC,OAA6E,EAAE,EAAE,CAAC,CAC7G,OAAiC,EACjC,EAAE;IACF,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,0CAA0C;KAChD,EACD,OAAO,CACR,CAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC,CAAA,CAAA;AAID,MAAM,gBAAgB,GAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;IACvD,mDAAmD;IACnD,IAAI,OAAO,GAAG,WAAW,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE;QAC/C,OAAO,2BAA2B,CAAA;KACnC;IAED,IAAI,OAAO,GAAG,WAAW,IAAI,IAAA,kBAAU,EAAC,KAAK,CAAC,EAAE;QAC9C,OAAO,qBAAqB,CAAA;KAC7B;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;IAC5D,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACxD,IAAI,eAAe,EAAE;QACnB,OAAO,eAAe,CAAA;KACvB;IAED,IAAI,OAAO,GAAG,WAAW,IAAI,IAAA,uBAAe,EAAC,KAAK,CAAC,EAAE;QACnD,OAAO,qBAAqB,CAAA;KAC7B;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAiC,EAAE,EAAE,WAC/D,OAAA,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAA,EAAA,CAAA;AAEpD,MAAM,gBAAgB,GAAG,CAAC,KAAiC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA;AAA3F,QAAA,gBAAgB,oBAA2E;AAEjG,MAAM,eAAe,GAAG,CAAC,KAAiC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA;AAA1F,QAAA,eAAe,mBAA2E;AAEhG,MAAM,WAAW,GAAG,CAAC,KAAc,EAAkC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,IAAK,KAAe,CAAA;AAAvG,QAAA,WAAW,eAA4F;AAE7G,MAAM,UAAU,GAAG,CAAC,KAAiC,EAAE,EAAE;IAC9D,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAE5C,OAAO,UAAU,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAA;AAC7D,CAAC,CAAA;AAJY,QAAA,UAAU,cAItB;AAED,MAAM,YAAY,GAAG,CACnB,IAAwB,EACxB,OAAsD,EACtD,cAA2B,gBAAgB,EAC3C,EAAE,CAAC,IAAA,cAAK,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAA;AAErC,MAAM,cAAc,GAAG,CAAC,aAA+B,EAAE,EAAE;IAChE,MAAM,EAAC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAC,GAAG,aAAa,CAAA;IAC1F,MAAM,WAAW,GAAG,EAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,IAAA,yBAAiB,kCAAK,WAAW,KAAE,OAAO,IAAE,CAAA;IAC5D,MAAM,eAAe,GAAG,IAAA,yBAAiB,kCAAK,WAAW,KAAE,OAAO,EAAE,eAAe,IAAE,CAAA;IACrF,MAAM,aAAa,GAAG,IAAA,yBAAiB,kCAAK,WAAW,KAAE,OAAO,EAAE,aAAa,IAAE,CAAA;IAEjF,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;QAC3B,iCAAiC,EAAE,iCAAiC,CAAC,eAAe,CAAC;QACrF,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QACzB,wBAAwB,EAAE,wBAAwB,CAAC,OAAO,CAAC;QAC3D,qBAAqB,EAAE,qBAAqB,CAAC,aAAa,CAAC;QAC3D,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;QACjC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC,aAAa,CAAC;QACzC,2BAA2B,EAAE,2BAA2B,CAAC,OAAO,CAAC;QACjE,wCAAwC,EAAE,IAAA,gDAAwC,EAAC,eAAe,CAAC;QACnG,mBAAmB,EAAE,mBAAmB,CAAC,eAAe,CAAC;KAC1D,CAAA;AACH,CAAC,CAAA;AApBY,QAAA,cAAc,kBAoB1B;AAIM,MAAM,YAAY,GAAG,CAAC,MAAuB,EAAa,EAAE;IACjE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAClB,MAAM,IAAI,sBAAa,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAA;KAClE;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QAClB,MAAM,IAAI,sBAAa,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAA;KAClE;IAED,OAAO,IAAA,sBAAc,EAAC;QACpB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,IAAA,uBAAc,EAAC,EAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC;QAC1E,eAAe,EAAE,IAAA,uBAAc,EAAC,EAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;QACnF,OAAO,EAAE,IAAA,uBAAc,EAAC,EAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC;QACrE,SAAS,EAAE,MAAM,CAAC,KAAK;KACxB,CAAC,CAAA;AACJ,CAAC,CAAA;AAhBY,QAAA,YAAY,gBAgBxB"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/synthetics/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { APIHelper } from './api';
2
+ import { MainReporter, Result, ResultDisplayInfo, Trigger } from './interfaces';
3
+ export declare const waitForBatchToFinish: (api: APIHelper, maxPollingTimeout: number, trigger: Trigger, resultDisplayInfo: ResultDisplayInfo, reporter: MainReporter) => Promise<Result[]>;