effect 4.0.7 → 4.1.1

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 (863) hide show
  1. package/README.md +31 -1
  2. package/THIRD_PARTY_NOTICES.md +62 -0
  3. package/dist/BigDecimal.d.ts +139 -7
  4. package/dist/BigDecimal.d.ts.map +1 -1
  5. package/dist/BigDecimal.js +86 -14
  6. package/dist/BigDecimal.js.map +1 -1
  7. package/dist/Channel.d.ts +12 -6
  8. package/dist/Channel.d.ts.map +1 -1
  9. package/dist/Channel.js +9 -3
  10. package/dist/Channel.js.map +1 -1
  11. package/dist/Config.d.ts +7 -1
  12. package/dist/Config.d.ts.map +1 -1
  13. package/dist/Config.js.map +1 -1
  14. package/dist/Context.d.ts +18 -1
  15. package/dist/Context.d.ts.map +1 -1
  16. package/dist/Context.js +27 -8
  17. package/dist/Context.js.map +1 -1
  18. package/dist/Cron.d.ts +81 -11
  19. package/dist/Cron.d.ts.map +1 -1
  20. package/dist/Cron.js +101 -26
  21. package/dist/Cron.js.map +1 -1
  22. package/dist/Duration.d.ts +78 -0
  23. package/dist/Duration.d.ts.map +1 -1
  24. package/dist/Duration.js +123 -0
  25. package/dist/Duration.js.map +1 -1
  26. package/dist/Effect.d.ts +164 -7
  27. package/dist/Effect.d.ts.map +1 -1
  28. package/dist/Effect.js +11 -1
  29. package/dist/Effect.js.map +1 -1
  30. package/dist/Equal.d.ts +2 -2
  31. package/dist/Equal.d.ts.map +1 -1
  32. package/dist/Equal.js +3 -3
  33. package/dist/Equal.js.map +1 -1
  34. package/dist/FileSystem.d.ts +59 -4
  35. package/dist/FileSystem.d.ts.map +1 -1
  36. package/dist/FileSystem.js +9 -2
  37. package/dist/FileSystem.js.map +1 -1
  38. package/dist/Glob.d.ts +165 -0
  39. package/dist/Glob.d.ts.map +1 -0
  40. package/dist/Glob.js +127 -0
  41. package/dist/Glob.js.map +1 -0
  42. package/dist/Hash.d.ts +3 -2
  43. package/dist/Hash.d.ts.map +1 -1
  44. package/dist/Hash.js +5 -4
  45. package/dist/Hash.js.map +1 -1
  46. package/dist/Iterable.d.ts.map +1 -1
  47. package/dist/Iterable.js +11 -8
  48. package/dist/Iterable.js.map +1 -1
  49. package/dist/Match.d.ts +86 -0
  50. package/dist/Match.d.ts.map +1 -1
  51. package/dist/Match.js +72 -0
  52. package/dist/Match.js.map +1 -1
  53. package/dist/Path.d.ts.map +1 -1
  54. package/dist/Path.js +5 -1
  55. package/dist/Path.js.map +1 -1
  56. package/dist/Pool.d.ts +51 -0
  57. package/dist/Pool.d.ts.map +1 -1
  58. package/dist/Pool.js +61 -10
  59. package/dist/Pool.js.map +1 -1
  60. package/dist/Random.d.ts.map +1 -1
  61. package/dist/Random.js +3 -3
  62. package/dist/Random.js.map +1 -1
  63. package/dist/RcMap.d.ts.map +1 -1
  64. package/dist/RcMap.js +8 -2
  65. package/dist/RcMap.js.map +1 -1
  66. package/dist/Schedule.d.ts +18 -1
  67. package/dist/Schedule.d.ts.map +1 -1
  68. package/dist/Schedule.js +7 -2
  69. package/dist/Schedule.js.map +1 -1
  70. package/dist/Schema.d.ts +668 -42
  71. package/dist/Schema.d.ts.map +1 -1
  72. package/dist/Schema.js +652 -1
  73. package/dist/Schema.js.map +1 -1
  74. package/dist/SchemaGetter.d.ts +6 -1
  75. package/dist/SchemaGetter.d.ts.map +1 -1
  76. package/dist/SchemaGetter.js +22 -11
  77. package/dist/SchemaGetter.js.map +1 -1
  78. package/dist/SchemaRepresentation.d.ts +18 -2
  79. package/dist/SchemaRepresentation.d.ts.map +1 -1
  80. package/dist/SchemaRepresentation.js +20 -2
  81. package/dist/SchemaRepresentation.js.map +1 -1
  82. package/dist/SchemaTransformation.d.ts +10 -5
  83. package/dist/SchemaTransformation.d.ts.map +1 -1
  84. package/dist/SchemaTransformation.js +8 -5
  85. package/dist/SchemaTransformation.js.map +1 -1
  86. package/dist/ScopedCache.d.ts.map +1 -1
  87. package/dist/ScopedCache.js +5 -7
  88. package/dist/ScopedCache.js.map +1 -1
  89. package/dist/Semaphore.d.ts +130 -0
  90. package/dist/Semaphore.d.ts.map +1 -1
  91. package/dist/Semaphore.js +40 -0
  92. package/dist/Semaphore.js.map +1 -1
  93. package/dist/Stream.d.ts +13 -4
  94. package/dist/Stream.d.ts.map +1 -1
  95. package/dist/Stream.js +9 -0
  96. package/dist/Stream.js.map +1 -1
  97. package/dist/Terminal.d.ts +18 -1
  98. package/dist/Terminal.d.ts.map +1 -1
  99. package/dist/Terminal.js +1 -1
  100. package/dist/Terminal.js.map +1 -1
  101. package/dist/ai/AiError.d.ts +43 -116
  102. package/dist/ai/AiError.d.ts.map +1 -1
  103. package/dist/ai/AiError.js +53 -72
  104. package/dist/ai/AiError.js.map +1 -1
  105. package/dist/ai/Decision.d.ts +196 -15
  106. package/dist/ai/Decision.d.ts.map +1 -1
  107. package/dist/ai/Decision.js +130 -0
  108. package/dist/ai/Decision.js.map +1 -1
  109. package/dist/ai/DecisionModel.d.ts +54 -13
  110. package/dist/ai/DecisionModel.d.ts.map +1 -1
  111. package/dist/ai/DecisionModel.js +123 -12
  112. package/dist/ai/DecisionModel.js.map +1 -1
  113. package/dist/ai/McpClient.d.ts +171 -19
  114. package/dist/ai/McpClient.d.ts.map +1 -1
  115. package/dist/ai/McpClient.js +277 -66
  116. package/dist/ai/McpClient.js.map +1 -1
  117. package/dist/ai/McpSchema.d.ts +108 -0
  118. package/dist/ai/McpSchema.d.ts.map +1 -1
  119. package/dist/ai/McpSchema.js +99 -0
  120. package/dist/ai/McpSchema.js.map +1 -1
  121. package/dist/ai/McpServer.d.ts +744 -29
  122. package/dist/ai/McpServer.d.ts.map +1 -1
  123. package/dist/ai/McpServer.js +763 -136
  124. package/dist/ai/McpServer.js.map +1 -1
  125. package/dist/ai/McpTest.d.ts +130 -0
  126. package/dist/ai/McpTest.d.ts.map +1 -0
  127. package/dist/ai/McpTest.js +237 -0
  128. package/dist/ai/McpTest.js.map +1 -0
  129. package/dist/ai/Prompt.d.ts.map +1 -1
  130. package/dist/ai/Prompt.js +20 -11
  131. package/dist/ai/Prompt.js.map +1 -1
  132. package/dist/ai/Response.d.ts +1 -25
  133. package/dist/ai/Response.d.ts.map +1 -1
  134. package/dist/ai/Response.js +1 -10
  135. package/dist/ai/Response.js.map +1 -1
  136. package/dist/ai/Tool.d.ts +19 -1
  137. package/dist/ai/Tool.d.ts.map +1 -1
  138. package/dist/ai/Tool.js +5 -7
  139. package/dist/ai/Tool.js.map +1 -1
  140. package/dist/ai/index.d.ts +5 -0
  141. package/dist/ai/index.d.ts.map +1 -1
  142. package/dist/ai/index.js +5 -0
  143. package/dist/ai/index.js.map +1 -1
  144. package/dist/ai/internal/mcpCore.js +89 -15
  145. package/dist/ai/internal/mcpCore.js.map +1 -1
  146. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +7 -6
  147. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  148. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +7 -6
  149. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  150. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +7 -6
  151. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  152. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +7 -6
  153. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  154. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +60 -17
  155. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  156. package/dist/ai/internal/mcpProtocol.js +25 -0
  157. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  158. package/dist/ai/internal/mcpRuntime.js +8 -6
  159. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  160. package/dist/ai/internal/mcpSkills.d.ts +2 -0
  161. package/dist/ai/internal/mcpSkills.d.ts.map +1 -0
  162. package/dist/ai/internal/mcpSkills.js +428 -0
  163. package/dist/ai/internal/mcpSkills.js.map +1 -0
  164. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  165. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  166. package/dist/cli/Argument.d.ts +6 -0
  167. package/dist/cli/Argument.d.ts.map +1 -1
  168. package/dist/cli/Argument.js +2 -0
  169. package/dist/cli/Argument.js.map +1 -1
  170. package/dist/cli/CliOutput.d.ts +65 -1
  171. package/dist/cli/CliOutput.d.ts.map +1 -1
  172. package/dist/cli/CliOutput.js +94 -37
  173. package/dist/cli/CliOutput.js.map +1 -1
  174. package/dist/cli/Command.d.ts +23 -0
  175. package/dist/cli/Command.d.ts.map +1 -1
  176. package/dist/cli/Command.js +8 -0
  177. package/dist/cli/Command.js.map +1 -1
  178. package/dist/cli/Flag.d.ts +107 -0
  179. package/dist/cli/Flag.d.ts.map +1 -1
  180. package/dist/cli/Flag.js +37 -0
  181. package/dist/cli/Flag.js.map +1 -1
  182. package/dist/cli/HelpDoc.d.ts +15 -1
  183. package/dist/cli/HelpDoc.d.ts.map +1 -1
  184. package/dist/cli/Param.d.ts +6 -0
  185. package/dist/cli/Param.d.ts.map +1 -1
  186. package/dist/cli/Param.js +2 -0
  187. package/dist/cli/Param.js.map +1 -1
  188. package/dist/cli/Primitive.d.ts +14 -0
  189. package/dist/cli/Primitive.d.ts.map +1 -1
  190. package/dist/cli/Primitive.js +15 -1
  191. package/dist/cli/Primitive.js.map +1 -1
  192. package/dist/cli/Prompt.d.ts +1 -0
  193. package/dist/cli/Prompt.d.ts.map +1 -1
  194. package/dist/cli/Prompt.js +1 -0
  195. package/dist/cli/Prompt.js.map +1 -1
  196. package/dist/cli/internal/help.d.ts.map +1 -1
  197. package/dist/cli/internal/help.js +17 -10
  198. package/dist/cli/internal/help.js.map +1 -1
  199. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  200. package/dist/cluster/ClusterWorkflowEngine.js +15 -5
  201. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  202. package/dist/cluster/Reply.d.ts +1 -1
  203. package/dist/cluster/Reply.d.ts.map +1 -1
  204. package/dist/cluster/Reply.js.map +1 -1
  205. package/dist/cluster/Sharding.d.ts.map +1 -1
  206. package/dist/cluster/Sharding.js +93 -28
  207. package/dist/cluster/Sharding.js.map +1 -1
  208. package/dist/cluster/ShardingConfig.d.ts +72 -6
  209. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  210. package/dist/cluster/ShardingConfig.js +4 -0
  211. package/dist/cluster/ShardingConfig.js.map +1 -1
  212. package/dist/cluster/SingleRunner.d.ts +3 -3
  213. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  214. package/dist/cluster/SingleRunner.js +1 -1
  215. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  216. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  217. package/dist/cluster/SqlMessageStorage.js +34 -7
  218. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  219. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  220. package/dist/cluster/SqlRunnerStorage.js +23 -8
  221. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  222. package/dist/cluster/internal/entityManager.js +15 -7
  223. package/dist/cluster/internal/entityManager.js.map +1 -1
  224. package/dist/crypto/Aead.d.ts +323 -0
  225. package/dist/crypto/Aead.d.ts.map +1 -0
  226. package/dist/crypto/Aead.js +331 -0
  227. package/dist/crypto/Aead.js.map +1 -0
  228. package/dist/crypto/Cipher.d.ts +236 -0
  229. package/dist/crypto/Cipher.d.ts.map +1 -0
  230. package/dist/crypto/Cipher.js +233 -0
  231. package/dist/crypto/Cipher.js.map +1 -0
  232. package/dist/crypto/CryptoError.d.ts +212 -0
  233. package/dist/crypto/CryptoError.d.ts.map +1 -0
  234. package/dist/crypto/CryptoError.js +202 -0
  235. package/dist/crypto/CryptoError.js.map +1 -0
  236. package/dist/crypto/Digest.d.ts +143 -0
  237. package/dist/crypto/Digest.d.ts.map +1 -0
  238. package/dist/crypto/Digest.js +146 -0
  239. package/dist/crypto/Digest.js.map +1 -0
  240. package/dist/crypto/Kdf.d.ts +220 -0
  241. package/dist/crypto/Kdf.d.ts.map +1 -0
  242. package/dist/crypto/Kdf.js +212 -0
  243. package/dist/crypto/Kdf.js.map +1 -0
  244. package/dist/crypto/KeyAgreement.d.ts +324 -0
  245. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  246. package/dist/crypto/KeyAgreement.js +303 -0
  247. package/dist/crypto/KeyAgreement.js.map +1 -0
  248. package/dist/crypto/KeyFormat.d.ts +341 -0
  249. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  250. package/dist/crypto/KeyFormat.js +556 -0
  251. package/dist/crypto/KeyFormat.js.map +1 -0
  252. package/dist/crypto/KeyWrap.d.ts +390 -0
  253. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  254. package/dist/crypto/KeyWrap.js +381 -0
  255. package/dist/crypto/KeyWrap.js.map +1 -0
  256. package/dist/crypto/Mac.d.ts +278 -0
  257. package/dist/crypto/Mac.d.ts.map +1 -0
  258. package/dist/crypto/Mac.js +288 -0
  259. package/dist/crypto/Mac.js.map +1 -0
  260. package/dist/crypto/SecureRandom.d.ts +340 -0
  261. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  262. package/dist/crypto/SecureRandom.js +257 -0
  263. package/dist/crypto/SecureRandom.js.map +1 -0
  264. package/dist/crypto/Signature.d.ts +449 -0
  265. package/dist/crypto/Signature.d.ts.map +1 -0
  266. package/dist/crypto/Signature.js +484 -0
  267. package/dist/crypto/Signature.js.map +1 -0
  268. package/dist/crypto/WebCrypto.d.ts +80 -0
  269. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  270. package/dist/crypto/WebCrypto.js +63 -0
  271. package/dist/crypto/WebCrypto.js.map +1 -0
  272. package/dist/crypto/index.d.ts +65 -0
  273. package/dist/crypto/index.d.ts.map +1 -0
  274. package/dist/crypto/index.js +66 -0
  275. package/dist/crypto/index.js.map +1 -0
  276. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  277. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  278. package/dist/crypto/internal/asymmetric.js +210 -0
  279. package/dist/crypto/internal/asymmetric.js.map +1 -0
  280. package/dist/crypto/internal/chacha.d.ts +46 -0
  281. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  282. package/dist/crypto/internal/chacha.js +885 -0
  283. package/dist/crypto/internal/chacha.js.map +1 -0
  284. package/dist/crypto/internal/der.d.ts +6 -0
  285. package/dist/crypto/internal/der.d.ts.map +1 -0
  286. package/dist/crypto/internal/der.js +86 -0
  287. package/dist/crypto/internal/der.js.map +1 -0
  288. package/dist/crypto/internal/digest.d.ts +2 -0
  289. package/dist/crypto/internal/digest.d.ts.map +1 -0
  290. package/dist/crypto/internal/digest.js +15 -0
  291. package/dist/crypto/internal/digest.js.map +1 -0
  292. package/dist/crypto/internal/key.d.ts +2 -0
  293. package/dist/crypto/internal/key.d.ts.map +1 -0
  294. package/dist/crypto/internal/key.js +171 -0
  295. package/dist/crypto/internal/key.js.map +1 -0
  296. package/dist/crypto/internal/md5.d.ts +39 -0
  297. package/dist/crypto/internal/md5.d.ts.map +1 -0
  298. package/dist/crypto/internal/md5.js +179 -0
  299. package/dist/crypto/internal/md5.js.map +1 -0
  300. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  301. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  302. package/dist/crypto/internal/webCrypto.js +111 -0
  303. package/dist/crypto/internal/webCrypto.js.map +1 -0
  304. package/dist/encoding/Base64Url.d.ts.map +1 -1
  305. package/dist/encoding/Base64Url.js +29 -5
  306. package/dist/encoding/Base64Url.js.map +1 -1
  307. package/dist/encoding/Csv.d.ts +608 -0
  308. package/dist/encoding/Csv.d.ts.map +1 -0
  309. package/dist/encoding/Csv.js +718 -0
  310. package/dist/encoding/Csv.js.map +1 -0
  311. package/dist/encoding/Hex.d.ts +3 -2
  312. package/dist/encoding/Hex.d.ts.map +1 -1
  313. package/dist/encoding/Hex.js +3 -2
  314. package/dist/encoding/Hex.js.map +1 -1
  315. package/dist/encoding/Ndjson.d.ts +5 -4
  316. package/dist/encoding/Ndjson.d.ts.map +1 -1
  317. package/dist/encoding/Ndjson.js +6 -5
  318. package/dist/encoding/Ndjson.js.map +1 -1
  319. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  320. package/dist/encoding/SchemaBinary.js +42 -4
  321. package/dist/encoding/SchemaBinary.js.map +1 -1
  322. package/dist/encoding/Sse.d.ts +3 -1
  323. package/dist/encoding/Sse.d.ts.map +1 -1
  324. package/dist/encoding/Sse.js +5 -3
  325. package/dist/encoding/Sse.js.map +1 -1
  326. package/dist/encoding/Toml.d.ts +17 -3
  327. package/dist/encoding/Toml.d.ts.map +1 -1
  328. package/dist/encoding/Toml.js +104 -16
  329. package/dist/encoding/Toml.js.map +1 -1
  330. package/dist/encoding/Yaml.d.ts +8 -1
  331. package/dist/encoding/Yaml.d.ts.map +1 -1
  332. package/dist/encoding/Yaml.js +54 -18
  333. package/dist/encoding/Yaml.js.map +1 -1
  334. package/dist/encoding/index.d.ts +5 -0
  335. package/dist/encoding/index.d.ts.map +1 -1
  336. package/dist/encoding/index.js +5 -0
  337. package/dist/encoding/index.js.map +1 -1
  338. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  339. package/dist/eventlog/EventJournal.js +6 -3
  340. package/dist/eventlog/EventJournal.js.map +1 -1
  341. package/dist/eventlog/EventLog.d.ts +126 -4
  342. package/dist/eventlog/EventLog.d.ts.map +1 -1
  343. package/dist/eventlog/EventLog.js +207 -12
  344. package/dist/eventlog/EventLog.js.map +1 -1
  345. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  346. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  347. package/dist/eventlog/EventLogEncryption.js +83 -64
  348. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  349. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  350. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  351. package/dist/eventlog/EventLogMessage.js +217 -1
  352. package/dist/eventlog/EventLogMessage.js.map +1 -1
  353. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  354. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  355. package/dist/eventlog/EventLogRemote.js +186 -16
  356. package/dist/eventlog/EventLogRemote.js.map +1 -1
  357. package/dist/eventlog/EventLogServer.d.ts +10 -1
  358. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  359. package/dist/eventlog/EventLogServer.js +45 -22
  360. package/dist/eventlog/EventLogServer.js.map +1 -1
  361. package/dist/eventlog/EventLogServerEncrypted.d.ts +336 -5
  362. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  363. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  364. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  365. package/dist/eventlog/EventLogServerUnencrypted.d.ts +17 -0
  366. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  367. package/dist/eventlog/EventLogServerUnencrypted.js +14 -2
  368. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  369. package/dist/eventlog/EventLogSessionAuth.d.ts +26 -3
  370. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  371. package/dist/eventlog/EventLogSessionAuth.js +63 -64
  372. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  373. package/dist/eventlog/EventRow.d.ts +4 -0
  374. package/dist/eventlog/EventRow.d.ts.map +1 -1
  375. package/dist/eventlog/EventRow.js +12 -2
  376. package/dist/eventlog/EventRow.js.map +1 -1
  377. package/dist/eventlog/SqlEventJournal.js +2 -2
  378. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  379. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  380. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  381. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  382. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  383. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  384. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  385. package/dist/eventlog/internal/batches.d.ts +12 -0
  386. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  387. package/dist/eventlog/internal/batches.js +26 -0
  388. package/dist/eventlog/internal/batches.js.map +1 -0
  389. package/dist/eventlog/internal/compaction.d.ts +38 -0
  390. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  391. package/dist/eventlog/internal/compaction.js +33 -0
  392. package/dist/eventlog/internal/compaction.js.map +1 -0
  393. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  394. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  395. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  396. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  397. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  398. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  399. package/dist/graphql/GraphQLClient.d.ts +3 -1
  400. package/dist/graphql/GraphQLClient.d.ts.map +1 -1
  401. package/dist/graphql/GraphQLClient.js.map +1 -1
  402. package/dist/graphql/GraphQLClientError.d.ts +14 -9
  403. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  404. package/dist/graphql/GraphQLClientError.js +14 -21
  405. package/dist/graphql/GraphQLClientError.js.map +1 -1
  406. package/dist/graphql/GraphQLProtocol.d.ts +12 -3
  407. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  408. package/dist/graphql/GraphQLProtocol.js +4 -1
  409. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  410. package/dist/http/Cookies.d.ts +172 -0
  411. package/dist/http/Cookies.d.ts.map +1 -1
  412. package/dist/http/Cookies.js +143 -1
  413. package/dist/http/Cookies.js.map +1 -1
  414. package/dist/http/FetchHttpClient.d.ts +26 -2
  415. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  416. package/dist/http/FetchHttpClient.js +78 -15
  417. package/dist/http/FetchHttpClient.js.map +1 -1
  418. package/dist/http/HttpClient.d.ts +268 -15
  419. package/dist/http/HttpClient.d.ts.map +1 -1
  420. package/dist/http/HttpClient.js +140 -7
  421. package/dist/http/HttpClient.js.map +1 -1
  422. package/dist/http/HttpClientRequest.d.ts +9 -5
  423. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  424. package/dist/http/HttpClientRequest.js +2 -3
  425. package/dist/http/HttpClientRequest.js.map +1 -1
  426. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  427. package/dist/http/HttpClientResponse.js +3 -2
  428. package/dist/http/HttpClientResponse.js.map +1 -1
  429. package/dist/http/HttpMethod.d.ts +7 -1
  430. package/dist/http/HttpMethod.d.ts.map +1 -1
  431. package/dist/http/HttpMethod.js +3 -8
  432. package/dist/http/HttpMethod.js.map +1 -1
  433. package/dist/http/HttpServerRequest.d.ts +5 -2
  434. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  435. package/dist/http/HttpServerRequest.js +44 -39
  436. package/dist/http/HttpServerRequest.js.map +1 -1
  437. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  438. package/dist/http/HttpServerResponse.js +3 -2
  439. package/dist/http/HttpServerResponse.js.map +1 -1
  440. package/dist/http/HttpTraceContext.d.ts +2 -1
  441. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  442. package/dist/http/HttpTraceContext.js +7 -5
  443. package/dist/http/HttpTraceContext.js.map +1 -1
  444. package/dist/http/ProblemDetails.d.ts +96 -0
  445. package/dist/http/ProblemDetails.d.ts.map +1 -0
  446. package/dist/http/ProblemDetails.js +98 -0
  447. package/dist/http/ProblemDetails.js.map +1 -0
  448. package/dist/http/index.d.ts +5 -0
  449. package/dist/http/index.d.ts.map +1 -1
  450. package/dist/http/index.js +5 -0
  451. package/dist/http/index.js.map +1 -1
  452. package/dist/http/internal/decompression.js +3 -2
  453. package/dist/http/internal/decompression.js.map +1 -1
  454. package/dist/http/internal/mimeTypes.d.ts +4 -1
  455. package/dist/http/internal/mimeTypes.d.ts.map +1 -1
  456. package/dist/http/internal/mimeTypes.js +4 -1
  457. package/dist/http/internal/mimeTypes.js.map +1 -1
  458. package/dist/http/internal/urlParams.js +8 -0
  459. package/dist/http/internal/urlParams.js.map +1 -1
  460. package/dist/http-api/HttpApiBuilder.js +19 -5
  461. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  462. package/dist/http-api/HttpApiClient.d.ts +63 -0
  463. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  464. package/dist/http-api/HttpApiClient.js +51 -0
  465. package/dist/http-api/HttpApiClient.js.map +1 -1
  466. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  467. package/dist/http-api/HttpApiEndpoint.js +14 -5
  468. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  469. package/dist/http-api/HttpApiError.d.ts +185 -13
  470. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  471. package/dist/http-api/HttpApiError.js +128 -0
  472. package/dist/http-api/HttpApiError.js.map +1 -1
  473. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  474. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  475. package/dist/http-api/HttpApiMiddleware.js +85 -1
  476. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  477. package/dist/http-api/HttpApiSchema.d.ts +76 -14
  478. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  479. package/dist/http-api/HttpApiSchema.js +54 -1
  480. package/dist/http-api/HttpApiSchema.js.map +1 -1
  481. package/dist/index.d.ts +5 -5
  482. package/dist/index.d.ts.map +1 -1
  483. package/dist/index.js +5 -5
  484. package/dist/index.js.map +1 -1
  485. package/dist/internal/dateTime.js +49 -24
  486. package/dist/internal/dateTime.js.map +1 -1
  487. package/dist/internal/effect.js +35 -14
  488. package/dist/internal/effect.js.map +1 -1
  489. package/dist/internal/glob.d.ts +2 -0
  490. package/dist/internal/glob.d.ts.map +1 -0
  491. package/dist/internal/glob.js +808 -0
  492. package/dist/internal/glob.js.map +1 -0
  493. package/dist/internal/graphql.js +21 -7
  494. package/dist/internal/graphql.js.map +1 -1
  495. package/dist/internal/graphqlHeaders.d.ts +7 -0
  496. package/dist/internal/graphqlHeaders.d.ts.map +1 -1
  497. package/dist/internal/graphqlHeaders.js +11 -0
  498. package/dist/internal/graphqlHeaders.js.map +1 -1
  499. package/dist/internal/matcher.js +10 -0
  500. package/dist/internal/matcher.js.map +1 -1
  501. package/dist/internal/persistence.js +9 -0
  502. package/dist/internal/persistence.js.map +1 -1
  503. package/dist/internal/rcRef.js +4 -1
  504. package/dist/internal/rcRef.js.map +1 -1
  505. package/dist/internal/request.js +29 -42
  506. package/dist/internal/request.js.map +1 -1
  507. package/dist/internal/schema/fromJsonSchemaDocument.js +7 -8
  508. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  509. package/dist/internal/schema/toCodeDocument.js +6 -3
  510. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  511. package/dist/internal/trie.js +42 -13
  512. package/dist/internal/trie.js.map +1 -1
  513. package/dist/internal/ulid.js +41 -0
  514. package/dist/internal/ulid.js.map +1 -1
  515. package/dist/internal/uuid.js +52 -8
  516. package/dist/internal/uuid.js.map +1 -1
  517. package/dist/internal/version.js +1 -1
  518. package/dist/jose/JoseError.d.ts +285 -0
  519. package/dist/jose/JoseError.d.ts.map +1 -0
  520. package/dist/jose/JoseError.js +269 -0
  521. package/dist/jose/JoseError.js.map +1 -0
  522. package/dist/jose/Jwe.d.ts +128 -0
  523. package/dist/jose/Jwe.d.ts.map +1 -0
  524. package/dist/jose/Jwe.js +134 -0
  525. package/dist/jose/Jwe.js.map +1 -0
  526. package/dist/jose/Jwk.d.ts +597 -0
  527. package/dist/jose/Jwk.d.ts.map +1 -0
  528. package/dist/jose/Jwk.js +503 -0
  529. package/dist/jose/Jwk.js.map +1 -0
  530. package/dist/jose/Jwks.d.ts +236 -0
  531. package/dist/jose/Jwks.d.ts.map +1 -0
  532. package/dist/jose/Jwks.js +306 -0
  533. package/dist/jose/Jwks.js.map +1 -0
  534. package/dist/jose/Jws.d.ts +177 -0
  535. package/dist/jose/Jws.d.ts.map +1 -0
  536. package/dist/jose/Jws.js +183 -0
  537. package/dist/jose/Jws.js.map +1 -0
  538. package/dist/jose/Jwt.d.ts +270 -0
  539. package/dist/jose/Jwt.d.ts.map +1 -0
  540. package/dist/jose/Jwt.js +293 -0
  541. package/dist/jose/Jwt.js.map +1 -0
  542. package/dist/jose/index.d.ts +51 -0
  543. package/dist/jose/index.d.ts.map +1 -0
  544. package/dist/jose/index.js +52 -0
  545. package/dist/jose/index.js.map +1 -0
  546. package/dist/jose/internal/compact.d.ts +2 -0
  547. package/dist/jose/internal/compact.d.ts.map +1 -0
  548. package/dist/jose/internal/compact.js +179 -0
  549. package/dist/jose/internal/compact.js.map +1 -0
  550. package/dist/net/Host.d.ts.map +1 -1
  551. package/dist/net/Host.js +5 -10
  552. package/dist/net/Host.js.map +1 -1
  553. package/dist/observability/Otlp.d.ts +15 -4
  554. package/dist/observability/Otlp.d.ts.map +1 -1
  555. package/dist/observability/Otlp.js +10 -0
  556. package/dist/observability/Otlp.js.map +1 -1
  557. package/dist/observability/OtlpResource.d.ts +7 -0
  558. package/dist/observability/OtlpResource.d.ts.map +1 -1
  559. package/dist/observability/OtlpResource.js +11 -1
  560. package/dist/observability/OtlpResource.js.map +1 -1
  561. package/dist/observability/OtlpSerialization.d.ts +1 -1
  562. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  563. package/dist/observability/OtlpSerialization.js +10 -4
  564. package/dist/observability/OtlpSerialization.js.map +1 -1
  565. package/dist/observability/internal/otlpProtobuf.js +3 -3
  566. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  567. package/dist/observability/internal/protobuf.js +6 -0
  568. package/dist/observability/internal/protobuf.js.map +1 -1
  569. package/dist/persistence/CircuitBreaker.d.ts +98 -38
  570. package/dist/persistence/CircuitBreaker.d.ts.map +1 -1
  571. package/dist/persistence/CircuitBreaker.js +67 -29
  572. package/dist/persistence/CircuitBreaker.js.map +1 -1
  573. package/dist/persistence/KeyValueStore.d.ts +47 -2
  574. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  575. package/dist/persistence/KeyValueStore.js +129 -18
  576. package/dist/persistence/KeyValueStore.js.map +1 -1
  577. package/dist/persistence/PersistedQueue.d.ts +9 -0
  578. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  579. package/dist/persistence/PersistedQueue.js +94 -52
  580. package/dist/persistence/PersistedQueue.js.map +1 -1
  581. package/dist/persistence/Persistence.d.ts +10 -4
  582. package/dist/persistence/Persistence.d.ts.map +1 -1
  583. package/dist/persistence/Persistence.js +18 -11
  584. package/dist/persistence/Persistence.js.map +1 -1
  585. package/dist/persistence/RateLimiter.d.ts +8 -0
  586. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  587. package/dist/persistence/RateLimiter.js +63 -12
  588. package/dist/persistence/RateLimiter.js.map +1 -1
  589. package/dist/persistence/index.d.ts +1 -1
  590. package/dist/persistence/index.js +1 -1
  591. package/dist/process/ChildProcess.d.ts +207 -67
  592. package/dist/process/ChildProcess.d.ts.map +1 -1
  593. package/dist/process/ChildProcess.js +56 -158
  594. package/dist/process/ChildProcess.js.map +1 -1
  595. package/dist/process/ChildProcessSpawner.d.ts +5 -0
  596. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  597. package/dist/process/ChildProcessSpawner.js.map +1 -1
  598. package/dist/process/CommandLine.d.ts +294 -0
  599. package/dist/process/CommandLine.d.ts.map +1 -0
  600. package/dist/process/CommandLine.js +481 -0
  601. package/dist/process/CommandLine.js.map +1 -0
  602. package/dist/process/index.d.ts +5 -0
  603. package/dist/process/index.d.ts.map +1 -1
  604. package/dist/process/index.js +5 -0
  605. package/dist/process/index.js.map +1 -1
  606. package/dist/reactivity/Atom.d.ts +2 -1
  607. package/dist/reactivity/Atom.d.ts.map +1 -1
  608. package/dist/reactivity/Atom.js +3 -4
  609. package/dist/reactivity/Atom.js.map +1 -1
  610. package/dist/reactivity/AtomRegistry.js +17 -7
  611. package/dist/reactivity/AtomRegistry.js.map +1 -1
  612. package/dist/rpc/Rpc.d.ts +1 -1
  613. package/dist/rpc/Rpc.d.ts.map +1 -1
  614. package/dist/rpc/Rpc.js.map +1 -1
  615. package/dist/rpc/RpcClient.d.ts +28 -1
  616. package/dist/rpc/RpcClient.d.ts.map +1 -1
  617. package/dist/rpc/RpcClient.js +78 -27
  618. package/dist/rpc/RpcClient.js.map +1 -1
  619. package/dist/rpc/RpcMessage.d.ts +13 -3
  620. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  621. package/dist/rpc/RpcMessage.js +1 -0
  622. package/dist/rpc/RpcMessage.js.map +1 -1
  623. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  624. package/dist/rpc/RpcSerialization.js +6 -0
  625. package/dist/rpc/RpcSerialization.js.map +1 -1
  626. package/dist/rpc/RpcServer.d.ts +31 -0
  627. package/dist/rpc/RpcServer.d.ts.map +1 -1
  628. package/dist/rpc/RpcServer.js +139 -66
  629. package/dist/rpc/RpcServer.js.map +1 -1
  630. package/dist/schema/Model.d.ts +14 -0
  631. package/dist/schema/Model.d.ts.map +1 -1
  632. package/dist/schema/Model.js +18 -3
  633. package/dist/schema/Model.js.map +1 -1
  634. package/dist/sql/Migrator.d.ts +9 -20
  635. package/dist/sql/Migrator.d.ts.map +1 -1
  636. package/dist/sql/Migrator.js +20 -53
  637. package/dist/sql/Migrator.js.map +1 -1
  638. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  639. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  640. package/dist/sql/MigratorFileSystem.js +57 -0
  641. package/dist/sql/MigratorFileSystem.js.map +1 -0
  642. package/dist/sql/SqlClient.d.ts +38 -3
  643. package/dist/sql/SqlClient.d.ts.map +1 -1
  644. package/dist/sql/SqlClient.js +9 -12
  645. package/dist/sql/SqlClient.js.map +1 -1
  646. package/dist/sql/Statement.d.ts +61 -9
  647. package/dist/sql/Statement.d.ts.map +1 -1
  648. package/dist/sql/Statement.js +24 -33
  649. package/dist/sql/Statement.js.map +1 -1
  650. package/dist/sql/index.js +1 -1
  651. package/dist/testing/index.d.ts +0 -5
  652. package/dist/testing/index.d.ts.map +1 -1
  653. package/dist/testing/index.js +0 -5
  654. package/dist/testing/index.js.map +1 -1
  655. package/dist/workflow/Workflow.d.ts +4 -0
  656. package/dist/workflow/Workflow.d.ts.map +1 -1
  657. package/dist/workflow/Workflow.js.map +1 -1
  658. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/workflow/WorkflowEngine.js +5 -0
  660. package/dist/workflow/WorkflowEngine.js.map +1 -1
  661. package/dist/workflow/internal/crypto.js +9 -8
  662. package/dist/workflow/internal/crypto.js.map +1 -1
  663. package/package.json +7 -1
  664. package/src/BigDecimal.ts +173 -16
  665. package/src/Channel.ts +17 -11
  666. package/src/Config.ts +7 -1
  667. package/src/Context.ts +34 -10
  668. package/src/Cron.ts +178 -29
  669. package/src/Duration.ts +140 -0
  670. package/src/Effect.ts +914 -85
  671. package/src/Equal.ts +3 -3
  672. package/src/FileSystem.ts +65 -4
  673. package/src/Glob.ts +205 -0
  674. package/src/Hash.ts +5 -4
  675. package/src/Iterable.ts +8 -5
  676. package/src/Match.ts +127 -0
  677. package/src/Path.ts +6 -1
  678. package/src/Pool.ts +75 -16
  679. package/src/Random.ts +3 -3
  680. package/src/RcMap.ts +5 -1
  681. package/src/Schedule.ts +26 -3
  682. package/src/Schema.ts +1191 -63
  683. package/src/SchemaGetter.ts +27 -11
  684. package/src/SchemaRepresentation.ts +23 -2
  685. package/src/SchemaTransformation.ts +10 -5
  686. package/src/ScopedCache.ts +5 -9
  687. package/src/Semaphore.ts +141 -0
  688. package/src/Stream.ts +15 -6
  689. package/src/Terminal.ts +19 -1
  690. package/src/ai/AiError.ts +56 -80
  691. package/src/ai/Decision.ts +257 -6
  692. package/src/ai/DecisionModel.ts +171 -28
  693. package/src/ai/McpClient.ts +488 -91
  694. package/src/ai/McpSchema.ts +119 -0
  695. package/src/ai/McpServer.ts +1525 -319
  696. package/src/ai/McpTest.ts +380 -0
  697. package/src/ai/Prompt.ts +16 -11
  698. package/src/ai/Response.ts +2 -22
  699. package/src/ai/Tool.ts +32 -18
  700. package/src/ai/index.ts +6 -0
  701. package/src/ai/internal/mcpCore.ts +243 -56
  702. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +7 -8
  703. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +7 -8
  704. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +7 -8
  705. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +7 -8
  706. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +56 -17
  707. package/src/ai/internal/mcpProtocol.ts +44 -0
  708. package/src/ai/internal/mcpRuntime.ts +15 -8
  709. package/src/ai/internal/mcpSkills.ts +480 -0
  710. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  711. package/src/cli/Argument.ts +6 -0
  712. package/src/cli/CliOutput.ts +117 -49
  713. package/src/cli/Command.ts +23 -0
  714. package/src/cli/Flag.ts +107 -0
  715. package/src/cli/HelpDoc.ts +18 -1
  716. package/src/cli/Param.ts +6 -0
  717. package/src/cli/Primitive.ts +16 -1
  718. package/src/cli/Prompt.ts +1 -0
  719. package/src/cli/internal/help.ts +21 -9
  720. package/src/cluster/ClusterWorkflowEngine.ts +22 -8
  721. package/src/cluster/Reply.ts +1 -1
  722. package/src/cluster/Sharding.ts +96 -26
  723. package/src/cluster/ShardingConfig.ts +41 -3
  724. package/src/cluster/SingleRunner.ts +3 -3
  725. package/src/cluster/SqlMessageStorage.ts +49 -17
  726. package/src/cluster/SqlRunnerStorage.ts +37 -27
  727. package/src/cluster/internal/entityManager.ts +24 -10
  728. package/src/crypto/Aead.ts +517 -0
  729. package/src/crypto/Cipher.ts +326 -0
  730. package/src/crypto/CryptoError.ts +242 -0
  731. package/src/crypto/Digest.ts +167 -0
  732. package/src/crypto/Kdf.ts +315 -0
  733. package/src/crypto/KeyAgreement.ts +489 -0
  734. package/src/crypto/KeyFormat.ts +741 -0
  735. package/src/crypto/KeyWrap.ts +639 -0
  736. package/src/crypto/Mac.ts +386 -0
  737. package/src/crypto/SecureRandom.ts +459 -0
  738. package/src/crypto/Signature.ts +673 -0
  739. package/src/crypto/WebCrypto.ts +84 -0
  740. package/src/crypto/index.ts +78 -0
  741. package/src/crypto/internal/asymmetric.ts +330 -0
  742. package/src/crypto/internal/chacha.ts +1088 -0
  743. package/src/crypto/internal/der.ts +110 -0
  744. package/src/crypto/internal/digest.ts +16 -0
  745. package/src/crypto/internal/key.ts +242 -0
  746. package/src/crypto/internal/md5.ts +170 -0
  747. package/src/crypto/internal/webCrypto.ts +150 -0
  748. package/src/encoding/Base64Url.ts +32 -5
  749. package/src/encoding/Csv.ts +1298 -0
  750. package/src/encoding/Hex.ts +3 -2
  751. package/src/encoding/Ndjson.ts +6 -5
  752. package/src/encoding/SchemaBinary.ts +40 -4
  753. package/src/encoding/Sse.ts +5 -3
  754. package/src/encoding/Toml.ts +85 -20
  755. package/src/encoding/Yaml.ts +61 -18
  756. package/src/encoding/index.ts +6 -0
  757. package/src/eventlog/EventJournal.ts +4 -3
  758. package/src/eventlog/EventLog.ts +347 -15
  759. package/src/eventlog/EventLogEncryption.ts +118 -110
  760. package/src/eventlog/EventLogMessage.ts +273 -1
  761. package/src/eventlog/EventLogRemote.ts +367 -23
  762. package/src/eventlog/EventLogServer.ts +54 -20
  763. package/src/eventlog/EventLogServerEncrypted.ts +1135 -67
  764. package/src/eventlog/EventLogServerUnencrypted.ts +19 -2
  765. package/src/eventlog/EventLogSessionAuth.ts +82 -70
  766. package/src/eventlog/EventRow.ts +12 -3
  767. package/src/eventlog/SqlEventJournal.ts +2 -2
  768. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  769. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  770. package/src/eventlog/internal/batches.ts +30 -0
  771. package/src/eventlog/internal/compaction.ts +64 -0
  772. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  773. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  774. package/src/graphql/GraphQLClient.ts +3 -1
  775. package/src/graphql/GraphQLClientError.ts +15 -22
  776. package/src/graphql/GraphQLProtocol.ts +12 -3
  777. package/src/http/Cookies.ts +281 -1
  778. package/src/http/FetchHttpClient.ts +88 -16
  779. package/src/http/HttpClient.ts +299 -33
  780. package/src/http/HttpClientRequest.ts +12 -9
  781. package/src/http/HttpClientResponse.ts +3 -2
  782. package/src/http/HttpMethod.ts +10 -2
  783. package/src/http/HttpServerRequest.ts +76 -53
  784. package/src/http/HttpServerResponse.ts +3 -2
  785. package/src/http/HttpTraceContext.ts +7 -4
  786. package/src/http/ProblemDetails.ts +149 -0
  787. package/src/http/index.ts +6 -0
  788. package/src/http/internal/decompression.ts +4 -4
  789. package/src/http/internal/mimeTypes.ts +4 -1
  790. package/src/http/internal/urlParams.ts +8 -0
  791. package/src/http-api/HttpApiBuilder.ts +24 -12
  792. package/src/http-api/HttpApiClient.ts +67 -1
  793. package/src/http-api/HttpApiEndpoint.ts +14 -5
  794. package/src/http-api/HttpApiError.ts +250 -0
  795. package/src/http-api/HttpApiMiddleware.ts +95 -1
  796. package/src/http-api/HttpApiSchema.ts +106 -15
  797. package/src/index.ts +6 -6
  798. package/src/internal/dateTime.ts +54 -24
  799. package/src/internal/effect.ts +40 -18
  800. package/src/internal/glob.ts +952 -0
  801. package/src/internal/graphql.ts +27 -9
  802. package/src/internal/graphqlHeaders.ts +13 -0
  803. package/src/internal/matcher.ts +17 -0
  804. package/src/internal/persistence.ts +11 -0
  805. package/src/internal/rcRef.ts +4 -1
  806. package/src/internal/request.ts +51 -58
  807. package/src/internal/schema/fromJsonSchemaDocument.ts +11 -10
  808. package/src/internal/schema/toCodeDocument.ts +7 -3
  809. package/src/internal/trie.ts +43 -14
  810. package/src/internal/ulid.ts +44 -0
  811. package/src/internal/uuid.ts +57 -16
  812. package/src/internal/version.ts +1 -1
  813. package/src/jose/JoseError.ts +329 -0
  814. package/src/jose/Jwe.ts +196 -0
  815. package/src/jose/Jwk.ts +777 -0
  816. package/src/jose/Jwks.ts +418 -0
  817. package/src/jose/Jws.ts +312 -0
  818. package/src/jose/Jwt.ts +493 -0
  819. package/src/jose/index.ts +58 -0
  820. package/src/jose/internal/compact.ts +195 -0
  821. package/src/net/Host.ts +5 -10
  822. package/src/observability/Otlp.ts +21 -4
  823. package/src/observability/OtlpResource.ts +9 -1
  824. package/src/observability/OtlpSerialization.ts +13 -5
  825. package/src/observability/internal/otlpProtobuf.ts +6 -6
  826. package/src/observability/internal/protobuf.ts +10 -0
  827. package/src/persistence/CircuitBreaker.ts +113 -48
  828. package/src/persistence/KeyValueStore.ts +219 -22
  829. package/src/persistence/PersistedQueue.ts +128 -59
  830. package/src/persistence/Persistence.ts +20 -13
  831. package/src/persistence/RateLimiter.ts +84 -15
  832. package/src/persistence/index.ts +1 -1
  833. package/src/process/ChildProcess.ts +255 -260
  834. package/src/process/ChildProcessSpawner.ts +5 -0
  835. package/src/process/CommandLine.ts +630 -0
  836. package/src/process/index.ts +6 -0
  837. package/src/reactivity/Atom.ts +5 -5
  838. package/src/reactivity/AtomRegistry.ts +20 -9
  839. package/src/rpc/Rpc.ts +3 -1
  840. package/src/rpc/RpcClient.ts +94 -38
  841. package/src/rpc/RpcMessage.ts +13 -3
  842. package/src/rpc/RpcSerialization.ts +3 -0
  843. package/src/rpc/RpcServer.ts +176 -78
  844. package/src/schema/Model.ts +26 -3
  845. package/src/sql/Migrator.ts +38 -80
  846. package/src/sql/MigratorFileSystem.ts +71 -0
  847. package/src/sql/SqlClient.ts +45 -24
  848. package/src/sql/Statement.ts +60 -29
  849. package/src/sql/index.ts +1 -1
  850. package/src/testing/index.ts +0 -6
  851. package/src/workflow/Workflow.ts +4 -0
  852. package/src/workflow/WorkflowEngine.ts +5 -0
  853. package/src/workflow/internal/crypto.ts +15 -11
  854. package/dist/Crypto.d.ts +0 -244
  855. package/dist/Crypto.d.ts.map +0 -1
  856. package/dist/Crypto.js +0 -139
  857. package/dist/Crypto.js.map +0 -1
  858. package/dist/testing/TestCrypto.d.ts +0 -73
  859. package/dist/testing/TestCrypto.d.ts.map +0 -1
  860. package/dist/testing/TestCrypto.js +0 -87
  861. package/dist/testing/TestCrypto.js.map +0 -1
  862. package/src/Crypto.ts +0 -347
  863. package/src/testing/TestCrypto.ts +0 -94
@@ -0,0 +1,293 @@
1
+ /**
2
+ * Signed or encrypted compact JSON Web Tokens whose claims are encoded and
3
+ * decoded with a `Schema`.
4
+ *
5
+ * Verification and decryption authenticate the token first, then check the
6
+ * registered claims and the validation policy, and only then decode the
7
+ * application claims. `exp` and `nbf` are checked whenever they are present;
8
+ * require them with `requiredClaims`.
9
+ *
10
+ * Bound untrusted token length before verification, decryption, or unverified
11
+ * decoding; this module does not impose a token-size limit.
12
+ *
13
+ * @stability unstable
14
+ * @since 4.1.1
15
+ */
16
+ import * as Clock from "../Clock.js";
17
+ import * as Effect from "../Effect.js";
18
+ import * as Schema from "../Schema.js";
19
+ import { fail, invalidToken, millis, parseJsonObject, utf8 } from "./internal/compact.js";
20
+ import * as JoseError from "./JoseError.js";
21
+ import * as Jwe from "./Jwe.js";
22
+ import * as Jws from "./Jws.js";
23
+ /**
24
+ * Schema for the registered claims: string `iss`, `sub`, and `jti`, a string
25
+ * or string array `aud`, and finite NumericDate `exp`, `nbf`, and `iat`.
26
+ *
27
+ * @stability unstable
28
+ * @category schemas
29
+ * @since 4.1.1
30
+ */
31
+ export const RegisteredClaims = /*#__PURE__*/Schema.Struct({
32
+ iss: /*#__PURE__*/Schema.optionalKey(Schema.String),
33
+ sub: /*#__PURE__*/Schema.optionalKey(Schema.String),
34
+ aud: /*#__PURE__*/Schema.optionalKey(/*#__PURE__*/Schema.Union([Schema.String, /*#__PURE__*/Schema.Array(Schema.String)])),
35
+ exp: /*#__PURE__*/Schema.optionalKey(Schema.Finite),
36
+ nbf: /*#__PURE__*/Schema.optionalKey(Schema.Finite),
37
+ iat: /*#__PURE__*/Schema.optionalKey(Schema.Finite),
38
+ jti: /*#__PURE__*/Schema.optionalKey(Schema.String)
39
+ });
40
+ const claimValidationFailed = (claim, reason) => fail(new JoseError.ClaimValidationFailed({
41
+ claim,
42
+ reason
43
+ }));
44
+ // Each claim is checked on its own so the failure can name it.
45
+ const registeredClaimGuards = /*#__PURE__*/Object.entries(RegisteredClaims.fields).map(([name, field]) => [name, Schema.is(field.schema)]);
46
+ // Durations are read before any cryptography, in seconds.
47
+ const readPolicy = /*#__PURE__*/Effect.fnUntraced(function* (options) {
48
+ const clockTolerance = options?.clockTolerance === undefined ? 0 : yield* millis("clockTolerance", options.clockTolerance);
49
+ const maxTokenAge = options?.maxTokenAge === undefined ? undefined : yield* millis("maxTokenAge", options.maxTokenAge);
50
+ return {
51
+ ...options,
52
+ clockTolerance: clockTolerance / 1000,
53
+ maxTokenAge: maxTokenAge === undefined ? undefined : maxTokenAge / 1000
54
+ };
55
+ });
56
+ const toArray = value => typeof value === "string" ? [value] : value;
57
+ const mediaType = value => {
58
+ const type = value.toLowerCase();
59
+ return type.includes("/") ? type : `application/${type}`;
60
+ };
61
+ const checkClaims = /*#__PURE__*/Effect.fnUntraced(function* (claims, header, policy) {
62
+ const registered = {};
63
+ for (const [name, isValid] of registeredClaimGuards) {
64
+ if (!Object.hasOwn(claims, name)) continue;
65
+ if (!isValid(claims[name])) return yield* claimValidationFailed(name, "invalid");
66
+ registered[name] = claims[name];
67
+ }
68
+ const {
69
+ iss,
70
+ sub,
71
+ aud,
72
+ exp,
73
+ nbf,
74
+ iat
75
+ } = registered;
76
+ for (const name of policy.requiredClaims ?? []) {
77
+ if (registered[name] === undefined) return yield* claimValidationFailed(name, "missing");
78
+ }
79
+ if (policy.issuer !== undefined) {
80
+ if (iss === undefined) return yield* claimValidationFailed("iss", "missing");
81
+ if (!toArray(policy.issuer).includes(iss)) return yield* claimValidationFailed("iss", "mismatch");
82
+ }
83
+ if (policy.subject !== undefined) {
84
+ if (sub === undefined) return yield* claimValidationFailed("sub", "missing");
85
+ if (sub !== policy.subject) return yield* claimValidationFailed("sub", "mismatch");
86
+ }
87
+ if (policy.audience !== undefined) {
88
+ if (aud === undefined) return yield* claimValidationFailed("aud", "missing");
89
+ const audiences = toArray(aud);
90
+ if (!toArray(policy.audience).some(audience => audiences.includes(audience))) {
91
+ return yield* claimValidationFailed("aud", "mismatch");
92
+ }
93
+ }
94
+ if (policy.typ !== undefined && (header.typ === undefined || mediaType(header.typ) !== mediaType(policy.typ))) {
95
+ return yield* claimValidationFailed("typ", "mismatch");
96
+ }
97
+ const now = Math.floor((yield* Clock.currentTimeMillis) / 1000);
98
+ const tolerance = policy.clockTolerance;
99
+ if (exp !== undefined && exp <= now - tolerance) return yield* claimValidationFailed("exp", "expired");
100
+ if (nbf !== undefined && nbf > now + tolerance) return yield* claimValidationFailed("nbf", "notYetValid");
101
+ if (policy.maxTokenAge !== undefined) {
102
+ if (iat === undefined) return yield* claimValidationFailed("iat", "missing");
103
+ if (iat > now + tolerance) return yield* claimValidationFailed("iat", "future");
104
+ if (now - iat - tolerance > policy.maxTokenAge) return yield* claimValidationFailed("iat", "tooOld");
105
+ }
106
+ return registered;
107
+ });
108
+ const decodeClaims = /*#__PURE__*/Effect.fnUntraced(function* (schema, payload, protectedHeader, policy) {
109
+ const claims = parseJsonObject(payload);
110
+ if (claims === undefined) return yield* invalidToken("The JWT payload is not a JSON object");
111
+ const registeredClaims = yield* checkClaims(claims, protectedHeader, policy);
112
+ return {
113
+ claims: yield* Schema.decodeUnknownEffect(schema)(claims),
114
+ registeredClaims,
115
+ protectedHeader
116
+ };
117
+ });
118
+ const decodeClaimsJson = /*#__PURE__*/Schema.decodeUnknownEffect(/*#__PURE__*/Schema.JsonObject.check(/*#__PURE__*/Schema.makeFilter(claims => Schema.is(RegisteredClaims)(claims))));
119
+ const encodeClaims = /*#__PURE__*/Effect.fnUntraced(function* (schema, claims) {
120
+ const encoded = yield* Schema.encodeEffect(schema)(claims);
121
+ const json = yield* decodeClaimsJson(encoded);
122
+ return utf8(JSON.stringify(json));
123
+ });
124
+ /**
125
+ * Encodes claims with a schema and signs them as a compact JWT.
126
+ *
127
+ * **Details**
128
+ *
129
+ * The encoded claims must be a JSON object whose registered claims match
130
+ * {@link RegisteredClaims}.
131
+ *
132
+ * @see {@link verify}
133
+ * @see {@link encrypt} for encrypted JWTs
134
+ *
135
+ * @stability unstable
136
+ * @category cryptography
137
+ * @since 4.1.1
138
+ */
139
+ export const sign = (schema, claims, key, header) => Effect.flatMap(encodeClaims(schema, claims), payload => Jws.sign(payload, key, header));
140
+ /**
141
+ * Verifies a compact JWT with a key, checks its claims against the policy, and
142
+ * decodes the claims with a schema.
143
+ *
144
+ * **Example** (Verifying a token)
145
+ *
146
+ * ```ts import.meta.vitest
147
+ * import { Effect, Layer, Redacted, Schema } from "effect"
148
+ * import { Mac, SecureRandom, Signature } from "effect/crypto"
149
+ * import { Jwk, Jwt } from "effect/jose"
150
+ *
151
+ * const layer = Layer.mergeAll(Mac.layerWebCrypto, Signature.layerWebCrypto).pipe(
152
+ * Layer.provide(SecureRandom.layerWebCrypto)
153
+ * )
154
+ *
155
+ * const Claims = Schema.Struct({ sub: Schema.String, iss: Schema.String })
156
+ *
157
+ * const claims = await Effect.runPromise(Effect.gen(function*() {
158
+ * // Fixed public example material; generate application secrets securely.
159
+ * const key = yield* Jwk.importSecret(
160
+ * Redacted.make({ kty: "oct", k: "BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc" } as const),
161
+ * "HS256"
162
+ * )
163
+ * const token = yield* Jwt.sign(Claims, { sub: "user-123", iss: "example" }, key)
164
+ * const verified = yield* Jwt.verify(Claims, token, key, { issuer: "example", requiredClaims: ["sub"] })
165
+ * return verified.claims
166
+ * }).pipe(Effect.provide(layer)))
167
+ * claims // => ({ sub: "user-123", iss: "example" })
168
+ * ```
169
+ *
170
+ * @see {@link verifyWithKeySet} for resolving the key from the `Jwks` service
171
+ * @see {@link decrypt} for encrypted JWTs
172
+ *
173
+ * @stability unstable
174
+ * @category cryptography
175
+ * @since 4.1.1
176
+ */
177
+ export const verify = /*#__PURE__*/Effect.fnUntraced(function* (schema, token, key, options) {
178
+ const policy = yield* readPolicy(options);
179
+ const verified = yield* Jws.verify(token, key);
180
+ return yield* decodeClaims(schema, verified.payload, verified.protectedHeader, policy);
181
+ });
182
+ /**
183
+ * Verifies a compact JWT with a public key resolved from the `Jwks` service,
184
+ * checks its claims against the policy, and decodes the claims with a schema.
185
+ *
186
+ * @see {@link verify} for verifying with a known key
187
+ *
188
+ * @stability unstable
189
+ * @category cryptography
190
+ * @since 4.1.1
191
+ */
192
+ export const verifyWithKeySet = /*#__PURE__*/Effect.fnUntraced(function* (schema, token, options) {
193
+ const policy = yield* readPolicy(options);
194
+ const verified = yield* Jws.verifyWithKeySet(token, options);
195
+ return {
196
+ ...(yield* decodeClaims(schema, verified.payload, verified.protectedHeader, policy)),
197
+ key: verified.key
198
+ };
199
+ });
200
+ /**
201
+ * Encodes claims with a schema and encrypts them as a compact `dir`/A256GCM
202
+ * JWT.
203
+ *
204
+ * **Details**
205
+ *
206
+ * The encoded claims must be a JSON object whose registered claims match
207
+ * {@link RegisteredClaims}.
208
+ *
209
+ * **Example** (Encrypting and validating application claims)
210
+ *
211
+ * ```ts import.meta.vitest
212
+ * import { Effect, Layer, Redacted, Schema } from "effect"
213
+ * import { Aead, SecureRandom } from "effect/crypto"
214
+ * import { Jwk, Jwt } from "effect/jose"
215
+ *
216
+ * const layer = Aead.layerWebCrypto.pipe(Layer.provideMerge(SecureRandom.layerWebCrypto))
217
+ * const Claims = Schema.Struct({ sub: Schema.String })
218
+ *
219
+ * const claims = await Effect.runPromise(Effect.gen(function*() {
220
+ * // Fixed public example material; generate application secrets securely.
221
+ * const key = yield* Jwk.importSecret(
222
+ * Redacted.make({ kty: "oct", k: "BwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwc" } as const),
223
+ * "dir"
224
+ * )
225
+ * const token = yield* Jwt.encrypt(Claims, { sub: "user-123" }, key, { typ: "session+jwt" })
226
+ * const decrypted = yield* Jwt.decrypt(Claims, token, key, { typ: "session+jwt" })
227
+ * return decrypted.claims
228
+ * }).pipe(Effect.provide(layer)))
229
+ * claims // => ({ sub: "user-123" })
230
+ * ```
231
+ *
232
+ * @see {@link decrypt}
233
+ * @see {@link sign} for signed JWTs
234
+ *
235
+ * @stability unstable
236
+ * @category cryptography
237
+ * @since 4.1.1
238
+ */
239
+ export const encrypt = (schema, claims, key, header) => Effect.flatMap(encodeClaims(schema, claims), payload => Jwe.encrypt(payload, key, header));
240
+ /**
241
+ * Decrypts a compact `dir`/A256GCM JWT, checks its claims against the policy,
242
+ * and decodes the claims with a schema.
243
+ *
244
+ * **Details**
245
+ *
246
+ * Accepts a key or an effectful resolver for key rotation. The same claim
247
+ * policy as {@link verify} is applied after authenticated decryption and
248
+ * before the application schema is decoded.
249
+ *
250
+ * **Gotchas**
251
+ *
252
+ * The resolver receives an unauthenticated header and must use it only for
253
+ * key selection.
254
+ *
255
+ * @see {@link encrypt}
256
+ * @see {@link verify} for signed JWTs
257
+ *
258
+ * @stability unstable
259
+ * @category cryptography
260
+ * @since 4.1.1
261
+ */
262
+ export const decrypt = /*#__PURE__*/Effect.fnUntraced(function* (schema, token, key, options) {
263
+ const policy = yield* readPolicy(options);
264
+ const decrypted = yield* Jwe.decrypt(token, key);
265
+ return {
266
+ ...(yield* decodeClaims(schema, decrypted.plaintext, decrypted.protectedHeader, policy)),
267
+ key: decrypted.key
268
+ };
269
+ });
270
+ /**
271
+ * Reads the protected header and claims of a signed JWT without verifying it.
272
+ *
273
+ * **Gotchas**
274
+ *
275
+ * Nothing returned here is authenticated. Use it only to choose how to
276
+ * verify, never to authorize.
277
+ *
278
+ * @see {@link verify}
279
+ *
280
+ * @stability unstable
281
+ * @category decoding
282
+ * @since 4.1.1
283
+ */
284
+ export const decodeUnverified = /*#__PURE__*/Effect.fnUntraced(function* (token) {
285
+ const parsed = yield* Jws.parse(token);
286
+ const claims = parseJsonObject(parsed.payload);
287
+ if (claims === undefined) return yield* invalidToken("The JWT payload is not a JSON object");
288
+ return {
289
+ protectedHeader: parsed.protectedHeader,
290
+ claims
291
+ };
292
+ });
293
+ //# sourceMappingURL=Jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jwt.js","names":[],"sources":["../../src/jose/Jwt.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * JOSE keys, key sets, signatures, encryption, and schema-typed JSON Web Tokens.
3
+ *
4
+ * `Jwk` imports and exports JSON Web Keys; `Jwks` resolves keys from JSON Web
5
+ * Key Sets. `Jws`, `Jwe`, and `Jwt` handle JSON Web Signatures, JSON Web
6
+ * Encryption, and JSON Web Tokens respectively.
7
+ *
8
+ * The supported profile is compact serialization with HS256/384/512,
9
+ * RS256/384/512, PS256/384/512, ES256/384/512 (P-256/P-384/P-521), and EdDSA
10
+ * (Ed25519) signatures, and `dir`/A256GCM encryption.
11
+ * Other algorithms and JSON serializations are outside this profile.
12
+ * `Jwk` also generates symmetric keys, computes JWK thumbprints, and imports
13
+ * and exports SPKI and PKCS#8 keys in DER or PEM form.
14
+ *
15
+ * Apply an application-specific token-length limit before verification,
16
+ * decryption, or unverified decoding.
17
+ *
18
+ * @stability unstable
19
+ * @since 4.1.1
20
+ */
21
+ /**
22
+ * @stability unstable
23
+ * @since 4.1.1
24
+ */
25
+ export * as JoseError from "./JoseError.ts";
26
+ /**
27
+ * @stability unstable
28
+ * @since 4.1.1
29
+ */
30
+ export * as Jwe from "./Jwe.ts";
31
+ /**
32
+ * @stability unstable
33
+ * @since 4.1.1
34
+ */
35
+ export * as Jwk from "./Jwk.ts";
36
+ /**
37
+ * @stability unstable
38
+ * @since 4.1.1
39
+ */
40
+ export * as Jwks from "./Jwks.ts";
41
+ /**
42
+ * @stability unstable
43
+ * @since 4.1.1
44
+ */
45
+ export * as Jws from "./Jws.ts";
46
+ /**
47
+ * @stability unstable
48
+ * @since 4.1.1
49
+ */
50
+ export * as Jwt from "./Jwt.ts";
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jose/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH;;;GAGG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;GAGG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;GAGG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * JOSE keys, key sets, signatures, encryption, and schema-typed JSON Web Tokens.
3
+ *
4
+ * `Jwk` imports and exports JSON Web Keys; `Jwks` resolves keys from JSON Web
5
+ * Key Sets. `Jws`, `Jwe`, and `Jwt` handle JSON Web Signatures, JSON Web
6
+ * Encryption, and JSON Web Tokens respectively.
7
+ *
8
+ * The supported profile is compact serialization with HS256/384/512,
9
+ * RS256/384/512, PS256/384/512, ES256/384/512 (P-256/P-384/P-521), and EdDSA
10
+ * (Ed25519) signatures, and `dir`/A256GCM encryption.
11
+ * Other algorithms and JSON serializations are outside this profile.
12
+ * `Jwk` also generates symmetric keys, computes JWK thumbprints, and imports
13
+ * and exports SPKI and PKCS#8 keys in DER or PEM form.
14
+ *
15
+ * Apply an application-specific token-length limit before verification,
16
+ * decryption, or unverified decoding.
17
+ *
18
+ * @stability unstable
19
+ * @since 4.1.1
20
+ */
21
+ // @barrel
22
+ /**
23
+ * @stability unstable
24
+ * @since 4.1.1
25
+ */
26
+ export * as JoseError from "./JoseError.js";
27
+ /**
28
+ * @stability unstable
29
+ * @since 4.1.1
30
+ */
31
+ export * as Jwe from "./Jwe.js";
32
+ /**
33
+ * @stability unstable
34
+ * @since 4.1.1
35
+ */
36
+ export * as Jwk from "./Jwk.js";
37
+ /**
38
+ * @stability unstable
39
+ * @since 4.1.1
40
+ */
41
+ export * as Jwks from "./Jwks.js";
42
+ /**
43
+ * @stability unstable
44
+ * @since 4.1.1
45
+ */
46
+ export * as Jws from "./Jws.js";
47
+ /**
48
+ * @stability unstable
49
+ * @since 4.1.1
50
+ */
51
+ export * as Jwt from "./Jwt.js";
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/jose/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;AAqBA;AAEA;;;;AAIA,OAAO,KAAK,SAAS,MAAM,gBAAgB;AAE3C;;;;AAIA,OAAO,KAAK,GAAG,MAAM,UAAU;AAE/B;;;;AAIA,OAAO,KAAK,GAAG,MAAM,UAAU;AAE/B;;;;AAIA,OAAO,KAAK,IAAI,MAAM,WAAW;AAEjC;;;;AAIA,OAAO,KAAK,GAAG,MAAM,UAAU;AAE/B;;;;AAIA,OAAO,KAAK,GAAG,MAAM,UAAU","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=compact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../../src/jose/internal/compact.ts"],"names":[],"mappings":""}
@@ -0,0 +1,179 @@
1
+ import * as Duration from "../../Duration.js";
2
+ import * as Effect from "../../Effect.js";
3
+ import * as Base64Url from "../../encoding/Base64Url.js";
4
+ import * as Option from "../../Option.js";
5
+ import * as Redacted from "../../Redacted.js";
6
+ import * as Result from "../../Result.js";
7
+ import * as Schema from "../../Schema.js";
8
+ import * as JoseError from "../JoseError.js";
9
+ /** @internal */
10
+ export const fail = reason => Effect.fail(new JoseError.JoseError({
11
+ reason
12
+ }));
13
+ /** @internal */
14
+ export const invalidToken = description => fail(new JoseError.InvalidToken({
15
+ description
16
+ }));
17
+ /** @internal */
18
+ export const invalidKey = (description, cause) => fail(new JoseError.InvalidKey({
19
+ description,
20
+ cause
21
+ }));
22
+ /** @internal */
23
+ export const invalidArgument = (description, cause) => fail(new JoseError.InvalidArgument({
24
+ description,
25
+ cause
26
+ }));
27
+ /**
28
+ * Maps a failure of an operation on secret material, such as signing or
29
+ * private-key import, to a fixed description. Backend messages and causes may
30
+ * describe the secret, so they are dropped.
31
+ *
32
+ * @internal
33
+ */
34
+ export const cryptoFailure = description => _ => new JoseError.JoseError({
35
+ reason: new JoseError.InvalidKey({
36
+ description
37
+ })
38
+ });
39
+ /**
40
+ * Maps a public-key import failure, keeping the backend diagnostic.
41
+ *
42
+ * @internal
43
+ */
44
+ export const publicKeyFailure = error => new JoseError.JoseError({
45
+ reason: new JoseError.InvalidKey({
46
+ description: error.message,
47
+ cause: error
48
+ })
49
+ });
50
+ /**
51
+ * Schema fields that keep private and symmetric key members out of a public
52
+ * JWK.
53
+ *
54
+ * @internal
55
+ */
56
+ export const noPrivateMembers = {
57
+ d: /*#__PURE__*/Schema.optionalKey(Schema.Never),
58
+ p: /*#__PURE__*/Schema.optionalKey(Schema.Never),
59
+ q: /*#__PURE__*/Schema.optionalKey(Schema.Never),
60
+ dp: /*#__PURE__*/Schema.optionalKey(Schema.Never),
61
+ dq: /*#__PURE__*/Schema.optionalKey(Schema.Never),
62
+ qi: /*#__PURE__*/Schema.optionalKey(Schema.Never),
63
+ oth: /*#__PURE__*/Schema.optionalKey(Schema.Never),
64
+ k: /*#__PURE__*/Schema.optionalKey(Schema.Never)
65
+ };
66
+ /** @internal */
67
+ export const hasPrivateMembers = jwk => Object.keys(noPrivateMembers).some(name => Object.hasOwn(jwk, name));
68
+ /** @internal */
69
+ export const utf8 = text => new TextEncoder().encode(text);
70
+ /** @internal */
71
+ export const reveal = token => Redacted.isRedacted(token) ? Redacted.value(token) : token;
72
+ /**
73
+ * Checks unpadded base64url, including the unused bits in the final character.
74
+ *
75
+ * @internal
76
+ */
77
+ export const isCanonicalSegment = segment => {
78
+ if (/[^A-Za-z0-9_-]/.test(segment)) return false;
79
+ const remainder = segment.length % 4;
80
+ const last = segment.charAt(segment.length - 1);
81
+ return remainder === 0 || (remainder === 2 ? "AQgw".includes(last) : remainder === 3 && "AEIMQUYcgkosw048".includes(last));
82
+ };
83
+ /**
84
+ * Decodes canonical unpadded base64url.
85
+ *
86
+ * @internal
87
+ */
88
+ export const decodeSegment = segment => {
89
+ if (!isCanonicalSegment(segment)) return undefined;
90
+ const decoded = Base64Url.decode(segment);
91
+ return Result.isSuccess(decoded) ? decoded.success : undefined;
92
+ };
93
+ /** @internal */
94
+ export const parseJsonObject = bytes => {
95
+ try {
96
+ const value = JSON.parse(new TextDecoder("utf-8", {
97
+ fatal: true
98
+ }).decode(bytes));
99
+ return typeof value === "object" && value !== null && !Array.isArray(value) ? value : undefined;
100
+ } catch {
101
+ return undefined;
102
+ }
103
+ };
104
+ /**
105
+ * Splits a compact serialization into exactly `count` segments.
106
+ *
107
+ * @internal
108
+ */
109
+ export const split = (token, count) => {
110
+ const parts = reveal(token).split(".");
111
+ return parts.length === count ? Effect.succeed(parts) : invalidToken(`A compact serialization must have ${count} segments`);
112
+ };
113
+ /**
114
+ * Decodes a protected header. Parameters in `unsupported` change how the
115
+ * token is processed, so they are rejected rather than ignored.
116
+ *
117
+ * @internal
118
+ */
119
+ export const decodeHeader = (segment, decode, unsupported) => {
120
+ const bytes = decodeSegment(segment);
121
+ const json = bytes === undefined ? undefined : parseJsonObject(bytes);
122
+ if (json === undefined) return invalidToken("The protected header is not a base64url JSON object");
123
+ for (const name of unsupported) {
124
+ if (Object.hasOwn(json, name)) return invalidToken(`The ${name} header parameter is not supported`);
125
+ }
126
+ return Option.match(decode(json), {
127
+ onNone: () => invalidToken("The protected header has unsupported or malformed parameters"),
128
+ onSome: Effect.succeed
129
+ });
130
+ };
131
+ /**
132
+ * Base64url-encodes a protected header. Fixed parameters come first and
133
+ * cannot be overridden by additional parameters.
134
+ *
135
+ * @internal
136
+ */
137
+ export const encodeHeader = (fixed, kid, header, unsupported) => {
138
+ for (const name of unsupported) {
139
+ if (header !== undefined && Object.hasOwn(header, name)) {
140
+ return invalidArgument(`The ${name} header parameter is not supported`);
141
+ }
142
+ }
143
+ const {
144
+ kid: headerKid,
145
+ ...rest
146
+ } = header ?? {};
147
+ const value = {
148
+ ...fixed,
149
+ kid: headerKid ?? kid,
150
+ ...rest,
151
+ ...fixed
152
+ };
153
+ try {
154
+ return Effect.succeed(Base64Url.encode(JSON.stringify(value)));
155
+ } catch {
156
+ return invalidArgument("The protected header is not JSON serializable");
157
+ }
158
+ };
159
+ /**
160
+ * Reads a finite, non-negative duration in milliseconds.
161
+ *
162
+ * @internal
163
+ */
164
+ export const millis = (name, input) => {
165
+ const value = hasInvalidComponent(input) ? Option.none() : Option.map(Duration.fromInput(input), Duration.toMillis);
166
+ return Option.isSome(value) && Number.isFinite(value.value) && value.value >= 0 ? Effect.succeed(value.value) : invalidArgument(`${name} must be a finite, non-negative duration`);
167
+ };
168
+ // `Duration` reads NaN as zero in every input form, and components that are
169
+ // not finite or overflow on conversion add up to NaN. Either would silently
170
+ // disable a bound.
171
+ const hasInvalidComponent = input => {
172
+ if (typeof input === "number") return Number.isNaN(input);
173
+ if (typeof input !== "object" || Duration.isDuration(input)) return false;
174
+ if (Array.isArray(input)) return input.some(component => !Number.isFinite(component));
175
+ return Object.entries(input).some(([unit, component]) => typeof component === "number" && (!Number.isFinite(component) || !Number.isFinite(Duration.toMillis({
176
+ [unit]: component
177
+ }))));
178
+ };
179
+ //# sourceMappingURL=compact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact.js","names":[],"sources":["../../../src/jose/internal/compact.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Host.d.ts","sourceRoot":"","sources":["../../src/net/Host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Host.d.ts","sourceRoot":"","sources":["../../src/net/Host.ts"],"names":[],"mappings":"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"}
package/dist/net/Host.js CHANGED
@@ -9,7 +9,8 @@ const hostError = (input, message) => Result.fail(new NetAddress.NetAddressError
9
9
  input,
10
10
  message
11
11
  }));
12
- const asciiNameCharacter = /^[a-z0-9_.-]$/i;
12
+ const asciiName = /^[a-z0-9_.-]*$/i;
13
+ const nonAscii = /[\u0080-\uffff]/g;
13
14
  const labelPattern = /^[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?$/;
14
15
  const numericLabel = /^(?:\d+|0x[0-9a-f]*)$/;
15
16
  const validateDomainName = name => {
@@ -31,15 +32,9 @@ const validateDomainName = name => {
31
32
  return undefined;
32
33
  };
33
34
  const toAsciiDomainName = input => {
34
- let ascii = true;
35
- for (const character of input) {
36
- if (character.charCodeAt(0) < 0x80) {
37
- if (!asciiNameCharacter.test(character)) return undefined;
38
- } else {
39
- ascii = false;
40
- }
41
- }
42
- if (ascii) return input.toLowerCase();
35
+ if (asciiName.test(input)) return input.toLowerCase();
36
+ // Check the composed form, so that `=\u0338` is read as `≠`
37
+ if (!asciiName.test(input.normalize("NFC").replace(nonAscii, ""))) return undefined;
43
38
  try {
44
39
  return new URL(`http://${input}`).hostname;
45
40
  } catch {