testcontainers 9.12.0 → 10.0.0-beta.5

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 +18 -63
  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,51 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.FixedPortGenerator = exports.RandomUniquePortGenerator = void 0;
16
- const get_port_1 = __importDefault(require("get-port"));
17
- class RandomPortGenerator {
18
- generatePort() {
19
- return (0, get_port_1.default)({ port: this.randomBetweenInclusive(10000, 65535) });
20
- }
21
- randomBetweenInclusive(min, max) {
22
- return Math.floor(Math.random() * (max - min + 1) + min);
23
- }
24
- }
25
- class RandomUniquePortGenerator {
26
- constructor(portGenerator = new RandomPortGenerator()) {
27
- this.portGenerator = portGenerator;
28
- }
29
- generatePort() {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- let port;
32
- do {
33
- port = yield this.portGenerator.generatePort();
34
- } while (RandomUniquePortGenerator.assignedPorts.has(port));
35
- RandomUniquePortGenerator.assignedPorts.add(port);
36
- return port;
37
- });
38
- }
39
- }
40
- exports.RandomUniquePortGenerator = RandomUniquePortGenerator;
41
- RandomUniquePortGenerator.assignedPorts = new Set();
42
- class FixedPortGenerator {
43
- constructor(ports) {
44
- this.ports = ports;
45
- this.portIndex = 0;
46
- }
47
- generatePort() {
48
- return Promise.resolve(this.ports[this.portIndex++]);
49
- }
50
- }
51
- exports.FixedPortGenerator = FixedPortGenerator;
package/dist/src/port.js DELETED
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.resolveHostPortBinding = exports.hasHostBinding = exports.getContainerPort = void 0;
27
- const net = __importStar(require("net"));
28
- const getContainerPort = (port) => typeof port === "number" ? port : port.container;
29
- exports.getContainerPort = getContainerPort;
30
- const hasHostBinding = (port) => {
31
- return typeof port === "object" && port.host !== undefined;
32
- };
33
- exports.hasHostBinding = hasHostBinding;
34
- const resolveHostPortBinding = (hostIps, hostPortBindings) => {
35
- if (isDualStackIp(hostPortBindings)) {
36
- return hostPortBindings[0].hostPort;
37
- }
38
- for (const { family } of hostIps) {
39
- const hostPortBinding = hostPortBindings.find(({ hostIp }) => net.isIP(hostIp) === family);
40
- if (hostPortBinding !== undefined) {
41
- return hostPortBinding.hostPort;
42
- }
43
- }
44
- throw new Error("No host port found for host IP");
45
- };
46
- exports.resolveHostPortBinding = resolveHostPortBinding;
47
- const isDualStackIp = (hostPortBindings) => hostPortBindings.length === 1 && hostPortBindings[0].hostIp === "";
@@ -1,9 +0,0 @@
1
- export interface PullPolicy {
2
- shouldPull(): boolean;
3
- }
4
- export declare class DefaultPullPolicy implements PullPolicy {
5
- shouldPull(): boolean;
6
- }
7
- export declare class AlwaysPullPolicy implements PullPolicy {
8
- shouldPull(): boolean;
9
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AlwaysPullPolicy = exports.DefaultPullPolicy = void 0;
4
- class DefaultPullPolicy {
5
- shouldPull() {
6
- return false;
7
- }
8
- }
9
- exports.DefaultPullPolicy = DefaultPullPolicy;
10
- class AlwaysPullPolicy {
11
- shouldPull() {
12
- return true;
13
- }
14
- }
15
- exports.AlwaysPullPolicy = AlwaysPullPolicy;
@@ -1,5 +0,0 @@
1
- import { PartialDockerClient } from "./docker/client/docker-client-types";
2
- import Dockerode from "dockerode";
3
- export declare function registerSessionIdForCleanup(sessionId: string): Promise<void>;
4
- export declare function registerComposeProjectForCleanup(project: string): Promise<void>;
5
- export declare function startReaper(dockerClient: PartialDockerClient, sessionId: string, existingReaperContainer?: Dockerode.ContainerInfo): Promise<void>;
@@ -1,157 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.startReaper = exports.registerComposeProjectForCleanup = exports.registerSessionIdForCleanup = void 0;
13
- const net_1 = require("net");
14
- const logger_1 = require("./logger");
15
- const generic_container_1 = require("./generic-container/generic-container");
16
- const images_1 = require("./images");
17
- const labels_1 = require("./labels");
18
- const wait_1 = require("./wait-strategy/wait");
19
- const retry_strategy_1 = require("./retry-strategy");
20
- const remote_docker_unix_socket_path_1 = require("./docker/remote-docker-unix-socket-path");
21
- const docker_client_1 = require("./docker/client/docker-client");
22
- const isReaperEnabled = process.env.TESTCONTAINERS_RYUK_DISABLED !== "true";
23
- let reaper;
24
- function registerSessionIdForCleanup(sessionId) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- if (!reaper) {
27
- yield (0, docker_client_1.getDockerClient)();
28
- }
29
- (yield reaper).addSession(sessionId);
30
- });
31
- }
32
- exports.registerSessionIdForCleanup = registerSessionIdForCleanup;
33
- function registerComposeProjectForCleanup(project) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- if (!reaper) {
36
- yield (0, docker_client_1.getDockerClient)();
37
- }
38
- (yield reaper).addProject(project);
39
- });
40
- }
41
- exports.registerComposeProjectForCleanup = registerComposeProjectForCleanup;
42
- function startReaper(dockerClient, sessionId, existingReaperContainer) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- reaper = !isReaperEnabled
45
- ? yield createDisabledReaper()
46
- : existingReaperContainer
47
- ? yield useExistingReaper(dockerClient, sessionId, existingReaperContainer)
48
- : yield createNewReaper(dockerClient, sessionId);
49
- });
50
- }
51
- exports.startReaper = startReaper;
52
- function createDisabledReaper() {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- return new DisabledReaper();
55
- });
56
- }
57
- function useExistingReaper(dockerClient, sessionId, reaperContainer) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- logger_1.log.debug(`Reusing existing Reaper for session "${sessionId}"...`);
60
- const reaperPort = getReaperPublicPort(reaperContainer);
61
- const socket = yield connectToReaperSocket(dockerClient.host, reaperPort, sessionId, reaperContainer.Id);
62
- return new RealReaper(sessionId, socket);
63
- });
64
- }
65
- function getReaperPublicPort(reaperContainer) {
66
- var _a;
67
- const port = (_a = reaperContainer.Ports.find((port) => port.PrivatePort == 8080)) === null || _a === void 0 ? void 0 : _a.PublicPort;
68
- if (!port) {
69
- throw new Error("Expected Reaper to map exposed port 8080");
70
- }
71
- return port;
72
- }
73
- function createNewReaper(dockerClient, sessionId) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- const remoteDockerUnixSocketPath = (0, remote_docker_unix_socket_path_1.getRemoteDockerUnixSocketPath)(dockerClient);
76
- logger_1.log.debug(`Creating new Reaper for session "${sessionId}" with socket path "${remoteDockerUnixSocketPath}"...`);
77
- const startedContainer = yield createAndStartReaperContainer(sessionId, remoteDockerUnixSocketPath);
78
- const containerId = startedContainer.getId();
79
- const host = startedContainer.getHost();
80
- const port = startedContainer.getMappedPort(8080);
81
- const socket = yield connectToReaperSocket(host, port, sessionId, containerId);
82
- return new RealReaper(sessionId, socket);
83
- });
84
- }
85
- function createAndStartReaperContainer(sessionId, socketPath) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const exposedPort = process.env["TESTCONTAINERS_RYUK_PORT"]
88
- ? { container: 8080, host: Number(process.env["TESTCONTAINERS_RYUK_PORT"]) }
89
- : 8080;
90
- const container = new generic_container_1.GenericContainer(images_1.REAPER_IMAGE)
91
- .withName(`testcontainers-ryuk-${sessionId}`)
92
- .withExposedPorts(exposedPort)
93
- .withBindMounts([{ source: socketPath, target: "/var/run/docker.sock" }])
94
- .withWaitStrategy(wait_1.Wait.forLogMessage(/.+ Started!/));
95
- if (process.env.TESTCONTAINERS_RYUK_PRIVILEGED === "true") {
96
- container.withPrivilegedMode();
97
- }
98
- return yield container.start();
99
- });
100
- }
101
- function connectToReaperSocket(host, port, sessionId, containerId) {
102
- return __awaiter(this, void 0, void 0, function* () {
103
- const retryResult = yield new retry_strategy_1.IntervalRetryStrategy(1000).retryUntil((attempt) => {
104
- return new Promise((resolve) => {
105
- logger_1.log.debug(`Connecting to Reaper (attempt ${attempt + 1}) on "${host}:${port}"...`, { containerId });
106
- const socket = new net_1.Socket();
107
- socket
108
- .unref()
109
- .on("timeout", () => logger_1.log.error(`Reaper ${containerId} socket timed out`))
110
- .on("error", (err) => logger_1.log.error(`Reaper ${containerId} socket error: ${err}`))
111
- .on("close", (hadError) => {
112
- if (hadError) {
113
- logger_1.log.error(`Connection to Reaper closed with error`, { containerId });
114
- }
115
- else {
116
- logger_1.log.warn(`Connection to Reaper closed`, { containerId });
117
- }
118
- resolve(undefined);
119
- })
120
- .connect(port, host, () => {
121
- logger_1.log.debug(`Connected to Reaper`, { containerId });
122
- resolve(socket);
123
- });
124
- });
125
- }, (result) => result !== undefined, () => {
126
- const message = `Failed to connect to Reaper`;
127
- logger_1.log.error(message, { containerId });
128
- return new Error(message);
129
- }, 4000);
130
- if (retryResult instanceof net_1.Socket) {
131
- return retryResult;
132
- }
133
- else {
134
- throw retryResult;
135
- }
136
- });
137
- }
138
- class RealReaper {
139
- constructor(sessionId, socket) {
140
- this.sessionId = sessionId;
141
- this.socket = socket;
142
- }
143
- addSession(sessionId) {
144
- this.socket.write(`label=${labels_1.LABEL_TESTCONTAINERS_SESSION_ID}=${sessionId}\r\n`);
145
- }
146
- addProject(projectName) {
147
- this.socket.write(`label=com.docker.compose.project=${projectName}\r\n`);
148
- }
149
- }
150
- class DisabledReaper {
151
- addSession() {
152
- // noop
153
- }
154
- addProject() {
155
- // noop
156
- }
157
- }
@@ -1,8 +0,0 @@
1
- import { DockerConfig } from "./types";
2
- import { RegistryAuthLocator } from "./registry-auth-locator";
3
- import { AuthConfig } from "../docker/types";
4
- export declare class Auths implements RegistryAuthLocator {
5
- getName(): string;
6
- getAuthConfig(registry: string, dockerConfig: DockerConfig): Promise<AuthConfig | undefined>;
7
- private findAuthEntry;
8
- }
@@ -1,56 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Auths = void 0;
13
- const registry_matches_1 = require("./registry-matches");
14
- class Auths {
15
- getName() {
16
- return "Auths";
17
- }
18
- getAuthConfig(registry, dockerConfig) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- const auth = this.findAuthEntry(registry, dockerConfig);
21
- if (!auth) {
22
- return undefined;
23
- }
24
- const authConfig = { registryAddress: registry };
25
- if (auth.email) {
26
- authConfig.email = auth.email;
27
- }
28
- if (auth.auth) {
29
- const decodedAuth = Buffer.from(auth.auth, "base64").toString();
30
- const [username, password] = decodedAuth.split(":");
31
- authConfig.username = username;
32
- authConfig.password = password;
33
- }
34
- else {
35
- if (auth.username) {
36
- authConfig.username = auth.username;
37
- }
38
- if (auth.password) {
39
- authConfig.password = auth.password;
40
- }
41
- }
42
- return authConfig;
43
- });
44
- }
45
- findAuthEntry(registry, dockerConfig) {
46
- var _a;
47
- const authEntries = (_a = dockerConfig.auths) !== null && _a !== void 0 ? _a : {};
48
- for (const key in authEntries) {
49
- if ((0, registry_matches_1.registryMatches)(key, registry)) {
50
- return authEntries[key];
51
- }
52
- }
53
- return undefined;
54
- }
55
- }
56
- exports.Auths = Auths;
@@ -1,6 +0,0 @@
1
- import { CredentialProvider } from "./credential-provider";
2
- import { DockerConfig } from "./types";
3
- export declare class CredHelpers extends CredentialProvider {
4
- getName(): string;
5
- getCredentialProviderName(registry: string, dockerConfig: DockerConfig): string | undefined;
6
- }
@@ -1,81 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CredentialProvider = void 0;
13
- const logger_1 = require("../logger");
14
- const child_process_1 = require("child_process");
15
- const registry_matches_1 = require("./registry-matches");
16
- class CredentialProvider {
17
- getAuthConfig(registry, dockerConfig) {
18
- return __awaiter(this, void 0, void 0, function* () {
19
- const credentialProviderName = this.getCredentialProviderName(registry, dockerConfig);
20
- if (!credentialProviderName) {
21
- return undefined;
22
- }
23
- const programName = `docker-credential-${credentialProviderName}`;
24
- logger_1.log.debug(`Executing Docker credential provider "${programName}"`);
25
- const credentials = yield this.listCredentials(programName);
26
- if (!Object.keys(credentials).some((aRegistry) => (0, registry_matches_1.registryMatches)(aRegistry, registry))) {
27
- logger_1.log.debug(`No credential found for registry "${registry}"`);
28
- return undefined;
29
- }
30
- const response = yield this.runCredentialProvider(registry, programName);
31
- return {
32
- username: response.Username,
33
- password: response.Secret,
34
- registryAddress: response.ServerURL,
35
- };
36
- });
37
- }
38
- listCredentials(providerName) {
39
- return new Promise((resolve, reject) => {
40
- (0, child_process_1.exec)(`${providerName} list`, (err, stdout) => {
41
- if (err) {
42
- logger_1.log.error(`An error occurred listing credentials: ${err}`);
43
- return reject(new Error("An error occurred listing credentials"));
44
- }
45
- try {
46
- const response = JSON.parse(stdout);
47
- return resolve(response);
48
- }
49
- catch (e) {
50
- logger_1.log.error(`Unexpected response from Docker credential provider LIST command: "${stdout}"`);
51
- return reject(new Error("Unexpected response from Docker credential provider LIST command"));
52
- }
53
- });
54
- });
55
- }
56
- runCredentialProvider(registry, providerName) {
57
- return new Promise((resolve, reject) => {
58
- const sink = (0, child_process_1.spawn)(providerName, ["get"]);
59
- const chunks = [];
60
- sink.stdout.on("data", (chunk) => chunks.push(chunk));
61
- sink.on("close", (code) => {
62
- if (code !== 0) {
63
- logger_1.log.error(`An error occurred getting a credential: ${code}`);
64
- return reject(new Error("An error occurred getting a credential"));
65
- }
66
- const response = chunks.join("");
67
- try {
68
- const parsedResponse = JSON.parse(response);
69
- return resolve(parsedResponse);
70
- }
71
- catch (e) {
72
- logger_1.log.error(`Unexpected response from Docker credential provider GET command: "${response}"`);
73
- return reject(new Error("Unexpected response from Docker credential provider GET command"));
74
- }
75
- });
76
- sink.stdin.write(`${registry}\n`);
77
- sink.stdin.end();
78
- });
79
- }
80
- }
81
- exports.CredentialProvider = CredentialProvider;
@@ -1,6 +0,0 @@
1
- import { CredentialProvider } from "./credential-provider";
2
- import { DockerConfig } from "./types";
3
- export declare class CredsStore extends CredentialProvider {
4
- getName(): string;
5
- getCredentialProviderName(registry: string, dockerConfig: DockerConfig): string | undefined;
6
- }
@@ -1,6 +0,0 @@
1
- import { DockerConfig } from "./types";
2
- import { AuthConfig } from "../docker/types";
3
- export interface RegistryAuthLocator {
4
- getName(): string;
5
- getAuthConfig(registry: string, dockerConfig: DockerConfig): Promise<AuthConfig | undefined>;
6
- }
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.IntervalRetryStrategy = void 0;
13
- const clock_1 = require("./clock");
14
- class AbstractRetryStrategy {
15
- constructor(clock = new clock_1.SystemClock()) {
16
- this.clock = clock;
17
- }
18
- hasTimedOut(timeout, startTime) {
19
- return this.clock.getTime() - startTime > timeout;
20
- }
21
- wait(duration) {
22
- return new Promise((resolve) => setTimeout(resolve, duration));
23
- }
24
- }
25
- class IntervalRetryStrategy extends AbstractRetryStrategy {
26
- constructor(interval) {
27
- super();
28
- this.interval = interval;
29
- }
30
- retryUntil(fn, predicate, onTimeout, timeout) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const startTime = this.clock.getTime();
33
- let attemptNumber = 0;
34
- let result = yield fn(attemptNumber++);
35
- while (!(yield predicate(result))) {
36
- if (this.hasTimedOut(timeout, startTime)) {
37
- return onTimeout();
38
- }
39
- yield this.wait(this.interval);
40
- result = yield fn(attemptNumber++);
41
- }
42
- return result;
43
- });
44
- }
45
- }
46
- exports.IntervalRetryStrategy = IntervalRetryStrategy;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __asyncValues = (this && this.__asyncValues) || function (o) {
12
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
- var m = o[Symbol.asyncIterator], i;
14
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.streamToString = void 0;
20
- const streamToString = (stream, options = { trim: false }) => { var _a, stream_1, stream_1_1; return __awaiter(void 0, void 0, void 0, function* () {
21
- var _b, e_1, _c, _d;
22
- const chunks = [];
23
- try {
24
- for (_a = true, stream_1 = __asyncValues(stream); stream_1_1 = yield stream_1.next(), _b = stream_1_1.done, !_b;) {
25
- _d = stream_1_1.value;
26
- _a = false;
27
- try {
28
- const chunk = _d;
29
- chunks.push(Buffer.from(chunk));
30
- }
31
- finally {
32
- _a = true;
33
- }
34
- }
35
- }
36
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
37
- finally {
38
- try {
39
- if (!_a && !_b && (_c = stream_1.return)) yield _c.call(stream_1);
40
- }
41
- finally { if (e_1) throw e_1.error; }
42
- }
43
- const str = Buffer.concat(chunks).toString("utf-8");
44
- return options.trim ? str.trim() : str;
45
- }); };
46
- exports.streamToString = streamToString;
@@ -1,19 +0,0 @@
1
- import { DockerInfo } from "./docker/functions/get-info";
2
- import Dockerode from "dockerode";
3
- export type SystemInfo = {
4
- nodeInfo: NodeInfo;
5
- dockerInfo: DockerInfo;
6
- dockerComposeInfo?: DockerComposeInfo;
7
- };
8
- export declare const getSystemInfo: (dockerode: Dockerode) => Promise<SystemInfo>;
9
- type NodeInfo = {
10
- version: string;
11
- architecture: string;
12
- platform: string;
13
- };
14
- export type DockerComposeInfo = {
15
- version: string;
16
- compatability: DockerComposeCompatibility;
17
- };
18
- export type DockerComposeCompatibility = "v1" | "v2";
19
- export {};
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.getSystemInfo = void 0;
36
- const logger_1 = require("./logger");
37
- const docker_compose_1 = __importStar(require("docker-compose"));
38
- const get_info_1 = require("./docker/functions/get-info");
39
- let systemInfo;
40
- const getSystemInfo = (dockerode) => __awaiter(void 0, void 0, void 0, function* () {
41
- var _a, _b;
42
- if (systemInfo !== undefined) {
43
- return systemInfo;
44
- }
45
- logger_1.log.debug("Fetching system info...");
46
- const nodeInfo = getNodeInfo();
47
- const dockerInfo = yield (0, get_info_1.getDockerInfo)(dockerode);
48
- const dockerComposeInfo = yield getDockerComposeInfo();
49
- systemInfo = { nodeInfo, dockerInfo, dockerComposeInfo };
50
- logger_1.log.debug(`Node version: ${nodeInfo.version}, Platform: ${nodeInfo.platform}, Arch: ${nodeInfo.architecture}, OS: ${dockerInfo.operatingSystem}, Version: ${dockerInfo.serverVersion}, Arch: ${dockerInfo.architecture}, CPUs: ${dockerInfo.cpus}, Memory: ${dockerInfo.memory}, Compose installed: ${dockerComposeInfo !== undefined}, Compose version: ${(_a = dockerComposeInfo === null || dockerComposeInfo === void 0 ? void 0 : dockerComposeInfo.version) !== null && _a !== void 0 ? _a : "N/A"}, Compose compatibility: ${(_b = dockerComposeInfo === null || dockerComposeInfo === void 0 ? void 0 : dockerComposeInfo.compatability) !== null && _b !== void 0 ? _b : "N/A"}`);
51
- return systemInfo;
52
- });
53
- exports.getSystemInfo = getSystemInfo;
54
- const getNodeInfo = () => {
55
- return {
56
- version: process.version,
57
- architecture: process.arch,
58
- platform: process.platform,
59
- };
60
- };
61
- const getDockerComposeInfo = () => __awaiter(void 0, void 0, void 0, function* () {
62
- try {
63
- return {
64
- version: (yield docker_compose_1.default.version()).data.version,
65
- compatability: "v1",
66
- };
67
- }
68
- catch (err) {
69
- try {
70
- return {
71
- version: (yield docker_compose_1.v2.version()).data.version,
72
- compatability: "v2",
73
- };
74
- }
75
- catch (_c) {
76
- logger_1.log.warn(`Unable to detect DockerCompose version, is it installed? ${err}`);
77
- return undefined;
78
- }
79
- }
80
- });