@datadog/datadog-ci 2.40.3 → 2.42.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 (294) hide show
  1. package/README.md +1 -0
  2. package/dist/commands/deployment/cli.js +2 -1
  3. package/dist/commands/deployment/cli.js.map +1 -1
  4. package/dist/commands/deployment/correlate.d.ts +18 -0
  5. package/dist/commands/deployment/correlate.js +154 -0
  6. package/dist/commands/deployment/correlate.js.map +1 -0
  7. package/dist/commands/dsyms/utils.js +2 -4
  8. package/dist/commands/dsyms/utils.js.map +1 -1
  9. package/dist/commands/elf-symbols/elf.d.ts +5 -3
  10. package/dist/commands/elf-symbols/elf.js +18 -16
  11. package/dist/commands/elf-symbols/elf.js.map +1 -1
  12. package/dist/commands/elf-symbols/helpers.js +1 -1
  13. package/dist/commands/elf-symbols/interfaces.d.ts +6 -2
  14. package/dist/commands/elf-symbols/upload.d.ts +3 -0
  15. package/dist/commands/elf-symbols/upload.js +46 -22
  16. package/dist/commands/elf-symbols/upload.js.map +1 -1
  17. package/dist/commands/sarif/renderer.d.ts +1 -1
  18. package/dist/commands/sarif/renderer.js +5 -2
  19. package/dist/commands/sarif/renderer.js.map +1 -1
  20. package/dist/commands/sarif/upload.d.ts +1 -0
  21. package/dist/commands/sarif/upload.js +12 -35
  22. package/dist/commands/sarif/upload.js.map +1 -1
  23. package/dist/commands/sarif/validation.d.ts +15 -0
  24. package/dist/commands/sarif/validation.js +78 -0
  25. package/dist/commands/sarif/validation.js.map +1 -0
  26. package/dist/commands/sbom/upload.d.ts +1 -0
  27. package/dist/commands/sbom/upload.js +6 -14
  28. package/dist/commands/sbom/upload.js.map +1 -1
  29. package/dist/commands/synthetics/batch.js +3 -2
  30. package/dist/commands/synthetics/batch.js.map +1 -1
  31. package/dist/commands/synthetics/compatibility.d.ts +2 -2
  32. package/dist/commands/synthetics/compatibility.js +26 -26
  33. package/dist/commands/synthetics/compatibility.js.map +1 -1
  34. package/dist/commands/synthetics/interfaces.d.ts +3 -2
  35. package/dist/commands/synthetics/interfaces.js.map +1 -1
  36. package/dist/commands/synthetics/reporters/junit.d.ts +1 -0
  37. package/dist/commands/synthetics/reporters/junit.js +1 -0
  38. package/dist/commands/synthetics/reporters/junit.js.map +1 -1
  39. package/dist/commands/synthetics/run-tests-command.d.ts +1 -0
  40. package/dist/commands/synthetics/run-tests-command.js +25 -17
  41. package/dist/commands/synthetics/run-tests-command.js.map +1 -1
  42. package/dist/commands/synthetics/utils/internal.d.ts +4 -0
  43. package/dist/commands/synthetics/utils/internal.js +37 -2
  44. package/dist/commands/synthetics/utils/internal.js.map +1 -1
  45. package/dist/commands/synthetics/utils/public.d.ts +3 -0
  46. package/dist/commands/synthetics/utils/public.js +3 -0
  47. package/dist/commands/synthetics/utils/public.js.map +1 -1
  48. package/dist/helpers/git/get-git-data.d.ts +2 -0
  49. package/dist/helpers/git/get-git-data.js +11 -1
  50. package/dist/helpers/git/get-git-data.js.map +1 -1
  51. package/dist/helpers/tags.d.ts +2 -1
  52. package/dist/helpers/tags.js +3 -2
  53. package/dist/helpers/tags.js.map +1 -1
  54. package/package.json +14 -12
  55. package/dist/__tests__/cli.test.d.ts +0 -1
  56. package/dist/__tests__/cli.test.js +0 -41
  57. package/dist/__tests__/cli.test.js.map +0 -1
  58. package/dist/commands/cloud-run/__tests__/fixtures.d.ts +0 -2
  59. package/dist/commands/cloud-run/__tests__/fixtures.js +0 -12
  60. package/dist/commands/cloud-run/__tests__/fixtures.js.map +0 -1
  61. package/dist/commands/cloud-run/__tests__/flare.test.d.ts +0 -1
  62. package/dist/commands/cloud-run/__tests__/flare.test.js +0 -557
  63. package/dist/commands/cloud-run/__tests__/flare.test.js.map +0 -1
  64. package/dist/commands/deployment/__tests__/mark.test.d.ts +0 -1
  65. package/dist/commands/deployment/__tests__/mark.test.js +0 -47
  66. package/dist/commands/deployment/__tests__/mark.test.js.map +0 -1
  67. package/dist/commands/dora/__tests__/deployment.test.d.ts +0 -1
  68. package/dist/commands/dora/__tests__/deployment.test.js +0 -201
  69. package/dist/commands/dora/__tests__/deployment.test.js.map +0 -1
  70. package/dist/commands/dsyms/__tests__/upload.test.d.ts +0 -1
  71. package/dist/commands/dsyms/__tests__/upload.test.js +0 -346
  72. package/dist/commands/dsyms/__tests__/upload.test.js.map +0 -1
  73. package/dist/commands/dsyms/__tests__/utils.test.d.ts +0 -1
  74. package/dist/commands/dsyms/__tests__/utils.test.js +0 -103
  75. package/dist/commands/dsyms/__tests__/utils.test.js.map +0 -1
  76. package/dist/commands/elf-symbols/__tests__/elf.test.d.ts +0 -1
  77. package/dist/commands/elf-symbols/__tests__/elf.test.js +0 -813
  78. package/dist/commands/elf-symbols/__tests__/elf.test.js.map +0 -1
  79. package/dist/commands/elf-symbols/__tests__/upload.test.d.ts +0 -1
  80. package/dist/commands/elf-symbols/__tests__/upload.test.js +0 -249
  81. package/dist/commands/elf-symbols/__tests__/upload.test.js.map +0 -1
  82. package/dist/commands/flutter-symbols/__tests__/upload.test.d.ts +0 -1
  83. package/dist/commands/flutter-symbols/__tests__/upload.test.js +0 -617
  84. package/dist/commands/flutter-symbols/__tests__/upload.test.js.map +0 -1
  85. package/dist/commands/gate/__tests__/evaluate.test.d.ts +0 -1
  86. package/dist/commands/gate/__tests__/evaluate.test.js +0 -398
  87. package/dist/commands/gate/__tests__/evaluate.test.js.map +0 -1
  88. package/dist/commands/gate/__tests__/scope.test.d.ts +0 -1
  89. package/dist/commands/gate/__tests__/scope.test.js +0 -29
  90. package/dist/commands/gate/__tests__/scope.test.js.map +0 -1
  91. package/dist/commands/git-metadata/__tests__/git.test.d.ts +0 -1
  92. package/dist/commands/git-metadata/__tests__/git.test.js +0 -132
  93. package/dist/commands/git-metadata/__tests__/git.test.js.map +0 -1
  94. package/dist/commands/git-metadata/__tests__/gitdb.test.d.ts +0 -1
  95. package/dist/commands/git-metadata/__tests__/gitdb.test.js +0 -1386
  96. package/dist/commands/git-metadata/__tests__/gitdb.test.js.map +0 -1
  97. package/dist/commands/git-metadata/__tests__/library.test.d.ts +0 -1
  98. package/dist/commands/git-metadata/__tests__/library.test.js +0 -118
  99. package/dist/commands/git-metadata/__tests__/library.test.js.map +0 -1
  100. package/dist/commands/git-metadata/__tests__/upload.test.d.ts +0 -1
  101. package/dist/commands/git-metadata/__tests__/upload.test.js +0 -52
  102. package/dist/commands/git-metadata/__tests__/upload.test.js.map +0 -1
  103. package/dist/commands/junit/__tests__/id.test.d.ts +0 -1
  104. package/dist/commands/junit/__tests__/id.test.js +0 -24
  105. package/dist/commands/junit/__tests__/id.test.js.map +0 -1
  106. package/dist/commands/junit/__tests__/upload.test.d.ts +0 -1
  107. package/dist/commands/junit/__tests__/upload.test.js +0 -495
  108. package/dist/commands/junit/__tests__/upload.test.js.map +0 -1
  109. package/dist/commands/lambda/__tests__/fixtures.d.ts +0 -51
  110. package/dist/commands/lambda/__tests__/fixtures.js +0 -146
  111. package/dist/commands/lambda/__tests__/fixtures.js.map +0 -1
  112. package/dist/commands/lambda/__tests__/flare.test.d.ts +0 -1
  113. package/dist/commands/lambda/__tests__/flare.test.js +0 -730
  114. package/dist/commands/lambda/__tests__/flare.test.js.map +0 -1
  115. package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +0 -1
  116. package/dist/commands/lambda/__tests__/functions/commons.test.js +0 -791
  117. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +0 -1
  118. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.d.ts +0 -1
  119. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js +0 -386
  120. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js.map +0 -1
  121. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.d.ts +0 -1
  122. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js +0 -721
  123. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js.map +0 -1
  124. package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +0 -1
  125. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +0 -513
  126. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +0 -1
  127. package/dist/commands/lambda/__tests__/functions/versionChecker.test.d.ts +0 -1
  128. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js +0 -33
  129. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js.map +0 -1
  130. package/dist/commands/lambda/__tests__/instrument.test.d.ts +0 -1
  131. package/dist/commands/lambda/__tests__/instrument.test.js +0 -1511
  132. package/dist/commands/lambda/__tests__/instrument.test.js.map +0 -1
  133. package/dist/commands/lambda/__tests__/loggroup.test.d.ts +0 -1
  134. package/dist/commands/lambda/__tests__/loggroup.test.js +0 -340
  135. package/dist/commands/lambda/__tests__/loggroup.test.js.map +0 -1
  136. package/dist/commands/lambda/__tests__/prompt.test.d.ts +0 -1
  137. package/dist/commands/lambda/__tests__/prompt.test.js +0 -206
  138. package/dist/commands/lambda/__tests__/prompt.test.js.map +0 -1
  139. package/dist/commands/lambda/__tests__/tags.test.d.ts +0 -1
  140. package/dist/commands/lambda/__tests__/tags.test.js +0 -305
  141. package/dist/commands/lambda/__tests__/tags.test.js.map +0 -1
  142. package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +0 -1
  143. package/dist/commands/lambda/__tests__/uninstrument.test.js +0 -722
  144. package/dist/commands/lambda/__tests__/uninstrument.test.js.map +0 -1
  145. package/dist/commands/measure/__tests__/measure.test.d.ts +0 -1
  146. package/dist/commands/measure/__tests__/measure.test.js +0 -110
  147. package/dist/commands/measure/__tests__/measure.test.js.map +0 -1
  148. package/dist/commands/react-native/__tests__/codepush.test.d.ts +0 -1
  149. package/dist/commands/react-native/__tests__/codepush.test.js +0 -161
  150. package/dist/commands/react-native/__tests__/codepush.test.js.map +0 -1
  151. package/dist/commands/react-native/__tests__/interfaces.test.d.ts +0 -1
  152. package/dist/commands/react-native/__tests__/interfaces.test.js +0 -33
  153. package/dist/commands/react-native/__tests__/interfaces.test.js.map +0 -1
  154. package/dist/commands/react-native/__tests__/upload.test.d.ts +0 -1
  155. package/dist/commands/react-native/__tests__/upload.test.js +0 -238
  156. package/dist/commands/react-native/__tests__/upload.test.js.map +0 -1
  157. package/dist/commands/react-native/__tests__/utils.test.d.ts +0 -1
  158. package/dist/commands/react-native/__tests__/utils.test.js +0 -27
  159. package/dist/commands/react-native/__tests__/utils.test.js.map +0 -1
  160. package/dist/commands/react-native/__tests__/xcode.test.d.ts +0 -1
  161. package/dist/commands/react-native/__tests__/xcode.test.js +0 -465
  162. package/dist/commands/react-native/__tests__/xcode.test.js.map +0 -1
  163. package/dist/commands/sarif/__tests__/upload.test.d.ts +0 -1
  164. package/dist/commands/sarif/__tests__/upload.test.js +0 -228
  165. package/dist/commands/sarif/__tests__/upload.test.js.map +0 -1
  166. package/dist/commands/sbom/__tests__/payload.test.d.ts +0 -1
  167. package/dist/commands/sbom/__tests__/payload.test.js +0 -262
  168. package/dist/commands/sbom/__tests__/payload.test.js.map +0 -1
  169. package/dist/commands/sbom/__tests__/validation.test.d.ts +0 -1
  170. package/dist/commands/sbom/__tests__/validation.test.js +0 -41
  171. package/dist/commands/sbom/__tests__/validation.test.js.map +0 -1
  172. package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +0 -1
  173. package/dist/commands/sourcemaps/__tests__/upload.test.js +0 -270
  174. package/dist/commands/sourcemaps/__tests__/upload.test.js.map +0 -1
  175. package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +0 -1
  176. package/dist/commands/sourcemaps/__tests__/utils.test.js +0 -31
  177. package/dist/commands/sourcemaps/__tests__/utils.test.js.map +0 -1
  178. package/dist/commands/stepfunctions/__tests__/awsCommands.test.d.ts +0 -1
  179. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js +0 -192
  180. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js.map +0 -1
  181. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.d.ts +0 -6
  182. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js +0 -45
  183. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js.map +0 -1
  184. package/dist/commands/stepfunctions/__tests__/fixtures/cli.d.ts +0 -5
  185. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js +0 -19
  186. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js.map +0 -1
  187. package/dist/commands/stepfunctions/__tests__/helpers.test.d.ts +0 -1
  188. package/dist/commands/stepfunctions/__tests__/helpers.test.js +0 -205
  189. package/dist/commands/stepfunctions/__tests__/helpers.test.js.map +0 -1
  190. package/dist/commands/stepfunctions/__tests__/instrument.test.d.ts +0 -1
  191. package/dist/commands/stepfunctions/__tests__/instrument.test.js +0 -431
  192. package/dist/commands/stepfunctions/__tests__/instrument.test.js.map +0 -1
  193. package/dist/commands/stepfunctions/__tests__/uninstrument.test.d.ts +0 -1
  194. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js +0 -166
  195. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js.map +0 -1
  196. package/dist/commands/synthetics/__tests__/api.test.d.ts +0 -1
  197. package/dist/commands/synthetics/__tests__/api.test.js +0 -422
  198. package/dist/commands/synthetics/__tests__/api.test.js.map +0 -1
  199. package/dist/commands/synthetics/__tests__/cli.test.d.ts +0 -1
  200. package/dist/commands/synthetics/__tests__/cli.test.js +0 -1325
  201. package/dist/commands/synthetics/__tests__/cli.test.js.map +0 -1
  202. package/dist/commands/synthetics/__tests__/fixtures.d.ts +0 -149
  203. package/dist/commands/synthetics/__tests__/fixtures.js +0 -507
  204. package/dist/commands/synthetics/__tests__/fixtures.js.map +0 -1
  205. package/dist/commands/synthetics/__tests__/mobile.test.d.ts +0 -1
  206. package/dist/commands/synthetics/__tests__/mobile.test.js +0 -376
  207. package/dist/commands/synthetics/__tests__/mobile.test.js.map +0 -1
  208. package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +0 -1
  209. package/dist/commands/synthetics/__tests__/reporters/default.test.js +0 -354
  210. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +0 -1
  211. package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +0 -1
  212. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +0 -353
  213. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +0 -1
  214. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.d.ts +0 -1
  215. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js +0 -232
  216. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js.map +0 -1
  217. package/dist/commands/synthetics/__tests__/run-tests-lib.test.d.ts +0 -1
  218. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js +0 -735
  219. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js.map +0 -1
  220. package/dist/commands/synthetics/__tests__/test.test.d.ts +0 -1
  221. package/dist/commands/synthetics/__tests__/test.test.js +0 -33
  222. package/dist/commands/synthetics/__tests__/test.test.js.map +0 -1
  223. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.d.ts +0 -1
  224. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js +0 -21
  225. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js.map +0 -1
  226. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.d.ts +0 -1
  227. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js +0 -80
  228. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js.map +0 -1
  229. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.d.ts +0 -1
  230. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +0 -109
  231. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +0 -1
  232. package/dist/commands/synthetics/__tests__/utils/internal.test.d.ts +0 -1
  233. package/dist/commands/synthetics/__tests__/utils/internal.test.js +0 -186
  234. package/dist/commands/synthetics/__tests__/utils/internal.test.js.map +0 -1
  235. package/dist/commands/synthetics/__tests__/utils/public.test.d.ts +0 -1
  236. package/dist/commands/synthetics/__tests__/utils/public.test.js +0 -1526
  237. package/dist/commands/synthetics/__tests__/utils/public.test.js.map +0 -1
  238. package/dist/commands/tag/__tests__/tag.test.d.ts +0 -1
  239. package/dist/commands/tag/__tests__/tag.test.js +0 -75
  240. package/dist/commands/tag/__tests__/tag.test.js.map +0 -1
  241. package/dist/commands/trace/__tests__/trace.test.d.ts +0 -1
  242. package/dist/commands/trace/__tests__/trace.test.js +0 -145
  243. package/dist/commands/trace/__tests__/trace.test.js.map +0 -1
  244. package/dist/commands/unity-symbols/__tests__/upload.test.d.ts +0 -1
  245. package/dist/commands/unity-symbols/__tests__/upload.test.js +0 -369
  246. package/dist/commands/unity-symbols/__tests__/upload.test.js.map +0 -1
  247. package/dist/helpers/__tests__/app.test.d.ts +0 -1
  248. package/dist/helpers/__tests__/app.test.js +0 -31
  249. package/dist/helpers/__tests__/app.test.js.map +0 -1
  250. package/dist/helpers/__tests__/ci.test.d.ts +0 -1
  251. package/dist/helpers/__tests__/ci.test.js +0 -252
  252. package/dist/helpers/__tests__/ci.test.js.map +0 -1
  253. package/dist/helpers/__tests__/fixtures.d.ts +0 -33
  254. package/dist/helpers/__tests__/fixtures.js +0 -71
  255. package/dist/helpers/__tests__/fixtures.js.map +0 -1
  256. package/dist/helpers/__tests__/flare.test.d.ts +0 -1
  257. package/dist/helpers/__tests__/flare.test.js +0 -226
  258. package/dist/helpers/__tests__/flare.test.js.map +0 -1
  259. package/dist/helpers/__tests__/fs.test.d.ts +0 -1
  260. package/dist/helpers/__tests__/fs.test.js +0 -189
  261. package/dist/helpers/__tests__/fs.test.js.map +0 -1
  262. package/dist/helpers/__tests__/plist.test.d.ts +0 -1
  263. package/dist/helpers/__tests__/plist.test.js +0 -43
  264. package/dist/helpers/__tests__/plist.test.js.map +0 -1
  265. package/dist/helpers/__tests__/prompt.test.d.ts +0 -1
  266. package/dist/helpers/__tests__/prompt.test.js +0 -71
  267. package/dist/helpers/__tests__/prompt.test.js.map +0 -1
  268. package/dist/helpers/__tests__/retry.test.d.ts +0 -1
  269. package/dist/helpers/__tests__/retry.test.js +0 -99
  270. package/dist/helpers/__tests__/retry.test.js.map +0 -1
  271. package/dist/helpers/__tests__/tags.test.d.ts +0 -1
  272. package/dist/helpers/__tests__/tags.test.js +0 -71
  273. package/dist/helpers/__tests__/tags.test.js.map +0 -1
  274. package/dist/helpers/__tests__/upload.test.d.ts +0 -1
  275. package/dist/helpers/__tests__/upload.test.js +0 -231
  276. package/dist/helpers/__tests__/upload.test.js.map +0 -1
  277. package/dist/helpers/__tests__/user-provided-git.test.d.ts +0 -1
  278. package/dist/helpers/__tests__/user-provided-git.test.js +0 -119
  279. package/dist/helpers/__tests__/user-provided-git.test.js.map +0 -1
  280. package/dist/helpers/__tests__/utils.test.d.ts +0 -1
  281. package/dist/helpers/__tests__/utils.test.js +0 -429
  282. package/dist/helpers/__tests__/utils.test.js.map +0 -1
  283. package/dist/helpers/__tests__/validation.test.d.ts +0 -1
  284. package/dist/helpers/__tests__/validation.test.js +0 -25
  285. package/dist/helpers/__tests__/validation.test.js.map +0 -1
  286. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.d.ts +0 -1
  287. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js +0 -103
  288. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js.map +0 -1
  289. package/dist/helpers/git/__tests__/format-git-span-data.test.d.ts +0 -1
  290. package/dist/helpers/git/__tests__/format-git-span-data.test.js +0 -121
  291. package/dist/helpers/git/__tests__/format-git-span-data.test.js.map +0 -1
  292. package/dist/helpers/git/__tests__/get-git-data.test.d.ts +0 -1
  293. package/dist/helpers/git/__tests__/get-git-data.test.js +0 -72
  294. package/dist/helpers/git/__tests__/get-git-data.test.js.map +0 -1
@@ -1,721 +0,0 @@
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
- jest.mock('../../loggroup');
13
- const client_lambda_1 = require("@aws-sdk/client-lambda");
14
- const aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
15
- const constants_1 = require("../../../../constants");
16
- const fixtures_1 = require("../../../../helpers/__tests__/fixtures");
17
- const constants_2 = require("../../constants");
18
- const instrument_1 = require("../../functions/instrument");
19
- const fixtures_2 = require("../fixtures");
20
- describe('instrument', () => {
21
- describe('calculateUpdateRequest', () => {
22
- const OLD_ENV = process.env;
23
- beforeEach(() => {
24
- jest.resetModules();
25
- process.env = {};
26
- });
27
- afterAll(() => {
28
- process.env = OLD_ENV;
29
- });
30
- test('calculates an update request with just lambda library layers', () => __awaiter(void 0, void 0, void 0, function* () {
31
- const runtime = client_lambda_1.Runtime.nodejs20x;
32
- const config = {
33
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
34
- Handler: 'index.handler',
35
- Layers: [],
36
- Runtime: runtime,
37
- };
38
- const settings = {
39
- flushMetricsToLogs: false,
40
- layerAWSAccount: fixtures_2.mockAwsAccount,
41
- layerVersion: 5,
42
- mergeXrayTraces: false,
43
- tracingEnabled: false,
44
- };
45
- const region = 'sa-east-1';
46
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
47
- expect(updateRequest).toMatchInlineSnapshot(`
48
- {
49
- "Environment": {
50
- "Variables": {
51
- "DD_FLUSH_TO_LOG": "false",
52
- "DD_LAMBDA_HANDLER": "index.handler",
53
- "DD_MERGE_XRAY_TRACES": "false",
54
- "DD_SITE": "datadoghq.com",
55
- "DD_TRACE_ENABLED": "false",
56
- },
57
- },
58
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
59
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
60
- "Layers": [
61
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
62
- ],
63
- }
64
- `);
65
- }));
66
- test.each([
67
- [client_lambda_1.Runtime.python310, 'Datadog-Python310'],
68
- [client_lambda_1.Runtime.python311, 'Datadog-Python311'],
69
- [client_lambda_1.Runtime.python312, 'Datadog-Python312'],
70
- ])('calculates an update request for %s', (runtime, layer) => __awaiter(void 0, void 0, void 0, function* () {
71
- const config = {
72
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
73
- Handler: 'index.handler',
74
- Layers: [],
75
- Runtime: runtime,
76
- };
77
- const settings = {
78
- flushMetricsToLogs: false,
79
- layerAWSAccount: fixtures_2.mockAwsAccount,
80
- layerVersion: 71,
81
- mergeXrayTraces: false,
82
- tracingEnabled: false,
83
- };
84
- const region = 'sa-east-1';
85
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
86
- expect(updateRequest).toMatchInlineSnapshot(`
87
- {
88
- "Environment": {
89
- "Variables": {
90
- "DD_FLUSH_TO_LOG": "false",
91
- "DD_LAMBDA_HANDLER": "index.handler",
92
- "DD_MERGE_XRAY_TRACES": "false",
93
- "DD_SITE": "datadoghq.com",
94
- "DD_TRACE_ENABLED": "false",
95
- },
96
- },
97
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
98
- "Handler": "datadog_lambda.handler.handler",
99
- "Layers": [
100
- "arn:aws:lambda:sa-east-1:123456789012:layer:${layer}:71",
101
- ],
102
- }
103
- `);
104
- }));
105
- test('calculates an update request with just lambda library layers in arm architecture', () => __awaiter(void 0, void 0, void 0, function* () {
106
- const runtime = client_lambda_1.Runtime.python39;
107
- const config = {
108
- Architectures: [client_lambda_1.Architecture.arm64],
109
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
110
- Handler: 'handler.hello',
111
- Layers: [],
112
- Runtime: runtime,
113
- };
114
- const settings = {
115
- flushMetricsToLogs: false,
116
- layerAWSAccount: fixtures_2.mockAwsAccount,
117
- layerVersion: 11,
118
- mergeXrayTraces: false,
119
- tracingEnabled: false,
120
- };
121
- const region = 'sa-east-1';
122
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
123
- expect(updateRequest).toMatchInlineSnapshot(`
124
- {
125
- "Environment": {
126
- "Variables": {
127
- "DD_FLUSH_TO_LOG": "false",
128
- "DD_LAMBDA_HANDLER": "handler.hello",
129
- "DD_MERGE_XRAY_TRACES": "false",
130
- "DD_SITE": "datadoghq.com",
131
- "DD_TRACE_ENABLED": "false",
132
- },
133
- },
134
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
135
- "Handler": "datadog_lambda.handler.handler",
136
- "Layers": [
137
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39-ARM:11",
138
- ],
139
- }
140
- `);
141
- }));
142
- test('calculates an update request with a lambda library, extension, and DATADOG_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
143
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
144
- const runtime = client_lambda_1.Runtime.nodejs20x;
145
- const config = {
146
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
147
- Handler: 'index.handler',
148
- Layers: [],
149
- Runtime: runtime,
150
- };
151
- const settings = {
152
- extensionVersion: 6,
153
- flushMetricsToLogs: false,
154
- layerAWSAccount: fixtures_2.mockAwsAccount,
155
- layerVersion: 5,
156
- mergeXrayTraces: false,
157
- tracingEnabled: false,
158
- };
159
- const region = 'sa-east-1';
160
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
161
- expect(updateRequest).toMatchInlineSnapshot(`
162
- {
163
- "Environment": {
164
- "Variables": {
165
- "DD_API_KEY": "02aeb762fff59ac0d5ad1536cd9633bd",
166
- "DD_LAMBDA_HANDLER": "index.handler",
167
- "DD_MERGE_XRAY_TRACES": "false",
168
- "DD_SITE": "datadoghq.com",
169
- "DD_TRACE_ENABLED": "false",
170
- },
171
- },
172
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
173
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
174
- "Layers": [
175
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
176
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
177
- ],
178
- }
179
- `);
180
- }));
181
- test('calculates an update request with a lambda library, extension, and DD_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
182
- process.env[constants_1.API_KEY_ENV_VAR] = 'SOME-DD-API-KEY';
183
- const runtime = client_lambda_1.Runtime.nodejs20x;
184
- const config = {
185
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
186
- Handler: 'index.handler',
187
- Layers: [],
188
- Runtime: runtime,
189
- };
190
- const settings = {
191
- extensionVersion: 6,
192
- flushMetricsToLogs: false,
193
- layerAWSAccount: fixtures_2.mockAwsAccount,
194
- layerVersion: 5,
195
- mergeXrayTraces: false,
196
- tracingEnabled: false,
197
- };
198
- const region = 'sa-east-1';
199
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
200
- expect(updateRequest).toMatchInlineSnapshot(`
201
- {
202
- "Environment": {
203
- "Variables": {
204
- "DD_API_KEY": "SOME-DD-API-KEY",
205
- "DD_LAMBDA_HANDLER": "index.handler",
206
- "DD_MERGE_XRAY_TRACES": "false",
207
- "DD_SITE": "datadoghq.com",
208
- "DD_TRACE_ENABLED": "false",
209
- },
210
- },
211
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
212
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
213
- "Layers": [
214
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
215
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
216
- ],
217
- }
218
- `);
219
- }));
220
- test('calculates an update request with a lambda library, extension, and DATADOG_API_KEY_SECRET_ARN', () => __awaiter(void 0, void 0, void 0, function* () {
221
- process.env[constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'some-secret:arn:from:aws';
222
- const runtime = client_lambda_1.Runtime.python39;
223
- const config = {
224
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
225
- Handler: 'index.handler',
226
- Layers: [],
227
- Runtime: runtime,
228
- };
229
- const settings = {
230
- extensionVersion: 11,
231
- flushMetricsToLogs: false,
232
- layerAWSAccount: fixtures_2.mockAwsAccount,
233
- layerVersion: 49,
234
- mergeXrayTraces: false,
235
- tracingEnabled: false,
236
- };
237
- const region = 'sa-east-1';
238
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
239
- expect(updateRequest).toMatchInlineSnapshot(`
240
- {
241
- "Environment": {
242
- "Variables": {
243
- "DD_API_KEY_SECRET_ARN": "some-secret:arn:from:aws",
244
- "DD_LAMBDA_HANDLER": "index.handler",
245
- "DD_MERGE_XRAY_TRACES": "false",
246
- "DD_SITE": "datadoghq.com",
247
- "DD_TRACE_ENABLED": "false",
248
- },
249
- },
250
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
251
- "Handler": "datadog_lambda.handler.handler",
252
- "Layers": [
253
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:11",
254
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39:49",
255
- ],
256
- }
257
- `);
258
- }));
259
- test('calculates an update request with a lambda library, extension, and DATADOG_KMS_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
260
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
261
- const runtime = client_lambda_1.Runtime.python39;
262
- const config = {
263
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
264
- Handler: 'index.handler',
265
- Layers: [],
266
- Runtime: runtime,
267
- };
268
- const settings = {
269
- extensionVersion: 6,
270
- flushMetricsToLogs: false,
271
- layerAWSAccount: fixtures_2.mockAwsAccount,
272
- layerVersion: 5,
273
- mergeXrayTraces: false,
274
- tracingEnabled: false,
275
- };
276
- const region = 'sa-east-1';
277
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
278
- expect(updateRequest).toMatchInlineSnapshot(`
279
- {
280
- "Environment": {
281
- "Variables": {
282
- "DD_KMS_API_KEY": "5678",
283
- "DD_LAMBDA_HANDLER": "index.handler",
284
- "DD_MERGE_XRAY_TRACES": "false",
285
- "DD_SITE": "datadoghq.com",
286
- "DD_TRACE_ENABLED": "false",
287
- },
288
- },
289
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
290
- "Handler": "datadog_lambda.handler.handler",
291
- "Layers": [
292
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
293
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39:5",
294
- ],
295
- }
296
- `);
297
- }));
298
- test('prioritizes the KMS API KEY when all of them are exported', () => __awaiter(void 0, void 0, void 0, function* () {
299
- process.env = {
300
- [constants_1.CI_API_KEY_ENV_VAR]: fixtures_1.MOCK_DATADOG_API_KEY,
301
- [constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR]: '5678',
302
- [constants_2.CI_KMS_API_KEY_ENV_VAR]: 'should-be-selected',
303
- };
304
- const config = {
305
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
306
- Handler: 'index.handler',
307
- Layers: [],
308
- };
309
- const runtime = 'python3.9';
310
- const region = 'sa-east-1';
311
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, {}, region, runtime);
312
- expect(updateRequest).toMatchInlineSnapshot(`
313
- {
314
- "Environment": {
315
- "Variables": {
316
- "DD_KMS_API_KEY": "should-be-selected",
317
- "DD_LAMBDA_HANDLER": "index.handler",
318
- "DD_SITE": "datadoghq.com",
319
- },
320
- },
321
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
322
- }
323
- `);
324
- }));
325
- test("doesn't set DD_FLUSH_TO_LOGS when extension is being used", () => __awaiter(void 0, void 0, void 0, function* () {
326
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
327
- const config = {
328
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
329
- Handler: 'index.handler',
330
- Layers: [],
331
- };
332
- const runtime = 'python3.9';
333
- const region = 'sa-east-1';
334
- const settings = {
335
- extensionVersion: 13,
336
- flushMetricsToLogs: true,
337
- mergeXrayTraces: false,
338
- tracingEnabled: false,
339
- };
340
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
341
- expect(updateRequest).toMatchInlineSnapshot(`
342
- {
343
- "Environment": {
344
- "Variables": {
345
- "DD_API_KEY": "02aeb762fff59ac0d5ad1536cd9633bd",
346
- "DD_LAMBDA_HANDLER": "index.handler",
347
- "DD_MERGE_XRAY_TRACES": "false",
348
- "DD_SITE": "datadoghq.com",
349
- "DD_TRACE_ENABLED": "false",
350
- },
351
- },
352
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
353
- "Layers": [
354
- "arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:13",
355
- ],
356
- }
357
- `);
358
- }));
359
- test('by default calculates an update request with DATADOG_SITE being set to datadoghq.com', () => __awaiter(void 0, void 0, void 0, function* () {
360
- const runtime = client_lambda_1.Runtime.python39;
361
- const config = {
362
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
363
- Handler: 'index.handler',
364
- Layers: [],
365
- Runtime: runtime,
366
- };
367
- const settings = {
368
- flushMetricsToLogs: false,
369
- layerAWSAccount: fixtures_2.mockAwsAccount,
370
- mergeXrayTraces: false,
371
- tracingEnabled: false,
372
- };
373
- const region = 'sa-east-1';
374
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
375
- expect(updateRequest).toMatchInlineSnapshot(`
376
- {
377
- "Environment": {
378
- "Variables": {
379
- "DD_FLUSH_TO_LOG": "false",
380
- "DD_LAMBDA_HANDLER": "index.handler",
381
- "DD_MERGE_XRAY_TRACES": "false",
382
- "DD_SITE": "datadoghq.com",
383
- "DD_TRACE_ENABLED": "false",
384
- },
385
- },
386
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
387
- }
388
- `);
389
- }));
390
- test('calculates an update request with DATADOG_SITE being set to datadoghq.eu', () => __awaiter(void 0, void 0, void 0, function* () {
391
- process.env.DATADOG_SITE = 'datadoghq.eu';
392
- const config = {
393
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
394
- Handler: 'index.handler',
395
- Layers: [],
396
- };
397
- const settings = {
398
- flushMetricsToLogs: false,
399
- layerAWSAccount: fixtures_2.mockAwsAccount,
400
- mergeXrayTraces: false,
401
- tracingEnabled: false,
402
- };
403
- const region = 'sa-east-1';
404
- const runtime = 'python3.9';
405
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
406
- expect(updateRequest).toMatchInlineSnapshot(`
407
- {
408
- "Environment": {
409
- "Variables": {
410
- "DD_FLUSH_TO_LOG": "false",
411
- "DD_LAMBDA_HANDLER": "index.handler",
412
- "DD_MERGE_XRAY_TRACES": "false",
413
- "DD_SITE": "datadoghq.eu",
414
- "DD_TRACE_ENABLED": "false",
415
- },
416
- },
417
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
418
- }
419
- `);
420
- }));
421
- test('throws an error when an invalid DATADOG_SITE url is given', () => __awaiter(void 0, void 0, void 0, function* () {
422
- process.env.DATADOG_SITE = 'datacathq.eu';
423
- const config = {
424
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
425
- Handler: 'index.handler',
426
- Layers: [],
427
- };
428
- const settings = {
429
- flushMetricsToLogs: false,
430
- interactive: false,
431
- layerAWSAccount: fixtures_2.mockAwsAccount,
432
- layerVersion: 5,
433
- mergeXrayTraces: false,
434
- tracingEnabled: false,
435
- };
436
- const region = 'us-east-1';
437
- const runtime = 'python3.9';
438
- let error;
439
- try {
440
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
441
- }
442
- catch (e) {
443
- if (e instanceof Error) {
444
- error = e;
445
- }
446
- }
447
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('Warning: Invalid site URL. Must be either datadoghq.com, datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com, ap1.datadoghq.com, or ddog-gov.com.');
448
- }));
449
- test('throws an error when neither DATADOG_API_KEY nor DATADOG_KMS_API_KEY are given through the environment while using extensionVersion', () => __awaiter(void 0, void 0, void 0, function* () {
450
- const config = {
451
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
452
- Handler: 'index.handler',
453
- Layers: [],
454
- };
455
- const settings = {
456
- extensionVersion: 6,
457
- flushMetricsToLogs: false,
458
- layerAWSAccount: fixtures_2.mockAwsAccount,
459
- layerVersion: 5,
460
- mergeXrayTraces: false,
461
- tracingEnabled: false,
462
- };
463
- const region = 'us-east-1';
464
- const runtime = 'python3.9';
465
- let error;
466
- try {
467
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
468
- }
469
- catch (e) {
470
- if (e instanceof Error) {
471
- error = e;
472
- }
473
- }
474
- expect(error === null || error === void 0 ? void 0 : error.message).toBe("When 'extensionLayer' is set, DATADOG_API_KEY, DATADOG_KMS_API_KEY, or DATADOG_API_KEY_SECRET_ARN must also be set");
475
- }));
476
- test('throws error when trying to add `DD_API_KEY_SECRET_ARN` while using sync metrics in a node runtime', () => __awaiter(void 0, void 0, void 0, function* () {
477
- process.env[constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'some-secret:arn:from:aws';
478
- const runtime = client_lambda_1.Runtime.nodejs20x;
479
- const region = 'us-east-1';
480
- const config = {
481
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
482
- Handler: 'index.handler',
483
- Layers: [],
484
- Runtime: runtime,
485
- };
486
- const settings = {
487
- flushMetricsToLogs: false,
488
- layerAWSAccount: fixtures_2.mockAwsAccount,
489
- layerVersion: 13,
490
- mergeXrayTraces: false,
491
- tracingEnabled: false,
492
- };
493
- let error;
494
- try {
495
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
496
- }
497
- catch (e) {
498
- if (e instanceof Error) {
499
- error = e;
500
- }
501
- }
502
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('`apiKeySecretArn` is not supported for Node runtimes when using Synchronous Metrics. Use either `apiKey` or `apiKmsKey`.');
503
- }));
504
- describe('test universal instrumentation workflow for Java and .Net', () => {
505
- const region = 'us-east-1';
506
- const config = {
507
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
508
- Handler: 'index.handler',
509
- Layers: [],
510
- Runtime: 'runtime',
511
- };
512
- const settings = {
513
- flushMetricsToLogs: false,
514
- layerAWSAccount: fixtures_2.mockAwsAccount,
515
- layerVersion: 13,
516
- mergeXrayTraces: false,
517
- tracingEnabled: false,
518
- };
519
- const dotnetRuntime = client_lambda_1.Runtime.dotnet6;
520
- const javaRuntime = client_lambda_1.Runtime.java11;
521
- describe(`test for runtime ${dotnetRuntime}`, () => {
522
- const dotNetConfig = Object.assign(Object.assign({}, config), { Runtime: dotnetRuntime });
523
- const dotNetConfigOnArm86 = Object.assign(Object.assign({}, config), { Runtime: dotnetRuntime, Architectures: [client_lambda_1.Architecture.arm64] });
524
- test('should throw error when the extension version and trace version are not compatible', () => __awaiter(void 0, void 0, void 0, function* () {
525
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
526
- const badSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 24, layerVersion: 3 });
527
- let error;
528
- try {
529
- yield (0, instrument_1.calculateUpdateRequest)(dotNetConfig, badSettings, region, dotnetRuntime);
530
- }
531
- catch (e) {
532
- if (e instanceof Error) {
533
- error = e;
534
- }
535
- }
536
- expect(error === null || error === void 0 ? void 0 : error.message).toBe(`For the ${dotnetRuntime} runtime, the dd-trace version 3 is not compatible with the dd-extension version 24`);
537
- }));
538
- test('should throw error if it is running on arm64 with an old dd-extension version', () => __awaiter(void 0, void 0, void 0, function* () {
539
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
540
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 23 });
541
- let error;
542
- try {
543
- yield (0, instrument_1.calculateUpdateRequest)(dotNetConfigOnArm86, curSettings, region, dotnetRuntime);
544
- }
545
- catch (e) {
546
- if (e instanceof Error) {
547
- error = e;
548
- }
549
- }
550
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('Instrumenting arm64 architecture is not supported for the given dd-extension version. Please choose the latest dd-extension version or use x86_64 architecture.');
551
- }));
552
- const baseVariables = {
553
- DD_KMS_API_KEY: '5678',
554
- DD_MERGE_XRAY_TRACES: 'false',
555
- DD_SITE: 'datadoghq.com',
556
- DD_TRACE_ENABLED: 'false',
557
- };
558
- const compatibleTracerAndExtension = {
559
- Environment: {
560
- Variables: Object.assign(Object.assign({}, baseVariables), { AWS_LAMBDA_EXEC_WRAPPER: '/opt/datadog_wrapper' }),
561
- },
562
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
563
- Layers: [
564
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:25',
565
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-dotnet:4',
566
- ],
567
- };
568
- const oldExtensionVersion = {
569
- Environment: {
570
- Variables: Object.assign(Object.assign({}, baseVariables), { CORECLR_ENABLE_PROFILING: '1', CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}', CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so', DD_DOTNET_TRACER_HOME: '/opt/datadog' }),
571
- },
572
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
573
- Layers: [
574
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:23',
575
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-dotnet:2',
576
- ],
577
- };
578
- const traceUndefined = {
579
- Environment: {
580
- Variables: Object.assign(Object.assign({}, baseVariables), { CORECLR_ENABLE_PROFILING: '1', CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}', CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so', DD_DOTNET_TRACER_HOME: '/opt/datadog' }),
581
- },
582
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
583
- Layers: ['arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:15'],
584
- };
585
- test.each `
586
- extensionVersion | traceVersion | outputResult
587
- ${25} | ${4} | ${compatibleTracerAndExtension}
588
- ${23} | ${2} | ${oldExtensionVersion}
589
- ${15} | ${undefined} | ${traceUndefined}
590
- `('should the output match the expected if extensionVersion=$extensionVersion and traceVersion=$traceVersion', ({ extensionVersion, traceVersion, outputResult }) => __awaiter(void 0, void 0, void 0, function* () {
591
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion, layerVersion: traceVersion });
592
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
593
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(dotNetConfig, curSettings, region, dotnetRuntime);
594
- expect(updateRequest).toEqual(outputResult);
595
- }));
596
- });
597
- describe(`test for runtime ${javaRuntime}`, () => {
598
- const javaConfig = Object.assign(Object.assign({}, config), { Runtime: javaRuntime });
599
- test('should throw error when the extension version and trace version are not compatible', () => __awaiter(void 0, void 0, void 0, function* () {
600
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
601
- const badSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 24, layerVersion: 4 });
602
- let error;
603
- try {
604
- yield (0, instrument_1.calculateUpdateRequest)(javaConfig, badSettings, region, javaRuntime);
605
- }
606
- catch (e) {
607
- if (e instanceof Error) {
608
- error = e;
609
- }
610
- }
611
- expect(error === null || error === void 0 ? void 0 : error.message).toBe(`For the ${javaRuntime} runtime, the dd-trace version 4 is not compatible with the dd-extension version 24`);
612
- }));
613
- const baseVariables = {
614
- DD_KMS_API_KEY: '5678',
615
- DD_MERGE_XRAY_TRACES: 'false',
616
- DD_SITE: 'datadoghq.com',
617
- DD_TRACE_ENABLED: 'false',
618
- };
619
- const compatibleTracerAndExtension = {
620
- Environment: {
621
- Variables: Object.assign(Object.assign({}, baseVariables), { AWS_LAMBDA_EXEC_WRAPPER: '/opt/datadog_wrapper' }),
622
- },
623
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
624
- Layers: [
625
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:25',
626
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-java:5',
627
- ],
628
- };
629
- const oldExtensionVersion = {
630
- Environment: {
631
- Variables: Object.assign({}, baseVariables),
632
- },
633
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
634
- Layers: [
635
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:23',
636
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-java:2',
637
- ],
638
- };
639
- const traceUndefined = {
640
- Environment: {
641
- Variables: Object.assign({}, baseVariables),
642
- },
643
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
644
- Layers: ['arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:15'],
645
- };
646
- test.each `
647
- extensionVersion | traceVersion | outputResult
648
- ${25} | ${5} | ${compatibleTracerAndExtension}
649
- ${23} | ${2} | ${oldExtensionVersion}
650
- ${15} | ${undefined} | ${traceUndefined}
651
- `('should the output match the expected if extensionVersion=$extensionVersion and traceVersion=$traceVersion', ({ extensionVersion, traceVersion, outputResult }) => __awaiter(void 0, void 0, void 0, function* () {
652
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion, layerVersion: traceVersion });
653
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
654
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(javaConfig, curSettings, region, javaRuntime);
655
- expect(updateRequest).toEqual(outputResult);
656
- }));
657
- });
658
- });
659
- describe('sets handlers correctly', () => {
660
- const lambdaClientMock = (0, aws_sdk_client_mock_1.mockClient)(client_lambda_1.LambdaClient);
661
- describe('interactive mode', () => {
662
- const extensionLayer = `arn:aws:lambda:us-east-1:${constants_2.DEFAULT_LAYER_AWS_ACCOUNT}:layer:Datadog-Extension`;
663
- beforeAll(() => {
664
- lambdaClientMock.reset();
665
- process.env = {};
666
- (0, fixtures_2.mockLambdaClientCommands)(lambdaClientMock);
667
- });
668
- afterAll(() => {
669
- process.env = OLD_ENV;
670
- });
671
- it.each([
672
- [
673
- 'python',
674
- {
675
- runtime: client_lambda_1.Runtime.python311,
676
- layer: 'Datadog-Python311',
677
- },
678
- 'datadog_lambda.handler.handler',
679
- ],
680
- [
681
- 'node',
682
- {
683
- runtime: client_lambda_1.Runtime.nodejs16x,
684
- layer: 'Datadog-Node16-x',
685
- },
686
- '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
687
- ],
688
- ])('%s', (_, test, expected) => __awaiter(void 0, void 0, void 0, function* () {
689
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
690
- const libraryLayer = `arn:aws:lambda:us-east-1:${constants_2.DEFAULT_LAYER_AWS_ACCOUNT}:layer:${test.layer}`;
691
- // Mock Layers for interactive mode.
692
- (0, fixtures_2.mockLambdaLayers)(lambdaClientMock, {
693
- [`${libraryLayer}:1`]: {
694
- LayerName: `${libraryLayer}`,
695
- VersionNumber: 1,
696
- },
697
- [`${extensionLayer}:1`]: {
698
- LayerName: `${extensionLayer}`,
699
- VersionNumber: 1,
700
- },
701
- });
702
- const config = {
703
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
704
- Handler: 'index.handler',
705
- Layers: [],
706
- Runtime: test.runtime,
707
- };
708
- const settings = {
709
- flushMetricsToLogs: false,
710
- interactive: true,
711
- mergeXrayTraces: false,
712
- tracingEnabled: false,
713
- };
714
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, 'us-east-1', test.runtime);
715
- expect(updateRequest === null || updateRequest === void 0 ? void 0 : updateRequest.Handler).toBe(expected);
716
- }));
717
- });
718
- });
719
- });
720
- });
721
- //# sourceMappingURL=instrument.part2.test.js.map