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
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Compact JSON Web Signatures.
3
+ *
4
+ * The signing algorithm is the key's: {@link sign} writes it into the
5
+ * protected header and {@link verify} rejects a token whose `alg` differs.
6
+ * {@link verifyWithKeySet} resolves the key from the `Jwks` service and
7
+ * requires an allowlist of asymmetric algorithms. Headers with `crit` or `b64`
8
+ * are rejected.
9
+ *
10
+ * Bound untrusted token length before verification; this module does not
11
+ * impose a token-size limit.
12
+ *
13
+ * HMAC signatures run on the `Mac` service. On Node.js and Bun,
14
+ * `NodeCrypto.layerMac` and `BunCrypto.layerMac` compute them synchronously
15
+ * with `node:crypto` instead of through Web Crypto for byte-backed keys, such
16
+ * as those from `Jwk.importSecret`.
17
+ *
18
+ * @stability unstable
19
+ * @since 4.1.1
20
+ */
21
+ import * as Mac from "../crypto/Mac.ts";
22
+ import * as Signature from "../crypto/Signature.ts";
23
+ import * as Effect from "../Effect.ts";
24
+ import * as Redacted from "../Redacted.ts";
25
+ import * as Schema from "../Schema.ts";
26
+ import * as JoseError from "./JoseError.ts";
27
+ import { AsymmetricAlgorithm, type HmacAlgorithm, type PublicKey, type SecretKey, type SigningKey, type VerificationKey } from "./Jwk.ts";
28
+ import { Jwks } from "./Jwks.ts";
29
+ /**
30
+ * Schema for an authenticated JWS protected header, including additional
31
+ * JSON-valued parameters.
32
+ *
33
+ * @stability unstable
34
+ * @category schemas
35
+ * @since 4.1.1
36
+ */
37
+ export declare const ProtectedHeader: Schema.StructWithRest<Schema.Struct<{
38
+ readonly alg: Schema.Literals<readonly ["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "PS256", "PS384", "PS512", "ES256", "ES384", "ES512", "EdDSA"]>;
39
+ readonly kid: Schema.optionalKey<Schema.String>;
40
+ readonly typ: Schema.optionalKey<Schema.String>;
41
+ readonly cty: Schema.optionalKey<Schema.String>;
42
+ }>, readonly [Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>]>;
43
+ /**
44
+ * An authenticated JWS protected header.
45
+ *
46
+ * @stability unstable
47
+ * @category models
48
+ * @since 4.1.1
49
+ */
50
+ export type ProtectedHeader = typeof ProtectedHeader.Type;
51
+ /**
52
+ * Standard header parameters to sign. Signing also accepts additional
53
+ * JSON-valued parameters. `alg` comes from the key and `kid` defaults to the
54
+ * key's.
55
+ *
56
+ * @stability unstable
57
+ * @category models
58
+ * @since 4.1.1
59
+ */
60
+ export interface Header {
61
+ readonly alg?: never;
62
+ readonly crit?: never;
63
+ readonly b64?: never;
64
+ readonly kid?: string | undefined;
65
+ readonly typ?: string | undefined;
66
+ readonly cty?: string | undefined;
67
+ }
68
+ /**
69
+ * The protected header and payload of a verified JWS.
70
+ *
71
+ * @stability unstable
72
+ * @category models
73
+ * @since 4.1.1
74
+ */
75
+ export interface Verified {
76
+ readonly protectedHeader: ProtectedHeader;
77
+ readonly payload: Uint8Array;
78
+ }
79
+ /**
80
+ * Options for {@link verifyWithKeySet}.
81
+ *
82
+ * @stability unstable
83
+ * @category models
84
+ * @since 4.1.1
85
+ */
86
+ export interface VerifyWithKeySetOptions {
87
+ /**
88
+ * The algorithms a token may use. Must not be empty.
89
+ */
90
+ readonly algorithms: ReadonlyArray<AsymmetricAlgorithm>;
91
+ }
92
+ /**
93
+ * Services required to sign and verify with any key.
94
+ *
95
+ * @stability unstable
96
+ * @category models
97
+ * @since 4.1.1
98
+ */
99
+ export type Requirements = Mac.Mac | Signature.Signature;
100
+ /**
101
+ * Services required to sign or verify with a key of type `K`: `Mac` for
102
+ * HMAC keys and `Signature` for asymmetric keys. A union of key types
103
+ * requires both.
104
+ *
105
+ * @stability unstable
106
+ * @category models
107
+ * @since 4.1.1
108
+ */
109
+ export type KeyRequirements<K extends SigningKey | VerificationKey> = K extends SecretKey<HmacAlgorithm> ? Mac.Mac : Signature.Signature;
110
+ /**
111
+ * Signs a payload as a compact JWS with the key's algorithm.
112
+ *
113
+ * **Example** (Signing and verifying a payload)
114
+ *
115
+ * ```ts import.meta.vitest
116
+ * import { Effect, Layer, Redacted } from "effect"
117
+ * import { Mac, SecureRandom, Signature } from "effect/crypto"
118
+ * import { Jwk, Jws } from "effect/jose"
119
+ *
120
+ * const layer = Layer.mergeAll(Mac.layerWebCrypto, Signature.layerWebCrypto).pipe(
121
+ * Layer.provide(SecureRandom.layerWebCrypto)
122
+ * )
123
+ *
124
+ * const payload = await Effect.runPromise(Effect.gen(function*() {
125
+ * // Fixed public example material; generate application secrets securely.
126
+ * const key = yield* Jwk.importSecret(
127
+ * Redacted.make({ kty: "oct", k: "BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc" } as const),
128
+ * "HS256"
129
+ * )
130
+ * const token = yield* Jws.sign(new TextEncoder().encode("hello"), key)
131
+ * const verified = yield* Jws.verify(token, key)
132
+ * return new TextDecoder().decode(verified.payload)
133
+ * }).pipe(Effect.provide(layer)))
134
+ * payload // => "hello"
135
+ * ```
136
+ *
137
+ * @see {@link verify}
138
+ *
139
+ * @stability unstable
140
+ * @category cryptography
141
+ * @since 4.1.1
142
+ */
143
+ export declare const sign: <K extends SigningKey, H extends object & {
144
+ readonly [P in keyof H]: Schema.Json | undefined;
145
+ } = Header>(payload: Uint8Array, key: K, header?: Header & H) => Effect.Effect<Redacted.Redacted<string>, JoseError.JoseError, KeyRequirements<K>>;
146
+ /**
147
+ * Verifies a compact JWS with a key. The token's `alg` must be the key's
148
+ * algorithm.
149
+ *
150
+ * @see {@link sign}
151
+ * @see {@link verifyWithKeySet} for resolving the key from the `Jwks` service
152
+ *
153
+ * @stability unstable
154
+ * @category cryptography
155
+ * @since 4.1.1
156
+ */
157
+ export declare const verify: <K extends VerificationKey>(token: string | Redacted.Redacted<string>, key: K) => Effect.Effect<Verified, JoseError.JoseError, KeyRequirements<K>>;
158
+ /**
159
+ * Verifies a compact JWS with a public key resolved from the `Jwks` service by
160
+ * the token's `alg` and `kid`.
161
+ *
162
+ * **Details**
163
+ *
164
+ * The token's `alg` must be in `algorithms`, which is checked before any key
165
+ * lookup. The resolved key's algorithm must match the token's. HMAC tokens
166
+ * are always rejected.
167
+ *
168
+ * @see {@link verify} for verifying with a known key
169
+ *
170
+ * @stability unstable
171
+ * @category cryptography
172
+ * @since 4.1.1
173
+ */
174
+ export declare const verifyWithKeySet: (token: string | Redacted.Redacted<string>, options: VerifyWithKeySetOptions) => Effect.Effect<Verified & {
175
+ readonly key: PublicKey;
176
+ }, JoseError.JoseError, Jwks | Signature.Signature>;
177
+ //# sourceMappingURL=Jws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jws.d.ts","sourceRoot":"","sources":["../../src/jose/Jws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAYtC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAEL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;;mGAQ3B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD;;;;;;;;GAQG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAA;CACxD;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,SAAS,CAAA;AAExD;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,GAAG,eAAe,IAAI,CAAC,SAAS,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,GAAG,GAC9G,SAAS,CAAC,SAAS,CAAA;AAyDvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,IAAI,EAAE,CACjB,CAAC,SAAS,UAAU,EACpB,CAAC,SAAS,MAAM,GAAG;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS;CAAE,GAAG,MAAM,EAEhF,OAAO,EAAE,UAAU,EACnB,GAAG,EAAE,CAAC,EACN,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,KAChB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,CAiB5E,CAAA;AAET;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,SAAS,eAAe,EAC7C,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EACzC,GAAG,EAAE,CAAC,KACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,CAY3D,CAAA;AAET;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB;kBAGkB,SAAS;mDAStD,CAAA"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Compact JSON Web Signatures.
3
+ *
4
+ * The signing algorithm is the key's: {@link sign} writes it into the
5
+ * protected header and {@link verify} rejects a token whose `alg` differs.
6
+ * {@link verifyWithKeySet} resolves the key from the `Jwks` service and
7
+ * requires an allowlist of asymmetric algorithms. Headers with `crit` or `b64`
8
+ * are rejected.
9
+ *
10
+ * Bound untrusted token length before verification; this module does not
11
+ * impose a token-size limit.
12
+ *
13
+ * HMAC signatures run on the `Mac` service. On Node.js and Bun,
14
+ * `NodeCrypto.layerMac` and `BunCrypto.layerMac` compute them synchronously
15
+ * with `node:crypto` instead of through Web Crypto for byte-backed keys, such
16
+ * as those from `Jwk.importSecret`.
17
+ *
18
+ * @stability unstable
19
+ * @since 4.1.1
20
+ */
21
+ import * as Mac from "../crypto/Mac.js";
22
+ import * as Signature from "../crypto/Signature.js";
23
+ import * as Effect from "../Effect.js";
24
+ import * as Base64Url from "../encoding/Base64Url.js";
25
+ import * as Redacted from "../Redacted.js";
26
+ import * as Schema from "../Schema.js";
27
+ import { cryptoFailure, decodeHeader, decodeSegment, encodeHeader, fail, invalidArgument, invalidToken, split, utf8 } from "./internal/compact.js";
28
+ import * as JoseError from "./JoseError.js";
29
+ import { Algorithm, AsymmetricAlgorithm } from "./Jwk.js";
30
+ import { Jwks } from "./Jwks.js";
31
+ /**
32
+ * Schema for an authenticated JWS protected header, including additional
33
+ * JSON-valued parameters.
34
+ *
35
+ * @stability unstable
36
+ * @category schemas
37
+ * @since 4.1.1
38
+ */
39
+ export const ProtectedHeader = /*#__PURE__*/Schema.StructWithRest(/*#__PURE__*/Schema.Struct({
40
+ alg: Algorithm,
41
+ kid: /*#__PURE__*/Schema.optionalKey(Schema.String),
42
+ typ: /*#__PURE__*/Schema.optionalKey(Schema.String),
43
+ cty: /*#__PURE__*/Schema.optionalKey(Schema.String)
44
+ }), [/*#__PURE__*/Schema.Record(Schema.String, Schema.Json)]);
45
+ const decodeProtectedHeader = /*#__PURE__*/Schema.decodeUnknownOption(ProtectedHeader);
46
+ /**
47
+ * Parses a compact JWS without verifying it.
48
+ *
49
+ * @internal
50
+ */
51
+ export const parse = /*#__PURE__*/Effect.fnUntraced(function* (token) {
52
+ const [header, payload, signature] = yield* split(token, 3);
53
+ const protectedHeader = yield* decodeHeader(header, decodeProtectedHeader, ["crit", "b64"]);
54
+ const payloadBytes = decodeSegment(payload);
55
+ const signatureBytes = decodeSegment(signature);
56
+ if (payloadBytes === undefined || signatureBytes === undefined) {
57
+ return yield* invalidToken("The payload or signature is not base64url");
58
+ }
59
+ return {
60
+ protectedHeader,
61
+ payload: payloadBytes,
62
+ signature: signatureBytes,
63
+ signingInput: utf8(`${header}.${payload}`)
64
+ };
65
+ });
66
+ const signFailure = /*#__PURE__*/cryptoFailure("Could not sign with the key");
67
+ const verifyFailure = /*#__PURE__*/cryptoFailure("Could not verify with the key");
68
+ const isAsymmetricAlgorithm = /*#__PURE__*/Schema.is(AsymmetricAlgorithm);
69
+ const algorithmNotAllowed = /*#__PURE__*/fail(/*#__PURE__*/new JoseError.AlgorithmNotAllowed());
70
+ const authenticated = (parsed, valid) => valid ? Effect.succeed({
71
+ protectedHeader: parsed.protectedHeader,
72
+ payload: parsed.payload
73
+ }) : fail(new JoseError.SignatureVerificationFailed());
74
+ const verifySignature = /*#__PURE__*/Effect.fnUntraced(function* (parsed, key) {
75
+ const signature = yield* Signature.Signature;
76
+ const valid = yield* signature.verify(key.key, parsed.signature, parsed.signingInput).pipe(Effect.mapError(verifyFailure));
77
+ return yield* authenticated(parsed, valid);
78
+ });
79
+ /**
80
+ * Signs a payload as a compact JWS with the key's algorithm.
81
+ *
82
+ * **Example** (Signing and verifying a payload)
83
+ *
84
+ * ```ts import.meta.vitest
85
+ * import { Effect, Layer, Redacted } from "effect"
86
+ * import { Mac, SecureRandom, Signature } from "effect/crypto"
87
+ * import { Jwk, Jws } from "effect/jose"
88
+ *
89
+ * const layer = Layer.mergeAll(Mac.layerWebCrypto, Signature.layerWebCrypto).pipe(
90
+ * Layer.provide(SecureRandom.layerWebCrypto)
91
+ * )
92
+ *
93
+ * const payload = await Effect.runPromise(Effect.gen(function*() {
94
+ * // Fixed public example material; generate application secrets securely.
95
+ * const key = yield* Jwk.importSecret(
96
+ * Redacted.make({ kty: "oct", k: "BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc" } as const),
97
+ * "HS256"
98
+ * )
99
+ * const token = yield* Jws.sign(new TextEncoder().encode("hello"), key)
100
+ * const verified = yield* Jws.verify(token, key)
101
+ * return new TextDecoder().decode(verified.payload)
102
+ * }).pipe(Effect.provide(layer)))
103
+ * payload // => "hello"
104
+ * ```
105
+ *
106
+ * @see {@link verify}
107
+ *
108
+ * @stability unstable
109
+ * @category cryptography
110
+ * @since 4.1.1
111
+ */
112
+ export const sign = /*#__PURE__*/Effect.fnUntraced(function* (payload, key, header) {
113
+ const protectedHeader = yield* encodeHeader({
114
+ alg: key.algorithm
115
+ }, key.kid, header, ["crit", "b64"]);
116
+ const signingInput = `${protectedHeader}.${Base64Url.encode(payload)}`;
117
+ const data = utf8(signingInput);
118
+ let signature;
119
+ if (key._tag === "SecretKey") {
120
+ const mac = yield* Mac.Mac;
121
+ signature = yield* mac.sign(key.key, data).pipe(Effect.mapError(signFailure));
122
+ } else {
123
+ const signer = yield* Signature.Signature;
124
+ signature = yield* signer.sign(key.key, data).pipe(Effect.mapError(signFailure));
125
+ }
126
+ return Redacted.make(`${signingInput}.${Base64Url.encode(signature)}`);
127
+ }); // Each branch uses only the service its key type requires.
128
+ /**
129
+ * Verifies a compact JWS with a key. The token's `alg` must be the key's
130
+ * algorithm.
131
+ *
132
+ * @see {@link sign}
133
+ * @see {@link verifyWithKeySet} for resolving the key from the `Jwks` service
134
+ *
135
+ * @stability unstable
136
+ * @category cryptography
137
+ * @since 4.1.1
138
+ */
139
+ export const verify = /*#__PURE__*/Effect.fnUntraced(function* (token, key) {
140
+ const parsed = yield* parse(token);
141
+ if (parsed.protectedHeader.alg !== key.algorithm) return yield* algorithmNotAllowed;
142
+ if (key._tag === "PublicKey") return yield* verifySignature(parsed, key);
143
+ const mac = yield* Mac.Mac;
144
+ const valid = yield* mac.verify(key.key, parsed.signature, parsed.signingInput).pipe(Effect.mapError(verifyFailure));
145
+ return yield* authenticated(parsed, valid);
146
+ }); // Each branch uses only the service its key type requires.
147
+ /**
148
+ * Verifies a compact JWS with a public key resolved from the `Jwks` service by
149
+ * the token's `alg` and `kid`.
150
+ *
151
+ * **Details**
152
+ *
153
+ * The token's `alg` must be in `algorithms`, which is checked before any key
154
+ * lookup. The resolved key's algorithm must match the token's. HMAC tokens
155
+ * are always rejected.
156
+ *
157
+ * @see {@link verify} for verifying with a known key
158
+ *
159
+ * @stability unstable
160
+ * @category cryptography
161
+ * @since 4.1.1
162
+ */
163
+ export const verifyWithKeySet = /*#__PURE__*/Effect.fnUntraced(function* (token, options) {
164
+ if (options.algorithms.length === 0) return yield* invalidArgument("algorithms must not be empty");
165
+ const parsed = yield* parse(token);
166
+ const {
167
+ alg,
168
+ kid
169
+ } = parsed.protectedHeader;
170
+ if (!isAsymmetricAlgorithm(alg) || !options.algorithms.includes(alg)) return yield* algorithmNotAllowed;
171
+ const jwks = yield* Jwks;
172
+ const key = yield* jwks.resolve({
173
+ algorithm: alg,
174
+ kid,
175
+ protectedHeader: parsed.protectedHeader
176
+ });
177
+ if (key.algorithm !== alg) return yield* algorithmNotAllowed;
178
+ return {
179
+ ...(yield* verifySignature(parsed, key)),
180
+ key
181
+ };
182
+ });
183
+ //# sourceMappingURL=Jws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jws.js","names":[],"sources":["../../src/jose/Jws.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,270 @@
1
+ import type * as Aead from "../crypto/Aead.ts";
2
+ import type * as SecureRandom from "../crypto/SecureRandom.ts";
3
+ import type * as Signature from "../crypto/Signature.ts";
4
+ import type * as Duration from "../Duration.ts";
5
+ import * as Effect from "../Effect.ts";
6
+ import type * as Redacted from "../Redacted.ts";
7
+ import * as Schema from "../Schema.ts";
8
+ import * as JoseError from "./JoseError.ts";
9
+ import * as Jwe from "./Jwe.ts";
10
+ import type { PublicKey, SecretKey, SigningKey, VerificationKey } from "./Jwk.ts";
11
+ import type { Jwks } from "./Jwks.ts";
12
+ import * as Jws from "./Jws.ts";
13
+ /**
14
+ * Schema for the registered claims: string `iss`, `sub`, and `jti`, a string
15
+ * or string array `aud`, and finite NumericDate `exp`, `nbf`, and `iat`.
16
+ *
17
+ * @stability unstable
18
+ * @category schemas
19
+ * @since 4.1.1
20
+ */
21
+ export declare const RegisteredClaims: Schema.Struct<{
22
+ readonly iss: Schema.optionalKey<Schema.String>;
23
+ readonly sub: Schema.optionalKey<Schema.String>;
24
+ readonly aud: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.$Array<Schema.String>]>>;
25
+ readonly exp: Schema.optionalKey<Schema.Finite>;
26
+ readonly nbf: Schema.optionalKey<Schema.Finite>;
27
+ readonly iat: Schema.optionalKey<Schema.Finite>;
28
+ readonly jti: Schema.optionalKey<Schema.String>;
29
+ }>;
30
+ /**
31
+ * The registered claims of a JWT.
32
+ *
33
+ * @stability unstable
34
+ * @category models
35
+ * @since 4.1.1
36
+ */
37
+ export type RegisteredClaims = typeof RegisteredClaims.Type;
38
+ /**
39
+ * The claim validation policy for a signed or encrypted JWT.
40
+ *
41
+ * @stability unstable
42
+ * @category models
43
+ * @since 4.1.1
44
+ */
45
+ export interface VerifyOptions {
46
+ /**
47
+ * Accepted `iss` values.
48
+ */
49
+ readonly issuer?: string | ReadonlyArray<string> | undefined;
50
+ /**
51
+ * Accepted audiences. The token's `aud` must contain at least one.
52
+ */
53
+ readonly audience?: string | ReadonlyArray<string> | undefined;
54
+ readonly subject?: string | undefined;
55
+ /**
56
+ * Expected `typ` header. Media types compare case-insensitively and without
57
+ * the `application/` prefix.
58
+ */
59
+ readonly typ?: string | undefined;
60
+ /**
61
+ * Tolerance for `exp`, `nbf`, and `iat`. Defaults to zero; numbers are
62
+ * milliseconds.
63
+ */
64
+ readonly clockTolerance?: Duration.Input | undefined;
65
+ /**
66
+ * Maximum age measured from `iat`, which becomes required. Numbers are
67
+ * milliseconds.
68
+ */
69
+ readonly maxTokenAge?: Duration.Input | undefined;
70
+ readonly requiredClaims?: ReadonlyArray<keyof RegisteredClaims> | undefined;
71
+ }
72
+ /**
73
+ * Options for {@link verifyWithKeySet}: the verification policy and the
74
+ * accepted algorithms.
75
+ *
76
+ * @stability unstable
77
+ * @category models
78
+ * @since 4.1.1
79
+ */
80
+ export interface VerifyWithKeySetOptions extends VerifyOptions, Jws.VerifyWithKeySetOptions {
81
+ }
82
+ /**
83
+ * A verified JWT: decoded application claims, its registered claims, and the
84
+ * authenticated protected header.
85
+ *
86
+ * @stability unstable
87
+ * @category models
88
+ * @since 4.1.1
89
+ */
90
+ export interface Verified<A, H = Jws.ProtectedHeader> {
91
+ readonly claims: A;
92
+ readonly registeredClaims: RegisteredClaims;
93
+ readonly protectedHeader: H;
94
+ }
95
+ /**
96
+ * A decrypted and validated JWT, with its protected header and decryption key.
97
+ *
98
+ * @stability unstable
99
+ * @category models
100
+ * @since 4.1.1
101
+ */
102
+ export interface Decrypted<A> extends Verified<A, Jwe.ProtectedHeader> {
103
+ readonly key: SecretKey<"dir">;
104
+ }
105
+ /**
106
+ * The protected header and claims of a signed JWT that has not been verified.
107
+ *
108
+ * @stability unstable
109
+ * @category models
110
+ * @since 4.1.1
111
+ */
112
+ export interface Unverified {
113
+ readonly protectedHeader: Jws.ProtectedHeader;
114
+ readonly claims: Readonly<Record<string, Schema.Json>>;
115
+ }
116
+ /**
117
+ * Failures of JWT operations: JOSE failures, and schema failures while
118
+ * encoding or decoding the application claims.
119
+ *
120
+ * @stability unstable
121
+ * @category errors
122
+ * @since 4.1.1
123
+ */
124
+ export type JwtError = JoseError.JoseError | Schema.SchemaError;
125
+ /**
126
+ * Encodes claims with a schema and signs them as a compact JWT.
127
+ *
128
+ * **Details**
129
+ *
130
+ * The encoded claims must be a JSON object whose registered claims match
131
+ * {@link RegisteredClaims}.
132
+ *
133
+ * @see {@link verify}
134
+ * @see {@link encrypt} for encrypted JWTs
135
+ *
136
+ * @stability unstable
137
+ * @category cryptography
138
+ * @since 4.1.1
139
+ */
140
+ export declare const sign: <S extends Schema.Constraint, K extends SigningKey, H extends object & { readonly [P in keyof H]: Schema.Json | undefined; } = Jws.Header>(schema: S, claims: S["Type"], key: K, header?: Jws.Header & H) => Effect.Effect<Redacted.Redacted<string>, JwtError, S["EncodingServices"] | Jws.KeyRequirements<K>>;
141
+ /**
142
+ * Verifies a compact JWT with a key, checks its claims against the policy, and
143
+ * decodes the claims with a schema.
144
+ *
145
+ * **Example** (Verifying a token)
146
+ *
147
+ * ```ts import.meta.vitest
148
+ * import { Effect, Layer, Redacted, Schema } from "effect"
149
+ * import { Mac, SecureRandom, Signature } from "effect/crypto"
150
+ * import { Jwk, Jwt } from "effect/jose"
151
+ *
152
+ * const layer = Layer.mergeAll(Mac.layerWebCrypto, Signature.layerWebCrypto).pipe(
153
+ * Layer.provide(SecureRandom.layerWebCrypto)
154
+ * )
155
+ *
156
+ * const Claims = Schema.Struct({ sub: Schema.String, iss: Schema.String })
157
+ *
158
+ * const claims = await Effect.runPromise(Effect.gen(function*() {
159
+ * // Fixed public example material; generate application secrets securely.
160
+ * const key = yield* Jwk.importSecret(
161
+ * Redacted.make({ kty: "oct", k: "BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc" } as const),
162
+ * "HS256"
163
+ * )
164
+ * const token = yield* Jwt.sign(Claims, { sub: "user-123", iss: "example" }, key)
165
+ * const verified = yield* Jwt.verify(Claims, token, key, { issuer: "example", requiredClaims: ["sub"] })
166
+ * return verified.claims
167
+ * }).pipe(Effect.provide(layer)))
168
+ * claims // => ({ sub: "user-123", iss: "example" })
169
+ * ```
170
+ *
171
+ * @see {@link verifyWithKeySet} for resolving the key from the `Jwks` service
172
+ * @see {@link decrypt} for encrypted JWTs
173
+ *
174
+ * @stability unstable
175
+ * @category cryptography
176
+ * @since 4.1.1
177
+ */
178
+ export declare const verify: <S extends Schema.Constraint, K extends VerificationKey>(schema: S, token: string | Redacted.Redacted<string>, key: K, options?: VerifyOptions) => Effect.Effect<Verified<S["Type"]>, JwtError, S["DecodingServices"] | Jws.KeyRequirements<K>>;
179
+ /**
180
+ * Verifies a compact JWT with a public key resolved from the `Jwks` service,
181
+ * checks its claims against the policy, and decodes the claims with a schema.
182
+ *
183
+ * @see {@link verify} for verifying with a known key
184
+ *
185
+ * @stability unstable
186
+ * @category cryptography
187
+ * @since 4.1.1
188
+ */
189
+ export declare const verifyWithKeySet: <S extends Schema.Constraint>(schema: S, token: string | Redacted.Redacted<string>, options: VerifyWithKeySetOptions) => Effect.Effect<Verified<S["Type"]> & {
190
+ readonly key: PublicKey;
191
+ }, JwtError, S["DecodingServices"] | Jwks | Signature.Signature>;
192
+ /**
193
+ * Encodes claims with a schema and encrypts them as a compact `dir`/A256GCM
194
+ * JWT.
195
+ *
196
+ * **Details**
197
+ *
198
+ * The encoded claims must be a JSON object whose registered claims match
199
+ * {@link RegisteredClaims}.
200
+ *
201
+ * **Example** (Encrypting and validating application claims)
202
+ *
203
+ * ```ts import.meta.vitest
204
+ * import { Effect, Layer, Redacted, Schema } from "effect"
205
+ * import { Aead, SecureRandom } from "effect/crypto"
206
+ * import { Jwk, Jwt } from "effect/jose"
207
+ *
208
+ * const layer = Aead.layerWebCrypto.pipe(Layer.provideMerge(SecureRandom.layerWebCrypto))
209
+ * const Claims = Schema.Struct({ sub: Schema.String })
210
+ *
211
+ * const claims = await Effect.runPromise(Effect.gen(function*() {
212
+ * // Fixed public example material; generate application secrets securely.
213
+ * const key = yield* Jwk.importSecret(
214
+ * Redacted.make({ kty: "oct", k: "BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc" } as const),
215
+ * "dir"
216
+ * )
217
+ * const token = yield* Jwt.encrypt(Claims, { sub: "user-123" }, key, { typ: "session+jwt" })
218
+ * const decrypted = yield* Jwt.decrypt(Claims, token, key, { typ: "session+jwt" })
219
+ * return decrypted.claims
220
+ * }).pipe(Effect.provide(layer)))
221
+ * claims // => ({ sub: "user-123" })
222
+ * ```
223
+ *
224
+ * @see {@link decrypt}
225
+ * @see {@link sign} for signed JWTs
226
+ *
227
+ * @stability unstable
228
+ * @category cryptography
229
+ * @since 4.1.1
230
+ */
231
+ export declare const encrypt: <S extends Schema.Constraint, H extends object & { readonly [P in keyof H]: Schema.Json | undefined; } = Jwe.Header>(schema: S, claims: S["Type"], key: SecretKey<"dir">, header?: Jwe.Header & H) => Effect.Effect<Redacted.Redacted<string>, JwtError, S["EncodingServices"] | Aead.Aead | SecureRandom.SecureRandom>;
232
+ /**
233
+ * Decrypts a compact `dir`/A256GCM JWT, checks its claims against the policy,
234
+ * and decodes the claims with a schema.
235
+ *
236
+ * **Details**
237
+ *
238
+ * Accepts a key or an effectful resolver for key rotation. The same claim
239
+ * policy as {@link verify} is applied after authenticated decryption and
240
+ * before the application schema is decoded.
241
+ *
242
+ * **Gotchas**
243
+ *
244
+ * The resolver receives an unauthenticated header and must use it only for
245
+ * key selection.
246
+ *
247
+ * @see {@link encrypt}
248
+ * @see {@link verify} for signed JWTs
249
+ *
250
+ * @stability unstable
251
+ * @category cryptography
252
+ * @since 4.1.1
253
+ */
254
+ export declare const decrypt: <S extends Schema.Constraint, E = never, R = never>(schema: S, token: string | Redacted.Redacted<string>, key: SecretKey<"dir"> | ((header: Jwe.ProtectedHeader) => Effect.Effect<SecretKey<"dir">, E, R>), options?: VerifyOptions | undefined) => Effect.Effect<Decrypted<S["Type"]>, E | JwtError, R | Aead.Aead | S["DecodingServices"]>;
255
+ /**
256
+ * Reads the protected header and claims of a signed JWT without verifying it.
257
+ *
258
+ * **Gotchas**
259
+ *
260
+ * Nothing returned here is authenticated. Use it only to choose how to
261
+ * verify, never to authorize.
262
+ *
263
+ * @see {@link verify}
264
+ *
265
+ * @stability unstable
266
+ * @category decoding
267
+ * @since 4.1.1
268
+ */
269
+ export declare const decodeUnverified: (token: string | Redacted.Redacted<string>) => Effect.Effect<Unverified, JoseError.JoseError, never>;
270
+ //# sourceMappingURL=Jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jwt.d.ts","sourceRoot":"","sources":["../../src/jose/Jwt.ts"],"names":[],"mappings":"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"}