testcontainers 9.12.0 → 10.0.0-beta.6

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 (405) hide show
  1. package/{dist/src → build/common}/clock.js +1 -0
  2. package/build/common/clock.js.map +1 -0
  3. package/build/common/file-lock.js +58 -0
  4. package/build/common/file-lock.js.map +1 -0
  5. package/build/common/hash.d.ts +1 -0
  6. package/{dist/src → build/common}/hash.js +3 -2
  7. package/build/common/hash.js.map +1 -0
  8. package/build/common/index.d.ts +7 -0
  9. package/build/common/index.js +37 -0
  10. package/build/common/index.js.map +1 -0
  11. package/{dist/src → build/common}/logger.d.ts +5 -6
  12. package/{dist/src → build/common}/logger.js +5 -2
  13. package/build/common/logger.js.map +1 -0
  14. package/{dist/src/retry-strategy.d.ts → build/common/retry.d.ts} +3 -3
  15. package/build/common/retry.js +38 -0
  16. package/build/common/retry.js.map +1 -0
  17. package/build/common/streams.js +13 -0
  18. package/build/common/streams.js.map +1 -0
  19. package/{dist/src → build/common}/type-guards.js +1 -0
  20. package/build/common/type-guards.js.map +1 -0
  21. package/{dist/src → build/common}/uuid.js +1 -0
  22. package/build/common/uuid.js.map +1 -0
  23. package/build/container-runtime/auth/auths.d.ts +7 -0
  24. package/build/container-runtime/auth/auths.js +45 -0
  25. package/build/container-runtime/auth/auths.js.map +1 -0
  26. package/build/container-runtime/auth/cred-helpers.d.ts +6 -0
  27. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/cred-helpers.js +1 -0
  28. package/build/container-runtime/auth/cred-helpers.js.map +1 -0
  29. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/credential-provider.d.ts +3 -4
  30. package/build/container-runtime/auth/credential-provider.js +71 -0
  31. package/build/container-runtime/auth/credential-provider.js.map +1 -0
  32. package/build/container-runtime/auth/creds-store.d.ts +6 -0
  33. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/creds-store.js +1 -0
  34. package/build/container-runtime/auth/creds-store.js.map +1 -0
  35. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/get-auth-config.d.ts +1 -1
  36. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/get-auth-config.js +11 -19
  37. package/build/container-runtime/auth/get-auth-config.js.map +1 -0
  38. package/build/container-runtime/auth/registry-auth-locator.d.ts +5 -0
  39. package/build/container-runtime/auth/registry-auth-locator.js +3 -0
  40. package/build/container-runtime/auth/registry-auth-locator.js.map +1 -0
  41. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/registry-matches.js +1 -0
  42. package/build/container-runtime/auth/registry-matches.js.map +1 -0
  43. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/types.d.ts +13 -1
  44. package/{dist/src/registry-auth-locator → build/container-runtime/auth}/types.js +1 -0
  45. package/build/container-runtime/auth/types.js.map +1 -0
  46. package/build/container-runtime/clients/client.d.ts +14 -0
  47. package/build/container-runtime/clients/client.js +105 -0
  48. package/build/container-runtime/clients/client.js.map +1 -0
  49. package/build/container-runtime/clients/compose/compose-client.d.ts +11 -0
  50. package/build/container-runtime/clients/compose/compose-client.js +238 -0
  51. package/build/container-runtime/clients/compose/compose-client.js.map +1 -0
  52. package/build/container-runtime/clients/compose/default-compose-options.d.ts +4 -0
  53. package/build/container-runtime/clients/compose/default-compose-options.js +31 -0
  54. package/build/container-runtime/clients/compose/default-compose-options.js.map +1 -0
  55. package/build/container-runtime/clients/compose/parse-compose-container-name.d.ts +1 -0
  56. package/{dist/src/docker-compose/container-name-resolver.js → build/container-runtime/clients/compose/parse-compose-container-name.js} +5 -4
  57. package/build/container-runtime/clients/compose/parse-compose-container-name.js.map +1 -0
  58. package/build/container-runtime/clients/compose/types.d.ts +15 -0
  59. package/{dist/src/docker → build/container-runtime/clients/compose}/types.js +1 -0
  60. package/build/container-runtime/clients/compose/types.js.map +1 -0
  61. package/build/container-runtime/clients/container/container-client.d.ts +32 -0
  62. package/build/container-runtime/clients/container/container-client.js +3 -0
  63. package/build/container-runtime/clients/container/container-client.js.map +1 -0
  64. package/build/container-runtime/clients/container/docker-container-client.d.ts +35 -0
  65. package/build/container-runtime/clients/container/docker-container-client.js +276 -0
  66. package/build/container-runtime/clients/container/docker-container-client.js.map +1 -0
  67. package/build/container-runtime/clients/container/podman-container-client.d.ts +8 -0
  68. package/build/container-runtime/clients/container/podman-container-client.js +43 -0
  69. package/build/container-runtime/clients/container/podman-container-client.js.map +1 -0
  70. package/build/container-runtime/clients/container/types.d.ts +4 -0
  71. package/{dist/src/docker/client/docker-client-types.js → build/container-runtime/clients/container/types.js} +1 -0
  72. package/build/container-runtime/clients/container/types.js.map +1 -0
  73. package/build/container-runtime/clients/image/docker-image-client.d.ts +16 -0
  74. package/build/container-runtime/clients/image/docker-image-client.js +119 -0
  75. package/build/container-runtime/clients/image/docker-image-client.js.map +1 -0
  76. package/build/container-runtime/clients/image/image-client.d.ts +9 -0
  77. package/build/container-runtime/clients/image/image-client.js +3 -0
  78. package/build/container-runtime/clients/image/image-client.js.map +1 -0
  79. package/build/container-runtime/clients/network/docker-network-client.d.ts +9 -0
  80. package/build/container-runtime/clients/network/docker-network-client.js +50 -0
  81. package/build/container-runtime/clients/network/docker-network-client.js.map +1 -0
  82. package/build/container-runtime/clients/network/network-client.d.ts +6 -0
  83. package/build/container-runtime/clients/network/network-client.js +3 -0
  84. package/build/container-runtime/clients/network/network-client.js.map +1 -0
  85. package/build/container-runtime/clients/types.d.ts +30 -0
  86. package/{dist/src/docker/client/strategy/docker-client-strategy.js → build/container-runtime/clients/types.js} +1 -0
  87. package/build/container-runtime/clients/types.js.map +1 -0
  88. package/build/container-runtime/image-name.d.ts +11 -0
  89. package/{dist/src/docker-image-name.js → build/container-runtime/image-name.js} +11 -17
  90. package/build/container-runtime/image-name.js.map +1 -0
  91. package/build/container-runtime/index.d.ts +6 -0
  92. package/build/container-runtime/index.js +13 -0
  93. package/build/container-runtime/index.js.map +1 -0
  94. package/build/container-runtime/strategies/configuration-strategy.d.ts +9 -0
  95. package/build/container-runtime/strategies/configuration-strategy.js +53 -0
  96. package/build/container-runtime/strategies/configuration-strategy.js.map +1 -0
  97. package/build/container-runtime/strategies/npipe-socket-strategy.d.ts +6 -0
  98. package/build/container-runtime/strategies/npipe-socket-strategy.js +21 -0
  99. package/build/container-runtime/strategies/npipe-socket-strategy.js.map +1 -0
  100. package/build/container-runtime/strategies/rootless-unix-socket-strategy.d.ts +14 -0
  101. package/build/container-runtime/strategies/rootless-unix-socket-strategy.js +63 -0
  102. package/build/container-runtime/strategies/rootless-unix-socket-strategy.js.map +1 -0
  103. package/build/container-runtime/strategies/strategy.d.ts +5 -0
  104. package/{dist/src/registry-auth-locator/registry-auth-locator.js → build/container-runtime/strategies/strategy.js} +1 -0
  105. package/build/container-runtime/strategies/strategy.js.map +1 -0
  106. package/build/container-runtime/strategies/testcontainers-host-strategy.d.ts +6 -0
  107. package/build/container-runtime/strategies/testcontainers-host-strategy.js +30 -0
  108. package/build/container-runtime/strategies/testcontainers-host-strategy.js.map +1 -0
  109. package/build/container-runtime/strategies/types.d.ts +8 -0
  110. package/build/container-runtime/strategies/types.js +3 -0
  111. package/build/container-runtime/strategies/types.js.map +1 -0
  112. package/build/container-runtime/strategies/unix-socket-strategy.d.ts +6 -0
  113. package/build/container-runtime/strategies/unix-socket-strategy.js +22 -0
  114. package/build/container-runtime/strategies/unix-socket-strategy.js.map +1 -0
  115. package/build/container-runtime/strategies/utils/config.d.ts +9 -0
  116. package/build/container-runtime/strategies/utils/config.js +75 -0
  117. package/build/container-runtime/strategies/utils/config.js.map +1 -0
  118. package/build/container-runtime/utils/attach-container.js +17 -0
  119. package/build/container-runtime/utils/attach-container.js.map +1 -0
  120. package/build/container-runtime/utils/demux-stream.d.ts +4 -0
  121. package/build/container-runtime/utils/demux-stream.js +24 -0
  122. package/build/container-runtime/utils/demux-stream.js.map +1 -0
  123. package/build/container-runtime/utils/image-exists.d.ts +3 -0
  124. package/build/container-runtime/utils/image-exists.js +29 -0
  125. package/build/container-runtime/utils/image-exists.js.map +1 -0
  126. package/build/container-runtime/utils/lookup-host-ips.d.ts +2 -0
  127. package/build/container-runtime/utils/lookup-host-ips.js +18 -0
  128. package/build/container-runtime/utils/lookup-host-ips.js.map +1 -0
  129. package/{dist/src/docker/functions/image → build/container-runtime/utils}/pull-image.d.ts +2 -2
  130. package/build/container-runtime/utils/pull-image.js +35 -0
  131. package/build/container-runtime/utils/pull-image.js.map +1 -0
  132. package/build/container-runtime/utils/remote-container-runtime-socket-path.d.ts +7 -0
  133. package/build/container-runtime/utils/remote-container-runtime-socket-path.js +23 -0
  134. package/build/container-runtime/utils/remote-container-runtime-socket-path.js.map +1 -0
  135. package/build/container-runtime/utils/resolve-host.d.ts +8 -0
  136. package/build/container-runtime/utils/resolve-host.js +54 -0
  137. package/build/container-runtime/utils/resolve-host.js.map +1 -0
  138. package/build/container-runtime/utils/run-in-container.js +30 -0
  139. package/build/container-runtime/utils/run-in-container.js.map +1 -0
  140. package/build/container-runtime/utils/start-container.js +15 -0
  141. package/build/container-runtime/utils/start-container.js.map +1 -0
  142. package/{dist/src → build}/docker-compose-environment/docker-compose-environment.d.ts +5 -5
  143. package/build/docker-compose-environment/docker-compose-environment.js +144 -0
  144. package/build/docker-compose-environment/docker-compose-environment.js.map +1 -0
  145. package/{dist/src → build}/docker-compose-environment/downed-docker-compose-environment.js +1 -0
  146. package/build/docker-compose-environment/downed-docker-compose-environment.js.map +1 -0
  147. package/{dist/src → build}/docker-compose-environment/started-docker-compose-environment.d.ts +3 -3
  148. package/build/docker-compose-environment/started-docker-compose-environment.js +37 -0
  149. package/build/docker-compose-environment/started-docker-compose-environment.js.map +1 -0
  150. package/build/docker-compose-environment/stopped-docker-compose-environment.d.ts +7 -0
  151. package/build/docker-compose-environment/stopped-docker-compose-environment.js +19 -0
  152. package/build/docker-compose-environment/stopped-docker-compose-environment.js.map +1 -0
  153. package/{dist/src/modules → build/generic-container}/abstract-started-container.d.ts +1 -1
  154. package/build/generic-container/abstract-started-container.js +69 -0
  155. package/build/generic-container/abstract-started-container.js.map +1 -0
  156. package/{dist/src/modules → build/generic-container}/abstract-stopped-container.js +2 -0
  157. package/build/generic-container/abstract-stopped-container.js.map +1 -0
  158. package/{dist/src → build}/generic-container/generic-container-builder.d.ts +4 -4
  159. package/build/generic-container/generic-container-builder.js +87 -0
  160. package/build/generic-container/generic-container-builder.js.map +1 -0
  161. package/{dist/src → build}/generic-container/generic-container.d.ts +18 -22
  162. package/build/generic-container/generic-container.js +350 -0
  163. package/build/generic-container/generic-container.js.map +1 -0
  164. package/{dist/src → build}/generic-container/started-generic-container.d.ts +6 -6
  165. package/build/generic-container/started-generic-container.js +161 -0
  166. package/build/generic-container/started-generic-container.js.map +1 -0
  167. package/build/generic-container/stopped-generic-container.js +23 -0
  168. package/build/generic-container/stopped-generic-container.js.map +1 -0
  169. package/build/index.d.ts +16 -0
  170. package/build/index.js +35 -0
  171. package/build/index.js.map +1 -0
  172. package/build/network/network.d.ts +19 -0
  173. package/build/network/network.js +61 -0
  174. package/build/network/network.js.map +1 -0
  175. package/{dist/src → build/port-forwarder}/port-forwarder.d.ts +2 -1
  176. package/build/port-forwarder/port-forwarder.js +73 -0
  177. package/build/port-forwarder/port-forwarder.js.map +1 -0
  178. package/build/reaper/reaper.d.ts +8 -0
  179. package/build/reaper/reaper.js +119 -0
  180. package/build/reaper/reaper.js.map +1 -0
  181. package/{dist/src → build}/test-container.d.ts +6 -6
  182. package/{dist/src → build}/test-container.js +1 -0
  183. package/build/test-container.js.map +1 -0
  184. package/build/test-containers.js +12 -0
  185. package/build/test-containers.js.map +1 -0
  186. package/{dist/src/docker → build}/types.d.ts +16 -0
  187. package/build/types.js +3 -0
  188. package/build/types.js.map +1 -0
  189. package/{dist/src → build/utils}/bound-ports.d.ts +4 -3
  190. package/{dist/src → build/utils}/bound-ports.js +22 -5
  191. package/build/utils/bound-ports.js.map +1 -0
  192. package/build/utils/dockerfile-parser.d.ts +3 -0
  193. package/build/utils/dockerfile-parser.js +28 -0
  194. package/build/utils/dockerfile-parser.js.map +1 -0
  195. package/{dist/src → build/utils}/labels.d.ts +1 -0
  196. package/build/utils/labels.js +18 -0
  197. package/build/utils/labels.js.map +1 -0
  198. package/build/utils/map-inspect-result.d.ts +3 -0
  199. package/build/utils/map-inspect-result.js +55 -0
  200. package/build/utils/map-inspect-result.js.map +1 -0
  201. package/build/utils/port-generator.js +43 -0
  202. package/build/utils/port-generator.js.map +1 -0
  203. package/{dist/src → build/utils}/port.d.ts +0 -3
  204. package/build/utils/port.js +10 -0
  205. package/build/utils/port.js.map +1 -0
  206. package/build/utils/pull-policy.d.ts +7 -0
  207. package/build/utils/pull-policy.js +23 -0
  208. package/build/utils/pull-policy.js.map +1 -0
  209. package/build/utils/test-helper.d.ts +19 -0
  210. package/build/utils/test-helper.js +107 -0
  211. package/build/utils/test-helper.js.map +1 -0
  212. package/build/version.d.ts +1 -0
  213. package/build/version.js +5 -0
  214. package/build/version.js.map +1 -0
  215. package/{dist/src/wait-strategy → build/wait-strategies}/composite-wait-strategy.d.ts +1 -1
  216. package/build/wait-strategies/composite-wait-strategy.js +49 -0
  217. package/build/wait-strategies/composite-wait-strategy.js.map +1 -0
  218. package/build/wait-strategies/health-check-wait-strategy.js +26 -0
  219. package/build/wait-strategies/health-check-wait-strategy.js.map +1 -0
  220. package/{dist/src/wait-strategy → build/wait-strategies}/host-port-wait-strategy.d.ts +1 -1
  221. package/build/wait-strategies/host-port-wait-strategy.js +42 -0
  222. package/build/wait-strategies/host-port-wait-strategy.js.map +1 -0
  223. package/{dist/src/wait-strategy → build/wait-strategies}/http-wait-strategy.d.ts +1 -1
  224. package/build/wait-strategies/http-wait-strategy.js +111 -0
  225. package/build/wait-strategies/http-wait-strategy.js.map +1 -0
  226. package/{dist/src/wait-strategy → build/wait-strategies}/log-wait-strategy.d.ts +1 -1
  227. package/build/wait-strategies/log-wait-strategy.js +62 -0
  228. package/build/wait-strategies/log-wait-strategy.js.map +1 -0
  229. package/build/wait-strategies/shell-wait-strategy.js +30 -0
  230. package/build/wait-strategies/shell-wait-strategy.js.map +1 -0
  231. package/{dist/src/wait-strategy → build/wait-strategies}/startup-check-strategy.d.ts +3 -0
  232. package/build/wait-strategies/startup-check-strategy.js +27 -0
  233. package/build/wait-strategies/startup-check-strategy.js.map +1 -0
  234. package/{dist/src → build/wait-strategies/utils}/port-check.d.ts +5 -6
  235. package/build/wait-strategies/utils/port-check.js +81 -0
  236. package/build/wait-strategies/utils/port-check.js.map +1 -0
  237. package/build/wait-strategies/wait-for-container.d.ts +5 -0
  238. package/build/wait-strategies/wait-for-container.js +24 -0
  239. package/build/wait-strategies/wait-for-container.js.map +1 -0
  240. package/{dist/src/wait-strategy → build/wait-strategies}/wait-strategy.d.ts +1 -1
  241. package/{dist/src/wait-strategy → build/wait-strategies}/wait-strategy.js +3 -4
  242. package/build/wait-strategies/wait-strategy.js.map +1 -0
  243. package/{dist/src/wait-strategy → build/wait-strategies}/wait.js +1 -0
  244. package/build/wait-strategies/wait.js.map +1 -0
  245. package/package.json +20 -65
  246. package/LICENSE +0 -21
  247. package/README.md +0 -27
  248. package/dist/package.json +0 -104
  249. package/dist/src/docker/client/docker-client-config.d.ts +0 -9
  250. package/dist/src/docker/client/docker-client-config.js +0 -82
  251. package/dist/src/docker/client/docker-client-types.d.ts +0 -23
  252. package/dist/src/docker/client/docker-client.d.ts +0 -2
  253. package/dist/src/docker/client/docker-client.js +0 -133
  254. package/dist/src/docker/client/strategy/configuration-strategy.d.ts +0 -11
  255. package/dist/src/docker/client/strategy/configuration-strategy.js +0 -66
  256. package/dist/src/docker/client/strategy/docker-client-strategy.d.ts +0 -7
  257. package/dist/src/docker/client/strategy/npipe-socket-strategy.d.ts +0 -7
  258. package/dist/src/docker/client/strategy/npipe-socket-strategy.js +0 -31
  259. package/dist/src/docker/client/strategy/rootless-unix-socket-strategy.d.ts +0 -18
  260. package/dist/src/docker/client/strategy/rootless-unix-socket-strategy.js +0 -77
  261. package/dist/src/docker/client/strategy/testcontainers-host-strategy.d.ts +0 -9
  262. package/dist/src/docker/client/strategy/testcontainers-host-strategy.js +0 -47
  263. package/dist/src/docker/client/strategy/unix-socket-strategy.d.ts +0 -7
  264. package/dist/src/docker/client/strategy/unix-socket-strategy.js +0 -32
  265. package/dist/src/docker/functions/container/attach-container.js +0 -25
  266. package/dist/src/docker/functions/container/container-logs.d.ts +0 -6
  267. package/dist/src/docker/functions/container/container-logs.js +0 -32
  268. package/dist/src/docker/functions/container/create-container.d.ts +0 -31
  269. package/dist/src/docker/functions/container/create-container.js +0 -117
  270. package/dist/src/docker/functions/container/exec-container.d.ts +0 -3
  271. package/dist/src/docker/functions/container/exec-container.js +0 -66
  272. package/dist/src/docker/functions/container/get-container-archive.d.ts +0 -11
  273. package/dist/src/docker/functions/container/get-container-archive.js +0 -23
  274. package/dist/src/docker/functions/container/get-container.d.ts +0 -3
  275. package/dist/src/docker/functions/container/get-container.js +0 -49
  276. package/dist/src/docker/functions/container/inspect-container.d.ts +0 -19
  277. package/dist/src/docker/functions/container/inspect-container.js +0 -67
  278. package/dist/src/docker/functions/container/list-containers.d.ts +0 -2
  279. package/dist/src/docker/functions/container/list-containers.js +0 -25
  280. package/dist/src/docker/functions/container/put-container-archive.d.ts +0 -9
  281. package/dist/src/docker/functions/container/put-container-archive.js +0 -26
  282. package/dist/src/docker/functions/container/remove-container.d.ts +0 -5
  283. package/dist/src/docker/functions/container/remove-container.js +0 -23
  284. package/dist/src/docker/functions/container/restart-container.d.ts +0 -5
  285. package/dist/src/docker/functions/container/restart-container.js +0 -23
  286. package/dist/src/docker/functions/container/start-container.js +0 -23
  287. package/dist/src/docker/functions/container/stop-container.d.ts +0 -5
  288. package/dist/src/docker/functions/container/stop-container.js +0 -29
  289. package/dist/src/docker/functions/create-labels.d.ts +0 -2
  290. package/dist/src/docker/functions/create-labels.js +0 -13
  291. package/dist/src/docker/functions/demux-stream.d.ts +0 -3
  292. package/dist/src/docker/functions/demux-stream.js +0 -32
  293. package/dist/src/docker/functions/get-info.d.ts +0 -11
  294. package/dist/src/docker/functions/get-info.js +0 -38
  295. package/dist/src/docker/functions/image/build-image.d.ts +0 -14
  296. package/dist/src/docker/functions/image/build-image.js +0 -81
  297. package/dist/src/docker/functions/image/image-exists.d.ts +0 -3
  298. package/dist/src/docker/functions/image/image-exists.js +0 -37
  299. package/dist/src/docker/functions/image/pull-image.js +0 -48
  300. package/dist/src/docker/functions/network/connect-network.d.ts +0 -6
  301. package/dist/src/docker/functions/network/connect-network.js +0 -28
  302. package/dist/src/docker/functions/network/create-network.d.ts +0 -16
  303. package/dist/src/docker/functions/network/create-network.js +0 -39
  304. package/dist/src/docker/functions/network/remove-network.d.ts +0 -1
  305. package/dist/src/docker/functions/network/remove-network.js +0 -31
  306. package/dist/src/docker/functions/run-in-container.js +0 -39
  307. package/dist/src/docker/lookup-host-ips.d.ts +0 -5
  308. package/dist/src/docker/lookup-host-ips.js +0 -26
  309. package/dist/src/docker/remote-docker-unix-socket-path.d.ts +0 -7
  310. package/dist/src/docker/remote-docker-unix-socket-path.js +0 -22
  311. package/dist/src/docker/resolve-host.d.ts +0 -8
  312. package/dist/src/docker/resolve-host.js +0 -63
  313. package/dist/src/docker-compose/container-name-resolver.d.ts +0 -1
  314. package/dist/src/docker-compose/docker-compose-client.d.ts +0 -9
  315. package/dist/src/docker-compose/docker-compose-client.js +0 -221
  316. package/dist/src/docker-compose/docker-compose-options.d.ts +0 -17
  317. package/dist/src/docker-compose/docker-compose-options.js +0 -51
  318. package/dist/src/docker-compose-environment/docker-compose-environment.js +0 -146
  319. package/dist/src/docker-compose-environment/started-docker-compose-environment.js +0 -47
  320. package/dist/src/docker-compose-environment/stopped-docker-compose-environment.d.ts +0 -7
  321. package/dist/src/docker-compose-environment/stopped-docker-compose-environment.js +0 -28
  322. package/dist/src/docker-image-name.d.ts +0 -15
  323. package/dist/src/dockerfile-parser.d.ts +0 -3
  324. package/dist/src/dockerfile-parser.js +0 -39
  325. package/dist/src/file-lock.js +0 -47
  326. package/dist/src/generic-container/create-container-options.d.ts +0 -3
  327. package/dist/src/generic-container/create-container-options.js +0 -18
  328. package/dist/src/generic-container/generic-container-builder.js +0 -97
  329. package/dist/src/generic-container/generic-container.js +0 -329
  330. package/dist/src/generic-container/started-generic-container.js +0 -168
  331. package/dist/src/generic-container/stopped-generic-container.js +0 -20
  332. package/dist/src/hash.d.ts +0 -1
  333. package/dist/src/images.d.ts +0 -2
  334. package/dist/src/images.js +0 -6
  335. package/dist/src/index.d.ts +0 -25
  336. package/dist/src/index.js +0 -66
  337. package/dist/src/labels.js +0 -8
  338. package/dist/src/modules/abstract-started-container.js +0 -86
  339. package/dist/src/modules/arangodb/arangodb-container.d.ts +0 -19
  340. package/dist/src/modules/arangodb/arangodb-container.js +0 -60
  341. package/dist/src/modules/elasticsearch/elasticsearch-container.d.ts +0 -12
  342. package/dist/src/modules/elasticsearch/elasticsearch-container.js +0 -49
  343. package/dist/src/modules/hivemq/hivemq-container.d.ts +0 -15
  344. package/dist/src/modules/hivemq/hivemq-container.js +0 -79
  345. package/dist/src/modules/kafka/kafka-container.d.ts +0 -45
  346. package/dist/src/modules/kafka/kafka-container.js +0 -177
  347. package/dist/src/modules/mongodb/mongodb-container.d.ts +0 -19
  348. package/dist/src/modules/mongodb/mongodb-container.js +0 -85
  349. package/dist/src/modules/mysql/mysql-container.d.ts +0 -30
  350. package/dist/src/modules/mysql/mysql-container.js +0 -111
  351. package/dist/src/modules/nats/nats-container.d.ts +0 -55
  352. package/dist/src/modules/nats/nats-container.js +0 -99
  353. package/dist/src/modules/neo4j/neo4j-container.d.ts +0 -23
  354. package/dist/src/modules/neo4j/neo4j-container.js +0 -82
  355. package/dist/src/modules/postgresql/postgresql-container.d.ts +0 -28
  356. package/dist/src/modules/postgresql/postgresql-container.js +0 -87
  357. package/dist/src/modules/selenium/selenium-container.d.ts +0 -38
  358. package/dist/src/modules/selenium/selenium-container.js +0 -161
  359. package/dist/src/network.d.ts +0 -18
  360. package/dist/src/network.js +0 -60
  361. package/dist/src/port-check.js +0 -90
  362. package/dist/src/port-forwarder.js +0 -83
  363. package/dist/src/port-generator.js +0 -51
  364. package/dist/src/port.js +0 -47
  365. package/dist/src/pull-policy.d.ts +0 -9
  366. package/dist/src/pull-policy.js +0 -15
  367. package/dist/src/reaper.d.ts +0 -5
  368. package/dist/src/reaper.js +0 -157
  369. package/dist/src/registry-auth-locator/auths.d.ts +0 -8
  370. package/dist/src/registry-auth-locator/auths.js +0 -56
  371. package/dist/src/registry-auth-locator/cred-helpers.d.ts +0 -6
  372. package/dist/src/registry-auth-locator/credential-provider.js +0 -81
  373. package/dist/src/registry-auth-locator/creds-store.d.ts +0 -6
  374. package/dist/src/registry-auth-locator/registry-auth-locator.d.ts +0 -6
  375. package/dist/src/retry-strategy.js +0 -46
  376. package/dist/src/stream-utils.js +0 -46
  377. package/dist/src/system-info.d.ts +0 -19
  378. package/dist/src/system-info.js +0 -80
  379. package/dist/src/test-containers.js +0 -22
  380. package/dist/src/wait-for-container.d.ts +0 -4
  381. package/dist/src/wait-for-container.js +0 -34
  382. package/dist/src/wait-strategy/composite-wait-strategy.js +0 -57
  383. package/dist/src/wait-strategy/health-check-wait-strategy.js +0 -36
  384. package/dist/src/wait-strategy/host-port-wait-strategy.js +0 -59
  385. package/dist/src/wait-strategy/http-wait-strategy.js +0 -120
  386. package/dist/src/wait-strategy/log-wait-strategy.js +0 -69
  387. package/dist/src/wait-strategy/shell-wait-strategy.js +0 -39
  388. package/dist/src/wait-strategy/startup-check-strategy.js +0 -35
  389. /package/{dist/src → build/common}/clock.d.ts +0 -0
  390. /package/{dist/src → build/common}/file-lock.d.ts +0 -0
  391. /package/{dist/src/stream-utils.d.ts → build/common/streams.d.ts} +0 -0
  392. /package/{dist/src → build/common}/type-guards.d.ts +0 -0
  393. /package/{dist/src → build/common}/uuid.d.ts +0 -0
  394. /package/{dist/src/registry-auth-locator → build/container-runtime/auth}/registry-matches.d.ts +0 -0
  395. /package/{dist/src/docker/functions/container → build/container-runtime/utils}/attach-container.d.ts +0 -0
  396. /package/{dist/src/docker/functions → build/container-runtime/utils}/run-in-container.d.ts +0 -0
  397. /package/{dist/src/docker/functions/container → build/container-runtime/utils}/start-container.d.ts +0 -0
  398. /package/{dist/src → build}/docker-compose-environment/downed-docker-compose-environment.d.ts +0 -0
  399. /package/{dist/src/modules → build/generic-container}/abstract-stopped-container.d.ts +0 -0
  400. /package/{dist/src → build}/generic-container/stopped-generic-container.d.ts +0 -0
  401. /package/{dist/src → build}/test-containers.d.ts +0 -0
  402. /package/{dist/src → build/utils}/port-generator.d.ts +0 -0
  403. /package/{dist/src/wait-strategy → build/wait-strategies}/health-check-wait-strategy.d.ts +0 -0
  404. /package/{dist/src/wait-strategy → build/wait-strategies}/shell-wait-strategy.d.ts +0 -0
  405. /package/{dist/src/wait-strategy → build/wait-strategies}/wait.d.ts +0 -0
@@ -1,157 +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
- exports.startReaper = exports.registerComposeProjectForCleanup = exports.registerSessionIdForCleanup = void 0;
13
- const net_1 = require("net");
14
- const logger_1 = require("./logger");
15
- const generic_container_1 = require("./generic-container/generic-container");
16
- const images_1 = require("./images");
17
- const labels_1 = require("./labels");
18
- const wait_1 = require("./wait-strategy/wait");
19
- const retry_strategy_1 = require("./retry-strategy");
20
- const remote_docker_unix_socket_path_1 = require("./docker/remote-docker-unix-socket-path");
21
- const docker_client_1 = require("./docker/client/docker-client");
22
- const isReaperEnabled = process.env.TESTCONTAINERS_RYUK_DISABLED !== "true";
23
- let reaper;
24
- function registerSessionIdForCleanup(sessionId) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- if (!reaper) {
27
- yield (0, docker_client_1.getDockerClient)();
28
- }
29
- (yield reaper).addSession(sessionId);
30
- });
31
- }
32
- exports.registerSessionIdForCleanup = registerSessionIdForCleanup;
33
- function registerComposeProjectForCleanup(project) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- if (!reaper) {
36
- yield (0, docker_client_1.getDockerClient)();
37
- }
38
- (yield reaper).addProject(project);
39
- });
40
- }
41
- exports.registerComposeProjectForCleanup = registerComposeProjectForCleanup;
42
- function startReaper(dockerClient, sessionId, existingReaperContainer) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- reaper = !isReaperEnabled
45
- ? yield createDisabledReaper()
46
- : existingReaperContainer
47
- ? yield useExistingReaper(dockerClient, sessionId, existingReaperContainer)
48
- : yield createNewReaper(dockerClient, sessionId);
49
- });
50
- }
51
- exports.startReaper = startReaper;
52
- function createDisabledReaper() {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- return new DisabledReaper();
55
- });
56
- }
57
- function useExistingReaper(dockerClient, sessionId, reaperContainer) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- logger_1.log.debug(`Reusing existing Reaper for session "${sessionId}"...`);
60
- const reaperPort = getReaperPublicPort(reaperContainer);
61
- const socket = yield connectToReaperSocket(dockerClient.host, reaperPort, sessionId, reaperContainer.Id);
62
- return new RealReaper(sessionId, socket);
63
- });
64
- }
65
- function getReaperPublicPort(reaperContainer) {
66
- var _a;
67
- const port = (_a = reaperContainer.Ports.find((port) => port.PrivatePort == 8080)) === null || _a === void 0 ? void 0 : _a.PublicPort;
68
- if (!port) {
69
- throw new Error("Expected Reaper to map exposed port 8080");
70
- }
71
- return port;
72
- }
73
- function createNewReaper(dockerClient, sessionId) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- const remoteDockerUnixSocketPath = (0, remote_docker_unix_socket_path_1.getRemoteDockerUnixSocketPath)(dockerClient);
76
- logger_1.log.debug(`Creating new Reaper for session "${sessionId}" with socket path "${remoteDockerUnixSocketPath}"...`);
77
- const startedContainer = yield createAndStartReaperContainer(sessionId, remoteDockerUnixSocketPath);
78
- const containerId = startedContainer.getId();
79
- const host = startedContainer.getHost();
80
- const port = startedContainer.getMappedPort(8080);
81
- const socket = yield connectToReaperSocket(host, port, sessionId, containerId);
82
- return new RealReaper(sessionId, socket);
83
- });
84
- }
85
- function createAndStartReaperContainer(sessionId, socketPath) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const exposedPort = process.env["TESTCONTAINERS_RYUK_PORT"]
88
- ? { container: 8080, host: Number(process.env["TESTCONTAINERS_RYUK_PORT"]) }
89
- : 8080;
90
- const container = new generic_container_1.GenericContainer(images_1.REAPER_IMAGE)
91
- .withName(`testcontainers-ryuk-${sessionId}`)
92
- .withExposedPorts(exposedPort)
93
- .withBindMounts([{ source: socketPath, target: "/var/run/docker.sock" }])
94
- .withWaitStrategy(wait_1.Wait.forLogMessage(/.+ Started!/));
95
- if (process.env.TESTCONTAINERS_RYUK_PRIVILEGED === "true") {
96
- container.withPrivilegedMode();
97
- }
98
- return yield container.start();
99
- });
100
- }
101
- function connectToReaperSocket(host, port, sessionId, containerId) {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- const retryResult = yield new retry_strategy_1.IntervalRetryStrategy(1000).retryUntil((attempt) => {
104
- return new Promise((resolve) => {
105
- logger_1.log.debug(`Connecting to Reaper (attempt ${attempt + 1}) on "${host}:${port}"...`, { containerId });
106
- const socket = new net_1.Socket();
107
- socket
108
- .unref()
109
- .on("timeout", () => logger_1.log.error(`Reaper ${containerId} socket timed out`))
110
- .on("error", (err) => logger_1.log.error(`Reaper ${containerId} socket error: ${err}`))
111
- .on("close", (hadError) => {
112
- if (hadError) {
113
- logger_1.log.error(`Connection to Reaper closed with error`, { containerId });
114
- }
115
- else {
116
- logger_1.log.warn(`Connection to Reaper closed`, { containerId });
117
- }
118
- resolve(undefined);
119
- })
120
- .connect(port, host, () => {
121
- logger_1.log.debug(`Connected to Reaper`, { containerId });
122
- resolve(socket);
123
- });
124
- });
125
- }, (result) => result !== undefined, () => {
126
- const message = `Failed to connect to Reaper`;
127
- logger_1.log.error(message, { containerId });
128
- return new Error(message);
129
- }, 4000);
130
- if (retryResult instanceof net_1.Socket) {
131
- return retryResult;
132
- }
133
- else {
134
- throw retryResult;
135
- }
136
- });
137
- }
138
- class RealReaper {
139
- constructor(sessionId, socket) {
140
- this.sessionId = sessionId;
141
- this.socket = socket;
142
- }
143
- addSession(sessionId) {
144
- this.socket.write(`label=${labels_1.LABEL_TESTCONTAINERS_SESSION_ID}=${sessionId}\r\n`);
145
- }
146
- addProject(projectName) {
147
- this.socket.write(`label=com.docker.compose.project=${projectName}\r\n`);
148
- }
149
- }
150
- class DisabledReaper {
151
- addSession() {
152
- // noop
153
- }
154
- addProject() {
155
- // noop
156
- }
157
- }
@@ -1,8 +0,0 @@
1
- import { DockerConfig } from "./types";
2
- import { RegistryAuthLocator } from "./registry-auth-locator";
3
- import { AuthConfig } from "../docker/types";
4
- export declare class Auths implements RegistryAuthLocator {
5
- getName(): string;
6
- getAuthConfig(registry: string, dockerConfig: DockerConfig): Promise<AuthConfig | undefined>;
7
- private findAuthEntry;
8
- }
@@ -1,56 +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
- exports.Auths = void 0;
13
- const registry_matches_1 = require("./registry-matches");
14
- class Auths {
15
- getName() {
16
- return "Auths";
17
- }
18
- getAuthConfig(registry, dockerConfig) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- const auth = this.findAuthEntry(registry, dockerConfig);
21
- if (!auth) {
22
- return undefined;
23
- }
24
- const authConfig = { registryAddress: registry };
25
- if (auth.email) {
26
- authConfig.email = auth.email;
27
- }
28
- if (auth.auth) {
29
- const decodedAuth = Buffer.from(auth.auth, "base64").toString();
30
- const [username, password] = decodedAuth.split(":");
31
- authConfig.username = username;
32
- authConfig.password = password;
33
- }
34
- else {
35
- if (auth.username) {
36
- authConfig.username = auth.username;
37
- }
38
- if (auth.password) {
39
- authConfig.password = auth.password;
40
- }
41
- }
42
- return authConfig;
43
- });
44
- }
45
- findAuthEntry(registry, dockerConfig) {
46
- var _a;
47
- const authEntries = (_a = dockerConfig.auths) !== null && _a !== void 0 ? _a : {};
48
- for (const key in authEntries) {
49
- if ((0, registry_matches_1.registryMatches)(key, registry)) {
50
- return authEntries[key];
51
- }
52
- }
53
- return undefined;
54
- }
55
- }
56
- exports.Auths = Auths;
@@ -1,6 +0,0 @@
1
- import { CredentialProvider } from "./credential-provider";
2
- import { DockerConfig } from "./types";
3
- export declare class CredHelpers extends CredentialProvider {
4
- getName(): string;
5
- getCredentialProviderName(registry: string, dockerConfig: DockerConfig): string | undefined;
6
- }
@@ -1,81 +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
- exports.CredentialProvider = void 0;
13
- const logger_1 = require("../logger");
14
- const child_process_1 = require("child_process");
15
- const registry_matches_1 = require("./registry-matches");
16
- class CredentialProvider {
17
- getAuthConfig(registry, dockerConfig) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- const credentialProviderName = this.getCredentialProviderName(registry, dockerConfig);
20
- if (!credentialProviderName) {
21
- return undefined;
22
- }
23
- const programName = `docker-credential-${credentialProviderName}`;
24
- logger_1.log.debug(`Executing Docker credential provider "${programName}"`);
25
- const credentials = yield this.listCredentials(programName);
26
- if (!Object.keys(credentials).some((aRegistry) => (0, registry_matches_1.registryMatches)(aRegistry, registry))) {
27
- logger_1.log.debug(`No credential found for registry "${registry}"`);
28
- return undefined;
29
- }
30
- const response = yield this.runCredentialProvider(registry, programName);
31
- return {
32
- username: response.Username,
33
- password: response.Secret,
34
- registryAddress: response.ServerURL,
35
- };
36
- });
37
- }
38
- listCredentials(providerName) {
39
- return new Promise((resolve, reject) => {
40
- (0, child_process_1.exec)(`${providerName} list`, (err, stdout) => {
41
- if (err) {
42
- logger_1.log.error(`An error occurred listing credentials: ${err}`);
43
- return reject(new Error("An error occurred listing credentials"));
44
- }
45
- try {
46
- const response = JSON.parse(stdout);
47
- return resolve(response);
48
- }
49
- catch (e) {
50
- logger_1.log.error(`Unexpected response from Docker credential provider LIST command: "${stdout}"`);
51
- return reject(new Error("Unexpected response from Docker credential provider LIST command"));
52
- }
53
- });
54
- });
55
- }
56
- runCredentialProvider(registry, providerName) {
57
- return new Promise((resolve, reject) => {
58
- const sink = (0, child_process_1.spawn)(providerName, ["get"]);
59
- const chunks = [];
60
- sink.stdout.on("data", (chunk) => chunks.push(chunk));
61
- sink.on("close", (code) => {
62
- if (code !== 0) {
63
- logger_1.log.error(`An error occurred getting a credential: ${code}`);
64
- return reject(new Error("An error occurred getting a credential"));
65
- }
66
- const response = chunks.join("");
67
- try {
68
- const parsedResponse = JSON.parse(response);
69
- return resolve(parsedResponse);
70
- }
71
- catch (e) {
72
- logger_1.log.error(`Unexpected response from Docker credential provider GET command: "${response}"`);
73
- return reject(new Error("Unexpected response from Docker credential provider GET command"));
74
- }
75
- });
76
- sink.stdin.write(`${registry}\n`);
77
- sink.stdin.end();
78
- });
79
- }
80
- }
81
- exports.CredentialProvider = CredentialProvider;
@@ -1,6 +0,0 @@
1
- import { CredentialProvider } from "./credential-provider";
2
- import { DockerConfig } from "./types";
3
- export declare class CredsStore extends CredentialProvider {
4
- getName(): string;
5
- getCredentialProviderName(registry: string, dockerConfig: DockerConfig): string | undefined;
6
- }
@@ -1,6 +0,0 @@
1
- import { DockerConfig } from "./types";
2
- import { AuthConfig } from "../docker/types";
3
- export interface RegistryAuthLocator {
4
- getName(): string;
5
- getAuthConfig(registry: string, dockerConfig: DockerConfig): Promise<AuthConfig | undefined>;
6
- }
@@ -1,46 +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
- exports.IntervalRetryStrategy = void 0;
13
- const clock_1 = require("./clock");
14
- class AbstractRetryStrategy {
15
- constructor(clock = new clock_1.SystemClock()) {
16
- this.clock = clock;
17
- }
18
- hasTimedOut(timeout, startTime) {
19
- return this.clock.getTime() - startTime > timeout;
20
- }
21
- wait(duration) {
22
- return new Promise((resolve) => setTimeout(resolve, duration));
23
- }
24
- }
25
- class IntervalRetryStrategy extends AbstractRetryStrategy {
26
- constructor(interval) {
27
- super();
28
- this.interval = interval;
29
- }
30
- retryUntil(fn, predicate, onTimeout, timeout) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const startTime = this.clock.getTime();
33
- let attemptNumber = 0;
34
- let result = yield fn(attemptNumber++);
35
- while (!(yield predicate(result))) {
36
- if (this.hasTimedOut(timeout, startTime)) {
37
- return onTimeout();
38
- }
39
- yield this.wait(this.interval);
40
- result = yield fn(attemptNumber++);
41
- }
42
- return result;
43
- });
44
- }
45
- }
46
- exports.IntervalRetryStrategy = IntervalRetryStrategy;
@@ -1,46 +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
- var __asyncValues = (this && this.__asyncValues) || function (o) {
12
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
- var m = o[Symbol.asyncIterator], i;
14
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.streamToString = void 0;
20
- const streamToString = (stream, options = { trim: false }) => { var _a, stream_1, stream_1_1; return __awaiter(void 0, void 0, void 0, function* () {
21
- var _b, e_1, _c, _d;
22
- const chunks = [];
23
- try {
24
- for (_a = true, stream_1 = __asyncValues(stream); stream_1_1 = yield stream_1.next(), _b = stream_1_1.done, !_b;) {
25
- _d = stream_1_1.value;
26
- _a = false;
27
- try {
28
- const chunk = _d;
29
- chunks.push(Buffer.from(chunk));
30
- }
31
- finally {
32
- _a = true;
33
- }
34
- }
35
- }
36
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
37
- finally {
38
- try {
39
- if (!_a && !_b && (_c = stream_1.return)) yield _c.call(stream_1);
40
- }
41
- finally { if (e_1) throw e_1.error; }
42
- }
43
- const str = Buffer.concat(chunks).toString("utf-8");
44
- return options.trim ? str.trim() : str;
45
- }); };
46
- exports.streamToString = streamToString;
@@ -1,19 +0,0 @@
1
- import { DockerInfo } from "./docker/functions/get-info";
2
- import Dockerode from "dockerode";
3
- export type SystemInfo = {
4
- nodeInfo: NodeInfo;
5
- dockerInfo: DockerInfo;
6
- dockerComposeInfo?: DockerComposeInfo;
7
- };
8
- export declare const getSystemInfo: (dockerode: Dockerode) => Promise<SystemInfo>;
9
- type NodeInfo = {
10
- version: string;
11
- architecture: string;
12
- platform: string;
13
- };
14
- export type DockerComposeInfo = {
15
- version: string;
16
- compatability: DockerComposeCompatibility;
17
- };
18
- export type DockerComposeCompatibility = "v1" | "v2";
19
- export {};
@@ -1,80 +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
- exports.getSystemInfo = void 0;
36
- const logger_1 = require("./logger");
37
- const docker_compose_1 = __importStar(require("docker-compose"));
38
- const get_info_1 = require("./docker/functions/get-info");
39
- let systemInfo;
40
- const getSystemInfo = (dockerode) => __awaiter(void 0, void 0, void 0, function* () {
41
- var _a, _b;
42
- if (systemInfo !== undefined) {
43
- return systemInfo;
44
- }
45
- logger_1.log.debug("Fetching system info...");
46
- const nodeInfo = getNodeInfo();
47
- const dockerInfo = yield (0, get_info_1.getDockerInfo)(dockerode);
48
- const dockerComposeInfo = yield getDockerComposeInfo();
49
- systemInfo = { nodeInfo, dockerInfo, dockerComposeInfo };
50
- logger_1.log.debug(`Node version: ${nodeInfo.version}, Platform: ${nodeInfo.platform}, Arch: ${nodeInfo.architecture}, OS: ${dockerInfo.operatingSystem}, Version: ${dockerInfo.serverVersion}, Arch: ${dockerInfo.architecture}, CPUs: ${dockerInfo.cpus}, Memory: ${dockerInfo.memory}, Compose installed: ${dockerComposeInfo !== undefined}, Compose version: ${(_a = dockerComposeInfo === null || dockerComposeInfo === void 0 ? void 0 : dockerComposeInfo.version) !== null && _a !== void 0 ? _a : "N/A"}, Compose compatibility: ${(_b = dockerComposeInfo === null || dockerComposeInfo === void 0 ? void 0 : dockerComposeInfo.compatability) !== null && _b !== void 0 ? _b : "N/A"}`);
51
- return systemInfo;
52
- });
53
- exports.getSystemInfo = getSystemInfo;
54
- const getNodeInfo = () => {
55
- return {
56
- version: process.version,
57
- architecture: process.arch,
58
- platform: process.platform,
59
- };
60
- };
61
- const getDockerComposeInfo = () => __awaiter(void 0, void 0, void 0, function* () {
62
- try {
63
- return {
64
- version: (yield docker_compose_1.default.version()).data.version,
65
- compatability: "v1",
66
- };
67
- }
68
- catch (err) {
69
- try {
70
- return {
71
- version: (yield docker_compose_1.v2.version()).data.version,
72
- compatability: "v2",
73
- };
74
- }
75
- catch (_c) {
76
- logger_1.log.warn(`Unable to detect DockerCompose version, is it installed? ${err}`);
77
- return undefined;
78
- }
79
- }
80
- });
@@ -1,22 +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
- exports.TestContainers = void 0;
13
- const port_forwarder_1 = require("./port-forwarder");
14
- class TestContainers {
15
- static exposeHostPorts(...ports) {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- const portForwarder = yield port_forwarder_1.PortForwarderInstance.getInstance();
18
- yield Promise.all(ports.map((port) => portForwarder.exposeHostPort(port)));
19
- });
20
- }
21
- }
22
- exports.TestContainers = TestContainers;
@@ -1,4 +0,0 @@
1
- import Dockerode from "dockerode";
2
- import { BoundPorts } from "./bound-ports";
3
- import { WaitStrategy } from "./wait-strategy/wait-strategy";
4
- export declare const waitForContainer: (container: Dockerode.Container, waitStrategy: WaitStrategy, boundPorts: BoundPorts, startTime?: Date) => Promise<void>;
@@ -1,34 +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
- exports.waitForContainer = void 0;
13
- const logger_1 = require("./logger");
14
- const stop_container_1 = require("./docker/functions/container/stop-container");
15
- const remove_container_1 = require("./docker/functions/container/remove-container");
16
- const waitForContainer = (container, waitStrategy, boundPorts, startTime) => __awaiter(void 0, void 0, void 0, function* () {
17
- logger_1.log.debug(`Waiting for container to be ready...`, { containerId: container.id });
18
- try {
19
- yield waitStrategy.waitUntilReady(container, boundPorts, startTime);
20
- logger_1.log.info(`Container is ready`, { containerId: container.id });
21
- }
22
- catch (err) {
23
- logger_1.log.error(`Container failed to be ready: ${err}`, { containerId: container.id });
24
- try {
25
- yield (0, stop_container_1.stopContainer)(container, { timeout: 0 });
26
- yield (0, remove_container_1.removeContainer)(container, { removeVolumes: true });
27
- }
28
- catch (stopErr) {
29
- logger_1.log.error(`Failed to stop container after it failed to be ready: ${stopErr}`, { containerId: container.id });
30
- }
31
- throw err;
32
- }
33
- });
34
- exports.waitForContainer = waitForContainer;
@@ -1,57 +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
- exports.CompositeWaitStrategy = void 0;
13
- const wait_strategy_1 = require("./wait-strategy");
14
- const logger_1 = require("../logger");
15
- class CompositeWaitStrategy extends wait_strategy_1.AbstractWaitStrategy {
16
- constructor(waitStrategies) {
17
- super();
18
- this.waitStrategies = waitStrategies;
19
- }
20
- waitUntilReady(container, boundPorts, startTime) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- logger_1.log.debug(`Waiting for composite...`, { containerId: container.id });
23
- return new Promise((resolve, reject) => {
24
- let deadlineTimeout;
25
- if (this.deadline !== undefined) {
26
- deadlineTimeout = setTimeout(() => {
27
- const message = `Composite wait strategy not successful after ${this.deadline}ms`;
28
- logger_1.log.error(message, { containerId: container.id });
29
- reject(new Error(message));
30
- }, this.deadline);
31
- }
32
- Promise.all(this.waitStrategies.map((waitStrategy) => waitStrategy.waitUntilReady(container, boundPorts, startTime)))
33
- .then(() => {
34
- logger_1.log.debug(`Composite wait strategy complete`, { containerId: container.id });
35
- resolve();
36
- })
37
- .catch((err) => reject(err))
38
- .finally(() => {
39
- if (deadlineTimeout) {
40
- clearTimeout(deadlineTimeout);
41
- }
42
- });
43
- });
44
- });
45
- }
46
- withStartupTimeout(startupTimeout) {
47
- this.waitStrategies
48
- .filter((waitStrategy) => !waitStrategy.isStartupTimeoutSet())
49
- .forEach((waitStrategy) => waitStrategy.withStartupTimeout(startupTimeout));
50
- return this;
51
- }
52
- withDeadline(deadline) {
53
- this.deadline = deadline;
54
- return this;
55
- }
56
- }
57
- exports.CompositeWaitStrategy = CompositeWaitStrategy;