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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toArbitrary.js","names":["Array","Boolean","Equal","memoize","Number","Option","Order","Predicate","SchemaAST","Struct","UndefinedOr","errorWithPath","InternalRecord","InternalAnnotations","arbitraryMemoMap","WeakMap","suspendDepthIdentifierMap","emptyRecursionStack","makeReport","warnings","toReport","report","slice","arbitraryError","what","Error","entryComparator","a","b","equals","applyChecks","ast","filters","arbitrary","reduce","acc","filter","run","defaultParseOptions","undefined","validateArrayConstraints","constraint","label","minLength","maxLength","lengthToFastCheckConstraints","arrayWithConstraints","fc","item","comparator","uniqueArray","array","ctx","terminal","arrayConstraints","unique","appendArray","out","len","rest","chain","as","length","constant","map","appendObjectEntries","entries","o","Object","fromEntries","max","makeReducer","ReducerMax","min","ReducerMin","or","ReducerOr","concat","makeReducerConcat","combiner","makeCombiner","integer","noInfinity","noNaN","patterns","omitKeyWhen","isUndefined","mergeOrderedBound","order","self","selfExclusive","that","thatExclusive","takeComparison","comparison","mergeOrderedConstraints","minimum","exclusiveMinimum","maximum","exclusiveMaximum","mergeConstraint","ordered","selfOrdered","selfRest","thatOrdered","thatRest","combine","collectChecks","checks","arbitraries","visit","check","annotations","push","_tag","child","forEach","constraintContext","constraintAnnotations","isNotUndefined","c","resetContext","objectEntriesConstraints","requiredKeys","indexSignatures","propertySignatures","Math","objectWithOptionalCount","pss","orderedNames","optionalNames","requiredCount","minOptional","maxOptional","full","record","chosen","shuffledSubarray","tuple","base","names","keep","Set","name","has","assignProperty","toRangeConstraints","error","toIntegerConstraints","excluded","floor","ceil","toFloatConstraints","noDefaultInfinity","minExcluded","maxExcluded","toBigIntConstraints","BigInt","makeLazy","normal","recursionStack","same","f","getSuspendRecursion","depthIdentifier","get","createDepthIdentifier","set","maxDepth","oneOf","oneof","finiteNumberConstraint","finiteNumberContext","reportChecks","path","covered","nextCovered","candidate","description","representation","id","identifier","expected","collectReport","stack","WeakSet","add","typeParameters","tp","i","type","elements","ps","is","parameter","types","parts","part","toEncoded","thunk","delete","applyCandidates","weighted","weight","make","globalThis","isInteger","applyFilterLayer","normalizeDerivation","output","hasTypeParameters","makeTypeParameters","lazyNormal","filterLayer","normalBase","terminalBase","nextCtx","memoized","recur","annotation","resolve","toArbitrary","isDeclaration","derive","lawc","replaceChecks","_ctx","anything","pattern","stringMatching","RegExp","string","float","boolean","bigInt","Symbol","for","literal","symbol","object","enumsToLiterals","segments","segment","String","join","reset","elementArbitraries","optionals","element","isOptional","some","needsRest","isReadonlyArrayNonEmpty","optionalTarget","includedOptionals","none","getSomes","head","tail","restCtx","minRestLength","headArbitrary","restArbitrary","tailArbitraries","t","recursion","terminalOut","optionalCount","entriesConstraints","minEntries","key","value","entry","memo","memoizeThunk","nextStack","includes"],"sources":["../../../src/internal/schema/toArbitrary.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toCodeDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCodeDocument.d.ts","sourceRoot":"","sources":["../../../src/internal/schema/toCodeDocument.ts"],"names":[],"mappings":""}
@@ -0,0 +1,438 @@
1
+ import * as Arr from "../../Array.js";
2
+ import { format, formatPropertyKey } from "../../Formatter.js";
3
+ import { errorWithPath } from "../errors.js";
4
+ import * as InternalRecord from "../record.js";
5
+ import * as InternalAnnotations from "./annotations.js";
6
+ /** @internal */
7
+ export function makeCode(runtime, Type) {
8
+ return {
9
+ runtime,
10
+ Type
11
+ };
12
+ }
13
+ function renderEmittableAnnotation(input) {
14
+ if (input === null || typeof input === "string" || typeof input === "boolean" || typeof input === "number" || typeof input === "bigint") return format(input);
15
+ if (typeof input === "symbol") {
16
+ const key = globalThis.Symbol.keyFor(input);
17
+ return key === undefined ? undefined : `Symbol.for(${format(key)})`;
18
+ }
19
+ if (typeof input !== "object") return undefined;
20
+ if (Array.isArray(input)) {
21
+ const values = [];
22
+ for (const value of input) {
23
+ const rendered = renderEmittableAnnotation(value);
24
+ if (rendered === undefined) return undefined;
25
+ values.push(rendered);
26
+ }
27
+ return `[${values.join(", ")}]`;
28
+ }
29
+ const entries = [];
30
+ for (const [key, value] of Object.entries(input)) {
31
+ const rendered = renderEmittableAnnotation(value);
32
+ if (rendered === undefined) return undefined;
33
+ entries.push(`${formatPropertyKey(key)}: ${rendered}`);
34
+ }
35
+ return `{ ${entries.join(", ")} }`;
36
+ }
37
+ function renderAnnotations(annotations) {
38
+ if (annotations === undefined) return undefined;
39
+ const entries = [];
40
+ for (const [key, value] of Object.entries(annotations)) {
41
+ if (InternalAnnotations.annotationExcludedKeys.has(key)) continue;
42
+ const rendered = renderEmittableAnnotation(value);
43
+ if (rendered !== undefined) entries.push(`${formatPropertyKey(key)}: ${rendered}`);
44
+ }
45
+ return entries.length === 0 ? undefined : `{ ${entries.join(", ")} }`;
46
+ }
47
+ /** @internal */
48
+ export function sanitizeJavaScriptIdentifier(input) {
49
+ if (input.length === 0) return "_";
50
+ const out = input.replace(/[^A-Za-z0-9_$]/gu, "_");
51
+ const first = out[0];
52
+ return first >= "a" && first <= "z" ? first.toUpperCase() + out.slice(1) : first >= "0" && first <= "9" ? `_${out}` : out;
53
+ }
54
+ function isSimpleLiveLiteral(representation) {
55
+ return representation._tag === "Literal" && representation.checks.length === 0 && representation.annotations === undefined;
56
+ }
57
+ /** @internal */
58
+ export function topologicalSort(references) {
59
+ const identifiers = Object.keys(references);
60
+ const identifierSet = new Set(identifiers);
61
+ function collectRefs(root) {
62
+ const refs = new Set();
63
+ const visited = new WeakSet();
64
+ const stack = [root];
65
+ function pushRepresentationSchemas(representation) {
66
+ if (representation?.schemas !== undefined) stack.push(...representation.schemas);
67
+ }
68
+ function pushChecks(checks) {
69
+ for (const check of checks) {
70
+ pushRepresentationSchemas(check.representation);
71
+ if (check._tag === "FilterGroup") pushChecks(check.checks);
72
+ }
73
+ }
74
+ while (stack.length > 0) {
75
+ const representation = stack.pop();
76
+ if (visited.has(representation)) continue;
77
+ visited.add(representation);
78
+ if (representation._tag === "Reference") {
79
+ if (identifierSet.has(representation.$ref)) refs.add(representation.$ref);
80
+ continue;
81
+ }
82
+ pushChecks(representation.checks);
83
+ switch (representation._tag) {
84
+ case "Declaration":
85
+ pushRepresentationSchemas(representation.representation);
86
+ stack.push(...representation.typeParameters);
87
+ break;
88
+ case "Suspend":
89
+ stack.push(representation.thunk);
90
+ break;
91
+ case "TemplateLiteral":
92
+ stack.push(...representation.parts);
93
+ break;
94
+ case "Arrays":
95
+ for (const element of representation.elements) stack.push(element.type);
96
+ stack.push(...representation.rest);
97
+ break;
98
+ case "Objects":
99
+ for (const property of representation.propertySignatures) stack.push(property.type);
100
+ for (const signature of representation.indexSignatures) {
101
+ stack.push(signature.parameter, signature.type);
102
+ }
103
+ break;
104
+ case "Union":
105
+ stack.push(...representation.types);
106
+ break;
107
+ }
108
+ }
109
+ return refs;
110
+ }
111
+ const dependencies = new Map(identifiers.map(identifier => [identifier, collectRefs(references[identifier])]));
112
+ const recursive = new Set();
113
+ const state = new Map();
114
+ const stack = [];
115
+ function visit(identifier) {
116
+ const current = state.get(identifier) ?? 0;
117
+ if (current === 1) {
118
+ const start = stack.indexOf(identifier);
119
+ for (let index = start; index < stack.length; index++) recursive.add(stack[index]);
120
+ return;
121
+ }
122
+ if (current === 2) return;
123
+ state.set(identifier, 1);
124
+ stack.push(identifier);
125
+ for (const dependency of dependencies.get(identifier)) visit(dependency);
126
+ stack.pop();
127
+ state.set(identifier, 2);
128
+ }
129
+ for (const identifier of identifiers) visit(identifier);
130
+ const inDegree = new Map();
131
+ const dependents = new Map();
132
+ for (const identifier of identifiers) {
133
+ if (!recursive.has(identifier)) {
134
+ inDegree.set(identifier, 0);
135
+ dependents.set(identifier, new Set());
136
+ }
137
+ }
138
+ for (const [identifier, internalDependencies] of dependencies) {
139
+ if (recursive.has(identifier)) continue;
140
+ for (const dependency of internalDependencies) {
141
+ if (recursive.has(dependency)) continue;
142
+ inDegree.set(identifier, inDegree.get(identifier) + 1);
143
+ dependents.get(dependency).add(identifier);
144
+ }
145
+ }
146
+ const queue = [];
147
+ for (const [identifier, degree] of inDegree) {
148
+ if (degree === 0) queue.push(identifier);
149
+ }
150
+ const nonRecursives = [];
151
+ for (let index = 0; index < queue.length; index++) {
152
+ const $ref = queue[index];
153
+ nonRecursives.push({
154
+ $ref,
155
+ representation: references[$ref]
156
+ });
157
+ for (const dependent of dependents.get($ref)) {
158
+ const degree = inDegree.get(dependent) - 1;
159
+ inDegree.set(dependent, degree);
160
+ if (degree === 0) queue.push(dependent);
161
+ }
162
+ }
163
+ const recursives = {};
164
+ for (const identifier of recursive) InternalRecord.assignProperty(recursives, identifier, references[identifier]);
165
+ return {
166
+ nonRecursives,
167
+ recursives
168
+ };
169
+ }
170
+ /** @internal */
171
+ export function toCodeDocument(document) {
172
+ const artifacts = [];
173
+ const sorted = topologicalSort(document.references);
174
+ const sanitizedReferences = new Map();
175
+ const uniqueIdentifiers = new Set();
176
+ let compilingRecursiveDefinition = false;
177
+ let explicitSuspendDepth = 0;
178
+ for (const {
179
+ $ref
180
+ } of sorted.nonRecursives) ensureUniqueIdentifier($ref);
181
+ for (const $ref of Object.keys(sorted.recursives)) ensureUniqueIdentifier($ref);
182
+ const nonRecursives = sorted.nonRecursives.map(({
183
+ $ref,
184
+ representation
185
+ }) => ({
186
+ $ref: ensureUniqueIdentifier($ref),
187
+ code: recur(representation, ["references", $ref])
188
+ }));
189
+ const recursives = {};
190
+ for (const [$ref, representation] of Object.entries(sorted.recursives)) {
191
+ compilingRecursiveDefinition = true;
192
+ InternalRecord.assignProperty(recursives, ensureUniqueIdentifier($ref), recur(representation, ["references", $ref]));
193
+ compilingRecursiveDefinition = false;
194
+ }
195
+ const codes = document.representations.map((representation, index) => recur(representation, ["representations", index]));
196
+ return {
197
+ codes,
198
+ references: {
199
+ nonRecursives,
200
+ recursives
201
+ },
202
+ artifacts
203
+ };
204
+ function ensureUniqueIdentifier(original) {
205
+ const existing = sanitizedReferences.get(original);
206
+ if (existing !== undefined) return existing;
207
+ const candidate = freshIdentifier(original);
208
+ sanitizedReferences.set(original, candidate);
209
+ return candidate;
210
+ }
211
+ function freshIdentifier(seed) {
212
+ const sanitized = sanitizeJavaScriptIdentifier(seed);
213
+ let candidate = sanitized;
214
+ let suffix = 0;
215
+ while (uniqueIdentifiers.has(candidate)) candidate = `${sanitized}${++suffix}`;
216
+ uniqueIdentifiers.add(candidate);
217
+ return candidate;
218
+ }
219
+ function addImport(importDeclaration) {
220
+ if (!artifacts.some(artifact => artifact._tag === "Import" && artifact.importDeclaration === importDeclaration)) {
221
+ artifacts.push({
222
+ _tag: "Import",
223
+ importDeclaration
224
+ });
225
+ }
226
+ }
227
+ function addSymbol(symbol) {
228
+ const identifier = freshIdentifier("_symbol");
229
+ const key = globalThis.Symbol.keyFor(symbol);
230
+ const description = symbol.description;
231
+ artifacts.push({
232
+ _tag: "Symbol",
233
+ identifier,
234
+ code: makeCode(key === undefined ? `Symbol(${description === undefined ? "" : format(description)})` : `Symbol.for(${format(key)})`, `typeof ${identifier}`)
235
+ });
236
+ return identifier;
237
+ }
238
+ function annotationSchemas(representation, path) {
239
+ return representation?.schemas?.map((schema, index) => recur(schema, [...path, "schemas", index])) ?? [];
240
+ }
241
+ function checkBrands(check) {
242
+ const own = InternalAnnotations.collectBrands(check.annotations);
243
+ if (check._tag === "FilterGroup" && check.annotations?.toCode === undefined) {
244
+ return [...own, ...check.checks.flatMap(checkBrands)];
245
+ }
246
+ return own;
247
+ }
248
+ function runtimeBrands(brands) {
249
+ return brands.length === 0 ? "" : `.pipe(${brands.map(brand => `Schema.brand(${format(brand)})`).join(", ")})`;
250
+ }
251
+ function typeBrands(brands) {
252
+ if (brands.length === 0) return "";
253
+ addImport(`import type * as Brand from "effect/Brand"`);
254
+ return brands.map(brand => ` & Brand.Brand<${format(brand)}>`).join("");
255
+ }
256
+ function runtimeAnnotate(annotations, method = "annotate") {
257
+ const rendered = renderAnnotations(annotations);
258
+ return rendered === undefined ? "" : `.${method}(${rendered})`;
259
+ }
260
+ function compileCheck(check, path) {
261
+ const callback = check.annotations?.toCode;
262
+ let runtime;
263
+ if (callback !== undefined) {
264
+ const schemas = annotationSchemas(check.representation, [...path, "representation"]);
265
+ const output = callback({
266
+ schemas
267
+ });
268
+ for (const importDeclaration of output.importDeclarations ?? []) addImport(importDeclaration);
269
+ runtime = output.runtime;
270
+ } else if (check._tag === "Filter") {
271
+ throw errorWithPath("Missing toCode callback", [...path, "annotations", "toCode"]);
272
+ } else {
273
+ runtime = `Schema.makeFilterGroup([${check.checks.map((child, index) => compileCheck(child, [...path, "checks", index])).join(", ")}])`;
274
+ }
275
+ runtime += runtimeAnnotate(check.annotations);
276
+ if (check._tag === "Filter" && check.aborted) runtime += ".abort()";
277
+ return runtime;
278
+ }
279
+ function applyNode(base, representation, path, includeTypeBrands = true) {
280
+ const nodeBrands = InternalAnnotations.collectBrands(representation.annotations);
281
+ let runtime = base.runtime + runtimeAnnotate(representation.annotations) + runtimeBrands(nodeBrands);
282
+ let Type = base.Type + (includeTypeBrands ? typeBrands(nodeBrands) : "");
283
+ for (let index = 0; index < representation.checks.length; index++) {
284
+ const check = representation.checks[index];
285
+ const brands = checkBrands(check);
286
+ runtime += `.check(${compileCheck(check, [...path, "checks", index])})${runtimeBrands(brands)}`;
287
+ if (includeTypeBrands) Type += typeBrands(brands);
288
+ }
289
+ return makeCode(runtime, Type);
290
+ }
291
+ function recur(representation, path, includeTypeBrands = true) {
292
+ if (representation._tag === "Reference") {
293
+ if (!Object.hasOwn(document.references, representation.$ref)) {
294
+ throw errorWithPath(`Invalid reference ${representation.$ref}`, [...path, "$ref"]);
295
+ }
296
+ const identifier = ensureUniqueIdentifier(representation.$ref);
297
+ if (compilingRecursiveDefinition && explicitSuspendDepth === 0 && Object.hasOwn(sorted.recursives, representation.$ref)) {
298
+ return makeCode(`Schema.suspend((): Schema.Codec<${identifier}> => ${identifier})`, identifier);
299
+ }
300
+ const Type = includeTypeBrands ? identifier : recur(document.references[representation.$ref], ["references", representation.$ref], false).Type;
301
+ return makeCode(identifier, Type);
302
+ }
303
+ return applyNode(on(representation, path, includeTypeBrands), representation, path, includeTypeBrands);
304
+ }
305
+ function on(representation, path, includeTypeBrands) {
306
+ switch (representation._tag) {
307
+ case "Declaration":
308
+ {
309
+ const callback = representation.annotations?.toCode;
310
+ if (callback === undefined) {
311
+ throw errorWithPath("Missing toCode callback", [...path, "annotations", "toCode"]);
312
+ }
313
+ const typeParameters = representation.typeParameters.map((typeParameter, index) => recur(typeParameter, [...path, "typeParameters", index]));
314
+ const output = callback({
315
+ typeParameters
316
+ });
317
+ for (const importDeclaration of output.importDeclarations ?? []) addImport(importDeclaration);
318
+ return makeCode(output.runtime, output.Type);
319
+ }
320
+ case "Suspend":
321
+ {
322
+ explicitSuspendDepth++;
323
+ const thunk = recur(representation.thunk, [...path, "thunk"]);
324
+ explicitSuspendDepth--;
325
+ return makeCode(`Schema.suspend((): Schema.Codec<${thunk.Type}> => ${thunk.runtime})`, thunk.Type);
326
+ }
327
+ case "Null":
328
+ return makeCode("Schema.Null", "null");
329
+ case "Undefined":
330
+ return makeCode("Schema.Undefined", "undefined");
331
+ case "Void":
332
+ return makeCode("Schema.Void", "void");
333
+ case "Never":
334
+ return makeCode("Schema.Never", "never");
335
+ case "Unknown":
336
+ return makeCode("Schema.Unknown", "unknown");
337
+ case "Any":
338
+ return makeCode("Schema.Any", "any");
339
+ case "String":
340
+ return makeCode("Schema.String", "string");
341
+ case "Number":
342
+ return makeCode("Schema.Number", "number");
343
+ case "Boolean":
344
+ return makeCode("Schema.Boolean", "boolean");
345
+ case "BigInt":
346
+ return makeCode("Schema.BigInt", "bigint");
347
+ case "Symbol":
348
+ return makeCode("Schema.Symbol", "symbol");
349
+ case "Literal":
350
+ {
351
+ const literal = format(representation.literal);
352
+ return makeCode(`Schema.Literal(${literal})`, literal);
353
+ }
354
+ case "UniqueSymbol":
355
+ {
356
+ const identifier = addSymbol(representation.symbol);
357
+ return makeCode(`Schema.UniqueSymbol(${identifier})`, `typeof ${identifier}`);
358
+ }
359
+ case "ObjectKeyword":
360
+ return makeCode("Schema.ObjectKeyword", "object");
361
+ case "Enum":
362
+ {
363
+ const identifier = freshIdentifier("_Enum");
364
+ artifacts.push({
365
+ _tag: "Enum",
366
+ identifier,
367
+ code: makeCode(`enum ${identifier} { ${representation.enums.map(([name, value]) => `${format(name)} = ${format(value)}`).join(", ")} }`, `typeof ${identifier}`)
368
+ });
369
+ return makeCode(`Schema.Enum(${identifier})`, identifier);
370
+ }
371
+ case "TemplateLiteral":
372
+ {
373
+ const parts = representation.parts.map((part, index) => recur(part, [...path, "parts", index], false));
374
+ const Type = `\`${parts.map(part => `\${${part.Type}}`).join("")}\``;
375
+ return makeCode(`Schema.TemplateLiteral([${parts.map(part => part.runtime).join(", ")}])`, Type);
376
+ }
377
+ case "Arrays":
378
+ {
379
+ const elements = representation.elements.map((element, index) => {
380
+ const type = recur(element.type, [...path, "elements", index, "type"]);
381
+ return makeCode(`${element.isOptional ? "Schema.optionalKey(" : ""}${type.runtime}${element.isOptional ? ")" : ""}${runtimeAnnotate(element.annotations, "annotateKey")}`, `${type.Type}${element.isOptional ? "?" : ""}`);
382
+ });
383
+ const rest = representation.rest.map((item, index) => recur(item, [...path, "rest", index]));
384
+ if (Arr.isArrayNonEmpty(rest)) {
385
+ const item = rest[0];
386
+ if (elements.length === 0 && rest.length === 1) {
387
+ return makeCode(`Schema.Array(${item.runtime})`, `ReadonlyArray<${item.Type}>`);
388
+ }
389
+ const post = rest.slice(1);
390
+ return makeCode(`Schema.TupleWithRest(Schema.Tuple([${elements.map(element => element.runtime).join(", ")}]), [${rest.map(item => item.runtime).join(", ")}])`, `readonly [${elements.map(element => element.Type).join(", ")}, ...Array<${item.Type}>${post.length > 0 ? `, ${post.map(item => item.Type).join(", ")}` : ""}]`);
391
+ }
392
+ return makeCode(`Schema.Tuple([${elements.map(element => element.runtime).join(", ")}])`, `readonly [${elements.map(element => element.Type).join(", ")}]`);
393
+ }
394
+ case "Objects":
395
+ {
396
+ const properties = representation.propertySignatures.map((property, index) => {
397
+ const isSymbol = typeof property.name === "symbol";
398
+ const name = isSymbol ? addSymbol(property.name) : formatPropertyKey(property.name);
399
+ const type = recur(property.type, [...path, "propertySignatures", index, "type"]);
400
+ let runtime = type.runtime;
401
+ if (property.isMutable) runtime = `Schema.mutableKey(${runtime})`;
402
+ if (property.isOptional) runtime = `Schema.optionalKey(${runtime})`;
403
+ const runtimeName = isSymbol ? `[${name}]` : name;
404
+ const typeName = `${property.isMutable ? "" : "readonly "}${runtimeName}${property.isOptional ? "?" : ""}`;
405
+ return makeCode(`${runtimeName}: ${runtime}${runtimeAnnotate(property.annotations, "annotateKey")}`, `${typeName}: ${type.Type}`);
406
+ });
407
+ const indexSignatures = representation.indexSignatures.map((signature, index) => ({
408
+ parameter: recur(signature.parameter, [...path, "indexSignatures", index, "parameter"]),
409
+ type: recur(signature.type, [...path, "indexSignatures", index, "type"])
410
+ }));
411
+ const propertyRuntimes = properties.map(property => property.runtime).join(", ");
412
+ const propertyTypes = properties.map(property => property.Type).join(", ");
413
+ if (indexSignatures.length === 0) {
414
+ return makeCode(`Schema.Struct({ ${propertyRuntimes} })`, `{ ${propertyTypes} }`);
415
+ }
416
+ if (properties.length === 0 && indexSignatures.length === 1) {
417
+ const signature = indexSignatures[0];
418
+ return makeCode(`Schema.Record(${signature.parameter.runtime}, ${signature.type.runtime})`, `{ readonly [x: ${signature.parameter.Type}]: ${signature.type.Type} }`);
419
+ }
420
+ const indexRuntimes = indexSignatures.map(signature => `Schema.Record(${signature.parameter.runtime}, ${signature.type.runtime})`).join(", ");
421
+ const indexTypes = indexSignatures.map(signature => `readonly [x: ${signature.parameter.Type}]: ${signature.type.Type}`).join(", ");
422
+ return makeCode(`Schema.StructWithRest(Schema.Struct({ ${propertyRuntimes} }), [${indexRuntimes}])`, `{ ${propertyTypes}${properties.length > 0 ? ", " : ""}${indexTypes} }`);
423
+ }
424
+ case "Union":
425
+ {
426
+ if (representation.types.length === 0) return makeCode("Schema.Never", "never");
427
+ if (representation.types.every(isSimpleLiveLiteral)) {
428
+ const literals = representation.types.map(literal => format(literal.literal));
429
+ return literals.length === 1 ? makeCode(`Schema.Literal(${literals[0]})`, literals[0]) : makeCode(`Schema.Literals([${literals.join(", ")}])`, literals.join(" | "));
430
+ }
431
+ const types = representation.types.map((type, index) => recur(type, [...path, "types", index], includeTypeBrands));
432
+ const mode = representation.mode === "anyOf" ? "" : `, { mode: "oneOf" }`;
433
+ return makeCode(`Schema.Union([${types.map(type => type.runtime).join(", ")}]${mode})`, types.map(type => type.Type).join(" | "));
434
+ }
435
+ }
436
+ }
437
+ }
438
+ //# sourceMappingURL=toCodeDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCodeDocument.js","names":["Arr","format","formatPropertyKey","errorWithPath","InternalRecord","InternalAnnotations","makeCode","runtime","Type","renderEmittableAnnotation","input","key","globalThis","Symbol","keyFor","undefined","Array","isArray","values","value","rendered","push","join","entries","Object","renderAnnotations","annotations","annotationExcludedKeys","has","length","sanitizeJavaScriptIdentifier","out","replace","first","toUpperCase","slice","isSimpleLiveLiteral","representation","_tag","checks","topologicalSort","references","identifiers","keys","identifierSet","Set","collectRefs","root","refs","visited","WeakSet","stack","pushRepresentationSchemas","schemas","pushChecks","check","pop","add","$ref","typeParameters","thunk","parts","element","elements","type","rest","property","propertySignatures","signature","indexSignatures","parameter","types","dependencies","Map","map","identifier","recursive","state","visit","current","get","start","indexOf","index","set","dependency","inDegree","dependents","internalDependencies","queue","degree","nonRecursives","dependent","recursives","assignProperty","toCodeDocument","document","artifacts","sorted","sanitizedReferences","uniqueIdentifiers","compilingRecursiveDefinition","explicitSuspendDepth","ensureUniqueIdentifier","code","recur","codes","representations","original","existing","candidate","freshIdentifier","seed","sanitized","suffix","addImport","importDeclaration","some","artifact","addSymbol","symbol","description","annotationSchemas","path","schema","checkBrands","own","collectBrands","toCode","flatMap","runtimeBrands","brands","brand","typeBrands","runtimeAnnotate","method","compileCheck","callback","output","importDeclarations","child","aborted","applyNode","base","includeTypeBrands","nodeBrands","hasOwn","on","typeParameter","literal","enums","name","part","isOptional","item","isArrayNonEmpty","post","properties","isSymbol","isMutable","runtimeName","typeName","propertyRuntimes","propertyTypes","indexRuntimes","indexTypes","every","literals","mode"],"sources":["../../../src/internal/schema/toCodeDocument.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toEquivalence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toEquivalence.d.ts","sourceRoot":"","sources":["../../../src/internal/schema/toEquivalence.ts"],"names":[],"mappings":""}
@@ -4,7 +4,6 @@ import { memoize } from "../../Function.js";
4
4
  import * as Predicate from "../../Predicate.js";
5
5
  import * as SchemaAST from "../../SchemaAST.js";
6
6
  import * as SchemaParser from "../../SchemaParser.js";
7
- import { errorWithPath } from "../errors.js";
8
7
  import * as InternalAnnotations from "./annotations.js";
9
8
  /** @internal */
10
9
  export const toEquivalence = /*#__PURE__*/memoize(ast => {
@@ -20,7 +19,7 @@ function recur(ast, path) {
20
19
  }
21
20
  switch (ast._tag) {
22
21
  case "Never":
23
- throw errorWithPath(`Unsupported AST ${ast._tag}`, path);
22
+ return Equivalence.strictEqual();
24
23
  case "Declaration":
25
24
  case "Null":
26
25
  case "Undefined":
@@ -129,17 +128,20 @@ function recur(ast, path) {
129
128
  });
130
129
  }
131
130
  case "Union":
132
- return Equivalence.make((a, b) => {
133
- const candidates = SchemaAST.getCandidates(a, ast.types);
134
- const types = candidates.map(SchemaParser._is);
135
- for (let i = 0; i < candidates.length; i++) {
136
- const is = types[i];
137
- if (is(a) && is(b)) {
138
- return recur(candidates[i], path)(a, b);
131
+ {
132
+ const types = SchemaAST.toType(ast).types;
133
+ const compiled = new Map(types.map((candidate, i) => [candidate, [SchemaParser._is(candidate), recur(ast.types[i], path)]]));
134
+ return Equivalence.make((a, b) => {
135
+ const candidates = SchemaAST.getCandidates(a, types);
136
+ for (let i = 0; i < candidates.length; i++) {
137
+ const [is, equivalence] = compiled.get(candidates[i]);
138
+ if (is(a) && is(b)) {
139
+ return equivalence(a, b);
140
+ }
139
141
  }
140
- }
141
- return false;
142
- });
142
+ return false;
143
+ });
144
+ }
143
145
  case "Suspend":
144
146
  {
145
147
  const get = SchemaAST.memoizeThunk(() => recur(ast.thunk(), path));
@@ -147,4 +149,4 @@ function recur(ast, path) {
147
149
  }
148
150
  }
149
151
  }
150
- //# sourceMappingURL=equivalence.js.map
152
+ //# sourceMappingURL=toEquivalence.js.map