effect 4.0.0-beta.100 → 4.0.0-beta.102

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 (502) hide show
  1. package/dist/Array.d.ts.map +1 -1
  2. package/dist/Array.js +81 -5
  3. package/dist/Array.js.map +1 -1
  4. package/dist/Channel.d.ts.map +1 -1
  5. package/dist/Channel.js +27 -9
  6. package/dist/Channel.js.map +1 -1
  7. package/dist/Config.d.ts +1 -1
  8. package/dist/Config.d.ts.map +1 -1
  9. package/dist/Config.js +6 -5
  10. package/dist/Config.js.map +1 -1
  11. package/dist/ConfigProvider.js +7 -7
  12. package/dist/ConfigProvider.js.map +1 -1
  13. package/dist/Data.d.ts.map +1 -1
  14. package/dist/Data.js +2 -1
  15. package/dist/Data.js.map +1 -1
  16. package/dist/Effect.d.ts +61 -100
  17. package/dist/Effect.d.ts.map +1 -1
  18. package/dist/Effect.js +66 -39
  19. package/dist/Effect.js.map +1 -1
  20. package/dist/FiberHandle.d.ts.map +1 -1
  21. package/dist/FiberHandle.js +3 -2
  22. package/dist/FiberHandle.js.map +1 -1
  23. package/dist/Iterable.d.ts.map +1 -1
  24. package/dist/Iterable.js +2 -1
  25. package/dist/Iterable.js.map +1 -1
  26. package/dist/JsonPatch.d.ts.map +1 -1
  27. package/dist/JsonPatch.js +4 -3
  28. package/dist/JsonPatch.js.map +1 -1
  29. package/dist/JsonSchema.d.ts.map +1 -1
  30. package/dist/JsonSchema.js +9 -11
  31. package/dist/JsonSchema.js.map +1 -1
  32. package/dist/Logger.d.ts.map +1 -1
  33. package/dist/Logger.js +3 -2
  34. package/dist/Logger.js.map +1 -1
  35. package/dist/ManagedRuntime.d.ts +9 -0
  36. package/dist/ManagedRuntime.d.ts.map +1 -1
  37. package/dist/ManagedRuntime.js +3 -0
  38. package/dist/ManagedRuntime.js.map +1 -1
  39. package/dist/Metric.d.ts.map +1 -1
  40. package/dist/Metric.js +4 -3
  41. package/dist/Metric.js.map +1 -1
  42. package/dist/MutableList.d.ts.map +1 -1
  43. package/dist/MutableList.js +4 -0
  44. package/dist/MutableList.js.map +1 -1
  45. package/dist/Optic.d.ts.map +1 -1
  46. package/dist/Optic.js +5 -4
  47. package/dist/Optic.js.map +1 -1
  48. package/dist/Option.d.ts.map +1 -1
  49. package/dist/Option.js +2 -1
  50. package/dist/Option.js.map +1 -1
  51. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  52. package/dist/PartitionedSemaphore.js +1 -4
  53. package/dist/PartitionedSemaphore.js.map +1 -1
  54. package/dist/Record.d.ts +93 -1
  55. package/dist/Record.d.ts.map +1 -1
  56. package/dist/Record.js +57 -19
  57. package/dist/Record.js.map +1 -1
  58. package/dist/References.d.ts +0 -45
  59. package/dist/References.d.ts.map +1 -1
  60. package/dist/References.js +0 -45
  61. package/dist/References.js.map +1 -1
  62. package/dist/Request.d.ts.map +1 -1
  63. package/dist/Request.js +9 -6
  64. package/dist/Request.js.map +1 -1
  65. package/dist/Result.d.ts.map +1 -1
  66. package/dist/Result.js +2 -1
  67. package/dist/Result.js.map +1 -1
  68. package/dist/Schema.d.ts +1269 -496
  69. package/dist/Schema.d.ts.map +1 -1
  70. package/dist/Schema.js +2308 -614
  71. package/dist/Schema.js.map +1 -1
  72. package/dist/SchemaAST.d.ts +2 -2
  73. package/dist/SchemaAST.d.ts.map +1 -1
  74. package/dist/SchemaAST.js +189 -130
  75. package/dist/SchemaAST.js.map +1 -1
  76. package/dist/SchemaError.js +1 -1
  77. package/dist/SchemaError.js.map +1 -1
  78. package/dist/SchemaGetter.d.ts +13 -11
  79. package/dist/SchemaGetter.d.ts.map +1 -1
  80. package/dist/SchemaGetter.js +34 -24
  81. package/dist/SchemaGetter.js.map +1 -1
  82. package/dist/SchemaIssue.js +1 -1
  83. package/dist/SchemaIssue.js.map +1 -1
  84. package/dist/SchemaParser.d.ts.map +1 -1
  85. package/dist/SchemaParser.js +1 -12
  86. package/dist/SchemaParser.js.map +1 -1
  87. package/dist/SchemaRepresentation.d.ts +403 -1504
  88. package/dist/SchemaRepresentation.d.ts.map +1 -1
  89. package/dist/SchemaRepresentation.js +294 -2852
  90. package/dist/SchemaRepresentation.js.map +1 -1
  91. package/dist/SchemaTransformation.d.ts +2 -2
  92. package/dist/SchemaTransformation.js +3 -3
  93. package/dist/SchemaTransformation.js.map +1 -1
  94. package/dist/Semaphore.d.ts +5 -3
  95. package/dist/Semaphore.d.ts.map +1 -1
  96. package/dist/Semaphore.js.map +1 -1
  97. package/dist/Stream.d.ts +15 -9
  98. package/dist/Stream.d.ts.map +1 -1
  99. package/dist/Stream.js +46 -16
  100. package/dist/Stream.js.map +1 -1
  101. package/dist/Struct.d.ts.map +1 -1
  102. package/dist/Struct.js +5 -4
  103. package/dist/Struct.js.map +1 -1
  104. package/dist/Types.d.ts +1 -3
  105. package/dist/Types.d.ts.map +1 -1
  106. package/dist/index.d.ts +0 -4
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +0 -4
  109. package/dist/index.js.map +1 -1
  110. package/dist/internal/core.js +3 -2
  111. package/dist/internal/core.js.map +1 -1
  112. package/dist/internal/effect.js +119 -53
  113. package/dist/internal/effect.js.map +1 -1
  114. package/dist/internal/matcher.js +1 -1
  115. package/dist/internal/matcher.js.map +1 -1
  116. package/dist/internal/record.d.ts +0 -3
  117. package/dist/internal/record.d.ts.map +1 -1
  118. package/dist/internal/record.js +10 -5
  119. package/dist/internal/record.js.map +1 -1
  120. package/dist/internal/references.js +0 -4
  121. package/dist/internal/references.js.map +1 -1
  122. package/dist/internal/schema/annotations.js +12 -0
  123. package/dist/internal/schema/annotations.js.map +1 -1
  124. package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
  125. package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
  126. package/dist/internal/schema/fromJsonSchemaDocument.js +743 -0
  127. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
  128. package/dist/internal/schema/fromRepresentation.d.ts +2 -0
  129. package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
  130. package/dist/internal/schema/fromRepresentation.js +252 -0
  131. package/dist/internal/schema/fromRepresentation.js.map +1 -0
  132. package/dist/internal/schema/schema.js +28 -40
  133. package/dist/internal/schema/schema.js.map +1 -1
  134. package/dist/internal/schema/{arbitrary.d.ts → toArbitrary.d.ts} +1 -1
  135. package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
  136. package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -9
  137. package/dist/internal/schema/toArbitrary.js.map +1 -0
  138. package/dist/internal/schema/toCodeDocument.d.ts +2 -0
  139. package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
  140. package/dist/internal/schema/toCodeDocument.js +438 -0
  141. package/dist/internal/schema/toCodeDocument.js.map +1 -0
  142. package/dist/internal/schema/toEquivalence.d.ts +2 -0
  143. package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
  144. package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
  145. package/dist/internal/schema/toEquivalence.js.map +1 -0
  146. package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
  147. package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
  148. package/dist/internal/schema/toJsonSchemaDocument.js +466 -0
  149. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
  150. package/dist/internal/schema/toRepresentation.d.ts +2 -0
  151. package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
  152. package/dist/internal/schema/toRepresentation.js +369 -0
  153. package/dist/internal/schema/toRepresentation.js.map +1 -0
  154. package/dist/internal/stackTraceLimit.js +3 -6
  155. package/dist/internal/stackTraceLimit.js.map +1 -1
  156. package/dist/testing/TestClock.js +4 -1
  157. package/dist/testing/TestClock.js.map +1 -1
  158. package/dist/unstable/ai/AiError.d.ts +26 -26
  159. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  160. package/dist/unstable/ai/AiError.js +5 -4
  161. package/dist/unstable/ai/AiError.js.map +1 -1
  162. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +21 -6
  163. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  164. package/dist/unstable/ai/AnthropicStructuredOutput.js +86 -316
  165. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  166. package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
  167. package/dist/unstable/ai/EmbeddingModel.js +1 -1
  168. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  169. package/dist/unstable/ai/LanguageModel.d.ts +4 -1
  170. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  171. package/dist/unstable/ai/LanguageModel.js +19 -17
  172. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  173. package/dist/unstable/ai/McpSchema.d.ts +197 -197
  174. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  175. package/dist/unstable/ai/McpSchema.js +13 -13
  176. package/dist/unstable/ai/McpSchema.js.map +1 -1
  177. package/dist/unstable/ai/McpServer.d.ts +4 -4
  178. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  179. package/dist/unstable/ai/McpServer.js +116 -49
  180. package/dist/unstable/ai/McpServer.js.map +1 -1
  181. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +32 -10
  182. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  183. package/dist/unstable/ai/OpenAiStructuredOutput.js +193 -377
  184. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  185. package/dist/unstable/ai/Response.d.ts +19 -19
  186. package/dist/unstable/ai/Response.d.ts.map +1 -1
  187. package/dist/unstable/ai/Response.js +14 -14
  188. package/dist/unstable/ai/Response.js.map +1 -1
  189. package/dist/unstable/ai/Tool.d.ts +4 -0
  190. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  191. package/dist/unstable/ai/Tool.js +11 -3
  192. package/dist/unstable/ai/Tool.js.map +1 -1
  193. package/dist/unstable/ai/Toolkit.d.ts +9 -1
  194. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  195. package/dist/unstable/ai/Toolkit.js +14 -10
  196. package/dist/unstable/ai/Toolkit.js.map +1 -1
  197. package/dist/unstable/ai/internal/codec-transformer.js +15 -12
  198. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  199. package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
  200. package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
  201. package/dist/unstable/ai/internal/structured-output.js +316 -0
  202. package/dist/unstable/ai/internal/structured-output.js.map +1 -0
  203. package/dist/unstable/cli/CliError.d.ts +40 -2
  204. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  205. package/dist/unstable/cli/CliError.js +45 -6
  206. package/dist/unstable/cli/CliError.js.map +1 -1
  207. package/dist/unstable/cli/Command.js +14 -5
  208. package/dist/unstable/cli/Command.js.map +1 -1
  209. package/dist/unstable/cli/Param.js +3 -3
  210. package/dist/unstable/cli/Param.js.map +1 -1
  211. package/dist/unstable/cli/Primitive.js +1 -1
  212. package/dist/unstable/cli/Primitive.js.map +1 -1
  213. package/dist/unstable/cli/internal/command.d.ts +3 -1
  214. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  215. package/dist/unstable/cli/internal/command.js +11 -4
  216. package/dist/unstable/cli/internal/command.js.map +1 -1
  217. package/dist/unstable/cli/internal/config.d.ts +0 -48
  218. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  219. package/dist/unstable/cli/internal/config.js +8 -10
  220. package/dist/unstable/cli/internal/config.js.map +1 -1
  221. package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
  222. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  223. package/dist/unstable/cluster/Entity.js +1 -1
  224. package/dist/unstable/cluster/Entity.js.map +1 -1
  225. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  226. package/dist/unstable/cluster/Envelope.js +2 -1
  227. package/dist/unstable/cluster/Envelope.js.map +1 -1
  228. package/dist/unstable/cluster/Reply.js +1 -1
  229. package/dist/unstable/cluster/Reply.js.map +1 -1
  230. package/dist/unstable/cluster/Runner.d.ts +1 -1
  231. package/dist/unstable/cluster/Runner.js +1 -1
  232. package/dist/unstable/cluster/Runner.js.map +1 -1
  233. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  234. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  235. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  236. package/dist/unstable/cluster/ShardId.js +1 -1
  237. package/dist/unstable/cluster/ShardId.js.map +1 -1
  238. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  239. package/dist/unstable/cluster/Sharding.js +125 -24
  240. package/dist/unstable/cluster/Sharding.js.map +1 -1
  241. package/dist/unstable/cluster/ShardingConfig.d.ts +10 -2
  242. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  243. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  244. package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
  245. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  246. package/dist/unstable/cluster/SingleRunner.js +2 -1
  247. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  248. package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
  249. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  250. package/dist/unstable/cluster/SqlMessageStorage.js +55 -24
  251. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  252. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  253. package/dist/unstable/cluster/SqlRunnerStorage.js +109 -62
  254. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  255. package/dist/unstable/cluster/internal/entityManager.js +19 -7
  256. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  257. package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
  258. package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
  259. package/dist/unstable/cluster/internal/shardLock.js +4 -0
  260. package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
  261. package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
  262. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  263. package/dist/unstable/devtools/DevToolsSchema.js +8 -5
  264. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  265. package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
  266. package/dist/unstable/eventlog/EventJournal.js +1 -1
  267. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  268. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  269. package/dist/unstable/eventlog/EventLog.js +15 -11
  270. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  271. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  272. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  273. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  274. package/dist/unstable/eventlog/EventLogMessage.d.ts +26 -26
  275. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  276. package/dist/unstable/eventlog/EventLogMessage.js +8 -3
  277. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  278. package/dist/unstable/eventlog/EventLogRemote.d.ts +1 -1
  279. package/dist/unstable/eventlog/SqlEventJournal.js +2 -2
  280. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  281. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
  282. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  283. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
  284. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  285. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  286. package/dist/unstable/http/Cookies.js +24 -22
  287. package/dist/unstable/http/Cookies.js.map +1 -1
  288. package/dist/unstable/http/Headers.js +8 -8
  289. package/dist/unstable/http/Headers.js.map +1 -1
  290. package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
  291. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  292. package/dist/unstable/http/HttpClientRequest.js +14 -0
  293. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  294. package/dist/unstable/http/HttpRouter.d.ts +2 -2
  295. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  296. package/dist/unstable/http/HttpRouter.js.map +1 -1
  297. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  298. package/dist/unstable/http/HttpServerRequest.js +5 -4
  299. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  300. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  301. package/dist/unstable/http/Multipart.js +17 -15
  302. package/dist/unstable/http/Multipart.js.map +1 -1
  303. package/dist/unstable/http/Template.js +1 -1
  304. package/dist/unstable/http/Template.js.map +1 -1
  305. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  306. package/dist/unstable/http/UrlParams.js +17 -14
  307. package/dist/unstable/http/UrlParams.js.map +1 -1
  308. package/dist/unstable/httpapi/HttpApi.js +3 -3
  309. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  310. package/dist/unstable/httpapi/HttpApiClient.js +5 -5
  311. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  312. package/dist/unstable/httpapi/HttpApiGroup.js +1 -1
  313. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  314. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  315. package/dist/unstable/httpapi/OpenApi.js +37 -24
  316. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  317. package/dist/unstable/observability/OtlpExporter.d.ts +72 -1
  318. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  319. package/dist/unstable/observability/OtlpExporter.js +69 -4
  320. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  321. package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
  322. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  323. package/dist/unstable/observability/OtlpLogger.js +2 -2
  324. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  325. package/dist/unstable/observability/OtlpMetrics.d.ts +7 -3
  326. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  327. package/dist/unstable/observability/OtlpMetrics.js +5 -2
  328. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  329. package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
  330. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  331. package/dist/unstable/observability/OtlpTracer.js +2 -2
  332. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  333. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  334. package/dist/unstable/persistence/Persistable.js +2 -1
  335. package/dist/unstable/persistence/Persistable.js.map +1 -1
  336. package/dist/unstable/persistence/RateLimiter.d.ts +2 -2
  337. package/dist/unstable/persistence/RateLimiter.js +2 -2
  338. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  339. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  340. package/dist/unstable/persistence/Redis.js +2 -2
  341. package/dist/unstable/persistence/Redis.js.map +1 -1
  342. package/dist/unstable/process/ChildProcessSpawner.js +3 -1
  343. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  344. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  345. package/dist/unstable/reactivity/AsyncResult.js +4 -3
  346. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  347. package/dist/unstable/reactivity/Atom.d.ts +83 -0
  348. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  349. package/dist/unstable/reactivity/Atom.js +31 -0
  350. package/dist/unstable/reactivity/Atom.js.map +1 -1
  351. package/dist/unstable/reactivity/AtomRegistry.js +1 -1
  352. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  353. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  354. package/dist/unstable/rpc/RpcClient.js +2 -1
  355. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  356. package/dist/unstable/schema/VariantSchema.d.ts +1 -2
  357. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  358. package/dist/unstable/schema/VariantSchema.js +13 -10
  359. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  360. package/dist/unstable/socket/Socket.d.ts +1 -1
  361. package/dist/unstable/socket/Socket.js +1 -1
  362. package/dist/unstable/socket/Socket.js.map +1 -1
  363. package/dist/unstable/sql/SqlError.d.ts +2 -2
  364. package/dist/unstable/sql/SqlError.js +2 -2
  365. package/dist/unstable/sql/SqlError.js.map +1 -1
  366. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  367. package/dist/unstable/sql/Statement.js +7 -6
  368. package/dist/unstable/sql/Statement.js.map +1 -1
  369. package/package.json +1 -1
  370. package/src/Array.ts +86 -25
  371. package/src/Channel.ts +32 -14
  372. package/src/Config.ts +6 -5
  373. package/src/ConfigProvider.ts +7 -7
  374. package/src/Data.ts +3 -2
  375. package/src/Effect.ts +70 -116
  376. package/src/FiberHandle.ts +3 -2
  377. package/src/Iterable.ts +2 -1
  378. package/src/JsonPatch.ts +4 -3
  379. package/src/JsonSchema.ts +9 -11
  380. package/src/Logger.ts +3 -2
  381. package/src/ManagedRuntime.ts +13 -0
  382. package/src/Metric.ts +4 -3
  383. package/src/MutableList.ts +4 -0
  384. package/src/Optic.ts +5 -4
  385. package/src/Option.ts +2 -1
  386. package/src/PartitionedSemaphore.ts +1 -4
  387. package/src/Record.ts +119 -22
  388. package/src/References.ts +0 -46
  389. package/src/Request.ts +5 -7
  390. package/src/Result.ts +2 -1
  391. package/src/Schema.ts +2538 -987
  392. package/src/SchemaAST.ts +228 -149
  393. package/src/SchemaError.ts +1 -1
  394. package/src/SchemaGetter.ts +36 -29
  395. package/src/SchemaIssue.ts +1 -1
  396. package/src/SchemaParser.ts +1 -25
  397. package/src/SchemaRepresentation.ts +697 -3398
  398. package/src/SchemaTransformation.ts +3 -3
  399. package/src/Semaphore.ts +5 -3
  400. package/src/Stream.ts +63 -19
  401. package/src/Struct.ts +5 -4
  402. package/src/Types.ts +1 -3
  403. package/src/index.ts +0 -5
  404. package/src/internal/core.ts +4 -3
  405. package/src/internal/effect.ts +132 -70
  406. package/src/internal/matcher.ts +1 -1
  407. package/src/internal/record.ts +11 -7
  408. package/src/internal/references.ts +0 -5
  409. package/src/internal/schema/annotations.ts +44 -0
  410. package/src/internal/schema/fromJsonSchemaDocument.ts +957 -0
  411. package/src/internal/schema/fromRepresentation.ts +345 -0
  412. package/src/internal/schema/schema.ts +45 -46
  413. package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +8 -10
  414. package/src/internal/schema/toCodeDocument.ts +572 -0
  415. package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
  416. package/src/internal/schema/toJsonSchemaDocument.ts +475 -0
  417. package/src/internal/schema/toRepresentation.ts +401 -0
  418. package/src/internal/stackTraceLimit.ts +3 -7
  419. package/src/testing/TestClock.ts +1 -1
  420. package/src/unstable/ai/AiError.ts +5 -4
  421. package/src/unstable/ai/AnthropicStructuredOutput.ts +102 -333
  422. package/src/unstable/ai/EmbeddingModel.ts +1 -1
  423. package/src/unstable/ai/LanguageModel.ts +30 -28
  424. package/src/unstable/ai/McpSchema.ts +15 -15
  425. package/src/unstable/ai/McpServer.ts +172 -56
  426. package/src/unstable/ai/OpenAiStructuredOutput.ts +230 -395
  427. package/src/unstable/ai/Response.ts +24 -24
  428. package/src/unstable/ai/Tool.ts +22 -4
  429. package/src/unstable/ai/Toolkit.ts +19 -7
  430. package/src/unstable/ai/internal/codec-transformer.ts +13 -7
  431. package/src/unstable/ai/internal/structured-output.ts +458 -0
  432. package/src/unstable/cli/CliError.ts +51 -5
  433. package/src/unstable/cli/Command.ts +4 -4
  434. package/src/unstable/cli/Param.ts +3 -3
  435. package/src/unstable/cli/Primitive.ts +1 -1
  436. package/src/unstable/cli/internal/command.ts +13 -5
  437. package/src/unstable/cli/internal/config.ts +8 -10
  438. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -3
  439. package/src/unstable/cluster/Entity.ts +1 -1
  440. package/src/unstable/cluster/Envelope.ts +2 -1
  441. package/src/unstable/cluster/Reply.ts +1 -1
  442. package/src/unstable/cluster/Runner.ts +1 -1
  443. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  444. package/src/unstable/cluster/ShardId.ts +1 -1
  445. package/src/unstable/cluster/Sharding.ts +161 -34
  446. package/src/unstable/cluster/ShardingConfig.ts +5 -1
  447. package/src/unstable/cluster/SingleRunner.ts +4 -2
  448. package/src/unstable/cluster/SqlMessageStorage.ts +83 -35
  449. package/src/unstable/cluster/SqlRunnerStorage.ts +186 -116
  450. package/src/unstable/cluster/internal/entityManager.ts +31 -10
  451. package/src/unstable/cluster/internal/shardLock.ts +9 -0
  452. package/src/unstable/devtools/DevToolsSchema.ts +10 -5
  453. package/src/unstable/eventlog/EventJournal.ts +1 -1
  454. package/src/unstable/eventlog/EventLog.ts +21 -11
  455. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  456. package/src/unstable/eventlog/EventLogMessage.ts +10 -3
  457. package/src/unstable/eventlog/SqlEventJournal.ts +2 -2
  458. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
  459. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
  460. package/src/unstable/http/Cookies.ts +29 -24
  461. package/src/unstable/http/Headers.ts +8 -8
  462. package/src/unstable/http/HttpClientRequest.ts +57 -0
  463. package/src/unstable/http/HttpRouter.ts +6 -3
  464. package/src/unstable/http/HttpServerRequest.ts +5 -4
  465. package/src/unstable/http/Multipart.ts +16 -13
  466. package/src/unstable/http/Template.ts +1 -1
  467. package/src/unstable/http/UrlParams.ts +17 -14
  468. package/src/unstable/httpapi/HttpApi.ts +3 -3
  469. package/src/unstable/httpapi/HttpApiClient.ts +5 -5
  470. package/src/unstable/httpapi/HttpApiGroup.ts +1 -1
  471. package/src/unstable/httpapi/OpenApi.ts +52 -28
  472. package/src/unstable/observability/OtlpExporter.ts +109 -5
  473. package/src/unstable/observability/OtlpLogger.ts +5 -5
  474. package/src/unstable/observability/OtlpMetrics.ts +8 -4
  475. package/src/unstable/observability/OtlpTracer.ts +8 -4
  476. package/src/unstable/persistence/Persistable.ts +3 -2
  477. package/src/unstable/persistence/RateLimiter.ts +2 -2
  478. package/src/unstable/persistence/Redis.ts +2 -2
  479. package/src/unstable/process/ChildProcessSpawner.ts +1 -1
  480. package/src/unstable/reactivity/AsyncResult.ts +4 -3
  481. package/src/unstable/reactivity/Atom.ts +92 -0
  482. package/src/unstable/reactivity/AtomRegistry.ts +1 -1
  483. package/src/unstable/rpc/RpcClient.ts +2 -1
  484. package/src/unstable/schema/VariantSchema.ts +14 -24
  485. package/src/unstable/socket/Socket.ts +1 -1
  486. package/src/unstable/sql/SqlError.ts +2 -2
  487. package/src/unstable/sql/Statement.ts +7 -6
  488. package/dist/SchemaUtils.d.ts +0 -28
  489. package/dist/SchemaUtils.d.ts.map +0 -1
  490. package/dist/SchemaUtils.js +0 -45
  491. package/dist/SchemaUtils.js.map +0 -1
  492. package/dist/internal/schema/arbitrary.d.ts.map +0 -1
  493. package/dist/internal/schema/arbitrary.js.map +0 -1
  494. package/dist/internal/schema/equivalence.d.ts +0 -2
  495. package/dist/internal/schema/equivalence.d.ts.map +0 -1
  496. package/dist/internal/schema/equivalence.js.map +0 -1
  497. package/dist/internal/schema/representation.d.ts +0 -2
  498. package/dist/internal/schema/representation.d.ts.map +0 -1
  499. package/dist/internal/schema/representation.js +0 -865
  500. package/dist/internal/schema/representation.js.map +0 -1
  501. package/src/SchemaUtils.ts +0 -51
  502. package/src/internal/schema/representation.ts +0 -795
@@ -83,8 +83,8 @@ import {
83
83
  } from "./core.ts"
84
84
  import * as doNotation from "./doNotation.ts"
85
85
  import * as InternalMetric from "./metric.ts"
86
+ import * as InternalRecord from "./record.ts"
86
87
  import {
87
- CurrentConcurrency,
88
88
  CurrentErrorReporters,
89
89
  CurrentLogAnnotations,
90
90
  CurrentLogLevel,
@@ -746,7 +746,7 @@ const fiberMiddleware = {
746
746
  const fiberStackAnnotations = (fiber: Fiber.Fiber<any, any>) => {
747
747
  if (!fiber.currentStackFrame) return undefined
748
748
  const annotations = new Map<string, unknown>()
749
- annotations.set(CauseStackTrace.key, fiber.currentStackFrame)
749
+ annotations.set(InterruptorStackTrace.key, fiber.currentStackFrame)
750
750
  return Context.makeUnsafe(annotations)
751
751
  }
752
752
 
@@ -841,6 +841,10 @@ export const fiberJoinAll = <A extends Iterable<Fiber.Fiber<any, any>>>(self: A)
841
841
  }
842
842
  }))
843
843
  }
844
+ return sync(() => {
845
+ failed = true
846
+ cancels.forEach((cancel) => cancel())
847
+ })
844
848
  })
845
849
 
846
850
  /** @internal */
@@ -2107,6 +2111,32 @@ export const updateService: {
2107
2111
  })
2108
2112
  )
2109
2113
 
2114
+ /** @internal */
2115
+ export const updateServiceScoped = <I, A>(
2116
+ service: Context.Key<I, A>,
2117
+ update: (value: A) => A,
2118
+ options?: {
2119
+ readonly reset?: ((original: A, updated: A, current: A) => A) | undefined
2120
+ } | undefined
2121
+ ): Effect.Effect<void, never, I | Scope.Scope> =>
2122
+ uninterruptible(withFiber((fiber) => {
2123
+ const original = Context.getUnsafe(fiber.context, service)
2124
+ const updated = update(original)
2125
+ fiber.setContext(Context.add(fiber.context, service, updated))
2126
+ return scopeAddFinalizerExit(Context.getUnsafe(fiber.context, scopeTag), (_) => {
2127
+ const current = Context.getUnsafe(fiber.context, service)
2128
+ let next: A
2129
+ if (options?.reset === undefined) {
2130
+ if (current !== updated) return void_
2131
+ next = original
2132
+ } else {
2133
+ next = options.reset(original, updated, current)
2134
+ }
2135
+ fiber.setContext(Context.add(fiber.context, service, next))
2136
+ return void_
2137
+ })
2138
+ }))
2139
+
2110
2140
  /** @internal */
2111
2141
  export const context = <R = never>(): Effect.Effect<Context.Context<R>> => getContext as any
2112
2142
  const getContext = withFiber((fiber) => succeed(fiber.context))
@@ -2218,17 +2248,6 @@ export const provideServiceEffect: {
2218
2248
  flatMap(acquire, (implementation) => provideService(self, service, implementation))
2219
2249
  )
2220
2250
 
2221
- /** @internal */
2222
- export const withConcurrency: {
2223
- (
2224
- concurrency: "unbounded" | number
2225
- ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
2226
- <A, E, R>(
2227
- self: Effect.Effect<A, E, R>,
2228
- concurrency: "unbounded" | number
2229
- ): Effect.Effect<A, E, R>
2230
- } = provideService(CurrentConcurrency)
2231
-
2232
2251
  // ----------------------------------------------------------------------------
2233
2252
  // zipping
2234
2253
  // ----------------------------------------------------------------------------
@@ -4261,16 +4280,19 @@ const setInterruptible: (interruptible: boolean) => Primitive = makePrimitive({
4261
4280
  const setInterruptibleTrue = setInterruptible(true)
4262
4281
  const setInterruptibleFalse = setInterruptible(false)
4263
4282
 
4283
+ const setFiberInterruptible = (fiber: FiberImpl): Effect.Effect<never> | undefined => {
4284
+ fiber.interruptible = true
4285
+ fiber._stack.push(setInterruptibleFalse)
4286
+ if (fiber._interruptedCause) return failCause(fiber._interruptedCause)
4287
+ }
4288
+
4264
4289
  /** @internal */
4265
4290
  export const interruptible = <A, E, R>(
4266
4291
  self: Effect.Effect<A, E, R>
4267
4292
  ): Effect.Effect<A, E, R> =>
4268
4293
  withFiber((fiber) => {
4269
4294
  if (fiber.interruptible) return self
4270
- fiber.interruptible = true
4271
- fiber._stack.push(setInterruptibleFalse)
4272
- if (fiber._interruptedCause) return failCause(fiber._interruptedCause)
4273
- return self
4295
+ return setFiberInterruptible(fiber) ?? self
4274
4296
  })
4275
4297
 
4276
4298
  /** @internal */
@@ -4298,9 +4320,9 @@ export const interruptibleMask = <A, E, R>(
4298
4320
  ): Effect.Effect<A, E, R> =>
4299
4321
  withFiber((fiber) => {
4300
4322
  if (fiber.interruptible) return f(identity)
4301
- fiber.interruptible = true
4302
- fiber._stack.push(setInterruptibleFalse)
4303
- return f(uninterruptible)
4323
+ const interrupted = setFiberInterruptible(fiber)
4324
+ const effect = f(uninterruptible)
4325
+ return interrupted ?? effect
4304
4326
  })
4305
4327
 
4306
4328
  /** @internal */
@@ -4346,7 +4368,7 @@ export const all = <
4346
4368
  Object.entries(arg),
4347
4369
  ([key, effect]) =>
4348
4370
  map(options?.mode === "result" ? result(effect) : effect, (value) => {
4349
- out[key] = value
4371
+ InternalRecord.assignProperty(out, key, value)
4350
4372
  }),
4351
4373
  {
4352
4374
  discard: true,
@@ -4608,10 +4630,8 @@ export const forEach: {
4608
4630
  readonly discard?: boolean | undefined
4609
4631
  }
4610
4632
  ): Effect.Effect<any, E, R> =>
4611
- withFiber((parent) => {
4612
- const concurrencyOption = options?.concurrency === "inherit"
4613
- ? parent.getRef(CurrentConcurrency)
4614
- : (options?.concurrency ?? 1)
4633
+ suspend(() => {
4634
+ const concurrencyOption = options?.concurrency ?? 1
4615
4635
  const concurrency = concurrencyOption === "unbounded"
4616
4636
  ? Number.POSITIVE_INFINITY
4617
4637
  : Math.max(1, concurrencyOption)
@@ -4695,6 +4715,16 @@ const iterateEagerImpl = <S, A, X, E, R, E2>(options: {
4695
4715
  let nextIndex = index
4696
4716
  const exits: Array<Exit.Exit<X, E> | undefined> | undefined = orderedStep ? new Array(end) : undefined
4697
4717
 
4718
+ const failDefect = (error: unknown): Effect.Effect<void, E | E2, R> => {
4719
+ const defect = exitDie(error)
4720
+ terminal = defect
4721
+ done = true
4722
+ interrupted = true
4723
+ return fibers && fibers.size > 0
4724
+ ? flatMap(uninterruptible(fiberInterruptAll(Array.from(fibers))), () => defect)
4725
+ : defect
4726
+ }
4727
+
4698
4728
  const runStep = (item: A, exit: Exit.Exit<X, E>, currentIndex: number): Exit.Exit<void, E | E2> | void => {
4699
4729
  if (!orderedStep) return step(state, item, exit, currentIndex)
4700
4730
  if (terminal) return terminal
@@ -4732,9 +4762,15 @@ const iterateEagerImpl = <S, A, X, E, R, E2>(options: {
4732
4762
  } else if (!parentFiber) {
4733
4763
  return callback((cb) => {
4734
4764
  parentFiber = getCurrentFiber()!
4765
+ fibers = new Set()
4735
4766
  effect = eff
4736
4767
  resume = cb
4737
- const result = go()
4768
+ let result: Effect.Effect<void, E | E2, R> | undefined
4769
+ try {
4770
+ result = go()
4771
+ } catch (error) {
4772
+ return cb(failDefect(error))
4773
+ }
4738
4774
  if (result) return cb(result)
4739
4775
  return suspend(() => {
4740
4776
  terminal = exitVoid
@@ -4756,43 +4792,46 @@ const iterateEagerImpl = <S, A, X, E, R, E2>(options: {
4756
4792
  }
4757
4793
 
4758
4794
  // Add the fiber to the Set
4759
- if (fibers) fibers.add(fiber)
4760
- else fibers = new Set([fiber])
4795
+ fibers!.add(fiber)
4761
4796
 
4762
4797
  const currentIndex = index
4763
4798
  fiber.addObserver((exit) => {
4764
4799
  fibers!.delete(fiber)
4765
- if (terminal) {
4766
- if (!interrupted && exit._tag === "Failure") {
4767
- for (const reason of exit.cause.reasons) {
4768
- if (reason._tag === "Interrupt") continue
4769
- else if (terminal._tag === "Failure") {
4770
- ;(terminal.cause.reasons as Array<any>).push(reason)
4771
- } else {
4772
- terminal = exitFailCause(causeFromReasons([reason]))
4800
+ try {
4801
+ if (terminal) {
4802
+ if (!interrupted && exit._tag === "Failure") {
4803
+ for (const reason of exit.cause.reasons) {
4804
+ if (reason._tag === "Interrupt") continue
4805
+ else if (terminal._tag === "Failure") {
4806
+ ;(terminal.cause.reasons as Array<any>).push(reason)
4807
+ } else {
4808
+ terminal = exitFailCause(causeFromReasons([reason]))
4809
+ }
4773
4810
  }
4774
4811
  }
4812
+ } else {
4813
+ const result = runStep(item, exit, currentIndex)
4814
+ if (result) {
4815
+ terminal = result._tag === "Failure"
4816
+ ? exitFailCause(causeFromReasons(result.cause.reasons.slice()))
4817
+ : result
4818
+ go()
4819
+ }
4775
4820
  }
4776
- } else {
4777
- const result = runStep(item, exit, currentIndex)
4778
- if (result) {
4779
- terminal = result._tag === "Failure"
4780
- ? exitFailCause(causeFromReasons(result.cause.reasons.slice()))
4781
- : result
4782
- go()
4783
- }
4784
- }
4785
4821
 
4786
- if (paused) {
4787
- const eff = go()
4788
- if (eff) resume!(eff)
4789
- } else if (done && fibers!.size === 0) {
4790
- resume!(terminal ?? void_)
4822
+ if (paused) {
4823
+ const eff = go()
4824
+ if (eff) resume!(eff)
4825
+ } else if (done && fibers!.size === 0) {
4826
+ resume!(terminal ?? void_)
4827
+ }
4828
+ } catch (error) {
4829
+ resume!(failDefect(error))
4791
4830
  }
4792
4831
  })
4793
4832
 
4794
4833
  // Check if we have reached the concurrency limit
4795
- if (fibers.size < concurrency) continue
4834
+ if (fibers!.size < concurrency) continue
4796
4835
  paused = true
4797
4836
  index++
4798
4837
  return
@@ -5211,7 +5250,7 @@ export const awaitAllChildren = <A, E, R>(
5211
5250
  self: Effect.Effect<A, E, R>
5212
5251
  ): Effect.Effect<A, E, R> =>
5213
5252
  withFiber((fiber) => {
5214
- const initialChildren = fiber._children && Arr.fromIterable(fiber._children)
5253
+ const initialChildren = fiber._children && new Set(fiber._children)
5215
5254
  return onExit(
5216
5255
  self,
5217
5256
  (_) => {
@@ -5221,7 +5260,7 @@ export const awaitAllChildren = <A, E, R>(
5221
5260
  } else if (initialChildren) {
5222
5261
  children = Iterable.filter(
5223
5262
  children,
5224
- (child: FiberImpl<any, any>) => !initialChildren.includes(child)
5263
+ (child: FiberImpl<any, any>) => !initialChildren.has(child)
5225
5264
  ) as Set<FiberImpl<any, any>>
5226
5265
  }
5227
5266
  return asVoid(fiberAwaitAll(children))
@@ -5434,9 +5473,9 @@ export const runSyncExitWith = <R>(context: Context.Context<R>) => {
5434
5473
  return <A, E>(effect: Effect.Effect<A, E, R>): Exit.Exit<A, E> => {
5435
5474
  if (effectIsExit(effect)) return effect
5436
5475
  const scheduler = new Scheduler.MixedScheduler("sync")
5437
- const fiber = runFork(effect, { scheduler })
5438
- fiber.currentDispatcher?.flush()
5439
- return (fiber as FiberImpl<A, E>)._exit ?? exitDie(new AsyncFiberError(fiber))
5476
+ const fiber = runFork(effect, { scheduler }) as FiberImpl<A, E>
5477
+ fiber._dispatcher?.flush()
5478
+ return fiber._exit ?? exitDie(new AsyncFiberError(fiber))
5440
5479
  }
5441
5480
  }
5442
5481
 
@@ -5463,7 +5502,7 @@ const succeedFalse = succeed(false)
5463
5502
 
5464
5503
  class Latch implements _Latch.Latch {
5465
5504
  waiters: Array<(_: Effect.Effect<void>) => void> = []
5466
- scheduled = false
5505
+ scheduled: Array<(_: Effect.Effect<void>) => void> | undefined = undefined
5467
5506
  private _isOpen: boolean
5468
5507
 
5469
5508
  constructor(isOpen: boolean) {
@@ -5471,17 +5510,35 @@ class Latch implements _Latch.Latch {
5471
5510
  }
5472
5511
 
5473
5512
  private scheduleUnsafe(fiber: Fiber.Fiber<unknown, unknown>) {
5474
- if (this.scheduled || this.waiters.length === 0) {
5513
+ if (this.waiters.length === 0) {
5475
5514
  return succeedTrue
5476
5515
  }
5477
- this.scheduled = true
5478
- fiber.currentDispatcher.scheduleTask(this.flushWaiters, 0)
5516
+ if (this.scheduled === undefined) {
5517
+ this.scheduled = this.waiters
5518
+ fiber.currentDispatcher.scheduleTask(this.flushScheduled, 0)
5519
+ } else {
5520
+ for (let i = 0; i < this.waiters.length; i++) {
5521
+ this.scheduled.push(this.waiters[i])
5522
+ }
5523
+ }
5524
+ this.waiters = []
5479
5525
  return succeedTrue
5480
5526
  }
5481
- private flushWaiters = () => {
5482
- this.scheduled = false
5527
+ private flushScheduled = () => {
5528
+ if (this.scheduled === undefined) return
5529
+ const waiters = this.scheduled
5530
+ this.scheduled = undefined
5531
+ for (let i = 0; i < waiters.length; i++) {
5532
+ waiters[i](exitVoid)
5533
+ }
5534
+ }
5535
+ private flushWaiters() {
5536
+ // swap both arrays out before any resume runs: a resumed waiter can
5537
+ // reentrantly close the latch and register new waiters, which must not
5538
+ // be drained by this flush
5483
5539
  const waiters = this.waiters
5484
5540
  this.waiters = []
5541
+ this.flushScheduled()
5485
5542
  for (let i = 0; i < waiters.length; i++) {
5486
5543
  waiters[i](exitVoid)
5487
5544
  }
@@ -5505,9 +5562,14 @@ class Latch implements _Latch.Latch {
5505
5562
  }
5506
5563
  this.waiters.push(resume)
5507
5564
  return sync(() => {
5508
- const index = this.waiters.indexOf(resume)
5565
+ let index = this.waiters.indexOf(resume)
5509
5566
  if (index !== -1) {
5510
5567
  this.waiters.splice(index, 1)
5568
+ } else if (this.scheduled !== undefined) {
5569
+ index = this.scheduled.indexOf(resume)
5570
+ if (index !== -1) {
5571
+ this.scheduled.splice(index, 1)
5572
+ }
5511
5573
  }
5512
5574
  })
5513
5575
  })
@@ -5859,11 +5921,11 @@ export const annotateSpans: {
5859
5921
  ...args: [Record<string, unknown>] | [key: string, value: unknown]
5860
5922
  ): Effect.Effect<A, E, R> =>
5861
5923
  updateService(effect, TracerSpanAnnotations, (annotations) => {
5862
- const newAnnotations = { ...annotations }
5924
+ const newAnnotations = args.length === 1 ? { ...annotations, ...args[0] } : { ...annotations }
5863
5925
  if (args.length === 1) {
5864
- Object.assign(newAnnotations, args[0])
5926
+ return newAnnotations
5865
5927
  } else {
5866
- newAnnotations[args[0]] = args[1]
5928
+ InternalRecord.assignProperty(newAnnotations, args[0], args[1])
5867
5929
  }
5868
5930
  return newAnnotations
5869
5931
  })
@@ -6134,7 +6196,7 @@ export const annotateLogsScoped: {
6134
6196
  const next = { ...prev }
6135
6197
  for (let i = 0; i < entries.length; i++) {
6136
6198
  const [key, value] = entries[i]
6137
- next[key] = value
6199
+ InternalRecord.assignProperty(next, key, value)
6138
6200
  }
6139
6201
  fiber.setContext(Context.add(fiber.context, CurrentLogAnnotations, next))
6140
6202
  return scopeAddFinalizerExit(Context.getUnsafe(fiber.context, scopeTag), (_) => {
@@ -6143,8 +6205,8 @@ export const annotateLogsScoped: {
6143
6205
  for (let i = 0; i < entries.length; i++) {
6144
6206
  const [key, value] = entries[i]
6145
6207
  if (current[key] !== value) continue
6146
- if (key in prev) {
6147
- next[key] = prev[key]
6208
+ if (Object.hasOwn(prev, key)) {
6209
+ InternalRecord.assignProperty(next, key, prev[key])
6148
6210
  } else {
6149
6211
  delete next[key]
6150
6212
  }
@@ -6488,7 +6550,7 @@ export const tracerLogger = loggerMake<unknown, void>(({ cause, fiber, logLevel,
6488
6550
  if (span === undefined || span._tag === "ExternalSpan") return
6489
6551
  const attributes: Record<string, unknown> = {}
6490
6552
  for (const [key, value] of Object.entries(annotations)) {
6491
- attributes[key] = value
6553
+ InternalRecord.assignProperty(attributes, key, value)
6492
6554
  }
6493
6555
  attributes["effect.fiberId"] = fiber.id
6494
6556
  attributes["effect.logLevel"] = logLevel.toUpperCase()
@@ -396,7 +396,7 @@ export const discriminators = <D extends string>(field: D) =>
396
396
  fields: P
397
397
  ) => {
398
398
  const predicate = makeWhen(
399
- (arg: any) => arg != null && arg[field] in fields,
399
+ (arg: any) => arg != null && Object.hasOwn(fields, arg[field]),
400
400
  (data: any) => (fields as any)[data[field]](data)
401
401
  )
402
402
 
@@ -1,9 +1,5 @@
1
- /**
2
- * @since 4.0.0
3
- */
4
-
5
1
  /** @internal */
6
- export function set<K extends PropertyKey, A>(self: Record<K, A>, key: K, value: A): Record<K, A> {
2
+ export function assignProperty(self: object, key: PropertyKey, value: unknown): void {
7
3
  if (key === "__proto__") {
8
4
  Object.defineProperty(self, key, {
9
5
  value,
@@ -12,7 +8,15 @@ export function set<K extends PropertyKey, A>(self: Record<K, A>, key: K, value:
12
8
  configurable: true
13
9
  })
14
10
  } else {
15
- self[key] = value
11
+ ;(self as any)[key] = value
12
+ }
13
+ }
14
+
15
+ /** @internal */
16
+ export function assignProperties(self: object, source: object): void {
17
+ for (const key of Reflect.ownKeys(source)) {
18
+ if (Object.prototype.propertyIsEnumerable.call(source, key)) {
19
+ assignProperty(self, key, (source as any)[key])
20
+ }
16
21
  }
17
- return self
18
22
  }
@@ -6,11 +6,6 @@ import type { ReadonlyRecord } from "../Record.ts"
6
6
  import type { StackFrame } from "../References.ts"
7
7
  import type { SpanLink } from "../Tracer.ts"
8
8
 
9
- /** @internal */
10
- export const CurrentConcurrency = Context.Reference<"unbounded" | number>("effect/References/CurrentConcurrency", {
11
- defaultValue: () => "unbounded"
12
- })
13
-
14
9
  /** @internal */
15
10
  export const CurrentErrorReporters = Context.Reference<ReadonlySet<ErrorReporter>>(
16
11
  "effect/ErrorReporter/CurrentErrorReporters",
@@ -12,9 +12,35 @@ export function resolveAt<A>(key: string) {
12
12
  return (ast: SchemaAST.AST): A | undefined => resolve(ast)?.[key] as A | undefined
13
13
  }
14
14
 
15
+ /** @internal */
16
+ export const STRUCTURAL_ANNOTATION_KEY = "~structural"
17
+
18
+ /** @internal */
19
+ export const IDENTIFIER_FALLBACK_KEY = "~identifier"
20
+
21
+ /** @internal */
22
+ export const SENTINELS_ANNOTATION_KEY = "~sentinels"
23
+
24
+ /** @internal */
25
+ export const jsonSchemaAnnotationKeys = [
26
+ "title",
27
+ "description",
28
+ "default",
29
+ "examples",
30
+ "readOnly",
31
+ "writeOnly",
32
+ "format",
33
+ "contentEncoding",
34
+ "contentMediaType",
35
+ "contentSchema"
36
+ ] as const
37
+
15
38
  /** @internal */
16
39
  export const resolveIdentifier = resolveAt<string>("identifier")
17
40
 
41
+ /** @internal */
42
+ export const resolveIdentifierFallback = resolveAt<string>(IDENTIFIER_FALLBACK_KEY)
43
+
18
44
  /** @internal */
19
45
  export const resolveTitle = resolveAt<string>("title")
20
46
 
@@ -35,3 +61,21 @@ export const getExpected = memoize((ast: SchemaAST.AST): string => {
35
61
  export function collectBrands(annotations: Schema.Annotations.Annotations | undefined): ReadonlyArray<string> {
36
62
  return annotations !== undefined && Array.isArray(annotations.brands) ? annotations.brands : []
37
63
  }
64
+
65
+ /** @internal */
66
+ export const annotationExcludedKeys = new Set([
67
+ SENTINELS_ANNOTATION_KEY,
68
+ STRUCTURAL_ANNOTATION_KEY,
69
+ "representation",
70
+ "arbitrary",
71
+ "brands",
72
+ "toJsonSchema",
73
+ "toCode",
74
+ "toArbitrary",
75
+ "toEquivalence",
76
+ "toFormatter",
77
+ "toCodec",
78
+ "toCodecJson",
79
+ "toCodecStringTree",
80
+ "toCodecIso"
81
+ ])