effect 4.0.0-beta.43 → 4.0.0-beta.44

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 (837) hide show
  1. package/dist/Cache.d.ts +12 -43
  2. package/dist/Cache.d.ts.map +1 -1
  3. package/dist/Cache.js +15 -42
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/Cause.d.ts +21 -21
  6. package/dist/Cause.d.ts.map +1 -1
  7. package/dist/Cause.js +89 -10
  8. package/dist/Cause.js.map +1 -1
  9. package/dist/Channel.d.ts +42 -19
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +86 -46
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Clock.d.ts +2 -2
  14. package/dist/Clock.d.ts.map +1 -1
  15. package/dist/Clock.js.map +1 -1
  16. package/dist/Config.d.ts +2 -2
  17. package/dist/ConfigProvider.d.ts +5 -5
  18. package/dist/ConfigProvider.d.ts.map +1 -1
  19. package/dist/ConfigProvider.js +5 -5
  20. package/dist/ConfigProvider.js.map +1 -1
  21. package/dist/Console.d.ts +2 -2
  22. package/dist/Console.d.ts.map +1 -1
  23. package/dist/Console.js.map +1 -1
  24. package/dist/Context.d.ts +1150 -0
  25. package/dist/Context.d.ts.map +1 -0
  26. package/dist/{ServiceMap.js → Context.js} +139 -139
  27. package/dist/Context.js.map +1 -0
  28. package/dist/DateTime.d.ts +2 -2
  29. package/dist/DateTime.d.ts.map +1 -1
  30. package/dist/DateTime.js +2 -2
  31. package/dist/DateTime.js.map +1 -1
  32. package/dist/Effect.d.ts +177 -177
  33. package/dist/Effect.d.ts.map +1 -1
  34. package/dist/Effect.js +81 -81
  35. package/dist/Effect.js.map +1 -1
  36. package/dist/ErrorReporter.d.ts +3 -3
  37. package/dist/ErrorReporter.d.ts.map +1 -1
  38. package/dist/ErrorReporter.js +1 -1
  39. package/dist/ErrorReporter.js.map +1 -1
  40. package/dist/ExecutionPlan.d.ts +6 -6
  41. package/dist/ExecutionPlan.d.ts.map +1 -1
  42. package/dist/ExecutionPlan.js +4 -4
  43. package/dist/ExecutionPlan.js.map +1 -1
  44. package/dist/Fiber.d.ts +7 -7
  45. package/dist/Fiber.d.ts.map +1 -1
  46. package/dist/Fiber.js.map +1 -1
  47. package/dist/FiberHandle.d.ts +2 -2
  48. package/dist/FiberHandle.d.ts.map +1 -1
  49. package/dist/FiberHandle.js +4 -4
  50. package/dist/FiberHandle.js.map +1 -1
  51. package/dist/FiberMap.d.ts +2 -2
  52. package/dist/FiberMap.d.ts.map +1 -1
  53. package/dist/FiberMap.js +4 -4
  54. package/dist/FiberMap.js.map +1 -1
  55. package/dist/FiberSet.d.ts +2 -2
  56. package/dist/FiberSet.d.ts.map +1 -1
  57. package/dist/FiberSet.js +4 -4
  58. package/dist/FiberSet.js.map +1 -1
  59. package/dist/FileSystem.d.ts +3 -3
  60. package/dist/FileSystem.d.ts.map +1 -1
  61. package/dist/FileSystem.js +3 -3
  62. package/dist/FileSystem.js.map +1 -1
  63. package/dist/Layer.d.ts +286 -268
  64. package/dist/Layer.d.ts.map +1 -1
  65. package/dist/Layer.js +133 -134
  66. package/dist/Layer.js.map +1 -1
  67. package/dist/LayerMap.d.ts +18 -18
  68. package/dist/LayerMap.d.ts.map +1 -1
  69. package/dist/LayerMap.js +18 -15
  70. package/dist/LayerMap.js.map +1 -1
  71. package/dist/Logger.d.ts +3 -3
  72. package/dist/Logger.d.ts.map +1 -1
  73. package/dist/Logger.js.map +1 -1
  74. package/dist/ManagedRuntime.d.ts +6 -6
  75. package/dist/ManagedRuntime.d.ts.map +1 -1
  76. package/dist/ManagedRuntime.js +18 -21
  77. package/dist/ManagedRuntime.js.map +1 -1
  78. package/dist/Metric.d.ts +19 -19
  79. package/dist/Metric.d.ts.map +1 -1
  80. package/dist/Metric.js +21 -21
  81. package/dist/Metric.js.map +1 -1
  82. package/dist/Path.d.ts +2 -2
  83. package/dist/Path.d.ts.map +1 -1
  84. package/dist/Path.js +2 -2
  85. package/dist/Path.js.map +1 -1
  86. package/dist/Pool.d.ts.map +1 -1
  87. package/dist/Pool.js +4 -4
  88. package/dist/Pool.js.map +1 -1
  89. package/dist/PubSub.d.ts.map +1 -1
  90. package/dist/PubSub.js +3 -3
  91. package/dist/PubSub.js.map +1 -1
  92. package/dist/Random.d.ts +2 -2
  93. package/dist/Random.d.ts.map +1 -1
  94. package/dist/Random.js +0 -23
  95. package/dist/Random.js.map +1 -1
  96. package/dist/RcMap.d.ts +2 -2
  97. package/dist/RcMap.d.ts.map +1 -1
  98. package/dist/RcMap.js +12 -12
  99. package/dist/RcMap.js.map +1 -1
  100. package/dist/Redactable.d.ts +139 -62
  101. package/dist/Redactable.d.ts.map +1 -1
  102. package/dist/Redactable.js +59 -55
  103. package/dist/Redactable.js.map +1 -1
  104. package/dist/References.d.ts +26 -14
  105. package/dist/References.d.ts.map +1 -1
  106. package/dist/References.js +0 -12
  107. package/dist/References.js.map +1 -1
  108. package/dist/Request.d.ts +5 -5
  109. package/dist/Request.d.ts.map +1 -1
  110. package/dist/Request.js.map +1 -1
  111. package/dist/RequestResolver.d.ts.map +1 -1
  112. package/dist/RequestResolver.js +6 -7
  113. package/dist/RequestResolver.js.map +1 -1
  114. package/dist/Resource.d.ts +0 -3
  115. package/dist/Resource.d.ts.map +1 -1
  116. package/dist/Resource.js +3 -3
  117. package/dist/Resource.js.map +1 -1
  118. package/dist/Schedule.d.ts +2 -2
  119. package/dist/Schedule.d.ts.map +1 -1
  120. package/dist/Schedule.js +2 -2
  121. package/dist/Schedule.js.map +1 -1
  122. package/dist/Scheduler.d.ts +4 -4
  123. package/dist/Scheduler.d.ts.map +1 -1
  124. package/dist/Scheduler.js +7 -4
  125. package/dist/Scheduler.js.map +1 -1
  126. package/dist/Schema.d.ts +531 -214
  127. package/dist/Schema.d.ts.map +1 -1
  128. package/dist/Schema.js +304 -103
  129. package/dist/Schema.js.map +1 -1
  130. package/dist/SchemaAST.d.ts.map +1 -1
  131. package/dist/SchemaAST.js +5 -15
  132. package/dist/SchemaAST.js.map +1 -1
  133. package/dist/SchemaGetter.d.ts +49 -5
  134. package/dist/SchemaGetter.d.ts.map +1 -1
  135. package/dist/SchemaGetter.js +64 -5
  136. package/dist/SchemaGetter.js.map +1 -1
  137. package/dist/SchemaTransformation.d.ts +145 -0
  138. package/dist/SchemaTransformation.d.ts.map +1 -1
  139. package/dist/SchemaTransformation.js +146 -0
  140. package/dist/SchemaTransformation.js.map +1 -1
  141. package/dist/Scope.d.ts +2 -2
  142. package/dist/Scope.d.ts.map +1 -1
  143. package/dist/Scope.js.map +1 -1
  144. package/dist/ScopedCache.d.ts.map +1 -1
  145. package/dist/ScopedCache.js +4 -4
  146. package/dist/ScopedCache.js.map +1 -1
  147. package/dist/Sink.d.ts +6 -6
  148. package/dist/Sink.d.ts.map +1 -1
  149. package/dist/Sink.js +1 -1
  150. package/dist/Sink.js.map +1 -1
  151. package/dist/Stdio.d.ts +2 -2
  152. package/dist/Stdio.d.ts.map +1 -1
  153. package/dist/Stdio.js +2 -2
  154. package/dist/Stdio.js.map +1 -1
  155. package/dist/Stream.d.ts +187 -117
  156. package/dist/Stream.d.ts.map +1 -1
  157. package/dist/Stream.js +133 -57
  158. package/dist/Stream.js.map +1 -1
  159. package/dist/Terminal.d.ts +3 -3
  160. package/dist/Terminal.d.ts.map +1 -1
  161. package/dist/Terminal.js +2 -2
  162. package/dist/Terminal.js.map +1 -1
  163. package/dist/Tracer.d.ts +16 -16
  164. package/dist/Tracer.d.ts.map +1 -1
  165. package/dist/Tracer.js +11 -8
  166. package/dist/Tracer.js.map +1 -1
  167. package/dist/Unify.d.ts +8 -2
  168. package/dist/Unify.d.ts.map +1 -1
  169. package/dist/Unify.js.map +1 -1
  170. package/dist/index.d.ts +81 -15
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +81 -15
  173. package/dist/index.js.map +1 -1
  174. package/dist/internal/core.js.map +1 -1
  175. package/dist/internal/effect.js +74 -74
  176. package/dist/internal/effect.js.map +1 -1
  177. package/dist/internal/layer.js +3 -3
  178. package/dist/internal/layer.js.map +1 -1
  179. package/dist/internal/random.js +2 -2
  180. package/dist/internal/random.js.map +1 -1
  181. package/dist/internal/rcRef.js +9 -9
  182. package/dist/internal/rcRef.js.map +1 -1
  183. package/dist/internal/references.js +13 -13
  184. package/dist/internal/references.js.map +1 -1
  185. package/dist/internal/request.js +6 -6
  186. package/dist/internal/request.js.map +1 -1
  187. package/dist/internal/schedule.js +1 -1
  188. package/dist/internal/schedule.js.map +1 -1
  189. package/dist/internal/schema/representation.js +11 -1
  190. package/dist/internal/schema/representation.js.map +1 -1
  191. package/dist/internal/schema/schema.d.ts +10 -1
  192. package/dist/internal/schema/schema.d.ts.map +1 -1
  193. package/dist/internal/schema/schema.js +21 -1
  194. package/dist/internal/schema/schema.js.map +1 -1
  195. package/dist/testing/TestSchema.d.ts +3 -3
  196. package/dist/testing/TestSchema.d.ts.map +1 -1
  197. package/dist/testing/TestSchema.js.map +1 -1
  198. package/dist/unstable/ai/AiError.d.ts +19 -19
  199. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  200. package/dist/unstable/ai/AiError.js +2 -1
  201. package/dist/unstable/ai/AiError.js.map +1 -1
  202. package/dist/unstable/ai/Chat.d.ts +4 -4
  203. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  204. package/dist/unstable/ai/Chat.js +3 -3
  205. package/dist/unstable/ai/Chat.js.map +1 -1
  206. package/dist/unstable/ai/EmbeddingModel.d.ts +6 -6
  207. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
  208. package/dist/unstable/ai/EmbeddingModel.js +3 -3
  209. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  210. package/dist/unstable/ai/IdGenerator.d.ts +2 -2
  211. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  212. package/dist/unstable/ai/IdGenerator.js +2 -2
  213. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  214. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  215. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  216. package/dist/unstable/ai/LanguageModel.js +2 -2
  217. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  218. package/dist/unstable/ai/McpSchema.d.ts +54 -54
  219. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  220. package/dist/unstable/ai/McpSchema.js +15 -8
  221. package/dist/unstable/ai/McpSchema.js.map +1 -1
  222. package/dist/unstable/ai/McpServer.d.ts +22 -22
  223. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  224. package/dist/unstable/ai/McpServer.js +25 -25
  225. package/dist/unstable/ai/McpServer.js.map +1 -1
  226. package/dist/unstable/ai/Model.d.ts +3 -3
  227. package/dist/unstable/ai/Model.d.ts.map +1 -1
  228. package/dist/unstable/ai/Model.js +5 -5
  229. package/dist/unstable/ai/Model.js.map +1 -1
  230. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  231. package/dist/unstable/ai/Prompt.js +6 -9
  232. package/dist/unstable/ai/Prompt.js.map +1 -1
  233. package/dist/unstable/ai/Response.d.ts +1 -1
  234. package/dist/unstable/ai/Response.d.ts.map +1 -1
  235. package/dist/unstable/ai/Response.js +6 -7
  236. package/dist/unstable/ai/Response.js.map +1 -1
  237. package/dist/unstable/ai/ResponseIdTracker.d.ts +2 -2
  238. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
  239. package/dist/unstable/ai/ResponseIdTracker.js +2 -2
  240. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  241. package/dist/unstable/ai/Telemetry.d.ts +35 -2
  242. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  243. package/dist/unstable/ai/Telemetry.js +2 -2
  244. package/dist/unstable/ai/Telemetry.js.map +1 -1
  245. package/dist/unstable/ai/Tokenizer.d.ts +2 -2
  246. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  247. package/dist/unstable/ai/Tokenizer.js +2 -2
  248. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  249. package/dist/unstable/ai/Tool.d.ts +16 -16
  250. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  251. package/dist/unstable/ai/Tool.js +41 -13
  252. package/dist/unstable/ai/Tool.js.map +1 -1
  253. package/dist/unstable/ai/Toolkit.d.ts +3 -3
  254. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  255. package/dist/unstable/ai/Toolkit.js +10 -10
  256. package/dist/unstable/ai/Toolkit.js.map +1 -1
  257. package/dist/unstable/cli/Argument.d.ts +2 -3
  258. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  259. package/dist/unstable/cli/Argument.js.map +1 -1
  260. package/dist/unstable/cli/CliError.d.ts +29 -8
  261. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  262. package/dist/unstable/cli/CliError.js +8 -1
  263. package/dist/unstable/cli/CliError.js.map +1 -1
  264. package/dist/unstable/cli/CliOutput.d.ts +2 -2
  265. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  266. package/dist/unstable/cli/CliOutput.js +2 -2
  267. package/dist/unstable/cli/CliOutput.js.map +1 -1
  268. package/dist/unstable/cli/Command.d.ts +14 -14
  269. package/dist/unstable/cli/Command.d.ts.map +1 -1
  270. package/dist/unstable/cli/Command.js +11 -10
  271. package/dist/unstable/cli/Command.js.map +1 -1
  272. package/dist/unstable/cli/Flag.d.ts +2 -3
  273. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  274. package/dist/unstable/cli/Flag.js.map +1 -1
  275. package/dist/unstable/cli/GlobalFlag.d.ts +2 -2
  276. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  277. package/dist/unstable/cli/GlobalFlag.js +2 -2
  278. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  279. package/dist/unstable/cli/HelpDoc.d.ts +8 -8
  280. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  281. package/dist/unstable/cli/Param.d.ts +30 -2
  282. package/dist/unstable/cli/Param.d.ts.map +1 -1
  283. package/dist/unstable/cli/Param.js +17 -7
  284. package/dist/unstable/cli/Param.js.map +1 -1
  285. package/dist/unstable/cli/Prompt.js +8 -2
  286. package/dist/unstable/cli/Prompt.js.map +1 -1
  287. package/dist/unstable/cli/internal/command.d.ts +5 -5
  288. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  289. package/dist/unstable/cli/internal/command.js +3 -3
  290. package/dist/unstable/cli/internal/command.js.map +1 -1
  291. package/dist/unstable/cli/internal/parser.js +94 -15
  292. package/dist/unstable/cli/internal/parser.js.map +1 -1
  293. package/dist/unstable/cluster/ClusterError.d.ts +7 -7
  294. package/dist/unstable/cluster/ClusterSchema.d.ts +12 -9
  295. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  296. package/dist/unstable/cluster/ClusterSchema.js +9 -9
  297. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  298. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  299. package/dist/unstable/cluster/ClusterWorkflowEngine.js +13 -14
  300. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  301. package/dist/unstable/cluster/Entity.d.ts +8 -8
  302. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  303. package/dist/unstable/cluster/Entity.js +12 -12
  304. package/dist/unstable/cluster/Entity.js.map +1 -1
  305. package/dist/unstable/cluster/EntityAddress.d.ts +2 -2
  306. package/dist/unstable/cluster/EntityProxy.js +3 -3
  307. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  308. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  309. package/dist/unstable/cluster/EntityProxyServer.js +4 -4
  310. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  311. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  312. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  313. package/dist/unstable/cluster/EntityResource.js +2 -2
  314. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  315. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  316. package/dist/unstable/cluster/HttpRunner.js +2 -2
  317. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  318. package/dist/unstable/cluster/K8sHttpClient.d.ts +4 -4
  319. package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
  320. package/dist/unstable/cluster/K8sHttpClient.js +2 -2
  321. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  322. package/dist/unstable/cluster/Message.d.ts +7 -4
  323. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  324. package/dist/unstable/cluster/Message.js +5 -5
  325. package/dist/unstable/cluster/Message.js.map +1 -1
  326. package/dist/unstable/cluster/MessageStorage.d.ts +14 -14
  327. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  328. package/dist/unstable/cluster/MessageStorage.js +8 -8
  329. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  330. package/dist/unstable/cluster/Reply.d.ts +2 -2
  331. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  332. package/dist/unstable/cluster/Reply.js +5 -5
  333. package/dist/unstable/cluster/Reply.js.map +1 -1
  334. package/dist/unstable/cluster/Runner.d.ts +1 -1
  335. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  336. package/dist/unstable/cluster/RunnerHealth.d.ts +2 -2
  337. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  338. package/dist/unstable/cluster/RunnerHealth.js +2 -2
  339. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  340. package/dist/unstable/cluster/RunnerServer.js +1 -1
  341. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  342. package/dist/unstable/cluster/RunnerStorage.d.ts +12 -12
  343. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  344. package/dist/unstable/cluster/RunnerStorage.js +3 -3
  345. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  346. package/dist/unstable/cluster/Runners.d.ts +3 -3
  347. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  348. package/dist/unstable/cluster/Runners.js +7 -7
  349. package/dist/unstable/cluster/Runners.js.map +1 -1
  350. package/dist/unstable/cluster/ShardId.d.ts +35 -49
  351. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  352. package/dist/unstable/cluster/ShardId.js +65 -67
  353. package/dist/unstable/cluster/ShardId.js.map +1 -1
  354. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  355. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  356. package/dist/unstable/cluster/Sharding.js +21 -21
  357. package/dist/unstable/cluster/Sharding.js.map +1 -1
  358. package/dist/unstable/cluster/ShardingConfig.d.ts +2 -2
  359. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  360. package/dist/unstable/cluster/ShardingConfig.js +5 -5
  361. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  362. package/dist/unstable/cluster/SingletonAddress.d.ts +2 -2
  363. package/dist/unstable/cluster/Snowflake.d.ts +2 -2
  364. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  365. package/dist/unstable/cluster/Snowflake.js +2 -2
  366. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  367. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  368. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  369. package/dist/unstable/cluster/internal/entityManager.js +15 -14
  370. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  371. package/dist/unstable/cluster/internal/entityReaper.js +2 -2
  372. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  373. package/dist/unstable/cluster/internal/resourceMap.js +3 -3
  374. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  375. package/dist/unstable/devtools/DevToolsClient.d.ts +2 -2
  376. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  377. package/dist/unstable/devtools/DevToolsClient.js +5 -5
  378. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  379. package/dist/unstable/eventlog/EventJournal.d.ts +4 -4
  380. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  381. package/dist/unstable/eventlog/EventJournal.js +2 -2
  382. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  383. package/dist/unstable/eventlog/EventLog.d.ts +5 -5
  384. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  385. package/dist/unstable/eventlog/EventLog.js +18 -18
  386. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  387. package/dist/unstable/eventlog/EventLogEncryption.d.ts +2 -2
  388. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  389. package/dist/unstable/eventlog/EventLogEncryption.js +2 -2
  390. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  391. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -12
  392. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  393. package/dist/unstable/eventlog/EventLogRemote.js +2 -2
  394. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  395. package/dist/unstable/eventlog/EventLogServer.d.ts +3 -3
  396. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  397. package/dist/unstable/eventlog/EventLogServer.js +2 -2
  398. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  399. package/dist/unstable/http/Etag.d.ts +2 -2
  400. package/dist/unstable/http/Etag.d.ts.map +1 -1
  401. package/dist/unstable/http/Etag.js +2 -2
  402. package/dist/unstable/http/Etag.js.map +1 -1
  403. package/dist/unstable/http/FetchHttpClient.d.ts +6 -3
  404. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  405. package/dist/unstable/http/FetchHttpClient.js +5 -5
  406. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  407. package/dist/unstable/http/Headers.d.ts +5 -2
  408. package/dist/unstable/http/Headers.d.ts.map +1 -1
  409. package/dist/unstable/http/Headers.js +3 -3
  410. package/dist/unstable/http/Headers.js.map +1 -1
  411. package/dist/unstable/http/HttpClient.d.ts +8 -6
  412. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  413. package/dist/unstable/http/HttpClient.js +6 -6
  414. package/dist/unstable/http/HttpClient.js.map +1 -1
  415. package/dist/unstable/http/HttpClientError.d.ts +1 -1
  416. package/dist/unstable/http/HttpClientRequest.d.ts +2 -2
  417. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  418. package/dist/unstable/http/HttpClientRequest.js +4 -4
  419. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  420. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  421. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  422. package/dist/unstable/http/HttpEffect.js +24 -24
  423. package/dist/unstable/http/HttpEffect.js.map +1 -1
  424. package/dist/unstable/http/HttpIncomingMessage.d.ts +2 -2
  425. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  426. package/dist/unstable/http/HttpIncomingMessage.js +2 -2
  427. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  428. package/dist/unstable/http/HttpMiddleware.d.ts +3 -3
  429. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  430. package/dist/unstable/http/HttpMiddleware.js +26 -14
  431. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  432. package/dist/unstable/http/HttpPlatform.d.ts +2 -2
  433. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  434. package/dist/unstable/http/HttpPlatform.js +2 -2
  435. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  436. package/dist/unstable/http/HttpRouter.d.ts +7 -7
  437. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  438. package/dist/unstable/http/HttpRouter.js +29 -29
  439. package/dist/unstable/http/HttpRouter.js.map +1 -1
  440. package/dist/unstable/http/HttpServer.d.ts +2 -2
  441. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpServer.js +2 -2
  443. package/dist/unstable/http/HttpServer.js.map +1 -1
  444. package/dist/unstable/http/HttpServerError.d.ts +3 -3
  445. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpServerError.js +3 -3
  447. package/dist/unstable/http/HttpServerError.js.map +1 -1
  448. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  449. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  450. package/dist/unstable/http/HttpServerRequest.js +6 -6
  451. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  452. package/dist/unstable/http/HttpServerResponse.d.ts +2 -2
  453. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  454. package/dist/unstable/http/HttpServerResponse.js +6 -6
  455. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  456. package/dist/unstable/http/Multipart.d.ts +6 -6
  457. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  458. package/dist/unstable/http/Multipart.js +7 -7
  459. package/dist/unstable/http/Multipart.js.map +1 -1
  460. package/dist/unstable/httpapi/HttpApi.d.ts +9 -9
  461. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  462. package/dist/unstable/httpapi/HttpApi.js +8 -8
  463. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  464. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +0 -3
  465. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  466. package/dist/unstable/httpapi/HttpApiBuilder.js +20 -20
  467. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  468. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  469. package/dist/unstable/httpapi/HttpApiClient.js +1 -1
  470. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  471. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +7 -7
  472. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  473. package/dist/unstable/httpapi/HttpApiEndpoint.js +4 -4
  474. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  475. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  476. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  477. package/dist/unstable/httpapi/HttpApiGroup.d.ts +8 -8
  478. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  479. package/dist/unstable/httpapi/HttpApiGroup.js +4 -4
  480. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  481. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +6 -6
  482. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  483. package/dist/unstable/httpapi/HttpApiMiddleware.js +5 -5
  484. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  485. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +9 -6
  486. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  487. package/dist/unstable/httpapi/HttpApiSecurity.js +6 -6
  488. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  489. package/dist/unstable/httpapi/OpenApi.d.ts +15 -15
  490. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  491. package/dist/unstable/httpapi/OpenApi.js +23 -23
  492. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  493. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  494. package/dist/unstable/observability/OtlpExporter.js +5 -5
  495. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  496. package/dist/unstable/observability/OtlpMetrics.js +1 -1
  497. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  498. package/dist/unstable/observability/OtlpSerialization.d.ts +2 -2
  499. package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
  500. package/dist/unstable/observability/OtlpSerialization.js +2 -2
  501. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  502. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  503. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  504. package/dist/unstable/observability/PrometheusMetrics.d.ts +3 -3
  505. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  506. package/dist/unstable/observability/PrometheusMetrics.js +4 -33
  507. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  508. package/dist/unstable/persistence/KeyValueStore.d.ts +23 -2
  509. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  510. package/dist/unstable/persistence/KeyValueStore.js +144 -2
  511. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  512. package/dist/unstable/persistence/PersistedCache.d.ts +1 -2
  513. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  514. package/dist/unstable/persistence/PersistedCache.js +10 -11
  515. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  516. package/dist/unstable/persistence/PersistedQueue.d.ts +4 -4
  517. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  518. package/dist/unstable/persistence/PersistedQueue.js +3 -3
  519. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  520. package/dist/unstable/persistence/Persistence.d.ts +4 -4
  521. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  522. package/dist/unstable/persistence/Persistence.js +3 -3
  523. package/dist/unstable/persistence/Persistence.js.map +1 -1
  524. package/dist/unstable/persistence/RateLimiter.d.ts +6 -6
  525. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  526. package/dist/unstable/persistence/RateLimiter.js +3 -3
  527. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  528. package/dist/unstable/persistence/Redis.d.ts +3 -3
  529. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  530. package/dist/unstable/persistence/Redis.js +2 -2
  531. package/dist/unstable/persistence/Redis.js.map +1 -1
  532. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -2
  533. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  534. package/dist/unstable/process/ChildProcessSpawner.js +2 -2
  535. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  536. package/dist/unstable/reactivity/Atom.d.ts +36 -36
  537. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  538. package/dist/unstable/reactivity/Atom.js +9 -9
  539. package/dist/unstable/reactivity/Atom.js.map +1 -1
  540. package/dist/unstable/reactivity/AtomHttpApi.d.ts +3 -3
  541. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  542. package/dist/unstable/reactivity/AtomHttpApi.js +2 -2
  543. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  544. package/dist/unstable/reactivity/AtomRegistry.d.ts +2 -2
  545. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  546. package/dist/unstable/reactivity/AtomRegistry.js +3 -3
  547. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  548. package/dist/unstable/reactivity/AtomRpc.d.ts +3 -3
  549. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  550. package/dist/unstable/reactivity/AtomRpc.js +2 -2
  551. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  552. package/dist/unstable/reactivity/Reactivity.d.ts +2 -2
  553. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  554. package/dist/unstable/reactivity/Reactivity.js +6 -6
  555. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  556. package/dist/unstable/rpc/Rpc.d.ts +11 -11
  557. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  558. package/dist/unstable/rpc/Rpc.js +4 -4
  559. package/dist/unstable/rpc/Rpc.js.map +1 -1
  560. package/dist/unstable/rpc/RpcClient.d.ts +18 -8
  561. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  562. package/dist/unstable/rpc/RpcClient.js +27 -18
  563. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  564. package/dist/unstable/rpc/RpcClientError.d.ts +2 -2
  565. package/dist/unstable/rpc/RpcGroup.d.ts +7 -7
  566. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  567. package/dist/unstable/rpc/RpcGroup.js +20 -20
  568. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  569. package/dist/unstable/rpc/RpcMiddleware.d.ts +6 -6
  570. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  571. package/dist/unstable/rpc/RpcMiddleware.js +5 -5
  572. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  573. package/dist/unstable/rpc/RpcSchema.d.ts +3 -3
  574. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  575. package/dist/unstable/rpc/RpcSchema.js +3 -3
  576. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  577. package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
  578. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  579. package/dist/unstable/rpc/RpcSerialization.js +2 -2
  580. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  581. package/dist/unstable/rpc/RpcServer.d.ts +2 -2
  582. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  583. package/dist/unstable/rpc/RpcServer.js +18 -18
  584. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  585. package/dist/unstable/rpc/RpcWorker.d.ts +2 -2
  586. package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
  587. package/dist/unstable/rpc/RpcWorker.js +4 -4
  588. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  589. package/dist/unstable/rpc/Utils.d.ts +0 -3
  590. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Utils.js +2 -5
  592. package/dist/unstable/rpc/Utils.js.map +1 -1
  593. package/dist/unstable/socket/Socket.d.ts +10 -10
  594. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  595. package/dist/unstable/socket/Socket.js +9 -9
  596. package/dist/unstable/socket/Socket.js.map +1 -1
  597. package/dist/unstable/socket/SocketServer.d.ts +5 -2
  598. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  599. package/dist/unstable/socket/SocketServer.js +2 -2
  600. package/dist/unstable/socket/SocketServer.js.map +1 -1
  601. package/dist/unstable/sql/SqlClient.d.ts +5 -5
  602. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  603. package/dist/unstable/sql/SqlClient.js +7 -7
  604. package/dist/unstable/sql/SqlClient.js.map +1 -1
  605. package/dist/unstable/sql/SqlConnection.d.ts +2 -2
  606. package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
  607. package/dist/unstable/sql/SqlConnection.js +5 -2
  608. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  609. package/dist/unstable/sql/SqlError.d.ts +12 -12
  610. package/dist/unstable/sql/SqlModel.d.ts +8 -9
  611. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  612. package/dist/unstable/sql/SqlModel.js +9 -35
  613. package/dist/unstable/sql/SqlModel.js.map +1 -1
  614. package/dist/unstable/sql/SqlResolver.js +11 -11
  615. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  616. package/dist/unstable/sql/Statement.d.ts +2 -2
  617. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  618. package/dist/unstable/sql/Statement.js +2 -2
  619. package/dist/unstable/sql/Statement.js.map +1 -1
  620. package/dist/unstable/workers/Transferable.d.ts +2 -2
  621. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  622. package/dist/unstable/workers/Transferable.js +6 -6
  623. package/dist/unstable/workers/Transferable.js.map +1 -1
  624. package/dist/unstable/workers/Worker.d.ts +3 -3
  625. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  626. package/dist/unstable/workers/Worker.js +6 -3
  627. package/dist/unstable/workers/Worker.js.map +1 -1
  628. package/dist/unstable/workers/WorkerError.d.ts +5 -5
  629. package/dist/unstable/workers/WorkerRunner.d.ts +2 -2
  630. package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
  631. package/dist/unstable/workers/WorkerRunner.js +5 -2
  632. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  633. package/dist/unstable/workflow/Activity.d.ts +7 -7
  634. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  635. package/dist/unstable/workflow/Activity.js +7 -7
  636. package/dist/unstable/workflow/Activity.js.map +1 -1
  637. package/dist/unstable/workflow/DurableClock.d.ts +0 -3
  638. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  639. package/dist/unstable/workflow/DurableClock.js +3 -3
  640. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  641. package/dist/unstable/workflow/DurableDeferred.d.ts +1 -1
  642. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  643. package/dist/unstable/workflow/DurableDeferred.js +7 -7
  644. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  645. package/dist/unstable/workflow/Workflow.d.ts +9 -9
  646. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  647. package/dist/unstable/workflow/Workflow.js +18 -18
  648. package/dist/unstable/workflow/Workflow.js.map +1 -1
  649. package/dist/unstable/workflow/WorkflowEngine.d.ts +3 -3
  650. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  651. package/dist/unstable/workflow/WorkflowEngine.js +5 -5
  652. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  653. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  654. package/dist/unstable/workflow/WorkflowProxyServer.js +4 -4
  655. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  656. package/package.json +1 -1
  657. package/src/Cache.ts +18 -46
  658. package/src/Cause.ts +21 -21
  659. package/src/Channel.ts +120 -79
  660. package/src/Clock.ts +2 -2
  661. package/src/Config.ts +2 -2
  662. package/src/ConfigProvider.ts +5 -5
  663. package/src/Console.ts +2 -2
  664. package/src/{ServiceMap.ts → Context.ts} +337 -340
  665. package/src/DateTime.ts +2 -2
  666. package/src/Effect.ts +182 -184
  667. package/src/ErrorReporter.ts +3 -3
  668. package/src/ExecutionPlan.ts +8 -9
  669. package/src/Fiber.ts +7 -7
  670. package/src/FiberHandle.ts +5 -5
  671. package/src/FiberMap.ts +5 -5
  672. package/src/FiberSet.ts +5 -5
  673. package/src/FileSystem.ts +3 -3
  674. package/src/Layer.ts +333 -307
  675. package/src/LayerMap.ts +27 -26
  676. package/src/Logger.ts +3 -3
  677. package/src/ManagedRuntime.ts +32 -32
  678. package/src/Metric.ts +58 -58
  679. package/src/Path.ts +2 -2
  680. package/src/Pool.ts +5 -5
  681. package/src/PubSub.ts +3 -3
  682. package/src/Random.ts +2 -2
  683. package/src/RcMap.ts +14 -14
  684. package/src/Redactable.ts +146 -72
  685. package/src/References.ts +14 -14
  686. package/src/Request.ts +5 -5
  687. package/src/RequestResolver.ts +6 -7
  688. package/src/Resource.ts +4 -4
  689. package/src/Schedule.ts +2 -2
  690. package/src/Scheduler.ts +4 -4
  691. package/src/Schema.ts +837 -397
  692. package/src/SchemaAST.ts +5 -14
  693. package/src/SchemaGetter.ts +69 -11
  694. package/src/SchemaTransformation.ts +166 -0
  695. package/src/Scope.ts +2 -2
  696. package/src/ScopedCache.ts +5 -5
  697. package/src/Sink.ts +9 -9
  698. package/src/Stdio.ts +2 -2
  699. package/src/Stream.ts +234 -158
  700. package/src/Terminal.ts +3 -3
  701. package/src/Tracer.ts +17 -17
  702. package/src/Unify.ts +26 -2
  703. package/src/index.ts +82 -16
  704. package/src/internal/core.ts +7 -7
  705. package/src/internal/effect.ts +106 -106
  706. package/src/internal/layer.ts +7 -7
  707. package/src/internal/random.ts +2 -2
  708. package/src/internal/rcRef.ts +10 -10
  709. package/src/internal/references.ts +13 -13
  710. package/src/internal/request.ts +8 -8
  711. package/src/internal/schedule.ts +3 -1
  712. package/src/internal/schema/representation.ts +8 -1
  713. package/src/internal/schema/schema.ts +24 -1
  714. package/src/testing/TestSchema.ts +3 -3
  715. package/src/unstable/ai/AiError.ts +3 -2
  716. package/src/unstable/ai/Chat.ts +3 -3
  717. package/src/unstable/ai/EmbeddingModel.ts +3 -3
  718. package/src/unstable/ai/IdGenerator.ts +2 -2
  719. package/src/unstable/ai/LanguageModel.ts +2 -2
  720. package/src/unstable/ai/McpSchema.ts +11 -9
  721. package/src/unstable/ai/McpServer.ts +44 -44
  722. package/src/unstable/ai/Model.ts +8 -8
  723. package/src/unstable/ai/Prompt.ts +6 -12
  724. package/src/unstable/ai/Response.ts +6 -8
  725. package/src/unstable/ai/ResponseIdTracker.ts +2 -4
  726. package/src/unstable/ai/Telemetry.ts +2 -2
  727. package/src/unstable/ai/Tokenizer.ts +2 -2
  728. package/src/unstable/ai/Tool.ts +25 -25
  729. package/src/unstable/ai/Toolkit.ts +12 -12
  730. package/src/unstable/cli/Argument.ts +3 -4
  731. package/src/unstable/cli/CliError.ts +22 -9
  732. package/src/unstable/cli/CliOutput.ts +2 -2
  733. package/src/unstable/cli/Command.ts +36 -30
  734. package/src/unstable/cli/Flag.ts +3 -4
  735. package/src/unstable/cli/GlobalFlag.ts +3 -3
  736. package/src/unstable/cli/HelpDoc.ts +8 -8
  737. package/src/unstable/cli/Param.ts +39 -16
  738. package/src/unstable/cli/Prompt.ts +13 -6
  739. package/src/unstable/cli/internal/command.ts +7 -7
  740. package/src/unstable/cli/internal/parser.ts +130 -21
  741. package/src/unstable/cluster/ClusterSchema.ts +12 -12
  742. package/src/unstable/cluster/ClusterWorkflowEngine.ts +14 -15
  743. package/src/unstable/cluster/Entity.ts +25 -25
  744. package/src/unstable/cluster/EntityProxy.ts +3 -3
  745. package/src/unstable/cluster/EntityProxyServer.ts +4 -4
  746. package/src/unstable/cluster/EntityResource.ts +2 -2
  747. package/src/unstable/cluster/HttpRunner.ts +2 -2
  748. package/src/unstable/cluster/K8sHttpClient.ts +2 -2
  749. package/src/unstable/cluster/Message.ts +8 -8
  750. package/src/unstable/cluster/MessageStorage.ts +11 -11
  751. package/src/unstable/cluster/Reply.ts +7 -7
  752. package/src/unstable/cluster/RunnerHealth.ts +2 -2
  753. package/src/unstable/cluster/RunnerServer.ts +1 -1
  754. package/src/unstable/cluster/RunnerStorage.ts +9 -9
  755. package/src/unstable/cluster/Runners.ts +7 -7
  756. package/src/unstable/cluster/ShardId.ts +84 -74
  757. package/src/unstable/cluster/Sharding.ts +26 -26
  758. package/src/unstable/cluster/ShardingConfig.ts +5 -5
  759. package/src/unstable/cluster/Snowflake.ts +2 -2
  760. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  761. package/src/unstable/cluster/internal/entityManager.ts +27 -23
  762. package/src/unstable/cluster/internal/entityReaper.ts +2 -2
  763. package/src/unstable/cluster/internal/resourceMap.ts +3 -3
  764. package/src/unstable/devtools/DevToolsClient.ts +5 -5
  765. package/src/unstable/eventlog/EventJournal.ts +2 -2
  766. package/src/unstable/eventlog/EventLog.ts +21 -21
  767. package/src/unstable/eventlog/EventLogEncryption.ts +2 -2
  768. package/src/unstable/eventlog/EventLogRemote.ts +2 -2
  769. package/src/unstable/eventlog/EventLogServer.ts +2 -2
  770. package/src/unstable/http/Etag.ts +2 -2
  771. package/src/unstable/http/FetchHttpClient.ts +5 -5
  772. package/src/unstable/http/Headers.ts +4 -4
  773. package/src/unstable/http/HttpClient.ts +9 -8
  774. package/src/unstable/http/HttpClientRequest.ts +5 -5
  775. package/src/unstable/http/HttpEffect.ts +35 -35
  776. package/src/unstable/http/HttpIncomingMessage.ts +2 -2
  777. package/src/unstable/http/HttpMiddleware.ts +28 -14
  778. package/src/unstable/http/HttpPlatform.ts +2 -2
  779. package/src/unstable/http/HttpRouter.ts +37 -37
  780. package/src/unstable/http/HttpServer.ts +2 -2
  781. package/src/unstable/http/HttpServerError.ts +4 -4
  782. package/src/unstable/http/HttpServerRequest.ts +7 -7
  783. package/src/unstable/http/HttpServerResponse.ts +8 -8
  784. package/src/unstable/http/Multipart.ts +8 -8
  785. package/src/unstable/httpapi/HttpApi.ts +18 -18
  786. package/src/unstable/httpapi/HttpApiBuilder.ts +20 -20
  787. package/src/unstable/httpapi/HttpApiClient.ts +4 -4
  788. package/src/unstable/httpapi/HttpApiEndpoint.ts +14 -14
  789. package/src/unstable/httpapi/HttpApiGroup.ts +16 -16
  790. package/src/unstable/httpapi/HttpApiMiddleware.ts +14 -14
  791. package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
  792. package/src/unstable/httpapi/OpenApi.ts +29 -31
  793. package/src/unstable/observability/OtlpExporter.ts +5 -5
  794. package/src/unstable/observability/OtlpMetrics.ts +1 -1
  795. package/src/unstable/observability/OtlpSerialization.ts +2 -2
  796. package/src/unstable/observability/OtlpTracer.ts +2 -2
  797. package/src/unstable/observability/PrometheusMetrics.ts +5 -5
  798. package/src/unstable/persistence/KeyValueStore.ts +226 -3
  799. package/src/unstable/persistence/PersistedCache.ts +20 -17
  800. package/src/unstable/persistence/PersistedQueue.ts +3 -3
  801. package/src/unstable/persistence/Persistence.ts +4 -4
  802. package/src/unstable/persistence/RateLimiter.ts +3 -3
  803. package/src/unstable/persistence/Redis.ts +2 -2
  804. package/src/unstable/process/ChildProcessSpawner.ts +46 -2
  805. package/src/unstable/reactivity/Atom.ts +79 -79
  806. package/src/unstable/reactivity/AtomHttpApi.ts +4 -4
  807. package/src/unstable/reactivity/AtomRegistry.ts +4 -4
  808. package/src/unstable/reactivity/AtomRpc.ts +4 -4
  809. package/src/unstable/reactivity/Reactivity.ts +6 -6
  810. package/src/unstable/rpc/Rpc.ts +17 -17
  811. package/src/unstable/rpc/RpcClient.ts +44 -30
  812. package/src/unstable/rpc/RpcGroup.ts +30 -30
  813. package/src/unstable/rpc/RpcMiddleware.ts +14 -14
  814. package/src/unstable/rpc/RpcSchema.ts +4 -4
  815. package/src/unstable/rpc/RpcSerialization.ts +2 -2
  816. package/src/unstable/rpc/RpcServer.ts +19 -19
  817. package/src/unstable/rpc/RpcWorker.ts +5 -5
  818. package/src/unstable/rpc/Utils.ts +4 -4
  819. package/src/unstable/socket/Socket.ts +9 -9
  820. package/src/unstable/socket/SocketServer.ts +2 -2
  821. package/src/unstable/sql/SqlClient.ts +11 -11
  822. package/src/unstable/sql/SqlConnection.ts +2 -2
  823. package/src/unstable/sql/SqlModel.ts +54 -82
  824. package/src/unstable/sql/SqlResolver.ts +11 -11
  825. package/src/unstable/sql/Statement.ts +2 -2
  826. package/src/unstable/workers/Transferable.ts +6 -6
  827. package/src/unstable/workers/Worker.ts +4 -4
  828. package/src/unstable/workers/WorkerRunner.ts +2 -2
  829. package/src/unstable/workflow/Activity.ts +14 -14
  830. package/src/unstable/workflow/DurableClock.ts +3 -3
  831. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  832. package/src/unstable/workflow/Workflow.ts +23 -23
  833. package/src/unstable/workflow/WorkflowEngine.ts +6 -6
  834. package/src/unstable/workflow/WorkflowProxyServer.ts +4 -4
  835. package/dist/ServiceMap.d.ts +0 -1150
  836. package/dist/ServiceMap.d.ts.map +0 -1
  837. package/dist/ServiceMap.js.map +0 -1
@@ -1,1150 +0,0 @@
1
- /**
2
- * This module provides a data structure called `ServiceMap` that can be used
3
- * for dependency injection in effectful programs. It is essentially a table
4
- * mapping `Service`s identifiers to their implementations, and can be used to
5
- * manage dependencies in a type-safe way. The `ServiceMap` data structure is
6
- * essentially a way of providing access to a set of related services that can
7
- * be passed around as a single unit. This module provides functions to create,
8
- * modify, and query the contents of a `ServiceMap`, as well as a number of
9
- * utility types for working with a `ServiceMap`.
10
- *
11
- * @since 4.0.0
12
- */
13
- import type { Effect, EffectIterator, Yieldable } from "./Effect.ts";
14
- import * as Equal from "./Equal.ts";
15
- import { type LazyArg } from "./Function.ts";
16
- import type { Inspectable } from "./Inspectable.ts";
17
- import * as Option from "./Option.ts";
18
- import type { Pipeable } from "./Pipeable.ts";
19
- import type * as Types from "./Types.ts";
20
- /**
21
- * @since 4.0.0
22
- * @category Type Identifiers
23
- */
24
- export type ServiceTypeId = "~effect/ServiceMap/Service";
25
- /**
26
- * @since 4.0.0
27
- * @category Type Identifiers
28
- */
29
- export declare const ServiceTypeId: ServiceTypeId;
30
- /**
31
- * The base type used for all ServiceMap keys.
32
- *
33
- * @since 4.0.0
34
- * @category Models
35
- */
36
- export interface Key<out Identifier, out Shape> extends Pipeable, Inspectable {
37
- readonly [ServiceTypeId]: ServiceTypeId;
38
- readonly Service: Shape;
39
- readonly Identifier: Identifier;
40
- readonly key: string;
41
- readonly stack?: string | undefined;
42
- asEffect(): Effect<Shape, never, Identifier>;
43
- }
44
- /**
45
- * @example
46
- * ```ts
47
- * import { ServiceMap } from "effect"
48
- *
49
- * // Define an identifier for a database service
50
- * const Database = ServiceMap.Service<{ query: (sql: string) => string }>(
51
- * "Database"
52
- * )
53
- *
54
- * // The key can be used to store and retrieve services
55
- * const services = ServiceMap.make(Database, { query: (sql) => `Result: ${sql}` })
56
- * ```
57
- *
58
- * @since 4.0.0
59
- * @category Models
60
- */
61
- export interface Service<in out Identifier, in out Shape> extends Key<Identifier, Shape>, Yieldable<Service<Identifier, Shape>, Shape, never, Identifier> {
62
- of(this: void, self: Shape): Shape;
63
- serviceMap(self: Shape): ServiceMap<Identifier>;
64
- use<A, E, R>(f: (service: Shape) => Effect<A, E, R>): Effect<A, E, R | Identifier>;
65
- useSync<A>(f: (service: Shape) => A): Effect<A, never, Identifier>;
66
- }
67
- /**
68
- * @since 4.0.0
69
- * @category Models
70
- */
71
- export interface ServiceClass<in out Self, in out Identifier extends string, in out Shape> extends Service<Self, Shape> {
72
- new (_: never): ServiceClass.Shape<Identifier, Shape>;
73
- readonly key: Identifier;
74
- }
75
- /**
76
- * @since 4.0.0
77
- * @category Models
78
- */
79
- export declare namespace ServiceClass {
80
- /**
81
- * @since 4.0.0
82
- * @category Models
83
- */
84
- interface Shape<Identifier extends string, Service> {
85
- readonly [ServiceTypeId]: typeof ServiceTypeId;
86
- readonly key: Identifier;
87
- readonly Service: Service;
88
- }
89
- }
90
- /**
91
- * @example
92
- * ```ts
93
- * import { ServiceMap } from "effect"
94
- *
95
- * // Create a simple service
96
- * const Database = ServiceMap.Service<{
97
- * query: (sql: string) => string
98
- * }>("Database")
99
- *
100
- * // Create a service class
101
- * class Config extends ServiceMap.Service<Config, {
102
- * port: number
103
- * }>()("Config") {}
104
- *
105
- * // Use the services to create service maps
106
- * const db = ServiceMap.make(Database, {
107
- * query: (sql) => `Result: ${sql}`
108
- * })
109
- * const config = ServiceMap.make(Config, { port: 8080 })
110
- * ```
111
- *
112
- * @since 4.0.0
113
- * @category Constructors
114
- */
115
- export declare const Service: {
116
- /**
117
- * @example
118
- * ```ts
119
- * import { ServiceMap } from "effect"
120
- *
121
- * // Create a simple service
122
- * const Database = ServiceMap.Service<{
123
- * query: (sql: string) => string
124
- * }>("Database")
125
- *
126
- * // Create a service class
127
- * class Config extends ServiceMap.Service<Config, {
128
- * port: number
129
- * }>()("Config") {}
130
- *
131
- * // Use the services to create service maps
132
- * const db = ServiceMap.make(Database, {
133
- * query: (sql) => `Result: ${sql}`
134
- * })
135
- * const config = ServiceMap.make(Config, { port: 8080 })
136
- * ```
137
- *
138
- * @since 4.0.0
139
- * @category Constructors
140
- */
141
- <Identifier, Shape = Identifier>(key: string): Service<Identifier, Shape>;
142
- /**
143
- * @example
144
- * ```ts
145
- * import { ServiceMap } from "effect"
146
- *
147
- * // Create a simple service
148
- * const Database = ServiceMap.Service<{
149
- * query: (sql: string) => string
150
- * }>("Database")
151
- *
152
- * // Create a service class
153
- * class Config extends ServiceMap.Service<Config, {
154
- * port: number
155
- * }>()("Config") {}
156
- *
157
- * // Use the services to create service maps
158
- * const db = ServiceMap.make(Database, {
159
- * query: (sql) => `Result: ${sql}`
160
- * })
161
- * const config = ServiceMap.make(Config, { port: 8080 })
162
- * ```
163
- *
164
- * @since 4.0.0
165
- * @category Constructors
166
- */
167
- <Self, Shape>(): <const Identifier extends string, E, R = Types.unassigned, Args extends ReadonlyArray<any> = never>(id: Identifier, options?: {
168
- readonly make: ((...args: Args) => Effect<Shape, E, R>) | Effect<Shape, E, R> | undefined;
169
- } | undefined) => ServiceClass<Self, Identifier, Shape> & ([Types.unassigned] extends [R] ? unknown : {
170
- readonly make: [Args] extends [never] ? Effect<Shape, E, R> : (...args: Args) => Effect<Shape, E, R>;
171
- });
172
- /**
173
- * @example
174
- * ```ts
175
- * import { ServiceMap } from "effect"
176
- *
177
- * // Create a simple service
178
- * const Database = ServiceMap.Service<{
179
- * query: (sql: string) => string
180
- * }>("Database")
181
- *
182
- * // Create a service class
183
- * class Config extends ServiceMap.Service<Config, {
184
- * port: number
185
- * }>()("Config") {}
186
- *
187
- * // Use the services to create service maps
188
- * const db = ServiceMap.make(Database, {
189
- * query: (sql) => `Result: ${sql}`
190
- * })
191
- * const config = ServiceMap.make(Config, { port: 8080 })
192
- * ```
193
- *
194
- * @since 4.0.0
195
- * @category Constructors
196
- */
197
- <Self>(): <const Identifier extends string, Make extends Effect<any, any, any> | ((...args: any) => Effect<any, any, any>)>(id: Identifier, options: {
198
- readonly make: Make;
199
- }) => ServiceClass<Self, Identifier, Make extends Effect<infer _A, infer _E, infer _R> | ((...args: infer _Args) => Effect<infer _A, infer _E, infer _R>) ? _A : never> & {
200
- readonly make: Make;
201
- };
202
- };
203
- declare const ReferenceTypeId: "~effect/ServiceMap/Reference";
204
- /**
205
- * @example
206
- * ```ts
207
- * import { ServiceMap } from "effect"
208
- *
209
- * // Define a reference with a default value
210
- * const LoggerRef: ServiceMap.Reference<{ log: (msg: string) => void }> =
211
- * ServiceMap.Reference("Logger", {
212
- * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
213
- * })
214
- *
215
- * // The reference can be used without explicit provision
216
- * const serviceMap = ServiceMap.empty()
217
- * const logger = ServiceMap.get(serviceMap, LoggerRef) // Uses default value
218
- * ```
219
- *
220
- * @since 4.0.0
221
- * @category Models
222
- */
223
- export interface Reference<in out Shape> extends Service<never, Shape> {
224
- readonly [ReferenceTypeId]: typeof ReferenceTypeId;
225
- readonly defaultValue: () => Shape;
226
- [Symbol.iterator](): EffectIterator<Reference<Shape>>;
227
- new (_: never): {};
228
- }
229
- /**
230
- * @example
231
- * ```ts
232
- * import { ServiceMap } from "effect"
233
- *
234
- * const Database = ServiceMap.Service<{
235
- * query: (sql: string) => string
236
- * }>("Database")
237
- *
238
- * // Extract service type from a key
239
- * type DatabaseService = ServiceMap.Service.Shape<typeof Database>
240
- *
241
- * // Extract identifier type from a key
242
- * type DatabaseId = ServiceMap.Service.Identifier<typeof Database>
243
- * ```
244
- *
245
- * @since 4.0.0
246
- * @category Models
247
- */
248
- export declare namespace Service {
249
- /**
250
- * @example
251
- * ```ts
252
- * import { ServiceMap } from "effect"
253
- *
254
- * // Any represents any possible service type
255
- * const services: Array<ServiceMap.Service.Any> = [
256
- * ServiceMap.Service<{ log: (msg: string) => void }>("Logger"),
257
- * ServiceMap.Service<{ query: (sql: string) => string }>("Database")
258
- * ]
259
- * ```
260
- *
261
- * @since 4.0.0
262
- * @category Models
263
- */
264
- type Any = Key<never, any> | Key<any, any>;
265
- /**
266
- * @example
267
- * ```ts
268
- * import { ServiceMap } from "effect"
269
- *
270
- * const Database = ServiceMap.Service<{ query: (sql: string) => string }>(
271
- * "Database"
272
- * )
273
- *
274
- * // Extract the service shape from the service
275
- * type DatabaseService = ServiceMap.Service.Shape<typeof Database>
276
- * // DatabaseService is { query: (sql: string) => string }
277
- * ```
278
- *
279
- * @since 4.0.0
280
- * @category Models
281
- */
282
- type Shape<T> = T extends Key<infer _I, infer S> ? S : never;
283
- /**
284
- * @example
285
- * ```ts
286
- * import { ServiceMap } from "effect"
287
- *
288
- * const Database = ServiceMap.Service<{ query: (sql: string) => string }>(
289
- * "Database"
290
- * )
291
- *
292
- * // Extract the identifier type from a key
293
- * type DatabaseId = ServiceMap.Service.Identifier<typeof Database>
294
- * // DatabaseId is the identifier type
295
- * ```
296
- *
297
- * @since 4.0.0
298
- * @category Models
299
- */
300
- type Identifier<T> = T extends Key<infer I, infer _S> ? I : never;
301
- }
302
- declare const TypeId: "~effect/ServiceMap";
303
- /**
304
- * @example
305
- * ```ts
306
- * import { ServiceMap } from "effect"
307
- *
308
- * // Create a service map with multiple services
309
- * const Logger = ServiceMap.Service<{ log: (msg: string) => void }>("Logger")
310
- * const Database = ServiceMap.Service<{ query: (sql: string) => string }>(
311
- * "Database"
312
- * )
313
- *
314
- * const services = ServiceMap.make(Logger, {
315
- * log: (msg: string) => console.log(msg)
316
- * })
317
- * .pipe(ServiceMap.add(Database, { query: (sql) => `Result: ${sql}` }))
318
- * ```
319
- *
320
- * @since 4.0.0
321
- * @category Models
322
- */
323
- export interface ServiceMap<in Services> extends Equal.Equal, Pipeable, Inspectable {
324
- readonly [TypeId]: {
325
- readonly _Services: Types.Contravariant<Services>;
326
- };
327
- readonly mapUnsafe: ReadonlyMap<string, any>;
328
- mutable: boolean;
329
- }
330
- /**
331
- * @example
332
- * ```ts
333
- * import { ServiceMap } from "effect"
334
- *
335
- * // Create a service map from a Map (unsafe)
336
- * const map = new Map([
337
- * ["Logger", { log: (msg: string) => console.log(msg) }]
338
- * ])
339
- *
340
- * const services = ServiceMap.makeUnsafe(map)
341
- * ```
342
- *
343
- * @since 4.0.0
344
- * @category Constructors
345
- */
346
- export declare const makeUnsafe: <Services = never>(mapUnsafe: ReadonlyMap<string, any>) => ServiceMap<Services>;
347
- /**
348
- * Checks if the provided argument is a `ServiceMap`.
349
- *
350
- * @example
351
- * ```ts
352
- * import { ServiceMap } from "effect"
353
- * import * as assert from "node:assert"
354
- *
355
- * assert.strictEqual(ServiceMap.isServiceMap(ServiceMap.empty()), true)
356
- * ```
357
- *
358
- * @since 4.0.0
359
- * @category Guards
360
- */
361
- export declare const isServiceMap: (u: unknown) => u is ServiceMap<never>;
362
- /**
363
- * Checks if the provided argument is a `Key`.
364
- *
365
- * @example
366
- * ```ts
367
- * import { ServiceMap } from "effect"
368
- * import * as assert from "node:assert"
369
- *
370
- * assert.strictEqual(ServiceMap.isKey(ServiceMap.Service("Service")), true)
371
- * ```
372
- *
373
- * @since 4.0.0
374
- * @category Guards
375
- */
376
- export declare const isKey: (u: unknown) => u is Key<any, any>;
377
- /**
378
- * Checks if the provided argument is a `Reference`.
379
- *
380
- * @example
381
- * ```ts
382
- * import { ServiceMap } from "effect"
383
- * import * as assert from "node:assert"
384
- *
385
- * const LoggerRef = ServiceMap.Reference("Logger", {
386
- * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
387
- * })
388
- *
389
- * assert.strictEqual(ServiceMap.isReference(LoggerRef), true)
390
- * assert.strictEqual(ServiceMap.isReference(ServiceMap.Service("Key")), false)
391
- * ```
392
- *
393
- * @since 4.0.0
394
- * @category Guards
395
- */
396
- export declare const isReference: (u: unknown) => u is Reference<any>;
397
- /**
398
- * Returns an empty `ServiceMap`.
399
- *
400
- * @example
401
- * ```ts
402
- * import { ServiceMap } from "effect"
403
- * import * as assert from "node:assert"
404
- *
405
- * assert.strictEqual(ServiceMap.isServiceMap(ServiceMap.empty()), true)
406
- * ```
407
- *
408
- * @since 4.0.0
409
- * @category Constructors
410
- */
411
- export declare const empty: () => ServiceMap<never>;
412
- /**
413
- * Creates a new `ServiceMap` with a single service associated to the key.
414
- *
415
- * @example
416
- * ```ts
417
- * import { ServiceMap } from "effect"
418
- * import * as assert from "node:assert"
419
- *
420
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
421
- *
422
- * const Services = ServiceMap.make(Port, { PORT: 8080 })
423
- *
424
- * assert.deepStrictEqual(ServiceMap.get(Services, Port), { PORT: 8080 })
425
- * ```
426
- *
427
- * @since 4.0.0
428
- * @category Constructors
429
- */
430
- export declare const make: <I, S>(key: Key<I, S>, service: Types.NoInfer<S>) => ServiceMap<I>;
431
- /**
432
- * Adds a service to a given `ServiceMap`.
433
- *
434
- * @example
435
- * ```ts
436
- * import { pipe, ServiceMap } from "effect"
437
- * import * as assert from "node:assert"
438
- *
439
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
440
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
441
- *
442
- * const someServiceMap = ServiceMap.make(Port, { PORT: 8080 })
443
- *
444
- * const Services = pipe(
445
- * someServiceMap,
446
- * ServiceMap.add(Timeout, { TIMEOUT: 5000 })
447
- * )
448
- *
449
- * assert.deepStrictEqual(ServiceMap.get(Services, Port), { PORT: 8080 })
450
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
451
- * ```
452
- *
453
- * @since 4.0.0
454
- * @category Adders
455
- */
456
- export declare const add: {
457
- /**
458
- * Adds a service to a given `ServiceMap`.
459
- *
460
- * @example
461
- * ```ts
462
- * import { pipe, ServiceMap } from "effect"
463
- * import * as assert from "node:assert"
464
- *
465
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
466
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
467
- *
468
- * const someServiceMap = ServiceMap.make(Port, { PORT: 8080 })
469
- *
470
- * const Services = pipe(
471
- * someServiceMap,
472
- * ServiceMap.add(Timeout, { TIMEOUT: 5000 })
473
- * )
474
- *
475
- * assert.deepStrictEqual(ServiceMap.get(Services, Port), { PORT: 8080 })
476
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
477
- * ```
478
- *
479
- * @since 4.0.0
480
- * @category Adders
481
- */
482
- <I, S>(key: Key<I, S>, service: Types.NoInfer<S>): <Services>(self: ServiceMap<Services>) => ServiceMap<Services | I>;
483
- /**
484
- * Adds a service to a given `ServiceMap`.
485
- *
486
- * @example
487
- * ```ts
488
- * import { pipe, ServiceMap } from "effect"
489
- * import * as assert from "node:assert"
490
- *
491
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
492
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
493
- *
494
- * const someServiceMap = ServiceMap.make(Port, { PORT: 8080 })
495
- *
496
- * const Services = pipe(
497
- * someServiceMap,
498
- * ServiceMap.add(Timeout, { TIMEOUT: 5000 })
499
- * )
500
- *
501
- * assert.deepStrictEqual(ServiceMap.get(Services, Port), { PORT: 8080 })
502
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
503
- * ```
504
- *
505
- * @since 4.0.0
506
- * @category Adders
507
- */
508
- <Services, I, S>(self: ServiceMap<Services>, key: Key<I, S>, service: Types.NoInfer<S>): ServiceMap<Services | I>;
509
- };
510
- /**
511
- * @since 4.0.0
512
- * @category Adders
513
- */
514
- export declare const addOrOmit: {
515
- /**
516
- * @since 4.0.0
517
- * @category Adders
518
- */
519
- <I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: ServiceMap<Services>) => ServiceMap<Services | I>;
520
- /**
521
- * @since 4.0.0
522
- * @category Adders
523
- */
524
- <Services, I, S>(self: ServiceMap<Services>, key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): ServiceMap<Services | I>;
525
- };
526
- /**
527
- * Get a service from the context that corresponds to the given key, or
528
- * use the fallback value.
529
- *
530
- * @example
531
- * ```ts
532
- * import { ServiceMap } from "effect"
533
- * import * as assert from "node:assert"
534
- *
535
- * const Logger = ServiceMap.Service<{ log: (msg: string) => void }>("Logger")
536
- * const Database = ServiceMap.Service<{ query: (sql: string) => string }>(
537
- * "Database"
538
- * )
539
- *
540
- * const services = ServiceMap.make(Logger, {
541
- * log: (msg: string) => console.log(msg)
542
- * })
543
- *
544
- * const logger = ServiceMap.getOrElse(services, Logger, () => ({ log: () => {} }))
545
- * const database = ServiceMap.getOrElse(
546
- * services,
547
- * Database,
548
- * () => ({ query: () => "fallback" })
549
- * )
550
- *
551
- * assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
552
- * assert.deepStrictEqual(database, { query: () => "fallback" })
553
- * ```
554
- *
555
- * @since 4.0.0
556
- * @category Getters
557
- */
558
- export declare const getOrElse: {
559
- /**
560
- * Get a service from the context that corresponds to the given key, or
561
- * use the fallback value.
562
- *
563
- * @example
564
- * ```ts
565
- * import { ServiceMap } from "effect"
566
- * import * as assert from "node:assert"
567
- *
568
- * const Logger = ServiceMap.Service<{ log: (msg: string) => void }>("Logger")
569
- * const Database = ServiceMap.Service<{ query: (sql: string) => string }>(
570
- * "Database"
571
- * )
572
- *
573
- * const services = ServiceMap.make(Logger, {
574
- * log: (msg: string) => console.log(msg)
575
- * })
576
- *
577
- * const logger = ServiceMap.getOrElse(services, Logger, () => ({ log: () => {} }))
578
- * const database = ServiceMap.getOrElse(
579
- * services,
580
- * Database,
581
- * () => ({ query: () => "fallback" })
582
- * )
583
- *
584
- * assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
585
- * assert.deepStrictEqual(database, { query: () => "fallback" })
586
- * ```
587
- *
588
- * @since 4.0.0
589
- * @category Getters
590
- */
591
- <S, I, B>(key: Key<I, S>, orElse: LazyArg<B>): <Services>(self: ServiceMap<Services>) => S | B;
592
- /**
593
- * Get a service from the context that corresponds to the given key, or
594
- * use the fallback value.
595
- *
596
- * @example
597
- * ```ts
598
- * import { ServiceMap } from "effect"
599
- * import * as assert from "node:assert"
600
- *
601
- * const Logger = ServiceMap.Service<{ log: (msg: string) => void }>("Logger")
602
- * const Database = ServiceMap.Service<{ query: (sql: string) => string }>(
603
- * "Database"
604
- * )
605
- *
606
- * const services = ServiceMap.make(Logger, {
607
- * log: (msg: string) => console.log(msg)
608
- * })
609
- *
610
- * const logger = ServiceMap.getOrElse(services, Logger, () => ({ log: () => {} }))
611
- * const database = ServiceMap.getOrElse(
612
- * services,
613
- * Database,
614
- * () => ({ query: () => "fallback" })
615
- * )
616
- *
617
- * assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
618
- * assert.deepStrictEqual(database, { query: () => "fallback" })
619
- * ```
620
- *
621
- * @since 4.0.0
622
- * @category Getters
623
- */
624
- <Services, S, I, B>(self: ServiceMap<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B;
625
- };
626
- /**
627
- * @since 4.0.0
628
- * @category Getters
629
- */
630
- export declare const getOrUndefined: {
631
- /**
632
- * @since 4.0.0
633
- * @category Getters
634
- */
635
- <S, I>(key: Key<I, S>): <Services>(self: ServiceMap<Services>) => S | undefined;
636
- /**
637
- * @since 4.0.0
638
- * @category Getters
639
- */
640
- <Services, S, I>(self: ServiceMap<Services>, key: Key<I, S>): S | undefined;
641
- };
642
- /**
643
- * Get a service from the context that corresponds to the given key.
644
- *
645
- * This function is unsafe because if the key is not present in the context, a
646
- * runtime error will be thrown.
647
- *
648
- * For a safer version see {@link getOption}.
649
- *
650
- * @param self - The `ServiceMap` to search for the service.
651
- * @param service - The `Service` of the service to retrieve.
652
- *
653
- * @example
654
- * ```ts
655
- * import { ServiceMap } from "effect"
656
- * import * as assert from "node:assert"
657
- *
658
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
659
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
660
- *
661
- * const Services = ServiceMap.make(Port, { PORT: 8080 })
662
- *
663
- * assert.deepStrictEqual(ServiceMap.getUnsafe(Services, Port), { PORT: 8080 })
664
- * assert.throws(() => ServiceMap.getUnsafe(Services, Timeout))
665
- * ```
666
- *
667
- * @since 4.0.0
668
- * @category unsafe
669
- */
670
- export declare const getUnsafe: {
671
- /**
672
- * Get a service from the context that corresponds to the given key.
673
- *
674
- * This function is unsafe because if the key is not present in the context, a
675
- * runtime error will be thrown.
676
- *
677
- * For a safer version see {@link getOption}.
678
- *
679
- * @param self - The `ServiceMap` to search for the service.
680
- * @param service - The `Service` of the service to retrieve.
681
- *
682
- * @example
683
- * ```ts
684
- * import { ServiceMap } from "effect"
685
- * import * as assert from "node:assert"
686
- *
687
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
688
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
689
- *
690
- * const Services = ServiceMap.make(Port, { PORT: 8080 })
691
- *
692
- * assert.deepStrictEqual(ServiceMap.getUnsafe(Services, Port), { PORT: 8080 })
693
- * assert.throws(() => ServiceMap.getUnsafe(Services, Timeout))
694
- * ```
695
- *
696
- * @since 4.0.0
697
- * @category unsafe
698
- */
699
- <S, I>(service: Key<I, S>): <Services>(self: ServiceMap<Services>) => S;
700
- /**
701
- * Get a service from the context that corresponds to the given key.
702
- *
703
- * This function is unsafe because if the key is not present in the context, a
704
- * runtime error will be thrown.
705
- *
706
- * For a safer version see {@link getOption}.
707
- *
708
- * @param self - The `ServiceMap` to search for the service.
709
- * @param service - The `Service` of the service to retrieve.
710
- *
711
- * @example
712
- * ```ts
713
- * import { ServiceMap } from "effect"
714
- * import * as assert from "node:assert"
715
- *
716
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
717
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
718
- *
719
- * const Services = ServiceMap.make(Port, { PORT: 8080 })
720
- *
721
- * assert.deepStrictEqual(ServiceMap.getUnsafe(Services, Port), { PORT: 8080 })
722
- * assert.throws(() => ServiceMap.getUnsafe(Services, Timeout))
723
- * ```
724
- *
725
- * @since 4.0.0
726
- * @category unsafe
727
- */
728
- <Services, S, I>(self: ServiceMap<Services>, services: Key<I, S>): S;
729
- };
730
- /**
731
- * Get a service from the context that corresponds to the given key.
732
- *
733
- * @param self - The `ServiceMap` to search for the service.
734
- * @param service - The `Service` of the service to retrieve.
735
- *
736
- * @example
737
- * ```ts
738
- * import { pipe, ServiceMap } from "effect"
739
- * import * as assert from "node:assert"
740
- *
741
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
742
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
743
- *
744
- * const Services = pipe(
745
- * ServiceMap.make(Port, { PORT: 8080 }),
746
- * ServiceMap.add(Timeout, { TIMEOUT: 5000 })
747
- * )
748
- *
749
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
750
- * ```
751
- *
752
- * @since 4.0.0
753
- * @category Getters
754
- */
755
- export declare const get: {
756
- /**
757
- * Get a service from the context that corresponds to the given key.
758
- *
759
- * @param self - The `ServiceMap` to search for the service.
760
- * @param service - The `Service` of the service to retrieve.
761
- *
762
- * @example
763
- * ```ts
764
- * import { pipe, ServiceMap } from "effect"
765
- * import * as assert from "node:assert"
766
- *
767
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
768
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
769
- *
770
- * const Services = pipe(
771
- * ServiceMap.make(Port, { PORT: 8080 }),
772
- * ServiceMap.add(Timeout, { TIMEOUT: 5000 })
773
- * )
774
- *
775
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
776
- * ```
777
- *
778
- * @since 4.0.0
779
- * @category Getters
780
- */
781
- <Services, I extends Services, S>(service: Key<I, S>): (self: ServiceMap<Services>) => S;
782
- /**
783
- * Get a service from the context that corresponds to the given key.
784
- *
785
- * @param self - The `ServiceMap` to search for the service.
786
- * @param service - The `Service` of the service to retrieve.
787
- *
788
- * @example
789
- * ```ts
790
- * import { pipe, ServiceMap } from "effect"
791
- * import * as assert from "node:assert"
792
- *
793
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
794
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
795
- *
796
- * const Services = pipe(
797
- * ServiceMap.make(Port, { PORT: 8080 }),
798
- * ServiceMap.add(Timeout, { TIMEOUT: 5000 })
799
- * )
800
- *
801
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
802
- * ```
803
- *
804
- * @since 4.0.0
805
- * @category Getters
806
- */
807
- <Services, I extends Services, S>(self: ServiceMap<Services>, service: Key<I, S>): S;
808
- };
809
- /**
810
- * @example
811
- * ```ts
812
- * import { ServiceMap } from "effect"
813
- * import * as assert from "node:assert"
814
- *
815
- * const LoggerRef = ServiceMap.Reference("Logger", {
816
- * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
817
- * })
818
- *
819
- * const services = ServiceMap.empty()
820
- * const logger = ServiceMap.getReferenceUnsafe(services, LoggerRef)
821
- *
822
- * assert.deepStrictEqual(logger, { log: (msg: string) => console.log(msg) })
823
- * ```
824
- *
825
- * @since 4.0.0
826
- * @category unsafe
827
- */
828
- export declare const getReferenceUnsafe: <Services, S>(self: ServiceMap<Services>, service: Reference<S>) => S;
829
- /**
830
- * Get the value associated with the specified key from the context wrapped in
831
- * an `Option` object. If the key is not found, the `Option` object will be
832
- * `None`.
833
- *
834
- * @param self - The `ServiceMap` to search for the service.
835
- * @param service - The `Service` of the service to retrieve.
836
- *
837
- * @example
838
- * ```ts
839
- * import { Option, ServiceMap } from "effect"
840
- * import * as assert from "node:assert"
841
- *
842
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
843
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
844
- *
845
- * const Services = ServiceMap.make(Port, { PORT: 8080 })
846
- *
847
- * assert.deepStrictEqual(
848
- * ServiceMap.getOption(Services, Port),
849
- * Option.some({ PORT: 8080 })
850
- * )
851
- * assert.deepStrictEqual(ServiceMap.getOption(Services, Timeout), Option.none())
852
- * ```
853
- *
854
- * @since 4.0.0
855
- * @category Getters
856
- */
857
- export declare const getOption: {
858
- /**
859
- * Get the value associated with the specified key from the context wrapped in
860
- * an `Option` object. If the key is not found, the `Option` object will be
861
- * `None`.
862
- *
863
- * @param self - The `ServiceMap` to search for the service.
864
- * @param service - The `Service` of the service to retrieve.
865
- *
866
- * @example
867
- * ```ts
868
- * import { Option, ServiceMap } from "effect"
869
- * import * as assert from "node:assert"
870
- *
871
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
872
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
873
- *
874
- * const Services = ServiceMap.make(Port, { PORT: 8080 })
875
- *
876
- * assert.deepStrictEqual(
877
- * ServiceMap.getOption(Services, Port),
878
- * Option.some({ PORT: 8080 })
879
- * )
880
- * assert.deepStrictEqual(ServiceMap.getOption(Services, Timeout), Option.none())
881
- * ```
882
- *
883
- * @since 4.0.0
884
- * @category Getters
885
- */
886
- <S, I>(service: Key<I, S>): <Services>(self: ServiceMap<Services>) => Option.Option<S>;
887
- /**
888
- * Get the value associated with the specified key from the context wrapped in
889
- * an `Option` object. If the key is not found, the `Option` object will be
890
- * `None`.
891
- *
892
- * @param self - The `ServiceMap` to search for the service.
893
- * @param service - The `Service` of the service to retrieve.
894
- *
895
- * @example
896
- * ```ts
897
- * import { Option, ServiceMap } from "effect"
898
- * import * as assert from "node:assert"
899
- *
900
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
901
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
902
- *
903
- * const Services = ServiceMap.make(Port, { PORT: 8080 })
904
- *
905
- * assert.deepStrictEqual(
906
- * ServiceMap.getOption(Services, Port),
907
- * Option.some({ PORT: 8080 })
908
- * )
909
- * assert.deepStrictEqual(ServiceMap.getOption(Services, Timeout), Option.none())
910
- * ```
911
- *
912
- * @since 4.0.0
913
- * @category Getters
914
- */
915
- <Services, S, I>(self: ServiceMap<Services>, service: Key<I, S>): Option.Option<S>;
916
- };
917
- /**
918
- * Merges two `ServiceMap`s, returning a new `ServiceMap` containing the services of both.
919
- *
920
- * @param self - The first `ServiceMap` to merge.
921
- * @param that - The second `ServiceMap` to merge.
922
- *
923
- * @example
924
- * ```ts
925
- * import { ServiceMap } from "effect"
926
- * import * as assert from "node:assert"
927
- *
928
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
929
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
930
- *
931
- * const firstServiceMap = ServiceMap.make(Port, { PORT: 8080 })
932
- * const secondServiceMap = ServiceMap.make(Timeout, { TIMEOUT: 5000 })
933
- *
934
- * const Services = ServiceMap.merge(firstServiceMap, secondServiceMap)
935
- *
936
- * assert.deepStrictEqual(ServiceMap.get(Services, Port), { PORT: 8080 })
937
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
938
- * ```
939
- *
940
- * @since 4.0.0
941
- * @category Utils
942
- */
943
- export declare const merge: {
944
- /**
945
- * Merges two `ServiceMap`s, returning a new `ServiceMap` containing the services of both.
946
- *
947
- * @param self - The first `ServiceMap` to merge.
948
- * @param that - The second `ServiceMap` to merge.
949
- *
950
- * @example
951
- * ```ts
952
- * import { ServiceMap } from "effect"
953
- * import * as assert from "node:assert"
954
- *
955
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
956
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
957
- *
958
- * const firstServiceMap = ServiceMap.make(Port, { PORT: 8080 })
959
- * const secondServiceMap = ServiceMap.make(Timeout, { TIMEOUT: 5000 })
960
- *
961
- * const Services = ServiceMap.merge(firstServiceMap, secondServiceMap)
962
- *
963
- * assert.deepStrictEqual(ServiceMap.get(Services, Port), { PORT: 8080 })
964
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
965
- * ```
966
- *
967
- * @since 4.0.0
968
- * @category Utils
969
- */
970
- <R1>(that: ServiceMap<R1>): <Services>(self: ServiceMap<Services>) => ServiceMap<R1 | Services>;
971
- /**
972
- * Merges two `ServiceMap`s, returning a new `ServiceMap` containing the services of both.
973
- *
974
- * @param self - The first `ServiceMap` to merge.
975
- * @param that - The second `ServiceMap` to merge.
976
- *
977
- * @example
978
- * ```ts
979
- * import { ServiceMap } from "effect"
980
- * import * as assert from "node:assert"
981
- *
982
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
983
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
984
- *
985
- * const firstServiceMap = ServiceMap.make(Port, { PORT: 8080 })
986
- * const secondServiceMap = ServiceMap.make(Timeout, { TIMEOUT: 5000 })
987
- *
988
- * const Services = ServiceMap.merge(firstServiceMap, secondServiceMap)
989
- *
990
- * assert.deepStrictEqual(ServiceMap.get(Services, Port), { PORT: 8080 })
991
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
992
- * ```
993
- *
994
- * @since 4.0.0
995
- * @category Utils
996
- */
997
- <Services, R1>(self: ServiceMap<Services>, that: ServiceMap<R1>): ServiceMap<Services | R1>;
998
- };
999
- /**
1000
- * Merges any number of `ServiceMap`s, returning a new `ServiceMap` containing the services of all.
1001
- *
1002
- * @example
1003
- * ```ts
1004
- * import { ServiceMap } from "effect"
1005
- * import * as assert from "node:assert"
1006
- *
1007
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
1008
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
1009
- * const Host = ServiceMap.Service<{ HOST: string }>("Host")
1010
- *
1011
- * const firstServiceMap = ServiceMap.make(Port, { PORT: 8080 })
1012
- * const secondServiceMap = ServiceMap.make(Timeout, { TIMEOUT: 5000 })
1013
- * const thirdServiceMap = ServiceMap.make(Host, { HOST: "localhost" })
1014
- *
1015
- * const Services = ServiceMap.mergeAll(
1016
- * firstServiceMap,
1017
- * secondServiceMap,
1018
- * thirdServiceMap
1019
- * )
1020
- *
1021
- * assert.deepStrictEqual(ServiceMap.get(Services, Port), { PORT: 8080 })
1022
- * assert.deepStrictEqual(ServiceMap.get(Services, Timeout), { TIMEOUT: 5000 })
1023
- * assert.deepStrictEqual(ServiceMap.get(Services, Host), { HOST: "localhost" })
1024
- * ```
1025
- *
1026
- * @since 3.12.0
1027
- */
1028
- export declare const mergeAll: <T extends Array<unknown>>(...ctxs: [...{ [K in keyof T]: ServiceMap<T[K]>; }]) => ServiceMap<T[number]>;
1029
- /**
1030
- * Returns a new `ServiceMap` that contains only the specified services.
1031
- *
1032
- * @param self - The `ServiceMap` to prune services from.
1033
- * @param services - The list of `Service`s to be included in the new `ServiceMap`.
1034
- *
1035
- * @example
1036
- * ```ts
1037
- * import { Option, pipe, ServiceMap } from "effect"
1038
- * import * as assert from "node:assert"
1039
- *
1040
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
1041
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
1042
- *
1043
- * const someServiceMap = pipe(
1044
- * ServiceMap.make(Port, { PORT: 8080 }),
1045
- * ServiceMap.add(Timeout, { TIMEOUT: 5000 })
1046
- * )
1047
- *
1048
- * const Services = pipe(someServiceMap, ServiceMap.pick(Port))
1049
- *
1050
- * assert.deepStrictEqual(
1051
- * ServiceMap.getOption(Services, Port),
1052
- * Option.some({ PORT: 8080 })
1053
- * )
1054
- * assert.deepStrictEqual(ServiceMap.getOption(Services, Timeout), Option.none())
1055
- * ```
1056
- *
1057
- * @since 4.0.0
1058
- * @category Utils
1059
- */
1060
- export declare const pick: <S extends ReadonlyArray<Key<any, any>>>(...services: S) => <Services>(self: ServiceMap<Services>) => ServiceMap<Services & Service.Identifier<S[number]>>;
1061
- /**
1062
- * @example
1063
- * ```ts
1064
- * import { Option, pipe, ServiceMap } from "effect"
1065
- * import * as assert from "node:assert"
1066
- *
1067
- * const Port = ServiceMap.Service<{ PORT: number }>("Port")
1068
- * const Timeout = ServiceMap.Service<{ TIMEOUT: number }>("Timeout")
1069
- *
1070
- * const someServiceMap = pipe(
1071
- * ServiceMap.make(Port, { PORT: 8080 }),
1072
- * ServiceMap.add(Timeout, { TIMEOUT: 5000 })
1073
- * )
1074
- *
1075
- * const Services = pipe(someServiceMap, ServiceMap.omit(Timeout))
1076
- *
1077
- * assert.deepStrictEqual(
1078
- * ServiceMap.getOption(Services, Port),
1079
- * Option.some({ PORT: 8080 })
1080
- * )
1081
- * assert.deepStrictEqual(ServiceMap.getOption(Services, Timeout), Option.none())
1082
- * ```
1083
- *
1084
- * @since 4.0.0
1085
- * @category Utils
1086
- */
1087
- export declare const omit: <S extends ReadonlyArray<Key<any, any>>>(...keys: S) => <Services>(self: ServiceMap<Services>) => ServiceMap<Exclude<Services, Service.Identifier<S[number]>>>;
1088
- /**
1089
- * Perform a series of mutations on a `ServiceMap`. Prevents unnecessary copying
1090
- * of the underlying map when multiple mutations are needed.
1091
- *
1092
- * @since 4.0.0
1093
- * @category Utils
1094
- */
1095
- export declare const mutate: {
1096
- /**
1097
- * Perform a series of mutations on a `ServiceMap`. Prevents unnecessary copying
1098
- * of the underlying map when multiple mutations are needed.
1099
- *
1100
- * @since 4.0.0
1101
- * @category Utils
1102
- */
1103
- <Services, B>(f: (serviceMap: ServiceMap<Services>) => ServiceMap<B>): <Services>(self: ServiceMap<Services>) => ServiceMap<B>;
1104
- /**
1105
- * Perform a series of mutations on a `ServiceMap`. Prevents unnecessary copying
1106
- * of the underlying map when multiple mutations are needed.
1107
- *
1108
- * @since 4.0.0
1109
- * @category Utils
1110
- */
1111
- <Services, B>(self: ServiceMap<Services>, f: (serviceMap: ServiceMap<Services>) => ServiceMap<B>): ServiceMap<B>;
1112
- };
1113
- /**
1114
- * Creates a service map key with a default value.
1115
- *
1116
- * **Details**
1117
- *
1118
- * `ServiceMap.Reference` allows you to create a key that can hold a value. You
1119
- * can provide a default value for the service, which will automatically be used
1120
- * when the context is accessed, or override it with a custom implementation
1121
- * when needed.
1122
- *
1123
- * @example
1124
- * ```ts
1125
- * import { ServiceMap } from "effect"
1126
- *
1127
- * // Create a reference with a default value
1128
- * const LoggerRef = ServiceMap.Reference("Logger", {
1129
- * defaultValue: () => ({ log: (msg: string) => console.log(msg) })
1130
- * })
1131
- *
1132
- * // The reference provides the default value when accessed from an empty context
1133
- * const services = ServiceMap.empty()
1134
- * const logger = ServiceMap.get(services, LoggerRef)
1135
- *
1136
- * // You can also override the default value
1137
- * const customServices = ServiceMap.make(LoggerRef, {
1138
- * log: (msg: string) => `Custom: ${msg}`
1139
- * })
1140
- * const customLogger = ServiceMap.get(customServices, LoggerRef)
1141
- * ```
1142
- *
1143
- * @since 4.0.0
1144
- * @category References
1145
- */
1146
- export declare const Reference: <Service>(key: string, options: {
1147
- readonly defaultValue: () => Service;
1148
- }) => Reference<Service>;
1149
- export {};
1150
- //# sourceMappingURL=ServiceMap.d.ts.map