@datadog/datadog-ci 2.40.3 → 2.41.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 (252) 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/helpers/git/get-git-data.d.ts +2 -0
  10. package/dist/helpers/git/get-git-data.js +11 -1
  11. package/dist/helpers/git/get-git-data.js.map +1 -1
  12. package/package.json +3 -2
  13. package/dist/__tests__/cli.test.d.ts +0 -1
  14. package/dist/__tests__/cli.test.js +0 -41
  15. package/dist/__tests__/cli.test.js.map +0 -1
  16. package/dist/commands/cloud-run/__tests__/fixtures.d.ts +0 -2
  17. package/dist/commands/cloud-run/__tests__/fixtures.js +0 -12
  18. package/dist/commands/cloud-run/__tests__/fixtures.js.map +0 -1
  19. package/dist/commands/cloud-run/__tests__/flare.test.d.ts +0 -1
  20. package/dist/commands/cloud-run/__tests__/flare.test.js +0 -557
  21. package/dist/commands/cloud-run/__tests__/flare.test.js.map +0 -1
  22. package/dist/commands/deployment/__tests__/mark.test.d.ts +0 -1
  23. package/dist/commands/deployment/__tests__/mark.test.js +0 -47
  24. package/dist/commands/deployment/__tests__/mark.test.js.map +0 -1
  25. package/dist/commands/dora/__tests__/deployment.test.d.ts +0 -1
  26. package/dist/commands/dora/__tests__/deployment.test.js +0 -201
  27. package/dist/commands/dora/__tests__/deployment.test.js.map +0 -1
  28. package/dist/commands/dsyms/__tests__/upload.test.d.ts +0 -1
  29. package/dist/commands/dsyms/__tests__/upload.test.js +0 -346
  30. package/dist/commands/dsyms/__tests__/upload.test.js.map +0 -1
  31. package/dist/commands/dsyms/__tests__/utils.test.d.ts +0 -1
  32. package/dist/commands/dsyms/__tests__/utils.test.js +0 -103
  33. package/dist/commands/dsyms/__tests__/utils.test.js.map +0 -1
  34. package/dist/commands/elf-symbols/__tests__/elf.test.d.ts +0 -1
  35. package/dist/commands/elf-symbols/__tests__/elf.test.js +0 -813
  36. package/dist/commands/elf-symbols/__tests__/elf.test.js.map +0 -1
  37. package/dist/commands/elf-symbols/__tests__/upload.test.d.ts +0 -1
  38. package/dist/commands/elf-symbols/__tests__/upload.test.js +0 -249
  39. package/dist/commands/elf-symbols/__tests__/upload.test.js.map +0 -1
  40. package/dist/commands/flutter-symbols/__tests__/upload.test.d.ts +0 -1
  41. package/dist/commands/flutter-symbols/__tests__/upload.test.js +0 -617
  42. package/dist/commands/flutter-symbols/__tests__/upload.test.js.map +0 -1
  43. package/dist/commands/gate/__tests__/evaluate.test.d.ts +0 -1
  44. package/dist/commands/gate/__tests__/evaluate.test.js +0 -398
  45. package/dist/commands/gate/__tests__/evaluate.test.js.map +0 -1
  46. package/dist/commands/gate/__tests__/scope.test.d.ts +0 -1
  47. package/dist/commands/gate/__tests__/scope.test.js +0 -29
  48. package/dist/commands/gate/__tests__/scope.test.js.map +0 -1
  49. package/dist/commands/git-metadata/__tests__/git.test.d.ts +0 -1
  50. package/dist/commands/git-metadata/__tests__/git.test.js +0 -132
  51. package/dist/commands/git-metadata/__tests__/git.test.js.map +0 -1
  52. package/dist/commands/git-metadata/__tests__/gitdb.test.d.ts +0 -1
  53. package/dist/commands/git-metadata/__tests__/gitdb.test.js +0 -1386
  54. package/dist/commands/git-metadata/__tests__/gitdb.test.js.map +0 -1
  55. package/dist/commands/git-metadata/__tests__/library.test.d.ts +0 -1
  56. package/dist/commands/git-metadata/__tests__/library.test.js +0 -118
  57. package/dist/commands/git-metadata/__tests__/library.test.js.map +0 -1
  58. package/dist/commands/git-metadata/__tests__/upload.test.d.ts +0 -1
  59. package/dist/commands/git-metadata/__tests__/upload.test.js +0 -52
  60. package/dist/commands/git-metadata/__tests__/upload.test.js.map +0 -1
  61. package/dist/commands/junit/__tests__/id.test.d.ts +0 -1
  62. package/dist/commands/junit/__tests__/id.test.js +0 -24
  63. package/dist/commands/junit/__tests__/id.test.js.map +0 -1
  64. package/dist/commands/junit/__tests__/upload.test.d.ts +0 -1
  65. package/dist/commands/junit/__tests__/upload.test.js +0 -495
  66. package/dist/commands/junit/__tests__/upload.test.js.map +0 -1
  67. package/dist/commands/lambda/__tests__/fixtures.d.ts +0 -51
  68. package/dist/commands/lambda/__tests__/fixtures.js +0 -146
  69. package/dist/commands/lambda/__tests__/fixtures.js.map +0 -1
  70. package/dist/commands/lambda/__tests__/flare.test.d.ts +0 -1
  71. package/dist/commands/lambda/__tests__/flare.test.js +0 -730
  72. package/dist/commands/lambda/__tests__/flare.test.js.map +0 -1
  73. package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +0 -1
  74. package/dist/commands/lambda/__tests__/functions/commons.test.js +0 -791
  75. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +0 -1
  76. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.d.ts +0 -1
  77. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js +0 -386
  78. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js.map +0 -1
  79. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.d.ts +0 -1
  80. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js +0 -721
  81. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js.map +0 -1
  82. package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +0 -1
  83. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +0 -513
  84. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +0 -1
  85. package/dist/commands/lambda/__tests__/functions/versionChecker.test.d.ts +0 -1
  86. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js +0 -33
  87. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js.map +0 -1
  88. package/dist/commands/lambda/__tests__/instrument.test.d.ts +0 -1
  89. package/dist/commands/lambda/__tests__/instrument.test.js +0 -1511
  90. package/dist/commands/lambda/__tests__/instrument.test.js.map +0 -1
  91. package/dist/commands/lambda/__tests__/loggroup.test.d.ts +0 -1
  92. package/dist/commands/lambda/__tests__/loggroup.test.js +0 -340
  93. package/dist/commands/lambda/__tests__/loggroup.test.js.map +0 -1
  94. package/dist/commands/lambda/__tests__/prompt.test.d.ts +0 -1
  95. package/dist/commands/lambda/__tests__/prompt.test.js +0 -206
  96. package/dist/commands/lambda/__tests__/prompt.test.js.map +0 -1
  97. package/dist/commands/lambda/__tests__/tags.test.d.ts +0 -1
  98. package/dist/commands/lambda/__tests__/tags.test.js +0 -305
  99. package/dist/commands/lambda/__tests__/tags.test.js.map +0 -1
  100. package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +0 -1
  101. package/dist/commands/lambda/__tests__/uninstrument.test.js +0 -722
  102. package/dist/commands/lambda/__tests__/uninstrument.test.js.map +0 -1
  103. package/dist/commands/measure/__tests__/measure.test.d.ts +0 -1
  104. package/dist/commands/measure/__tests__/measure.test.js +0 -110
  105. package/dist/commands/measure/__tests__/measure.test.js.map +0 -1
  106. package/dist/commands/react-native/__tests__/codepush.test.d.ts +0 -1
  107. package/dist/commands/react-native/__tests__/codepush.test.js +0 -161
  108. package/dist/commands/react-native/__tests__/codepush.test.js.map +0 -1
  109. package/dist/commands/react-native/__tests__/interfaces.test.d.ts +0 -1
  110. package/dist/commands/react-native/__tests__/interfaces.test.js +0 -33
  111. package/dist/commands/react-native/__tests__/interfaces.test.js.map +0 -1
  112. package/dist/commands/react-native/__tests__/upload.test.d.ts +0 -1
  113. package/dist/commands/react-native/__tests__/upload.test.js +0 -238
  114. package/dist/commands/react-native/__tests__/upload.test.js.map +0 -1
  115. package/dist/commands/react-native/__tests__/utils.test.d.ts +0 -1
  116. package/dist/commands/react-native/__tests__/utils.test.js +0 -27
  117. package/dist/commands/react-native/__tests__/utils.test.js.map +0 -1
  118. package/dist/commands/react-native/__tests__/xcode.test.d.ts +0 -1
  119. package/dist/commands/react-native/__tests__/xcode.test.js +0 -465
  120. package/dist/commands/react-native/__tests__/xcode.test.js.map +0 -1
  121. package/dist/commands/sarif/__tests__/upload.test.d.ts +0 -1
  122. package/dist/commands/sarif/__tests__/upload.test.js +0 -228
  123. package/dist/commands/sarif/__tests__/upload.test.js.map +0 -1
  124. package/dist/commands/sbom/__tests__/payload.test.d.ts +0 -1
  125. package/dist/commands/sbom/__tests__/payload.test.js +0 -262
  126. package/dist/commands/sbom/__tests__/payload.test.js.map +0 -1
  127. package/dist/commands/sbom/__tests__/validation.test.d.ts +0 -1
  128. package/dist/commands/sbom/__tests__/validation.test.js +0 -41
  129. package/dist/commands/sbom/__tests__/validation.test.js.map +0 -1
  130. package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +0 -1
  131. package/dist/commands/sourcemaps/__tests__/upload.test.js +0 -270
  132. package/dist/commands/sourcemaps/__tests__/upload.test.js.map +0 -1
  133. package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +0 -1
  134. package/dist/commands/sourcemaps/__tests__/utils.test.js +0 -31
  135. package/dist/commands/sourcemaps/__tests__/utils.test.js.map +0 -1
  136. package/dist/commands/stepfunctions/__tests__/awsCommands.test.d.ts +0 -1
  137. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js +0 -192
  138. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js.map +0 -1
  139. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.d.ts +0 -6
  140. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js +0 -45
  141. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js.map +0 -1
  142. package/dist/commands/stepfunctions/__tests__/fixtures/cli.d.ts +0 -5
  143. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js +0 -19
  144. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js.map +0 -1
  145. package/dist/commands/stepfunctions/__tests__/helpers.test.d.ts +0 -1
  146. package/dist/commands/stepfunctions/__tests__/helpers.test.js +0 -205
  147. package/dist/commands/stepfunctions/__tests__/helpers.test.js.map +0 -1
  148. package/dist/commands/stepfunctions/__tests__/instrument.test.d.ts +0 -1
  149. package/dist/commands/stepfunctions/__tests__/instrument.test.js +0 -431
  150. package/dist/commands/stepfunctions/__tests__/instrument.test.js.map +0 -1
  151. package/dist/commands/stepfunctions/__tests__/uninstrument.test.d.ts +0 -1
  152. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js +0 -166
  153. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js.map +0 -1
  154. package/dist/commands/synthetics/__tests__/api.test.d.ts +0 -1
  155. package/dist/commands/synthetics/__tests__/api.test.js +0 -422
  156. package/dist/commands/synthetics/__tests__/api.test.js.map +0 -1
  157. package/dist/commands/synthetics/__tests__/cli.test.d.ts +0 -1
  158. package/dist/commands/synthetics/__tests__/cli.test.js +0 -1325
  159. package/dist/commands/synthetics/__tests__/cli.test.js.map +0 -1
  160. package/dist/commands/synthetics/__tests__/fixtures.d.ts +0 -149
  161. package/dist/commands/synthetics/__tests__/fixtures.js +0 -507
  162. package/dist/commands/synthetics/__tests__/fixtures.js.map +0 -1
  163. package/dist/commands/synthetics/__tests__/mobile.test.d.ts +0 -1
  164. package/dist/commands/synthetics/__tests__/mobile.test.js +0 -376
  165. package/dist/commands/synthetics/__tests__/mobile.test.js.map +0 -1
  166. package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +0 -1
  167. package/dist/commands/synthetics/__tests__/reporters/default.test.js +0 -354
  168. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +0 -1
  169. package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +0 -1
  170. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +0 -353
  171. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +0 -1
  172. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.d.ts +0 -1
  173. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js +0 -232
  174. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js.map +0 -1
  175. package/dist/commands/synthetics/__tests__/run-tests-lib.test.d.ts +0 -1
  176. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js +0 -735
  177. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js.map +0 -1
  178. package/dist/commands/synthetics/__tests__/test.test.d.ts +0 -1
  179. package/dist/commands/synthetics/__tests__/test.test.js +0 -33
  180. package/dist/commands/synthetics/__tests__/test.test.js.map +0 -1
  181. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.d.ts +0 -1
  182. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js +0 -21
  183. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js.map +0 -1
  184. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.d.ts +0 -1
  185. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js +0 -80
  186. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js.map +0 -1
  187. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.d.ts +0 -1
  188. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +0 -109
  189. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +0 -1
  190. package/dist/commands/synthetics/__tests__/utils/internal.test.d.ts +0 -1
  191. package/dist/commands/synthetics/__tests__/utils/internal.test.js +0 -186
  192. package/dist/commands/synthetics/__tests__/utils/internal.test.js.map +0 -1
  193. package/dist/commands/synthetics/__tests__/utils/public.test.d.ts +0 -1
  194. package/dist/commands/synthetics/__tests__/utils/public.test.js +0 -1526
  195. package/dist/commands/synthetics/__tests__/utils/public.test.js.map +0 -1
  196. package/dist/commands/tag/__tests__/tag.test.d.ts +0 -1
  197. package/dist/commands/tag/__tests__/tag.test.js +0 -75
  198. package/dist/commands/tag/__tests__/tag.test.js.map +0 -1
  199. package/dist/commands/trace/__tests__/trace.test.d.ts +0 -1
  200. package/dist/commands/trace/__tests__/trace.test.js +0 -145
  201. package/dist/commands/trace/__tests__/trace.test.js.map +0 -1
  202. package/dist/commands/unity-symbols/__tests__/upload.test.d.ts +0 -1
  203. package/dist/commands/unity-symbols/__tests__/upload.test.js +0 -369
  204. package/dist/commands/unity-symbols/__tests__/upload.test.js.map +0 -1
  205. package/dist/helpers/__tests__/app.test.d.ts +0 -1
  206. package/dist/helpers/__tests__/app.test.js +0 -31
  207. package/dist/helpers/__tests__/app.test.js.map +0 -1
  208. package/dist/helpers/__tests__/ci.test.d.ts +0 -1
  209. package/dist/helpers/__tests__/ci.test.js +0 -252
  210. package/dist/helpers/__tests__/ci.test.js.map +0 -1
  211. package/dist/helpers/__tests__/fixtures.d.ts +0 -33
  212. package/dist/helpers/__tests__/fixtures.js +0 -71
  213. package/dist/helpers/__tests__/fixtures.js.map +0 -1
  214. package/dist/helpers/__tests__/flare.test.d.ts +0 -1
  215. package/dist/helpers/__tests__/flare.test.js +0 -226
  216. package/dist/helpers/__tests__/flare.test.js.map +0 -1
  217. package/dist/helpers/__tests__/fs.test.d.ts +0 -1
  218. package/dist/helpers/__tests__/fs.test.js +0 -189
  219. package/dist/helpers/__tests__/fs.test.js.map +0 -1
  220. package/dist/helpers/__tests__/plist.test.d.ts +0 -1
  221. package/dist/helpers/__tests__/plist.test.js +0 -43
  222. package/dist/helpers/__tests__/plist.test.js.map +0 -1
  223. package/dist/helpers/__tests__/prompt.test.d.ts +0 -1
  224. package/dist/helpers/__tests__/prompt.test.js +0 -71
  225. package/dist/helpers/__tests__/prompt.test.js.map +0 -1
  226. package/dist/helpers/__tests__/retry.test.d.ts +0 -1
  227. package/dist/helpers/__tests__/retry.test.js +0 -99
  228. package/dist/helpers/__tests__/retry.test.js.map +0 -1
  229. package/dist/helpers/__tests__/tags.test.d.ts +0 -1
  230. package/dist/helpers/__tests__/tags.test.js +0 -71
  231. package/dist/helpers/__tests__/tags.test.js.map +0 -1
  232. package/dist/helpers/__tests__/upload.test.d.ts +0 -1
  233. package/dist/helpers/__tests__/upload.test.js +0 -231
  234. package/dist/helpers/__tests__/upload.test.js.map +0 -1
  235. package/dist/helpers/__tests__/user-provided-git.test.d.ts +0 -1
  236. package/dist/helpers/__tests__/user-provided-git.test.js +0 -119
  237. package/dist/helpers/__tests__/user-provided-git.test.js.map +0 -1
  238. package/dist/helpers/__tests__/utils.test.d.ts +0 -1
  239. package/dist/helpers/__tests__/utils.test.js +0 -429
  240. package/dist/helpers/__tests__/utils.test.js.map +0 -1
  241. package/dist/helpers/__tests__/validation.test.d.ts +0 -1
  242. package/dist/helpers/__tests__/validation.test.js +0 -25
  243. package/dist/helpers/__tests__/validation.test.js.map +0 -1
  244. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.d.ts +0 -1
  245. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js +0 -103
  246. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js.map +0 -1
  247. package/dist/helpers/git/__tests__/format-git-span-data.test.d.ts +0 -1
  248. package/dist/helpers/git/__tests__/format-git-span-data.test.js +0 -121
  249. package/dist/helpers/git/__tests__/format-git-span-data.test.js.map +0 -1
  250. package/dist/helpers/git/__tests__/get-git-data.test.d.ts +0 -1
  251. package/dist/helpers/git/__tests__/get-git-data.test.js +0 -72
  252. package/dist/helpers/git/__tests__/get-git-data.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"instrument.test.js","sourceRoot":"","sources":["../../../../src/commands/stepfunctions/__tests__/instrument.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,oDAA4C;AAC5C,qDAA0C;AAE1C,8CAA4D;AAE5D,4DAAgG;AAChG,wCAA6D;AAE7D,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC,CAAA;AAEjE,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAI,GAAQ,CAAA;IACZ,IAAI,GAAQ,CAAA;IACZ,IAAI,OAAuB,CAAA;IAC3B,IAAI,OAAY,CAAA;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAC/B,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;QAC/B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QAChE,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,EAAE,CAAA;QAC/D,GAAG,GAAG,IAAI,cAAG,EAAE,CAAA;QACf,GAAG,CAAC,QAAQ,CAAC,2CAA8B,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IACF,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,IAAA,oBAAc,GAAE,CAAA;QAE1B,MAAM,iCAAiC,GAAG,IAAA,2CAA2B,GAAE,CAAA;QACvE,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAA;QAEhG,MAAM,mBAAmB,GAAG,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;QACzD,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAC,CAAC,CAAC,CAAA;QAE3F,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1D,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7D,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACpE,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACrE,GAAG,CAAC,iCAAiC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChF,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACrE,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,oCAAoC,EAAE,GAAS,EAAE;YACpD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;YAExE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAA;QACzE,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,oCAAoC,EAAE,GAAS,EAAE;YACpD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;YAE/F,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAA;QAC3F,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,gCAAgC,EAAE,GAAS,EAAE;YAChD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B,CAAC,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,sDAAsD,CAAC,EACtG,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAA;QAC3F,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,4CAA4C,EAAE,GAAS,EAAE;YAC5D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,sDAAsD;gBACtD,iBAAiB;gBACjB,KAAK;aACN,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAA;QAC5F,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,iEAAiE,EAAE,GAAS,EAAE;YACjF,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC,CAAC,CAAA;YAE1E,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAA;QACrG,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAClD,IAAI,CAAC,mDAAmD,EAAE,GAAS,EAAE;YACnE,MAAM,oBAAoB,GAAG;gBAC3B,KAAK,EAAE,qBAAQ,CAAC,GAAG;gBACnB,oBAAoB,EAAE,KAAK;aAC5B,CAAA;YACD,MAAM,iCAAiC,GAAG,IAAA,2CAA2B,EAAC,EAAC,oBAAoB,EAAC,CAAC,CAAA;YAC7F,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAA;YAEhG,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;gBACxE,OAAO;gBACP,MAAM;aACP,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAE1D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,iFAAiF,EAAE,GAAS,EAAE;YACjG,MAAM,oBAAoB,GAAG;gBAC3B,KAAK,EAAE,qBAAQ,CAAC,GAAG;gBACnB,oBAAoB,EAAE,KAAK;aAC5B,CAAA;YACD,MAAM,iCAAiC,GAAG,IAAA,2CAA2B,EAAC,EAAC,oBAAoB,EAAC,CAAC,CAAA;YAC7F,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAA;YAEhG,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;gBACxE,iBAAiB;gBACjB,2EAA2E;gBAC3E,OAAO;gBACP,MAAM;aACP,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAE1D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,sCAAsC,EAAE,GAAS,EAAE;YACtD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;gBACxE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAC3D,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,uCAAuC,EAAE,GAAS,EAAE;YACvD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;gBACxE,OAAO;gBACP,MAAM;aACP,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,+BAA+B,EAAE,GAAS,EAAE;YAC/C,MAAM,mBAAmB,GAAG,IAAA,0CAA0B,EAAC,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAA;YAC7F,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAC,CAAC,CAAC,CAAA;YAE3F,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;gBACxE,OAAO;gBACP,MAAM;aACP,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,iCAAiC,EAAE,GAAS,EAAE;YACjD,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA;YAE7G,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;gBACxE,OAAO;gBACP,MAAM;aACP,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,qCAAqC,EAAE,GAAS,EAAE;YACrD,MAAM,mBAAmB,GAAG,IAAA,0CAA0B,EAAC,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAA;YAC7F,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAC,CAAC,CAAC,CAAA;YAE3F,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;gBACxE,OAAO;gBACP,MAAM;gBACN,WAAW;gBACX,cAAc;aACf,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,IAAI,CAAC,0GAA0G,EAAE,GAAS,EAAE;YAC1H,MAAM,oBAAoB,GAAG;gBAC3B,KAAK,EAAE,qBAAQ,CAAC,GAAG;gBACnB,oBAAoB,EAAE,KAAK;aAC5B,CAAA;YACD,MAAM,YAAY,GAAG,IAAA,2CAA2B,EAAC,EAAC,oBAAoB,EAAC,CAAC,CAAA;YACxE,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAA;YAE3E,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,mEAAmE,EAAE,GAAS,EAAE;YACnF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA,CAAC,mCAAmC;YAC/F,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,0DAA0D,EAAE,GAAS,EAAE;YAC1E,MAAM,oBAAoB,GAAG;gBAC3B,KAAK,EAAE,qBAAQ,CAAC,KAAK;gBACrB,oBAAoB,EAAE,IAAI;gBAC1B,YAAY,EAAE;oBACZ;wBACE,sBAAsB,EAAE;4BACtB,WAAW,EACT,sGAAsG;yBACzG;qBACF;iBACF;aACF,CAAA;YACD,MAAM,iCAAiC,GAAG,IAAA,2CAA2B,EAAC,EAAC,oBAAoB,EAAC,CAAC,CAAA;YAC7F,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAA;YAEhG,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,wFAAwF,EAAE,GAAS,EAAE;YACxG,MAAM,oBAAoB,GAAG;gBAC3B,KAAK,EAAE,qBAAQ,CAAC,GAAG;gBACnB,oBAAoB,EAAE,KAAK;gBAC3B,YAAY,EAAE;oBACZ;wBACE,sBAAsB,EAAE;4BACtB,WAAW,EACT,sGAAsG;yBACzG;qBACF;iBACF;aACF,CAAA;YACD,MAAM,iCAAiC,GAAG,IAAA,2CAA2B,EAAC,EAAC,oBAAoB,EAAC,CAAC,CAAA;YAC7F,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAA;YAEhG,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,4FAA4F,EAAE,GAAS,EAAE;YAC5G,MAAM,oBAAoB,GAAG;gBAC3B,KAAK,EAAE,qBAAQ,CAAC,KAAK;gBACrB,oBAAoB,EAAE,KAAK;gBAC3B,YAAY,EAAE;oBACZ;wBACE,sBAAsB,EAAE;4BACtB,WAAW,EACT,sGAAsG;yBACzG;qBACF;iBACF;aACF,CAAA;YACD,MAAM,iCAAiC,GAAG,IAAA,2CAA2B,EAAC,EAAC,oBAAoB,EAAC,CAAC,CAAA;YAC7F,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,iCAAiC,CAAC,CAAA;YAEhG,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACzD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACxD,IAAI,CAAC,wDAAwD,EAAE,GAAS,EAAE;YACxE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;gBACxE,uBAAuB;aACxB,EACD,OAAO,CACR,CAAA;YACD,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,qEAAqE,EAAE,GAAS,EAAE;YACrF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YACD,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,yCAAyC,EAAE,GAAS,EAAE;YACzD,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBAC3D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAChC,kJAAkJ,CACnJ,CAAA;QACH,CAAC,CAAA,CAAC,CAAA;QAEF,IAAI,CAAC,8CAA8C,EAAE,GAAS,EAAE;YAC9D,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBAC1D,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;YACnD,CAAC,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B;gBACE,eAAe;gBACf,YAAY;gBACZ,aAAa;gBACb,iEAAiE;gBACjE,iBAAiB;gBACjB,wEAAwE;aACzE,EACD,OAAO,CACR,CAAA;YAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAChC,uJAAuJ,CACxJ,CAAA;QACH,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,166 +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
- const client_sfn_1 = require("@aws-sdk/client-sfn");
13
- const advanced_1 = require("clipanion/lib/advanced");
14
- const uninstrument_1 = require("../uninstrument");
15
- const aws_resources_1 = require("./fixtures/aws-resources");
16
- const cli_1 = require("./fixtures/cli");
17
- jest.mock('../../../../package.json', () => ({ version: '2.0.0' }));
18
- describe('stepfunctions uninstrument', () => {
19
- let aws;
20
- let cli;
21
- let context;
22
- let describeStateMachineCommandOutput;
23
- let helpers;
24
- beforeAll(() => {
25
- aws = require('../awsCommands');
26
- helpers = require('../helpers');
27
- helpers.applyChanges = jest.fn().mockImplementation(() => false);
28
- cli = new advanced_1.Cli();
29
- cli.register(uninstrument_1.UninstrumentStepFunctionsCommand);
30
- });
31
- beforeEach(() => {
32
- context = (0, cli_1.contextFixture)();
33
- describeStateMachineCommandOutput = (0, aws_resources_1.describeStateMachineFixture)();
34
- aws.describeStateMachine = jest.fn().mockImplementation(() => describeStateMachineCommandOutput);
35
- const subscriptionFilter = (0, aws_resources_1.subscriptionFilterFixture)();
36
- aws.describeSubscriptionFilters = jest.fn().mockImplementation(() => ({ subscriptionFilters: [subscriptionFilter] }));
37
- aws.deleteSubscriptionFilter = jest.fn().mockImplementation(() => ({}));
38
- aws.untagResource = jest.fn().mockImplementation(() => ({}));
39
- });
40
- describe('parameter validation', () => {
41
- test('errors if --step-function is not given', () => __awaiter(void 0, void 0, void 0, function* () {
42
- const exitCode = yield cli.run(['stepfunctions', 'uninstrument'], context);
43
- expect(exitCode).toBe(1);
44
- expect(context.toString()).toMatch('[Error] must specify at least one `--step-function`\n');
45
- }));
46
- test('removes duplicate step function arns', () => __awaiter(void 0, void 0, void 0, function* () {
47
- const exitCode = yield cli.run([
48
- 'stepfunctions',
49
- 'uninstrument',
50
- '--step-function',
51
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
52
- '--step-function',
53
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
54
- ], context);
55
- expect(exitCode).toBe(0);
56
- expect(aws.describeStateMachine).toHaveBeenCalledTimes(1);
57
- }));
58
- test('errors if no step function arn', () => __awaiter(void 0, void 0, void 0, function* () {
59
- const exitCode = yield cli.run(['stepfunctions', 'uninstrument'], context);
60
- expect(exitCode).toBe(1);
61
- expect(context.toString()).toMatch('[Error] must specify at least one `--step-function`');
62
- }));
63
- test('errors if any step function arn is invalid', () => __awaiter(void 0, void 0, void 0, function* () {
64
- const exitCode = yield cli.run(['stepfunctions', 'uninstrument', '--step-function', 'arn:'], context);
65
- expect(exitCode).toBe(1);
66
- expect(context.toString()).toMatch('[Error] invalid arn format for `--step-function`');
67
- }));
68
- });
69
- describe('step function logging disabled', () => {
70
- test('creates step function log group, subscribes it to forwarder, and adds it to step function logging config', () => __awaiter(void 0, void 0, void 0, function* () {
71
- const loggingConfiguration = {
72
- level: client_sfn_1.LogLevel.OFF,
73
- includeExecutionData: false,
74
- };
75
- const stepFunction = (0, aws_resources_1.describeStateMachineFixture)({ loggingConfiguration });
76
- aws.describeStateMachine = jest.fn().mockImplementation(() => stepFunction);
77
- const exitCode = yield cli.run([
78
- 'stepfunctions',
79
- 'uninstrument',
80
- '--step-function',
81
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
82
- ], context);
83
- expect(exitCode).toBe(1);
84
- expect(context.toString()).toMatch('[Error] Unable to get Log Group arn from Step Function logging configuration');
85
- }));
86
- });
87
- describe('aws error handling', () => {
88
- test('errors if unable to fetch step function', () => __awaiter(void 0, void 0, void 0, function* () {
89
- aws.describeStateMachine = jest.fn().mockImplementation(() => {
90
- throw new Error('mock describeStateMachine error');
91
- });
92
- const exitCode = yield cli.run([
93
- 'stepfunctions',
94
- 'uninstrument',
95
- '--step-function',
96
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
97
- ], context);
98
- expect(exitCode).toBe(1);
99
- expect(context.toString()).toMatch('[Error] mock describeStateMachine error. Unable to fetch Step Function arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction');
100
- }));
101
- test('errors if unable to fetch step function subscription filters', () => __awaiter(void 0, void 0, void 0, function* () {
102
- aws.describeSubscriptionFilters = jest.fn().mockImplementation(() => {
103
- throw new Error('mock describeSubscriptionFilters error');
104
- });
105
- const exitCode = yield cli.run([
106
- 'stepfunctions',
107
- 'uninstrument',
108
- '--step-function',
109
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
110
- ], context);
111
- expect(exitCode).toBe(1);
112
- expect(context.toString()).toMatch('[Error] mock describeSubscriptionFilters error. Unable to fetch Subscription Filter to delete for Log Group /aws/vendedlogs/states/ExampleStepFunction-Logs-test');
113
- }));
114
- test('all aws commands are called once for one ci-instrumented step function', () => __awaiter(void 0, void 0, void 0, function* () {
115
- const exitCode = yield cli.run([
116
- 'stepfunctions',
117
- 'uninstrument',
118
- '--step-function',
119
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
120
- ], context);
121
- // console.log(context.toString())
122
- expect(exitCode).toBe(0);
123
- expect(aws.describeStateMachine).toHaveBeenCalledTimes(1);
124
- expect(aws.describeSubscriptionFilters).toHaveBeenCalledTimes(1);
125
- expect(aws.deleteSubscriptionFilter).toHaveBeenCalledTimes(1);
126
- expect(aws.untagResource).toHaveBeenCalledTimes(1);
127
- }));
128
- test('all aws commands are called twice for two ci-instrumented step functions', () => __awaiter(void 0, void 0, void 0, function* () {
129
- const exitCode = yield cli.run([
130
- 'stepfunctions',
131
- 'uninstrument',
132
- '--step-function',
133
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
134
- '--step-function',
135
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction2222',
136
- ], context);
137
- // console.log(context.toString())
138
- expect(exitCode).toBe(0);
139
- expect(aws.describeStateMachine).toHaveBeenCalledTimes(2);
140
- expect(aws.describeSubscriptionFilters).toHaveBeenCalledTimes(2);
141
- expect(aws.deleteSubscriptionFilter).toHaveBeenCalledTimes(2);
142
- expect(aws.untagResource).toHaveBeenCalledTimes(2);
143
- }));
144
- test('no subscription filters are created by ci, so deleteSubscriptionFilter is not called', () => __awaiter(void 0, void 0, void 0, function* () {
145
- const subscriptionFilter = (0, aws_resources_1.subscriptionFilterFixture)({
146
- filterName: 'test-filter-name-that-does-not-have-DD_CI_IDENTIFYING_STRING-string',
147
- });
148
- aws.describeSubscriptionFilters = jest
149
- .fn()
150
- .mockImplementation(() => ({ subscriptionFilters: [subscriptionFilter] }));
151
- const exitCode = yield cli.run([
152
- 'stepfunctions',
153
- 'uninstrument',
154
- '--step-function',
155
- 'arn:aws:states:us-east-1:000000000000:stateMachine:ExampleStepFunction',
156
- ], context);
157
- // console.log(context.toString())
158
- expect(exitCode).toBe(0);
159
- expect(aws.describeStateMachine).toHaveBeenCalledTimes(1);
160
- expect(aws.describeSubscriptionFilters).toHaveBeenCalledTimes(1);
161
- expect(aws.deleteSubscriptionFilter).toHaveBeenCalledTimes(0);
162
- expect(aws.untagResource).toHaveBeenCalledTimes(1); // Will always be called
163
- }));
164
- });
165
- });
166
- //# sourceMappingURL=uninstrument.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uninstrument.test.js","sourceRoot":"","sources":["../../../../src/commands/stepfunctions/__tests__/uninstrument.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,422 +0,0 @@
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
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const http_1 = require("http");
36
- const axios_1 = __importStar(require("axios"));
37
- const api_1 = require("../api");
38
- const errors_1 = require("../errors");
39
- const interfaces_1 = require("../interfaces");
40
- const run_tests_command_1 = require("../run-tests-command");
41
- const utils = __importStar(require("../utils/public"));
42
- const fixtures_1 = require("./fixtures");
43
- describe('dd-api', () => {
44
- const apiConfiguration = {
45
- apiKey: '123',
46
- appKey: '123',
47
- baseIntakeUrl: 'baseIntake',
48
- baseUnstableUrl: 'baseUnstable',
49
- baseUrl: 'base',
50
- proxyOpts: { protocol: 'http' },
51
- };
52
- const LOCATION = {
53
- display_name: 'fake location',
54
- id: 42,
55
- is_active: true,
56
- name: 'fake-loc',
57
- region: 'fake-region',
58
- };
59
- const RESULT_ID = '123';
60
- const BATCH_ID = 'bid';
61
- const POLL_RESULTS = {
62
- results: [
63
- {
64
- check: (0, fixtures_1.getApiTest)('abc-def-ghi'),
65
- result: {},
66
- resultID: RESULT_ID,
67
- timestamp: 0,
68
- },
69
- ],
70
- };
71
- const TRIGGERED_TEST_ID = 'fakeId';
72
- const TRIGGER_RESULTS = {
73
- batch_id: BATCH_ID,
74
- locations: [LOCATION],
75
- };
76
- const PRESIGNED_URL_PAYLOAD = {
77
- url: 'wss://presigned.url',
78
- };
79
- test('should get results from api', () => __awaiter(void 0, void 0, void 0, function* () {
80
- jest.spyOn(axios_1.default, 'create').mockImplementation((() => () => ({ data: POLL_RESULTS })));
81
- const api = (0, api_1.apiConstructor)(apiConfiguration);
82
- const results = yield api.pollResults([RESULT_ID]);
83
- expect(results[0].resultID).toBe(RESULT_ID);
84
- }));
85
- test('should trigger tests using api', () => __awaiter(void 0, void 0, void 0, function* () {
86
- jest.spyOn(axios_1.default, 'create').mockImplementation((() => () => ({ data: TRIGGER_RESULTS })));
87
- const api = (0, api_1.apiConstructor)(apiConfiguration);
88
- const { triggerTests } = api;
89
- const tests = [{ public_id: TRIGGERED_TEST_ID, executionRule: interfaces_1.ExecutionRule.BLOCKING }];
90
- const { batch_id: batchId } = yield triggerTests({ tests });
91
- expect(batchId).toBe(BATCH_ID);
92
- }));
93
- describe('Retry policy', () => {
94
- beforeEach(() => {
95
- jest.useFakeTimers({ doNotFake: ['nextTick'] });
96
- jest.restoreAllMocks();
97
- });
98
- afterEach(() => {
99
- jest.useRealTimers();
100
- });
101
- const MIN_ATTEMPTS = 1;
102
- const MAX_ATTEMPTS = 4; // `MAX_RETRIES` + 1
103
- const fastForwardRetries = () => __awaiter(void 0, void 0, void 0, function* () {
104
- for (let i = 1; i <= MAX_ATTEMPTS - 1; i++) {
105
- // Skip the `setTimeout` in `await wait(waiter)`.
106
- jest.runOnlyPendingTimers();
107
- // Wait for the retry to happen, and for the next `setTimeout`.
108
- // This is used to flush promises, and requires `nextTick` not to be faked.
109
- // eslint-disable-next-line @typescript-eslint/unbound-method
110
- yield new Promise(process.nextTick);
111
- }
112
- });
113
- const api = (0, api_1.apiConstructor)(apiConfiguration);
114
- const cases = [
115
- {
116
- makeApiRequest: () => api.getBatch('batch-id'),
117
- name: 'get batch',
118
- shouldBeRetriedOn404: true,
119
- shouldBeRetriedOn429: true,
120
- shouldBeRetriedOn5xx: true,
121
- },
122
- {
123
- makeApiRequest: () => api.getMobileApplicationPresignedURLs('applicationId', 1025, fixtures_1.MOBILE_PRESIGNED_UPLOAD_PARTS),
124
- name: 'get presigned url',
125
- shouldBeRetriedOn404: false,
126
- shouldBeRetriedOn429: false,
127
- shouldBeRetriedOn5xx: true,
128
- },
129
- {
130
- makeApiRequest: () => api.getTunnelPresignedURL(['test-id']),
131
- name: 'get presigned url',
132
- shouldBeRetriedOn404: false,
133
- shouldBeRetriedOn429: false,
134
- shouldBeRetriedOn5xx: true,
135
- },
136
- {
137
- makeApiRequest: () => api.getTest('public-id'),
138
- name: 'get test',
139
- shouldBeRetriedOn404: false,
140
- shouldBeRetriedOn429: true,
141
- shouldBeRetriedOn5xx: true,
142
- },
143
- {
144
- makeApiRequest: () => api.pollResults(['result-id']),
145
- name: 'poll results',
146
- shouldBeRetriedOn404: true,
147
- shouldBeRetriedOn429: true,
148
- shouldBeRetriedOn5xx: true,
149
- },
150
- {
151
- makeApiRequest: () => api.searchTests('search query'),
152
- name: 'search tests',
153
- shouldBeRetriedOn404: false,
154
- shouldBeRetriedOn429: false,
155
- shouldBeRetriedOn5xx: true,
156
- },
157
- {
158
- makeApiRequest: () => api.triggerTests({ tests: [{ public_id: '123-456-789', executionRule: interfaces_1.ExecutionRule.NON_BLOCKING }] }),
159
- name: 'trigger tests',
160
- shouldBeRetriedOn404: false,
161
- shouldBeRetriedOn429: true,
162
- shouldBeRetriedOn5xx: true,
163
- },
164
- {
165
- makeApiRequest: () => api.getSyntheticsOrgSettings(),
166
- name: 'get settings',
167
- shouldBeRetriedOn404: false,
168
- shouldBeRetriedOn429: false,
169
- shouldBeRetriedOn5xx: true,
170
- },
171
- ];
172
- test.each(cases)('should retry "$name" request (HTTP 404: $shouldBeRetriedOn404, HTTP 429: $shouldBeRetriedOn429, HTTP 5xx: $shouldBeRetriedOn5xx)', ({ makeApiRequest, shouldBeRetriedOn404, shouldBeRetriedOn429, shouldBeRetriedOn5xx }) => __awaiter(void 0, void 0, void 0, function* () {
173
- const serverError = new axios_1.AxiosError('Server Error');
174
- const requestMock = jest.fn().mockImplementation(() => {
175
- throw serverError;
176
- });
177
- jest.spyOn(axios_1.default, 'create').mockImplementation((() => requestMock));
178
- {
179
- serverError.response = { status: 404 };
180
- const requestPromise = makeApiRequest();
181
- yield fastForwardRetries();
182
- yield expect(requestPromise).rejects.toThrow('Server Error');
183
- expect(requestMock).toHaveBeenCalledTimes(shouldBeRetriedOn404 ? MAX_ATTEMPTS : MIN_ATTEMPTS);
184
- }
185
- requestMock.mockClear();
186
- {
187
- serverError.response = { status: 429 };
188
- const requestPromise = makeApiRequest();
189
- yield fastForwardRetries();
190
- yield expect(requestPromise).rejects.toThrow('Server Error');
191
- expect(requestMock).toHaveBeenCalledTimes(shouldBeRetriedOn429 ? MAX_ATTEMPTS : MIN_ATTEMPTS);
192
- }
193
- requestMock.mockClear();
194
- {
195
- serverError.response = { status: 502 };
196
- const requestPromise = makeApiRequest();
197
- yield fastForwardRetries();
198
- yield expect(requestPromise).rejects.toThrow('Server Error');
199
- expect(requestMock).toHaveBeenCalledTimes(shouldBeRetriedOn5xx ? MAX_ATTEMPTS : MIN_ATTEMPTS);
200
- }
201
- }));
202
- test('should retry when socket hangs up', () => __awaiter(void 0, void 0, void 0, function* () {
203
- jest.spyOn(utils, 'wait').mockImplementation();
204
- const requestSpy = jest.fn();
205
- const server = (0, http_1.createServer)((_, res) => {
206
- var _a;
207
- // ECONNRESET: socket hang up
208
- (_a = res.socket) === null || _a === void 0 ? void 0 : _a.destroy();
209
- requestSpy();
210
- });
211
- server.listen();
212
- const { port } = server.address();
213
- const localApi = (0, api_1.apiConstructor)(Object.assign(Object.assign({}, apiConfiguration), { baseUrl: `http://127.0.0.1:${port}` }));
214
- yield expect(localApi.getSyntheticsOrgSettings).rejects.toThrow('socket hang up');
215
- expect(requestSpy).toHaveBeenCalledTimes(MAX_ATTEMPTS);
216
- server.close();
217
- }));
218
- });
219
- test('should get a mobile application presigned URL from api', () => __awaiter(void 0, void 0, void 0, function* () {
220
- const spy = jest
221
- .spyOn(axios_1.default, 'create')
222
- .mockImplementation((() => () => ({ data: fixtures_1.MOBILE_PRESIGNED_URLS_PAYLOAD })));
223
- const api = (0, api_1.apiConstructor)(apiConfiguration);
224
- const { getMobileApplicationPresignedURLs } = api;
225
- const result = yield getMobileApplicationPresignedURLs('applicationId', 1025, fixtures_1.MOBILE_PRESIGNED_UPLOAD_PARTS);
226
- expect(result).toEqual(fixtures_1.MOBILE_PRESIGNED_URLS_PAYLOAD);
227
- spy.mockRestore();
228
- }));
229
- test('should get a tunnel presigned URL from api', () => __awaiter(void 0, void 0, void 0, function* () {
230
- const spy = jest.spyOn(axios_1.default, 'create').mockImplementation((() => () => ({ data: PRESIGNED_URL_PAYLOAD })));
231
- const api = (0, api_1.apiConstructor)(apiConfiguration);
232
- const { getTunnelPresignedURL } = api;
233
- const { url } = yield getTunnelPresignedURL([TRIGGERED_TEST_ID]);
234
- expect(url).toEqual(PRESIGNED_URL_PAYLOAD.url);
235
- spy.mockRestore();
236
- }));
237
- test('should upload a mobile application with a presigned URL', () => __awaiter(void 0, void 0, void 0, function* () {
238
- const mockRequest = jest.fn();
239
- mockRequest.mockReturnValue({ status: 200, headers: { etag: '"123"' } });
240
- const spy = jest.spyOn(axios_1.default, 'create').mockImplementation((() => mockRequest));
241
- const api = (0, api_1.apiConstructor)(apiConfiguration);
242
- const { uploadMobileApplicationPart } = api;
243
- const result = yield uploadMobileApplicationPart(fixtures_1.MOBILE_PRESIGNED_UPLOAD_PARTS, fixtures_1.MOBILE_PRESIGNED_URLS_PAYLOAD.multipart_presigned_urls_params);
244
- expect(result).toEqual([
245
- { ETag: '123', PartNumber: 1 },
246
- { ETag: '123', PartNumber: 2 },
247
- ]);
248
- const callArg = mockRequest.mock.calls[0][0];
249
- expect(callArg.url).toBe(fixtures_1.MOBILE_PRESIGNED_URLS_PAYLOAD.multipart_presigned_urls_params.urls[1]);
250
- expect(mockRequest).toHaveBeenCalledTimes(fixtures_1.MOBILE_PRESIGNED_UPLOAD_PARTS.length);
251
- spy.mockRestore();
252
- }));
253
- test('should return empty ETag when doing azure part upload', () => __awaiter(void 0, void 0, void 0, function* () {
254
- const mockRequest = jest.fn();
255
- mockRequest.mockReturnValue({ status: 200, headers: {} });
256
- const spy = jest.spyOn(axios_1.default, 'create').mockImplementation((() => mockRequest));
257
- const api = (0, api_1.apiConstructor)(apiConfiguration);
258
- const { uploadMobileApplicationPart } = api;
259
- const urls = {
260
- 1: 'https://myaccount.blob.core.windows.net/mycontainer/myblob1',
261
- 2: 'https://myaccount.blob.core.windows.net/mycontainer/myblob2',
262
- };
263
- const result = yield uploadMobileApplicationPart(fixtures_1.MOBILE_PRESIGNED_UPLOAD_PARTS, Object.assign(Object.assign({}, fixtures_1.MOBILE_PRESIGNED_URLS_PAYLOAD.multipart_presigned_urls_params), {
264
- // override fixture with azure urls
265
- urls }));
266
- expect(result).toEqual([
267
- { ETag: '', PartNumber: 1 },
268
- { ETag: '', PartNumber: 2 },
269
- ]);
270
- const callArg = mockRequest.mock.calls[0][0];
271
- expect(callArg.url).toBe(urls[1]);
272
- expect(mockRequest).toHaveBeenCalledTimes(fixtures_1.MOBILE_PRESIGNED_UPLOAD_PARTS.length);
273
- spy.mockRestore();
274
- }));
275
- test('should complete presigned mobile application upload', () => __awaiter(void 0, void 0, void 0, function* () {
276
- const jobId = 'fake_job_id';
277
- const spy = jest.spyOn(axios_1.default, 'create').mockImplementation((() => () => ({ data: { job_id: jobId } })));
278
- const api = (0, api_1.apiConstructor)(apiConfiguration);
279
- const { completeMultipartMobileApplicationUpload } = api;
280
- const appId = 'appId123';
281
- const partUploadResponses = Object.keys(fixtures_1.MOBILE_PRESIGNED_URLS_PAYLOAD.multipart_presigned_urls_params.urls).map((partNumber) => ({
282
- PartNumber: Number(partNumber),
283
- ETag: 'etag',
284
- }));
285
- const result = yield completeMultipartMobileApplicationUpload(appId, fixtures_1.MOBILE_PRESIGNED_URLS_PAYLOAD.multipart_presigned_urls_params.upload_id, fixtures_1.MOBILE_PRESIGNED_URLS_PAYLOAD.multipart_presigned_urls_params.key, partUploadResponses);
286
- expect(result).toBe(jobId);
287
- spy.mockRestore();
288
- }));
289
- test('should poll for app upload validation', () => __awaiter(void 0, void 0, void 0, function* () {
290
- const spy = jest.spyOn(axios_1.default, 'create').mockImplementation((() => () => ({ data: fixtures_1.APP_UPLOAD_POLL_RESULTS })));
291
- const api = (0, api_1.apiConstructor)(apiConfiguration);
292
- const { pollMobileApplicationUploadResponse } = api;
293
- const jobId = 'jobId';
294
- const appUploadResult = yield pollMobileApplicationUploadResponse(jobId);
295
- expect(appUploadResult).toEqual(fixtures_1.APP_UPLOAD_POLL_RESULTS);
296
- spy.mockRestore();
297
- }));
298
- test('should perform search with expected parameters', () => __awaiter(void 0, void 0, void 0, function* () {
299
- const requestMock = jest.fn(() => ({ status: 200, data: { tests: [] } }));
300
- const spy = jest.spyOn(axios_1.default, 'create').mockImplementation((() => requestMock));
301
- const { searchTests } = (0, api_1.apiConstructor)(apiConfiguration);
302
- yield expect(searchTests('tag:("test") creator:("Me") ???')).resolves.toEqual({ tests: [] });
303
- expect(requestMock).toHaveBeenCalledWith(expect.objectContaining({
304
- params: {
305
- count: run_tests_command_1.MAX_TESTS_TO_TRIGGER + 1,
306
- text: 'tag:("test") creator:("Me") ???',
307
- },
308
- }));
309
- spy.mockRestore();
310
- }));
311
- test('should receive settings', () => __awaiter(void 0, void 0, void 0, function* () {
312
- const settings = { onDemandConcurrencyCap: 10 };
313
- const requestMock = jest.fn(() => ({ status: 200, data: settings }));
314
- const spy = jest.spyOn(axios_1.default, 'create').mockImplementation((() => requestMock));
315
- const { getSyntheticsOrgSettings: getSettings } = (0, api_1.apiConstructor)(apiConfiguration);
316
- yield expect(getSettings()).resolves.toEqual(settings);
317
- spy.mockRestore();
318
- }));
319
- describe('proxy configuration', () => {
320
- const tests = [{ public_id: '123-456-789', executionRule: interfaces_1.ExecutionRule.NON_BLOCKING }];
321
- let initialHttpProxyEnv;
322
- beforeAll(() => {
323
- initialHttpProxyEnv = process.env.HTTP_PROXY;
324
- });
325
- afterAll(() => {
326
- if (initialHttpProxyEnv !== undefined) {
327
- process.env.HTTP_PROXY = initialHttpProxyEnv;
328
- }
329
- else {
330
- delete process.env.HTTP_PROXY;
331
- }
332
- });
333
- beforeEach(() => {
334
- delete process.env.HTTP_PROXY;
335
- });
336
- test('use proxy defined in configuration', () => __awaiter(void 0, void 0, void 0, function* () {
337
- const { close: proxyClose, config: proxyOpts, calls } = (0, fixtures_1.getSyntheticsProxy)();
338
- try {
339
- const proxyApiConfiguration = Object.assign(Object.assign({}, apiConfiguration), { proxyOpts });
340
- const api = (0, api_1.apiConstructor)(proxyApiConfiguration);
341
- const searchOutput = yield api.searchTests('tag:test');
342
- expect(searchOutput).toEqual(fixtures_1.mockSearchResponse);
343
- expect(calls.search).toHaveBeenCalled();
344
- const tunnelOutput = yield api.getTunnelPresignedURL(['123-456-789']);
345
- expect(tunnelOutput).toEqual({ url: expect.stringContaining('ws://127.0.0.1:') });
346
- expect(calls.presignedUrl).toHaveBeenCalled();
347
- const testOutput = yield api.getTest('123-456-789');
348
- expect(testOutput).toEqual((0, fixtures_1.getApiTest)('123-456-789'));
349
- expect(calls.get).toHaveBeenCalled();
350
- const triggerOutput = yield api.triggerTests({ tests });
351
- expect(triggerOutput).toEqual(fixtures_1.mockTestTriggerResponse);
352
- expect(calls.trigger).toHaveBeenCalledWith({ tests });
353
- }
354
- finally {
355
- yield proxyClose();
356
- }
357
- }));
358
- test('use proxy defined in environment variable', () => __awaiter(void 0, void 0, void 0, function* () {
359
- const { close: proxyClose, config: proxyOpts, calls } = (0, fixtures_1.getSyntheticsProxy)();
360
- process.env.HTTP_PROXY = `http://localhost:${proxyOpts.port}`;
361
- try {
362
- const api = (0, api_1.apiConstructor)(apiConfiguration);
363
- const searchOutput = yield api.searchTests('tag:test');
364
- expect(searchOutput).toEqual(fixtures_1.mockSearchResponse);
365
- expect(calls.search).toHaveBeenCalled();
366
- const triggerOutput = yield api.triggerTests({ tests });
367
- expect(triggerOutput).toEqual(fixtures_1.mockTestTriggerResponse);
368
- expect(calls.trigger).toHaveBeenCalledWith({ tests });
369
- }
370
- finally {
371
- yield proxyClose();
372
- }
373
- }));
374
- test('use configuration proxy over environment variable', () => __awaiter(void 0, void 0, void 0, function* () {
375
- const { close: proxyClose, config: proxyOpts, calls } = (0, fixtures_1.getSyntheticsProxy)();
376
- process.env.HTTP_PROXY = 'http://inexistanthost/';
377
- try {
378
- const proxyApiConfiguration = Object.assign(Object.assign({}, apiConfiguration), { proxyOpts });
379
- const api = (0, api_1.apiConstructor)(proxyApiConfiguration);
380
- const triggerOutput = yield api.triggerTests({ tests });
381
- expect(triggerOutput).toEqual(fixtures_1.mockTestTriggerResponse);
382
- expect(calls.trigger).toHaveBeenCalledWith({ tests });
383
- }
384
- finally {
385
- yield proxyClose();
386
- }
387
- }));
388
- });
389
- });
390
- describe('getApiHelper', () => {
391
- beforeEach(() => {
392
- jest.restoreAllMocks();
393
- });
394
- test('should throw an error if API or Application key are undefined', () => __awaiter(void 0, void 0, void 0, function* () {
395
- process.env = {};
396
- expect(() => (0, api_1.getApiHelper)(fixtures_1.ciConfig)).toThrow(new errors_1.CriticalError('MISSING_APP_KEY', 'App key is required'));
397
- expect(() => (0, api_1.getApiHelper)(Object.assign(Object.assign({}, fixtures_1.ciConfig), { appKey: 'fakeappkey' }))).toThrow(new errors_1.CriticalError('MISSING_API_KEY', 'API key is required'));
398
- }));
399
- });
400
- describe('formatBackendErrors', () => {
401
- test('backend error - no error', () => {
402
- const backendError = (0, fixtures_1.getAxiosHttpError)(500, { errors: [] });
403
- expect((0, api_1.formatBackendErrors)(backendError)).toBe('error querying https://app.datadoghq.com/example');
404
- });
405
- test('backend error - single error', () => {
406
- const backendError = (0, fixtures_1.getAxiosHttpError)(500, { errors: ['single error'] });
407
- expect((0, api_1.formatBackendErrors)(backendError)).toBe('query on https://app.datadoghq.com/example returned: "single error"');
408
- });
409
- test('backend error - multiple errors', () => {
410
- const backendError = (0, fixtures_1.getAxiosHttpError)(500, { errors: ['error 1', 'error 2'] });
411
- expect((0, api_1.formatBackendErrors)(backendError)).toBe('query on https://app.datadoghq.com/example returned:\n - error 1\n - error 2');
412
- });
413
- test('not a backend error', () => {
414
- const requestError = (0, fixtures_1.getAxiosHttpError)(403, { message: 'Forbidden' });
415
- expect((0, api_1.formatBackendErrors)(requestError)).toBe('could not query https://app.datadoghq.com/example\nForbidden');
416
- });
417
- test('missing scope error', () => {
418
- const requestError = (0, fixtures_1.getAxiosHttpError)(403, { errors: ['Forbidden', 'Failed permission authorization checks'] });
419
- expect((0, api_1.formatBackendErrors)(requestError, 'synthetics_default_settings_read')).toBe('query on https://app.datadoghq.com/example returned:\n - Forbidden\n - Failed permission authorization checks\nIs the App key granted the synthetics_default_settings_read scope?');
420
- });
421
- });
422
- //# sourceMappingURL=api.test.js.map