effect 4.0.2 → 4.0.3

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 (243) hide show
  1. package/dist/Context.js +3 -3
  2. package/dist/Context.js.map +1 -1
  3. package/dist/Crypto.d.ts +33 -5
  4. package/dist/Crypto.d.ts.map +1 -1
  5. package/dist/Crypto.js +8 -2
  6. package/dist/Crypto.js.map +1 -1
  7. package/dist/DateTime.d.ts +9 -6
  8. package/dist/DateTime.d.ts.map +1 -1
  9. package/dist/DateTime.js +9 -6
  10. package/dist/DateTime.js.map +1 -1
  11. package/dist/Duration.d.ts +6 -6
  12. package/dist/Duration.d.ts.map +1 -1
  13. package/dist/Duration.js +27 -8
  14. package/dist/Duration.js.map +1 -1
  15. package/dist/FileSystem.d.ts +44 -2
  16. package/dist/FileSystem.d.ts.map +1 -1
  17. package/dist/FileSystem.js.map +1 -1
  18. package/dist/Schema.d.ts +473 -1
  19. package/dist/Schema.d.ts.map +1 -1
  20. package/dist/Schema.js +355 -4
  21. package/dist/Schema.js.map +1 -1
  22. package/dist/Stdio.d.ts +7 -1
  23. package/dist/Stdio.d.ts.map +1 -1
  24. package/dist/Stdio.js +1 -0
  25. package/dist/Stdio.js.map +1 -1
  26. package/dist/Stream.d.ts +11 -11
  27. package/dist/Stream.js +5 -5
  28. package/dist/ai/McpServer.d.ts +6 -0
  29. package/dist/ai/McpServer.d.ts.map +1 -1
  30. package/dist/ai/McpServer.js +65 -23
  31. package/dist/ai/McpServer.js.map +1 -1
  32. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +5 -0
  33. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  34. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  35. package/dist/ai/internal/mcpRuntime.js +1 -0
  36. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  37. package/dist/cli/CliOutput.d.ts +27 -0
  38. package/dist/cli/CliOutput.d.ts.map +1 -1
  39. package/dist/cli/CliOutput.js +33 -10
  40. package/dist/cli/CliOutput.js.map +1 -1
  41. package/dist/cli/Command.d.ts.map +1 -1
  42. package/dist/cli/Command.js +6 -3
  43. package/dist/cli/Command.js.map +1 -1
  44. package/dist/cli/Completions.d.ts +3 -3
  45. package/dist/cli/Completions.d.ts.map +1 -1
  46. package/dist/cli/Completions.js +8 -5
  47. package/dist/cli/Completions.js.map +1 -1
  48. package/dist/cli/GlobalFlag.d.ts +5 -4
  49. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  50. package/dist/cli/GlobalFlag.js +3 -3
  51. package/dist/cli/GlobalFlag.js.map +1 -1
  52. package/dist/cli/Prompt.d.ts +17 -1
  53. package/dist/cli/Prompt.d.ts.map +1 -1
  54. package/dist/cli/Prompt.js +119 -114
  55. package/dist/cli/Prompt.js.map +1 -1
  56. package/dist/cli/internal/ansi.d.ts +0 -1
  57. package/dist/cli/internal/ansi.d.ts.map +1 -1
  58. package/dist/cli/internal/ansi.js +20 -3
  59. package/dist/cli/internal/ansi.js.map +1 -1
  60. package/dist/cli/internal/completions/powershell.d.ts +2 -0
  61. package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
  62. package/dist/cli/internal/completions/powershell.js +273 -0
  63. package/dist/cli/internal/completions/powershell.js.map +1 -0
  64. package/dist/cli/internal/completions/zsh.js +3 -2
  65. package/dist/cli/internal/completions/zsh.js.map +1 -1
  66. package/dist/cli/internal/wizard.d.ts +3 -3
  67. package/dist/cli/internal/wizard.d.ts.map +1 -1
  68. package/dist/cli/internal/wizard.js +21 -18
  69. package/dist/cli/internal/wizard.js.map +1 -1
  70. package/dist/cluster/ClusterSchema.d.ts +28 -0
  71. package/dist/cluster/ClusterSchema.d.ts.map +1 -1
  72. package/dist/cluster/ClusterSchema.js +30 -0
  73. package/dist/cluster/ClusterSchema.js.map +1 -1
  74. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  75. package/dist/cluster/ClusterWorkflowEngine.js +10 -18
  76. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  77. package/dist/cluster/MessageStorage.d.ts +18 -3
  78. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  79. package/dist/cluster/MessageStorage.js +31 -11
  80. package/dist/cluster/MessageStorage.js.map +1 -1
  81. package/dist/cluster/Runners.d.ts.map +1 -1
  82. package/dist/cluster/Runners.js +8 -2
  83. package/dist/cluster/Runners.js.map +1 -1
  84. package/dist/cluster/Sharding.d.ts.map +1 -1
  85. package/dist/cluster/Sharding.js +181 -62
  86. package/dist/cluster/Sharding.js.map +1 -1
  87. package/dist/cluster/SqlMessageStorage.d.ts +59 -19
  88. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  89. package/dist/cluster/SqlMessageStorage.js +84 -55
  90. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  91. package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
  92. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  93. package/dist/cluster/SqlRunnerStorage.js +191 -113
  94. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  95. package/dist/cluster/internal/entityManager.js +104 -37
  96. package/dist/cluster/internal/entityManager.js.map +1 -1
  97. package/dist/http/FindMyWay/internal/router.js +3 -6
  98. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  99. package/dist/http/HttpClient.d.ts +6 -0
  100. package/dist/http/HttpClient.d.ts.map +1 -1
  101. package/dist/http/HttpClient.js +39 -2
  102. package/dist/http/HttpClient.js.map +1 -1
  103. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  104. package/dist/http/HttpTraceContext.js +4 -2
  105. package/dist/http/HttpTraceContext.js.map +1 -1
  106. package/dist/internal/effect.js +12 -7
  107. package/dist/internal/effect.js.map +1 -1
  108. package/dist/internal/version.js +1 -1
  109. package/dist/net/AddressResolver.d.ts +145 -0
  110. package/dist/net/AddressResolver.d.ts.map +1 -0
  111. package/dist/net/AddressResolver.js +114 -0
  112. package/dist/net/AddressResolver.js.map +1 -0
  113. package/dist/net/Dns.d.ts +596 -0
  114. package/dist/net/Dns.d.ts.map +1 -0
  115. package/dist/net/Dns.js +549 -0
  116. package/dist/net/Dns.js.map +1 -0
  117. package/dist/net/Host.d.ts +320 -0
  118. package/dist/net/Host.d.ts.map +1 -0
  119. package/dist/net/Host.js +342 -0
  120. package/dist/net/Host.js.map +1 -0
  121. package/dist/net/IpInterface.d.ts +76 -3
  122. package/dist/net/IpInterface.d.ts.map +1 -1
  123. package/dist/net/IpInterface.js +53 -4
  124. package/dist/net/IpInterface.js.map +1 -1
  125. package/dist/net/IpNetwork.d.ts +82 -8
  126. package/dist/net/IpNetwork.d.ts.map +1 -1
  127. package/dist/net/IpNetwork.js +60 -4
  128. package/dist/net/IpNetwork.js.map +1 -1
  129. package/dist/net/NetAddress.d.ts +388 -35
  130. package/dist/net/NetAddress.d.ts.map +1 -1
  131. package/dist/net/NetAddress.js +350 -34
  132. package/dist/net/NetAddress.js.map +1 -1
  133. package/dist/net/index.d.ts +15 -0
  134. package/dist/net/index.d.ts.map +1 -1
  135. package/dist/net/index.js +15 -0
  136. package/dist/net/index.js.map +1 -1
  137. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  138. package/dist/observability/OtlpMetrics.js +15 -21
  139. package/dist/observability/OtlpMetrics.js.map +1 -1
  140. package/dist/observability/PrometheusMetrics.js +1 -0
  141. package/dist/observability/PrometheusMetrics.js.map +1 -1
  142. package/dist/persistence/PersistedQueue.d.ts +32 -3
  143. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  144. package/dist/persistence/PersistedQueue.js +75 -16
  145. package/dist/persistence/PersistedQueue.js.map +1 -1
  146. package/dist/rpc/RpcClient.d.ts +22 -6
  147. package/dist/rpc/RpcClient.d.ts.map +1 -1
  148. package/dist/rpc/RpcClient.js +12 -5
  149. package/dist/rpc/RpcClient.js.map +1 -1
  150. package/dist/rpc/RpcServer.d.ts +6 -0
  151. package/dist/rpc/RpcServer.d.ts.map +1 -1
  152. package/dist/rpc/RpcServer.js +42 -20
  153. package/dist/rpc/RpcServer.js.map +1 -1
  154. package/dist/socket/DatagramSocket.d.ts +456 -0
  155. package/dist/socket/DatagramSocket.d.ts.map +1 -0
  156. package/dist/socket/DatagramSocket.js +535 -0
  157. package/dist/socket/DatagramSocket.js.map +1 -0
  158. package/dist/socket/Socket.d.ts +14 -1
  159. package/dist/socket/Socket.d.ts.map +1 -1
  160. package/dist/socket/Socket.js +9 -1
  161. package/dist/socket/Socket.js.map +1 -1
  162. package/dist/socket/index.d.ts +5 -0
  163. package/dist/socket/index.d.ts.map +1 -1
  164. package/dist/socket/index.js +5 -0
  165. package/dist/socket/index.js.map +1 -1
  166. package/dist/sql/Migrator.d.ts.map +1 -1
  167. package/dist/sql/Migrator.js +7 -2
  168. package/dist/sql/Migrator.js.map +1 -1
  169. package/dist/sql/SqlClient.d.ts +7 -1
  170. package/dist/sql/SqlClient.d.ts.map +1 -1
  171. package/dist/sql/SqlClient.js +31 -6
  172. package/dist/sql/SqlClient.js.map +1 -1
  173. package/dist/testing/TestCrypto.d.ts +73 -0
  174. package/dist/testing/TestCrypto.d.ts.map +1 -0
  175. package/dist/testing/TestCrypto.js +87 -0
  176. package/dist/testing/TestCrypto.js.map +1 -0
  177. package/dist/testing/index.d.ts +5 -0
  178. package/dist/testing/index.d.ts.map +1 -1
  179. package/dist/testing/index.js +5 -0
  180. package/dist/testing/index.js.map +1 -1
  181. package/dist/workflow/DurableDeferred.d.ts +54 -0
  182. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  183. package/dist/workflow/DurableDeferred.js +78 -49
  184. package/dist/workflow/DurableDeferred.js.map +1 -1
  185. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  186. package/dist/workflow/WorkflowEngine.js +2 -1
  187. package/dist/workflow/WorkflowEngine.js.map +1 -1
  188. package/package.json +1 -1
  189. package/src/Context.ts +3 -3
  190. package/src/Crypto.ts +43 -9
  191. package/src/DateTime.ts +9 -6
  192. package/src/Duration.ts +36 -16
  193. package/src/FileSystem.ts +48 -2
  194. package/src/Schema.ts +669 -5
  195. package/src/Stdio.ts +9 -2
  196. package/src/Stream.ts +11 -11
  197. package/src/ai/McpServer.ts +63 -23
  198. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
  199. package/src/ai/internal/mcpProtocol.ts +3 -0
  200. package/src/ai/internal/mcpRuntime.ts +2 -0
  201. package/src/cli/CliOutput.ts +33 -16
  202. package/src/cli/Command.ts +4 -3
  203. package/src/cli/Completions.ts +9 -6
  204. package/src/cli/GlobalFlag.ts +19 -11
  205. package/src/cli/Prompt.ts +159 -149
  206. package/src/cli/internal/ansi.ts +26 -3
  207. package/src/cli/internal/completions/powershell.ts +322 -0
  208. package/src/cli/internal/completions/zsh.ts +4 -2
  209. package/src/cli/internal/wizard.ts +34 -26
  210. package/src/cluster/ClusterSchema.ts +32 -0
  211. package/src/cluster/ClusterWorkflowEngine.ts +13 -24
  212. package/src/cluster/MessageStorage.ts +45 -14
  213. package/src/cluster/Runners.ts +8 -2
  214. package/src/cluster/Sharding.ts +207 -49
  215. package/src/cluster/SqlMessageStorage.ts +118 -84
  216. package/src/cluster/SqlRunnerStorage.ts +224 -128
  217. package/src/cluster/internal/entityManager.ts +151 -55
  218. package/src/http/FindMyWay/internal/router.ts +4 -7
  219. package/src/http/HttpClient.ts +56 -2
  220. package/src/http/HttpTraceContext.ts +8 -2
  221. package/src/internal/effect.ts +15 -13
  222. package/src/internal/version.ts +1 -1
  223. package/src/net/AddressResolver.ts +222 -0
  224. package/src/net/Dns.ts +1035 -0
  225. package/src/net/Host.ts +472 -0
  226. package/src/net/IpInterface.ts +117 -7
  227. package/src/net/IpNetwork.ts +116 -17
  228. package/src/net/NetAddress.ts +611 -76
  229. package/src/net/index.ts +18 -0
  230. package/src/observability/OtlpMetrics.ts +12 -23
  231. package/src/observability/PrometheusMetrics.ts +1 -0
  232. package/src/persistence/PersistedQueue.ts +146 -53
  233. package/src/rpc/RpcClient.ts +41 -19
  234. package/src/rpc/RpcServer.ts +60 -25
  235. package/src/socket/DatagramSocket.ts +919 -0
  236. package/src/socket/Socket.ts +22 -2
  237. package/src/socket/index.ts +6 -0
  238. package/src/sql/Migrator.ts +21 -5
  239. package/src/sql/SqlClient.ts +39 -15
  240. package/src/testing/TestCrypto.ts +94 -0
  241. package/src/testing/index.ts +6 -0
  242. package/src/workflow/DurableDeferred.ts +123 -48
  243. package/src/workflow/WorkflowEngine.ts +2 -1
@@ -0,0 +1,535 @@
1
+ import * as Context from "../Context.js";
2
+ import * as Effect from "../Effect.js";
3
+ import * as Fiber from "../Fiber.js";
4
+ import { constVoid } from "../Function.js";
5
+ import { args, contA, contAll, exitSucceed, makePrimitive, withFiber } from "../internal/core.js";
6
+ import * as Latch from "../Latch.js";
7
+ import * as NetAddress from "../net/NetAddress.js";
8
+ import * as Predicate from "../Predicate.js";
9
+ import * as Schema from "../Schema.js";
10
+ import * as Scope from "../Scope.js";
11
+ /**
12
+ * Runtime type identifier attached to `DatagramSocket` services.
13
+ *
14
+ * @stability experimental
15
+ * @category type IDs
16
+ * @since 4.0.0
17
+ */
18
+ export const TypeId = "~effect/socket/DatagramSocket";
19
+ /**
20
+ * Service tag for UDP socket transports.
21
+ *
22
+ * @stability experimental
23
+ * @category services
24
+ * @since 4.0.0
25
+ */
26
+ export const DatagramSocket = /*#__PURE__*/Context.Service("effect/socket/DatagramSocket");
27
+ /**
28
+ * Creates a `DatagramSocket` from its `reader` and `writer` effects.
29
+ *
30
+ * @stability experimental
31
+ * @category constructors
32
+ * @since 4.0.0
33
+ */
34
+ export const make = options => DatagramSocket.of({
35
+ [TypeId]: TypeId,
36
+ reader: options.reader,
37
+ writer: options.writer
38
+ });
39
+ /**
40
+ * Opening or binding the native socket, applying its options, or resolving
41
+ * a name failed.
42
+ *
43
+ * @stability experimental
44
+ * @category errors
45
+ * @since 4.0.0
46
+ */
47
+ export class DatagramSocketOpenError extends /*#__PURE__*/Schema.Error("effect/socket/DatagramSocket/OpenError")({
48
+ _tag: /*#__PURE__*/Schema.tag("DatagramSocketOpenError"),
49
+ kind: /*#__PURE__*/Schema.Literals(["AddressInUse", "AddressNotAvailable", "PermissionDenied", "Unknown"]),
50
+ cause: /*#__PURE__*/Schema.Defect()
51
+ }) {}
52
+ /**
53
+ * A receive failed, or an ICMP report arrived with no write left to fail.
54
+ *
55
+ * @stability experimental
56
+ * @category errors
57
+ * @since 4.0.0
58
+ */
59
+ export class DatagramSocketReadError extends /*#__PURE__*/Schema.Error("effect/socket/DatagramSocket/ReadError")({
60
+ _tag: /*#__PURE__*/Schema.tag("DatagramSocketReadError"),
61
+ kind: /*#__PURE__*/Schema.Literals(["MessageTooLarge", "Unreachable", "ConnectionRefused", "PermissionDenied", "Unknown"]),
62
+ cause: /*#__PURE__*/Schema.Defect()
63
+ }) {}
64
+ /**
65
+ * A send failed. `address` is the destination when it is known.
66
+ *
67
+ * @stability experimental
68
+ * @category errors
69
+ * @since 4.0.0
70
+ */
71
+ export class DatagramSocketWriteError extends /*#__PURE__*/Schema.Error("effect/socket/DatagramSocket/WriteError")({
72
+ _tag: /*#__PURE__*/Schema.tag("DatagramSocketWriteError"),
73
+ kind: /*#__PURE__*/Schema.Literals(["MessageTooLarge", "Unreachable", "ConnectionRefused", "PermissionDenied", "Unknown"]),
74
+ address: /*#__PURE__*/Schema.optional(Schema.InetAddress),
75
+ cause: /*#__PURE__*/Schema.Defect()
76
+ }) {}
77
+ /**
78
+ * The native socket closed underneath the reader, or the reader's scope
79
+ * closed.
80
+ *
81
+ * @stability experimental
82
+ * @category errors
83
+ * @since 4.0.0
84
+ */
85
+ export class DatagramSocketClosedError extends /*#__PURE__*/Schema.Error("effect/socket/DatagramSocket/ClosedError")({
86
+ _tag: /*#__PURE__*/Schema.tag("DatagramSocketClosedError")
87
+ }) {}
88
+ /**
89
+ * The runtime lacks a capability, such as source-specific multicast on Deno.
90
+ *
91
+ * @stability experimental
92
+ * @category errors
93
+ * @since 4.0.0
94
+ */
95
+ export class DatagramSocketUnsupportedError extends /*#__PURE__*/Schema.Error("effect/socket/DatagramSocket/UnsupportedError")({
96
+ _tag: /*#__PURE__*/Schema.tag("DatagramSocketUnsupportedError"),
97
+ capability: Schema.String,
98
+ runtime: Schema.String
99
+ }) {
100
+ /**
101
+ * Names the runtime and the capability it lacks.
102
+ *
103
+ * @stability experimental
104
+ * @since 4.0.0
105
+ */
106
+ get message() {
107
+ return `${this.runtime} does not support ${this.capability}`;
108
+ }
109
+ }
110
+ /**
111
+ * Schema for the union of `DatagramSocketError` reasons.
112
+ *
113
+ * @stability experimental
114
+ * @category errors
115
+ * @since 4.0.0
116
+ */
117
+ export const DatagramSocketErrorReason = /*#__PURE__*/Schema.Union([DatagramSocketOpenError, DatagramSocketReadError, DatagramSocketWriteError, DatagramSocketClosedError, DatagramSocketUnsupportedError]);
118
+ /**
119
+ * Runtime type identifier attached to `DatagramSocketError` values.
120
+ *
121
+ * @stability experimental
122
+ * @category errors
123
+ * @since 4.0.0
124
+ */
125
+ export const DatagramSocketErrorTypeId = "~effect/socket/DatagramSocket/DatagramSocketError";
126
+ /**
127
+ * Returns `true` when a value is a `DatagramSocketError`.
128
+ *
129
+ * @stability experimental
130
+ * @category guards
131
+ * @since 4.0.0
132
+ */
133
+ export const isDatagramSocketError = u => Predicate.hasProperty(u, DatagramSocketErrorTypeId);
134
+ /**
135
+ * The error raised by `DatagramSocket` operations, wrapping a specific
136
+ * reason. Its `cause` and `message` come from the reason.
137
+ *
138
+ * @stability experimental
139
+ * @category errors
140
+ * @since 4.0.0
141
+ */
142
+ export class DatagramSocketError extends /*#__PURE__*/Schema.TaggedError(DatagramSocketErrorTypeId)("DatagramSocketError", {
143
+ _tag: /*#__PURE__*/Schema.tag("DatagramSocketError"),
144
+ reason: DatagramSocketErrorReason
145
+ }) {
146
+ // @effect-diagnostics-next-line overriddenSchemaConstructor:off
147
+ constructor(props) {
148
+ if ("cause" in props.reason) {
149
+ super({
150
+ ...props,
151
+ cause: props.reason.cause
152
+ });
153
+ } else {
154
+ super(props);
155
+ }
156
+ }
157
+ [DatagramSocketErrorTypeId] = DatagramSocketErrorTypeId;
158
+ get message() {
159
+ return this.reason.message;
160
+ }
161
+ }
162
+ /**
163
+ * Builds a `DatagramSocket` over a backing socket, opening a new socket for
164
+ * each reader acquisition.
165
+ *
166
+ * **Details**
167
+ *
168
+ * `open` receives the event callbacks before the handle exists, so packets can
169
+ * be queued while it opens. Core owns the receive queue and its overflow
170
+ * strategy, reader exclusivity, sticky errors, lazy address parsing, the
171
+ * writer latch and destination formatting. The handle is closed when the
172
+ * reader's scope closes. If acquisition is interrupted while `open` is still
173
+ * running, the interruption returns at once, `open` is left to finish, and
174
+ * the handle it produces is closed. The next reader waits until that open has
175
+ * settled, so two native sockets never exist at once. An adopted `acquire`
176
+ * must therefore finish in bounded time.
177
+ *
178
+ * `open` runs in the reader's scope, with the services of the fiber that
179
+ * built the socket, so an adopted `acquire` can use them and register
180
+ * finalizers that run when the reader closes. Where the fiber acquiring the
181
+ * reader has a service with the same tag, its own takes precedence.
182
+ *
183
+ * Concurrent pulls are served in the order they started waiting.
184
+ *
185
+ * `onError` receives errors with no write left to fail. It runs
186
+ * synchronously, and anything it throws is ignored.
187
+ *
188
+ * Invalid `receiveBuffer.capacity` values cause a defect; use a positive
189
+ * safe integer.
190
+ *
191
+ * @stability experimental
192
+ * @category constructors
193
+ * @since 4.0.0
194
+ */
195
+ export const makeFromBackingSocket = (open, options) => withFiber(fiber => {
196
+ const capacity = options?.receiveBuffer?.capacity ?? 1024;
197
+ if (!Number.isSafeInteger(capacity) || capacity < 1) {
198
+ throw new RangeError(`DatagramSocket receive buffer capacity must be a positive integer, received ${capacity}`);
199
+ }
200
+ return Effect.succeed(makeFromBackingSocketWithContext(open, fiber.context, capacity, options?.receiveBuffer?.strategy === "sliding", options?.onError));
201
+ });
202
+ const makeFromBackingSocketWithContext = (open, services, capacity, sliding, onError) => {
203
+ const free = Latch.makeUnsafe(true);
204
+ const latch = Latch.makeUnsafe(false);
205
+ let current;
206
+ const abandon = (state, opening) => {
207
+ state.close();
208
+ // Release reader ownership only after the interrupted open settles.
209
+ opening.addObserver(exit => {
210
+ if (exit._tag === "Success") exit.value.close();
211
+ free.openUnsafe();
212
+ });
213
+ };
214
+ const release = state => {
215
+ state.close();
216
+ current = undefined;
217
+ latch.closeUnsafe();
218
+ free.openUnsafe();
219
+ };
220
+ const reader = Effect.uninterruptibleMask(Effect.fnUntraced(function* (restore) {
221
+ while (!free.closeUnsafe()) yield* restore(free.await);
222
+ const scope = yield* Effect.scope;
223
+ const state = new ReaderState(capacity, sliding, onError);
224
+ // Native opens may be uncancellable. Interrupt only the wait; `abandon`
225
+ // closes any socket returned later.
226
+ const opened = open(state.events).pipe(Effect.updateContext(input => Context.add(Context.merge(services, input), Scope.Scope, scope)));
227
+ const opening = yield* Effect.forkDetach(opened, {
228
+ startImmediately: true
229
+ });
230
+ state.handle = yield* restore(Fiber.join(opening)).pipe(Effect.onError(() => Effect.sync(() => abandon(state, opening))));
231
+ current = state;
232
+ latch.openUnsafe();
233
+ yield* Effect.addFinalizer(() => Effect.sync(() => release(state)));
234
+ return makeReader(state);
235
+ }));
236
+ const write = datagram => withFiber(fiber => {
237
+ const state = current;
238
+ return state === undefined ? latch.whenOpen(write(datagram)) : state.write(datagram, fiber);
239
+ });
240
+ const writeAll = datagrams => withFiber(fiber => {
241
+ const state = current;
242
+ return state === undefined ? latch.whenOpen(writeAll(datagrams)) : state.writeAll(datagrams, fiber);
243
+ });
244
+ const writer = Effect.succeed({
245
+ write,
246
+ writeAll
247
+ });
248
+ return make({
249
+ reader,
250
+ writer
251
+ });
252
+ };
253
+ const encoder = /*#__PURE__*/new TextEncoder();
254
+ const encode = payload => typeof payload === "string" ? encoder.encode(payload) : payload;
255
+ const emptyScopeIds = /*#__PURE__*/new Map();
256
+ const closedError = () => new DatagramSocketError({
257
+ reason: new DatagramSocketClosedError()
258
+ });
259
+ // Rejected writes return this sentinel, avoiding per-packet error type checks.
260
+ const rejected = {
261
+ host: "",
262
+ port: 0
263
+ };
264
+ class DatagramImpl {
265
+ payload;
266
+ host;
267
+ port;
268
+ owner;
269
+ #address;
270
+ constructor(payload, host, port, owner) {
271
+ this.payload = payload;
272
+ this.host = host;
273
+ this.port = port;
274
+ this.owner = owner;
275
+ }
276
+ get address() {
277
+ return this.#address ??= NetAddress.inetAddressFromNativeUnsafe(this.host, this.port, this.owner.scopeIds);
278
+ }
279
+ // only for a queued record, which no pull has returned yet
280
+ reuse(payload, host, port) {
281
+ this.payload = payload;
282
+ this.host = host;
283
+ this.port = port;
284
+ this.#address = undefined;
285
+ }
286
+ }
287
+ const targetOf = datagram => "host" in datagram ? datagram : datagram.address;
288
+ class ReaderState {
289
+ capacity;
290
+ sliding;
291
+ listener;
292
+ events = {
293
+ onPacket: (payload, host, port) => this.push(payload, host, port),
294
+ onReadError: error => this.fail(error),
295
+ onError: error => this.report(error),
296
+ onClose: () => this.fail(closedError())
297
+ };
298
+ // set when `open` completes; packets can arrive before that
299
+ handle = undefined;
300
+ failure = undefined;
301
+ // separate from `failure`: after a sticky read error the socket is still
302
+ // open, so ICMP reports still reach `onError`
303
+ closed = false;
304
+ // Sliding overflow turns the full buffer into a ring, oldest at `head`.
305
+ buffer = [];
306
+ head = 0;
307
+ dropped = 0;
308
+ // A single consumer uses the first waiter slot without touching the array.
309
+ waiter = undefined;
310
+ waiters = [];
311
+ unpark = /*#__PURE__*/unpark(this);
312
+ bound = undefined;
313
+ // one-entry cache for `write` to the same explicit address
314
+ lastTarget = undefined;
315
+ lastDestination = undefined;
316
+ rejection = undefined;
317
+ constructor(capacity, sliding, listener) {
318
+ this.capacity = capacity;
319
+ this.sliding = sliding;
320
+ this.listener = listener;
321
+ }
322
+ push(payload, host, port) {
323
+ if (this.failure !== undefined) return;
324
+ if (this.buffer.length >= this.capacity) return this.overflow(payload, host, port);
325
+ const datagram = new DatagramImpl(payload, host, port, this);
326
+ if (this.waiter !== undefined) return this.wake(datagram);
327
+ const buffer = this.buffer;
328
+ buffer[buffer.length] = datagram;
329
+ }
330
+ wake(datagram) {
331
+ const fiber = this.waiter;
332
+ this.promoteWaiter();
333
+ fiber.evaluate(exitSucceed([datagram]));
334
+ }
335
+ overflow(payload, host, port) {
336
+ this.dropped++;
337
+ if (!this.sliding) return;
338
+ const buffer = this.buffer;
339
+ const head = this.head;
340
+ buffer[head].reuse(payload, host, port);
341
+ this.head = head + 1 === buffer.length ? 0 : head + 1;
342
+ }
343
+ take() {
344
+ const buffer = this.buffer;
345
+ const head = this.head;
346
+ this.buffer = [];
347
+ if (head === 0) return buffer;
348
+ this.head = 0;
349
+ const length = buffer.length;
350
+ const batch = new Array(length);
351
+ let j = 0;
352
+ for (let i = head; i < length; i++) batch[j++] = buffer[i];
353
+ for (let i = 0; i < head; i++) batch[j++] = buffer[i];
354
+ return batch;
355
+ }
356
+ park(fiber) {
357
+ if (this.waiter === undefined) this.waiter = fiber;else this.waiters.push(fiber);
358
+ }
359
+ promoteWaiter() {
360
+ this.waiter = this.waiters.length === 0 ? undefined : this.waiters.shift();
361
+ }
362
+ removeWaiter(fiber) {
363
+ if (this.waiter === fiber) return this.promoteWaiter();
364
+ if (this.waiters.length === 0) return;
365
+ const index = this.waiters.indexOf(fiber);
366
+ if (index !== -1) this.waiters.splice(index, 1);
367
+ }
368
+ failWaiters() {
369
+ const waiter = this.waiter;
370
+ if (waiter === undefined) return;
371
+ const failure = this.failure;
372
+ const waiters = this.waiters;
373
+ this.waiter = undefined;
374
+ this.waiters = [];
375
+ waiter.evaluate(failure);
376
+ for (let i = 0; i < waiters.length; i++) waiters[i].evaluate(failure);
377
+ }
378
+ fail(error) {
379
+ if (this.failure !== undefined) return;
380
+ this.failure = Effect.fail(error);
381
+ this.failWaiters();
382
+ }
383
+ close() {
384
+ this.closed = true;
385
+ this.buffer = [];
386
+ this.head = 0;
387
+ this.failure = Effect.fail(closedError());
388
+ this.failWaiters();
389
+ this.handle?.close();
390
+ }
391
+ report(error) {
392
+ const listener = this.listener;
393
+ if (listener === undefined || this.closed) return;
394
+ try {
395
+ listener(error);
396
+ } catch {
397
+ // Listener errors cannot fail native callbacks.
398
+ }
399
+ }
400
+ // packets can arrive before the handle does, so they read this lazily
401
+ get scopeIds() {
402
+ return this.handle?.scopeIds ?? emptyScopeIds;
403
+ }
404
+ get address() {
405
+ return this.bound ??= NetAddress.inetAddressFromNativeUnsafe(this.handle.address.host, this.handle.address.port, this.scopeIds);
406
+ }
407
+ // Synchronous sends avoid parking; async completions resume inline.
408
+ // Ignore completions after interruption.
409
+ write(datagram, fiber) {
410
+ if (this.failure !== undefined) return this.failure;
411
+ const target = targetOf(datagram);
412
+ const destination = this.destination(target);
413
+ if (destination === rejected) return Effect.fail(this.rejection);
414
+ const handle = this.handle;
415
+ const payload = encode(datagram.payload);
416
+ let result;
417
+ let parked = false;
418
+ handle.send(payload, destination, error => {
419
+ if (result !== undefined) return;
420
+ result = error === undefined ? Effect.void : Effect.fail(this.withAddress(error, target));
421
+ if (parked) fiber.evaluate(result);
422
+ });
423
+ if (result !== undefined) return result;
424
+ parked = true;
425
+ return fiber.yieldWith(() => {
426
+ parked = false;
427
+ });
428
+ }
429
+ writeAll(datagrams, fiber) {
430
+ if (this.failure !== undefined) return this.failure;
431
+ const payloads = new Array(datagrams.length);
432
+ const destinations = new Array(datagrams.length);
433
+ for (let i = 0; i < datagrams.length; i++) {
434
+ const datagram = datagrams[i];
435
+ const destination = this.destination(targetOf(datagram));
436
+ if (destination === rejected) return Effect.fail(this.rejection);
437
+ payloads[i] = encode(datagram.payload);
438
+ destinations[i] = destination;
439
+ }
440
+ let result;
441
+ let parked = false;
442
+ this.handle.sendMany(payloads, destinations, (error, index) => {
443
+ if (result !== undefined) return;
444
+ result = error === undefined ? Effect.void : Effect.fail(index === undefined ? error : this.withAddress(error, targetOf(datagrams[index])));
445
+ if (parked) fiber.evaluate(result);
446
+ });
447
+ if (result !== undefined) return result;
448
+ parked = true;
449
+ return fiber.yieldWith(() => {
450
+ parked = false;
451
+ });
452
+ }
453
+ // Returns `rejected` on failure, with the error stored in `rejection`.
454
+ destination(target) {
455
+ const handle = this.handle;
456
+ if (target === undefined) {
457
+ if (handle.connected) return undefined;
458
+ return handle.peer ?? this.reject("DatagramSocket write has no destination and the socket has no peer");
459
+ }
460
+ if (!("_tag" in target)) return handle.connected ? undefined : target;
461
+ if (handle.connected) return this.reject("an explicit address cannot be used on a connected DatagramSocket", target);
462
+ if (target === this.lastTarget) return this.lastDestination;
463
+ const destination = {
464
+ host: NetAddress.formatNativeHost(target, this.scopeIds),
465
+ port: target.port
466
+ };
467
+ this.lastTarget = target;
468
+ this.lastDestination = destination;
469
+ return destination;
470
+ }
471
+ reject(message, address) {
472
+ this.rejection = new DatagramSocketError({
473
+ reason: new DatagramSocketWriteError({
474
+ kind: "Unknown",
475
+ address,
476
+ cause: new Error(message)
477
+ })
478
+ });
479
+ return rejected;
480
+ }
481
+ withAddress(error, target) {
482
+ const reason = error.reason;
483
+ if (reason._tag !== "DatagramSocketWriteError" || reason.address !== undefined) return error;
484
+ const address = this.addressOf(target);
485
+ if (address === undefined) return error;
486
+ return new DatagramSocketError({
487
+ reason: new DatagramSocketWriteError({
488
+ kind: reason.kind,
489
+ address,
490
+ cause: reason.cause
491
+ })
492
+ });
493
+ }
494
+ addressOf(target) {
495
+ try {
496
+ if (target !== undefined) return "_tag" in target ? target : target.address;
497
+ const peer = this.handle.peer;
498
+ return peer === undefined ? undefined : NetAddress.inetAddressFromNativeUnsafe(peer.host, peer.port, this.scopeIds);
499
+ } catch {
500
+ // an unknown IPv6 zone leaves the address out
501
+ return undefined;
502
+ }
503
+ }
504
+ }
505
+ // Park the fiber itself and resume it inline, avoiding `Effect.callback` allocations.
506
+ const makePull = state => withFiber(fiber => {
507
+ if (state.buffer.length !== 0) {
508
+ const batch = state.take();
509
+ const cont = fiber.getCont(contA);
510
+ return cont ? cont[contA](batch, fiber) : fiber.yieldWith(exitSucceed(batch));
511
+ }
512
+ if (state.failure !== undefined) return state.failure;
513
+ state.park(fiber);
514
+ fiber._stack.push(state.unpark);
515
+ return fiber.yieldWith(constVoid);
516
+ });
517
+ // `contAll` removes interrupted waiters too; after a wake, removal is a no-op.
518
+ const unpark = /*#__PURE__*/makePrimitive({
519
+ op: "DatagramSocketUnpark",
520
+ [contAll](fiber) {
521
+ this[args].removeWaiter(fiber);
522
+ }
523
+ });
524
+ const makeReader = state => ({
525
+ pull: makePull(state),
526
+ get address() {
527
+ return state.address;
528
+ },
529
+ dropped: () => state.dropped,
530
+ joinMulticast: options => Effect.suspend(() => {
531
+ if (state.failure !== undefined) return state.failure;
532
+ return Effect.acquireRelease(state.handle.joinMulticast(options), leave => state.closed ? Effect.void : Effect.ignoreCause(leave()));
533
+ })
534
+ });
535
+ //# sourceMappingURL=DatagramSocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatagramSocket.js","names":[],"sources":["../../src/socket/DatagramSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -527,13 +527,18 @@ export interface WebSocketLike {
527
527
  send(data: string | Uint8Array<ArrayBuffer>): void;
528
528
  }
529
529
  /**
530
- * Common options understood by a WebSocket client implementation.
530
+ * Client options for Node and Bun WebSocket implementations, allowing
531
+ * handshake headers and subprotocols to be supplied together.
531
532
  *
532
533
  * @stability unstable
533
534
  * @category models
534
535
  * @since 4.0.0
535
536
  */
536
537
  export interface WebSocketClientOptions {
538
+ /**
539
+ * Subprotocols to offer in the opening handshake.
540
+ */
541
+ readonly protocols?: string | Array<string> | undefined;
537
542
  /**
538
543
  * Headers to include in the opening handshake.
539
544
  *
@@ -580,6 +585,7 @@ export declare class WebSocketConstructor extends WebSocketConstructor_base {
580
585
  }
581
586
  /**
582
587
  * Layer that provides `WebSocketConstructor` using `globalThis.WebSocket`.
588
+ * Rejects client options objects, including those with handshake headers.
583
589
  *
584
590
  * @stability unstable
585
591
  * @category layers
@@ -589,6 +595,8 @@ export declare const layerWebSocketConstructorGlobal: Layer.Layer<WebSocketConst
589
595
  /**
590
596
  * Creates a `Socket` backed by a `WebSocketConstructor`, dialing the
591
597
  * WebSocket for each reader acquisition.
598
+ * Optional handshake headers require a Node or Bun constructor; without
599
+ * headers, protocols are passed directly for browser compatibility.
592
600
  *
593
601
  * @stability unstable
594
602
  * @category constructors
@@ -597,6 +605,7 @@ export declare const layerWebSocketConstructorGlobal: Layer.Layer<WebSocketConst
597
605
  export declare const makeWebSocket: (url: string | Effect.Effect<string>, options?: {
598
606
  readonly openTimeout?: Duration.Input | undefined;
599
607
  readonly protocols?: string | Array<string> | undefined;
608
+ readonly headers?: Readonly<Record<string, string>> | undefined;
600
609
  readonly highWaterMark?: number | undefined;
601
610
  }) => Effect.Effect<Socket, never, WebSocketConstructor>;
602
611
  /**
@@ -625,6 +634,7 @@ export declare const fromWebSocket: <RO, WS extends WebSocketLike>(acquire: Effe
625
634
  /**
626
635
  * Creates a binary `Channel` backed by a WebSocket URL, requiring a
627
636
  * `WebSocketConstructor` service.
637
+ * Supports subprotocols and, with a Node or Bun constructor, handshake headers.
628
638
  *
629
639
  * @stability unstable
630
640
  * @category constructors
@@ -633,11 +643,13 @@ export declare const fromWebSocket: <RO, WS extends WebSocketLike>(acquire: Effe
633
643
  export declare const makeWebSocketChannel: <IE = never>(url: string, options?: {
634
644
  readonly openTimeout?: Duration.Input | undefined;
635
645
  readonly protocols?: string | Array<string> | undefined;
646
+ readonly headers?: Readonly<Record<string, string>> | undefined;
636
647
  readonly highWaterMark?: number | undefined;
637
648
  }) => Channel.Channel<NonEmptyReadonlyArray<Uint8Array>, SocketError | IE, void, NonEmptyReadonlyArray<Uint8Array | string | CloseEvent>, IE, unknown, WebSocketConstructor>;
638
649
  /**
639
650
  * Layer that provides a `Socket` service backed by a WebSocket URL or URL
640
651
  * effect.
652
+ * Supports subprotocols and, with a Node or Bun constructor, handshake headers.
641
653
  *
642
654
  * @stability unstable
643
655
  * @category layers
@@ -646,6 +658,7 @@ export declare const makeWebSocketChannel: <IE = never>(url: string, options?: {
646
658
  export declare const layerWebSocket: (url: string | Effect.Effect<string>, options?: {
647
659
  readonly openTimeout?: Duration.Input | undefined;
648
660
  readonly protocols?: string | Array<string> | undefined;
661
+ readonly headers?: Readonly<Record<string, string>> | undefined;
649
662
  readonly highWaterMark?: number | undefined;
650
663
  } | undefined) => Layer.Layer<Socket, never, WebSocketConstructor>;
651
664
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Socket.d.ts","sourceRoot":"","sources":["../../src/socket/Socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Socket.d.ts","sourceRoot":"","sources":["../../src/socket/Socket.ts"],"names":[],"mappings":"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"}