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
@@ -1,6 +1,7 @@
1
1
  import type * as HttpClientResponse from "@effect/platform/HttpClientResponse";
2
2
  import type * as ParseResult from "effect/ParseResult";
3
3
  import type * as Scope from "effect/Scope";
4
+ import type * as MobyDemux from "../../MobyDemux.js";
4
5
 
5
6
  import * as Socket from "@effect/platform/Socket";
6
7
  import * as Channel from "effect/Channel";
@@ -15,179 +16,72 @@ import * as Schema from "effect/Schema";
15
16
  import * as Sink from "effect/Sink";
16
17
  import * as Stream from "effect/Stream";
17
18
  import * as Tuple from "effect/Tuple";
19
+ import * as internalCompressed from "./compressed.js";
18
20
 
19
- import { compressDemuxOutput, CompressedDemuxOutput } from "./compressed.js";
20
-
21
- /**
22
- * @since 1.0.0
23
- * @category Types
24
- */
21
+ /** @internal */
25
22
  export const MultiplexedContentType = "application/vnd.docker.multiplexed-stream" as const;
26
23
 
27
- /**
28
- * @since 1.0.0
29
- * @category Type ids
30
- */
31
- export const MultiplexedSocketTypeId: unique symbol = Symbol.for(
24
+ /** @internal */
25
+ export const MultiplexedSocketTypeId: MobyDemux.MultiplexedSocketTypeId = Symbol.for(
32
26
  "the-moby-effect/demux/MultiplexedSocket"
33
- ) as MultiplexedSocketTypeId;
34
-
35
- /**
36
- * @since 1.0.0
37
- * @category Type ids
38
- */
39
- export type MultiplexedSocketTypeId = typeof MultiplexedSocketTypeId;
27
+ ) as MobyDemux.MultiplexedSocketTypeId;
40
28
 
41
- /**
42
- * @since 1.0.0
43
- * @category Type ids
44
- */
45
- export const MultiplexedChannelTypeId: unique symbol = Symbol.for(
29
+ /** @internal */
30
+ export const MultiplexedChannelTypeId: MobyDemux.MultiplexedChannelTypeId = Symbol.for(
46
31
  "the-moby-effect/demux/MultiplexedChannel"
47
- ) as MultiplexedChannelTypeId;
48
-
49
- /**
50
- * @since 1.0.0
51
- * @category Type ids
52
- */
53
- export type MultiplexedChannelTypeId = typeof MultiplexedChannelTypeId;
54
-
55
- /**
56
- * When the TTY setting is disabled in POST /containers/create, the HTTP
57
- * Content-Type header is set to application/vnd.docker.multiplexed-stream and
58
- * the stream over the hijacked connected is multiplexed to separate out stdout
59
- * and stderr. The stream consists of a series of frames, each containing a
60
- * header and a payload.
61
- *
62
- * Note for Leo: This exists because the input error type "IE" might not be
63
- * known at the time of converting the Socket to a Channel.
64
- *
65
- * @since 1.0.0
66
- * @category Branded Types
67
- */
68
- export interface MultiplexedSocket extends Pipeable.Pipeable {
69
- readonly "content-type": typeof MultiplexedContentType;
70
- readonly [MultiplexedSocketTypeId]: MultiplexedSocketTypeId;
71
- readonly underlying: Socket.Socket;
72
- }
73
-
74
- /**
75
- * When the TTY setting is disabled in POST /containers/create, the HTTP
76
- * Content-Type header is set to application/vnd.docker.multiplexed-stream and
77
- * the stream over the hijacked connected is multiplexed to separate out stdout
78
- * and stderr. The stream consists of a series of frames, each containing a
79
- * header and a payload.
80
- *
81
- * Note for Leo: This exists because there is no way to convert from a Channel
82
- * to a Socket. In fact, with my current effect knowledge, I believe it is
83
- * impossible to implement. This is still needed though for the pack and fan
84
- * implementations which seek to return these types.
85
- *
86
- * @since 1.0.0
87
- * @category Branded Types
88
- */
89
- export interface MultiplexedChannel<IE = unknown, OE = Socket.SocketError, R = never> extends Pipeable.Pipeable {
90
- readonly "content-type": typeof MultiplexedContentType;
91
- readonly [MultiplexedChannelTypeId]: MultiplexedChannelTypeId;
92
- readonly underlying: Channel.Channel<
93
- Chunk.Chunk<Uint8Array>,
94
- Chunk.Chunk<string | Uint8Array | Socket.CloseEvent>,
95
- IE | OE,
96
- IE,
97
- void,
98
- unknown,
99
- R
100
- >;
101
- }
102
-
103
- /**
104
- * @since 1.0.0
105
- * @category Types
106
- */
107
- export type EitherMultiplexedInput<IE, OE, R> = MultiplexedSocket | MultiplexedChannel<IE, OE, R>;
32
+ ) as MobyDemux.MultiplexedChannelTypeId;
108
33
 
109
- /**
110
- * @since 1.0.0
111
- * @category Types
112
- */
113
- /* eslint-disable @typescript-eslint/no-explicit-any */
114
- export type AnyMultiplexedInput = EitherMultiplexedInput<any, any, any>;
115
- /* eslint-enable @typescript-eslint/no-explicit-any */
116
-
117
- /**
118
- * @since 1.0.0
119
- * @category Constructors
120
- */
121
- export const makeMultiplexedSocket = (underlying: Socket.Socket): MultiplexedSocket => ({
34
+ /** @internal */
35
+ export const makeMultiplexedSocket = (underlying: Socket.Socket): MobyDemux.MultiplexedSocket => ({
122
36
  underlying,
123
37
  "content-type": MultiplexedContentType,
124
38
  [MultiplexedSocketTypeId]: MultiplexedSocketTypeId,
125
39
  pipe() {
126
- // eslint-disable-next-line prefer-rest-params
127
40
  return Pipeable.pipeArguments(this, arguments);
128
41
  },
129
42
  });
130
43
 
131
- /**
132
- * @since 1.0.0
133
- * @category Constructors
134
- */
44
+ /** @internal */
135
45
  export const makeMultiplexedChannel = <IE = unknown, OE = Socket.SocketError, R = never>(
136
46
  underlying: Channel.Channel<
137
47
  Chunk.Chunk<Uint8Array>,
138
48
  Chunk.Chunk<string | Uint8Array | Socket.CloseEvent>,
139
- IE | OE,
49
+ OE,
140
50
  IE,
141
51
  void,
142
52
  unknown,
143
53
  R
144
54
  >
145
- ): MultiplexedChannel<IE, OE, R> => ({
55
+ ): MobyDemux.MultiplexedChannel<IE, IE | OE, R> => ({
146
56
  underlying,
147
57
  "content-type": MultiplexedContentType,
148
58
  [MultiplexedChannelTypeId]: MultiplexedChannelTypeId,
149
59
  pipe() {
150
- // eslint-disable-next-line prefer-rest-params
151
60
  return Pipeable.pipeArguments(this, arguments);
152
61
  },
153
62
  });
154
63
 
155
- /**
156
- * @since 1.0.0
157
- * @category Predicates
158
- */
159
- export const isMultiplexedSocket = (u: unknown): u is MultiplexedSocket =>
64
+ /** @internal */
65
+ export const isMultiplexedSocket = (u: unknown): u is MobyDemux.MultiplexedSocket =>
160
66
  Predicate.hasProperty(u, MultiplexedSocketTypeId);
161
67
 
162
- /**
163
- * @since 1.0.0
164
- * @category Predicates
165
- */
68
+ /** @internal */
166
69
  export const isMultiplexedChannel = <IE = unknown, OE = Socket.SocketError, R = never>(
167
70
  u: unknown
168
- ): u is MultiplexedChannel<IE, OE, R> => Predicate.hasProperty(u, MultiplexedChannelTypeId);
71
+ ): u is MobyDemux.MultiplexedChannel<IE, IE | OE, R> => Predicate.hasProperty(u, MultiplexedChannelTypeId);
169
72
 
170
- /**
171
- * @since 1.0.0
172
- * @category Predicates
173
- */
73
+ /** @internal */
174
74
  export const responseIsMultiplexedResponse = (response: HttpClientResponse.HttpClientResponse): boolean =>
175
75
  response.headers["content-type"] === MultiplexedContentType;
176
76
 
177
- /**
178
- * @since 1.0.0
179
- * @category Types
180
- */
77
+ /** @internal */
181
78
  export enum MultiplexedHeaderType {
182
79
  Stdin = 0,
183
80
  Stdout = 1,
184
81
  Stderr = 2,
185
82
  }
186
83
 
187
- /**
188
- * @since 1.0.0
189
- * @category Types
190
- */
84
+ /** @internal */
191
85
  export type MultiplexedAccumulator = {
192
86
  headerBytesRead: number;
193
87
  messageBytesRead: number;
@@ -197,41 +91,33 @@ export type MultiplexedAccumulator = {
197
91
  messageType: number | undefined;
198
92
  };
199
93
 
200
- /**
201
- * @since 1.0.0
202
- * @category Types
203
- */
94
+ /** @internal */
204
95
  export interface $MultiplexedSchema
205
96
  extends Schema.Tuple<
206
97
  [Schema.Enums<typeof MultiplexedHeaderType>, Schema.Schema<Uint8Array, ReadonlyArray<number>, never>]
207
98
  > {}
208
99
 
209
- /**
210
- * @since 1.0.0
211
- * @category Schemas
212
- */
100
+ /** @internal */
213
101
  export const MultiplexedSchema: $MultiplexedSchema = Schema.Tuple(
214
102
  Schema.Enums(MultiplexedHeaderType),
215
103
  Schema.Uint8Array
216
104
  );
217
105
 
218
- /**
219
- * @since 1.0.0
220
- * @category Conversions
221
- */
106
+ /** @internal */
222
107
  export const asMultiplexedChannel = <IE = never, OE = Socket.SocketError, R = never>(
223
- input: EitherMultiplexedInput<IE, OE, R>
224
- ): MultiplexedChannel<IE, OE, R> =>
108
+ input: MobyDemux.EitherMultiplexedInput<IE, OE, R>
109
+ ): MobyDemux.MultiplexedChannel<IE, OE, R> =>
225
110
  isMultiplexedSocket(input)
226
- ? (makeMultiplexedChannel(Socket.toChannel<IE>(input.underlying)) as unknown as MultiplexedChannel<IE, OE, R>)
227
- : (input as MultiplexedChannel<IE, OE, R>);
228
-
229
- /**
230
- * @since 1.0.0
231
- * @category Conversions
232
- */
111
+ ? (makeMultiplexedChannel(Socket.toChannel<IE>(input.underlying)) as unknown as MobyDemux.MultiplexedChannel<
112
+ IE,
113
+ OE,
114
+ R
115
+ >)
116
+ : (input as MobyDemux.MultiplexedChannel<IE, OE, R>);
117
+
118
+ /** @internal */
233
119
  export const multiplexedToStream = <IE = never, OE = Socket.SocketError, R = never>(
234
- input: EitherMultiplexedInput<IE, OE, R>
120
+ input: MobyDemux.EitherMultiplexedInput<IE, OE, R>
235
121
  ): Stream.Stream<Uint8Array, IE | OE, R> =>
236
122
  Channel.toStream(
237
123
  asMultiplexedChannel(input).underlying as Channel.Channel<
@@ -245,46 +131,29 @@ export const multiplexedToStream = <IE = never, OE = Socket.SocketError, R = nev
245
131
  >
246
132
  );
247
133
 
248
- /**
249
- * @since 1.0.0
250
- * @category Conversions
251
- */
134
+ /** @internal */
252
135
  export const multiplexedToSink = <IE = never, OE = Socket.SocketError, R = never>(
253
- input: EitherMultiplexedInput<IE, OE, R>
136
+ input: MobyDemux.EitherMultiplexedInput<IE, OE, R>
254
137
  ): Sink.Sink<void, string | Uint8Array | Socket.CloseEvent, Uint8Array, IE | OE, R> =>
255
138
  Channel.toSink(asMultiplexedChannel(input).underlying);
256
139
 
257
- /**
258
- * @since 1.0.0
259
- * @category Conversions
260
- */
140
+ /** @internal */
261
141
  export const multiplexedFromStreamWith =
262
142
  <IE>() =>
263
- <E, R>(input: Stream.Stream<Uint8Array, IE | E, R>): MultiplexedChannel<IE, E, R> =>
264
- makeMultiplexedChannel<IE, E, R>(Stream.toChannel(input));
143
+ <E, R>(input: Stream.Stream<Uint8Array, IE | E, R>): MobyDemux.MultiplexedChannel<IE, IE | E, R> =>
144
+ makeMultiplexedChannel<IE, IE | E, R>(Stream.toChannel(input));
265
145
 
266
- /**
267
- * @since 1.0.0
268
- * @category Conversions
269
- */
146
+ /** @internal */
270
147
  export const multiplexedFromStream = <E, R>(
271
148
  input: Stream.Stream<Uint8Array, E, R>
272
- ): MultiplexedChannel<unknown, E, R> => multiplexedFromStreamWith<unknown>()(input);
149
+ ): MobyDemux.MultiplexedChannel<never, E, R> => multiplexedFromStreamWith<never>()(input);
273
150
 
274
- /**
275
- * @since 1.0.0
276
- * @category Conversions
277
- */
151
+ /** @internal */
278
152
  export const multiplexedFromSink = <E, R>(
279
153
  input: Sink.Sink<void, string | Uint8Array | Socket.CloseEvent, Uint8Array, E, R>
280
- ): MultiplexedChannel<never, E, R> => makeMultiplexedChannel<never, E, R>(Sink.toChannel(input));
154
+ ): MobyDemux.MultiplexedChannel<never, E, R> => makeMultiplexedChannel<never, E, R>(Sink.toChannel(input));
281
155
 
282
- /**
283
- * Accumulates the header and its message bytes into a single value.
284
- *
285
- * @since 1.0.0
286
- * @category Demux
287
- */
156
+ /** @internal */
288
157
  export const demuxMultiplexedFolderSink: Sink.Sink<MultiplexedAccumulator, number, number, never, never> = Sink.fold(
289
158
  {
290
159
  headerBytesRead: 0,
@@ -327,10 +196,7 @@ export const demuxMultiplexedFolderSink: Sink.Sink<MultiplexedAccumulator, numbe
327
196
  }
328
197
  );
329
198
 
330
- /**
331
- * @since 1.0.0
332
- * @category Grouping
333
- */
199
+ /** @internal */
334
200
  export const aggregate = <E, R>(
335
201
  multiplexedStream: Stream.Stream<Uint8Array, E, R>
336
202
  ): Stream.Stream<readonly [MultiplexedHeaderType, Uint8Array], ParseResult.ParseError | E, R> =>
@@ -342,12 +208,7 @@ export const aggregate = <E, R>(
342
208
  Stream.flatMap(Schema.decodeUnknown(MultiplexedSchema))
343
209
  );
344
210
 
345
- /**
346
- * Demux a multiplexed socket, all output goes to a single sink.
347
- *
348
- * @since 1.0.0
349
- * @category Demux
350
- */
211
+ /** @internal */
351
212
  export const demuxMultiplexedToSingleSink = Function.dual<
352
213
  // One sink, data-last signature.
353
214
  <A1, L1, E1, E2, R1, R2>(
@@ -355,7 +216,7 @@ export const demuxMultiplexedToSingleSink = Function.dual<
355
216
  sink: Sink.Sink<A1, readonly [MultiplexedHeaderType, string], L1, E2, R2>,
356
217
  options?: { encoding?: string | undefined } | undefined
357
218
  ) => <IE = never, OE = Socket.SocketError, R3 = never>(
358
- socket: EitherMultiplexedInput<E1 | IE, OE, R3>
219
+ socket: MobyDemux.EitherMultiplexedInput<E1 | IE, OE, R3>
359
220
  ) => Effect.Effect<
360
221
  A1,
361
222
  E1 | E2 | IE | OE | ParseResult.ParseError,
@@ -363,7 +224,7 @@ export const demuxMultiplexedToSingleSink = Function.dual<
363
224
  >,
364
225
  // One sink, data-first signature.
365
226
  <A1, L1, E1, E2, R1, R2, IE = never, OE = Socket.SocketError, R3 = never>(
366
- socket: EitherMultiplexedInput<E1 | IE, OE, R3>,
227
+ socket: MobyDemux.EitherMultiplexedInput<E1 | IE, OE, R3>,
367
228
  source: Stream.Stream<string | Uint8Array | Socket.CloseEvent, E1, R1>,
368
229
  sink: Sink.Sink<A1, readonly [MultiplexedHeaderType, string], L1, E2, R2>,
369
230
  options?: { encoding?: string | undefined } | undefined
@@ -388,18 +249,7 @@ export const demuxMultiplexedToSingleSink = Function.dual<
388
249
  }
389
250
  );
390
251
 
391
- /**
392
- * Demux a multiplexed socket. When given a multiplexed socket, we must parse
393
- * the chunks by headers and then forward each chunk based on its datatype to
394
- * the correct sink.
395
- *
396
- * When partitioning the stream into stdout and stderr, the first sink may
397
- * advance by up to bufferSize elements further than the slower one. The default
398
- * bufferSize is 16.
399
- *
400
- * @since 1.0.0
401
- * @category Demux
402
- */
252
+ /** @internal */
403
253
  export const demuxMultiplexedToSeparateSinks = Function.dual<
404
254
  // Two sinks, data-last signature.
405
255
  <A1, A2, L1, L2, E1, E2, E3, R1, R2, R3>(
@@ -408,21 +258,21 @@ export const demuxMultiplexedToSeparateSinks = Function.dual<
408
258
  sink2: Sink.Sink<A2, string, L2, E3, R3>,
409
259
  options?: { bufferSize?: number | undefined; encoding?: string | undefined } | undefined
410
260
  ) => <IE = never, OE = Socket.SocketError, R4 = never>(
411
- socket: EitherMultiplexedInput<E1 | IE, OE, R4>
261
+ socket: MobyDemux.EitherMultiplexedInput<E1 | IE, OE, R4>
412
262
  ) => Effect.Effect<
413
- CompressedDemuxOutput<A1, A2>,
263
+ MobyDemux.CompressedDemuxOutput<A1, A2>,
414
264
  E1 | E2 | E3 | IE | OE | ParseResult.ParseError,
415
265
  Exclude<R1, Scope.Scope> | Exclude<R2, Scope.Scope> | Exclude<R3, Scope.Scope> | Exclude<R4, Scope.Scope>
416
266
  >,
417
267
  // Two sinks, data-first signature.
418
268
  <A1, A2, L1, L2, E1, E2, E3, R1, R2, R3, IE = never, OE = Socket.SocketError, R4 = never>(
419
- socket: EitherMultiplexedInput<E1 | IE, OE, R4>,
269
+ socket: MobyDemux.EitherMultiplexedInput<E1 | IE, OE, R4>,
420
270
  source: Stream.Stream<string | Uint8Array | Socket.CloseEvent, E1, R1>,
421
271
  sink1: Sink.Sink<A1, string, L1, E2, R2>,
422
272
  sink2: Sink.Sink<A2, string, L2, E3, R3>,
423
273
  options?: { bufferSize?: number | undefined; encoding?: string | undefined } | undefined
424
274
  ) => Effect.Effect<
425
- CompressedDemuxOutput<A1, A2>,
275
+ MobyDemux.CompressedDemuxOutput<A1, A2>,
426
276
  E1 | E2 | E3 | IE | OE | ParseResult.ParseError,
427
277
  Exclude<R1, Scope.Scope> | Exclude<R2, Scope.Scope> | Exclude<R3, Scope.Scope> | Exclude<R4, Scope.Scope>
428
278
  >
@@ -452,7 +302,7 @@ export const demuxMultiplexedToSeparateSinks = Function.dual<
452
302
  ),
453
303
  Effect.map(Effect.allWith({ concurrency: 2 })),
454
304
  Effect.flatten,
455
- Effect.map(compressDemuxOutput),
305
+ Effect.map(internalCompressed.compressDemuxOutput),
456
306
  Effect.scoped
457
307
  )
458
308
  );
@@ -1,4 +1,5 @@
1
1
  import type * as Scope from "effect/Scope";
2
+ import type * as MobyDemux from "../../MobyDemux.js";
2
3
 
3
4
  import * as Socket from "@effect/platform/Socket";
4
5
  import * as Channel from "effect/Channel";
@@ -14,18 +15,10 @@ import * as Queue from "effect/Queue";
14
15
  import * as Sink from "effect/Sink";
15
16
  import * as Stream from "effect/Stream";
16
17
 
17
- import {
18
- makeMultiplexedChannel,
19
- MultiplexedChannel,
20
- multiplexedFromStreamWith,
21
- MultiplexedHeaderType,
22
- } from "./multiplexed.js";
23
- import { demuxStdioRawToSeparateSinks, HeterogeneousStdioRawInput } from "./raw.js";
18
+ import { makeMultiplexedChannel, multiplexedFromStreamWith, MultiplexedHeaderType } from "./multiplexed.js";
19
+ import { demuxStdioRawToSeparateSinks } from "./raw.js";
24
20
 
25
- /**
26
- * @since 1.0.0
27
- * @category Packing
28
- */
21
+ /** @internal */
29
22
  export const pack = Function.dual<
30
23
  <
31
24
  IE1 = never,
@@ -41,9 +34,9 @@ export const pack = Function.dual<
41
34
  requestedCapacity: number;
42
35
  encoding?: string | undefined;
43
36
  }) => (
44
- stdio: HeterogeneousStdioRawInput<IE1, IE2, IE3, OE1, OE2, OE3, R1, R2, R3>
37
+ stdio: MobyDemux.HeterogeneousStdioRawInput<IE1, IE2, IE3, OE1, OE2, OE3, R1, R2, R3>
45
38
  ) => Effect.Effect<
46
- MultiplexedChannel<IE1 | IE2 | IE3, IE1 | IE2 | IE3 | OE1 | OE2 | OE3, never>,
39
+ MobyDemux.MultiplexedChannel<IE1 | IE2 | IE3, IE1 | IE2 | IE3 | OE1 | OE2 | OE3, never>,
47
40
  never,
48
41
  Exclude<R1, Scope.Scope> | Exclude<R2, Scope.Scope> | Exclude<R3, Scope.Scope>
49
42
  >,
@@ -58,10 +51,10 @@ export const pack = Function.dual<
58
51
  R2 = never,
59
52
  R3 = never,
60
53
  >(
61
- stdio: HeterogeneousStdioRawInput<IE1, IE2, IE3, OE1, OE2, OE3, R1, R2, R3>,
54
+ stdio: MobyDemux.HeterogeneousStdioRawInput<IE1, IE2, IE3, OE1, OE2, OE3, R1, R2, R3>,
62
55
  options: { requestedCapacity: number; encoding?: string | undefined }
63
56
  ) => Effect.Effect<
64
- MultiplexedChannel<IE1 | IE2 | IE3, IE1 | IE2 | IE3 | OE1 | OE2 | OE3, never>,
57
+ MobyDemux.MultiplexedChannel<IE1 | IE2 | IE3, IE1 | IE2 | IE3 | OE1 | OE2 | OE3, never>,
65
58
  never,
66
59
  Exclude<R1, Scope.Scope> | Exclude<R2, Scope.Scope> | Exclude<R3, Scope.Scope>
67
60
  >
@@ -78,7 +71,7 @@ export const pack = Function.dual<
78
71
  R2 = never,
79
72
  R3 = never,
80
73
  >(
81
- stdio: HeterogeneousStdioRawInput<IE1, IE2, IE3, OE1, OE2, OE3, R1, R2, R3>,
74
+ stdio: MobyDemux.HeterogeneousStdioRawInput<IE1, IE2, IE3, OE1, OE2, OE3, R1, R2, R3>,
82
75
  options: { requestedCapacity: number; encoding?: string | undefined }
83
76
  ) {
84
77
  const mutex = yield* Effect.makeSemaphore(1);