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
@@ -651,6 +651,132 @@ export function fieldId(id) {
651
651
  return self => self.rebuild(annotateLastLink(SchemaAST.annotateKey(self.ast, annotations)));
652
652
  }
653
653
  const FIELD_ID_ANNOTATION_KEY = "~effect/encoding/SchemaBinary/fieldId";
654
+ // Marks the check that opts a number or bigint into a fixed-width encoding.
655
+ // It lives on a check, not the AST, so later annotations and checks keep it.
656
+ const FIXED_WIDTH_ANNOTATION_KEY = "~effect/encoding/SchemaBinary/fixedWidth";
657
+ const BIGINT_I64_MIN = /*#__PURE__*/BigInt("-9223372036854775808");
658
+ const BIGINT_I64_MAX = /*#__PURE__*/BigInt("9223372036854775807");
659
+ const BIGINT_U64_MAX = /*#__PURE__*/BigInt("18446744073709551615");
660
+ /**
661
+ * A 32-bit signed integer written as four little-endian bytes.
662
+ *
663
+ * **When to use**
664
+ *
665
+ * Use when values regularly need more than four bytes as a varint, such as
666
+ * hashes or full-range ids. Small values are cheaper as `Schema.Int`.
667
+ *
668
+ * **Details**
669
+ *
670
+ * Rejects non-integers and values outside -2147483648 through 2147483647
671
+ * instead of truncating them. `-0` is written as `0`.
672
+ *
673
+ * **Gotchas**
674
+ *
675
+ * Switching a field between this, {@link uint32}, `Schema.Number` or
676
+ * `Schema.Int` changes its encoding, so it is not a compatible evolution. In
677
+ * default mode the other reader can decode a different value without an error,
678
+ * for example after a signedness swap or inside an array of structs.
679
+ * Fingerprint mode rejects the layout mismatch.
680
+ *
681
+ * **Example** (Declaring fixed-width integer fields)
682
+ *
683
+ * ```ts
684
+ * import { Schema } from "effect"
685
+ * import { SchemaBinary } from "effect/encoding"
686
+ *
687
+ * const Packet = Schema.Struct({
688
+ * version: SchemaBinary.uint32,
689
+ * offset: SchemaBinary.int32,
690
+ * sequence: SchemaBinary.uint64,
691
+ * timestamp: SchemaBinary.int64
692
+ * })
693
+ * ```
694
+ *
695
+ * @stability unstable
696
+ * @category schemas
697
+ * @since 4.0.0
698
+ */
699
+ export const int32 = /*#__PURE__*/Schema.Number.check(/*#__PURE__*/Schema.isInt32({
700
+ [FIXED_WIDTH_ANNOTATION_KEY]: "i32"
701
+ }));
702
+ /**
703
+ * A 32-bit unsigned integer written as four little-endian bytes.
704
+ *
705
+ * **Details**
706
+ *
707
+ * Rejects non-integers and values outside 0 through 4294967295 instead of
708
+ * wrapping them. See {@link int32} for when a fixed width pays off.
709
+ *
710
+ * @stability unstable
711
+ * @category schemas
712
+ * @since 4.0.0
713
+ */
714
+ export const uint32 = /*#__PURE__*/Schema.Number.check(/*#__PURE__*/Schema.isUint32({
715
+ [FIXED_WIDTH_ANNOTATION_KEY]: "u32"
716
+ }));
717
+ /**
718
+ * A 64-bit signed integer, as a `bigint`, written as eight little-endian bytes.
719
+ *
720
+ * **Details**
721
+ *
722
+ * Rejects values outside -2^63 through 2^63 - 1 instead of wrapping them. As a
723
+ * struct field it costs one length byte more than the payload, because the
724
+ * eight-byte field kind belongs to floating-point numbers.
725
+ *
726
+ * **Gotchas**
727
+ *
728
+ * Switching a field between this, {@link uint64} or `Schema.BigInt` is not a
729
+ * compatible evolution. All three are length-prefixed struct fields, and eight
730
+ * bytes can be valid for each, so a default-mode reader may decode the other
731
+ * form as a different value without an error. Fingerprint mode rejects the
732
+ * layout mismatch.
733
+ *
734
+ * @stability unstable
735
+ * @category schemas
736
+ * @since 4.0.0
737
+ */
738
+ export const int64 = /*#__PURE__*/Schema.BigInt.check(/*#__PURE__*/Schema.isBetweenBigInt({
739
+ minimum: BIGINT_I64_MIN,
740
+ maximum: BIGINT_I64_MAX
741
+ }, {
742
+ expected: "a 64-bit integer",
743
+ [FIXED_WIDTH_ANNOTATION_KEY]: "i64"
744
+ }));
745
+ /**
746
+ * A 64-bit unsigned integer, as a `bigint`, written as eight little-endian
747
+ * bytes.
748
+ *
749
+ * **Details**
750
+ *
751
+ * Rejects values outside 0 through 2^64 - 1 instead of wrapping them. See
752
+ * {@link int64} for the struct field cost.
753
+ *
754
+ * **Gotchas**
755
+ *
756
+ * Switching a field between this, {@link int64} or `Schema.BigInt` can decode
757
+ * as a different value without an error in default mode; see {@link int64}.
758
+ *
759
+ * @stability unstable
760
+ * @category schemas
761
+ * @since 4.0.0
762
+ */
763
+ export const uint64 = /*#__PURE__*/Schema.BigInt.check(/*#__PURE__*/Schema.isBetweenBigInt({
764
+ minimum: /*#__PURE__*/BigInt(0),
765
+ maximum: BIGINT_U64_MAX
766
+ }, {
767
+ expected: "a 64-bit unsigned integer",
768
+ [FIXED_WIDTH_ANNOTATION_KEY]: "u64"
769
+ }));
770
+ // The fixed width the schema opted into, from any of its checks.
771
+ function fixedWidthKind(ast) {
772
+ const checks = ast.checks;
773
+ if (checks === undefined) return undefined;
774
+ for (const check of checks) {
775
+ const kind = check.annotations?.[FIXED_WIDTH_ANNOTATION_KEY];
776
+ if (kind !== undefined) return kind;
777
+ }
778
+ return undefined;
779
+ }
654
780
  // Bit 0 selects fingerprint mode; all other flag bits are reserved.
655
781
  const ENVELOPE = 0x20; // version nibble 2, flags 0
656
782
  const ENVELOPE_FINGERPRINT = 0x21; // version nibble 2, flag bit 0
@@ -1051,6 +1177,11 @@ class Writer {
1051
1177
  this.view.setBigInt64(this.start + this.len, n, true);
1052
1178
  this.len += 8;
1053
1179
  }
1180
+ u64(n) {
1181
+ this.ensure(8);
1182
+ this.view.setBigUint64(this.start + this.len, n, true);
1183
+ this.len += 8;
1184
+ }
1054
1185
  u32le(n) {
1055
1186
  this.ensure(4);
1056
1187
  this.view.setUint32(this.start + this.len, n >>> 0, true);
@@ -1461,6 +1592,12 @@ class Reader {
1461
1592
  this.pos += 8;
1462
1593
  return value;
1463
1594
  }
1595
+ u64() {
1596
+ if (this.pos + 8 > this.end) invalid("complete value", undefined, this.options);
1597
+ const value = (this.view ?? this.dataView()).getBigUint64(this.pos, true);
1598
+ this.pos += 8;
1599
+ return value;
1600
+ }
1464
1601
  u32le() {
1465
1602
  if (this.pos + 4 > this.end) invalid("complete value", undefined, this.options);
1466
1603
  const value = (this.view ?? this.dataView()).getUint32(this.pos, true);
@@ -1505,7 +1642,12 @@ function packedSize(layout) {
1505
1642
  return packedSize(layout.leaf);
1506
1643
  case "bool":
1507
1644
  return 1;
1645
+ case "i32":
1646
+ case "u32":
1647
+ return 4;
1508
1648
  case "int64":
1649
+ case "i64":
1650
+ case "u64":
1509
1651
  return 8;
1510
1652
  default:
1511
1653
  return undefined;
@@ -1816,9 +1958,16 @@ function compileLayout(root) {
1816
1958
  case "Void":
1817
1959
  return leaf("undefined");
1818
1960
  case "Number":
1819
- return leaf(provesInteger(ast) ? "int" : "number");
1961
+ {
1962
+ const fixed = fixedWidthKind(ast);
1963
+ if (fixed === "i32" || fixed === "u32") return leaf(fixed);
1964
+ return leaf(provesInteger(ast) ? "int" : "number");
1965
+ }
1820
1966
  case "BigInt":
1821
- return leaf("bigint");
1967
+ {
1968
+ const fixed = fixedWidthKind(ast);
1969
+ return leaf(fixed === "i64" || fixed === "u64" ? fixed : "bigint");
1970
+ }
1822
1971
  case "Literal":
1823
1972
  return literalLayout(leaf(literalKind(ast.literal)), [ast.literal]);
1824
1973
  case "Unknown":
@@ -2243,7 +2392,7 @@ function isExact(root) {
2243
2392
  // the cycle disqualifies it, the whole cycle is exact.
2244
2393
  const walked = new Map();
2245
2394
  const exact = ast => {
2246
- if (ast.encoding !== undefined || ast.checks !== undefined || ast.encodingChecks !== undefined) {
2395
+ if (ast.encoding !== undefined || ast.checks !== undefined && !isFixedWidthOnly(ast) || ast.encodingChecks !== undefined) {
2247
2396
  return false;
2248
2397
  }
2249
2398
  switch (ast._tag) {
@@ -2300,6 +2449,11 @@ function isExact(root) {
2300
2449
  };
2301
2450
  return exact(root);
2302
2451
  }
2452
+ // The binary layer enforces a fixed-width check on its own, so it is exact
2453
+ // when no other check rides along.
2454
+ function isFixedWidthOnly(ast) {
2455
+ return (ast._tag === "Number" || ast._tag === "BigInt") && ast.checks?.length === 1 && fixedWidthKind(ast) !== undefined;
2456
+ }
2303
2457
  // A clean Exit whose success schema is exact: the binary layer fully produces
2304
2458
  // and validates success exits, so only failure exits need the schema pass for
2305
2459
  // their cause's error and defect encodings.
@@ -2333,7 +2487,11 @@ const F = {
2333
2487
  exit: 22,
2334
2488
  cause: 23,
2335
2489
  causeReason: 24,
2336
- literal: 25
2490
+ literal: 25,
2491
+ i32: 26,
2492
+ u32: 27,
2493
+ i64: 28,
2494
+ u64: 29
2337
2495
  };
2338
2496
  // Hash the compiled layout graph, including cycle back-edge distances.
2339
2497
  function layoutFingerprint(root) {
@@ -2374,6 +2532,10 @@ function layoutFingerprint(root) {
2374
2532
  case "symbol":
2375
2533
  case "bytes":
2376
2534
  case "bigint":
2535
+ case "i32":
2536
+ case "u32":
2537
+ case "i64":
2538
+ case "u64":
2377
2539
  case "json":
2378
2540
  case "duration":
2379
2541
  case "bigDecimal":
@@ -2518,12 +2680,16 @@ function matchesLayout(layout, value) {
2518
2680
  return value === undefined;
2519
2681
  case "number":
2520
2682
  case "int":
2683
+ case "i32":
2684
+ case "u32":
2521
2685
  return typeof value === "number";
2522
2686
  case "string":
2523
2687
  return typeof value === "string";
2524
2688
  case "symbol":
2525
2689
  return typeof value === "symbol";
2526
2690
  case "bigint":
2691
+ case "i64":
2692
+ case "u64":
2527
2693
  return typeof value === "bigint";
2528
2694
  case "bytes":
2529
2695
  return value instanceof Uint8Array;
@@ -2775,6 +2941,10 @@ function valueWireCode(layout, value, options) {
2775
2941
  case "int":
2776
2942
  if (!Number.isSafeInteger(value)) encodeFail("an integer", value, options);
2777
2943
  return FIELD_WIRE_VARINT;
2944
+ // The payload write validates the value.
2945
+ case "i32":
2946
+ case "u32":
2947
+ return FIELD_WIRE_FIXED32;
2778
2948
  default:
2779
2949
  return FIELD_WIRE_SIZED;
2780
2950
  }
@@ -2782,8 +2952,8 @@ function valueWireCode(layout, value, options) {
2782
2952
  function encodeWirePayload(ctx, layout, value, wire, w) {
2783
2953
  const kind = wire % FIELD_WIRE_FACTOR;
2784
2954
  switch (kind) {
2785
- // EMPTY and FIXED32 are decoder-side skip support only; `valueWireCode`
2786
- // never produces them.
2955
+ // EMPTY is decoder-side skip support only; `valueWireCode` never produces
2956
+ // it.
2787
2957
  case FIELD_WIRE_FALSE:
2788
2958
  case FIELD_WIRE_TRUE:
2789
2959
  return;
@@ -2793,6 +2963,9 @@ function encodeWirePayload(ctx, layout, value, wire, w) {
2793
2963
  case FIELD_WIRE_FIXED64:
2794
2964
  w.f64(value);
2795
2965
  return;
2966
+ case FIELD_WIRE_FIXED32:
2967
+ encodeValue(ctx, layout, value, w);
2968
+ return;
2796
2969
  case FIELD_WIRE_DECIMAL:
2797
2970
  {
2798
2971
  const scale = Math.floor(wire / FIELD_WIRE_FACTOR);
@@ -3437,6 +3610,29 @@ function encodeValue(ctx, layout, value, w) {
3437
3610
  if (typeof value !== "bigint") encodeFail("a bigint", value, ctx.options);
3438
3611
  w.zigzag(value);
3439
3612
  return;
3613
+ // `disableChecks` can bypass the range check used to select these layouts.
3614
+ case "i32":
3615
+ if (typeof value !== "number" || (value | 0) !== value) encodeFail("a 32-bit integer", value, ctx.options);
3616
+ w.i32le(value);
3617
+ return;
3618
+ case "u32":
3619
+ if (typeof value !== "number" || value >>> 0 !== value) {
3620
+ encodeFail("a 32-bit unsigned integer", value, ctx.options);
3621
+ }
3622
+ w.u32le(value);
3623
+ return;
3624
+ case "i64":
3625
+ if (typeof value !== "bigint" || value < BIGINT_I64_MIN || value > BIGINT_I64_MAX) {
3626
+ encodeFail("a 64-bit integer", value, ctx.options);
3627
+ }
3628
+ w.i64(value);
3629
+ return;
3630
+ case "u64":
3631
+ if (typeof value !== "bigint" || value < BIGINT_ZERO || value > BIGINT_U64_MAX) {
3632
+ encodeFail("a 64-bit unsigned integer", value, ctx.options);
3633
+ }
3634
+ w.u64(value);
3635
+ return;
3440
3636
  case "int64":
3441
3637
  {
3442
3638
  if (!matchesLayout(layout, value)) {
@@ -3756,6 +3952,9 @@ function fieldWireMask(layout) {
3756
3952
  return 1 << FIELD_WIRE_VARINT | 1 << FIELD_WIRE_FIXED64 | 1 << FIELD_WIRE_DECIMAL;
3757
3953
  case "int":
3758
3954
  return 1 << FIELD_WIRE_VARINT;
3955
+ case "i32":
3956
+ case "u32":
3957
+ return 1 << FIELD_WIRE_FIXED32;
3759
3958
  default:
3760
3959
  return 1 << FIELD_WIRE_SIZED;
3761
3960
  }
@@ -3786,6 +3985,8 @@ function decodeFieldPayload(layout, wireMask, kind, r) {
3786
3985
  skipFieldPayload(kind, r);
3787
3986
  return ABSENT;
3788
3987
  }
3988
+ // Only the two 32-bit layouts accept this kind, so the payload needs no window.
3989
+ if (kind === FIELD_WIRE_FIXED32) return layout._ === "u32" ? r.u32le() : r.i32le();
3789
3990
  if (kind !== FIELD_WIRE_SIZED) {
3790
3991
  const value = decodeScalarField(kind, r);
3791
3992
  if (layout._ === "literal" && !hasLiteral(layout, value)) {
@@ -4333,6 +4534,18 @@ function decodeValueUnchecked(layout, r) {
4333
4534
  return r.takeCopy(r.end - r.pos);
4334
4535
  case "bigint":
4335
4536
  return r.zigzag();
4537
+ case "i32":
4538
+ if (r.remaining !== 4) invalid("a 32-bit integer", undefined, r.options);
4539
+ return r.i32le();
4540
+ case "u32":
4541
+ if (r.remaining !== 4) invalid("a 32-bit unsigned integer", undefined, r.options);
4542
+ return r.u32le();
4543
+ case "i64":
4544
+ if (r.remaining !== 8) invalid("a 64-bit integer", undefined, r.options);
4545
+ return r.i64();
4546
+ case "u64":
4547
+ if (r.remaining !== 8) invalid("a 64-bit unsigned integer", undefined, r.options);
4548
+ return r.u64();
4336
4549
  case "int64":
4337
4550
  {
4338
4551
  if (r.remaining !== 8) invalid("int64", undefined, r.options);