effect 4.1.0 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/README.md +30 -0
  2. package/THIRD_PARTY_NOTICES.md +62 -0
  3. package/ai-docs/package.json +2 -2
  4. package/dist/BigDecimal.d.ts +139 -7
  5. package/dist/BigDecimal.d.ts.map +1 -1
  6. package/dist/BigDecimal.js +83 -14
  7. package/dist/BigDecimal.js.map +1 -1
  8. package/dist/ByteSize.d.ts.map +1 -1
  9. package/dist/ByteSize.js +27 -14
  10. package/dist/ByteSize.js.map +1 -1
  11. package/dist/Equal.d.ts +2 -2
  12. package/dist/Equal.d.ts.map +1 -1
  13. package/dist/Equal.js +3 -3
  14. package/dist/Equal.js.map +1 -1
  15. package/dist/Hash.d.ts +3 -2
  16. package/dist/Hash.d.ts.map +1 -1
  17. package/dist/Hash.js +5 -4
  18. package/dist/Hash.js.map +1 -1
  19. package/dist/Iterable.d.ts.map +1 -1
  20. package/dist/Iterable.js +38 -32
  21. package/dist/Iterable.js.map +1 -1
  22. package/dist/JsonSchema.d.ts.map +1 -1
  23. package/dist/JsonSchema.js +27 -6
  24. package/dist/JsonSchema.js.map +1 -1
  25. package/dist/MutableRef.d.ts.map +1 -1
  26. package/dist/MutableRef.js +0 -7
  27. package/dist/MutableRef.js.map +1 -1
  28. package/dist/Path.d.ts.map +1 -1
  29. package/dist/Path.js +5 -1
  30. package/dist/Path.js.map +1 -1
  31. package/dist/Pool.d.ts.map +1 -1
  32. package/dist/Pool.js +2 -1
  33. package/dist/Pool.js.map +1 -1
  34. package/dist/Ref.d.ts.map +1 -1
  35. package/dist/Ref.js +0 -8
  36. package/dist/Ref.js.map +1 -1
  37. package/dist/Schedule.d.ts.map +1 -1
  38. package/dist/Schedule.js +8 -3
  39. package/dist/Schedule.js.map +1 -1
  40. package/dist/Schema.d.ts +2 -1
  41. package/dist/Schema.d.ts.map +1 -1
  42. package/dist/Schema.js +2 -1
  43. package/dist/Schema.js.map +1 -1
  44. package/dist/SchemaRepresentation.d.ts +4 -2
  45. package/dist/SchemaRepresentation.d.ts.map +1 -1
  46. package/dist/SchemaRepresentation.js +4 -2
  47. package/dist/SchemaRepresentation.js.map +1 -1
  48. package/dist/SchemaTransformation.d.ts +2 -2
  49. package/dist/SchemaTransformation.js +2 -2
  50. package/dist/Stream.d.ts.map +1 -1
  51. package/dist/Stream.js +6 -5
  52. package/dist/Stream.js.map +1 -1
  53. package/dist/ai/McpClient.d.ts +171 -19
  54. package/dist/ai/McpClient.d.ts.map +1 -1
  55. package/dist/ai/McpClient.js +277 -66
  56. package/dist/ai/McpClient.js.map +1 -1
  57. package/dist/ai/McpSchema.d.ts +108 -0
  58. package/dist/ai/McpSchema.d.ts.map +1 -1
  59. package/dist/ai/McpSchema.js +99 -0
  60. package/dist/ai/McpSchema.js.map +1 -1
  61. package/dist/ai/McpServer.d.ts +120 -6
  62. package/dist/ai/McpServer.d.ts.map +1 -1
  63. package/dist/ai/McpServer.js +258 -49
  64. package/dist/ai/McpServer.js.map +1 -1
  65. package/dist/ai/Prompt.d.ts.map +1 -1
  66. package/dist/ai/Prompt.js +20 -11
  67. package/dist/ai/Prompt.js.map +1 -1
  68. package/dist/ai/Tool.d.ts.map +1 -1
  69. package/dist/ai/Tool.js +5 -7
  70. package/dist/ai/Tool.js.map +1 -1
  71. package/dist/ai/internal/mcpCore.js +72 -3
  72. package/dist/ai/internal/mcpCore.js.map +1 -1
  73. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +3 -1
  74. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  75. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +3 -1
  76. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  77. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +3 -1
  78. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  79. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +3 -1
  80. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  81. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +44 -8
  82. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  83. package/dist/ai/internal/mcpProtocol.js +12 -0
  84. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  85. package/dist/ai/internal/mcpRuntime.js +3 -3
  86. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  87. package/dist/ai/internal/mcpSkills.d.ts +2 -0
  88. package/dist/ai/internal/mcpSkills.d.ts.map +1 -0
  89. package/dist/ai/internal/mcpSkills.js +428 -0
  90. package/dist/ai/internal/mcpSkills.js.map +1 -0
  91. package/dist/ai/internal/structured-output.js +11 -2
  92. package/dist/ai/internal/structured-output.js.map +1 -1
  93. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  94. package/dist/cluster/ClusterWorkflowEngine.js +30 -11
  95. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  96. package/dist/cluster/Entity.d.ts +26 -0
  97. package/dist/cluster/Entity.d.ts.map +1 -1
  98. package/dist/cluster/Entity.js.map +1 -1
  99. package/dist/cluster/MessageStorage.d.ts +6 -6
  100. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  101. package/dist/cluster/MessageStorage.js +1 -3
  102. package/dist/cluster/MessageStorage.js.map +1 -1
  103. package/dist/cluster/Reply.d.ts +1 -1
  104. package/dist/cluster/Reply.d.ts.map +1 -1
  105. package/dist/cluster/Reply.js.map +1 -1
  106. package/dist/cluster/Runners.d.ts.map +1 -1
  107. package/dist/cluster/Runners.js +13 -2
  108. package/dist/cluster/Runners.js.map +1 -1
  109. package/dist/cluster/Sharding.d.ts +13 -0
  110. package/dist/cluster/Sharding.d.ts.map +1 -1
  111. package/dist/cluster/Sharding.js +4 -1
  112. package/dist/cluster/Sharding.js.map +1 -1
  113. package/dist/cluster/internal/clusterAbandon.d.ts.map +1 -1
  114. package/dist/cluster/internal/clusterAbandon.js +6 -4
  115. package/dist/cluster/internal/clusterAbandon.js.map +1 -1
  116. package/dist/cluster/internal/entityManager.js +63 -11
  117. package/dist/cluster/internal/entityManager.js.map +1 -1
  118. package/dist/cluster/internal/transactionNotifications.d.ts +5 -0
  119. package/dist/cluster/internal/transactionNotifications.d.ts.map +1 -0
  120. package/dist/cluster/internal/transactionNotifications.js +5 -0
  121. package/dist/cluster/internal/transactionNotifications.js.map +1 -0
  122. package/dist/crypto/Aead.d.ts +2 -1
  123. package/dist/crypto/Aead.d.ts.map +1 -1
  124. package/dist/crypto/Aead.js +2 -2
  125. package/dist/crypto/Aead.js.map +1 -1
  126. package/dist/crypto/Cipher.d.ts +2 -1
  127. package/dist/crypto/Cipher.d.ts.map +1 -1
  128. package/dist/crypto/Cipher.js +2 -2
  129. package/dist/crypto/Cipher.js.map +1 -1
  130. package/dist/crypto/KeyAgreement.d.ts +3 -2
  131. package/dist/crypto/KeyAgreement.d.ts.map +1 -1
  132. package/dist/crypto/KeyAgreement.js +2 -2
  133. package/dist/crypto/KeyAgreement.js.map +1 -1
  134. package/dist/crypto/KeyFormat.d.ts +33 -1
  135. package/dist/crypto/KeyFormat.d.ts.map +1 -1
  136. package/dist/crypto/KeyFormat.js.map +1 -1
  137. package/dist/crypto/KeyWrap.d.ts +4 -3
  138. package/dist/crypto/KeyWrap.d.ts.map +1 -1
  139. package/dist/crypto/KeyWrap.js +2 -2
  140. package/dist/crypto/KeyWrap.js.map +1 -1
  141. package/dist/crypto/Mac.d.ts +2 -1
  142. package/dist/crypto/Mac.d.ts.map +1 -1
  143. package/dist/crypto/Mac.js +2 -2
  144. package/dist/crypto/Mac.js.map +1 -1
  145. package/dist/crypto/Signature.d.ts +3 -2
  146. package/dist/crypto/Signature.d.ts.map +1 -1
  147. package/dist/crypto/Signature.js +2 -2
  148. package/dist/crypto/Signature.js.map +1 -1
  149. package/dist/crypto/WebCrypto.d.ts +19 -0
  150. package/dist/crypto/WebCrypto.d.ts.map +1 -1
  151. package/dist/crypto/WebCrypto.js.map +1 -1
  152. package/dist/crypto/internal/asymmetric.js.map +1 -1
  153. package/dist/crypto/internal/key.js +3 -2
  154. package/dist/crypto/internal/key.js.map +1 -1
  155. package/dist/encoding/Base64Url.d.ts.map +1 -1
  156. package/dist/encoding/Base64Url.js +26 -3
  157. package/dist/encoding/Base64Url.js.map +1 -1
  158. package/dist/encoding/Json5.d.ts +44 -0
  159. package/dist/encoding/Json5.d.ts.map +1 -0
  160. package/dist/encoding/Json5.js +56 -0
  161. package/dist/encoding/Json5.js.map +1 -0
  162. package/dist/encoding/Jsonc.d.ts +47 -0
  163. package/dist/encoding/Jsonc.d.ts.map +1 -0
  164. package/dist/encoding/Jsonc.js +120 -0
  165. package/dist/encoding/Jsonc.js.map +1 -0
  166. package/dist/encoding/Ndjson.d.ts +5 -4
  167. package/dist/encoding/Ndjson.d.ts.map +1 -1
  168. package/dist/encoding/Ndjson.js +6 -5
  169. package/dist/encoding/Ndjson.js.map +1 -1
  170. package/dist/encoding/SchemaBinary.d.ts +94 -0
  171. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  172. package/dist/encoding/SchemaBinary.js +219 -6
  173. package/dist/encoding/SchemaBinary.js.map +1 -1
  174. package/dist/encoding/Sse.d.ts +3 -1
  175. package/dist/encoding/Sse.d.ts.map +1 -1
  176. package/dist/encoding/Sse.js +5 -3
  177. package/dist/encoding/Sse.js.map +1 -1
  178. package/dist/encoding/index.d.ts +10 -0
  179. package/dist/encoding/index.d.ts.map +1 -1
  180. package/dist/encoding/index.js +10 -0
  181. package/dist/encoding/index.js.map +1 -1
  182. package/dist/eventlog/EventLog.d.ts +7 -0
  183. package/dist/eventlog/EventLog.d.ts.map +1 -1
  184. package/dist/eventlog/EventLog.js +7 -0
  185. package/dist/eventlog/EventLog.js.map +1 -1
  186. package/dist/eventlog/EventLogServer.d.ts +7 -1
  187. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  188. package/dist/eventlog/EventLogServer.js +55 -24
  189. package/dist/eventlog/EventLogServer.js.map +1 -1
  190. package/dist/eventlog/EventLogServerEncrypted.d.ts +10 -0
  191. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  192. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  193. package/dist/eventlog/EventLogServerUnencrypted.d.ts +17 -0
  194. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  195. package/dist/eventlog/EventLogServerUnencrypted.js +14 -2
  196. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  197. package/dist/eventlog/EventLogSessionAuth.d.ts +21 -0
  198. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  199. package/dist/eventlog/EventLogSessionAuth.js +22 -0
  200. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  201. package/dist/graphql/GraphQLClient.d.ts +3 -1
  202. package/dist/graphql/GraphQLClient.d.ts.map +1 -1
  203. package/dist/graphql/GraphQLClient.js.map +1 -1
  204. package/dist/graphql/GraphQLClientError.d.ts +14 -9
  205. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  206. package/dist/graphql/GraphQLClientError.js +14 -21
  207. package/dist/graphql/GraphQLClientError.js.map +1 -1
  208. package/dist/graphql/GraphQLProtocol.d.ts +12 -3
  209. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  210. package/dist/graphql/GraphQLProtocol.js +4 -1
  211. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  212. package/dist/http/HttpClient.d.ts +204 -16
  213. package/dist/http/HttpClient.d.ts.map +1 -1
  214. package/dist/http/HttpClient.js +93 -13
  215. package/dist/http/HttpClient.js.map +1 -1
  216. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  217. package/dist/http/HttpServerRequest.js +38 -22
  218. package/dist/http/HttpServerRequest.js.map +1 -1
  219. package/dist/http/internal/mimeTypes.d.ts +4 -1
  220. package/dist/http/internal/mimeTypes.d.ts.map +1 -1
  221. package/dist/http/internal/mimeTypes.js +4 -1
  222. package/dist/http/internal/mimeTypes.js.map +1 -1
  223. package/dist/http-api/HttpApiSchema.js +1 -1
  224. package/dist/http-api/HttpApiSchema.js.map +1 -1
  225. package/dist/internal/dateTime.js +66 -27
  226. package/dist/internal/dateTime.js.map +1 -1
  227. package/dist/internal/effect.js +10 -0
  228. package/dist/internal/effect.js.map +1 -1
  229. package/dist/internal/glob.js +234 -56
  230. package/dist/internal/glob.js.map +1 -1
  231. package/dist/internal/graphql.js +21 -7
  232. package/dist/internal/graphql.js.map +1 -1
  233. package/dist/internal/graphqlHeaders.d.ts +7 -0
  234. package/dist/internal/graphqlHeaders.d.ts.map +1 -1
  235. package/dist/internal/graphqlHeaders.js +11 -0
  236. package/dist/internal/graphqlHeaders.js.map +1 -1
  237. package/dist/internal/jsonParser.d.ts +5 -0
  238. package/dist/internal/jsonParser.d.ts.map +1 -0
  239. package/dist/internal/jsonParser.js +280 -0
  240. package/dist/internal/jsonParser.js.map +1 -0
  241. package/dist/internal/persistence.js +8 -1
  242. package/dist/internal/persistence.js.map +1 -1
  243. package/dist/internal/request.js +29 -42
  244. package/dist/internal/request.js.map +1 -1
  245. package/dist/internal/schema/fromJsonSchemaDocument.js +7 -8
  246. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  247. package/dist/internal/sql.js +16 -0
  248. package/dist/internal/sql.js.map +1 -1
  249. package/dist/internal/version.js +1 -1
  250. package/dist/jose/JoseError.d.ts +285 -0
  251. package/dist/jose/JoseError.d.ts.map +1 -0
  252. package/dist/jose/JoseError.js +269 -0
  253. package/dist/jose/JoseError.js.map +1 -0
  254. package/dist/jose/Jwe.d.ts +128 -0
  255. package/dist/jose/Jwe.d.ts.map +1 -0
  256. package/dist/jose/Jwe.js +134 -0
  257. package/dist/jose/Jwe.js.map +1 -0
  258. package/dist/jose/Jwk.d.ts +597 -0
  259. package/dist/jose/Jwk.d.ts.map +1 -0
  260. package/dist/jose/Jwk.js +503 -0
  261. package/dist/jose/Jwk.js.map +1 -0
  262. package/dist/jose/Jwks.d.ts +236 -0
  263. package/dist/jose/Jwks.d.ts.map +1 -0
  264. package/dist/jose/Jwks.js +306 -0
  265. package/dist/jose/Jwks.js.map +1 -0
  266. package/dist/jose/Jws.d.ts +177 -0
  267. package/dist/jose/Jws.d.ts.map +1 -0
  268. package/dist/jose/Jws.js +183 -0
  269. package/dist/jose/Jws.js.map +1 -0
  270. package/dist/jose/Jwt.d.ts +270 -0
  271. package/dist/jose/Jwt.d.ts.map +1 -0
  272. package/dist/jose/Jwt.js +293 -0
  273. package/dist/jose/Jwt.js.map +1 -0
  274. package/dist/jose/index.d.ts +51 -0
  275. package/dist/jose/index.d.ts.map +1 -0
  276. package/dist/jose/index.js +52 -0
  277. package/dist/jose/index.js.map +1 -0
  278. package/dist/jose/internal/compact.d.ts +2 -0
  279. package/dist/jose/internal/compact.d.ts.map +1 -0
  280. package/dist/jose/internal/compact.js +179 -0
  281. package/dist/jose/internal/compact.js.map +1 -0
  282. package/dist/net/Host.d.ts.map +1 -1
  283. package/dist/net/Host.js +5 -10
  284. package/dist/net/Host.js.map +1 -1
  285. package/dist/observability/OtlpExporter.d.ts +4 -0
  286. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  287. package/dist/observability/OtlpExporter.js +40 -12
  288. package/dist/observability/OtlpExporter.js.map +1 -1
  289. package/dist/observability/OtlpSerialization.d.ts +1 -1
  290. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  291. package/dist/observability/OtlpSerialization.js +10 -4
  292. package/dist/observability/OtlpSerialization.js.map +1 -1
  293. package/dist/observability/internal/otlpProtobuf.js +3 -3
  294. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  295. package/dist/observability/internal/protobuf.js +6 -0
  296. package/dist/observability/internal/protobuf.js.map +1 -1
  297. package/dist/persistence/CircuitBreaker.d.ts +98 -38
  298. package/dist/persistence/CircuitBreaker.d.ts.map +1 -1
  299. package/dist/persistence/CircuitBreaker.js +67 -29
  300. package/dist/persistence/CircuitBreaker.js.map +1 -1
  301. package/dist/persistence/RateLimiter.d.ts +15 -0
  302. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  303. package/dist/persistence/RateLimiter.js +76 -16
  304. package/dist/persistence/RateLimiter.js.map +1 -1
  305. package/dist/persistence/index.d.ts +1 -1
  306. package/dist/persistence/index.js +1 -1
  307. package/dist/reactivity/AtomRegistry.js +17 -7
  308. package/dist/reactivity/AtomRegistry.js.map +1 -1
  309. package/dist/rpc/Rpc.d.ts +1 -1
  310. package/dist/rpc/Rpc.d.ts.map +1 -1
  311. package/dist/rpc/Rpc.js.map +1 -1
  312. package/dist/rpc/RpcClient.d.ts +14 -2
  313. package/dist/rpc/RpcClient.d.ts.map +1 -1
  314. package/dist/rpc/RpcClient.js +38 -21
  315. package/dist/rpc/RpcClient.js.map +1 -1
  316. package/dist/rpc/RpcMessage.d.ts +3 -2
  317. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  318. package/dist/rpc/RpcMessage.js.map +1 -1
  319. package/dist/rpc/RpcServer.d.ts.map +1 -1
  320. package/dist/rpc/RpcServer.js +10 -1
  321. package/dist/rpc/RpcServer.js.map +1 -1
  322. package/dist/sql/Migrator.d.ts +9 -1
  323. package/dist/sql/Migrator.d.ts.map +1 -1
  324. package/dist/sql/Migrator.js +18 -6
  325. package/dist/sql/Migrator.js.map +1 -1
  326. package/dist/sql/SqlClient.d.ts +46 -3
  327. package/dist/sql/SqlClient.d.ts.map +1 -1
  328. package/dist/sql/SqlClient.js +40 -15
  329. package/dist/sql/SqlClient.js.map +1 -1
  330. package/dist/sql/Statement.d.ts +46 -3
  331. package/dist/sql/Statement.d.ts.map +1 -1
  332. package/dist/sql/Statement.js +32 -26
  333. package/dist/sql/Statement.js.map +1 -1
  334. package/dist/workflow/Workflow.d.ts +4 -0
  335. package/dist/workflow/Workflow.d.ts.map +1 -1
  336. package/dist/workflow/Workflow.js.map +1 -1
  337. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  338. package/dist/workflow/WorkflowEngine.js +5 -0
  339. package/dist/workflow/WorkflowEngine.js.map +1 -1
  340. package/package.json +7 -3
  341. package/src/BigDecimal.ts +170 -16
  342. package/src/ByteSize.ts +29 -14
  343. package/src/Equal.ts +3 -3
  344. package/src/Hash.ts +5 -4
  345. package/src/Iterable.ts +28 -19
  346. package/src/JsonSchema.ts +45 -7
  347. package/src/MutableRef.ts +1 -8
  348. package/src/Path.ts +6 -1
  349. package/src/Pool.ts +2 -1
  350. package/src/Ref.ts +0 -8
  351. package/src/Schedule.ts +8 -6
  352. package/src/Schema.ts +3 -2
  353. package/src/SchemaRepresentation.ts +4 -2
  354. package/src/SchemaTransformation.ts +2 -2
  355. package/src/Stream.ts +6 -5
  356. package/src/ai/McpClient.ts +488 -91
  357. package/src/ai/McpSchema.ts +119 -0
  358. package/src/ai/McpServer.ts +302 -56
  359. package/src/ai/Prompt.ts +16 -11
  360. package/src/ai/Tool.ts +5 -10
  361. package/src/ai/internal/mcpCore.ts +165 -12
  362. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +3 -1
  363. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +3 -1
  364. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -1
  365. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -1
  366. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +42 -9
  367. package/src/ai/internal/mcpProtocol.ts +15 -0
  368. package/src/ai/internal/mcpRuntime.ts +6 -3
  369. package/src/ai/internal/mcpSkills.ts +480 -0
  370. package/src/ai/internal/structured-output.ts +10 -4
  371. package/src/cluster/ClusterWorkflowEngine.ts +48 -33
  372. package/src/cluster/Entity.ts +52 -0
  373. package/src/cluster/MessageStorage.ts +3 -6
  374. package/src/cluster/Reply.ts +1 -1
  375. package/src/cluster/Runners.ts +16 -2
  376. package/src/cluster/Sharding.ts +17 -1
  377. package/src/cluster/internal/clusterAbandon.ts +7 -7
  378. package/src/cluster/internal/entityManager.ts +89 -15
  379. package/src/cluster/internal/transactionNotifications.ts +7 -0
  380. package/src/crypto/Aead.ts +3 -3
  381. package/src/crypto/Cipher.ts +3 -3
  382. package/src/crypto/KeyAgreement.ts +4 -4
  383. package/src/crypto/KeyFormat.ts +30 -1
  384. package/src/crypto/KeyWrap.ts +6 -6
  385. package/src/crypto/Mac.ts +3 -3
  386. package/src/crypto/Signature.ts +4 -4
  387. package/src/crypto/WebCrypto.ts +20 -0
  388. package/src/crypto/internal/asymmetric.ts +2 -1
  389. package/src/crypto/internal/key.ts +12 -5
  390. package/src/encoding/Base64Url.ts +27 -3
  391. package/src/encoding/Json5.ts +59 -0
  392. package/src/encoding/Jsonc.ts +126 -0
  393. package/src/encoding/Ndjson.ts +6 -5
  394. package/src/encoding/SchemaBinary.ts +228 -7
  395. package/src/encoding/Sse.ts +5 -3
  396. package/src/encoding/index.ts +12 -0
  397. package/src/eventlog/EventLog.ts +7 -0
  398. package/src/eventlog/EventLogServer.ts +67 -24
  399. package/src/eventlog/EventLogServerEncrypted.ts +5 -0
  400. package/src/eventlog/EventLogServerUnencrypted.ts +19 -2
  401. package/src/eventlog/EventLogSessionAuth.ts +26 -0
  402. package/src/graphql/GraphQLClient.ts +3 -1
  403. package/src/graphql/GraphQLClientError.ts +15 -22
  404. package/src/graphql/GraphQLProtocol.ts +12 -3
  405. package/src/http/HttpClient.ts +244 -33
  406. package/src/http/HttpServerRequest.ts +61 -23
  407. package/src/http/internal/mimeTypes.ts +4 -1
  408. package/src/http-api/HttpApiSchema.ts +1 -1
  409. package/src/internal/dateTime.ts +80 -27
  410. package/src/internal/effect.ts +6 -0
  411. package/src/internal/glob.ts +279 -63
  412. package/src/internal/graphql.ts +27 -9
  413. package/src/internal/graphqlHeaders.ts +13 -0
  414. package/src/internal/jsonParser.ts +307 -0
  415. package/src/internal/persistence.ts +9 -1
  416. package/src/internal/request.ts +51 -58
  417. package/src/internal/schema/fromJsonSchemaDocument.ts +11 -10
  418. package/src/internal/sql.ts +25 -0
  419. package/src/internal/version.ts +1 -1
  420. package/src/jose/JoseError.ts +329 -0
  421. package/src/jose/Jwe.ts +196 -0
  422. package/src/jose/Jwk.ts +777 -0
  423. package/src/jose/Jwks.ts +418 -0
  424. package/src/jose/Jws.ts +312 -0
  425. package/src/jose/Jwt.ts +493 -0
  426. package/src/jose/index.ts +58 -0
  427. package/src/jose/internal/compact.ts +195 -0
  428. package/src/net/Host.ts +5 -10
  429. package/src/observability/OtlpExporter.ts +42 -18
  430. package/src/observability/OtlpSerialization.ts +13 -5
  431. package/src/observability/internal/otlpProtobuf.ts +6 -6
  432. package/src/observability/internal/protobuf.ts +10 -0
  433. package/src/persistence/CircuitBreaker.ts +113 -48
  434. package/src/persistence/RateLimiter.ts +97 -19
  435. package/src/persistence/index.ts +1 -1
  436. package/src/reactivity/AtomRegistry.ts +19 -8
  437. package/src/rpc/Rpc.ts +3 -1
  438. package/src/rpc/RpcClient.ts +44 -24
  439. package/src/rpc/RpcMessage.ts +3 -2
  440. package/src/rpc/RpcServer.ts +12 -1
  441. package/src/sql/Migrator.ts +35 -18
  442. package/src/sql/SqlClient.ts +91 -22
  443. package/src/sql/Statement.ts +60 -35
  444. package/src/workflow/Workflow.ts +4 -0
  445. package/src/workflow/WorkflowEngine.ts +5 -0
package/src/JsonSchema.ts CHANGED
@@ -506,9 +506,23 @@ export function fromSchemaOpenApi3_0(schema: JsonSchema): Document<"draft-2020-1
506
506
  * @since 4.0.0
507
507
  */
508
508
  export function toDocumentDraft07(document: Document<"draft-2020-12">): Document<"draft-07"> {
509
+ return toDocumentDraft07WithDefinitionsPath(document)
510
+ }
511
+
512
+ /**
513
+ * Converts to Draft-07 with definitions located at `definitionsPath`, such as
514
+ * `["components", "schemas"]` after {@link toMultiDocumentComponents}, so
515
+ * references into them stay in place. Defaults to `$defs` → `definitions`.
516
+ *
517
+ * @internal
518
+ */
519
+ export function toDocumentDraft07WithDefinitionsPath(
520
+ document: Document<"draft-2020-12">,
521
+ definitionsPath?: ReadonlyArray<string>
522
+ ): Document<"draft-07"> {
509
523
  return {
510
524
  dialect: "draft-07",
511
- ...convertDocument(document, draft07Adapter)
525
+ ...convertDocument(document, draft07Adapter, undefined, definitionsPath)
512
526
  }
513
527
  }
514
528
 
@@ -620,6 +634,25 @@ export function toDocumentDraft04(document: Document<"draft-2020-12">): Document
620
634
  * @since 4.0.0
621
635
  */
622
636
  export function toMultiDocumentOpenApi3_1(multiDocument: MultiDocument<"draft-2020-12">): MultiDocument<"openapi-3.1"> {
637
+ return {
638
+ dialect: "openapi-3.1",
639
+ ...toMultiDocumentComponents(multiDocument, {
640
+ target: "OpenAPI 3.1",
641
+ checkSchema(schema) {
642
+ rejectKeywordCollisions(schema, OPEN_API_31_TARGET_COLLISIONS, "OpenAPI 3.1", "Draft 2020-12")
643
+ }
644
+ })
645
+ }
646
+ }
647
+
648
+ /** @internal */
649
+ export function toMultiDocumentComponents(
650
+ multiDocument: Pick<MultiDocument<"draft-2020-12">, "schemas" | "definitions">,
651
+ options: {
652
+ readonly target: string
653
+ readonly checkSchema?: ((schema: JsonSchema) => void) | undefined
654
+ }
655
+ ): Pick<MultiDocument<"draft-2020-12">, "schemas" | "definitions"> {
623
656
  const definitionKeys = Object.keys(multiDocument.definitions)
624
657
  const keyMap = new Map<string, string>()
625
658
  const usedKeys = new Set(definitionKeys.filter((key) => VALID_OPEN_API_COMPONENTS_SCHEMAS_KEY_REGEXP.test(key)))
@@ -649,7 +682,7 @@ export function toMultiDocumentOpenApi3_1(multiDocument: MultiDocument<"draft-20
649
682
  const isRootResource = createsResource(schema.$id)
650
683
  const localDefinitions = Predicate.isObject(schema.$defs) ? schema.$defs : undefined
651
684
  return transformSchema(schema, (schema, inEmbeddedResource) => {
652
- rejectKeywordCollisions(schema, OPEN_API_31_TARGET_COLLISIONS, "OpenAPI 3.1", "Draft 2020-12")
685
+ options.checkSchema?.(schema)
653
686
  rewriteSchemaRef(schema, (reference, keyword) => {
654
687
  const path = reference.startsWith("#") ? parseUriFragment(reference) : undefined
655
688
  if (path === undefined || path[0] !== "$defs" || path.length < 2) return reference
@@ -661,7 +694,7 @@ export function toMultiDocumentOpenApi3_1(multiDocument: MultiDocument<"draft-20
661
694
  Object.hasOwn(multiDocument.definitions, key) &&
662
695
  (localDefinitions === undefined || !Object.hasOwn(localDefinitions, key))
663
696
  ) {
664
- unsupported(keyword, "OpenAPI 3.1", "a schema resource cannot reference the shared definitions pool")
697
+ unsupported(keyword, options.target, "a schema resource cannot reference the shared definitions pool")
665
698
  }
666
699
  return reference
667
700
  }
@@ -673,7 +706,7 @@ export function toMultiDocumentOpenApi3_1(multiDocument: MultiDocument<"draft-20
673
706
  }
674
707
 
675
708
  const schemas = multiDocument.schemas.map((schema) => rewrite(schema, true)) as unknown as MultiDocument<
676
- "openapi-3.1"
709
+ "draft-2020-12"
677
710
  >["schemas"]
678
711
  const definitions: Definitions = {}
679
712
  for (const key of definitionKeys) {
@@ -685,7 +718,6 @@ export function toMultiDocumentOpenApi3_1(multiDocument: MultiDocument<"draft-20
685
718
  }
686
719
 
687
720
  return {
688
- dialect: "openapi-3.1",
689
721
  schemas,
690
722
  definitions
691
723
  }
@@ -957,13 +989,19 @@ function convertSchema(root: JsonSchema, adapter: Adapter, options?: ConverterOp
957
989
  function convertDocument(
958
990
  document: Document<"draft-2020-12">,
959
991
  adapter: Adapter,
960
- options?: ConverterOptions
992
+ options?: ConverterOptions,
993
+ definitionsPath?: Path
961
994
  ): { readonly schema: JsonSchema; readonly definitions: Definitions } {
962
995
  return runConverter(adapter, { ...options, trackIds: true }, (convert) => ({
963
996
  schema: convert(document.schema) as JsonSchema,
964
997
  definitions: mapObject(
965
998
  document.definitions,
966
- (definition, key) => convert(definition, ["$defs", key], ["definitions", key]) as JsonSchema
999
+ (definition, key) =>
1000
+ convert(
1001
+ definition,
1002
+ [...(definitionsPath ?? ["$defs"]), key],
1003
+ [...(definitionsPath ?? ["definitions"]), key]
1004
+ ) as JsonSchema
967
1005
  ) as Definitions
968
1006
  }))
969
1007
  }
package/src/MutableRef.ts CHANGED
@@ -12,7 +12,6 @@
12
12
  */
13
13
  import * as Equal from "./Equal.ts"
14
14
  import * as Dual from "./Function.ts"
15
- import * as Hash from "./Hash.ts"
16
15
  import { type Inspectable, toJson } from "./Inspectable.ts"
17
16
  import { PipeInspectableProto } from "./internal/core.ts"
18
17
  import type { Pipeable } from "./Pipeable.ts"
@@ -75,15 +74,9 @@ export interface MutableRef<out T> extends Pipeable, Inspectable {
75
74
  current: T
76
75
  }
77
76
 
78
- const MutableRefProto: Omit<MutableRef<unknown>, "current"> & Equal.Equal = {
77
+ const MutableRefProto: Omit<MutableRef<unknown>, "current"> = {
79
78
  [TypeId]: TypeId,
80
79
  ...PipeInspectableProto,
81
- [Equal.symbol](that: unknown): boolean {
82
- return this === that
83
- },
84
- [Hash.symbol](): number {
85
- return Hash.random(this)
86
- },
87
80
  toJSON<A>(this: MutableRef<A>) {
88
81
  return {
89
82
  _id: "MutableRef",
package/src/Path.ts CHANGED
@@ -385,9 +385,14 @@ function normalizeStringPosix(path: string, allowAboveRoot: boolean) {
385
385
  return res
386
386
  }
387
387
 
388
+ function formatExt(ext: string | undefined) {
389
+ if (!ext) return ""
390
+ return ext.startsWith(".") ? ext : `.${ext}`
391
+ }
392
+
388
393
  function _format(sep: string, pathObject: Partial<Path.Parsed>) {
389
394
  const dir = pathObject.dir || pathObject.root
390
- const base = pathObject.base || (pathObject.name || "") + (pathObject.ext || "")
395
+ const base = pathObject.base || (pathObject.name || "") + formatExt(pathObject.ext)
391
396
  if (!dir) {
392
397
  return base
393
398
  }
package/src/Pool.ts CHANGED
@@ -378,7 +378,8 @@ export const makeWithStrategy = <A, E, R>(options: {
378
378
  }): Effect.Effect<Pool<A, E>, never, Scope.Scope | R> =>
379
379
  Effect.uninterruptibleMask(Effect.fnUntraced(function*(restore) {
380
380
  const services = yield* Effect.context<R | Scope.Scope>()
381
- const scope = Context.get(services, Scope.Scope)
381
+ // A child scope keeps the pool usable in later finalizers of the outer scope
382
+ const scope = Scope.forkUnsafe(Context.get(services, Scope.Scope))
382
383
  const acquire = Effect.updateContext(
383
384
  options.acquire,
384
385
  (input) => Context.merge(services, input)
package/src/Ref.ts CHANGED
@@ -12,9 +12,7 @@
12
12
  * @since 2.0.0
13
13
  */
14
14
  import * as Effect from "./Effect.ts"
15
- import * as Equal from "./Equal.ts"
16
15
  import { dual, identity } from "./Function.ts"
17
- import * as Hash from "./Hash.ts"
18
16
  import { PipeInspectableProto } from "./internal/core.ts"
19
17
  import * as MutableRef from "./MutableRef.ts"
20
18
  import type * as Option from "./Option.ts"
@@ -112,12 +110,6 @@ const RefProto = {
112
110
  _A: identity
113
111
  },
114
112
  ...PipeInspectableProto,
115
- [Equal.symbol](that: unknown): boolean {
116
- return this === that
117
- },
118
- [Hash.symbol](): number {
119
- return Hash.random(this)
120
- },
121
113
  toJSON(this: Ref<any>) {
122
114
  return {
123
115
  _id: "Ref",
package/src/Schedule.ts CHANGED
@@ -889,7 +889,8 @@ export const cron: {
889
889
  return Cause.done(Duration.zero)
890
890
  }
891
891
  return effect.sync(() => {
892
- const next = Cron.next(cron, now).getTime()
892
+ let next = Cron.next(cron, now).getTime()
893
+ if (Duration.isZero(Duration.millis(next - now))) next = Cron.next(cron, next).getTime()
893
894
  const duration = Duration.millis(next - now)
894
895
  return [duration, duration]
895
896
  })
@@ -1157,7 +1158,7 @@ export const fixed = (interval: Duration.Input): Schedule<number> => {
1157
1158
  }
1158
1159
  const runningBehind = meta.now > (lastRun + window)
1159
1160
  const boundary = window - ((meta.now - start) % window)
1160
- const delay = runningBehind ? 0 : boundary === 0 ? window : boundary
1161
+ const delay = runningBehind ? 0 : Duration.isZero(Duration.millis(boundary)) ? window : boundary
1161
1162
  lastRun = runningBehind ? meta.now : meta.now + delay
1162
1163
  return [meta.attempt - 1, Duration.millis(delay)] as const
1163
1164
  })
@@ -1901,10 +1902,11 @@ export {
1901
1902
  export const windowed = (interval: Duration.Input): Schedule<number> => {
1902
1903
  const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
1903
1904
  return fromStepWithMetadata(effect.succeed((meta) =>
1904
- effect.sync(() => [
1905
- meta.attempt - 1,
1906
- window === 0 ? Duration.zero : Duration.millis(window - (meta.elapsed % window))
1907
- ])
1905
+ effect.sync(() => {
1906
+ if (window === 0) return [meta.attempt - 1, Duration.zero] as const
1907
+ const delay = Duration.millis(window - (meta.elapsed % window))
1908
+ return [meta.attempt - 1, Duration.isZero(delay) ? Duration.millis(window) : delay] as const
1909
+ })
1908
1910
  ))
1909
1911
  }
1910
1912
 
package/src/Schema.ts CHANGED
@@ -10949,7 +10949,8 @@ export interface BigDecimalFromString extends decodeTo<BigDecimal, String> {
10949
10949
  *
10950
10950
  * **Gotchas**
10951
10951
  *
10952
- * An empty string decodes as zero.
10952
+ * An empty string decodes as zero. Strings with a scale outside ±10,000, such
10953
+ * as `"1e300000000"`, are rejected.
10953
10954
  *
10954
10955
  * @see {@link BigDecimal} for validating values that are already BigDecimal values
10955
10956
  * @see {@link BigIntFromString} for parsing base-10 integer strings into bigint values
@@ -14531,7 +14532,7 @@ const CryptoJsonWebKey = Struct({
14531
14532
  d: CryptoJsonWebKeyMember,
14532
14533
  t: CryptoJsonWebKeyMember
14533
14534
  })))
14534
- }) as unknown as Codec<JsonWebKey>
14535
+ }) as unknown as Codec<KeyFormat_.JsonWebKey>
14535
14536
 
14536
14537
  const cryptoFormatData = <R extends KeyFormat_.Role, Data>(format: KeyFormat_.Format<R, "decode", Data>): Codec<Data> =>
14537
14538
  (format._tag === "jwk" ? CryptoJsonWebKey : format.pem ? String : Uint8Array) as Codec<any>
@@ -3202,7 +3202,8 @@ export function fromRepresentations(
3202
3202
  * - Objects and arrays used as `const` values or `enum` members are rejected. Only strings, numbers, booleans, and null
3203
3203
  * are supported.
3204
3204
  * - Intersections of overlapping unions are limited to disjoint root-type partitions and finite primitive `anyOf`
3205
- * literal sets. Other union intersections, including cases that would duplicate a nested choice, are rejected.
3205
+ * literal sets, which may also be duplicated across branches. Other union intersections, including cases that would
3206
+ * duplicate any other nested choice, are rejected.
3206
3207
  * - Unknown extension keywords are ignored and their semantics are not enforced.
3207
3208
  * - Only local references to top-level definitions in the form `#/$defs/<escaped-token>` are supported, optionally
3208
3209
  * followed by a pointer below the definition. A pointer target becomes a definition keyed by its escaped tokens, such
@@ -3251,7 +3252,8 @@ export function fromJsonSchemaDocument(
3251
3252
  * - Objects and arrays used as `const` values or `enum` members are rejected. Only strings, numbers, booleans, and null
3252
3253
  * are supported.
3253
3254
  * - Intersections of overlapping unions are limited to disjoint root-type partitions and finite primitive `anyOf`
3254
- * literal sets. Other union intersections, including cases that would duplicate a nested choice, are rejected.
3255
+ * literal sets, which may also be duplicated across branches. Other union intersections, including cases that would
3256
+ * duplicate any other nested choice, are rejected.
3255
3257
  * - Only local references to top-level definitions in the form `#/$defs/<escaped-token>` are supported, optionally
3256
3258
  * followed by a pointer below the definition. A pointer target becomes a definition keyed by its escaped tokens, such
3257
3259
  * as `Name/properties/field`, and is rejected if a top-level definition already uses that key. Root references and
@@ -1707,8 +1707,8 @@ export const urlFromString: Transformation<URL, string> = transformEffect<URL, s
1707
1707
  * **Details**
1708
1708
  *
1709
1709
  * Decoding calls `BigDecimal.fromString(s)` and fails with `InvalidValue` if
1710
- * the string is not a valid `BigDecimal` representation. Encoding returns
1711
- * `BigDecimal.format(bd)`.
1710
+ * the string is not a valid `BigDecimal` representation or its scale is
1711
+ * outside ±10,000. Encoding returns `BigDecimal.format(bd)`.
1712
1712
  *
1713
1713
  * @stability stable
1714
1714
  * @category transforming
package/src/Stream.ts CHANGED
@@ -15245,12 +15245,13 @@ export const groupAdjacentBy: {
15245
15245
  return loop
15246
15246
  })
15247
15247
  )
15248
- let done = false
15249
- return Pull.catchDone(Effect.suspend(() => done ? Cause.done() : loop), () => {
15250
- done = true
15251
- const out = group
15248
+ let cause: Cause.Cause<E | Cause.Done> | undefined
15249
+ return Effect.catchCause(Effect.suspend(() => cause ? Effect.failCause(cause) : loop), (cause_) => {
15250
+ cause = cause_
15251
+ if (group === undefined) return Effect.failCause(cause_)
15252
+ const out = Arr.of([currentKey, group] as const)
15252
15253
  group = undefined
15253
- return out && Arr.isArrayNonEmpty(out) ? Effect.succeed(Arr.of([currentKey, out])) : Cause.done()
15254
+ return Effect.succeed(out)
15254
15255
  })
15255
15256
  })))
15256
15257