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,86 +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.AbstractStartedContainer = void 0;
13
- class AbstractStartedContainer {
14
- constructor(startedTestContainer) {
15
- this.startedTestContainer = startedTestContainer;
16
- }
17
- stop(options) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- if (this.containerStopping) {
20
- yield this.containerStopping();
21
- }
22
- const stoppedContainer = this.startedTestContainer.stop(options);
23
- if (this.containerStopped) {
24
- yield this.containerStopped();
25
- }
26
- return stoppedContainer;
27
- });
28
- }
29
- restart(options) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- return this.startedTestContainer.restart(options);
32
- });
33
- }
34
- getHost() {
35
- return this.startedTestContainer.getHost();
36
- }
37
- getFirstMappedPort() {
38
- return this.startedTestContainer.getFirstMappedPort();
39
- }
40
- getMappedPort(port) {
41
- return this.startedTestContainer.getMappedPort(port);
42
- }
43
- getName() {
44
- return this.startedTestContainer.getName();
45
- }
46
- getLabels() {
47
- return this.startedTestContainer.getLabels();
48
- }
49
- getId() {
50
- return this.startedTestContainer.getId();
51
- }
52
- getNetworkNames() {
53
- return this.startedTestContainer.getNetworkNames();
54
- }
55
- getNetworkId(networkName) {
56
- return this.startedTestContainer.getNetworkId(networkName);
57
- }
58
- getIpAddress(networkName) {
59
- return this.startedTestContainer.getIpAddress(networkName);
60
- }
61
- copyFilesToContainer(filesToCopy) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- return this.startedTestContainer.copyFilesToContainer(filesToCopy);
64
- });
65
- }
66
- copyDirectoriesToContainer(directoriesToCopy) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- return this.startedTestContainer.copyDirectoriesToContainer(directoriesToCopy);
69
- });
70
- }
71
- copyContentToContainer(contentsToCopy) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- return this.startedTestContainer.copyContentToContainer(contentsToCopy);
74
- });
75
- }
76
- copyArchiveFromContainer(path) {
77
- return this.startedTestContainer.copyArchiveFromContainer(path);
78
- }
79
- exec(command) {
80
- return this.startedTestContainer.exec(command);
81
- }
82
- logs() {
83
- return this.startedTestContainer.logs();
84
- }
85
- }
86
- exports.AbstractStartedContainer = AbstractStartedContainer;
@@ -1,19 +0,0 @@
1
- import { GenericContainer } from "../..";
2
- import { StartedTestContainer } from "../../test-container";
3
- import { AbstractStartedContainer } from "../abstract-started-container";
4
- export declare class ArangoDBContainer extends GenericContainer {
5
- private password;
6
- constructor(image?: string, password?: string);
7
- withPassword(password: string): this;
8
- start(): Promise<StartedArangoContainer>;
9
- }
10
- export declare class StartedArangoContainer extends AbstractStartedContainer {
11
- private readonly password;
12
- private readonly host;
13
- private readonly port;
14
- constructor(startedTestContainer: StartedTestContainer, password: string);
15
- getTcpUrl(): string;
16
- getHttpUrl(): string;
17
- getPassword(): string;
18
- getUsername(): string;
19
- }
@@ -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.StartedArangoContainer = exports.ArangoDBContainer = void 0;
13
- const __1 = require("../..");
14
- const abstract_started_container_1 = require("../abstract-started-container");
15
- const ARANGODB_PORT = 8529;
16
- const USERNAME = "root";
17
- class ArangoDBContainer extends __1.GenericContainer {
18
- constructor(image = "arangodb:3.10.0", password = "test") {
19
- super(image);
20
- this.password = password;
21
- }
22
- withPassword(password) {
23
- this.password = password;
24
- return this;
25
- }
26
- start() {
27
- const _super = Object.create(null, {
28
- start: { get: () => super.start }
29
- });
30
- return __awaiter(this, void 0, void 0, function* () {
31
- this.withExposedPorts(...(this.hasExposedPorts ? this.opts.exposedPorts : [ARANGODB_PORT]))
32
- .withWaitStrategy(__1.Wait.forLogMessage("Have fun!"))
33
- .withEnvironment({ ARANGO_ROOT_PASSWORD: this.password })
34
- .withStartupTimeout(120000);
35
- return new StartedArangoContainer(yield _super.start.call(this), this.password);
36
- });
37
- }
38
- }
39
- exports.ArangoDBContainer = ArangoDBContainer;
40
- class StartedArangoContainer extends abstract_started_container_1.AbstractStartedContainer {
41
- constructor(startedTestContainer, password) {
42
- super(startedTestContainer);
43
- this.password = password;
44
- this.host = this.startedTestContainer.getHost();
45
- this.port = this.startedTestContainer.getMappedPort(ARANGODB_PORT);
46
- }
47
- getTcpUrl() {
48
- return `tcp://${this.host}:${this.port}/`;
49
- }
50
- getHttpUrl() {
51
- return `http://${this.host}:${this.port}/`;
52
- }
53
- getPassword() {
54
- return this.password;
55
- }
56
- getUsername() {
57
- return USERNAME;
58
- }
59
- }
60
- exports.StartedArangoContainer = StartedArangoContainer;
@@ -1,12 +0,0 @@
1
- import { GenericContainer, StartedTestContainer } from "../..";
2
- import { AbstractStartedContainer } from "../abstract-started-container";
3
- export declare class ElasticsearchContainer extends GenericContainer {
4
- constructor(image?: string);
5
- start(): Promise<StartedElasticsearchContainer>;
6
- }
7
- export declare class StartedElasticsearchContainer extends AbstractStartedContainer {
8
- readonly startedTestContainer: StartedTestContainer;
9
- private readonly httpPort;
10
- constructor(startedTestContainer: StartedTestContainer);
11
- getHttpUrl(): string;
12
- }
@@ -1,49 +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.StartedElasticsearchContainer = exports.ElasticsearchContainer = void 0;
13
- const __1 = require("../..");
14
- const abstract_started_container_1 = require("../abstract-started-container");
15
- const ELASTIC_SEARCH_HTTP_PORT = 9200;
16
- class ElasticsearchContainer extends __1.GenericContainer {
17
- constructor(image = "elasticsearch:7.17.7") {
18
- super(image);
19
- }
20
- start() {
21
- const _super = Object.create(null, {
22
- start: { get: () => super.start }
23
- });
24
- return __awaiter(this, void 0, void 0, function* () {
25
- this.withExposedPorts(...(this.hasExposedPorts ? this.opts.exposedPorts : [ELASTIC_SEARCH_HTTP_PORT]))
26
- .withEnvironment({ "discovery.type": "single-node" })
27
- .withCopyContentToContainer([
28
- {
29
- content: "-Xmx2G\n",
30
- target: "/usr/share/elasticsearch/config/jvm.options.d/elasticsearch-default-memory-vm.options",
31
- },
32
- ])
33
- .withStartupTimeout(120000);
34
- return new StartedElasticsearchContainer(yield _super.start.call(this));
35
- });
36
- }
37
- }
38
- exports.ElasticsearchContainer = ElasticsearchContainer;
39
- class StartedElasticsearchContainer extends abstract_started_container_1.AbstractStartedContainer {
40
- constructor(startedTestContainer) {
41
- super(startedTestContainer);
42
- this.startedTestContainer = startedTestContainer;
43
- this.httpPort = this.getMappedPort(ELASTIC_SEARCH_HTTP_PORT);
44
- }
45
- getHttpUrl() {
46
- return `http://${this.getHost()}:${this.httpPort}`;
47
- }
48
- }
49
- exports.StartedElasticsearchContainer = StartedElasticsearchContainer;
@@ -1,15 +0,0 @@
1
- import { GenericContainer } from "../../generic-container/generic-container";
2
- import { StartedTestContainer } from "../../test-container";
3
- import { AbstractStartedContainer } from "../abstract-started-container";
4
- export declare class HiveMQContainer extends GenericContainer {
5
- private temporaryFileSystemOptions;
6
- constructor(image?: string);
7
- private addFileToFileSystemOptions;
8
- start(): Promise<StartedHiveMQContainer>;
9
- }
10
- export declare class StartedHiveMQContainer extends AbstractStartedContainer {
11
- private readonly port;
12
- constructor(startedTestContainer: StartedTestContainer);
13
- getPort(): number;
14
- getConnectionString(): string;
15
- }
@@ -1,79 +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.StartedHiveMQContainer = exports.HiveMQContainer = void 0;
36
- const path = __importStar(require("path"));
37
- const generic_container_1 = require("../../generic-container/generic-container");
38
- const abstract_started_container_1 = require("../abstract-started-container");
39
- const wait_1 = require("../../wait-strategy/wait");
40
- const START_LOG_MESSAGE_REGEX = /(.*)Started HiveMQ in(.*)/i;
41
- const HIVEMQ_BASE_PATH = "/opt/hivemq";
42
- const MQTT_PORT = 1883;
43
- class HiveMQContainer extends generic_container_1.GenericContainer {
44
- constructor(image = "hivemq/hivemq-ce:2023.5") {
45
- super(image);
46
- this.temporaryFileSystemOptions = new Map();
47
- this.withExposedPorts(MQTT_PORT)
48
- .withWaitStrategy(wait_1.Wait.forLogMessage(START_LOG_MESSAGE_REGEX))
49
- .withStartupTimeout(120000);
50
- this.addFileToFileSystemOptions("log");
51
- this.addFileToFileSystemOptions("data");
52
- this.withTmpFs(Object.fromEntries(this.temporaryFileSystemOptions));
53
- }
54
- addFileToFileSystemOptions(filename) {
55
- this.temporaryFileSystemOptions.set(path.join(HIVEMQ_BASE_PATH, filename), "rw");
56
- }
57
- start() {
58
- const _super = Object.create(null, {
59
- start: { get: () => super.start }
60
- });
61
- return __awaiter(this, void 0, void 0, function* () {
62
- return new StartedHiveMQContainer(yield _super.start.call(this));
63
- });
64
- }
65
- }
66
- exports.HiveMQContainer = HiveMQContainer;
67
- class StartedHiveMQContainer extends abstract_started_container_1.AbstractStartedContainer {
68
- constructor(startedTestContainer) {
69
- super(startedTestContainer);
70
- this.port = startedTestContainer.getMappedPort(MQTT_PORT);
71
- }
72
- getPort() {
73
- return this.port;
74
- }
75
- getConnectionString() {
76
- return `mqtt://${this.getHost()}:${this.getPort()}`;
77
- }
78
- }
79
- exports.StartedHiveMQContainer = StartedHiveMQContainer;
@@ -1,45 +0,0 @@
1
- import { GenericContainer } from "../../generic-container/generic-container";
2
- import { StartedTestContainer } from "../..";
3
- import { AbstractStartedContainer } from "../abstract-started-container";
4
- import { InspectResult } from "../../docker/functions/container/inspect-container";
5
- import { Content } from "../../docker/types";
6
- export declare const KAFKA_IMAGE = "confluentinc/cp-kafka:7.2.2";
7
- interface SaslSslListenerOptions {
8
- sasl: SaslOptions;
9
- port: number;
10
- keystore: PKCS12CertificateStore;
11
- truststore?: PKCS12CertificateStore;
12
- }
13
- interface SaslOptions {
14
- mechanism: "SCRAM-SHA-256" | "SCRAM-SHA-512";
15
- user: User;
16
- }
17
- interface User {
18
- name: string;
19
- password: string;
20
- }
21
- interface PKCS12CertificateStore {
22
- content: Content;
23
- passphrase: string;
24
- }
25
- export declare class KafkaContainer extends GenericContainer {
26
- private readonly uuid;
27
- private isZooKeeperProvided;
28
- private zooKeeperHost?;
29
- private zooKeeperPort?;
30
- private saslSslConfig?;
31
- constructor(image?: string);
32
- withZooKeeper(host: string, port: number): this;
33
- withSaslSslListener(options: SaslSslListenerOptions): this;
34
- protected beforeContainerStarted(): Promise<void>;
35
- start(): Promise<StartedKafkaContainer>;
36
- protected containerStarted(container: StartedTestContainer, inspectResult: InspectResult): Promise<void>;
37
- private addPlaintextAndSecureListener;
38
- private addPlaintextListener;
39
- private updateAdvertisedListeners;
40
- private createUser;
41
- }
42
- export declare class StartedKafkaContainer extends AbstractStartedContainer {
43
- constructor(startedTestContainer: StartedTestContainer);
44
- }
45
- export {};
@@ -1,177 +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.StartedKafkaContainer = exports.KafkaContainer = exports.KAFKA_IMAGE = void 0;
13
- const generic_container_1 = require("../../generic-container/generic-container");
14
- const uuid_1 = require("../../uuid");
15
- const abstract_started_container_1 = require("../abstract-started-container");
16
- const KAFKA_PORT = 9093;
17
- const KAFKA_BROKER_PORT = 9092;
18
- const DEFAULT_ZOOKEEPER_PORT = 2181;
19
- exports.KAFKA_IMAGE = "confluentinc/cp-kafka:7.2.2";
20
- class KafkaContainer extends generic_container_1.GenericContainer {
21
- constructor(image = exports.KAFKA_IMAGE) {
22
- super(image);
23
- this.uuid = new uuid_1.RandomUuid();
24
- this.isZooKeeperProvided = false;
25
- this.withExposedPorts(KAFKA_PORT).withStartupTimeout(180000).withEnvironment({
26
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "BROKER:PLAINTEXT,PLAINTEXT:PLAINTEXT",
27
- KAFKA_INTER_BROKER_LISTENER_NAME: "BROKER",
28
- KAFKA_BROKER_ID: "1",
29
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: "1",
30
- KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: "1",
31
- KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: "1",
32
- KAFKA_LOG_FLUSH_INTERVAL_MESSAGES: "9223372036854775807",
33
- KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: "0",
34
- KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: "false",
35
- });
36
- }
37
- withZooKeeper(host, port) {
38
- this.isZooKeeperProvided = true;
39
- this.zooKeeperHost = host;
40
- this.zooKeeperPort = port;
41
- return this;
42
- }
43
- withSaslSslListener(options) {
44
- this.saslSslConfig = options;
45
- return this;
46
- }
47
- beforeContainerStarted() {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const network = this.networkMode && this.networkAliases.length > 0 ? this.networkAliases[0] : "localhost";
50
- this.withEnvironment({ KAFKA_ADVERTISED_LISTENERS: `BROKER://${network}:${KAFKA_BROKER_PORT}` });
51
- if (this.saslSslConfig) {
52
- this.addPlaintextAndSecureListener(this.saslSslConfig);
53
- }
54
- else {
55
- this.addPlaintextListener();
56
- }
57
- let command = "#!/bin/bash\n";
58
- if (this.isZooKeeperProvided) {
59
- this.withEnvironment({ KAFKA_ZOOKEEPER_CONNECT: `${this.zooKeeperHost}:${this.zooKeeperPort}` });
60
- }
61
- else {
62
- this.zooKeeperHost = this.uuid.nextUuid();
63
- this.zooKeeperPort = DEFAULT_ZOOKEEPER_PORT;
64
- this.withExposedPorts(this.zooKeeperPort);
65
- this.withEnvironment({ KAFKA_ZOOKEEPER_CONNECT: `localhost:${this.zooKeeperPort}` });
66
- command += "echo 'clientPort=" + this.zooKeeperPort + "' > zookeeper.properties\n";
67
- command += "echo 'dataDir=/var/lib/zookeeper/data' >> zookeeper.properties\n";
68
- command += "echo 'dataLogDir=/var/lib/zookeeper/log' >> zookeeper.properties\n";
69
- command += "zookeeper-server-start zookeeper.properties &\n";
70
- }
71
- command += "echo '' > /etc/confluent/docker/ensure \n";
72
- command += "/etc/confluent/docker/run \n";
73
- this.withCommand(["sh", "-c", command]);
74
- });
75
- }
76
- start() {
77
- const _super = Object.create(null, {
78
- start: { get: () => super.start }
79
- });
80
- return __awaiter(this, void 0, void 0, function* () {
81
- return new StartedKafkaContainer(yield _super.start.call(this));
82
- });
83
- }
84
- containerStarted(container, inspectResult) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- yield this.updateAdvertisedListeners(container, inspectResult);
87
- if (this.saslSslConfig) {
88
- yield this.createUser(container, this.saslSslConfig.sasl);
89
- }
90
- });
91
- }
92
- addPlaintextAndSecureListener({ port, sasl, keystore, truststore }) {
93
- this.withEnvironment({
94
- KAFKA_LISTENERS: `SECURE://0.0.0.0:${port},PLAINTEXT://0.0.0.0:${KAFKA_PORT},BROKER://0.0.0.0:${KAFKA_BROKER_PORT}`,
95
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "BROKER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SECURE:SASL_SSL",
96
- KAFKA_SSL_PROTOCOL: "TLSv1.2",
97
- KAFKA_SSL_KEYSTORE_LOCATION: "/etc/kafka/secrets/server.keystore.pfx",
98
- KAFKA_SSL_KEYSTORE_PASSWORD: keystore.passphrase,
99
- KAFKA_SSL_KEYSTORE_TYPE: "PKCS12",
100
- KAFKA_SASL_ENABLED_MECHANISMS: sasl.mechanism,
101
- [`KAFKA_LISTENER_NAME_SECURE_${sasl.mechanism}_SASL_JAAS_CONFIG`]: "org.apache.kafka.common.security.scram.ScramLoginModule required;",
102
- })
103
- .withCopyContentToContainer([{ content: keystore.content, target: "/etc/kafka/secrets/server.keystore.pfx" }])
104
- .withExposedPorts(KAFKA_PORT, port);
105
- if (truststore) {
106
- this.withCopyContentToContainer([
107
- { content: truststore.content, target: "/etc/kafka/secrets/server.truststore.pfx" },
108
- ]).withEnvironment({
109
- KAFKA_SSL_TRUSTSTORE_LOCATION: "/etc/kafka/secrets/server.truststore.pfx",
110
- KAFKA_SSL_TRUSTSTORE_PASSWORD: truststore.passphrase,
111
- KAFKA_SSL_TRUSTSTORE_TYPE: "PKCS12",
112
- });
113
- }
114
- }
115
- addPlaintextListener() {
116
- this.withEnvironment({
117
- KAFKA_LISTENERS: `PLAINTEXT://0.0.0.0:${KAFKA_PORT},BROKER://0.0.0.0:${KAFKA_BROKER_PORT}`,
118
- }).withExposedPorts(KAFKA_PORT);
119
- }
120
- updateAdvertisedListeners(container, inspectResult) {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- const brokerAdvertisedListener = `BROKER://${inspectResult.hostname}:${KAFKA_BROKER_PORT}`;
123
- let bootstrapServers = `PLAINTEXT://${container.getHost()}:${container.getMappedPort(KAFKA_PORT)}`;
124
- if (this.saslSslConfig) {
125
- if (this.networkMode) {
126
- bootstrapServers = `${bootstrapServers},SECURE://${inspectResult.hostname}:${this.saslSslConfig.port}`;
127
- }
128
- else {
129
- bootstrapServers = `${bootstrapServers},SECURE://${container.getHost()}:${container.getMappedPort(this.saslSslConfig.port)}`;
130
- }
131
- }
132
- const { output, exitCode } = yield container.exec([
133
- "kafka-configs",
134
- "--alter",
135
- "--bootstrap-server",
136
- brokerAdvertisedListener,
137
- "--entity-type",
138
- "brokers",
139
- "--entity-name",
140
- this.opts.environment["KAFKA_BROKER_ID"],
141
- "--add-config",
142
- `advertised.listeners=[${bootstrapServers},${brokerAdvertisedListener}]`,
143
- ]);
144
- if (exitCode !== 0) {
145
- throw new Error(`Kafka container configuration failed with exit code ${exitCode}: ${output}`);
146
- }
147
- });
148
- }
149
- createUser(container, { user: { name, password }, mechanism }) {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- const { output, exitCode } = yield container.exec([
152
- "kafka-configs",
153
- "--alter",
154
- // At the time of writing kafka-configs displays a warning stating that the 'zookeeper' flag is deprecated in favor of 'bootstrap-server'.
155
- // Unfortunately, 'bootstrap-server' can only be used to set quotas and not to create a user.
156
- "--zookeeper",
157
- this.opts.environment["KAFKA_ZOOKEEPER_CONNECT"],
158
- "--entity-type",
159
- "users",
160
- "--entity-name",
161
- `${name}`,
162
- "--add-config",
163
- `${mechanism}=[password=${password}]`,
164
- ]);
165
- if (exitCode !== 0) {
166
- throw new Error(`Kafka container configuration failed with exit code ${exitCode}: ${output}`);
167
- }
168
- });
169
- }
170
- }
171
- exports.KafkaContainer = KafkaContainer;
172
- class StartedKafkaContainer extends abstract_started_container_1.AbstractStartedContainer {
173
- constructor(startedTestContainer) {
174
- super(startedTestContainer);
175
- }
176
- }
177
- exports.StartedKafkaContainer = StartedKafkaContainer;
@@ -1,19 +0,0 @@
1
- import { GenericContainer } from "../../generic-container/generic-container";
2
- import { AbstractStartedContainer } from "../abstract-started-container";
3
- import { StartedTestContainer } from "../../test-container";
4
- export declare class MongoDBContainer extends GenericContainer {
5
- private readonly dockerImageName;
6
- constructor(image?: string);
7
- start(): Promise<StartedMongoDBContainer>;
8
- protected containerStarted(startedTestContainer: StartedTestContainer): Promise<void>;
9
- private initReplicaSet;
10
- private executeMongoEvalCommand;
11
- private buildMongoEvalCommand;
12
- private getMongoCmdBasedOnImageTag;
13
- private checkMongoNodeExitCode;
14
- private buildMongoWaitCommand;
15
- }
16
- export declare class StartedMongoDBContainer extends AbstractStartedContainer {
17
- constructor(startedTestContainer: StartedTestContainer);
18
- getConnectionString(): string;
19
- }
@@ -1,85 +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.StartedMongoDBContainer = exports.MongoDBContainer = void 0;
13
- const generic_container_1 = require("../../generic-container/generic-container");
14
- const abstract_started_container_1 = require("../abstract-started-container");
15
- const wait_1 = require("../../wait-strategy/wait");
16
- const docker_image_name_1 = require("../../docker-image-name");
17
- const MONGODB_PORT = 27017;
18
- class MongoDBContainer extends generic_container_1.GenericContainer {
19
- constructor(image = "mongo:4.0.1") {
20
- super(image);
21
- this.dockerImageName = docker_image_name_1.DockerImageName.fromString(this.image);
22
- }
23
- start() {
24
- const _super = Object.create(null, {
25
- start: { get: () => super.start }
26
- });
27
- return __awaiter(this, void 0, void 0, function* () {
28
- this.withExposedPorts(MONGODB_PORT)
29
- .withCommand(["--replSet", "rs0"])
30
- .withWaitStrategy(wait_1.Wait.forLogMessage(/.*waiting for connections.*/i))
31
- .withStartupTimeout(120000);
32
- return new StartedMongoDBContainer(yield _super.start.call(this));
33
- });
34
- }
35
- containerStarted(startedTestContainer) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- yield this.initReplicaSet(startedTestContainer);
38
- });
39
- }
40
- initReplicaSet(startedTestContainer) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- yield this.executeMongoEvalCommand(startedTestContainer, "rs.initiate();");
43
- yield this.executeMongoEvalCommand(startedTestContainer, this.buildMongoWaitCommand());
44
- });
45
- }
46
- executeMongoEvalCommand(startedTestContainer, command) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- const execResult = yield startedTestContainer.exec(this.buildMongoEvalCommand(command));
49
- this.checkMongoNodeExitCode(execResult);
50
- });
51
- }
52
- buildMongoEvalCommand(command) {
53
- return [this.getMongoCmdBasedOnImageTag(), "--eval", command];
54
- }
55
- getMongoCmdBasedOnImageTag() {
56
- return parseInt(this.dockerImageName.tag[0]) >= 5 ? "mongosh" : "mongo";
57
- }
58
- checkMongoNodeExitCode(execResult) {
59
- const { exitCode, output } = execResult;
60
- if (execResult.exitCode !== 0) {
61
- throw new Error(`Error running mongo command. Exit code ${exitCode}: ${output}`);
62
- }
63
- }
64
- buildMongoWaitCommand() {
65
- return `
66
- var attempt = 0;
67
- while(db.runCommand({isMaster: 1}).ismaster==false) {
68
- if (attempt > 60) {
69
- quit(1);
70
- }
71
- print(attempt); sleep(100); attempt++;
72
- }
73
- `;
74
- }
75
- }
76
- exports.MongoDBContainer = MongoDBContainer;
77
- class StartedMongoDBContainer extends abstract_started_container_1.AbstractStartedContainer {
78
- constructor(startedTestContainer) {
79
- super(startedTestContainer);
80
- }
81
- getConnectionString() {
82
- return `mongodb://${this.getHost()}:${this.getMappedPort(MONGODB_PORT)}`;
83
- }
84
- }
85
- exports.StartedMongoDBContainer = StartedMongoDBContainer;