@datadog/datadog-ci 2.18.0 → 2.19.0

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 (302) hide show
  1. package/dist/cli.d.ts +3 -1
  2. package/dist/cli.js +9 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/cloud-run/cli.d.ts +1 -0
  5. package/dist/commands/cloud-run/cli.js +5 -0
  6. package/dist/commands/cloud-run/cli.js.map +1 -0
  7. package/dist/commands/cloud-run/constants.d.ts +1 -0
  8. package/dist/commands/cloud-run/constants.js +22 -0
  9. package/dist/commands/cloud-run/constants.js.map +1 -0
  10. package/dist/commands/cloud-run/flare.d.ts +91 -0
  11. package/dist/commands/cloud-run/flare.js +634 -0
  12. package/dist/commands/cloud-run/flare.js.map +1 -0
  13. package/dist/commands/cloud-run/interfaces.d.ts +27 -0
  14. package/dist/commands/cloud-run/interfaces.js +3 -0
  15. package/dist/commands/cloud-run/interfaces.js.map +1 -0
  16. package/dist/commands/cloud-run/renderer.d.ts +4 -0
  17. package/dist/commands/cloud-run/renderer.js +42 -0
  18. package/dist/commands/cloud-run/renderer.js.map +1 -0
  19. package/dist/commands/dsyms/renderer.js +6 -6
  20. package/dist/commands/dsyms/renderer.js.map +1 -1
  21. package/dist/commands/dsyms/upload.d.ts +5 -5
  22. package/dist/commands/dsyms/upload.js +66 -42
  23. package/dist/commands/dsyms/upload.js.map +1 -1
  24. package/dist/commands/dsyms/utils.d.ts +1 -1
  25. package/dist/commands/dsyms/utils.js +3 -3
  26. package/dist/commands/dsyms/utils.js.map +1 -1
  27. package/dist/commands/flutter-symbols/helpers.js +8 -4
  28. package/dist/commands/flutter-symbols/helpers.js.map +1 -1
  29. package/dist/commands/flutter-symbols/renderer.js +2 -2
  30. package/dist/commands/flutter-symbols/renderer.js.map +1 -1
  31. package/dist/commands/flutter-symbols/upload.d.ts +13 -13
  32. package/dist/commands/flutter-symbols/upload.js +66 -66
  33. package/dist/commands/flutter-symbols/upload.js.map +1 -1
  34. package/dist/commands/gate/api.js +4 -2
  35. package/dist/commands/gate/api.js.map +1 -1
  36. package/dist/commands/gate/evaluate.d.ts +18 -6
  37. package/dist/commands/gate/evaluate.js +116 -40
  38. package/dist/commands/gate/evaluate.js.map +1 -1
  39. package/dist/commands/gate/interfaces.d.ts +5 -0
  40. package/dist/commands/gate/renderer.js +16 -14
  41. package/dist/commands/gate/renderer.js.map +1 -1
  42. package/dist/commands/gate/utils.d.ts +1 -0
  43. package/dist/commands/gate/utils.js +8 -4
  44. package/dist/commands/gate/utils.js.map +1 -1
  45. package/dist/commands/git-metadata/git.d.ts +1 -1
  46. package/dist/commands/git-metadata/git.js +7 -3
  47. package/dist/commands/git-metadata/git.js.map +1 -1
  48. package/dist/commands/git-metadata/gitdb.d.ts +1 -1
  49. package/dist/commands/git-metadata/gitdb.js +7 -7
  50. package/dist/commands/git-metadata/gitdb.js.map +1 -1
  51. package/dist/commands/git-metadata/index.js +5 -1
  52. package/dist/commands/git-metadata/index.js.map +1 -1
  53. package/dist/commands/git-metadata/library.d.ts +1 -1
  54. package/dist/commands/git-metadata/library.js +13 -13
  55. package/dist/commands/git-metadata/library.js.map +1 -1
  56. package/dist/commands/git-metadata/upload.d.ts +5 -5
  57. package/dist/commands/git-metadata/upload.js +30 -32
  58. package/dist/commands/git-metadata/upload.js.map +1 -1
  59. package/dist/commands/junit/api.js +4 -4
  60. package/dist/commands/junit/api.js.map +1 -1
  61. package/dist/commands/junit/id.js +1 -1
  62. package/dist/commands/junit/id.js.map +1 -1
  63. package/dist/commands/junit/renderer.d.ts +1 -1
  64. package/dist/commands/junit/renderer.js +3 -3
  65. package/dist/commands/junit/renderer.js.map +1 -1
  66. package/dist/commands/junit/upload.d.ts +12 -11
  67. package/dist/commands/junit/upload.js +74 -63
  68. package/dist/commands/junit/upload.js.map +1 -1
  69. package/dist/commands/junit/utils.d.ts +1 -2
  70. package/dist/commands/junit/utils.js +5 -10
  71. package/dist/commands/junit/utils.js.map +1 -1
  72. package/dist/commands/lambda/constants.d.ts +13 -11
  73. package/dist/commands/lambda/constants.js +41 -70
  74. package/dist/commands/lambda/constants.js.map +1 -1
  75. package/dist/commands/lambda/flare.d.ts +25 -74
  76. package/dist/commands/lambda/flare.js +182 -332
  77. package/dist/commands/lambda/flare.js.map +1 -1
  78. package/dist/commands/lambda/functions/commons.d.ts +8 -14
  79. package/dist/commands/lambda/functions/commons.js +57 -69
  80. package/dist/commands/lambda/functions/commons.js.map +1 -1
  81. package/dist/commands/lambda/functions/instrument.js +66 -65
  82. package/dist/commands/lambda/functions/instrument.js.map +1 -1
  83. package/dist/commands/lambda/functions/uninstrument.js +38 -37
  84. package/dist/commands/lambda/functions/uninstrument.js.map +1 -1
  85. package/dist/commands/lambda/functions/versionChecker.d.ts +2 -2
  86. package/dist/commands/lambda/instrument.d.ts +22 -20
  87. package/dist/commands/lambda/instrument.js +78 -69
  88. package/dist/commands/lambda/instrument.js.map +1 -1
  89. package/dist/commands/lambda/loggroup.js +8 -8
  90. package/dist/commands/lambda/loggroup.js.map +1 -1
  91. package/dist/commands/lambda/prompt.d.ts +1 -4
  92. package/dist/commands/lambda/prompt.js +34 -71
  93. package/dist/commands/lambda/prompt.js.map +1 -1
  94. package/dist/commands/lambda/renderers/__mocks__/instrument-uninstrument-renderer.d.ts +2 -0
  95. package/dist/commands/lambda/renderers/__mocks__/instrument-uninstrument-renderer.js +11 -0
  96. package/dist/commands/lambda/renderers/__mocks__/instrument-uninstrument-renderer.js.map +1 -0
  97. package/dist/commands/lambda/renderers/common-renderer.d.ts +0 -26
  98. package/dist/commands/lambda/renderers/common-renderer.js +4 -32
  99. package/dist/commands/lambda/renderers/common-renderer.js.map +1 -1
  100. package/dist/commands/lambda/renderers/instrument-uninstrument-renderer.d.ts +2 -2
  101. package/dist/commands/lambda/renderers/instrument-uninstrument-renderer.js +57 -49
  102. package/dist/commands/lambda/renderers/instrument-uninstrument-renderer.js.map +1 -1
  103. package/dist/commands/lambda/tags.js +7 -7
  104. package/dist/commands/lambda/tags.js.map +1 -1
  105. package/dist/commands/lambda/uninstrument.d.ts +25 -7
  106. package/dist/commands/lambda/uninstrument.js +59 -49
  107. package/dist/commands/lambda/uninstrument.js.map +1 -1
  108. package/dist/commands/metric/metric.d.ts +4 -3
  109. package/dist/commands/metric/metric.js +10 -9
  110. package/dist/commands/metric/metric.js.map +1 -1
  111. package/dist/commands/react-native/codepush.d.ts +11 -10
  112. package/dist/commands/react-native/codepush.js +17 -19
  113. package/dist/commands/react-native/codepush.js.map +1 -1
  114. package/dist/commands/react-native/interfaces.d.ts +1 -1
  115. package/dist/commands/react-native/renderer.js +6 -6
  116. package/dist/commands/react-native/renderer.js.map +1 -1
  117. package/dist/commands/react-native/upload.d.ts +12 -12
  118. package/dist/commands/react-native/upload.js +67 -45
  119. package/dist/commands/react-native/upload.js.map +1 -1
  120. package/dist/commands/react-native/utils.js +2 -1
  121. package/dist/commands/react-native/utils.js.map +1 -1
  122. package/dist/commands/react-native/validation.js +1 -1
  123. package/dist/commands/react-native/validation.js.map +1 -1
  124. package/dist/commands/react-native/xcode.d.ts +6 -6
  125. package/dist/commands/react-native/xcode.js +25 -29
  126. package/dist/commands/react-native/xcode.js.map +1 -1
  127. package/dist/commands/sarif/api.js +6 -22
  128. package/dist/commands/sarif/api.js.map +1 -1
  129. package/dist/commands/sarif/renderer.d.ts +1 -1
  130. package/dist/commands/sarif/renderer.js +1 -1
  131. package/dist/commands/sarif/renderer.js.map +1 -1
  132. package/dist/commands/sarif/upload.d.ts +6 -6
  133. package/dist/commands/sarif/upload.js +46 -37
  134. package/dist/commands/sarif/upload.js.map +1 -1
  135. package/dist/commands/sbom/api.d.ts +7 -0
  136. package/dist/commands/sbom/api.js +49 -0
  137. package/dist/commands/sbom/api.js.map +1 -0
  138. package/dist/commands/sbom/cli.d.ts +1 -0
  139. package/dist/commands/sbom/cli.js +5 -0
  140. package/dist/commands/sbom/cli.js.map +1 -0
  141. package/dist/commands/sbom/constants.d.ts +2 -0
  142. package/dist/commands/sbom/constants.js +6 -0
  143. package/dist/commands/sbom/constants.js.map +1 -0
  144. package/dist/commands/sbom/json-schema/cyclonedx/bom-1.4.schema.json +1687 -0
  145. package/dist/commands/sbom/json-schema/jsf/jsf-0.82.schema.json +244 -0
  146. package/dist/commands/sbom/json-schema/spdx/spdx.schema.json +507 -0
  147. package/dist/commands/sbom/protobuf/bom-1.4.d.ts +11788 -0
  148. package/dist/commands/sbom/protobuf/bom-1.4.js +5161 -0
  149. package/dist/commands/sbom/protobuf/bom-1.4.js.map +1 -0
  150. package/dist/commands/sbom/protobuf/custom_message.d.ts +11 -0
  151. package/dist/commands/sbom/protobuf/custom_message.js +3 -0
  152. package/dist/commands/sbom/protobuf/custom_message.js.map +1 -0
  153. package/dist/commands/sbom/protobuf/google/protobuf/duration.d.ts +110 -0
  154. package/dist/commands/sbom/protobuf/google/protobuf/duration.js +126 -0
  155. package/dist/commands/sbom/protobuf/google/protobuf/duration.js.map +1 -0
  156. package/dist/commands/sbom/protobuf/google/protobuf/timestamp.d.ts +139 -0
  157. package/dist/commands/sbom/protobuf/google/protobuf/timestamp.js +126 -0
  158. package/dist/commands/sbom/protobuf/google/protobuf/timestamp.js.map +1 -0
  159. package/dist/commands/sbom/protobuf/sbom_intake.d.ts +53 -0
  160. package/dist/commands/sbom/protobuf/sbom_intake.js +383 -0
  161. package/dist/commands/sbom/protobuf/sbom_intake.js.map +1 -0
  162. package/dist/commands/sbom/types.d.ts +4 -0
  163. package/dist/commands/sbom/types.js +3 -0
  164. package/dist/commands/sbom/types.js.map +1 -0
  165. package/dist/commands/sbom/upload.d.ts +16 -0
  166. package/dist/commands/sbom/upload.js +134 -0
  167. package/dist/commands/sbom/upload.js.map +1 -0
  168. package/dist/commands/sbom/validation.d.ts +12 -0
  169. package/dist/commands/sbom/validation.js +51 -0
  170. package/dist/commands/sbom/validation.js.map +1 -0
  171. package/dist/commands/sourcemaps/renderer.js +6 -6
  172. package/dist/commands/sourcemaps/renderer.js.map +1 -1
  173. package/dist/commands/sourcemaps/upload.d.ts +10 -10
  174. package/dist/commands/sourcemaps/upload.js +61 -38
  175. package/dist/commands/sourcemaps/upload.js.map +1 -1
  176. package/dist/commands/sourcemaps/validation.js +4 -4
  177. package/dist/commands/sourcemaps/validation.js.map +1 -1
  178. package/dist/commands/stepfunctions/awsCommands.js +10 -10
  179. package/dist/commands/stepfunctions/awsCommands.js.map +1 -1
  180. package/dist/commands/stepfunctions/helpers.d.ts +4 -4
  181. package/dist/commands/stepfunctions/helpers.js +4 -4
  182. package/dist/commands/stepfunctions/helpers.js.map +1 -1
  183. package/dist/commands/stepfunctions/instrument.d.ts +5 -4
  184. package/dist/commands/stepfunctions/instrument.js +30 -31
  185. package/dist/commands/stepfunctions/instrument.js.map +1 -1
  186. package/dist/commands/stepfunctions/uninstrument.d.ts +6 -1
  187. package/dist/commands/stepfunctions/uninstrument.js +23 -23
  188. package/dist/commands/stepfunctions/uninstrument.js.map +1 -1
  189. package/dist/commands/synthetics/api.d.ts +1 -1
  190. package/dist/commands/synthetics/api.js +11 -11
  191. package/dist/commands/synthetics/api.js.map +1 -1
  192. package/dist/commands/synthetics/errors.d.ts +3 -3
  193. package/dist/commands/synthetics/index.js +5 -1
  194. package/dist/commands/synthetics/index.js.map +1 -1
  195. package/dist/commands/synthetics/interfaces.d.ts +8 -7
  196. package/dist/commands/synthetics/interfaces.js +2 -2
  197. package/dist/commands/synthetics/interfaces.js.map +1 -1
  198. package/dist/commands/synthetics/mobile.d.ts +1 -1
  199. package/dist/commands/synthetics/mobile.js +26 -20
  200. package/dist/commands/synthetics/mobile.js.map +1 -1
  201. package/dist/commands/synthetics/reporters/default.d.ts +2 -2
  202. package/dist/commands/synthetics/reporters/default.js +17 -19
  203. package/dist/commands/synthetics/reporters/default.js.map +1 -1
  204. package/dist/commands/synthetics/reporters/junit.d.ts +2 -2
  205. package/dist/commands/synthetics/reporters/junit.js +11 -11
  206. package/dist/commands/synthetics/reporters/junit.js.map +1 -1
  207. package/dist/commands/synthetics/run-tests-command.d.ts +21 -19
  208. package/dist/commands/synthetics/run-tests-command.js +108 -42
  209. package/dist/commands/synthetics/run-tests-command.js.map +1 -1
  210. package/dist/commands/synthetics/run-tests-lib.d.ts +1 -1
  211. package/dist/commands/synthetics/run-tests-lib.js +16 -16
  212. package/dist/commands/synthetics/run-tests-lib.js.map +1 -1
  213. package/dist/commands/synthetics/tunnel/crypto.js +3 -3
  214. package/dist/commands/synthetics/tunnel/crypto.js.map +1 -1
  215. package/dist/commands/synthetics/tunnel/tunnel.js +11 -11
  216. package/dist/commands/synthetics/tunnel/tunnel.js.map +1 -1
  217. package/dist/commands/synthetics/tunnel/websocket.d.ts +1 -0
  218. package/dist/commands/synthetics/tunnel/websocket.js +7 -3
  219. package/dist/commands/synthetics/tunnel/websocket.js.map +1 -1
  220. package/dist/commands/synthetics/upload-application-command.d.ts +10 -8
  221. package/dist/commands/synthetics/upload-application-command.js +36 -13
  222. package/dist/commands/synthetics/upload-application-command.js.map +1 -1
  223. package/dist/commands/synthetics/utils.d.ts +12 -12
  224. package/dist/commands/synthetics/utils.js +52 -47
  225. package/dist/commands/synthetics/utils.js.map +1 -1
  226. package/dist/commands/tag/tag.d.ts +4 -3
  227. package/dist/commands/tag/tag.js +10 -9
  228. package/dist/commands/tag/tag.js.map +1 -1
  229. package/dist/commands/trace/api.js +4 -4
  230. package/dist/commands/trace/api.js.map +1 -1
  231. package/dist/commands/trace/interfaces.d.ts +1 -1
  232. package/dist/commands/trace/trace.d.ts +5 -4
  233. package/dist/commands/trace/trace.js +11 -10
  234. package/dist/commands/trace/trace.js.map +1 -1
  235. package/dist/commands/version/cli.js +6 -5
  236. package/dist/commands/version/cli.js.map +1 -1
  237. package/dist/constants.d.ts +17 -0
  238. package/dist/constants.js +65 -1
  239. package/dist/constants.js.map +1 -1
  240. package/dist/helpers/api.d.ts +5 -0
  241. package/dist/helpers/api.js +16 -0
  242. package/dist/helpers/api.js.map +1 -0
  243. package/dist/helpers/base-intake-url.d.ts +1 -1
  244. package/dist/helpers/ci.d.ts +13 -13
  245. package/dist/helpers/ci.js +17 -17
  246. package/dist/helpers/ci.js.map +1 -1
  247. package/dist/helpers/config.d.ts +5 -0
  248. package/dist/helpers/config.js +3 -0
  249. package/dist/helpers/config.js.map +1 -0
  250. package/dist/helpers/flare.d.ts +41 -0
  251. package/dist/helpers/flare.js +191 -0
  252. package/dist/helpers/flare.js.map +1 -0
  253. package/dist/helpers/fs.d.ts +31 -0
  254. package/dist/helpers/fs.js +117 -0
  255. package/dist/helpers/fs.js.map +1 -0
  256. package/dist/helpers/git/format-git-sourcemaps-data.js +7 -3
  257. package/dist/helpers/git/format-git-sourcemaps-data.js.map +1 -1
  258. package/dist/helpers/git/format-git-span-data.js +6 -6
  259. package/dist/helpers/git/format-git-span-data.js.map +1 -1
  260. package/dist/helpers/git/get-git-data.js +3 -3
  261. package/dist/helpers/git/get-git-data.js.map +1 -1
  262. package/dist/helpers/interfaces.d.ts +9 -3
  263. package/dist/helpers/logger.js +1 -1
  264. package/dist/helpers/logger.js.map +1 -1
  265. package/dist/helpers/plist.d.ts +1 -1
  266. package/dist/helpers/plist.js +1 -1
  267. package/dist/helpers/plist.js.map +1 -1
  268. package/dist/helpers/prompt.d.ts +7 -0
  269. package/dist/helpers/prompt.js +57 -0
  270. package/dist/helpers/prompt.js.map +1 -0
  271. package/dist/helpers/renderer.d.ts +60 -0
  272. package/dist/helpers/renderer.js +98 -0
  273. package/dist/helpers/renderer.js.map +1 -0
  274. package/dist/helpers/retry.d.ts +1 -1
  275. package/dist/helpers/retry.js +3 -3
  276. package/dist/helpers/retry.js.map +1 -1
  277. package/dist/helpers/tags.d.ts +8 -0
  278. package/dist/helpers/tags.js +27 -1
  279. package/dist/helpers/tags.js.map +1 -1
  280. package/dist/helpers/upload.js +3 -3
  281. package/dist/helpers/upload.js.map +1 -1
  282. package/dist/helpers/user-provided-git.js +6 -6
  283. package/dist/helpers/user-provided-git.js.map +1 -1
  284. package/dist/helpers/utils.d.ts +12 -5
  285. package/dist/helpers/utils.js +57 -25
  286. package/dist/helpers/utils.js.map +1 -1
  287. package/dist/helpers/validation.d.ts +3 -1
  288. package/dist/helpers/validation.js +27 -1
  289. package/dist/helpers/validation.js.map +1 -1
  290. package/dist/helpers/version.d.ts +4 -0
  291. package/dist/helpers/version.js +9 -0
  292. package/dist/helpers/version.js.map +1 -0
  293. package/dist/index.d.ts +4 -4
  294. package/dist/index.js +11 -8
  295. package/dist/index.js.map +1 -1
  296. package/package.json +28 -13
  297. package/dist/commands/lambda/renderers/flare-renderer.d.ts +0 -9
  298. package/dist/commands/lambda/renderers/flare-renderer.js +0 -22
  299. package/dist/commands/lambda/renderers/flare-renderer.js.map +0 -1
  300. package/dist/helpers/file.d.ts +0 -1
  301. package/dist/helpers/file.js +0 -9
  302. package/dist/helpers/file.js.map +0 -1
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.SBOMEntity = exports.SBOMPayload = exports.sBOMSourceTypeToJSON = exports.sBOMSourceTypeFromJSON = exports.SBOMSourceType = exports.protobufPackage = void 0;
27
+ /* eslint-disable */
28
+ const _m0 = __importStar(require("protobufjs/minimal"));
29
+ const bom_1_4_1 = require("./bom-1.4");
30
+ const duration_1 = require("./google/protobuf/duration");
31
+ const timestamp_1 = require("./google/protobuf/timestamp");
32
+ exports.protobufPackage = 'appsecpb';
33
+ var SBOMSourceType;
34
+ (function (SBOMSourceType) {
35
+ SBOMSourceType[SBOMSourceType["UNSPECIFIED"] = 0] = "UNSPECIFIED";
36
+ SBOMSourceType[SBOMSourceType["CONTAINER_IMAGE_LAYERS"] = 1] = "CONTAINER_IMAGE_LAYERS";
37
+ SBOMSourceType[SBOMSourceType["CONTAINER_FILE_SYSTEM"] = 2] = "CONTAINER_FILE_SYSTEM";
38
+ SBOMSourceType[SBOMSourceType["HOST_FILE_SYSTEM"] = 3] = "HOST_FILE_SYSTEM";
39
+ SBOMSourceType[SBOMSourceType["CI_PIPELINE"] = 4] = "CI_PIPELINE";
40
+ SBOMSourceType[SBOMSourceType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
41
+ })(SBOMSourceType || (exports.SBOMSourceType = SBOMSourceType = {}));
42
+ function sBOMSourceTypeFromJSON(object) {
43
+ switch (object) {
44
+ case 0:
45
+ case 'UNSPECIFIED':
46
+ return SBOMSourceType.UNSPECIFIED;
47
+ case 1:
48
+ case 'CONTAINER_IMAGE_LAYERS':
49
+ return SBOMSourceType.CONTAINER_IMAGE_LAYERS;
50
+ case 2:
51
+ case 'CONTAINER_FILE_SYSTEM':
52
+ return SBOMSourceType.CONTAINER_FILE_SYSTEM;
53
+ case 3:
54
+ case 'HOST_FILE_SYSTEM':
55
+ return SBOMSourceType.HOST_FILE_SYSTEM;
56
+ case 4:
57
+ case 'CI_PIPELINE':
58
+ return SBOMSourceType.CI_PIPELINE;
59
+ case -1:
60
+ case 'UNRECOGNIZED':
61
+ default:
62
+ return SBOMSourceType.UNRECOGNIZED;
63
+ }
64
+ }
65
+ exports.sBOMSourceTypeFromJSON = sBOMSourceTypeFromJSON;
66
+ function sBOMSourceTypeToJSON(object) {
67
+ switch (object) {
68
+ case SBOMSourceType.UNSPECIFIED:
69
+ return 'UNSPECIFIED';
70
+ case SBOMSourceType.CONTAINER_IMAGE_LAYERS:
71
+ return 'CONTAINER_IMAGE_LAYERS';
72
+ case SBOMSourceType.CONTAINER_FILE_SYSTEM:
73
+ return 'CONTAINER_FILE_SYSTEM';
74
+ case SBOMSourceType.HOST_FILE_SYSTEM:
75
+ return 'HOST_FILE_SYSTEM';
76
+ case SBOMSourceType.CI_PIPELINE:
77
+ return 'CI_PIPELINE';
78
+ case SBOMSourceType.UNRECOGNIZED:
79
+ default:
80
+ return 'UNRECOGNIZED';
81
+ }
82
+ }
83
+ exports.sBOMSourceTypeToJSON = sBOMSourceTypeToJSON;
84
+ function createBaseSBOMPayload() {
85
+ return { version: 0, host: '', source: undefined, entities: [], ddEnv: undefined };
86
+ }
87
+ exports.SBOMPayload = {
88
+ encode(message, writer = _m0.Writer.create()) {
89
+ if (message.version !== 0) {
90
+ writer.uint32(8).int32(message.version);
91
+ }
92
+ if (message.host !== '') {
93
+ writer.uint32(18).string(message.host);
94
+ }
95
+ if (message.source !== undefined) {
96
+ writer.uint32(26).string(message.source);
97
+ }
98
+ for (const v of message.entities) {
99
+ exports.SBOMEntity.encode(v, writer.uint32(34).fork()).ldelim();
100
+ }
101
+ if (message.ddEnv !== undefined) {
102
+ writer.uint32(42).string(message.ddEnv);
103
+ }
104
+ return writer;
105
+ },
106
+ decode(input, length) {
107
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
108
+ let end = length === undefined ? reader.len : reader.pos + length;
109
+ const message = createBaseSBOMPayload();
110
+ while (reader.pos < end) {
111
+ const tag = reader.uint32();
112
+ switch (tag >>> 3) {
113
+ case 1:
114
+ if (tag !== 8) {
115
+ break;
116
+ }
117
+ message.version = reader.int32();
118
+ continue;
119
+ case 2:
120
+ if (tag !== 18) {
121
+ break;
122
+ }
123
+ message.host = reader.string();
124
+ continue;
125
+ case 3:
126
+ if (tag !== 26) {
127
+ break;
128
+ }
129
+ message.source = reader.string();
130
+ continue;
131
+ case 4:
132
+ if (tag !== 34) {
133
+ break;
134
+ }
135
+ message.entities.push(exports.SBOMEntity.decode(reader, reader.uint32()));
136
+ continue;
137
+ case 5:
138
+ if (tag !== 42) {
139
+ break;
140
+ }
141
+ message.ddEnv = reader.string();
142
+ continue;
143
+ }
144
+ if ((tag & 7) === 4 || tag === 0) {
145
+ break;
146
+ }
147
+ reader.skipType(tag & 7);
148
+ }
149
+ return message;
150
+ },
151
+ fromJSON(object) {
152
+ return {
153
+ version: isSet(object.version) ? Number(object.version) : 0,
154
+ host: isSet(object.host) ? String(object.host) : '',
155
+ source: isSet(object.source) ? String(object.source) : undefined,
156
+ entities: Array.isArray(object === null || object === void 0 ? void 0 : object.entities) ? object.entities.map((e) => exports.SBOMEntity.fromJSON(e)) : [],
157
+ ddEnv: isSet(object.ddEnv) ? String(object.ddEnv) : undefined,
158
+ };
159
+ },
160
+ toJSON(message) {
161
+ var _a;
162
+ const obj = {};
163
+ if (message.version !== 0) {
164
+ obj.version = Math.round(message.version);
165
+ }
166
+ if (message.host !== '') {
167
+ obj.host = message.host;
168
+ }
169
+ if (message.source !== undefined) {
170
+ obj.source = message.source;
171
+ }
172
+ if ((_a = message.entities) === null || _a === void 0 ? void 0 : _a.length) {
173
+ obj.entities = message.entities.map((e) => exports.SBOMEntity.toJSON(e));
174
+ }
175
+ if (message.ddEnv !== undefined) {
176
+ obj.ddEnv = message.ddEnv;
177
+ }
178
+ return obj;
179
+ },
180
+ create(base) {
181
+ return exports.SBOMPayload.fromPartial(base !== null && base !== void 0 ? base : {});
182
+ },
183
+ fromPartial(object) {
184
+ var _a, _b, _c, _d, _e;
185
+ const message = createBaseSBOMPayload();
186
+ message.version = (_a = object.version) !== null && _a !== void 0 ? _a : 0;
187
+ message.host = (_b = object.host) !== null && _b !== void 0 ? _b : '';
188
+ message.source = (_c = object.source) !== null && _c !== void 0 ? _c : undefined;
189
+ message.entities = ((_d = object.entities) === null || _d === void 0 ? void 0 : _d.map((e) => exports.SBOMEntity.fromPartial(e))) || [];
190
+ message.ddEnv = (_e = object.ddEnv) !== null && _e !== void 0 ? _e : undefined;
191
+ return message;
192
+ },
193
+ };
194
+ function createBaseSBOMEntity() {
195
+ return {
196
+ type: 0,
197
+ id: '',
198
+ ddTags: [],
199
+ generatedAt: undefined,
200
+ repoTags: [],
201
+ inUse: false,
202
+ generationDuration: undefined,
203
+ cyclonedx: undefined,
204
+ };
205
+ }
206
+ exports.SBOMEntity = {
207
+ encode(message, writer = _m0.Writer.create()) {
208
+ if (message.type !== 0) {
209
+ writer.uint32(8).int32(message.type);
210
+ }
211
+ if (message.id !== '') {
212
+ writer.uint32(18).string(message.id);
213
+ }
214
+ for (const v of message.ddTags) {
215
+ writer.uint32(58).string(v);
216
+ }
217
+ if (message.generatedAt !== undefined) {
218
+ timestamp_1.Timestamp.encode(toTimestamp(message.generatedAt), writer.uint32(26).fork()).ldelim();
219
+ }
220
+ for (const v of message.repoTags) {
221
+ writer.uint32(34).string(v);
222
+ }
223
+ if (message.inUse === true) {
224
+ writer.uint32(40).bool(message.inUse);
225
+ }
226
+ if (message.generationDuration !== undefined) {
227
+ duration_1.Duration.encode(message.generationDuration, writer.uint32(50).fork()).ldelim();
228
+ }
229
+ if (message.cyclonedx !== undefined) {
230
+ bom_1_4_1.Bom.encode(message.cyclonedx, writer.uint32(82).fork()).ldelim();
231
+ }
232
+ return writer;
233
+ },
234
+ decode(input, length) {
235
+ const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);
236
+ let end = length === undefined ? reader.len : reader.pos + length;
237
+ const message = createBaseSBOMEntity();
238
+ while (reader.pos < end) {
239
+ const tag = reader.uint32();
240
+ switch (tag >>> 3) {
241
+ case 1:
242
+ if (tag !== 8) {
243
+ break;
244
+ }
245
+ message.type = reader.int32();
246
+ continue;
247
+ case 2:
248
+ if (tag !== 18) {
249
+ break;
250
+ }
251
+ message.id = reader.string();
252
+ continue;
253
+ case 7:
254
+ if (tag !== 58) {
255
+ break;
256
+ }
257
+ message.ddTags.push(reader.string());
258
+ continue;
259
+ case 3:
260
+ if (tag !== 26) {
261
+ break;
262
+ }
263
+ message.generatedAt = fromTimestamp(timestamp_1.Timestamp.decode(reader, reader.uint32()));
264
+ continue;
265
+ case 4:
266
+ if (tag !== 34) {
267
+ break;
268
+ }
269
+ message.repoTags.push(reader.string());
270
+ continue;
271
+ case 5:
272
+ if (tag !== 40) {
273
+ break;
274
+ }
275
+ message.inUse = reader.bool();
276
+ continue;
277
+ case 6:
278
+ if (tag !== 50) {
279
+ break;
280
+ }
281
+ message.generationDuration = duration_1.Duration.decode(reader, reader.uint32());
282
+ continue;
283
+ case 10:
284
+ if (tag !== 82) {
285
+ break;
286
+ }
287
+ message.cyclonedx = bom_1_4_1.Bom.decode(reader, reader.uint32());
288
+ continue;
289
+ }
290
+ if ((tag & 7) === 4 || tag === 0) {
291
+ break;
292
+ }
293
+ reader.skipType(tag & 7);
294
+ }
295
+ return message;
296
+ },
297
+ fromJSON(object) {
298
+ return {
299
+ type: isSet(object.type) ? sBOMSourceTypeFromJSON(object.type) : 0,
300
+ id: isSet(object.id) ? String(object.id) : '',
301
+ ddTags: Array.isArray(object === null || object === void 0 ? void 0 : object.ddTags) ? object.ddTags.map((e) => String(e)) : [],
302
+ generatedAt: isSet(object.generatedAt) ? fromJsonTimestamp(object.generatedAt) : undefined,
303
+ repoTags: Array.isArray(object === null || object === void 0 ? void 0 : object.repoTags) ? object.repoTags.map((e) => String(e)) : [],
304
+ inUse: isSet(object.inUse) ? Boolean(object.inUse) : false,
305
+ generationDuration: isSet(object.generationDuration) ? duration_1.Duration.fromJSON(object.generationDuration) : undefined,
306
+ cyclonedx: isSet(object.cyclonedx) ? bom_1_4_1.Bom.fromJSON(object.cyclonedx) : undefined,
307
+ };
308
+ },
309
+ toJSON(message) {
310
+ var _a, _b;
311
+ const obj = {};
312
+ if (message.type !== 0) {
313
+ obj.type = sBOMSourceTypeToJSON(message.type);
314
+ }
315
+ if (message.id !== '') {
316
+ obj.id = message.id;
317
+ }
318
+ if ((_a = message.ddTags) === null || _a === void 0 ? void 0 : _a.length) {
319
+ obj.ddTags = message.ddTags;
320
+ }
321
+ if (message.generatedAt !== undefined) {
322
+ obj.generatedAt = message.generatedAt.toISOString();
323
+ }
324
+ if ((_b = message.repoTags) === null || _b === void 0 ? void 0 : _b.length) {
325
+ obj.repoTags = message.repoTags;
326
+ }
327
+ if (message.inUse === true) {
328
+ obj.inUse = message.inUse;
329
+ }
330
+ if (message.generationDuration !== undefined) {
331
+ obj.generationDuration = duration_1.Duration.toJSON(message.generationDuration);
332
+ }
333
+ if (message.cyclonedx !== undefined) {
334
+ obj.cyclonedx = bom_1_4_1.Bom.toJSON(message.cyclonedx);
335
+ }
336
+ return obj;
337
+ },
338
+ create(base) {
339
+ return exports.SBOMEntity.fromPartial(base !== null && base !== void 0 ? base : {});
340
+ },
341
+ fromPartial(object) {
342
+ var _a, _b, _c, _d, _e, _f;
343
+ const message = createBaseSBOMEntity();
344
+ message.type = (_a = object.type) !== null && _a !== void 0 ? _a : 0;
345
+ message.id = (_b = object.id) !== null && _b !== void 0 ? _b : '';
346
+ message.ddTags = ((_c = object.ddTags) === null || _c === void 0 ? void 0 : _c.map((e) => e)) || [];
347
+ message.generatedAt = (_d = object.generatedAt) !== null && _d !== void 0 ? _d : undefined;
348
+ message.repoTags = ((_e = object.repoTags) === null || _e === void 0 ? void 0 : _e.map((e) => e)) || [];
349
+ message.inUse = (_f = object.inUse) !== null && _f !== void 0 ? _f : false;
350
+ message.generationDuration =
351
+ object.generationDuration !== undefined && object.generationDuration !== null
352
+ ? duration_1.Duration.fromPartial(object.generationDuration)
353
+ : undefined;
354
+ message.cyclonedx =
355
+ object.cyclonedx !== undefined && object.cyclonedx !== null ? bom_1_4_1.Bom.fromPartial(object.cyclonedx) : undefined;
356
+ return message;
357
+ },
358
+ };
359
+ function toTimestamp(date) {
360
+ const seconds = date.getTime() / 1000;
361
+ const nanos = (date.getTime() % 1000) * 1000000;
362
+ return { seconds, nanos };
363
+ }
364
+ function fromTimestamp(t) {
365
+ let millis = (t.seconds || 0) * 1000;
366
+ millis += (t.nanos || 0) / 1000000;
367
+ return new Date(millis);
368
+ }
369
+ function fromJsonTimestamp(o) {
370
+ if (o instanceof Date) {
371
+ return o;
372
+ }
373
+ else if (typeof o === 'string') {
374
+ return new Date(o);
375
+ }
376
+ else {
377
+ return fromTimestamp(timestamp_1.Timestamp.fromJSON(o));
378
+ }
379
+ }
380
+ function isSet(value) {
381
+ return value !== null && value !== undefined;
382
+ }
383
+ //# sourceMappingURL=sbom_intake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sbom_intake.js","sourceRoot":"","sources":["../../../../src/commands/sbom/protobuf/sbom_intake.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export interface SbomPayloadData {
2
+ filePath: string;
3
+ content: any;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/sbom/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { Command } from 'clipanion';
2
+ export declare class UploadSbomCommand extends Command {
3
+ static paths: string[][];
4
+ static usage: import("clipanion").Usage;
5
+ private basePaths;
6
+ private service;
7
+ private env;
8
+ private tags;
9
+ private debug;
10
+ private config;
11
+ /**
12
+ * Execute the command, which means parse the SBOM file, ensure they are
13
+ * compliant with their schema and upload them to datadog.
14
+ */
15
+ execute(): Promise<0 | 1>;
16
+ }
@@ -0,0 +1,134 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UploadSbomCommand = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const os_1 = __importDefault(require("os"));
18
+ const process_1 = __importDefault(require("process"));
19
+ const chalk_1 = __importDefault(require("chalk"));
20
+ const clipanion_1 = require("clipanion");
21
+ const tags_1 = require("../../helpers/tags");
22
+ const api_1 = require("./api");
23
+ const bom_1_4_1 = require("./protobuf/bom-1.4");
24
+ const sbom_intake_1 = require("./protobuf/sbom_intake");
25
+ const validation_1 = require("./validation");
26
+ const generatePayload = (payloadData, service, tags) => {
27
+ const spanTagsAsStringArray = Object.keys(tags).map((key) => `${key}:${tags[key]}`);
28
+ return sbom_intake_1.SBOMPayload.create({
29
+ host: os_1.default.hostname(),
30
+ source: 'CI',
31
+ entities: [
32
+ sbom_intake_1.SBOMEntity.create({
33
+ id: service,
34
+ type: sbom_intake_1.SBOMSourceType.CI_PIPELINE,
35
+ inUse: true,
36
+ generatedAt: new Date(),
37
+ ddTags: spanTagsAsStringArray,
38
+ cyclonedx: bom_1_4_1.Bom.fromJSON(payloadData.content),
39
+ }),
40
+ ],
41
+ });
42
+ };
43
+ class UploadSbomCommand extends clipanion_1.Command {
44
+ constructor() {
45
+ super(...arguments);
46
+ this.basePaths = clipanion_1.Option.Rest({ required: 1 });
47
+ this.service = clipanion_1.Option.String('--service');
48
+ this.env = clipanion_1.Option.String('--env');
49
+ this.tags = clipanion_1.Option.Array('--tags');
50
+ this.debug = clipanion_1.Option.Boolean('--debug');
51
+ this.config = {
52
+ apiKey: process_1.default.env.DATADOG_API_KEY || process_1.default.env.DD_API_KEY,
53
+ env: process_1.default.env.DD_ENV,
54
+ envVarTags: process_1.default.env.DD_TAGS,
55
+ };
56
+ }
57
+ /**
58
+ * Execute the command, which means parse the SBOM file, ensure they are
59
+ * compliant with their schema and upload them to datadog.
60
+ */
61
+ execute() {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const service = this.service || process_1.default.env.DD_SERVICE;
64
+ if (!service) {
65
+ this.context.stderr.write('Missing service\n');
66
+ return 1;
67
+ }
68
+ this.config.env = this.env || this.config.env;
69
+ if (!this.config.env) {
70
+ this.context.stderr.write('Missing env\n');
71
+ return 1;
72
+ }
73
+ if (!this.basePaths || !this.basePaths.length) {
74
+ this.context.stderr.write('Missing basePath\n');
75
+ return 1;
76
+ }
77
+ if (!this.config.apiKey) {
78
+ this.context.stderr.write('API key not defined\n');
79
+ return 1;
80
+ }
81
+ const api = (0, api_1.getApiHelper)(this.config.apiKey);
82
+ const spanTags = yield (0, tags_1.getSpanTags)(this.config, this.tags);
83
+ const validator = (0, validation_1.getValidator)();
84
+ for (const basePath of this.basePaths) {
85
+ if (this.debug) {
86
+ this.context.stdout.write(`Processing file ${basePath}`);
87
+ }
88
+ if ((0, validation_1.validateSbomFile)(basePath, validator)) {
89
+ // Get the payload to upload
90
+ const payloadData = {
91
+ filePath: basePath,
92
+ content: JSON.parse(fs_1.default.readFileSync(basePath).toString('utf8')),
93
+ };
94
+ // If debug mode is activated, we write the payload in a file
95
+ if (this.debug) {
96
+ const debugFilePath = `${basePath}.payload.pbytes`;
97
+ this.context.stdout.write(`Writing payload for debugging in: ${debugFilePath}\n`);
98
+ const payloadBytes = sbom_intake_1.SBOMPayload.toJSON(generatePayload(payloadData, service, spanTags));
99
+ fs_1.default.writeFileSync(debugFilePath, JSON.stringify(payloadBytes));
100
+ }
101
+ // Upload content
102
+ try {
103
+ const response = yield api(generatePayload(payloadData, service, spanTags));
104
+ if (this.debug) {
105
+ this.context.stdout.write(`Upload done, status: ${response.status}\n`);
106
+ }
107
+ this.context.stdout.write(`File ${basePath} successfully uploaded\n`);
108
+ }
109
+ catch (error) {
110
+ process_1.default.stderr.write(`Error while writing the payload: ${error.message}\n`);
111
+ if (error.response) {
112
+ process_1.default.stderr.write(`API status: ${error.response.status}\n`);
113
+ }
114
+ }
115
+ }
116
+ else {
117
+ this.context.stdout.write(`File ${chalk_1.default.red.bold(basePath)} is not a valid SBOM file.\n`);
118
+ }
119
+ }
120
+ this.context.stdout.write('Upload finished\n');
121
+ return 0;
122
+ });
123
+ }
124
+ }
125
+ exports.UploadSbomCommand = UploadSbomCommand;
126
+ UploadSbomCommand.paths = [['sbom', 'upload']];
127
+ UploadSbomCommand.usage = clipanion_1.Command.Usage({
128
+ description: 'Upload SBOM files to Datadog.',
129
+ details: `
130
+ This command uploads SBOM files to Datadog for dependency tracking.
131
+ `,
132
+ examples: [['Upload the SBOM file sbom.json', 'datadog-ci sbom upload --service my-service file.sbom']],
133
+ });
134
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/sbom/upload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import Ajv from 'ajv';
2
+ /**
3
+ * Get the validate function. Read all the schemas and return
4
+ * the function used to validate all SBOM documents.
5
+ */
6
+ export declare const getValidator: () => Ajv;
7
+ /**
8
+ * Validate an SBOM file.
9
+ * @param path - the path of the file to validate
10
+ * @param ajv - an instance of Ajv fully initialized and ready to use.
11
+ */
12
+ export declare const validateSbomFile: (path: string, ajv: Ajv) => boolean;
@@ -0,0 +1,51 @@
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.validateSbomFile = exports.getValidator = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const ajv_1 = __importDefault(require("ajv"));
9
+ const ajv_formats_1 = __importDefault(require("ajv-formats"));
10
+ const bom_1_4_schema_json_1 = __importDefault(require("./json-schema/cyclonedx/bom-1.4.schema.json"));
11
+ const jsf_0_82_schema_json_1 = __importDefault(require("./json-schema/jsf/jsf-0.82.schema.json"));
12
+ const spdx_schema_json_1 = __importDefault(require("./json-schema/spdx/spdx.schema.json"));
13
+ /**
14
+ * Get the validate function. Read all the schemas and return
15
+ * the function used to validate all SBOM documents.
16
+ */
17
+ const getValidator = () => {
18
+ const ajv = new ajv_1.default({ strict: false, validateFormats: false });
19
+ ajv.addMetaSchema(spdx_schema_json_1.default);
20
+ ajv.addMetaSchema(jsf_0_82_schema_json_1.default);
21
+ (0, ajv_formats_1.default)(ajv);
22
+ return ajv;
23
+ };
24
+ exports.getValidator = getValidator;
25
+ /**
26
+ * Validate an SBOM file.
27
+ * @param path - the path of the file to validate
28
+ * @param ajv - an instance of Ajv fully initialized and ready to use.
29
+ */
30
+ const validateSbomFile = (path, ajv) => {
31
+ try {
32
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
33
+ const fileContent = JSON.parse(fs_1.default.readFileSync(path).toString('utf8'));
34
+ const validateFunction = ajv.compile(bom_1_4_schema_json_1.default);
35
+ const isValid = validateFunction(fileContent);
36
+ if (!isValid) {
37
+ const errors = validateFunction.errors || [];
38
+ errors.forEach((message) => {
39
+ process.stderr.write(`Error while validating file: ${message}\n`);
40
+ });
41
+ return false;
42
+ }
43
+ return true;
44
+ }
45
+ catch (error) {
46
+ process.stderr.write(`Error while reading file: ${error.message}\n`);
47
+ return false;
48
+ }
49
+ };
50
+ exports.validateSbomFile = validateSbomFile;
51
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/commands/sbom/validation.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AAEnB,8CAAqB;AACrB,8DAAoC;AAEpC,sGAAyE;AACzE,kGAA8D;AAC9D,2FAA4D;AAE5D;;;GAGG;AACI,MAAM,YAAY,GAAG,GAAQ,EAAE;IACpC,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAC,CAAC,CAAA;IAC5D,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,CAAA;IAC7B,GAAG,CAAC,aAAa,CAAC,8BAAS,CAAC,CAAA;IAC5B,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAA;IAEf,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAPY,QAAA,YAAY,gBAOxB;AAED;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,GAAQ,EAAW,EAAE;IAClE,IAAI;QACF,mEAAmE;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACtE,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,6BAAe,CAAC,CAAA;QAErD,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;QAE7C,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,IAAI,EAAE,CAAA;YAE5C,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,OAAO,IAAI,CAAC,CAAA;YACnE,CAAC,CAAC,CAAA;YAEF,OAAO,KAAK,CAAA;SACb;QAED,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;QAEpE,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAxBY,QAAA,gBAAgB,oBAwB5B"}