the-moby-effect 1.48.0 → 1.48.2

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 (228) hide show
  1. package/dist/cjs/Callbacks.js.map +1 -1
  2. package/dist/cjs/DindEngine.js.map +1 -1
  3. package/dist/cjs/DockerEngine.js +1 -1
  4. package/dist/cjs/DockerEngine.js.map +1 -1
  5. package/dist/cjs/MobyConnection.js.map +1 -1
  6. package/dist/cjs/MobyDemux.js +301 -66
  7. package/dist/cjs/MobyDemux.js.map +1 -1
  8. package/dist/cjs/MobyPlatforms.js +3 -3
  9. package/dist/cjs/MobyPlatforms.js.map +1 -1
  10. package/dist/cjs/internal/convey/sinks.js.map +1 -1
  11. package/dist/cjs/internal/demux/compressed.js +1 -4
  12. package/dist/cjs/internal/demux/compressed.js.map +1 -1
  13. package/dist/cjs/internal/demux/demux.js.map +1 -1
  14. package/dist/cjs/internal/demux/fan.js +1 -4
  15. package/dist/cjs/internal/demux/fan.js.map +1 -1
  16. package/dist/cjs/internal/demux/hijack.js +4 -44
  17. package/dist/cjs/internal/demux/hijack.js.map +1 -1
  18. package/dist/cjs/internal/demux/multiplexed.js +22 -97
  19. package/dist/cjs/internal/demux/multiplexed.js.map +1 -1
  20. package/dist/cjs/internal/demux/pack.js +1 -4
  21. package/dist/cjs/internal/demux/pack.js.map +1 -1
  22. package/dist/cjs/internal/demux/raw.js +27 -115
  23. package/dist/cjs/internal/demux/raw.js.map +1 -1
  24. package/dist/cjs/internal/demux/stdio.js +2 -30
  25. package/dist/cjs/internal/demux/stdio.js.map +1 -1
  26. package/dist/cjs/internal/endpoints/configs.js.map +1 -1
  27. package/dist/cjs/internal/endpoints/containers.js +3 -4
  28. package/dist/cjs/internal/endpoints/containers.js.map +1 -1
  29. package/dist/cjs/internal/endpoints/distribution.js.map +1 -1
  30. package/dist/cjs/internal/endpoints/execs.js +2 -2
  31. package/dist/cjs/internal/endpoints/execs.js.map +1 -1
  32. package/dist/cjs/internal/endpoints/images.js.map +1 -1
  33. package/dist/cjs/internal/endpoints/networks.js.map +1 -1
  34. package/dist/cjs/internal/endpoints/nodes.js.map +1 -1
  35. package/dist/cjs/internal/endpoints/plugins.js.map +1 -1
  36. package/dist/cjs/internal/endpoints/secrets.js.map +1 -1
  37. package/dist/cjs/internal/endpoints/services.js.map +1 -1
  38. package/dist/cjs/internal/endpoints/session.js.map +1 -1
  39. package/dist/cjs/internal/endpoints/swarm.js.map +1 -1
  40. package/dist/cjs/internal/endpoints/system.js.map +1 -1
  41. package/dist/cjs/internal/endpoints/tasks.js.map +1 -1
  42. package/dist/cjs/internal/endpoints/volumes.js.map +1 -1
  43. package/dist/cjs/internal/engines/dind.js.map +1 -1
  44. package/dist/cjs/internal/engines/docker.js +32 -36
  45. package/dist/cjs/internal/engines/docker.js.map +1 -1
  46. package/dist/cjs/internal/engines/dockerCompose.js +1 -1
  47. package/dist/cjs/internal/engines/dockerCompose.js.map +1 -1
  48. package/dist/cjs/internal/platforms/agnostic.js +6 -6
  49. package/dist/cjs/internal/platforms/agnostic.js.map +1 -1
  50. package/dist/cjs/internal/platforms/fetch.js +1 -1
  51. package/dist/cjs/internal/platforms/fetch.js.map +1 -1
  52. package/dist/cjs/internal/platforms/node.js +1 -1
  53. package/dist/cjs/internal/platforms/node.js.map +1 -1
  54. package/dist/cjs/internal/platforms/undici.js +1 -1
  55. package/dist/cjs/internal/platforms/undici.js.map +1 -1
  56. package/dist/cjs/internal/platforms/web.js +1 -1
  57. package/dist/cjs/internal/platforms/web.js.map +1 -1
  58. package/dist/cjs/internal/schemas/cidrBlock.js.map +1 -1
  59. package/dist/dts/Callbacks.d.ts +6 -6
  60. package/dist/dts/Callbacks.d.ts.map +1 -1
  61. package/dist/dts/DindEngine.d.ts +1 -1
  62. package/dist/dts/DindEngine.d.ts.map +1 -1
  63. package/dist/dts/DockerEngine.d.ts +14 -14
  64. package/dist/dts/DockerEngine.d.ts.map +1 -1
  65. package/dist/dts/MobyConnection.d.ts +3 -3
  66. package/dist/dts/MobyConnection.d.ts.map +1 -1
  67. package/dist/dts/MobyDemux.d.ts +631 -12
  68. package/dist/dts/MobyDemux.d.ts.map +1 -1
  69. package/dist/dts/MobyPlatforms.d.ts +3 -5
  70. package/dist/dts/MobyPlatforms.d.ts.map +1 -1
  71. package/dist/dts/Promises.d.ts +3 -3
  72. package/dist/dts/internal/blobs/constants.d.ts +5 -1
  73. package/dist/dts/internal/blobs/constants.d.ts.map +1 -1
  74. package/dist/dts/internal/demux/compressed.d.ts +1 -10
  75. package/dist/dts/internal/demux/compressed.d.ts.map +1 -1
  76. package/dist/dts/internal/demux/demux.d.ts +2 -3
  77. package/dist/dts/internal/demux/demux.d.ts.map +1 -1
  78. package/dist/dts/internal/demux/fan.d.ts +1 -25
  79. package/dist/dts/internal/demux/fan.d.ts.map +1 -1
  80. package/dist/dts/internal/demux/hijack.d.ts +1 -53
  81. package/dist/dts/internal/demux/hijack.d.ts.map +1 -1
  82. package/dist/dts/internal/demux/multiplexed.d.ts +1 -217
  83. package/dist/dts/internal/demux/multiplexed.d.ts.map +1 -1
  84. package/dist/dts/internal/demux/pack.d.ts +1 -16
  85. package/dist/dts/internal/demux/pack.d.ts.map +1 -1
  86. package/dist/dts/internal/demux/raw.d.ts +1 -364
  87. package/dist/dts/internal/demux/raw.d.ts.map +1 -1
  88. package/dist/dts/internal/demux/stdio.d.ts +0 -44
  89. package/dist/dts/internal/demux/stdio.d.ts.map +1 -1
  90. package/dist/dts/internal/endpoints/configs.d.ts +4 -4
  91. package/dist/dts/internal/endpoints/configs.d.ts.map +1 -1
  92. package/dist/dts/internal/endpoints/containers.d.ts +7 -8
  93. package/dist/dts/internal/endpoints/containers.d.ts.map +1 -1
  94. package/dist/dts/internal/endpoints/distribution.d.ts +4 -4
  95. package/dist/dts/internal/endpoints/distribution.d.ts.map +1 -1
  96. package/dist/dts/internal/endpoints/execs.d.ts +7 -8
  97. package/dist/dts/internal/endpoints/execs.d.ts.map +1 -1
  98. package/dist/dts/internal/endpoints/images.d.ts +4 -4
  99. package/dist/dts/internal/endpoints/images.d.ts.map +1 -1
  100. package/dist/dts/internal/endpoints/networks.d.ts +4 -4
  101. package/dist/dts/internal/endpoints/networks.d.ts.map +1 -1
  102. package/dist/dts/internal/endpoints/nodes.d.ts +4 -4
  103. package/dist/dts/internal/endpoints/nodes.d.ts.map +1 -1
  104. package/dist/dts/internal/endpoints/plugins.d.ts +5 -5
  105. package/dist/dts/internal/endpoints/plugins.d.ts.map +1 -1
  106. package/dist/dts/internal/endpoints/secrets.d.ts +4 -4
  107. package/dist/dts/internal/endpoints/secrets.d.ts.map +1 -1
  108. package/dist/dts/internal/endpoints/services.d.ts +4 -4
  109. package/dist/dts/internal/endpoints/services.d.ts.map +1 -1
  110. package/dist/dts/internal/endpoints/session.d.ts +3 -3
  111. package/dist/dts/internal/endpoints/session.d.ts.map +1 -1
  112. package/dist/dts/internal/endpoints/swarm.d.ts +4 -4
  113. package/dist/dts/internal/endpoints/swarm.d.ts.map +1 -1
  114. package/dist/dts/internal/endpoints/system.d.ts +4 -4
  115. package/dist/dts/internal/endpoints/system.d.ts.map +1 -1
  116. package/dist/dts/internal/endpoints/tasks.d.ts +3 -3
  117. package/dist/dts/internal/endpoints/tasks.d.ts.map +1 -1
  118. package/dist/dts/internal/endpoints/volumes.d.ts +4 -4
  119. package/dist/dts/internal/endpoints/volumes.d.ts.map +1 -1
  120. package/dist/dts/internal/generated/ContainerCreateRequest.generated.d.ts +3 -3
  121. package/dist/dts/internal/generated/ContainerHostConfig.generated.d.ts +3 -3
  122. package/dist/dts/internal/generated/ContainerPathStat.generated.d.ts +2 -2
  123. package/dist/dts/internal/generated/PluginPrivilege.generated.d.ts +2 -2
  124. package/dist/dts/internal/generated/SystemRuntimeWithStatus.generated.d.ts +2 -2
  125. package/dist/dts/internal/schemas/cidrBlock.d.ts +2 -2
  126. package/dist/dts/internal/schemas/cidrBlock.d.ts.map +1 -1
  127. package/dist/esm/Callbacks.js.map +1 -1
  128. package/dist/esm/DindEngine.js.map +1 -1
  129. package/dist/esm/DockerEngine.js +1 -1
  130. package/dist/esm/DockerEngine.js.map +1 -1
  131. package/dist/esm/MobyConnection.js.map +1 -1
  132. package/dist/esm/MobyDemux.js +292 -12
  133. package/dist/esm/MobyDemux.js.map +1 -1
  134. package/dist/esm/MobyPlatforms.js +2 -3
  135. package/dist/esm/MobyPlatforms.js.map +1 -1
  136. package/dist/esm/internal/convey/sinks.js.map +1 -1
  137. package/dist/esm/internal/demux/compressed.js +1 -4
  138. package/dist/esm/internal/demux/compressed.js.map +1 -1
  139. package/dist/esm/internal/demux/demux.js.map +1 -1
  140. package/dist/esm/internal/demux/fan.js +1 -4
  141. package/dist/esm/internal/demux/fan.js.map +1 -1
  142. package/dist/esm/internal/demux/hijack.js +4 -44
  143. package/dist/esm/internal/demux/hijack.js.map +1 -1
  144. package/dist/esm/internal/demux/multiplexed.js +22 -97
  145. package/dist/esm/internal/demux/multiplexed.js.map +1 -1
  146. package/dist/esm/internal/demux/pack.js +1 -4
  147. package/dist/esm/internal/demux/pack.js.map +1 -1
  148. package/dist/esm/internal/demux/raw.js +24 -112
  149. package/dist/esm/internal/demux/raw.js.map +1 -1
  150. package/dist/esm/internal/demux/stdio.js +2 -30
  151. package/dist/esm/internal/demux/stdio.js.map +1 -1
  152. package/dist/esm/internal/endpoints/configs.js.map +1 -1
  153. package/dist/esm/internal/endpoints/containers.js +3 -4
  154. package/dist/esm/internal/endpoints/containers.js.map +1 -1
  155. package/dist/esm/internal/endpoints/distribution.js.map +1 -1
  156. package/dist/esm/internal/endpoints/execs.js +2 -2
  157. package/dist/esm/internal/endpoints/execs.js.map +1 -1
  158. package/dist/esm/internal/endpoints/images.js.map +1 -1
  159. package/dist/esm/internal/endpoints/networks.js.map +1 -1
  160. package/dist/esm/internal/endpoints/nodes.js.map +1 -1
  161. package/dist/esm/internal/endpoints/plugins.js.map +1 -1
  162. package/dist/esm/internal/endpoints/secrets.js.map +1 -1
  163. package/dist/esm/internal/endpoints/services.js.map +1 -1
  164. package/dist/esm/internal/endpoints/session.js.map +1 -1
  165. package/dist/esm/internal/endpoints/swarm.js.map +1 -1
  166. package/dist/esm/internal/endpoints/system.js.map +1 -1
  167. package/dist/esm/internal/endpoints/tasks.js.map +1 -1
  168. package/dist/esm/internal/endpoints/volumes.js.map +1 -1
  169. package/dist/esm/internal/engines/dind.js.map +1 -1
  170. package/dist/esm/internal/engines/docker.js +32 -36
  171. package/dist/esm/internal/engines/docker.js.map +1 -1
  172. package/dist/esm/internal/engines/dockerCompose.js +1 -1
  173. package/dist/esm/internal/engines/dockerCompose.js.map +1 -1
  174. package/dist/esm/internal/platforms/agnostic.js +3 -3
  175. package/dist/esm/internal/platforms/agnostic.js.map +1 -1
  176. package/dist/esm/internal/platforms/fetch.js +1 -1
  177. package/dist/esm/internal/platforms/fetch.js.map +1 -1
  178. package/dist/esm/internal/platforms/needs.js +1 -0
  179. package/dist/esm/internal/platforms/needs.js.map +1 -1
  180. package/dist/esm/internal/platforms/node.js +1 -1
  181. package/dist/esm/internal/platforms/node.js.map +1 -1
  182. package/dist/esm/internal/platforms/undici.js +1 -1
  183. package/dist/esm/internal/platforms/undici.js.map +1 -1
  184. package/dist/esm/internal/platforms/web.js +1 -1
  185. package/dist/esm/internal/platforms/web.js.map +1 -1
  186. package/dist/esm/internal/schemas/cidrBlock.js.map +1 -1
  187. package/package.json +23 -12
  188. package/src/Callbacks.ts +4 -4
  189. package/src/DindEngine.ts +1 -2
  190. package/src/DockerEngine.ts +25 -27
  191. package/src/MobyConnection.ts +3 -4
  192. package/src/MobyDemux.ts +749 -12
  193. package/src/MobyPlatforms.ts +11 -5
  194. package/src/internal/blobs/constants.ts +4 -1
  195. package/src/internal/convey/sinks.ts +1 -2
  196. package/src/internal/demux/compressed.ts +6 -19
  197. package/src/internal/demux/demux.ts +6 -10
  198. package/src/internal/demux/fan.ts +16 -25
  199. package/src/internal/demux/hijack.ts +11 -50
  200. package/src/internal/demux/multiplexed.ts +55 -205
  201. package/src/internal/demux/pack.ts +9 -16
  202. package/src/internal/demux/raw.ts +66 -336
  203. package/src/internal/demux/stdio.ts +7 -39
  204. package/src/internal/endpoints/configs.ts +5 -4
  205. package/src/internal/endpoints/containers.ts +10 -11
  206. package/src/internal/endpoints/distribution.ts +5 -4
  207. package/src/internal/endpoints/execs.ts +18 -11
  208. package/src/internal/endpoints/images.ts +5 -4
  209. package/src/internal/endpoints/networks.ts +5 -4
  210. package/src/internal/endpoints/nodes.ts +5 -4
  211. package/src/internal/endpoints/plugins.ts +6 -5
  212. package/src/internal/endpoints/secrets.ts +5 -4
  213. package/src/internal/endpoints/services.ts +5 -4
  214. package/src/internal/endpoints/session.ts +4 -3
  215. package/src/internal/endpoints/swarm.ts +5 -4
  216. package/src/internal/endpoints/system.ts +5 -4
  217. package/src/internal/endpoints/tasks.ts +4 -3
  218. package/src/internal/endpoints/volumes.ts +5 -4
  219. package/src/internal/engines/dind.ts +3 -4
  220. package/src/internal/engines/docker.ts +23 -32
  221. package/src/internal/engines/dockerCompose.ts +2 -2
  222. package/src/internal/platforms/agnostic.ts +3 -3
  223. package/src/internal/platforms/fetch.ts +1 -1
  224. package/src/internal/platforms/needs.ts +2 -0
  225. package/src/internal/platforms/node.ts +1 -1
  226. package/src/internal/platforms/undici.ts +1 -1
  227. package/src/internal/platforms/web.ts +1 -1
  228. package/src/internal/schemas/cidrBlock.ts +2 -1
@@ -6,9 +6,9 @@
6
6
 
7
7
  import type * as HttpClient from "@effect/platform/HttpClient";
8
8
  import type * as Socket from "@effect/platform/Socket";
9
- import type * as Layer from "effect/Layer";
9
+ import type * as MobyConnection from "./MobyConnection.js";
10
10
 
11
- import * as MobyConnection from "./MobyConnection.js";
11
+ import * as Layer from "effect/Layer";
12
12
  import * as internalAgnostic from "./internal/platforms/agnostic.js";
13
13
  import * as internalBun from "./internal/platforms/bun.js";
14
14
  import * as internalDeno from "./internal/platforms/deno.js";
@@ -26,7 +26,15 @@ import * as internalWeb from "./internal/platforms/web.js";
26
26
  */
27
27
  export const makeAgnosticHttpClientLayer: (
28
28
  connectionOptions: MobyConnection.MobyConnectionOptions
29
- ) => Layer.Layer<HttpClient.HttpClient, never, HttpClient.HttpClient> = internalAgnostic.makeAgnosticHttpClientLayer;
29
+ ) => Layer.Layer<
30
+ HttpClient.HttpClient | Socket.WebSocketConstructor,
31
+ never,
32
+ HttpClient.HttpClient | Socket.WebSocketConstructor
33
+ > = (connectionOptions) =>
34
+ Layer.merge(
35
+ Layer.context<Socket.WebSocketConstructor>(),
36
+ internalAgnostic.makeAgnosticHttpClientLayer(connectionOptions)
37
+ );
30
38
 
31
39
  /**
32
40
  * Given the moby connection options, it will construct a layer that provides a
@@ -52,8 +60,6 @@ export const makeBunHttpClientLayer: (
52
60
  *
53
61
  * FIXME: https://github.com/denoland/deno/issues/21436?
54
62
  *
55
- * Will fallback to using undici for now because that seems to work
56
- *
57
63
  * @since 1.0.0
58
64
  * @category Deno
59
65
  */
@@ -1,7 +1,10 @@
1
1
  /** @internal */
2
2
  export const DefaultDindBaseImage: RecommendedDindBaseImages = "docker.io/library/docker:dind-rootless" as const;
3
3
 
4
- /** @internal */
4
+ /**
5
+ * @since 1.0.0
6
+ * @category Types
7
+ */
5
8
  export type RecommendedDindBaseImages =
6
9
  | "docker.io/library/docker:dind-rootless"
7
10
  | "docker.io/library/docker:23-dind-rootless"
@@ -1,5 +1,6 @@
1
1
  import type * as Chunk from "effect/Chunk";
2
2
  import type * as Scope from "effect/Scope";
3
+ import type { JSONMessage } from "../generated/JSONMessage.generated.js";
3
4
 
4
5
  import * as Console from "effect/Console";
5
6
  import * as Effect from "effect/Effect";
@@ -8,8 +9,6 @@ import * as Predicate from "effect/Predicate";
8
9
  import * as Sink from "effect/Sink";
9
10
  import * as Stream from "effect/Stream";
10
11
 
11
- import { JSONMessage } from "../generated/JSONMessage.generated.js";
12
-
13
12
  /** @internal */
14
13
  export const waitForProgressToComplete = <E1, R1>(
15
14
  stream: Stream.Stream<JSONMessage, E1, R1>
@@ -1,24 +1,11 @@
1
- import * as Predicate from "effect/Predicate";
1
+ import type * as MobyDemux from "../../MobyDemux.js";
2
2
 
3
- /**
4
- * @since 1.0.0
5
- * @category Types
6
- */
7
- export type CompressedDemuxOutput<A1, A2> = A1 extends undefined | void
8
- ? A2 extends undefined | void
9
- ? void
10
- : readonly [stdout: undefined, stderr: A2]
11
- : A2 extends undefined | void
12
- ? readonly [stdout: A1, stderr: undefined]
13
- : readonly [stdout: A1, stderr: A2];
3
+ import * as Predicate from "effect/Predicate";
14
4
 
15
- /**
16
- * @since 1.0.0
17
- * @category Demux Helpers
18
- */
5
+ /** @internal */
19
6
  export const compressDemuxOutput = <A1, A2>(
20
7
  data: readonly [ranStdout: A1, ranStderr: A2]
21
- ): CompressedDemuxOutput<A1, A2> =>
8
+ ): MobyDemux.CompressedDemuxOutput<A1, A2> =>
22
9
  Predicate.isUndefined(data[0]) && Predicate.isUndefined(data[1])
23
- ? (void undefined as CompressedDemuxOutput<A1, A2>)
24
- : (data as CompressedDemuxOutput<A1, A2>);
10
+ ? (void undefined as MobyDemux.CompressedDemuxOutput<A1, A2>)
11
+ : (data as MobyDemux.CompressedDemuxOutput<A1, A2>);
@@ -3,18 +3,14 @@ import type * as Effect from "effect/Effect";
3
3
  import type * as ParseResult from "effect/ParseResult";
4
4
  import type * as Scope from "effect/Scope";
5
5
  import type * as Stream from "effect/Stream";
6
+ import type * as MobyDemux from "../../MobyDemux.js";
6
7
 
7
8
  import * as Function from "effect/Function";
8
9
  import * as Sink from "effect/Sink";
9
10
  import * as Tuple from "effect/Tuple";
10
11
 
11
- import {
12
- demuxMultiplexedToSingleSink,
13
- EitherMultiplexedInput,
14
- isMultiplexedChannel,
15
- isMultiplexedSocket,
16
- } from "./multiplexed.js";
17
- import { demuxRawToSingleSink, EitherRawInput, isRawChannel, isRawSocket } from "./raw.js";
12
+ import { demuxMultiplexedToSingleSink, isMultiplexedChannel, isMultiplexedSocket } from "./multiplexed.js";
13
+ import { demuxRawToSingleSink, isRawChannel, isRawSocket } from "./raw.js";
18
14
 
19
15
  /**
20
16
  * Demux either a raw socket or a multiplexed socket to a single sink.
@@ -29,7 +25,7 @@ export const demuxToSingleSink = Function.dual<
29
25
  sink: Sink.Sink<A1, string, L1, E2, R2>,
30
26
  options?: { encoding?: string | undefined } | undefined
31
27
  ) => <IE = never, OE = Socket.SocketError, R3 = never>(
32
- sockets: EitherRawInput<E1 | IE, OE, R3> | EitherMultiplexedInput<E1 | IE, OE, R3>
28
+ sockets: MobyDemux.EitherRawInput<E1 | IE, OE, R3> | MobyDemux.EitherMultiplexedInput<E1 | IE, OE, R3>
33
29
  ) => Effect.Effect<
34
30
  A1,
35
31
  E1 | E2 | IE | OE | ParseResult.ParseError,
@@ -37,7 +33,7 @@ export const demuxToSingleSink = Function.dual<
37
33
  >,
38
34
  // Data-first signature.
39
35
  <A1, L1, E1, E2, R1, R2, IE = never, OE = Socket.SocketError, R3 = never>(
40
- sockets: EitherRawInput<E1 | IE, OE, R3> | EitherMultiplexedInput<E1 | IE, OE, R3>,
36
+ sockets: MobyDemux.EitherRawInput<E1 | IE, OE, R3> | MobyDemux.EitherMultiplexedInput<E1 | IE, OE, R3>,
41
37
  source: Stream.Stream<string | Uint8Array, E1, R1>,
42
38
  sink: Sink.Sink<A1, string, L1, E2, R2>,
43
39
  options?: { encoding?: string | undefined } | undefined
@@ -59,7 +55,7 @@ export const demuxToSingleSink = Function.dual<
59
55
 
60
56
  // Implementation, need the type parameters for checking the underlying.
61
57
  <A1, L1, E1, E2, R1, R2, IE = never, OE = Socket.SocketError, R3 = never>(
62
- socketOptions: EitherRawInput<E1 | IE, OE, R3> | EitherMultiplexedInput<E1 | IE, OE, R3>,
58
+ socketOptions: MobyDemux.EitherRawInput<E1 | IE, OE, R3> | MobyDemux.EitherMultiplexedInput<E1 | IE, OE, R3>,
63
59
  source: Stream.Stream<string | Uint8Array, E1, R1>,
64
60
  sink: Sink.Sink<A1, string, L1, E2, R2>,
65
61
  options?: { encoding?: string | undefined } | undefined
@@ -2,6 +2,7 @@ import type * as Socket from "@effect/platform/Socket";
2
2
  import type * as Chunk from "effect/Chunk";
3
3
  import type * as ParseResult from "effect/ParseResult";
4
4
  import type * as Scope from "effect/Scope";
5
+ import type * as MobyDemux from "../../MobyDemux.js";
5
6
 
6
7
  import * as Channel from "effect/Channel";
7
8
  import * as Effect from "effect/Effect";
@@ -13,41 +14,31 @@ import * as Queue from "effect/Queue";
13
14
  import * as Sink from "effect/Sink";
14
15
  import * as Stream from "effect/Stream";
15
16
 
16
- import {
17
- demuxMultiplexedToSeparateSinks,
18
- EitherMultiplexedInput,
19
- isMultiplexedChannel,
20
- isMultiplexedSocket,
21
- MultiplexedChannel,
22
- MultiplexedSocket,
23
- } from "./multiplexed.js";
24
- import { makeRawChannel, RawChannel, rawFromStreamWith } from "./raw.js";
17
+ import { demuxMultiplexedToSeparateSinks, isMultiplexedChannel, isMultiplexedSocket } from "./multiplexed.js";
18
+ import { makeRawChannel, rawFromStreamWith } from "./raw.js";
25
19
 
26
- /**
27
- * @since 1.0.0
28
- * @category Fanning
29
- */
20
+ /** @internal */
30
21
  export const fan = Function.dual<
31
22
  <IE = never, OE = Socket.SocketError, R = never>(options: {
32
23
  requestedCapacity: number;
33
24
  encoding?: string | undefined;
34
- }) => (multiplexedInput: EitherMultiplexedInput<IE, OE, R>) => Effect.Effect<
25
+ }) => (multiplexedInput: MobyDemux.EitherMultiplexedInput<IE, OE, R>) => Effect.Effect<
35
26
  {
36
- stdin: RawChannel<IE, OE | ParseResult.ParseError, never>;
37
- stdout: RawChannel<IE, OE | ParseResult.ParseError, never>;
38
- stderr: RawChannel<IE, OE | ParseResult.ParseError, never>;
27
+ stdin: MobyDemux.RawChannel<IE, IE | OE | ParseResult.ParseError, never>;
28
+ stdout: MobyDemux.RawChannel<IE, IE | OE | ParseResult.ParseError, never>;
29
+ stderr: MobyDemux.RawChannel<IE, IE | OE | ParseResult.ParseError, never>;
39
30
  },
40
31
  never,
41
32
  Exclude<R, Scope.Scope>
42
33
  >,
43
34
  <IE = never, OE = Socket.SocketError, R = never>(
44
- multiplexedInput: EitherMultiplexedInput<IE, OE, R>,
35
+ multiplexedInput: MobyDemux.EitherMultiplexedInput<IE, OE, R>,
45
36
  options: { requestedCapacity: number; encoding?: string | undefined }
46
37
  ) => Effect.Effect<
47
38
  {
48
- stdin: RawChannel<IE, OE | ParseResult.ParseError, never>;
49
- stdout: RawChannel<IE, OE | ParseResult.ParseError, never>;
50
- stderr: RawChannel<IE, OE | ParseResult.ParseError, never>;
39
+ stdin: MobyDemux.RawChannel<IE, IE | OE | ParseResult.ParseError, never>;
40
+ stdout: MobyDemux.RawChannel<IE, IE | OE | ParseResult.ParseError, never>;
41
+ stderr: MobyDemux.RawChannel<IE, IE | OE | ParseResult.ParseError, never>;
51
42
  },
52
43
  never,
53
44
  Exclude<R, Scope.Scope>
@@ -55,7 +46,7 @@ export const fan = Function.dual<
55
46
  >(
56
47
  (arguments_) => isMultiplexedChannel(arguments_[0]) || isMultiplexedSocket(arguments_[0]),
57
48
  Effect.fnUntraced(function* <IE = never, OE = Socket.SocketError, R = never>(
58
- multiplexedInput: MultiplexedSocket | MultiplexedChannel<IE, OE, R>,
49
+ multiplexedInput: MobyDemux.EitherMultiplexedInput<IE, OE, R>,
59
50
  options: { requestedCapacity: number; encoding?: string | undefined }
60
51
  ) {
61
52
  const mutex = yield* Effect.makeSemaphore(1);
@@ -106,7 +97,7 @@ export const fan = Function.dual<
106
97
  const independentStdinChannel = Channel.toQueue(stdinProducerQueue)
107
98
  .pipe(Channel.mapInput(Function.constVoid))
108
99
  .pipe(Channel.zipLeft(motherChannel, { concurrent: true }))
109
- .pipe(makeRawChannel<IE, OE | ParseResult.ParseError, never>);
100
+ .pipe(makeRawChannel<IE, IE | OE | ParseResult.ParseError, never>);
110
101
 
111
102
  // Any one of these will kick off the mother demux, but only one will
112
103
  const independentStdoutChannel = Stream.fromQueue(stdoutConsumerQueue)
@@ -114,7 +105,7 @@ export const fan = Function.dual<
114
105
  .pipe(rawFromStreamWith<IE>())
115
106
  .pipe(({ underlying }) => underlying)
116
107
  .pipe(Channel.zipLeft(motherChannel, { concurrent: true }))
117
- .pipe(makeRawChannel<IE, OE | ParseResult.ParseError, never>);
108
+ .pipe(makeRawChannel<IE, IE | OE | ParseResult.ParseError, never>);
118
109
 
119
110
  // Any one of these will kick off the mother demux, but only one will
120
111
  const independentStderrChannel = Stream.fromQueue(stderrConsumerQueue)
@@ -122,7 +113,7 @@ export const fan = Function.dual<
122
113
  .pipe(rawFromStreamWith<IE>())
123
114
  .pipe(({ underlying }) => underlying)
124
115
  .pipe(Channel.zipLeft(motherChannel, { concurrent: true }))
125
- .pipe(makeRawChannel<IE, OE | ParseResult.ParseError, never>);
116
+ .pipe(makeRawChannel<IE, IE | OE | ParseResult.ParseError, never>);
126
117
 
127
118
  return {
128
119
  stdin: independentStdinChannel,
@@ -1,22 +1,14 @@
1
1
  import type * as HttpClientResponse from "@effect/platform/HttpClientResponse";
2
+ import type * as MobyDemux from "../../MobyDemux.js";
3
+ import type { IExposeSocketOnEffectClientResponseHack } from "../platforms/node.js";
2
4
 
3
5
  import * as Socket from "@effect/platform/Socket";
4
6
  import * as Effect from "effect/Effect";
5
7
 
6
- import { IExposeSocketOnEffectClientResponseHack } from "../platforms/node.js";
7
- import { makeMultiplexedSocket, MultiplexedSocket, responseIsMultiplexedResponse } from "./multiplexed.js";
8
- import { makeRawSocket, RawSocket, responseIsRawResponse } from "./raw.js";
8
+ import { makeMultiplexedSocket, responseIsMultiplexedResponse } from "./multiplexed.js";
9
+ import { makeRawSocket, responseIsRawResponse } from "./raw.js";
9
10
 
10
- /**
11
- * Hijacks an http response into a socket.
12
- *
13
- * FIXME: this function relies on a hack to expose the underlying tcp socket
14
- * from the http client response. This will only work in NodeJs, not tested in
15
- * Bun/Deno yet, and will never work in the browser.
16
- *
17
- * @since 1.0.0
18
- * @category Transformations
19
- */
11
+ /** @internal */
20
12
  export const hijackResponseUnsafe = (
21
13
  response: HttpClientResponse.HttpClientResponse
22
14
  ): Effect.Effect<Socket.Socket, Socket.SocketError, never> =>
@@ -28,20 +20,10 @@ export const hijackResponseUnsafe = (
28
20
  }
29
21
  );
30
22
 
31
- /**
32
- * Transforms an http response into a multiplexed stream socket. If the response
33
- * is not a multiplexed stream socket, then an error will be returned.
34
- *
35
- * FIXME: this function relies on a hack to expose the underlying tcp socket
36
- * from the http client response. This will only work in NodeJs, not tested in
37
- * Bun/Deno yet, and will never work in the browser.
38
- *
39
- * @since 1.0.0
40
- * @category Predicates
41
- */
23
+ /** @internal */
42
24
  export const responseToMultiplexedStreamSocketOrFailUnsafe = (
43
25
  response: HttpClientResponse.HttpClientResponse
44
- ): Effect.Effect<MultiplexedSocket, Socket.SocketError, never> => {
26
+ ): Effect.Effect<MobyDemux.MultiplexedSocket, Socket.SocketError, never> => {
45
27
  if (!responseIsMultiplexedResponse(response)) {
46
28
  return Effect.fail(
47
29
  new Socket.SocketGenericError({
@@ -54,20 +36,10 @@ export const responseToMultiplexedStreamSocketOrFailUnsafe = (
54
36
  return Effect.map(hijackResponseUnsafe(response), makeMultiplexedSocket);
55
37
  };
56
38
 
57
- /**
58
- * Transforms an http response into a raw stream socket. If the response is not
59
- * a raw stream socket, then an error will be returned.
60
- *
61
- * FIXME: this function relies on a hack to expose the underlying tcp socket
62
- * from the http client response. This will only work in NodeJs, not tested in
63
- * Bun/Deno yet, and will never work in the browser.
64
- *
65
- * @since 1.0.0
66
- * @category Predicates
67
- */
39
+ /** @internal */
68
40
  export const responseToRawStreamSocketOrFailUnsafe = (
69
41
  response: HttpClientResponse.HttpClientResponse
70
- ): Effect.Effect<RawSocket, Socket.SocketError, never> => {
42
+ ): Effect.Effect<MobyDemux.RawSocket, Socket.SocketError, never> => {
71
43
  if (!responseIsRawResponse(response)) {
72
44
  return Effect.fail(
73
45
  new Socket.SocketGenericError({
@@ -80,21 +52,10 @@ export const responseToRawStreamSocketOrFailUnsafe = (
80
52
  return Effect.map(hijackResponseUnsafe(response), makeRawSocket);
81
53
  };
82
54
 
83
- /**
84
- * Transforms an http response into a multiplexed stream socket or a raw stream
85
- * socket. If the response is neither a multiplexed stream socket nor a raw or
86
- * can not be transformed, then an error will be returned.
87
- *
88
- * FIXME: this function relies on a hack to expose the underlying tcp socket
89
- * from the http client response. This will only work in NodeJs, not tested in
90
- * Bun/Deno yet, and will never work in the browser.
91
- *
92
- * @since 1.0.0
93
- * @category Predicates
94
- */
55
+ /** @internal */
95
56
  export const responseToStreamingSocketOrFailUnsafe = (
96
57
  response: HttpClientResponse.HttpClientResponse
97
- ): Effect.Effect<RawSocket | MultiplexedSocket, Socket.SocketError, never> => {
58
+ ): Effect.Effect<MobyDemux.RawSocket | MobyDemux.MultiplexedSocket, Socket.SocketError, never> => {
98
59
  if (responseIsMultiplexedResponse(response)) {
99
60
  return responseToMultiplexedStreamSocketOrFailUnsafe(response);
100
61
  }