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,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/container-runtime/clients/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export declare class ImageName {
2
+ readonly registry: string | undefined;
3
+ readonly image: string;
4
+ readonly tag: string;
5
+ readonly string: string;
6
+ constructor(registry: string | undefined, image: string, tag: string);
7
+ equals(other: ImageName): boolean;
8
+ static fromString(string: string): ImageName;
9
+ private static getRegistry;
10
+ private static isRegistry;
11
+ }
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DockerImageName = void 0;
4
- const images_1 = require("./images");
5
- class DockerImageName {
3
+ exports.ImageName = void 0;
4
+ class ImageName {
5
+ registry;
6
+ image;
7
+ tag;
8
+ string;
6
9
  constructor(registry, image, tag) {
7
10
  this.registry = registry;
8
11
  this.image = image;
@@ -25,28 +28,19 @@ class DockerImageName {
25
28
  equals(other) {
26
29
  return this.registry === other.registry && this.image === other.image && this.tag === other.tag;
27
30
  }
28
- toString() {
29
- return this.string;
30
- }
31
- isReaper() {
32
- return this.string === images_1.REAPER_IMAGE;
33
- }
34
- isHelperContainer() {
35
- return DockerImageName.HELPER_CONTAINERS.has(this.string);
36
- }
37
31
  static fromString(string) {
38
32
  const registry = this.getRegistry(string);
39
33
  const stringWithoutRegistry = registry ? string.split("/").slice(1).join("/") : string;
40
34
  if (stringWithoutRegistry.includes("@")) {
41
35
  const [image, tag] = stringWithoutRegistry.split("@");
42
- return new DockerImageName(registry, image, tag);
36
+ return new ImageName(registry, image, tag);
43
37
  }
44
38
  else if (stringWithoutRegistry.includes(":")) {
45
39
  const [image, tag] = stringWithoutRegistry.split(":");
46
- return new DockerImageName(registry, image, tag);
40
+ return new ImageName(registry, image, tag);
47
41
  }
48
42
  else {
49
- return new DockerImageName(registry, stringWithoutRegistry, "latest");
43
+ return new ImageName(registry, stringWithoutRegistry, "latest");
50
44
  }
51
45
  }
52
46
  static getRegistry(string) {
@@ -59,5 +53,5 @@ class DockerImageName {
59
53
  return string.includes(".") || string.includes(":") || string === "localhost";
60
54
  }
61
55
  }
62
- exports.DockerImageName = DockerImageName;
63
- DockerImageName.HELPER_CONTAINERS = new Set([images_1.REAPER_IMAGE, images_1.SSHD_IMAGE]);
56
+ exports.ImageName = ImageName;
57
+ //# sourceMappingURL=image-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-name.js","sourceRoot":"","sources":["../../src/container-runtime/image-name.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAIF;IACA;IACA;IALF,MAAM,CAAS;IAE/B,YACkB,QAA4B,EAC5B,KAAa,EACb,GAAW;QAFX,aAAQ,GAAR,QAAQ,CAAoB;QAC5B,UAAK,GAAL,KAAK,CAAQ;QACb,QAAG,GAAH,GAAG,CAAQ;QAE3B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBAClC,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;aAC5D;iBAAM;gBACL,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;aAC5D;SACF;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YACzC,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;SAC3C;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;SAC3C;IACH,CAAC;IAEM,MAAM,CAAC,KAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;IAClG,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,MAAc;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,qBAAqB,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAEvF,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtD,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC5C;aAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC9C,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtD,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC5C;aAAM;YACL,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;SACjE;IACH,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,MAAc;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;IACH,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,MAAc;QACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,WAAW,CAAC;IAChF,CAAC;CACF;AAnDD,8BAmDC"}
@@ -0,0 +1,6 @@
1
+ export { ContainerRuntimeClient, getContainerRuntimeClient } from "./clients/client";
2
+ export { ImageName } from "./image-name";
3
+ export { ComposeOptions, ComposeDownOptions } from "./clients/compose/types";
4
+ export { HostIp } from "./clients/types";
5
+ export { getAuthConfig } from "./auth/get-auth-config";
6
+ export { parseComposeContainerName } from "./clients/compose/parse-compose-container-name";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseComposeContainerName = exports.getAuthConfig = exports.ImageName = exports.getContainerRuntimeClient = exports.ContainerRuntimeClient = void 0;
4
+ var client_1 = require("./clients/client");
5
+ Object.defineProperty(exports, "ContainerRuntimeClient", { enumerable: true, get: function () { return client_1.ContainerRuntimeClient; } });
6
+ Object.defineProperty(exports, "getContainerRuntimeClient", { enumerable: true, get: function () { return client_1.getContainerRuntimeClient; } });
7
+ var image_name_1 = require("./image-name");
8
+ Object.defineProperty(exports, "ImageName", { enumerable: true, get: function () { return image_name_1.ImageName; } });
9
+ var get_auth_config_1 = require("./auth/get-auth-config");
10
+ Object.defineProperty(exports, "getAuthConfig", { enumerable: true, get: function () { return get_auth_config_1.getAuthConfig; } });
11
+ var parse_compose_container_name_1 = require("./clients/compose/parse-compose-container-name");
12
+ Object.defineProperty(exports, "parseComposeContainerName", { enumerable: true, get: function () { return parse_compose_container_name_1.parseComposeContainerName; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/container-runtime/index.ts"],"names":[],"mappings":";;;AAAA,2CAAqF;AAA5E,gHAAA,sBAAsB,OAAA;AAAE,mHAAA,yBAAyB,OAAA;AAC1D,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAGlB,0DAAuD;AAA9C,gHAAA,aAAa,OAAA;AACtB,+FAA2F;AAAlF,yIAAA,yBAAyB,OAAA"}
@@ -0,0 +1,9 @@
1
+ import { ContainerRuntimeClientStrategyResult } from "./types";
2
+ import { ContainerRuntimeClientStrategy } from "./strategy";
3
+ export declare class ConfigurationStrategy implements ContainerRuntimeClientStrategy {
4
+ private dockerHost;
5
+ private dockerTlsVerify;
6
+ private dockerCertPath;
7
+ getName(): string;
8
+ getResult(): Promise<ContainerRuntimeClientStrategyResult | undefined>;
9
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ConfigurationStrategy = void 0;
7
+ const config_1 = require("./utils/config");
8
+ const url_1 = require("url");
9
+ const fs_1 = require("fs");
10
+ const path_1 = __importDefault(require("path"));
11
+ class ConfigurationStrategy {
12
+ dockerHost;
13
+ dockerTlsVerify;
14
+ dockerCertPath;
15
+ getName() {
16
+ return "ConfigurationStrategy";
17
+ }
18
+ async getResult() {
19
+ const { dockerHost, dockerTlsVerify, dockerCertPath } = await (0, config_1.getContainerRuntimeConfig)();
20
+ if (!dockerHost) {
21
+ return undefined;
22
+ }
23
+ this.dockerHost = dockerHost;
24
+ this.dockerTlsVerify = dockerTlsVerify;
25
+ this.dockerCertPath = dockerCertPath;
26
+ const dockerOptions = {};
27
+ const { pathname, hostname, port } = new url_1.URL(this.dockerHost);
28
+ if (hostname !== "") {
29
+ dockerOptions.host = hostname;
30
+ dockerOptions.port = port;
31
+ }
32
+ else {
33
+ dockerOptions.socketPath = pathname;
34
+ }
35
+ if (this.dockerTlsVerify === "1" && this.dockerCertPath !== undefined) {
36
+ dockerOptions.ca = await fs_1.promises.readFile(path_1.default.resolve(this.dockerCertPath, "ca.pem"));
37
+ dockerOptions.cert = await fs_1.promises.readFile(path_1.default.resolve(this.dockerCertPath, "cert.pem"));
38
+ dockerOptions.key = await fs_1.promises.readFile(path_1.default.resolve(this.dockerCertPath, "key.pem"));
39
+ }
40
+ return {
41
+ uri: this.dockerHost,
42
+ dockerOptions,
43
+ composeEnvironment: {
44
+ DOCKER_HOST: this.dockerHost,
45
+ DOCKER_TLS_VERIFY: this.dockerTlsVerify,
46
+ DOCKER_CERT_PATH: this.dockerCertPath,
47
+ },
48
+ allowUserOverrides: true,
49
+ };
50
+ }
51
+ }
52
+ exports.ConfigurationStrategy = ConfigurationStrategy;
53
+ //# sourceMappingURL=configuration-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-strategy.js","sourceRoot":"","sources":["../../../src/container-runtime/strategies/configuration-strategy.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA2D;AAE3D,6BAA0B;AAC1B,2BAAoC;AACpC,gDAAwB;AAIxB,MAAa,qBAAqB;IACxB,UAAU,CAAU;IACpB,eAAe,CAAqB;IACpC,cAAc,CAAqB;IAE3C,OAAO;QACL,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,kCAAyB,GAAE,CAAC;QAE1F,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,MAAM,aAAa,GAAkB,EAAE,CAAC;QAExC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,SAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,QAAQ,KAAK,EAAE,EAAE;YACnB,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC9B,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;SAC3B;aAAM;YACL,aAAa,CAAC,UAAU,GAAG,QAAQ,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,GAAG,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;YACrE,aAAa,CAAC,EAAE,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClF,aAAa,CAAC,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;YACtF,aAAa,CAAC,GAAG,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;SACrF;QAED,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,aAAa;YACb,kBAAkB,EAAE;gBAClB,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,iBAAiB,EAAE,IAAI,CAAC,eAAe;gBACvC,gBAAgB,EAAE,IAAI,CAAC,cAAc;aACtC;YACD,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;CACF;AA/CD,sDA+CC"}
@@ -0,0 +1,6 @@
1
+ import { ContainerRuntimeClientStrategy } from "./strategy";
2
+ import { ContainerRuntimeClientStrategyResult } from "./types";
3
+ export declare class NpipeSocketStrategy implements ContainerRuntimeClientStrategy {
4
+ getName(): string;
5
+ getResult(): Promise<ContainerRuntimeClientStrategyResult | undefined>;
6
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NpipeSocketStrategy = void 0;
4
+ class NpipeSocketStrategy {
5
+ getName() {
6
+ return "NpipeSocketStrategy";
7
+ }
8
+ async getResult() {
9
+ if (process.platform !== "win32") {
10
+ return;
11
+ }
12
+ return {
13
+ uri: "npipe:////./pipe/docker_engine",
14
+ dockerOptions: { socketPath: "//./pipe/docker_engine" },
15
+ composeEnvironment: {},
16
+ allowUserOverrides: true,
17
+ };
18
+ }
19
+ }
20
+ exports.NpipeSocketStrategy = NpipeSocketStrategy;
21
+ //# sourceMappingURL=npipe-socket-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npipe-socket-strategy.js","sourceRoot":"","sources":["../../../src/container-runtime/strategies/npipe-socket-strategy.ts"],"names":[],"mappings":";;;AAGA,MAAa,mBAAmB;IAC9B,OAAO;QACL,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;YAChC,OAAO;SACR;QAED,OAAO;YACL,GAAG,EAAE,gCAAgC;YACrC,aAAa,EAAE,EAAE,UAAU,EAAE,wBAAwB,EAAE;YACvD,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;CACF;AAjBD,kDAiBC"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ import { ContainerRuntimeClientStrategy } from "./strategy";
3
+ import { ContainerRuntimeClientStrategyResult } from "./types";
4
+ export declare class RootlessUnixSocketStrategy implements ContainerRuntimeClientStrategy {
5
+ private readonly platform;
6
+ private readonly env;
7
+ constructor(platform?: NodeJS.Platform, env?: NodeJS.ProcessEnv);
8
+ getName(): string;
9
+ getResult(): Promise<ContainerRuntimeClientStrategyResult | undefined>;
10
+ private getSocketPathFromEnv;
11
+ private getSocketPathFromHomeRunDir;
12
+ private getSocketPathFromHomeDesktopDir;
13
+ private getSocketPathFromRunDir;
14
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RootlessUnixSocketStrategy = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const common_1 = require("../../common");
11
+ class RootlessUnixSocketStrategy {
12
+ platform;
13
+ env;
14
+ constructor(platform = process.platform, env = process.env) {
15
+ this.platform = platform;
16
+ this.env = env;
17
+ }
18
+ getName() {
19
+ return "RootlessUnixSocketStrategy";
20
+ }
21
+ async getResult() {
22
+ if (this.platform !== "linux" && this.platform !== "darwin") {
23
+ return;
24
+ }
25
+ const socketPath = [
26
+ this.getSocketPathFromEnv(),
27
+ this.getSocketPathFromHomeRunDir(),
28
+ this.getSocketPathFromHomeDesktopDir(),
29
+ this.getSocketPathFromRunDir(),
30
+ ]
31
+ .filter(common_1.isDefined)
32
+ .find((candidateSocketPath) => (0, fs_1.existsSync)(candidateSocketPath));
33
+ if (!socketPath) {
34
+ return;
35
+ }
36
+ return {
37
+ uri: `unix://${socketPath}`,
38
+ dockerOptions: { socketPath },
39
+ composeEnvironment: {},
40
+ allowUserOverrides: true,
41
+ };
42
+ }
43
+ getSocketPathFromEnv() {
44
+ const xdgRuntimeDir = this.env["XDG_RUNTIME_DIR"];
45
+ if (xdgRuntimeDir !== undefined) {
46
+ return path_1.default.join(xdgRuntimeDir, "docker.sock");
47
+ }
48
+ else {
49
+ return undefined;
50
+ }
51
+ }
52
+ getSocketPathFromHomeRunDir() {
53
+ return path_1.default.join(os_1.default.homedir(), ".docker", "run", "docker.sock");
54
+ }
55
+ getSocketPathFromHomeDesktopDir() {
56
+ return path_1.default.join(os_1.default.homedir(), ".docker", "desktop", "docker.sock");
57
+ }
58
+ getSocketPathFromRunDir() {
59
+ return path_1.default.join("/run", "user", `${os_1.default.userInfo().uid}`, "docker.sock");
60
+ }
61
+ }
62
+ exports.RootlessUnixSocketStrategy = RootlessUnixSocketStrategy;
63
+ //# sourceMappingURL=rootless-unix-socket-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rootless-unix-socket-strategy.js","sourceRoot":"","sources":["../../../src/container-runtime/strategies/rootless-unix-socket-strategy.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAgC;AAChC,gDAAwB;AACxB,4CAAoB;AAGpB,yCAAyC;AAEzC,MAAa,0BAA0B;IAElB;IACA;IAFnB,YACmB,WAA4B,OAAO,CAAC,QAAQ,EAC5C,MAAyB,OAAO,CAAC,GAAG;QADpC,aAAQ,GAAR,QAAQ,CAAoC;QAC5C,QAAG,GAAH,GAAG,CAAiC;IACpD,CAAC;IAEJ,OAAO;QACL,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAC3D,OAAO;SACR;QAED,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,EAAE;YAClC,IAAI,CAAC,+BAA+B,EAAE;YACtC,IAAI,CAAC,uBAAuB,EAAE;SAC/B;aACE,MAAM,CAAC,kBAAS,CAAC;aACjB,IAAI,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,mBAAmB,CAAC,CAAC,CAAC;QAElE,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QAED,OAAO;YACL,GAAG,EAAE,UAAU,UAAU,EAAE;YAC3B,aAAa,EAAE,EAAE,UAAU,EAAE;YAC7B,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAElD,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,OAAO,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;SAChD;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAEO,2BAA2B;QACjC,OAAO,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAEO,+BAA+B;QACrC,OAAO,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;IAEO,uBAAuB;QAC7B,OAAO,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC;CACF;AAzDD,gEAyDC"}
@@ -0,0 +1,5 @@
1
+ import { ContainerRuntimeClientStrategyResult } from "./types";
2
+ export interface ContainerRuntimeClientStrategy {
3
+ getName(): string;
4
+ getResult(): Promise<ContainerRuntimeClientStrategyResult | undefined>;
5
+ }
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/container-runtime/strategies/strategy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { ContainerRuntimeClientStrategy } from "./strategy";
2
+ import { ContainerRuntimeClientStrategyResult } from "./types";
3
+ export declare class TestcontainersHostStrategy implements ContainerRuntimeClientStrategy {
4
+ getName(): string;
5
+ getResult(): Promise<ContainerRuntimeClientStrategyResult | undefined>;
6
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestcontainersHostStrategy = void 0;
4
+ const config_1 = require("./utils/config");
5
+ const url_1 = require("url");
6
+ class TestcontainersHostStrategy {
7
+ getName() {
8
+ return "TestcontainersHostStrategy";
9
+ }
10
+ async getResult() {
11
+ const { tcHost } = await (0, config_1.getContainerRuntimeConfig)();
12
+ if (!tcHost) {
13
+ return;
14
+ }
15
+ const dockerOptions = {};
16
+ const { hostname, port } = new url_1.URL(tcHost);
17
+ dockerOptions.host = hostname;
18
+ dockerOptions.port = port;
19
+ return {
20
+ uri: tcHost,
21
+ dockerOptions,
22
+ composeEnvironment: {
23
+ DOCKER_HOST: tcHost,
24
+ },
25
+ allowUserOverrides: false,
26
+ };
27
+ }
28
+ }
29
+ exports.TestcontainersHostStrategy = TestcontainersHostStrategy;
30
+ //# sourceMappingURL=testcontainers-host-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testcontainers-host-strategy.js","sourceRoot":"","sources":["../../../src/container-runtime/strategies/testcontainers-host-strategy.ts"],"names":[],"mappings":";;;AAAA,2CAA2D;AAE3D,6BAA0B;AAI1B,MAAa,0BAA0B;IACrC,OAAO;QACL,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,kCAAyB,GAAE,CAAC;QAErD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,MAAM,aAAa,GAAkB,EAAE,CAAC;QAExC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,SAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,aAAa,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC9B,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;QAE1B,OAAO;YACL,GAAG,EAAE,MAAM;YACX,aAAa;YACb,kBAAkB,EAAE;gBAClB,WAAW,EAAE,MAAM;aACpB;YACD,kBAAkB,EAAE,KAAK;SAC1B,CAAC;IACJ,CAAC;CACF;AA3BD,gEA2BC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import { DockerOptions } from "dockerode";
3
+ export type ContainerRuntimeClientStrategyResult = {
4
+ uri: string;
5
+ dockerOptions: DockerOptions;
6
+ composeEnvironment: NodeJS.ProcessEnv;
7
+ allowUserOverrides: boolean;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/container-runtime/strategies/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { ContainerRuntimeClientStrategy } from "./strategy";
2
+ import { ContainerRuntimeClientStrategyResult } from "./types";
3
+ export declare class UnixSocketStrategy implements ContainerRuntimeClientStrategy {
4
+ getName(): string;
5
+ getResult(): Promise<ContainerRuntimeClientStrategyResult | undefined>;
6
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnixSocketStrategy = void 0;
4
+ const fs_1 = require("fs");
5
+ class UnixSocketStrategy {
6
+ getName() {
7
+ return "UnixSocketStrategy";
8
+ }
9
+ async getResult() {
10
+ if (process.platform !== "linux" && process.platform !== "darwin" && !(0, fs_1.existsSync)("/var/run/docker.sock")) {
11
+ return;
12
+ }
13
+ return {
14
+ uri: "unix:///var/run/docker.sock",
15
+ dockerOptions: { socketPath: "/var/run/docker.sock" },
16
+ composeEnvironment: {},
17
+ allowUserOverrides: true,
18
+ };
19
+ }
20
+ }
21
+ exports.UnixSocketStrategy = UnixSocketStrategy;
22
+ //# sourceMappingURL=unix-socket-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unix-socket-strategy.js","sourceRoot":"","sources":["../../../src/container-runtime/strategies/unix-socket-strategy.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAIhC,MAAa,kBAAkB;IAC7B,OAAO;QACL,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,IAAA,eAAU,EAAC,sBAAsB,CAAC,EAAE;YACxG,OAAO;SACR;QAED,OAAO;YACL,GAAG,EAAE,6BAA6B;YAClC,aAAa,EAAE,EAAE,UAAU,EAAE,sBAAsB,EAAE;YACrD,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;CACF;AAjBD,gDAiBC"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" />
2
+ export type ContainerRuntimeConfig = {
3
+ tcHost?: string;
4
+ dockerHost?: string;
5
+ dockerTlsVerify?: string;
6
+ dockerCertPath?: string;
7
+ };
8
+ export type GetContainerRuntimeConfig = (env?: NodeJS.ProcessEnv) => Promise<ContainerRuntimeConfig>;
9
+ export declare const getContainerRuntimeConfig: GetContainerRuntimeConfig;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getContainerRuntimeConfig = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const os_1 = require("os");
9
+ const fs_1 = require("fs");
10
+ const promises_1 = require("fs/promises");
11
+ const properties_reader_1 = __importDefault(require("properties-reader"));
12
+ const common_1 = require("../../../common");
13
+ let containerRuntimeConfig;
14
+ const getContainerRuntimeConfig = async (env = process.env) => {
15
+ if (!containerRuntimeConfig) {
16
+ containerRuntimeConfig = {
17
+ ...(await loadFromFile()),
18
+ ...loadFromEnv(env),
19
+ };
20
+ logDockerClientConfig(containerRuntimeConfig);
21
+ }
22
+ return containerRuntimeConfig;
23
+ };
24
+ exports.getContainerRuntimeConfig = getContainerRuntimeConfig;
25
+ async function loadFromFile() {
26
+ const file = path_1.default.resolve((0, os_1.homedir)(), ".testcontainers.properties");
27
+ const dockerClientConfig = {};
28
+ if ((0, fs_1.existsSync)(file)) {
29
+ common_1.log.debug(`Loading ".testcontainers.properties" file...`);
30
+ const string = await (0, promises_1.readFile)(file, { encoding: "utf-8" });
31
+ const properties = (0, properties_reader_1.default)("").read(string);
32
+ const tcHost = properties.get("tc.host");
33
+ if (tcHost !== null) {
34
+ dockerClientConfig.tcHost = tcHost;
35
+ }
36
+ const dockerHost = properties.get("docker.host");
37
+ if (dockerHost !== null) {
38
+ dockerClientConfig.dockerHost = dockerHost;
39
+ }
40
+ const dockerTlsVerify = properties.get("docker.tls.verify");
41
+ if (dockerTlsVerify !== null) {
42
+ dockerClientConfig.dockerTlsVerify = `${dockerTlsVerify}`;
43
+ }
44
+ const dockerCertPath = properties.get("docker.cert.path");
45
+ if (dockerCertPath !== null) {
46
+ dockerClientConfig.dockerCertPath = dockerCertPath;
47
+ }
48
+ }
49
+ return dockerClientConfig;
50
+ }
51
+ function loadFromEnv(env) {
52
+ const dockerClientConfig = {};
53
+ if (env["DOCKER_HOST"] !== undefined) {
54
+ dockerClientConfig.dockerHost = env["DOCKER_HOST"];
55
+ }
56
+ if (env["DOCKER_TLS_VERIFY"] !== undefined) {
57
+ dockerClientConfig.dockerTlsVerify = env["DOCKER_TLS_VERIFY"];
58
+ }
59
+ if (env["DOCKER_CERT_PATH"] !== undefined) {
60
+ dockerClientConfig.dockerCertPath = env["DOCKER_CERT_PATH"];
61
+ }
62
+ return dockerClientConfig;
63
+ }
64
+ function logDockerClientConfig(config) {
65
+ if (!common_1.log.enabled()) {
66
+ return;
67
+ }
68
+ const configurations = Object.entries(config)
69
+ .filter(([, value]) => value !== undefined)
70
+ .map(([key, value]) => `${key}: "${value}"`);
71
+ if (configurations.length > 0) {
72
+ common_1.log.debug(`Loaded ".testcontainers.properties" file, ${configurations.join(", ")}`);
73
+ }
74
+ }
75
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/container-runtime/strategies/utils/config.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,2BAA6B;AAC7B,2BAAgC;AAChC,0CAAuC;AACvC,0EAAiD;AACjD,4CAAsC;AAStC,IAAI,sBAA8C,CAAC;AAI5C,MAAM,yBAAyB,GAA8B,KAAK,EACvE,MAAyB,OAAO,CAAC,GAAG,EACH,EAAE;IACnC,IAAI,CAAC,sBAAsB,EAAE;QAC3B,sBAAsB,GAAG;YACvB,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC;YACzB,GAAG,WAAW,CAAC,GAAG,CAAC;SACpB,CAAC;QACF,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;KAC/C;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC,CAAC;AAXW,QAAA,yBAAyB,6BAWpC;AAEF,KAAK,UAAU,YAAY;IACzB,MAAM,IAAI,GAAG,cAAI,CAAC,OAAO,CAAC,IAAA,YAAO,GAAE,EAAE,4BAA4B,CAAC,CAAC;IAEnE,MAAM,kBAAkB,GAA2B,EAAE,CAAC;IAEtD,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE;QACpB,YAAG,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAA,2BAAgB,EAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAW,CAAC;QACnD,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,kBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC;SACpC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAW,CAAC;QAC3D,IAAI,UAAU,KAAK,IAAI,EAAE;YACvB,kBAAkB,CAAC,UAAU,GAAG,UAAU,CAAC;SAC5C;QAED,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAW,CAAC;QACtE,IAAI,eAAe,KAAK,IAAI,EAAE;YAC5B,kBAAkB,CAAC,eAAe,GAAG,GAAG,eAAe,EAAE,CAAC;SAC3D;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAW,CAAC;QACpE,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,kBAAkB,CAAC,cAAc,GAAG,cAAc,CAAC;SACpD;KACF;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,SAAS,WAAW,CAAC,GAAsB;IACzC,MAAM,kBAAkB,GAA2B,EAAE,CAAC;IAEtD,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE;QACpC,kBAAkB,CAAC,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;KACpD;IACD,IAAI,GAAG,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE;QAC1C,kBAAkB,CAAC,eAAe,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;KAC/D;IACD,IAAI,GAAG,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE;QACzC,kBAAkB,CAAC,cAAc,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;KAC7D;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA8B;IAC3D,IAAI,CAAC,YAAG,CAAC,OAAO,EAAE,EAAE;QAClB,OAAO;KACR;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC;IAE/C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,YAAG,CAAC,KAAK,CAAC,6CAA6C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACrF;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attachContainer = void 0;
4
+ const demux_stream_1 = require("./demux-stream");
5
+ const common_1 = require("../../common");
6
+ const attachContainer = async (dockerode, container) => {
7
+ try {
8
+ const stream = (await container.attach({ stream: true, stdout: true, stderr: true }));
9
+ return (0, demux_stream_1.demuxStream)(dockerode, stream);
10
+ }
11
+ catch (err) {
12
+ common_1.log.error(`Failed to attach to container: ${err}`, { containerId: container.id });
13
+ throw err;
14
+ }
15
+ };
16
+ exports.attachContainer = attachContainer;
17
+ //# sourceMappingURL=attach-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach-container.js","sourceRoot":"","sources":["../../../src/container-runtime/utils/attach-container.ts"],"names":[],"mappings":";;;AAEA,iDAA6C;AAC7C,yCAAmC;AAE5B,MAAM,eAAe,GAAG,KAAK,EAAE,SAAoB,EAAE,SAA8B,EAAqB,EAAE;IAC/G,IAAI;QACF,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAA0B,CAAC;QAC/G,OAAO,IAAA,0BAAW,EAAC,SAAS,EAAE,MAAkB,CAAC,CAAC;KACnD;IAAC,OAAO,GAAG,EAAE;QACZ,YAAG,CAAC,KAAK,CAAC,kCAAkC,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,GAAG,CAAC;KACX;AACH,CAAC,CAAC;AARW,QAAA,eAAe,mBAQ1B"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from "stream";
3
+ import Dockerode from "dockerode";
4
+ export declare function demuxStream(dockerode: Dockerode, stream: Readable): Promise<Readable>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.demuxStream = void 0;
4
+ const stream_1 = require("stream");
5
+ const common_1 = require("../../common");
6
+ async function demuxStream(dockerode, stream) {
7
+ try {
8
+ const demuxedStream = new stream_1.PassThrough({ autoDestroy: true, encoding: "utf-8" });
9
+ dockerode.modem.demuxStream(stream, demuxedStream, demuxedStream);
10
+ stream.on("end", () => demuxedStream.end());
11
+ demuxedStream.on("close", () => {
12
+ if (!stream.destroyed) {
13
+ stream.destroy();
14
+ }
15
+ });
16
+ return demuxedStream;
17
+ }
18
+ catch (err) {
19
+ common_1.log.error(`Failed to demux stream: ${err}`);
20
+ throw err;
21
+ }
22
+ }
23
+ exports.demuxStream = demuxStream;
24
+ //# sourceMappingURL=demux-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demux-stream.js","sourceRoot":"","sources":["../../../src/container-runtime/utils/demux-stream.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,yCAAmC;AAE5B,KAAK,UAAU,WAAW,CAAC,SAAoB,EAAE,MAAgB;IACtE,IAAI;QACF,MAAM,aAAa,GAAG,IAAI,oBAAW,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAChF,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAClE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACrB,MAAM,CAAC,OAAO,EAAE,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;KACtB;IAAC,OAAO,GAAG,EAAE;QACZ,YAAG,CAAC,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QAC5C,MAAM,GAAG,CAAC;KACX;AACH,CAAC;AAfD,kCAeC"}
@@ -0,0 +1,3 @@
1
+ import Dockerode from "dockerode";
2
+ import { ImageName } from "../image-name";
3
+ export declare function imageExists(dockerode: Dockerode, imageName: ImageName): Promise<boolean>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.imageExists = void 0;
7
+ const async_lock_1 = __importDefault(require("async-lock"));
8
+ const existingImages = new Set();
9
+ const imageCheckLock = new async_lock_1.default();
10
+ async function imageExists(dockerode, imageName) {
11
+ return imageCheckLock.acquire(imageName.string, async () => {
12
+ if (existingImages.has(imageName.string)) {
13
+ return true;
14
+ }
15
+ try {
16
+ await dockerode.getImage(imageName.string).inspect();
17
+ existingImages.add(imageName.string);
18
+ return true;
19
+ }
20
+ catch (err) {
21
+ if (err instanceof Error && err.message.toLowerCase().includes("no such image")) {
22
+ return false;
23
+ }
24
+ throw err;
25
+ }
26
+ });
27
+ }
28
+ exports.imageExists = imageExists;
29
+ //# sourceMappingURL=image-exists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-exists.js","sourceRoot":"","sources":["../../../src/container-runtime/utils/image-exists.ts"],"names":[],"mappings":";;;;;;AACA,4DAAmC;AAGnC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AACzC,MAAM,cAAc,GAAG,IAAI,oBAAS,EAAE,CAAC;AAEhC,KAAK,UAAU,WAAW,CAAC,SAAoB,EAAE,SAAoB;IAC1E,OAAO,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACzD,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QAED,IAAI;YACF,MAAM,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;YACrD,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC/E,OAAO,KAAK,CAAC;aACd;YACD,MAAM,GAAG,CAAC;SACX;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAjBD,kCAiBC"}
@@ -0,0 +1,2 @@
1
+ import { HostIp } from "../clients/types";
2
+ export declare const lookupHostIps: (host: string) => Promise<HostIp[]>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.lookupHostIps = void 0;
7
+ const net_1 = __importDefault(require("net"));
8
+ const dns_1 = __importDefault(require("dns"));
9
+ const lookupHostIps = async (host) => {
10
+ if (net_1.default.isIP(host) === 0) {
11
+ return await dns_1.default.promises.lookup(host, { all: true });
12
+ }
13
+ else {
14
+ return [{ address: host, family: net_1.default.isIP(host) }];
15
+ }
16
+ };
17
+ exports.lookupHostIps = lookupHostIps;
18
+ //# sourceMappingURL=lookup-host-ips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup-host-ips.js","sourceRoot":"","sources":["../../../src/container-runtime/utils/lookup-host-ips.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,8CAAsB;AAGf,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAqB,EAAE;IACrE,IAAI,aAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,MAAM,aAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;KACvD;SAAM;QACL,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACpD;AACH,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}