@aws-cdk-testing/cli-integ 3.5.0 → 3.7.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 (431) hide show
  1. package/README.md +48 -39
  2. package/lib/aws.js +20 -9
  3. package/lib/cli/query-github.js +2 -3
  4. package/lib/cli/run-suite.js +123 -52
  5. package/lib/cli/stage-distribution.js +4 -4
  6. package/lib/corking.js +2 -5
  7. package/lib/eventually.js +3 -3
  8. package/lib/files.js +2 -3
  9. package/lib/github.js +5 -6
  10. package/lib/integ-test.js +58 -3
  11. package/lib/npm.d.ts +2 -0
  12. package/lib/npm.js +30 -1
  13. package/lib/package-sources/cli-npm-source.d.ts +14 -0
  14. package/lib/package-sources/cli-npm-source.js +50 -0
  15. package/lib/package-sources/cli-repo-source.d.ts +19 -0
  16. package/lib/package-sources/cli-repo-source.js +49 -0
  17. package/lib/package-sources/find-root.d.ts +6 -0
  18. package/lib/package-sources/find-root.js +18 -0
  19. package/lib/package-sources/library-globalinstall-source.d.ts +20 -0
  20. package/lib/package-sources/library-globalinstall-source.js +70 -0
  21. package/lib/package-sources/library-npm-source.d.ts +17 -0
  22. package/lib/package-sources/library-npm-source.js +60 -0
  23. package/lib/package-sources/library-preinstalled-source.d.ts +21 -0
  24. package/lib/package-sources/library-preinstalled-source.js +78 -0
  25. package/lib/package-sources/repo-tools/npm.js +4 -5
  26. package/lib/package-sources/source.d.ts +36 -18
  27. package/lib/package-sources/source.js +1 -1
  28. package/lib/package-sources/subprocess.d.ts +10 -3
  29. package/lib/package-sources/subprocess.js +31 -12
  30. package/lib/process.js +7 -6
  31. package/lib/proxy.d.ts +1 -1
  32. package/lib/proxy.js +2 -2
  33. package/lib/resource-pool.js +10 -6
  34. package/lib/shell.d.ts +3 -3
  35. package/lib/shell.js +12 -16
  36. package/lib/staging/codeartifact.js +17 -18
  37. package/lib/staging/maven.d.ts +2 -2
  38. package/lib/staging/maven.js +3 -5
  39. package/lib/staging/npm.d.ts +2 -2
  40. package/lib/staging/npm.js +1 -1
  41. package/lib/staging/nuget.d.ts +2 -2
  42. package/lib/staging/nuget.js +1 -1
  43. package/lib/staging/parallel-shell.js +2 -2
  44. package/lib/staging/pypi.d.ts +2 -2
  45. package/lib/staging/pypi.js +1 -1
  46. package/lib/staging/usage-dir.js +4 -1
  47. package/lib/with-aws.d.ts +2 -2
  48. package/lib/with-aws.js +5 -4
  49. package/lib/with-cdk-app.d.ts +9 -6
  50. package/lib/with-cdk-app.js +48 -61
  51. package/lib/with-cli-lib.d.ts +4 -3
  52. package/lib/with-cli-lib.js +5 -8
  53. package/lib/with-packages.d.ts +3 -2
  54. package/lib/with-packages.js +3 -2
  55. package/lib/with-sam.d.ts +3 -3
  56. package/lib/with-sam.js +15 -33
  57. package/lib/with-temporary-directory.d.ts +1 -1
  58. package/lib/with-temporary-directory.js +1 -1
  59. package/lib/xpmutex.js +11 -4
  60. package/lib/yarn.d.ts +6 -0
  61. package/lib/yarn.js +31 -0
  62. package/npm-shrinkwrap.json +8724 -0
  63. package/package.json +16 -11
  64. package/resources/cdk-apps/refactoring/cdk.json +7 -0
  65. package/resources/cdk-apps/refactoring/refactoring.js +18 -0
  66. package/resources/integ.jest.config.js +45 -8
  67. package/test-reports/junit.xml +15 -0
  68. package/tests/cli-integ-tests/cdk---exclusively-selects-only-selected-stack.integtest.js +2 -2
  69. package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.js +12 -12
  70. package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.js +10 -10
  71. package/tests/cli-integ-tests/cdk-automatic-ordering-with-concurrency.integtest.js +2 -2
  72. package/tests/cli-integ-tests/cdk-automatic-ordering.integtest.js +2 -2
  73. package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.js +2 -2
  74. package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.js +2 -2
  75. package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.js +2 -2
  76. package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.js +2 -2
  77. package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.js +3 -4
  78. package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.js +3 -4
  79. package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.js +2 -2
  80. package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.js +3 -4
  81. package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.js +3 -4
  82. package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.js +3 -4
  83. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.js +2 -2
  84. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.js +2 -2
  85. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.js +2 -2
  86. package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.js +2 -2
  87. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.js +5 -7
  88. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.js +3 -4
  89. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.js +2 -2
  90. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.js +2 -2
  91. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.js +2 -2
  92. package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.js +5 -6
  93. package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.js +2 -2
  94. package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.js +2 -2
  95. package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.js +2 -2
  96. package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.js +3 -4
  97. package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.js +2 -2
  98. package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.js +2 -2
  99. package/tests/cli-integ-tests/cdk-cdk-diff---fail-on-multiple-stacks-exits-with-error-if-any-of-the-stacks-contains-a-diff.integtest.js +2 -2
  100. package/tests/cli-integ-tests/cdk-cdk-diff---fail-with-multiple-stack-exits-with-if-any-of-the-stacks-contains-a-diff.integtest.js +2 -2
  101. package/tests/cli-integ-tests/cdk-cdk-diff---quiet-does-not-print-there-were-no-differences-message-for-stacks-which-have-no-differences.integtest.js +2 -2
  102. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.js +2 -2
  103. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.js +2 -2
  104. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.js +2 -2
  105. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-with-managed-policy.integtest.js +2 -2
  106. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-without-managed-policy.integtest.js +2 -2
  107. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.js +2 -2
  108. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.js +2 -2
  109. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.js +2 -2
  110. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.js +2 -2
  111. package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.js +2 -2
  112. package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.js +2 -2
  113. package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-and-custom-toolkit-stack-name-and-qualifier-does-not-fail.integtest.js +2 -2
  114. package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.js +2 -2
  115. package/tests/cli-integ-tests/cdk-cdk-diff.integtest.js +2 -2
  116. package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.js +2 -2
  117. package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.js +2 -2
  118. package/tests/cli-integ-tests/cdk-cdk-ls.integtest.js +2 -2
  119. package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.js +2 -2
  120. package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.js +2 -2
  121. package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.js +2 -2
  122. package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.js +2 -2
  123. package/tests/cli-integ-tests/cdk-cdk-synth.integtest.js +2 -2
  124. package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.js +2 -2
  125. package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.js +2 -2
  126. package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.js +2 -2
  127. package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.js +2 -2
  128. package/tests/cli-integ-tests/cdk-context-setting.integtest.js +2 -2
  129. package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.js +3 -4
  130. package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.js +2 -2
  131. package/tests/cli-integ-tests/cdk-deploy-all.integtest.js +2 -2
  132. package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.js +4 -5
  133. package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.js +4 -5
  134. package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.js +2 -2
  135. package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.js +2 -2
  136. package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.js +3 -4
  137. package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.js +2 -2
  138. package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.js +2 -2
  139. package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.js +2 -2
  140. package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.js +2 -2
  141. package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.js +3 -4
  142. package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.js +2 -2
  143. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.js +3 -4
  144. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.js +3 -4
  145. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.js +3 -4
  146. package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.js +4 -5
  147. package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.js +3 -4
  148. package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.js +2 -2
  149. package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.js +3 -4
  150. package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.js +3 -4
  151. package/tests/cli-integ-tests/cdk-deploy.integtest.js +3 -4
  152. package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.js +6 -7
  153. package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.js +2 -2
  154. package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.js +2 -2
  155. package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.js +2 -2
  156. package/tests/cli-integ-tests/cdk-fast-deploy.integtest.js +5 -6
  157. package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.js +2 -2
  158. package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.js +2 -2
  159. package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.js +2 -2
  160. package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.js +2 -2
  161. package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.js +2 -2
  162. package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.js +2 -2
  163. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.js +2 -2
  164. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.js +3 -3
  165. package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.js +2 -2
  166. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.js +2 -2
  167. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.js +7 -6
  168. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.js +3 -4
  169. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.js +4 -5
  170. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.js +4 -5
  171. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.js +4 -5
  172. package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.js +6 -7
  173. package/tests/cli-integ-tests/cdk-iam-diff.integtest.js +2 -2
  174. package/tests/cli-integ-tests/cdk-import-interactive.integtest.js +5 -6
  175. package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.js +3 -4
  176. package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.js +2 -2
  177. package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.js +2 -2
  178. package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.js +2 -3
  179. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.js +2 -2
  180. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.js +2 -2
  181. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.js +2 -2
  182. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.js +2 -2
  183. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.js +2 -2
  184. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.js +2 -2
  185. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.js +2 -2
  186. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.js +2 -2
  187. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.js +2 -2
  188. package/tests/cli-integ-tests/cdk-migrate/testcase.d.ts +1 -1
  189. package/tests/cli-integ-tests/cdk-migrate/testcase.js +4 -6
  190. package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.js +3 -4
  191. package/tests/cli-integ-tests/cdk-refactor-dry-run.integtest.js +41 -0
  192. package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.js +3 -4
  193. package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.js +2 -2
  194. package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.js +2 -2
  195. package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.js +2 -2
  196. package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.js +2 -2
  197. package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.js +6 -7
  198. package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.js +2 -2
  199. package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.js +2 -2
  200. package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.js +2 -2
  201. package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.js +2 -2
  202. package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.js +2 -2
  203. package/tests/cli-integ-tests/cdk-termination-protection.integtest.js +2 -2
  204. package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.js +2 -2
  205. package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.js +2 -2
  206. package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.js +5 -5
  207. package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.js +2 -2
  208. package/tests/cli-integ-tests/cdk-test-resource-import.integtest.js +2 -2
  209. package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.js +2 -2
  210. package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.js +6 -7
  211. package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.js +2 -2
  212. package/tests/cli-integ-tests/proxy.integtest.js +2 -3
  213. package/tests/init-csharp/init-csharp.integtest.js +4 -4
  214. package/tests/init-fsharp/init-fsharp.integtest.js +4 -4
  215. package/tests/init-go/init-go.integtest.js +4 -5
  216. package/tests/init-java/init-java.integtest.js +3 -3
  217. package/tests/init-javascript/init-javascript.integtest.js +3 -3
  218. package/tests/init-python/init-python.integtest.js +3 -3
  219. package/tests/init-typescript-app/init-typescript-app.integtest.js +3 -3
  220. package/tests/init-typescript-lib/init-typescript-lib.integtest.js +2 -2
  221. package/tests/tool-integrations/amplify.integtest.js +6 -6
  222. package/tests/tool-integrations/with-tool-context.d.ts +5 -5
  223. package/tests/tool-integrations/with-tool-context.js +1 -1
  224. package/tests/toolkit-lib-integ-tests/toolkit-can-cdk-deploy.integtest.d.ts +1 -0
  225. package/tests/toolkit-lib-integ-tests/toolkit-can-cdk-deploy.integtest.js +17 -0
  226. package/tests/toolkit-lib-integ-tests/toolkit-helpers.d.ts +15 -0
  227. package/tests/toolkit-lib-integ-tests/toolkit-helpers.js +45 -0
  228. package/tests/uberpackage/uberpackage.integtest.js +2 -2
  229. package/.eslintrc.js +0 -9
  230. package/lib/aws.ts +0 -303
  231. package/lib/cli/query-github.ts +0 -56
  232. package/lib/cli/run-suite.ts +0 -153
  233. package/lib/cli/stage-distribution.ts +0 -262
  234. package/lib/cli/test-root.ts +0 -3
  235. package/lib/corking.ts +0 -33
  236. package/lib/eventually.ts +0 -42
  237. package/lib/files.ts +0 -80
  238. package/lib/github.ts +0 -43
  239. package/lib/index.ts +0 -13
  240. package/lib/integ-test.ts +0 -110
  241. package/lib/lists.ts +0 -9
  242. package/lib/memoize.ts +0 -14
  243. package/lib/npm.ts +0 -41
  244. package/lib/package-sources/release-source.d.ts +0 -23
  245. package/lib/package-sources/release-source.js +0 -71
  246. package/lib/package-sources/release-source.ts +0 -82
  247. package/lib/package-sources/repo-source.d.ts +0 -30
  248. package/lib/package-sources/repo-source.js +0 -97
  249. package/lib/package-sources/repo-source.ts +0 -112
  250. package/lib/package-sources/repo-tools/npm.ts +0 -48
  251. package/lib/package-sources/source.ts +0 -35
  252. package/lib/package-sources/subprocess.ts +0 -15
  253. package/lib/process.ts +0 -154
  254. package/lib/proxy.ts +0 -64
  255. package/lib/resource-pool.ts +0 -140
  256. package/lib/resources.ts +0 -4
  257. package/lib/shell.ts +0 -331
  258. package/lib/staging/codeartifact.ts +0 -387
  259. package/lib/staging/maven.ts +0 -95
  260. package/lib/staging/npm.ts +0 -62
  261. package/lib/staging/nuget.ts +0 -75
  262. package/lib/staging/parallel-shell.ts +0 -51
  263. package/lib/staging/pypi.ts +0 -50
  264. package/lib/staging/usage-dir.ts +0 -99
  265. package/lib/with-aws.ts +0 -111
  266. package/lib/with-cdk-app.ts +0 -847
  267. package/lib/with-cli-lib.ts +0 -150
  268. package/lib/with-packages.ts +0 -15
  269. package/lib/with-sam.ts +0 -295
  270. package/lib/with-temporary-directory.ts +0 -35
  271. package/lib/with-timeout.ts +0 -33
  272. package/lib/xpmutex.ts +0 -218
  273. package/resources/cli-regression-patches/v2.130.0/node_modules/@aws-cdk-testing/cli-integ/resources/cdk-apps/sam_cdk_integ_app/lib/nested-stack.js +0 -19
  274. package/resources/cli-regression-patches/v2.130.0/node_modules/@aws-cdk-testing/cli-integ/resources/cdk-apps/sam_cdk_integ_app/lib/test-stack.js +0 -134
  275. package/tests/cli-integ-tests/cdk---exclusively-selects-only-selected-stack.integtest.ts +0 -29
  276. package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.ts +0 -92
  277. package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.ts +0 -82
  278. package/tests/cli-integ-tests/cdk-automatic-ordering-with-concurrency.integtest.ts +0 -15
  279. package/tests/cli-integ-tests/cdk-automatic-ordering.integtest.ts +0 -15
  280. package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.ts +0 -40
  281. package/tests/cli-integ-tests/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.ts +0 -40
  282. package/tests/cli-integ-tests/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.ts +0 -29
  283. package/tests/cli-integ-tests/cdk-bootstrap-a-customized-template-vendor-will-not-overwrite-the-default-template.integtest.ts +0 -42
  284. package/tests/cli-integ-tests/cdk-bootstrap-add-tags.integtest.ts +0 -26
  285. package/tests/cli-integ-tests/cdk-bootstrap-can-add-tags-then-update-tags-during-re-bootstrap.integtest.ts +0 -28
  286. package/tests/cli-integ-tests/cdk-bootstrap-can-and-deploy-if-omitting-execution-policies.integtest.ts +0 -21
  287. package/tests/cli-integ-tests/cdk-bootstrap-can-bootstrap-without-execution.integtest.ts +0 -22
  288. package/tests/cli-integ-tests/cdk-bootstrap-can-create-a-legacy-bootstrap-stack-with---public-access-block-configuration-false.integtest.ts +0 -21
  289. package/tests/cli-integ-tests/cdk-bootstrap-can-create-multiple-legacy-bootstrap-stacks.integtest.ts +0 -27
  290. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-modern-synthesized-stack-even-if-bootstrap-stack-name-is-unknown.integtest.ts +0 -24
  291. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-with-session-tags-on-the-deploy.integtest.ts +0 -25
  292. package/tests/cli-integ-tests/cdk-bootstrap-can-deploy-without-execution-role-and-with-session-tags-on-deploy-role.integtest.ts +0 -22
  293. package/tests/cli-integ-tests/cdk-bootstrap-can-dump-the-template.integtest.ts +0 -32
  294. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-custompermissionsboundary.integtest.ts +0 -77
  295. package/tests/cli-integ-tests/cdk-bootstrap-can-remove-trusted-account.integtest.ts +0 -30
  296. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-(with-slashes)-to-bootstrap.integtest.ts +0 -15
  297. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-custom-permissions-boundary-to-bootstrap.integtest.ts +0 -15
  298. package/tests/cli-integ-tests/cdk-bootstrap-can-use-the-default-permissions-boundary-to-bootstrap.integtest.ts +0 -15
  299. package/tests/cli-integ-tests/cdk-bootstrap-create-ecr-with-tag-immutability-to-set-on.integtest.ts +0 -34
  300. package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap-(with-docker-image).integtest.ts +0 -22
  301. package/tests/cli-integ-tests/cdk-bootstrap-deploy-new-style-synthesis-to-new-style-bootstrap.integtest.ts +0 -22
  302. package/tests/cli-integ-tests/cdk-bootstrap-deploy-old-style-synthesis-to-new-style-bootstrap.integtest.ts +0 -21
  303. package/tests/cli-integ-tests/cdk-bootstrap-switch-on-termination-protection.integtest.ts +0 -24
  304. package/tests/cli-integ-tests/cdk-bootstrap-upgrade-legacy-bootstrap-stack-to-new-bootstrap-stack-while-in-use.integtest.ts +0 -47
  305. package/tests/cli-integ-tests/cdk-can-still-load-old-assemblies.integtest.ts +0 -57
  306. package/tests/cli-integ-tests/cdk-cdk-diff---fail-on-multiple-stacks-exits-with-error-if-any-of-the-stacks-contains-a-diff.integtest.ts +0 -22
  307. package/tests/cli-integ-tests/cdk-cdk-diff---fail-with-multiple-stack-exits-with-if-any-of-the-stacks-contains-a-diff.integtest.ts +0 -22
  308. package/tests/cli-integ-tests/cdk-cdk-diff---quiet-does-not-print-there-were-no-differences-message-for-stacks-which-have-no-differences.integtest.ts +0 -19
  309. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-changes-are-present.integtest.ts +0 -14
  310. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-access-control-config.integtest.ts +0 -13
  311. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-assignment.integtest.ts +0 -13
  312. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-with-managed-policy.integtest.ts +0 -13
  313. package/tests/cli-integ-tests/cdk-cdk-diff---security-only---fail-exits-when-security-diff-for-sso-perm-set-without-managed-policy.integtest.ts +0 -13
  314. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-access-control-information.integtest.ts +0 -35
  315. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-assignment-information.integtest.ts +0 -37
  316. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-with-managed-policy-information.integtest.ts +0 -35
  317. package/tests/cli-integ-tests/cdk-cdk-diff---security-only-successfully-outputs-sso-permission-set-without-managed-policy-information.integtest.ts +0 -37
  318. package/tests/cli-integ-tests/cdk-cdk-diff-doesnt-show-resource-metadata-changes.integtest.ts +0 -23
  319. package/tests/cli-integ-tests/cdk-cdk-diff-shows-resource-metadata-changes-with---no-change-set.integtest.ts +0 -23
  320. package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-and-custom-toolkit-stack-name-and-qualifier-does-not-fail.integtest.ts +0 -39
  321. package/tests/cli-integ-tests/cdk-cdk-diff-with-large-changeset-does-not-fail.integtest.ts +0 -28
  322. package/tests/cli-integ-tests/cdk-cdk-diff.integtest.ts +0 -18
  323. package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json---long.integtest.ts +0 -50
  324. package/tests/cli-integ-tests/cdk-cdk-ls---show-dependencies---json.integtest.ts +0 -95
  325. package/tests/cli-integ-tests/cdk-cdk-ls.integtest.ts +0 -36
  326. package/tests/cli-integ-tests/cdk-cdk-notices-are-displayed-correctly.integtest.ts +0 -42
  327. package/tests/cli-integ-tests/cdk-cdk-notices-with---unacknowledged.integtest.ts +0 -14
  328. package/tests/cli-integ-tests/cdk-cdk-synth-add-the-metadata-properties-expected-by-sam.integtest.ts +0 -126
  329. package/tests/cli-integ-tests/cdk-cdk-synth-bundled-functions-as-expected.integtest.ts +0 -80
  330. package/tests/cli-integ-tests/cdk-cdk-synth.integtest.ts +0 -53
  331. package/tests/cli-integ-tests/cdk-ci-output-to-stderr.integtest.ts +0 -19
  332. package/tests/cli-integ-tests/cdk-ci-true-output-to-stdout.integtest.ts +0 -28
  333. package/tests/cli-integ-tests/cdk-construct-with-builtin-lambda-function.integtest.ts +0 -14
  334. package/tests/cli-integ-tests/cdk-context-in-stage-propagates-to-top.integtest.ts +0 -20
  335. package/tests/cli-integ-tests/cdk-context-setting.integtest.ts +0 -33
  336. package/tests/cli-integ-tests/cdk-deploy---method-direct.integtest.ts +0 -23
  337. package/tests/cli-integ-tests/cdk-deploy-all-concurrently.integtest.ts +0 -17
  338. package/tests/cli-integ-tests/cdk-deploy-all.integtest.ts +0 -14
  339. package/tests/cli-integ-tests/cdk-deploy-and-test-stack-with-lambda-asset.integtest.ts +0 -31
  340. package/tests/cli-integ-tests/cdk-deploy-deletes-all-notification-arns-when-empty-array-is-passed.integtest.ts +0 -50
  341. package/tests/cli-integ-tests/cdk-deploy-no-stacks-error.integtest.ts +0 -18
  342. package/tests/cli-integ-tests/cdk-deploy-no-stacks-with---ignore-no-stacks.integtest.ts +0 -17
  343. package/tests/cli-integ-tests/cdk-deploy-preserves-existing-notification-arns-when-not-specified.integtest.ts +0 -51
  344. package/tests/cli-integ-tests/cdk-deploy-stack-with-docker-asset.integtest.ts +0 -11
  345. package/tests/cli-integ-tests/cdk-deploy-stack-with-lambda-asset-to-object-lock-enabled-asset-bucket.integtest.ts +0 -42
  346. package/tests/cli-integ-tests/cdk-deploy-stack-without-resource.integtest.ts +0 -32
  347. package/tests/cli-integ-tests/cdk-deploy-wildcard-with-outputs.integtest.ts +0 -28
  348. package/tests/cli-integ-tests/cdk-deploy-with-import-existing-resources-true.integtest.ts +0 -29
  349. package/tests/cli-integ-tests/cdk-deploy-with-method-direct-and-import-existing-resources-fails.integtest.ts +0 -17
  350. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-flag.integtest.ts +0 -36
  351. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop-and-flag.integtest.ts +0 -45
  352. package/tests/cli-integ-tests/cdk-deploy-with-notification-arn-as-prop.integtest.ts +0 -37
  353. package/tests/cli-integ-tests/cdk-deploy-with-parameters-multi.integtest.ts +0 -33
  354. package/tests/cli-integ-tests/cdk-deploy-with-parameters.integtest.ts +0 -26
  355. package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.js +0 -97
  356. package/tests/cli-integ-tests/cdk-deploy-with-role.integtest.ts +0 -119
  357. package/tests/cli-integ-tests/cdk-deploy-with-wildcard-and-parameters.integtest.ts +0 -22
  358. package/tests/cli-integ-tests/cdk-deploy-without-execute-a-named-change-set.integtest.ts +0 -36
  359. package/tests/cli-integ-tests/cdk-deploy-without-import-existing-resources.integtest.ts +0 -28
  360. package/tests/cli-integ-tests/cdk-deploy.integtest.ts +0 -20
  361. package/tests/cli-integ-tests/cdk-destroy-interactive.integtest.ts +0 -36
  362. package/tests/cli-integ-tests/cdk-doubly-nested-stack.integtest.ts +0 -12
  363. package/tests/cli-integ-tests/cdk-enablediffnofail.integtest.ts +0 -44
  364. package/tests/cli-integ-tests/cdk-failed-deploy-does-not-hang.integtest.ts +0 -12
  365. package/tests/cli-integ-tests/cdk-fast-deploy.integtest.ts +0 -41
  366. package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-ecr-images.integtest.ts +0 -48
  367. package/tests/cli-integ-tests/cdk-gc-garbage-collection-deletes-unused-s3-objects.integtest.ts +0 -51
  368. package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-ecr-images.integtest.ts +0 -48
  369. package/tests/cli-integ-tests/cdk-gc-garbage-collection-keeps-in-use-s3-objects.integtest.ts +0 -52
  370. package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-ecr-images.integtest.ts +0 -47
  371. package/tests/cli-integ-tests/cdk-gc-garbage-collection-tags-unused-s3-objects.integtest.ts +0 -63
  372. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-ecr-images.integtest.ts +0 -55
  373. package/tests/cli-integ-tests/cdk-gc-garbage-collection-untags-in-use-s3-objects.integtest.ts +0 -63
  374. package/tests/cli-integ-tests/cdk-generating-and-loading-assembly.integtest.ts +0 -52
  375. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-detects-failed-deployment-and-errors.integtest.ts +0 -29
  376. package/tests/cli-integ-tests/cdk-hotswap-deployment-for-ecs-service-waits-for-deployment-to-complete.integtest.ts +0 -45
  377. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-appsync-apis-with-many-functions.integtest.ts +0 -36
  378. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-ecs-service.integtest.ts +0 -41
  379. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-fn::importvalue-intrinsic.integtest.ts +0 -53
  380. package/tests/cli-integ-tests/cdk-hotswap-deployment-supports-lambda-functions-description-and-environment-variables.integtest.ts +0 -43
  381. package/tests/cli-integ-tests/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.ts +0 -59
  382. package/tests/cli-integ-tests/cdk-iam-diff.integtest.ts +0 -23
  383. package/tests/cli-integ-tests/cdk-import-interactive.integtest.ts +0 -57
  384. package/tests/cli-integ-tests/cdk-lib-cli-lib-deploy.integtest.ts +0 -32
  385. package/tests/cli-integ-tests/cdk-lib-cli-lib-list.integtest.ts +0 -12
  386. package/tests/cli-integ-tests/cdk-lib-cli-lib-synth.integtest.ts +0 -27
  387. package/tests/cli-integ-tests/cdk-lib-security-related-changes-without-a-cli-are-expected-to-fail-when-approval-is-required.integtest.ts +0 -32
  388. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-csharp.integtest.ts +0 -13
  389. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-java.integtest.ts +0 -14
  390. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-python.integtest.ts +0 -13
  391. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate--from-stack-creates-deployable-app-typescript.integtest.ts +0 -13
  392. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-csharp.integtest.ts +0 -15
  393. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-java.integtest.ts +0 -15
  394. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-python.integtest.ts +0 -15
  395. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-deploys-successfully-typescript.integtest.ts +0 -15
  396. package/tests/cli-integ-tests/cdk-migrate/cdk-migrate-generates-migrate.json.integtest.ts +0 -20
  397. package/tests/cli-integ-tests/cdk-migrate/testcase.ts +0 -69
  398. package/tests/cli-integ-tests/cdk-nested-stack-with-parameters.integtest.ts +0 -28
  399. package/tests/cli-integ-tests/cdk-requests-go-through-a-proxy-when-configured.integtest.ts +0 -39
  400. package/tests/cli-integ-tests/cdk-sam-can-locally-test-the-synthesized-cdk-application.integtest.ts +0 -25
  401. package/tests/cli-integ-tests/cdk-security-related-changes-without-a-cli-are-expected-to-fail.integtest.ts +0 -30
  402. package/tests/cli-integ-tests/cdk-skips-notice-refresh.integtest.ts +0 -26
  403. package/tests/cli-integ-tests/cdk-ssm-parameter-provider-error.integtest.ts +0 -18
  404. package/tests/cli-integ-tests/cdk-stack-in-update_rollback_complete-state-can-be-updated.integtest.ts +0 -59
  405. package/tests/cli-integ-tests/cdk-stage-with-bundled-lambda-function.integtest.ts +0 -13
  406. package/tests/cli-integ-tests/cdk-synth---quiet-can-be-specified-in-cdk.json.integtest.ts +0 -20
  407. package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-can-be-suppressed.integtest.ts +0 -15
  408. package/tests/cli-integ-tests/cdk-synthing-a-stage-with-errors-leads-to-failure.integtest.ts +0 -18
  409. package/tests/cli-integ-tests/cdk-templates-on-disk-contain-metadata-resource.integtest.ts +0 -25
  410. package/tests/cli-integ-tests/cdk-termination-protection.integtest.ts +0 -19
  411. package/tests/cli-integ-tests/cdk-test-cdk-rollback---force.integtest.ts +0 -48
  412. package/tests/cli-integ-tests/cdk-test-cdk-rollback.integtest.ts +0 -38
  413. package/tests/cli-integ-tests/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.ts +0 -56
  414. package/tests/cli-integ-tests/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.ts +0 -74
  415. package/tests/cli-integ-tests/cdk-test-resource-import.integtest.ts +0 -64
  416. package/tests/cli-integ-tests/cdk-two-ways-of-showing-the-version.integtest.ts +0 -14
  417. package/tests/cli-integ-tests/cdk-update-to-stack-in-rollback_complete-state-will-delete-stack-and-create-a-new-one.integtest.ts +0 -47
  418. package/tests/cli-integ-tests/cdk-vpc-lookup.integtest.ts +0 -26
  419. package/tests/cli-integ-tests/proxy.integtest.ts +0 -168
  420. package/tests/init-csharp/init-csharp.integtest.ts +0 -15
  421. package/tests/init-fsharp/init-fsharp.integtest.ts +0 -15
  422. package/tests/init-go/init-go.integtest.ts +0 -28
  423. package/tests/init-java/init-java.integtest.ts +0 -14
  424. package/tests/init-javascript/init-javascript.integtest.ts +0 -58
  425. package/tests/init-python/init-python.integtest.ts +0 -20
  426. package/tests/init-typescript-app/init-typescript-app.integtest.ts +0 -67
  427. package/tests/init-typescript-lib/init-typescript-lib.integtest.ts +0 -13
  428. package/tests/tool-integrations/amplify.integtest.ts +0 -117
  429. package/tests/tool-integrations/with-tool-context.ts +0 -14
  430. package/tests/uberpackage/uberpackage.integtest.ts +0 -11
  431. /package/tests/cli-integ-tests/{cdk-deploy-with-role.integtest.d.ts → cdk-refactor-dry-run.integtest.d.ts} +0 -0
@@ -1,387 +0,0 @@
1
- import {
2
- AssociateExternalConnectionCommand,
3
- CodeartifactClient,
4
- CreateDomainCommand,
5
- CreateRepositoryCommand,
6
- DeleteRepositoryCommand,
7
- DescribeDomainCommand,
8
- DescribeRepositoryCommand,
9
- GetAuthorizationTokenCommand,
10
- GetRepositoryEndpointCommand,
11
- ListPackagesCommand,
12
- ListPackagesRequest,
13
- ListRepositoriesCommand,
14
- ListTagsForResourceCommand,
15
- PutPackageOriginConfigurationCommand,
16
- } from '@aws-sdk/client-codeartifact';
17
- import { sleep } from '../aws';
18
-
19
- const COLLECT_BY_TAG = 'collect-by';
20
- const REPO_LIFETIME_MS = 24 * 3600 * 1000; // One day
21
-
22
- export class TestRepository {
23
- public static readonly DEFAULT_DOMAIN = 'test-cdk';
24
-
25
- public static async newRandom() {
26
- const qualifier = Math.random()
27
- .toString(36)
28
- .replace(/[^a-z0-9]+/g, '');
29
-
30
- const repo = new TestRepository(`test-${qualifier}`);
31
- await repo.prepare();
32
- return repo;
33
- }
34
-
35
- public static async newWithName(name: string) {
36
- const repo = new TestRepository(name);
37
- await repo.prepare();
38
- return repo;
39
- }
40
-
41
- public static existing(repositoryName: string) {
42
- return new TestRepository(repositoryName);
43
- }
44
-
45
- /**
46
- * Garbage collect repositories
47
- */
48
- public static async gc() {
49
- if (!(await TestRepository.existing('*dummy*').domainExists())) {
50
- return;
51
- }
52
-
53
- const codeArtifact = new CodeartifactClient();
54
-
55
- let nextToken: string | undefined;
56
- do {
57
- const page = await codeArtifact.send(
58
- new ListRepositoriesCommand({
59
- nextToken: nextToken,
60
- }),
61
- );
62
-
63
- for (const repo of page.repositories ?? []) {
64
- const tags = await codeArtifact.send(
65
- new ListTagsForResourceCommand({
66
- resourceArn: repo.arn!,
67
- }),
68
- );
69
- const collectable = tags?.tags?.find((t) => t.key === COLLECT_BY_TAG && Number(t.value) < Date.now());
70
- if (collectable) {
71
- // eslint-disable-next-line no-console
72
- console.log('Deleting', repo.name);
73
- await codeArtifact.send(
74
- new DeleteRepositoryCommand({
75
- domain: repo.domainName!,
76
- repository: repo.name!,
77
- }),
78
- );
79
- }
80
- }
81
-
82
- nextToken = page.nextToken;
83
- } while (nextToken);
84
- }
85
-
86
- public readonly npmUpstream = 'npm-upstream';
87
- public readonly pypiUpstream = 'pypi-upstream';
88
- public readonly nugetUpstream = 'nuget-upstream';
89
- public readonly mavenUpstream = 'maven-upstream';
90
- public readonly domain = TestRepository.DEFAULT_DOMAIN;
91
-
92
- private readonly codeArtifact = new CodeartifactClient();
93
-
94
- private _loginInformation: LoginInformation | undefined;
95
-
96
- private constructor(public readonly repositoryName: string) {}
97
-
98
- public async prepare() {
99
- await this.ensureDomain();
100
- await this.ensureUpstreams();
101
-
102
- await this.ensureRepository(this.repositoryName, {
103
- description: 'Testing repository',
104
- upstreams: [this.npmUpstream, this.pypiUpstream, this.nugetUpstream, this.mavenUpstream],
105
- tags: {
106
- [COLLECT_BY_TAG]: `${Date.now() + REPO_LIFETIME_MS}`,
107
- },
108
- });
109
- }
110
-
111
- public async loginInformation(): Promise<LoginInformation> {
112
- if (this._loginInformation) {
113
- return this._loginInformation;
114
- }
115
-
116
- this._loginInformation = {
117
- authToken: (
118
- await this.codeArtifact.send(
119
- new GetAuthorizationTokenCommand({
120
- domain: this.domain,
121
- durationSeconds: 12 * 3600,
122
- }),
123
- )
124
- ).authorizationToken!,
125
- repositoryName: this.repositoryName,
126
-
127
- npmEndpoint: (
128
- await this.codeArtifact.send(
129
- new GetRepositoryEndpointCommand({
130
- domain: this.domain,
131
- repository: this.repositoryName,
132
- format: 'npm',
133
- }),
134
- )
135
- ).repositoryEndpoint!,
136
-
137
- mavenEndpoint: (
138
- await this.codeArtifact.send(
139
- new GetRepositoryEndpointCommand({
140
- domain: this.domain,
141
- repository: this.repositoryName,
142
- format: 'maven',
143
- }),
144
- )
145
- ).repositoryEndpoint!,
146
-
147
- nugetEndpoint: (
148
- await this.codeArtifact.send(
149
- new GetRepositoryEndpointCommand({
150
- domain: this.domain,
151
- repository: this.repositoryName,
152
- format: 'nuget',
153
- }),
154
- )
155
- ).repositoryEndpoint!,
156
-
157
- pypiEndpoint: (
158
- await this.codeArtifact.send(
159
- new GetRepositoryEndpointCommand({
160
- domain: this.domain,
161
- repository: this.repositoryName,
162
- format: 'pypi',
163
- }),
164
- )
165
- ).repositoryEndpoint!,
166
- };
167
- return this._loginInformation;
168
- }
169
-
170
- public async delete() {
171
- try {
172
- await this.codeArtifact.send(
173
- new DeleteRepositoryCommand({
174
- domain: this.domain,
175
- repository: this.repositoryName,
176
- }),
177
- );
178
-
179
- // eslint-disable-next-line no-console
180
- console.log('Deleted', this.repositoryName);
181
- } catch (e: any) {
182
- if (e.name !== 'ResourceNotFoundException') {
183
- throw e;
184
- }
185
- // Okay
186
- }
187
- }
188
-
189
- /**
190
- * List all packages and mark them as "allow upstream versions".
191
- *
192
- * If we don't do this and we publish `foo@2.3.4-rc.0`, then we can't
193
- * download `foo@2.3.0` anymore because by default CodeArtifact will
194
- * block different versions from the same package.
195
- */
196
- public async markAllUpstreamAllow() {
197
- for await (const pkg of this.listPackages({ upstream: 'BLOCK' })) {
198
- await retryThrottled(() =>
199
- this.codeArtifact.send(
200
- new PutPackageOriginConfigurationCommand({
201
- domain: this.domain,
202
- repository: this.repositoryName,
203
-
204
- format: pkg.format!,
205
- package: pkg.package!,
206
- namespace: pkg.namespace!,
207
- restrictions: {
208
- publish: 'ALLOW',
209
- upstream: 'ALLOW',
210
- },
211
- }),
212
- ),
213
- );
214
- }
215
- }
216
-
217
- private async ensureDomain() {
218
- if (await this.domainExists()) {
219
- return;
220
- }
221
- await this.codeArtifact.send(
222
- new CreateDomainCommand({
223
- domain: this.domain,
224
- tags: [{ key: 'testing', value: 'true' }],
225
- }),
226
- );
227
- }
228
-
229
- private async ensureUpstreams() {
230
- await this.ensureRepository(this.npmUpstream, {
231
- description: 'The upstream repository for NPM',
232
- external: 'public:npmjs',
233
- });
234
- await this.ensureRepository(this.mavenUpstream, {
235
- description: 'The upstream repository for Maven',
236
- external: 'public:maven-central',
237
- });
238
- await this.ensureRepository(this.nugetUpstream, {
239
- description: 'The upstream repository for NuGet',
240
- external: 'public:nuget-org',
241
- });
242
- await this.ensureRepository(this.pypiUpstream, {
243
- description: 'The upstream repository for PyPI',
244
- external: 'public:pypi',
245
- });
246
- }
247
-
248
- private async ensureRepository(
249
- name: string,
250
- options?: {
251
- readonly description?: string;
252
- readonly external?: string;
253
- readonly upstreams?: string[];
254
- readonly tags?: Record<string, string>;
255
- },
256
- ) {
257
- if (await this.repositoryExists(name)) {
258
- return;
259
- }
260
-
261
- await this.codeArtifact.send(
262
- new CreateRepositoryCommand({
263
- domain: this.domain,
264
- repository: name,
265
- description: options?.description,
266
- upstreams: options?.upstreams?.map((repositoryName) => ({ repositoryName })),
267
- tags: options?.tags ? Object.entries(options.tags).map(([key, value]) => ({ key, value })) : undefined,
268
- }),
269
- );
270
-
271
- if (options?.external) {
272
- const externalConnection = options.external;
273
- await retry(() =>
274
- this.codeArtifact.send(
275
- new AssociateExternalConnectionCommand({
276
- domain: this.domain,
277
- repository: name,
278
- externalConnection,
279
- }),
280
- ),
281
- );
282
- }
283
- }
284
-
285
- private async domainExists() {
286
- try {
287
- await this.codeArtifact.send(new DescribeDomainCommand({ domain: this.domain }));
288
- return true;
289
- } catch (e: any) {
290
- if (e.name !== 'ResourceNotFoundException') {
291
- throw e;
292
- }
293
- return false;
294
- }
295
- }
296
-
297
- private async repositoryExists(name: string) {
298
- try {
299
- await this.codeArtifact.send(new DescribeRepositoryCommand({ domain: this.domain, repository: name }));
300
- return true;
301
- } catch (e: any) {
302
- if (e.name !== 'ResourceNotFoundException') {
303
- throw e;
304
- }
305
- return false;
306
- }
307
- }
308
-
309
- private async *listPackages(filter: Pick<ListPackagesRequest, 'upstream' | 'publish' | 'format'> = {}) {
310
- let response = await retryThrottled(() =>
311
- this.codeArtifact.send(
312
- new ListPackagesCommand({
313
- domain: this.domain,
314
- repository: this.repositoryName,
315
- ...filter,
316
- }),
317
- ),
318
- );
319
-
320
- while (true) {
321
- for (const p of response.packages ?? []) {
322
- yield p;
323
- }
324
-
325
- if (!response.nextToken) {
326
- break;
327
- }
328
-
329
- response = await retryThrottled(() =>
330
- this.codeArtifact.send(
331
- new ListPackagesCommand({
332
- domain: this.domain,
333
- repository: this.repositoryName,
334
- ...filter,
335
- nextToken: response.nextToken,
336
- }),
337
- ),
338
- );
339
- }
340
- }
341
- }
342
-
343
- async function retry<A>(block: () => Promise<A>) {
344
- let attempts = 3;
345
- while (true) {
346
- try {
347
- return await block();
348
- } catch (e: any) {
349
- if (attempts-- === 0) {
350
- throw e;
351
- }
352
- // eslint-disable-next-line no-console
353
- console.debug(e.message);
354
- await sleep(500);
355
- }
356
- }
357
- }
358
-
359
- async function retryThrottled<A>(block: () => Promise<A>) {
360
- let time = 100;
361
- let attempts = 15;
362
- while (true) {
363
- try {
364
- return await block();
365
- } catch (e: any) {
366
- // eslint-disable-next-line no-console
367
- console.debug(e.message);
368
- if (e.name !== 'ThrottlingException') {
369
- throw e;
370
- }
371
- if (attempts-- === 0) {
372
- throw e;
373
- }
374
- await sleep(Math.floor(Math.random() * time));
375
- time *= 2;
376
- }
377
- }
378
- }
379
-
380
- export interface LoginInformation {
381
- readonly authToken: string;
382
- readonly repositoryName: string;
383
- readonly npmEndpoint: string;
384
- readonly mavenEndpoint: string;
385
- readonly nugetEndpoint: string;
386
- readonly pypiEndpoint: string;
387
- }
@@ -1,95 +0,0 @@
1
- /* eslint-disable no-console */
2
- import * as path from 'path';
3
- import { pathExists } from 'fs-extra';
4
- import { LoginInformation } from './codeartifact';
5
- import { parallelShell } from './parallel-shell';
6
- import { UsageDir } from './usage-dir';
7
- import { writeFile } from '../files';
8
- import { shell } from '../shell';
9
-
10
- // Do not try to JIT the Maven binary
11
- const NO_JIT = '-XX:+TieredCompilation -XX:TieredStopAtLevel=1';
12
-
13
- export async function mavenLogin(login: LoginInformation, usageDir: UsageDir) {
14
- await writeMavenSettingsFile(settingsFile(usageDir), login);
15
-
16
- // Write env var
17
- // Twiddle JVM settings a bit to make Maven survive running on a CodeBuild box.
18
- await usageDir.addToEnv({
19
- MAVEN_OPTS: `-Duser.home=${usageDir.directory} ${NO_JIT} ${process.env.MAVEN_OPTS ?? ''}`.trim(),
20
- });
21
- }
22
-
23
- function settingsFile(usageDir: UsageDir) {
24
- // If we configure usageDir as a fake home directory Maven will find this file.
25
- // (No other way to configure the settings file as part of the environment).
26
- return path.join(usageDir.directory, '.m2', 'settings.xml');
27
- }
28
-
29
- export async function uploadJavaPackages(packages: string[], login: LoginInformation, usageDir: UsageDir) {
30
- await parallelShell(packages, async (pkg, output) => {
31
- console.log(`⏳ ${pkg}`);
32
-
33
- const sourcesFile = pkg.replace(/.pom$/, '-sources.jar');
34
- const javadocFile = pkg.replace(/.pom$/, '-javadoc.jar');
35
-
36
- await shell(['mvn',
37
- `--settings=${settingsFile(usageDir)}`,
38
- 'org.apache.maven.plugins:maven-deploy-plugin:3.0.0:deploy-file',
39
- `-Durl=${login.mavenEndpoint}`,
40
- '-DrepositoryId=codeartifact',
41
- `-DpomFile=${pkg}`,
42
- `-Dfile=${pkg.replace(/.pom$/, '.jar')}`,
43
- ...await pathExists(sourcesFile) ? [`-Dsources=${sourcesFile}`] : [],
44
- ...await pathExists(javadocFile) ? [`-Djavadoc=${javadocFile}`] : []], {
45
- outputs: [output],
46
- modEnv: {
47
- // Do not try to JIT the Maven binary
48
- MAVEN_OPTS: `${NO_JIT} ${process.env.MAVEN_OPTS ?? ''}`.trim(),
49
- },
50
- });
51
-
52
- console.log(`✅ ${pkg}`);
53
- },
54
- (pkg, output) => {
55
- if (output.toString().includes('409 Conflict')) {
56
- console.log(`❌ ${pkg}: already exists. Skipped.`);
57
- return 'skip';
58
- }
59
- if (output.toString().includes('Too Many Requests')) {
60
- console.log(`♻️ ${pkg}: Too many requests. Retrying.`);
61
- return 'retry';
62
- }
63
- return 'fail';
64
- });
65
- }
66
-
67
- export async function writeMavenSettingsFile(filename: string, login: LoginInformation) {
68
- await writeFile(filename, `<?xml version="1.0" encoding="UTF-8" ?>
69
- <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
70
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
71
- xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
72
- http://maven.apache.org/xsd/settings-1.0.0.xsd">
73
- <servers>
74
- <server>
75
- <id>codeartifact</id>
76
- <username>aws</username>
77
- <password>${login.authToken}</password>
78
- </server>
79
- </servers>
80
- <profiles>
81
- <profile>
82
- <id>default</id>
83
- <repositories>
84
- <repository>
85
- <id>codeartifact</id>
86
- <url>${login.mavenEndpoint}</url>
87
- </repository>
88
- </repositories>
89
- </profile>
90
- </profiles>
91
- <activeProfiles>
92
- <activeProfile>default</activeProfile>
93
- </activeProfiles>
94
- </settings>`);
95
- }
@@ -1,62 +0,0 @@
1
- /* eslint-disable no-console */
2
- import * as path from 'path';
3
- import { LoginInformation } from './codeartifact';
4
- import { parallelShell } from './parallel-shell';
5
- import { UsageDir } from './usage-dir';
6
- import { updateIniKey, loadLines, writeLines } from '../files';
7
- import { shell } from '../shell';
8
-
9
- export async function npmLogin(login: LoginInformation, usageDir: UsageDir) {
10
- // Creating an ~/.npmrc that references an envvar is what you're supposed to do. (https://docs.npmjs.com/private-modules/ci-server-config)
11
- await writeNpmLoginToken(usageDir, login.npmEndpoint, '${NPM_TOKEN}');
12
-
13
- // Add variables to env file
14
- await usageDir.addToEnv(npmEnv(usageDir, login));
15
- }
16
-
17
- function npmEnv(usageDir: UsageDir, login: LoginInformation) {
18
- return {
19
- npm_config_userconfig: path.join(usageDir.directory, '.npmrc'),
20
- npm_config_registry: login.npmEndpoint,
21
- npm_config_always_auth: 'true', // Necessary for NPM 6, otherwise it will sometimes not pass the token
22
- NPM_TOKEN: login.authToken,
23
- };
24
- }
25
-
26
- export async function uploadNpmPackages(packages: string[], login: LoginInformation, usageDir: UsageDir) {
27
- await parallelShell(packages, async (pkg, output) => {
28
- console.log(`⏳ ${pkg}`);
29
-
30
- // path.resolve() is required -- if the filename ends up looking like `js/bla.tgz` then NPM thinks it's a short form GitHub name.
31
- await shell(['node', require.resolve('npm'), 'publish', path.resolve(pkg)], {
32
- modEnv: npmEnv(usageDir, login),
33
- show: 'error',
34
- outputs: [output],
35
- });
36
-
37
- console.log(`✅ ${pkg}`);
38
- }, (pkg, output) => {
39
- if (output.toString().includes('code EPUBLISHCONFLICT')) {
40
- console.log(`❌ ${pkg}: already exists. Skipped.`);
41
- return 'skip';
42
- }
43
- if (output.toString().includes('code EPRIVATE')) {
44
- console.log(`❌ ${pkg}: is private. Skipped.`);
45
- return 'skip';
46
- }
47
- return 'fail';
48
- });
49
- }
50
-
51
- async function writeNpmLoginToken(usageDir: UsageDir, endpoint: string, token: string) {
52
- const rcFile = path.join(usageDir.directory, '.npmrc');
53
- const lines = await loadLines(rcFile);
54
-
55
- const key = `${endpoint.replace(/^https:/, '')}:_authToken`;
56
- updateIniKey(lines, key, token);
57
-
58
- await writeLines(rcFile, lines);
59
- return rcFile;
60
- }
61
-
62
- // Environment variable, .npmrc in same directory as package.json or in home dir
@@ -1,75 +0,0 @@
1
- /* eslint-disable no-console */
2
- import { LoginInformation } from './codeartifact';
3
- import { parallelShell } from './parallel-shell';
4
- import { UsageDir } from './usage-dir';
5
- import { writeFile } from '../files';
6
- import { shell } from '../shell';
7
-
8
- export async function nugetLogin(login: LoginInformation, usageDir: UsageDir) {
9
- // NuGet.Config MUST live in the current directory or in the home directory, and there is no environment
10
- // variable to configure its location.
11
- await writeNuGetConfigFile(usageDir.cwdFile('NuGet.Config'), login);
12
- }
13
-
14
- export async function uploadDotnetPackages(packages: string[], usageDir: UsageDir) {
15
- await usageDir.copyCwdFileHere('NuGet.Config');
16
-
17
- await parallelShell(packages, async (pkg, output) => {
18
- console.log(`⏳ ${pkg}`);
19
-
20
- await shell(['dotnet', 'nuget', 'push',
21
- pkg,
22
- '--source', 'CodeArtifact',
23
- '--no-symbols',
24
- '--force-english-output',
25
- '--disable-buffering',
26
- '--timeout', '600',
27
- '--skip-duplicate'], {
28
- outputs: [output],
29
- });
30
-
31
- console.log(`✅ ${pkg}`);
32
- },
33
- (pkg, output) => {
34
- if (output.toString().includes('Conflict')) {
35
- console.log(`❌ ${pkg}: already exists. Skipped.`);
36
- return 'skip';
37
- }
38
- if (output.includes('System.Threading.AbandonedMutexException')) {
39
- console.log(`♻️ ${pkg}: AbandonedMutexException. Probably a sign of throttling, retrying.`);
40
- return 'retry';
41
- }
42
- if (output.includes('Too Many Requests')) {
43
- console.log(`♻️ ${pkg}: Too many requests. Retrying.`);
44
- return 'retry';
45
- }
46
- if (output.includes('System.IO.IOException: The system cannot open the device or file specified.')) {
47
- console.log(`♻️ ${pkg}: Some error that we've seen before as a result of throttling. Retrying.`);
48
- return 'retry';
49
- }
50
- return 'fail';
51
- });
52
- }
53
-
54
- async function writeNuGetConfigFile(filename: string, login: LoginInformation) {
55
- // `dotnet nuget push` has an `--api-key` parameter, but CodeArtifact
56
- // does not support that. We must authenticate with Basic auth.
57
- await writeFile(filename, `<?xml version="1.0" encoding="utf-8"?>
58
- <configuration>
59
- <packageSources>
60
- <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
61
- <add key="CodeArtifact" value="${login.nugetEndpoint}v3/index.json" />
62
- </packageSources>
63
- <activePackageSource>
64
- <add key="CodeArtifact" value="${login.nugetEndpoint}v3/index.json" />
65
- </activePackageSource>
66
- <packageSourceCredentials>
67
- <CodeArtifact>
68
- <add key="Username" value="aws" />
69
- <add key="ClearTextPassword" value="${login.authToken}" />
70
- </CodeArtifact>
71
- </packageSourceCredentials>
72
- </configuration>`);
73
- }
74
-
75
- // NuGet.Config in current directory
@@ -1,51 +0,0 @@
1
- import PQueue from 'p-queue';
2
- import { sleep } from '../aws';
3
- import { MemoryStream } from '../corking';
4
-
5
- export type ErrorResponse = 'fail' | 'skip' | 'retry';
6
-
7
- /**
8
- * Run a function in parallel with cached output
9
- */
10
- export async function parallelShell<A>(
11
- inputs: A[],
12
- block: (x: A, output: NodeJS.WritableStream) => Promise<void>,
13
- swallowError?: (x: A, output: string) => ErrorResponse,
14
- ) {
15
- // Limit to 10 for now, too many instances of Maven exhaust the CodeBuild instance memory
16
- const q = new PQueue({ concurrency: Number(process.env.CONCURRENCY) || 10 });
17
- await q.addAll(inputs.map(input => async () => {
18
- let attempts = 10;
19
- let sleepMs = 500;
20
- while (true) {
21
- const output = new MemoryStream();
22
- try {
23
- await block(input, output);
24
- return;
25
- } catch (e) {
26
- switch (swallowError?.(input, output.toString())) {
27
- case 'skip':
28
- return;
29
-
30
- case 'retry':
31
- if (--attempts > 0) {
32
- await sleep(Math.floor(Math.random() * sleepMs));
33
- sleepMs *= 2;
34
- continue;
35
- }
36
- break;
37
-
38
- case 'fail':
39
- case undefined:
40
- break;
41
- }
42
-
43
- // eslint-disable-next-line no-console
44
- console.error(output.toString());
45
- throw e;
46
- }
47
- }
48
- }));
49
-
50
- await q.onEmpty();
51
- }