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,161 +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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.StoppedSeleniumRecordingContainer = exports.StartedSeleniumRecordingContainer = exports.SeleniumRecordingContainer = exports.StoppedSeleniumContainer = exports.StartedSeleniumContainer = exports.SeleniumContainer = exports.SELENIUM_VIDEO_IMAGE = void 0;
16
- const generic_container_1 = require("../../generic-container/generic-container");
17
- const abstract_started_container_1 = require("../abstract-started-container");
18
- const wait_1 = require("../../wait-strategy/wait");
19
- const abstract_stopped_container_1 = require("../abstract-stopped-container");
20
- const network_1 = require("../../network");
21
- const logger_1 = require("../../logger");
22
- const promises_1 = require("fs/promises");
23
- const tmp_1 = __importDefault(require("tmp"));
24
- const tar_fs_1 = __importDefault(require("tar-fs"));
25
- const path_1 = __importDefault(require("path"));
26
- const SELENIUM_PORT = 4444;
27
- const VNC_PORT = 5900;
28
- const SELENIUM_NETWORK_ALIAS = "selenium";
29
- exports.SELENIUM_VIDEO_IMAGE = "selenium/video:ffmpeg-4.3.1-20230508";
30
- class SeleniumContainer extends generic_container_1.GenericContainer {
31
- constructor(image = "selenium/standalone-chrome:112.0") {
32
- super(image);
33
- }
34
- beforeContainerStarted() {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- this.withExposedPorts(SELENIUM_PORT, VNC_PORT)
37
- .withSharedMemorySize(2 * 1024 * 1024 * 1024)
38
- .withWaitStrategy(wait_1.Wait.forAll([
39
- wait_1.Wait.forListeningPorts(),
40
- wait_1.Wait.forHttp("/wd/hub/status", SELENIUM_PORT).forResponsePredicate((response) => {
41
- try {
42
- return JSON.parse(response).value.ready;
43
- }
44
- catch (_a) {
45
- return false;
46
- }
47
- }),
48
- ]));
49
- });
50
- }
51
- withRecording() {
52
- return new SeleniumRecordingContainer(this.image);
53
- }
54
- start() {
55
- const _super = Object.create(null, {
56
- start: { get: () => super.start }
57
- });
58
- return __awaiter(this, void 0, void 0, function* () {
59
- return new StartedSeleniumContainer(yield _super.start.call(this));
60
- });
61
- }
62
- }
63
- exports.SeleniumContainer = SeleniumContainer;
64
- class StartedSeleniumContainer extends abstract_started_container_1.AbstractStartedContainer {
65
- constructor(startedTestContainer) {
66
- super(startedTestContainer);
67
- this.serverUrl = `http://${this.getHost()}:${this.getMappedPort(4444)}/wd/hub`;
68
- }
69
- getServerUrl() {
70
- return this.serverUrl;
71
- }
72
- stop(options) {
73
- const _super = Object.create(null, {
74
- stop: { get: () => super.stop }
75
- });
76
- return __awaiter(this, void 0, void 0, function* () {
77
- return new StoppedSeleniumContainer(yield _super.stop.call(this, options));
78
- });
79
- }
80
- }
81
- exports.StartedSeleniumContainer = StartedSeleniumContainer;
82
- class StoppedSeleniumContainer extends abstract_stopped_container_1.AbstractStoppedContainer {
83
- constructor(stoppedSeleniumContainer) {
84
- super(stoppedSeleniumContainer);
85
- this.stoppedSeleniumContainer = stoppedSeleniumContainer;
86
- }
87
- }
88
- exports.StoppedSeleniumContainer = StoppedSeleniumContainer;
89
- class SeleniumRecordingContainer extends SeleniumContainer {
90
- constructor(image) {
91
- super(image);
92
- }
93
- start() {
94
- const _super = Object.create(null, {
95
- start: { get: () => super.start }
96
- });
97
- return __awaiter(this, void 0, void 0, function* () {
98
- const network = yield new network_1.Network().start();
99
- this.withNetwork(network);
100
- this.withNetworkAliases(SELENIUM_NETWORK_ALIAS);
101
- const startedSeleniumContainer = yield _super.start.call(this);
102
- const startedFfmpegContainer = yield new generic_container_1.GenericContainer(exports.SELENIUM_VIDEO_IMAGE)
103
- .withNetwork(network)
104
- .withEnvironment({ DISPLAY_CONTAINER_NAME: SELENIUM_NETWORK_ALIAS })
105
- .withWaitStrategy(wait_1.Wait.forLogMessage(/.*video-recording entered RUNNING state.*/))
106
- .start();
107
- return new StartedSeleniumRecordingContainer(startedSeleniumContainer, startedFfmpegContainer, network);
108
- });
109
- }
110
- }
111
- exports.SeleniumRecordingContainer = SeleniumRecordingContainer;
112
- class StartedSeleniumRecordingContainer extends StartedSeleniumContainer {
113
- constructor(startedSeleniumContainer, startedFfmpegContainer, network) {
114
- super(startedSeleniumContainer);
115
- this.startedFfmpegContainer = startedFfmpegContainer;
116
- this.network = network;
117
- }
118
- stop(options) {
119
- const _super = Object.create(null, {
120
- stop: { get: () => super.stop }
121
- });
122
- return __awaiter(this, void 0, void 0, function* () {
123
- const stoppedSeleniumContainer = yield _super.stop.call(this, options);
124
- const stoppedFfmpegContainer = yield this.startedFfmpegContainer.stop({ remove: false, timeout: 60000 });
125
- yield this.network.stop();
126
- return new StoppedSeleniumRecordingContainer(stoppedSeleniumContainer, stoppedFfmpegContainer);
127
- });
128
- }
129
- }
130
- exports.StartedSeleniumRecordingContainer = StartedSeleniumRecordingContainer;
131
- class StoppedSeleniumRecordingContainer extends StoppedSeleniumContainer {
132
- constructor(stoppedSeleniumContainer, stoppedFfmpegContainer) {
133
- super(stoppedSeleniumContainer);
134
- this.stoppedFfmpegContainer = stoppedFfmpegContainer;
135
- }
136
- saveRecording(target) {
137
- return __awaiter(this, void 0, void 0, function* () {
138
- const ffmpegContainerId = this.stoppedFfmpegContainer.getId();
139
- logger_1.log.debug("Extracting archive from container...", { containerId: ffmpegContainerId });
140
- const archiveStream = yield this.stoppedFfmpegContainer.copyArchiveFromContainer("/videos/video.mp4");
141
- logger_1.log.debug("Extracted archive from container", { containerId: ffmpegContainerId });
142
- logger_1.log.debug("Unpacking archive...", { containerId: ffmpegContainerId });
143
- const destinationDir = tmp_1.default.dirSync({ keep: false });
144
- yield this.extractTarStreamToDest(archiveStream, destinationDir.name);
145
- logger_1.log.debug("Unpacked archive", { containerId: ffmpegContainerId });
146
- const videoFile = path_1.default.resolve(destinationDir.name, "video.mp4");
147
- yield (0, promises_1.copyFile)(videoFile, target);
148
- logger_1.log.debug(`Extracted video to "${target}"`, { containerId: ffmpegContainerId });
149
- });
150
- }
151
- extractTarStreamToDest(tarStream, dest) {
152
- return __awaiter(this, void 0, void 0, function* () {
153
- yield new Promise((resolve) => {
154
- const destination = tar_fs_1.default.extract(dest);
155
- tarStream.pipe(destination);
156
- destination.on("finish", resolve);
157
- });
158
- });
159
- }
160
- }
161
- exports.StoppedSeleniumRecordingContainer = StoppedSeleniumRecordingContainer;
@@ -1,18 +0,0 @@
1
- import { Uuid } from "./uuid";
2
- import { CreateNetworkOptions } from "./docker/functions/network/create-network";
3
- export declare class Network {
4
- private readonly createNetworkOptions;
5
- private readonly uuid;
6
- constructor(createNetworkOptions?: Partial<CreateNetworkOptions>, uuid?: Uuid);
7
- start(): Promise<StartedNetwork>;
8
- }
9
- export declare class StartedNetwork {
10
- private readonly id;
11
- private readonly options;
12
- constructor(id: string, options: CreateNetworkOptions);
13
- getId(): string;
14
- getName(): string;
15
- stop(): Promise<StoppedNetwork>;
16
- }
17
- export declare class StoppedNetwork {
18
- }
@@ -1,60 +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.StoppedNetwork = exports.StartedNetwork = exports.Network = void 0;
13
- const uuid_1 = require("./uuid");
14
- const logger_1 = require("./logger");
15
- const create_network_1 = require("./docker/functions/network/create-network");
16
- const remove_network_1 = require("./docker/functions/network/remove-network");
17
- const docker_client_1 = require("./docker/client/docker-client");
18
- class Network {
19
- constructor(createNetworkOptions = {}, uuid = new uuid_1.RandomUuid()) {
20
- this.createNetworkOptions = createNetworkOptions;
21
- this.uuid = uuid;
22
- this.createNetworkOptions = createNetworkOptions;
23
- }
24
- start() {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- const name = this.uuid.nextUuid();
27
- const options = Object.assign({ name, driver: "bridge", checkDuplicate: true, internal: false, attachable: false, ingress: false, enableIPv6: false }, this.createNetworkOptions);
28
- logger_1.log.info(`Starting network "${name}"...`);
29
- const { sessionId } = yield (0, docker_client_1.getDockerClient)();
30
- const id = yield (0, create_network_1.createNetwork)(sessionId, options);
31
- logger_1.log.info(`Started network "${name}" with ID "${id}"`);
32
- return new StartedNetwork(id, options);
33
- });
34
- }
35
- }
36
- exports.Network = Network;
37
- class StartedNetwork {
38
- constructor(id, options) {
39
- this.id = id;
40
- this.options = options;
41
- }
42
- getId() {
43
- return this.id;
44
- }
45
- getName() {
46
- return this.options.name;
47
- }
48
- stop() {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- logger_1.log.info(`Stopping network with ID "${this.id}"...`);
51
- yield (0, remove_network_1.removeNetwork)(this.id);
52
- logger_1.log.info(`Stopped network with ID "${this.id}"`);
53
- return new StoppedNetwork();
54
- });
55
- }
56
- }
57
- exports.StartedNetwork = StartedNetwork;
58
- class StoppedNetwork {
59
- }
60
- exports.StoppedNetwork = StoppedNetwork;
@@ -1,90 +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.InternalPortCheck = exports.HostPortCheck = void 0;
13
- const net_1 = require("net");
14
- const exec_container_1 = require("./docker/functions/container/exec-container");
15
- const logger_1 = require("./logger");
16
- class HostPortCheck {
17
- constructor(host) {
18
- this.host = host;
19
- }
20
- isBound(port) {
21
- return new Promise((resolve) => {
22
- const socket = new net_1.Socket();
23
- socket
24
- .setTimeout(1000)
25
- .on("error", () => {
26
- socket.destroy();
27
- resolve(false);
28
- })
29
- .on("timeout", () => {
30
- socket.destroy();
31
- resolve(false);
32
- })
33
- .connect(port, this.host, () => {
34
- socket.end();
35
- resolve(true);
36
- });
37
- });
38
- }
39
- }
40
- exports.HostPortCheck = HostPortCheck;
41
- class InternalPortCheck {
42
- constructor(dockerode, containerRuntime, container) {
43
- this.dockerode = dockerode;
44
- this.containerRuntime = containerRuntime;
45
- this.container = container;
46
- this.isDistroless = false;
47
- this.commandOutputs = new Set();
48
- }
49
- isBound(port) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- const portHex = port.toString(16).padStart(4, "0");
52
- const commands = [
53
- ["/bin/sh", "-c", `cat /proc/net/tcp* | awk '{print $2}' | grep -i :${portHex}`],
54
- ["/bin/sh", "-c", `nc -vz -w 1 localhost ${port}`],
55
- ["/bin/bash", "-c", `</dev/tcp/localhost/${port}`],
56
- ];
57
- const commandResults = yield Promise.all(commands.map((command) => (0, exec_container_1.execContainer)(this.dockerode, this.containerRuntime, this.container, command, false)));
58
- const isBound = commandResults.some((result) => result.exitCode === 0);
59
- if (!isBound && logger_1.log.enabled()) {
60
- const shellExists = commandResults.some((result) => result.exitCode !== 126);
61
- if (!shellExists) {
62
- if (!this.isDistroless) {
63
- this.isDistroless = true;
64
- logger_1.log.error(`The HostPortWaitStrategy will not work on a distroless image, use an alternate wait strategy`, {
65
- containerId: this.container.id,
66
- });
67
- }
68
- }
69
- else {
70
- commandResults
71
- .map((result) => (Object.assign(Object.assign({}, result), { output: result.output.trim() })))
72
- .filter((result) => result.exitCode !== 126 && result.output.length > 0)
73
- .forEach((result) => {
74
- if (!this.commandOutputs.has(this.commandOutputsKey(result.output))) {
75
- logger_1.log.trace(`Port check result exit code ${result.exitCode}: ${result.output}`, {
76
- containerId: this.container.id,
77
- });
78
- this.commandOutputs.add(this.commandOutputsKey(result.output));
79
- }
80
- });
81
- }
82
- }
83
- return isBound;
84
- });
85
- }
86
- commandOutputsKey(output) {
87
- return `${this.container.id}:${output}`;
88
- }
89
- }
90
- exports.InternalPortCheck = InternalPortCheck;
@@ -1,83 +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.PortForwarderInstance = exports.PortForwarder = void 0;
13
- const ssh_remote_port_forward_1 = require("ssh-remote-port-forward");
14
- const logger_1 = require("./logger");
15
- const generic_container_1 = require("./generic-container/generic-container");
16
- const uuid_1 = require("./uuid");
17
- const docker_client_1 = require("./docker/client/docker-client");
18
- const images_1 = require("./images");
19
- class PortForwarder {
20
- constructor(sshConnection, container) {
21
- this.sshConnection = sshConnection;
22
- this.container = container;
23
- }
24
- exposeHostPort(port) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- logger_1.log.info(`Exposing host port ${port}...`);
27
- yield this.sshConnection.remoteForward("localhost", port);
28
- logger_1.log.info(`Exposed host port ${port}`);
29
- });
30
- }
31
- getNetworkId() {
32
- return this.container.getNetworkId(this.getNetworkName());
33
- }
34
- getIpAddress() {
35
- return this.container.getIpAddress(this.getNetworkName());
36
- }
37
- getNetworkName() {
38
- return this.container.getNetworkNames()[0];
39
- }
40
- }
41
- exports.PortForwarder = PortForwarder;
42
- class PortForwarderInstance {
43
- static isRunning() {
44
- return this.instance !== undefined;
45
- }
46
- static getInstance() {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- if (!this.instance) {
49
- this.instance = this.createInstance();
50
- }
51
- return this.instance;
52
- });
53
- }
54
- static createInstance() {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- logger_1.log.debug(`Creating new Port Forwarder...`);
57
- const username = "root";
58
- const password = new uuid_1.RandomUuid().nextUuid();
59
- const containerPort = process.env["TESTCONTAINERS_SSHD_PORT"]
60
- ? { container: 22, host: Number(process.env["TESTCONTAINERS_SSHD_PORT"]) }
61
- : 22;
62
- const { sessionId } = yield (0, docker_client_1.getDockerClient)();
63
- const container = yield new generic_container_1.GenericContainer(images_1.SSHD_IMAGE)
64
- .withName(`testcontainers-port-forwarder-${sessionId}`)
65
- .withExposedPorts(containerPort)
66
- .withEnvironment({ PASSWORD: password })
67
- .withCommand([
68
- "sh",
69
- "-c",
70
- `echo "${username}:$PASSWORD" | chpasswd && /usr/sbin/sshd -D -o PermitRootLogin=yes -o AddressFamily=inet -o GatewayPorts=yes -o AllowAgentForwarding=yes -o AllowTcpForwarding=yes -o KexAlgorithms=+diffie-hellman-group1-sha1 -o HostkeyAlgorithms=+ssh-rsa`,
71
- ])
72
- .start();
73
- const host = (yield (0, docker_client_1.getDockerClient)()).host;
74
- const port = container.getMappedPort(22);
75
- logger_1.log.debug(`Connecting to Port Forwarder on "${host}:${port}"...`);
76
- const connection = yield (0, ssh_remote_port_forward_1.createSshConnection)({ host, port, username, password });
77
- logger_1.log.debug(`Connected to Port Forwarder on "${host}:${port}"`);
78
- connection.unref();
79
- return new PortForwarder(connection, container);
80
- });
81
- }
82
- }
83
- exports.PortForwarderInstance = PortForwarderInstance;
@@ -1,51 +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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.FixedPortGenerator = exports.RandomUniquePortGenerator = void 0;
16
- const get_port_1 = __importDefault(require("get-port"));
17
- class RandomPortGenerator {
18
- generatePort() {
19
- return (0, get_port_1.default)({ port: this.randomBetweenInclusive(10000, 65535) });
20
- }
21
- randomBetweenInclusive(min, max) {
22
- return Math.floor(Math.random() * (max - min + 1) + min);
23
- }
24
- }
25
- class RandomUniquePortGenerator {
26
- constructor(portGenerator = new RandomPortGenerator()) {
27
- this.portGenerator = portGenerator;
28
- }
29
- generatePort() {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- let port;
32
- do {
33
- port = yield this.portGenerator.generatePort();
34
- } while (RandomUniquePortGenerator.assignedPorts.has(port));
35
- RandomUniquePortGenerator.assignedPorts.add(port);
36
- return port;
37
- });
38
- }
39
- }
40
- exports.RandomUniquePortGenerator = RandomUniquePortGenerator;
41
- RandomUniquePortGenerator.assignedPorts = new Set();
42
- class FixedPortGenerator {
43
- constructor(ports) {
44
- this.ports = ports;
45
- this.portIndex = 0;
46
- }
47
- generatePort() {
48
- return Promise.resolve(this.ports[this.portIndex++]);
49
- }
50
- }
51
- exports.FixedPortGenerator = FixedPortGenerator;
package/dist/src/port.js DELETED
@@ -1,47 +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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.resolveHostPortBinding = exports.hasHostBinding = exports.getContainerPort = void 0;
27
- const net = __importStar(require("net"));
28
- const getContainerPort = (port) => typeof port === "number" ? port : port.container;
29
- exports.getContainerPort = getContainerPort;
30
- const hasHostBinding = (port) => {
31
- return typeof port === "object" && port.host !== undefined;
32
- };
33
- exports.hasHostBinding = hasHostBinding;
34
- const resolveHostPortBinding = (hostIps, hostPortBindings) => {
35
- if (isDualStackIp(hostPortBindings)) {
36
- return hostPortBindings[0].hostPort;
37
- }
38
- for (const { family } of hostIps) {
39
- const hostPortBinding = hostPortBindings.find(({ hostIp }) => net.isIP(hostIp) === family);
40
- if (hostPortBinding !== undefined) {
41
- return hostPortBinding.hostPort;
42
- }
43
- }
44
- throw new Error("No host port found for host IP");
45
- };
46
- exports.resolveHostPortBinding = resolveHostPortBinding;
47
- const isDualStackIp = (hostPortBindings) => hostPortBindings.length === 1 && hostPortBindings[0].hostIp === "";
@@ -1,9 +0,0 @@
1
- export interface PullPolicy {
2
- shouldPull(): boolean;
3
- }
4
- export declare class DefaultPullPolicy implements PullPolicy {
5
- shouldPull(): boolean;
6
- }
7
- export declare class AlwaysPullPolicy implements PullPolicy {
8
- shouldPull(): boolean;
9
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AlwaysPullPolicy = exports.DefaultPullPolicy = void 0;
4
- class DefaultPullPolicy {
5
- shouldPull() {
6
- return false;
7
- }
8
- }
9
- exports.DefaultPullPolicy = DefaultPullPolicy;
10
- class AlwaysPullPolicy {
11
- shouldPull() {
12
- return true;
13
- }
14
- }
15
- exports.AlwaysPullPolicy = AlwaysPullPolicy;
@@ -1,5 +0,0 @@
1
- import { PartialDockerClient } from "./docker/client/docker-client-types";
2
- import Dockerode from "dockerode";
3
- export declare function registerSessionIdForCleanup(sessionId: string): Promise<void>;
4
- export declare function registerComposeProjectForCleanup(project: string): Promise<void>;
5
- export declare function startReaper(dockerClient: PartialDockerClient, sessionId: string, existingReaperContainer?: Dockerode.ContainerInfo): Promise<void>;