@relkit/runtime-hono 0.5.3 → 0.5.5

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 (701) hide show
  1. package/dist/agent-active-execution.d.ts +5 -11
  2. package/dist/agent-active-execution.d.ts.map +1 -1
  3. package/dist/agent-active-execution.js +3 -0
  4. package/dist/agent-active-execution.js.map +1 -1
  5. package/dist/agent-active-execution.types.d.ts +14 -0
  6. package/dist/agent-active-execution.types.d.ts.map +1 -0
  7. package/dist/agent-active-execution.types.js +2 -0
  8. package/dist/agent-active-execution.types.js.map +1 -0
  9. package/dist/agent-approval-coordinator.d.ts +17 -6
  10. package/dist/agent-approval-coordinator.d.ts.map +1 -1
  11. package/dist/agent-approval-coordinator.js +56 -53
  12. package/dist/agent-approval-coordinator.js.map +1 -1
  13. package/dist/agent-approval-coordinator.types.d.ts +14 -0
  14. package/dist/agent-approval-coordinator.types.d.ts.map +1 -0
  15. package/dist/agent-approval-coordinator.types.js +2 -0
  16. package/dist/agent-approval-coordinator.types.js.map +1 -0
  17. package/dist/agent-approval-support.d.ts +26 -0
  18. package/dist/agent-approval-support.d.ts.map +1 -0
  19. package/dist/agent-approval-support.js +47 -0
  20. package/dist/agent-approval-support.js.map +1 -0
  21. package/dist/agent-capability-negotiation.d.ts +4 -0
  22. package/dist/agent-capability-negotiation.d.ts.map +1 -1
  23. package/dist/agent-capability-negotiation.js +4 -0
  24. package/dist/agent-capability-negotiation.js.map +1 -1
  25. package/dist/agent-command-validation.d.ts +22 -0
  26. package/dist/agent-command-validation.d.ts.map +1 -0
  27. package/dist/agent-command-validation.js +35 -0
  28. package/dist/agent-command-validation.js.map +1 -0
  29. package/dist/agent-compatibility.d.ts +14 -0
  30. package/dist/agent-compatibility.d.ts.map +1 -1
  31. package/dist/agent-compatibility.js +18 -0
  32. package/dist/agent-compatibility.js.map +1 -1
  33. package/dist/agent-content-sink.d.ts +68 -7
  34. package/dist/agent-content-sink.d.ts.map +1 -1
  35. package/dist/agent-content-sink.js +136 -123
  36. package/dist/agent-content-sink.js.map +1 -1
  37. package/dist/agent-content-sink.types.d.ts +10 -0
  38. package/dist/agent-content-sink.types.d.ts.map +1 -0
  39. package/dist/agent-content-sink.types.js +2 -0
  40. package/dist/agent-content-sink.types.js.map +1 -0
  41. package/dist/agent-control-admission.d.ts +13 -0
  42. package/dist/agent-control-admission.d.ts.map +1 -0
  43. package/dist/agent-control-admission.js +70 -0
  44. package/dist/agent-control-admission.js.map +1 -0
  45. package/dist/agent-control-application.d.ts +32 -0
  46. package/dist/agent-control-application.d.ts.map +1 -0
  47. package/dist/agent-control-application.js +114 -0
  48. package/dist/agent-control-application.js.map +1 -0
  49. package/dist/agent-control-worker.d.ts +43 -2
  50. package/dist/agent-control-worker.d.ts.map +1 -1
  51. package/dist/agent-control-worker.js +39 -104
  52. package/dist/agent-control-worker.js.map +1 -1
  53. package/dist/agent-control-worker.types.d.ts +4 -0
  54. package/dist/agent-control-worker.types.d.ts.map +1 -0
  55. package/dist/agent-control-worker.types.js +2 -0
  56. package/dist/agent-control-worker.types.js.map +1 -0
  57. package/dist/agent-conversation.d.ts +18 -0
  58. package/dist/agent-conversation.d.ts.map +1 -0
  59. package/dist/agent-conversation.js +33 -0
  60. package/dist/agent-conversation.js.map +1 -0
  61. package/dist/agent-follow-up.d.ts +43 -7
  62. package/dist/agent-follow-up.d.ts.map +1 -1
  63. package/dist/agent-follow-up.js +59 -25
  64. package/dist/agent-follow-up.js.map +1 -1
  65. package/dist/agent-follow-up.types.d.ts +10 -0
  66. package/dist/agent-follow-up.types.d.ts.map +1 -0
  67. package/dist/agent-follow-up.types.js +2 -0
  68. package/dist/agent-follow-up.types.js.map +1 -0
  69. package/dist/agent-inspector-projection.d.ts +23 -0
  70. package/dist/agent-inspector-projection.d.ts.map +1 -1
  71. package/dist/agent-inspector-projection.js +39 -0
  72. package/dist/agent-inspector-projection.js.map +1 -1
  73. package/dist/agent-inspector.d.ts +6 -0
  74. package/dist/agent-inspector.d.ts.map +1 -1
  75. package/dist/agent-inspector.js +28 -0
  76. package/dist/agent-inspector.js.map +1 -1
  77. package/dist/agent-journal.d.ts +118 -0
  78. package/dist/agent-journal.d.ts.map +1 -0
  79. package/dist/agent-journal.js +138 -0
  80. package/dist/agent-journal.js.map +1 -0
  81. package/dist/agent-observation.d.ts +32 -0
  82. package/dist/agent-observation.d.ts.map +1 -0
  83. package/dist/agent-observation.js +96 -0
  84. package/dist/agent-observation.js.map +1 -0
  85. package/dist/agent-observation.types.d.ts +16 -0
  86. package/dist/agent-observation.types.d.ts.map +1 -0
  87. package/dist/agent-observation.types.js +2 -0
  88. package/dist/agent-observation.types.js.map +1 -0
  89. package/dist/agent-progress-sink.d.ts +37 -2
  90. package/dist/agent-progress-sink.d.ts.map +1 -1
  91. package/dist/agent-progress-sink.js +81 -46
  92. package/dist/agent-progress-sink.js.map +1 -1
  93. package/dist/agent-progress-sink.types.d.ts +4 -0
  94. package/dist/agent-progress-sink.types.d.ts.map +1 -0
  95. package/dist/agent-progress-sink.types.js +2 -0
  96. package/dist/agent-progress-sink.types.js.map +1 -0
  97. package/dist/agent-protocol-encoding.d.ts +4 -0
  98. package/dist/agent-protocol-encoding.d.ts.map +1 -1
  99. package/dist/agent-protocol-encoding.js +24 -0
  100. package/dist/agent-protocol-encoding.js.map +1 -1
  101. package/dist/agent-protocol-encoding.types.d.ts +6 -0
  102. package/dist/agent-protocol-encoding.types.d.ts.map +1 -0
  103. package/dist/agent-protocol-encoding.types.js +2 -0
  104. package/dist/agent-protocol-encoding.types.js.map +1 -0
  105. package/dist/agent-protocol-frame-state.d.ts +34 -0
  106. package/dist/agent-protocol-frame-state.d.ts.map +1 -1
  107. package/dist/agent-protocol-frame-state.js +51 -0
  108. package/dist/agent-protocol-frame-state.js.map +1 -1
  109. package/dist/agent-protocol-progress.d.ts +7 -5
  110. package/dist/agent-protocol-progress.d.ts.map +1 -1
  111. package/dist/agent-protocol-progress.js +6 -0
  112. package/dist/agent-protocol-progress.js.map +1 -1
  113. package/dist/agent-protocol-progress.types.d.ts +6 -0
  114. package/dist/agent-protocol-progress.types.d.ts.map +1 -0
  115. package/dist/agent-protocol-progress.types.js +2 -0
  116. package/dist/agent-protocol-progress.types.js.map +1 -0
  117. package/dist/agent-protocol-stream.d.ts +13 -50
  118. package/dist/agent-protocol-stream.d.ts.map +1 -1
  119. package/dist/agent-protocol-stream.js +22 -0
  120. package/dist/agent-protocol-stream.js.map +1 -1
  121. package/dist/agent-protocol-stream.types.d.ts +53 -0
  122. package/dist/agent-protocol-stream.types.d.ts.map +1 -0
  123. package/dist/agent-protocol-stream.types.js +2 -0
  124. package/dist/agent-protocol-stream.types.js.map +1 -0
  125. package/dist/agent-protocol-support.d.ts +52 -4
  126. package/dist/agent-protocol-support.d.ts.map +1 -1
  127. package/dist/agent-protocol-support.js +58 -0
  128. package/dist/agent-protocol-support.js.map +1 -1
  129. package/dist/agent-protocol-support.types.d.ts +6 -0
  130. package/dist/agent-protocol-support.types.d.ts.map +1 -0
  131. package/dist/agent-protocol-support.types.js +2 -0
  132. package/dist/agent-protocol-support.types.js.map +1 -0
  133. package/dist/agent-protocol-tool.d.ts +17 -9
  134. package/dist/agent-protocol-tool.d.ts.map +1 -1
  135. package/dist/agent-protocol-tool.js +15 -0
  136. package/dist/agent-protocol-tool.js.map +1 -1
  137. package/dist/agent-protocol-tool.types.d.ts +11 -0
  138. package/dist/agent-protocol-tool.types.d.ts.map +1 -0
  139. package/dist/agent-protocol-tool.types.js +2 -0
  140. package/dist/agent-protocol-tool.types.js.map +1 -0
  141. package/dist/agent-protocol.d.ts +5 -0
  142. package/dist/agent-protocol.d.ts.map +1 -1
  143. package/dist/agent-protocol.js +30 -0
  144. package/dist/agent-protocol.js.map +1 -1
  145. package/dist/agent-reads.d.ts +64 -0
  146. package/dist/agent-reads.d.ts.map +1 -0
  147. package/dist/agent-reads.js +119 -0
  148. package/dist/agent-reads.js.map +1 -0
  149. package/dist/agent-request-validation.d.ts +50 -0
  150. package/dist/agent-request-validation.d.ts.map +1 -0
  151. package/dist/agent-request-validation.js +87 -0
  152. package/dist/agent-request-validation.js.map +1 -0
  153. package/dist/agent-rpc-errors.d.ts +14 -0
  154. package/dist/agent-rpc-errors.d.ts.map +1 -1
  155. package/dist/agent-rpc-errors.js +22 -0
  156. package/dist/agent-rpc-errors.js.map +1 -1
  157. package/dist/agent-rpc-read.d.ts +26 -16
  158. package/dist/agent-rpc-read.d.ts.map +1 -1
  159. package/dist/agent-rpc-read.js +50 -122
  160. package/dist/agent-rpc-read.js.map +1 -1
  161. package/dist/agent-rpc-resume.d.ts +49 -2
  162. package/dist/agent-rpc-resume.d.ts.map +1 -1
  163. package/dist/agent-rpc-resume.js +57 -23
  164. package/dist/agent-rpc-resume.js.map +1 -1
  165. package/dist/agent-rpc-resume.types.d.ts +4 -0
  166. package/dist/agent-rpc-resume.types.d.ts.map +1 -0
  167. package/dist/agent-rpc-resume.types.js +2 -0
  168. package/dist/agent-rpc-resume.types.js.map +1 -0
  169. package/dist/agent-rpc-support.d.ts +60 -23
  170. package/dist/agent-rpc-support.d.ts.map +1 -1
  171. package/dist/agent-rpc-support.js +75 -65
  172. package/dist/agent-rpc-support.js.map +1 -1
  173. package/dist/agent-rpc-support.schemas.d.ts +4 -0
  174. package/dist/agent-rpc-support.schemas.d.ts.map +1 -0
  175. package/dist/agent-rpc-support.schemas.js +4 -0
  176. package/dist/agent-rpc-support.schemas.js.map +1 -0
  177. package/dist/agent-rpc-support.types.d.ts +18 -0
  178. package/dist/agent-rpc-support.types.d.ts.map +1 -0
  179. package/dist/agent-rpc-support.types.js +2 -0
  180. package/dist/agent-rpc-support.types.js.map +1 -0
  181. package/dist/agent-rpc-worker.d.ts +43 -2
  182. package/dist/agent-rpc-worker.d.ts.map +1 -1
  183. package/dist/agent-rpc-worker.js +120 -117
  184. package/dist/agent-rpc-worker.js.map +1 -1
  185. package/dist/agent-rpc-worker.types.d.ts +4 -0
  186. package/dist/agent-rpc-worker.types.d.ts.map +1 -0
  187. package/dist/agent-rpc-worker.types.js +2 -0
  188. package/dist/agent-rpc-worker.types.js.map +1 -0
  189. package/dist/agent-rpc-write.d.ts +25 -0
  190. package/dist/agent-rpc-write.d.ts.map +1 -1
  191. package/dist/agent-rpc-write.js +34 -105
  192. package/dist/agent-rpc-write.js.map +1 -1
  193. package/dist/agent-rpc.d.ts +4 -0
  194. package/dist/agent-rpc.d.ts.map +1 -1
  195. package/dist/agent-rpc.js +10 -0
  196. package/dist/agent-rpc.js.map +1 -1
  197. package/dist/agent-run-admission.d.ts +13 -0
  198. package/dist/agent-run-admission.d.ts.map +1 -0
  199. package/dist/agent-run-admission.js +60 -0
  200. package/dist/agent-run-admission.js.map +1 -0
  201. package/dist/agent-run-journal.d.ts +41 -3
  202. package/dist/agent-run-journal.d.ts.map +1 -1
  203. package/dist/agent-run-journal.js +63 -81
  204. package/dist/agent-run-journal.js.map +1 -1
  205. package/dist/agent-run-journal.types.d.ts +4 -0
  206. package/dist/agent-run-journal.types.d.ts.map +1 -0
  207. package/dist/agent-run-journal.types.js +2 -0
  208. package/dist/agent-run-journal.types.js.map +1 -0
  209. package/dist/agent-run-supervision.d.ts +20 -0
  210. package/dist/agent-run-supervision.d.ts.map +1 -0
  211. package/dist/agent-run-supervision.js +42 -0
  212. package/dist/agent-run-supervision.js.map +1 -0
  213. package/dist/agent-run-supervision.types.d.ts +7 -0
  214. package/dist/agent-run-supervision.types.d.ts.map +1 -0
  215. package/dist/agent-run-supervision.types.js +2 -0
  216. package/dist/agent-run-supervision.types.js.map +1 -0
  217. package/dist/agent-run-tasks.d.ts +35 -1
  218. package/dist/agent-run-tasks.d.ts.map +1 -1
  219. package/dist/agent-run-tasks.js +72 -4
  220. package/dist/agent-run-tasks.js.map +1 -1
  221. package/dist/agent-run-tasks.types.d.ts +5 -0
  222. package/dist/agent-run-tasks.types.d.ts.map +1 -0
  223. package/dist/agent-run-tasks.types.js +2 -0
  224. package/dist/agent-run-tasks.types.js.map +1 -0
  225. package/dist/agent-runtime.d.ts +1 -16
  226. package/dist/agent-runtime.d.ts.map +1 -1
  227. package/dist/agent-runtime.types.d.ts +18 -0
  228. package/dist/agent-runtime.types.d.ts.map +1 -0
  229. package/dist/agent-runtime.types.js +2 -0
  230. package/dist/agent-runtime.types.js.map +1 -0
  231. package/dist/agent-tool-content.d.ts +17 -0
  232. package/dist/agent-tool-content.d.ts.map +1 -0
  233. package/dist/agent-tool-content.js +61 -0
  234. package/dist/agent-tool-content.js.map +1 -0
  235. package/dist/api-docs.d.ts +8 -13
  236. package/dist/api-docs.d.ts.map +1 -1
  237. package/dist/api-docs.js +38 -2
  238. package/dist/api-docs.js.map +1 -1
  239. package/dist/api-docs.types.d.ts +14 -0
  240. package/dist/api-docs.types.d.ts.map +1 -0
  241. package/dist/api-docs.types.js +2 -0
  242. package/dist/api-docs.types.js.map +1 -0
  243. package/dist/auth.d.ts +26 -15
  244. package/dist/auth.d.ts.map +1 -1
  245. package/dist/auth.js +46 -4
  246. package/dist/auth.js.map +1 -1
  247. package/dist/auth.types.d.ts +20 -0
  248. package/dist/auth.types.d.ts.map +1 -0
  249. package/dist/auth.types.js +2 -0
  250. package/dist/auth.types.js.map +1 -0
  251. package/dist/client-authorization.d.ts +22 -0
  252. package/dist/client-authorization.d.ts.map +1 -1
  253. package/dist/client-authorization.js +26 -12
  254. package/dist/client-authorization.js.map +1 -1
  255. package/dist/client-contract.d.ts +8 -4
  256. package/dist/client-contract.d.ts.map +1 -1
  257. package/dist/client-contract.js +6 -0
  258. package/dist/client-contract.js.map +1 -1
  259. package/dist/client-contract.types.d.ts +8 -0
  260. package/dist/client-contract.types.d.ts.map +1 -0
  261. package/dist/client-contract.types.js +2 -0
  262. package/dist/client-contract.types.js.map +1 -0
  263. package/dist/client-identity.d.ts +39 -15
  264. package/dist/client-identity.d.ts.map +1 -1
  265. package/dist/client-identity.js +50 -4
  266. package/dist/client-identity.js.map +1 -1
  267. package/dist/client-identity.types.d.ts +19 -0
  268. package/dist/client-identity.types.d.ts.map +1 -0
  269. package/dist/client-identity.types.js +2 -0
  270. package/dist/client-identity.types.js.map +1 -0
  271. package/dist/control-plane.d.ts +4 -0
  272. package/dist/control-plane.d.ts.map +1 -1
  273. package/dist/control-plane.js +4 -0
  274. package/dist/control-plane.js.map +1 -1
  275. package/dist/create-app.d.ts +11 -20
  276. package/dist/create-app.d.ts.map +1 -1
  277. package/dist/create-app.js +25 -8
  278. package/dist/create-app.js.map +1 -1
  279. package/dist/create-app.types.d.ts +21 -0
  280. package/dist/create-app.types.d.ts.map +1 -0
  281. package/dist/create-app.types.js +2 -0
  282. package/dist/create-app.types.js.map +1 -0
  283. package/dist/http-effect.d.ts +43 -0
  284. package/dist/http-effect.d.ts.map +1 -0
  285. package/dist/http-effect.js +67 -0
  286. package/dist/http-effect.js.map +1 -0
  287. package/dist/http-invocation.d.ts +22 -0
  288. package/dist/http-invocation.d.ts.map +1 -0
  289. package/dist/http-invocation.js +44 -0
  290. package/dist/http-invocation.js.map +1 -0
  291. package/dist/http-logging.d.ts +23 -0
  292. package/dist/http-logging.d.ts.map +1 -0
  293. package/dist/http-logging.js +69 -0
  294. package/dist/http-logging.js.map +1 -0
  295. package/dist/http-logging.types.d.ts +8 -0
  296. package/dist/http-logging.types.d.ts.map +1 -0
  297. package/dist/http-logging.types.js +2 -0
  298. package/dist/http-logging.types.js.map +1 -0
  299. package/dist/http-response.d.ts +22 -0
  300. package/dist/http-response.d.ts.map +1 -1
  301. package/dist/http-response.js +55 -8
  302. package/dist/http-response.js.map +1 -1
  303. package/dist/http-span-record.d.ts +5 -0
  304. package/dist/http-span-record.d.ts.map +1 -1
  305. package/dist/http-span-record.js +5 -0
  306. package/dist/http-span-record.js.map +1 -1
  307. package/dist/http-span.d.ts +18 -0
  308. package/dist/http-span.d.ts.map +1 -1
  309. package/dist/http-span.js +37 -3
  310. package/dist/http-span.js.map +1 -1
  311. package/dist/http-stream-observation.d.ts +13 -0
  312. package/dist/http-stream-observation.d.ts.map +1 -0
  313. package/dist/http-stream-observation.js +15 -0
  314. package/dist/http-stream-observation.js.map +1 -0
  315. package/dist/http-validation.d.ts +12 -0
  316. package/dist/http-validation.d.ts.map +1 -0
  317. package/dist/http-validation.js +17 -0
  318. package/dist/http-validation.js.map +1 -0
  319. package/dist/internal-endpoint-paths.d.ts +3 -0
  320. package/dist/internal-endpoint-paths.d.ts.map +1 -1
  321. package/dist/internal-endpoint-paths.js +3 -0
  322. package/dist/internal-endpoint-paths.js.map +1 -1
  323. package/dist/internal-endpoint-query.d.ts +18 -0
  324. package/dist/internal-endpoint-query.d.ts.map +1 -0
  325. package/dist/internal-endpoint-query.js +88 -0
  326. package/dist/internal-endpoint-query.js.map +1 -0
  327. package/dist/internal-endpoints-utils.d.ts +39 -4
  328. package/dist/internal-endpoints-utils.d.ts.map +1 -1
  329. package/dist/internal-endpoints-utils.js +48 -52
  330. package/dist/internal-endpoints-utils.js.map +1 -1
  331. package/dist/internal-endpoints.d.ts +11 -46
  332. package/dist/internal-endpoints.d.ts.map +1 -1
  333. package/dist/internal-endpoints.js +25 -2
  334. package/dist/internal-endpoints.js.map +1 -1
  335. package/dist/internal-endpoints.types.d.ts +57 -0
  336. package/dist/internal-endpoints.types.d.ts.map +1 -0
  337. package/dist/internal-endpoints.types.js +2 -0
  338. package/dist/internal-endpoints.types.js.map +1 -0
  339. package/dist/jobs/authorization.d.ts +22 -8
  340. package/dist/jobs/authorization.d.ts.map +1 -1
  341. package/dist/jobs/authorization.js +29 -16
  342. package/dist/jobs/authorization.js.map +1 -1
  343. package/dist/jobs/authorization.types.d.ts +9 -0
  344. package/dist/jobs/authorization.types.d.ts.map +1 -0
  345. package/dist/jobs/authorization.types.js +2 -0
  346. package/dist/jobs/authorization.types.js.map +1 -0
  347. package/dist/jobs/common.d.ts +54 -3
  348. package/dist/jobs/common.d.ts.map +1 -1
  349. package/dist/jobs/common.js +63 -23
  350. package/dist/jobs/common.js.map +1 -1
  351. package/dist/jobs/common.schemas.d.ts +6 -0
  352. package/dist/jobs/common.schemas.d.ts.map +1 -0
  353. package/dist/jobs/common.schemas.js +41 -0
  354. package/dist/jobs/common.schemas.js.map +1 -0
  355. package/dist/jobs/cursors.d.ts +38 -0
  356. package/dist/jobs/cursors.d.ts.map +1 -1
  357. package/dist/jobs/cursors.js +50 -0
  358. package/dist/jobs/cursors.js.map +1 -1
  359. package/dist/jobs/handlers-mutations-cancel.d.ts +15 -0
  360. package/dist/jobs/handlers-mutations-cancel.d.ts.map +1 -0
  361. package/dist/jobs/handlers-mutations-cancel.js +49 -0
  362. package/dist/jobs/handlers-mutations-cancel.js.map +1 -0
  363. package/dist/jobs/handlers-mutations-retry.d.ts +14 -0
  364. package/dist/jobs/handlers-mutations-retry.d.ts.map +1 -0
  365. package/dist/jobs/handlers-mutations-retry.js +37 -0
  366. package/dist/jobs/handlers-mutations-retry.js.map +1 -0
  367. package/dist/jobs/handlers-mutations-trigger.d.ts +14 -0
  368. package/dist/jobs/handlers-mutations-trigger.d.ts.map +1 -0
  369. package/dist/jobs/handlers-mutations-trigger.js +33 -0
  370. package/dist/jobs/handlers-mutations-trigger.js.map +1 -0
  371. package/dist/jobs/handlers-mutations.d.ts +33 -0
  372. package/dist/jobs/handlers-mutations.d.ts.map +1 -1
  373. package/dist/jobs/handlers-mutations.js +53 -69
  374. package/dist/jobs/handlers-mutations.js.map +1 -1
  375. package/dist/jobs/handlers-mutations.types.d.ts +10 -0
  376. package/dist/jobs/handlers-mutations.types.d.ts.map +1 -0
  377. package/dist/jobs/handlers-mutations.types.js +2 -0
  378. package/dist/jobs/handlers-mutations.types.js.map +1 -0
  379. package/dist/jobs/handlers-read-get.d.ts +14 -0
  380. package/dist/jobs/handlers-read-get.d.ts.map +1 -0
  381. package/dist/jobs/handlers-read-get.js +33 -0
  382. package/dist/jobs/handlers-read-get.js.map +1 -0
  383. package/dist/jobs/handlers-read-list.d.ts +14 -0
  384. package/dist/jobs/handlers-read-list.d.ts.map +1 -0
  385. package/dist/jobs/handlers-read-list.js +42 -0
  386. package/dist/jobs/handlers-read-list.js.map +1 -0
  387. package/dist/jobs/handlers-read-watch.d.ts +15 -0
  388. package/dist/jobs/handlers-read-watch.d.ts.map +1 -0
  389. package/dist/jobs/handlers-read-watch.js +39 -0
  390. package/dist/jobs/handlers-read-watch.js.map +1 -0
  391. package/dist/jobs/handlers-read.d.ts +33 -0
  392. package/dist/jobs/handlers-read.d.ts.map +1 -1
  393. package/dist/jobs/handlers-read.js +53 -66
  394. package/dist/jobs/handlers-read.js.map +1 -1
  395. package/dist/jobs/handlers-read.types.d.ts +10 -0
  396. package/dist/jobs/handlers-read.types.d.ts.map +1 -0
  397. package/dist/jobs/handlers-read.types.js +2 -0
  398. package/dist/jobs/handlers-read.types.js.map +1 -0
  399. package/dist/jobs/handlers-stream.d.ts +28 -0
  400. package/dist/jobs/handlers-stream.d.ts.map +1 -1
  401. package/dist/jobs/handlers-stream.js +77 -31
  402. package/dist/jobs/handlers-stream.js.map +1 -1
  403. package/dist/jobs/handlers-validation.d.ts +16 -0
  404. package/dist/jobs/handlers-validation.d.ts.map +1 -1
  405. package/dist/jobs/handlers-validation.js +21 -0
  406. package/dist/jobs/handlers-validation.js.map +1 -1
  407. package/dist/jobs/projection-stream.d.ts +11 -0
  408. package/dist/jobs/projection-stream.d.ts.map +1 -1
  409. package/dist/jobs/projection-stream.js +37 -0
  410. package/dist/jobs/projection-stream.js.map +1 -1
  411. package/dist/jobs/projection-validation.d.ts +12 -0
  412. package/dist/jobs/projection-validation.d.ts.map +1 -1
  413. package/dist/jobs/projection-validation.js +44 -0
  414. package/dist/jobs/projection-validation.js.map +1 -1
  415. package/dist/jobs/projection.d.ts +29 -0
  416. package/dist/jobs/projection.d.ts.map +1 -1
  417. package/dist/jobs/projection.js +34 -1
  418. package/dist/jobs/projection.js.map +1 -1
  419. package/dist/jobs/rpc.d.ts +4 -0
  420. package/dist/jobs/rpc.d.ts.map +1 -1
  421. package/dist/jobs/rpc.js +51 -1
  422. package/dist/jobs/rpc.js.map +1 -1
  423. package/dist/jobs/runtime.types.d.ts +49 -0
  424. package/dist/jobs/runtime.types.d.ts.map +1 -0
  425. package/dist/jobs/runtime.types.js +2 -0
  426. package/dist/jobs/runtime.types.js.map +1 -0
  427. package/dist/jobs/support-lookups.d.ts +20 -0
  428. package/dist/jobs/support-lookups.d.ts.map +1 -0
  429. package/dist/jobs/support-lookups.js +34 -0
  430. package/dist/jobs/support-lookups.js.map +1 -0
  431. package/dist/jobs/support.d.ts +56 -1
  432. package/dist/jobs/support.d.ts.map +1 -1
  433. package/dist/jobs/support.js +61 -20
  434. package/dist/jobs/support.js.map +1 -1
  435. package/dist/jobs/types.d.ts +17 -42
  436. package/dist/jobs/types.d.ts.map +1 -1
  437. package/dist/jobs/types.js +20 -0
  438. package/dist/jobs/types.js.map +1 -1
  439. package/dist/manifest-validation.d.ts +12 -1
  440. package/dist/manifest-validation.d.ts.map +1 -1
  441. package/dist/manifest-validation.js +17 -0
  442. package/dist/manifest-validation.js.map +1 -1
  443. package/dist/manifest-validation.types.d.ts +3 -0
  444. package/dist/manifest-validation.types.d.ts.map +1 -0
  445. package/dist/manifest-validation.types.js +2 -0
  446. package/dist/manifest-validation.types.js.map +1 -0
  447. package/dist/materialize-routes-utils.d.ts +41 -1
  448. package/dist/materialize-routes-utils.d.ts.map +1 -1
  449. package/dist/materialize-routes-utils.js +80 -22
  450. package/dist/materialize-routes-utils.js.map +1 -1
  451. package/dist/materialize-routes-validation.d.ts +4 -0
  452. package/dist/materialize-routes-validation.d.ts.map +1 -1
  453. package/dist/materialize-routes-validation.js +5 -1
  454. package/dist/materialize-routes-validation.js.map +1 -1
  455. package/dist/materialize-routes.d.ts +9 -100
  456. package/dist/materialize-routes.d.ts.map +1 -1
  457. package/dist/materialize-routes.js +24 -9
  458. package/dist/materialize-routes.js.map +1 -1
  459. package/dist/materialize-routes.types.d.ts +110 -0
  460. package/dist/materialize-routes.types.d.ts.map +1 -0
  461. package/dist/materialize-routes.types.js +2 -0
  462. package/dist/materialize-routes.types.js.map +1 -0
  463. package/dist/mcp.d.ts +39 -4
  464. package/dist/mcp.d.ts.map +1 -1
  465. package/dist/mcp.js +56 -10
  466. package/dist/mcp.js.map +1 -1
  467. package/dist/mcp.types.d.ts +15 -0
  468. package/dist/mcp.types.d.ts.map +1 -0
  469. package/dist/mcp.types.js +2 -0
  470. package/dist/mcp.types.js.map +1 -0
  471. package/dist/middleware-limits.d.ts +4 -0
  472. package/dist/middleware-limits.d.ts.map +1 -1
  473. package/dist/middleware-limits.js +16 -7
  474. package/dist/middleware-limits.js.map +1 -1
  475. package/dist/middleware-utils.d.ts +62 -53
  476. package/dist/middleware-utils.d.ts.map +1 -1
  477. package/dist/middleware-utils.js +72 -1
  478. package/dist/middleware-utils.js.map +1 -1
  479. package/dist/middleware-utils.types.d.ts +59 -0
  480. package/dist/middleware-utils.types.d.ts.map +1 -0
  481. package/dist/middleware-utils.types.js +2 -0
  482. package/dist/middleware-utils.types.js.map +1 -0
  483. package/dist/middleware.d.ts +19 -7
  484. package/dist/middleware.d.ts.map +1 -1
  485. package/dist/middleware.js +28 -6
  486. package/dist/middleware.js.map +1 -1
  487. package/dist/middleware.types.d.ts +10 -0
  488. package/dist/middleware.types.d.ts.map +1 -0
  489. package/dist/middleware.types.js +2 -0
  490. package/dist/middleware.types.js.map +1 -0
  491. package/dist/native-stream.d.ts +18 -1
  492. package/dist/native-stream.d.ts.map +1 -1
  493. package/dist/native-stream.js +55 -4
  494. package/dist/native-stream.js.map +1 -1
  495. package/dist/native-stream.schemas.d.ts +6 -0
  496. package/dist/native-stream.schemas.d.ts.map +1 -0
  497. package/dist/native-stream.schemas.js +6 -0
  498. package/dist/native-stream.schemas.js.map +1 -0
  499. package/dist/native-stream.types.d.ts +4 -0
  500. package/dist/native-stream.types.d.ts.map +1 -0
  501. package/dist/native-stream.types.js +2 -0
  502. package/dist/native-stream.types.js.map +1 -0
  503. package/dist/rate-limit-store.d.ts +37 -11
  504. package/dist/rate-limit-store.d.ts.map +1 -1
  505. package/dist/rate-limit-store.js +108 -43
  506. package/dist/rate-limit-store.js.map +1 -1
  507. package/dist/rate-limit-store.types.d.ts +18 -0
  508. package/dist/rate-limit-store.types.d.ts.map +1 -0
  509. package/dist/rate-limit-store.types.js +2 -0
  510. package/dist/rate-limit-store.types.js.map +1 -0
  511. package/dist/rate-limit-telemetry.d.ts +9 -0
  512. package/dist/rate-limit-telemetry.d.ts.map +1 -1
  513. package/dist/rate-limit-telemetry.js +9 -0
  514. package/dist/rate-limit-telemetry.js.map +1 -1
  515. package/dist/rate-limit.d.ts +8 -7
  516. package/dist/rate-limit.d.ts.map +1 -1
  517. package/dist/rate-limit.js +42 -0
  518. package/dist/rate-limit.js.map +1 -1
  519. package/dist/rate-limit.types.d.ts +9 -0
  520. package/dist/rate-limit.types.d.ts.map +1 -0
  521. package/dist/rate-limit.types.js +2 -0
  522. package/dist/rate-limit.types.js.map +1 -0
  523. package/dist/realtime-observation.d.ts +40 -0
  524. package/dist/realtime-observation.d.ts.map +1 -0
  525. package/dist/realtime-observation.js +147 -0
  526. package/dist/realtime-observation.js.map +1 -0
  527. package/dist/realtime-observation.types.d.ts +20 -0
  528. package/dist/realtime-observation.types.d.ts.map +1 -0
  529. package/dist/realtime-observation.types.js +2 -0
  530. package/dist/realtime-observation.types.js.map +1 -0
  531. package/dist/realtime-presence.d.ts +13 -0
  532. package/dist/realtime-presence.d.ts.map +1 -0
  533. package/dist/realtime-presence.js +24 -0
  534. package/dist/realtime-presence.js.map +1 -0
  535. package/dist/realtime-rpc-support.d.ts +15 -8
  536. package/dist/realtime-rpc-support.d.ts.map +1 -1
  537. package/dist/realtime-rpc-support.js +25 -5
  538. package/dist/realtime-rpc-support.js.map +1 -1
  539. package/dist/realtime-rpc-support.types.d.ts +9 -0
  540. package/dist/realtime-rpc-support.types.d.ts.map +1 -0
  541. package/dist/realtime-rpc-support.types.js +2 -0
  542. package/dist/realtime-rpc-support.types.js.map +1 -0
  543. package/dist/realtime-rpc.d.ts +4 -0
  544. package/dist/realtime-rpc.d.ts.map +1 -1
  545. package/dist/realtime-rpc.js +9 -124
  546. package/dist/realtime-rpc.js.map +1 -1
  547. package/dist/realtime-runtime.d.ts +1 -12
  548. package/dist/realtime-runtime.d.ts.map +1 -1
  549. package/dist/realtime-runtime.types.d.ts +14 -0
  550. package/dist/realtime-runtime.types.d.ts.map +1 -0
  551. package/dist/realtime-runtime.types.js +2 -0
  552. package/dist/realtime-runtime.types.js.map +1 -0
  553. package/dist/request-body-service.d.ts +23 -0
  554. package/dist/request-body-service.d.ts.map +1 -0
  555. package/dist/request-body-service.js +80 -0
  556. package/dist/request-body-service.js.map +1 -0
  557. package/dist/request-body-service.types.d.ts +7 -0
  558. package/dist/request-body-service.types.d.ts.map +1 -0
  559. package/dist/request-body-service.types.js +2 -0
  560. package/dist/request-body-service.types.js.map +1 -0
  561. package/dist/request-context.d.ts +5 -0
  562. package/dist/request-context.d.ts.map +1 -1
  563. package/dist/request-context.js +34 -0
  564. package/dist/request-context.js.map +1 -1
  565. package/dist/request-inference.d.ts +11 -0
  566. package/dist/request-inference.d.ts.map +1 -1
  567. package/dist/request-inference.js +33 -0
  568. package/dist/request-inference.js.map +1 -1
  569. package/dist/request-mapping-body.d.ts +10 -23
  570. package/dist/request-mapping-body.d.ts.map +1 -1
  571. package/dist/request-mapping-body.js +36 -30
  572. package/dist/request-mapping-body.js.map +1 -1
  573. package/dist/request-mapping-body.schemas.d.ts +9 -0
  574. package/dist/request-mapping-body.schemas.d.ts.map +1 -0
  575. package/dist/request-mapping-body.schemas.js +11 -0
  576. package/dist/request-mapping-body.schemas.js.map +1 -0
  577. package/dist/request-mapping-body.types.d.ts +31 -0
  578. package/dist/request-mapping-body.types.d.ts.map +1 -0
  579. package/dist/request-mapping-body.types.js +2 -0
  580. package/dist/request-mapping-body.types.js.map +1 -0
  581. package/dist/request-mapping-fields.d.ts +35 -0
  582. package/dist/request-mapping-fields.d.ts.map +1 -1
  583. package/dist/request-mapping-fields.js +48 -0
  584. package/dist/request-mapping-fields.js.map +1 -1
  585. package/dist/request-mapping-object.d.ts +22 -12
  586. package/dist/request-mapping-object.d.ts.map +1 -1
  587. package/dist/request-mapping-object.js +34 -4
  588. package/dist/request-mapping-object.js.map +1 -1
  589. package/dist/request-mapping-object.types.d.ts +19 -0
  590. package/dist/request-mapping-object.types.d.ts.map +1 -0
  591. package/dist/request-mapping-object.types.js +2 -0
  592. package/dist/request-mapping-object.types.js.map +1 -0
  593. package/dist/request-mapping-sources.d.ts +28 -1
  594. package/dist/request-mapping-sources.d.ts.map +1 -1
  595. package/dist/request-mapping-sources.js +27 -0
  596. package/dist/request-mapping-sources.js.map +1 -1
  597. package/dist/request-mapping-transform.d.ts +8 -0
  598. package/dist/request-mapping-transform.d.ts.map +1 -1
  599. package/dist/request-mapping-transform.js +20 -0
  600. package/dist/request-mapping-transform.js.map +1 -1
  601. package/dist/request-mapping.d.ts +31 -29
  602. package/dist/request-mapping.d.ts.map +1 -1
  603. package/dist/request-mapping.js +55 -15
  604. package/dist/request-mapping.js.map +1 -1
  605. package/dist/request-mapping.types.d.ts +38 -0
  606. package/dist/request-mapping.types.d.ts.map +1 -0
  607. package/dist/request-mapping.types.js +2 -0
  608. package/dist/request-mapping.types.js.map +1 -0
  609. package/dist/request-record-middleware.d.ts +14 -1
  610. package/dist/request-record-middleware.d.ts.map +1 -1
  611. package/dist/request-record-middleware.js +22 -0
  612. package/dist/request-record-middleware.js.map +1 -1
  613. package/dist/request-record-utils.d.ts +25 -2
  614. package/dist/request-record-utils.d.ts.map +1 -1
  615. package/dist/request-record-utils.js +27 -2
  616. package/dist/request-record-utils.js.map +1 -1
  617. package/dist/response-mapping-provider.d.ts +9 -0
  618. package/dist/response-mapping-provider.d.ts.map +1 -0
  619. package/dist/response-mapping-provider.js +15 -0
  620. package/dist/response-mapping-provider.js.map +1 -0
  621. package/dist/response-mapping-utils.d.ts +46 -2
  622. package/dist/response-mapping-utils.d.ts.map +1 -1
  623. package/dist/response-mapping-utils.js +56 -0
  624. package/dist/response-mapping-utils.js.map +1 -1
  625. package/dist/response-mapping-utils.types.d.ts +5 -0
  626. package/dist/response-mapping-utils.types.d.ts.map +1 -0
  627. package/dist/response-mapping-utils.types.js +2 -0
  628. package/dist/response-mapping-utils.types.js.map +1 -0
  629. package/dist/response-mapping-validation.d.ts +13 -0
  630. package/dist/response-mapping-validation.d.ts.map +1 -0
  631. package/dist/response-mapping-validation.js +20 -0
  632. package/dist/response-mapping-validation.js.map +1 -0
  633. package/dist/response-mapping.d.ts +57 -8
  634. package/dist/response-mapping.d.ts.map +1 -1
  635. package/dist/response-mapping.js +114 -72
  636. package/dist/response-mapping.js.map +1 -1
  637. package/dist/response-mapping.types.d.ts +11 -0
  638. package/dist/response-mapping.types.d.ts.map +1 -0
  639. package/dist/response-mapping.types.js +2 -0
  640. package/dist/response-mapping.types.js.map +1 -0
  641. package/dist/route-middleware.d.ts +5 -0
  642. package/dist/route-middleware.d.ts.map +1 -1
  643. package/dist/route-middleware.js +29 -5
  644. package/dist/route-middleware.js.map +1 -1
  645. package/dist/rpc-identity.d.ts +13 -6
  646. package/dist/rpc-identity.d.ts.map +1 -1
  647. package/dist/rpc-identity.js +11 -0
  648. package/dist/rpc-identity.js.map +1 -1
  649. package/dist/rpc-identity.types.d.ts +9 -0
  650. package/dist/rpc-identity.types.d.ts.map +1 -0
  651. package/dist/rpc-identity.types.js +2 -0
  652. package/dist/rpc-identity.types.js.map +1 -0
  653. package/dist/rpc-middleware-trace.d.ts +14 -0
  654. package/dist/rpc-middleware-trace.d.ts.map +1 -1
  655. package/dist/rpc-middleware-trace.js +20 -4
  656. package/dist/rpc-middleware-trace.js.map +1 -1
  657. package/dist/rpc-response.d.ts +12 -0
  658. package/dist/rpc-response.d.ts.map +1 -1
  659. package/dist/rpc-response.js +12 -0
  660. package/dist/rpc-response.js.map +1 -1
  661. package/dist/rpc-route-types.d.ts +26 -1
  662. package/dist/rpc-route-types.d.ts.map +1 -1
  663. package/dist/rpc-route-types.js +37 -0
  664. package/dist/rpc-route-types.js.map +1 -1
  665. package/dist/rpc-websocket.d.ts +6 -1
  666. package/dist/rpc-websocket.d.ts.map +1 -1
  667. package/dist/rpc-websocket.js +20 -1
  668. package/dist/rpc-websocket.js.map +1 -1
  669. package/dist/rpc.d.ts +11 -3
  670. package/dist/rpc.d.ts.map +1 -1
  671. package/dist/rpc.js +43 -6
  672. package/dist/rpc.js.map +1 -1
  673. package/dist/rpc.types.d.ts +5 -0
  674. package/dist/rpc.types.d.ts.map +1 -0
  675. package/dist/rpc.types.js +2 -0
  676. package/dist/rpc.types.js.map +1 -0
  677. package/dist/static-file-service.d.ts +22 -0
  678. package/dist/static-file-service.d.ts.map +1 -0
  679. package/dist/static-file-service.js +43 -0
  680. package/dist/static-file-service.js.map +1 -0
  681. package/dist/static-files.d.ts +7 -3
  682. package/dist/static-files.d.ts.map +1 -1
  683. package/dist/static-files.js +32 -19
  684. package/dist/static-files.js.map +1 -1
  685. package/dist/static-files.types.d.ts +5 -0
  686. package/dist/static-files.types.d.ts.map +1 -0
  687. package/dist/static-files.types.js +2 -0
  688. package/dist/static-files.types.js.map +1 -0
  689. package/dist/transport-security-errors.d.ts +10 -0
  690. package/dist/transport-security-errors.d.ts.map +1 -0
  691. package/dist/transport-security-errors.js +14 -0
  692. package/dist/transport-security-errors.js.map +1 -0
  693. package/dist/transport-security.d.ts +49 -13
  694. package/dist/transport-security.d.ts.map +1 -1
  695. package/dist/transport-security.js +86 -15
  696. package/dist/transport-security.js.map +1 -1
  697. package/dist/transport-security.types.d.ts +11 -0
  698. package/dist/transport-security.types.d.ts.map +1 -0
  699. package/dist/transport-security.types.js +2 -0
  700. package/dist/transport-security.types.js.map +1 -0
  701. package/package.json +19 -16
@@ -1,134 +1,19 @@
1
- import { createHash } from "node:crypto";
2
1
  import { os } from "@orpc/server";
3
- import { REALTIME_RUNTIME_LIMITS } from "@relkit/contracts";
4
- import { assertExpectedIdentity } from "./rpc-identity.js";
5
- import { channelContext, validatePublicValue, } from "./realtime-rpc-support.js";
2
+ import { observeRealtime, readRealtimePresence } from "./realtime-observation.js";
3
+ /** Materializes channel procedures over the scoped realtime service.
4
+ * @param options - Channel providers and client identity configuration.
5
+ * @returns The existing subscribe and presence procedures, or none when disabled.
6
+ */
6
7
  export function realtimeProcedures(options) {
7
8
  if (options.realtime === undefined || options.clientIdentity === undefined)
8
9
  return {};
9
10
  return {
10
11
  "relkit.realtime.subscribe": os
11
12
  .$context()
12
- .handler(({ input, context, signal }) => observe(input, context, options, signal)),
13
- "relkit.realtime.presence": os.$context().handler(async ({ input, context }) => {
14
- await assertExpectedIdentity(context, options.clientIdentity);
15
- const resolved = await channelContext(input, context, options);
16
- if (resolved.descriptor.presence === undefined)
17
- throw new Error("Presence is not enabled.");
18
- return resolved.provider.readPresence({
19
- ...resolved.scope,
20
- maxMembers: memberLimit(resolved.descriptor.presence),
21
- });
22
- }),
13
+ .handler(({ input, context, signal }) => observeRealtime(input, context, options, signal)),
14
+ "relkit.realtime.presence": os
15
+ .$context()
16
+ .handler(({ input, context }) => readRealtimePresence(input, context, options)),
23
17
  };
24
18
  }
25
- async function* observe(input, context, options, signal) {
26
- await assertExpectedIdentity(context, options.clientIdentity, input.expectedIdentity);
27
- let resolved = await channelContext(input, context, options);
28
- const presenceOwner = resolved;
29
- let after = resolved.descriptor.replay === undefined ? undefined : input.after;
30
- let presenceRenewedAt = 0;
31
- if (input.after !== undefined && resolved.descriptor.replay === undefined) {
32
- const fence = await resolved.provider.readAfter({
33
- ...resolved.scope,
34
- limit: 1,
35
- maxEncodedBytes: 64 * 1024,
36
- });
37
- yield { kind: "gap", reason: "replay-disabled", checkpoint: fence.checkpoint };
38
- after = fence.checkpoint;
39
- }
40
- const controller = signal ?? new AbortController().signal;
41
- const leaseId = crypto.randomUUID();
42
- try {
43
- if (resolved.descriptor.presence !== undefined) {
44
- yield { kind: "presence", presence: await acquirePresence(resolved, leaseId) };
45
- presenceRenewedAt = Date.now();
46
- }
47
- while (!controller.aborted) {
48
- await assertExpectedIdentity(context, options.clientIdentity, input.expectedIdentity);
49
- resolved = await channelContext(after === undefined
50
- ? { channel: input.channel, params: input.params }
51
- : { ...input, after }, context, options);
52
- const page = await resolved.provider.readAfter({
53
- ...resolved.scope,
54
- ...(after === undefined ? {} : { after }),
55
- limit: 100,
56
- maxEncodedBytes: 1024 * 1024,
57
- });
58
- if (page.gap !== undefined)
59
- yield { kind: "gap", reason: page.gap, checkpoint: page.checkpoint };
60
- for (const record of page.events) {
61
- await assertExpectedIdentity(context, options.clientIdentity, input.expectedIdentity);
62
- resolved = await channelContext({ ...input, after: record.checkpoint }, context, options);
63
- const schema = resolved.descriptor.events[record.event];
64
- if (schema === undefined)
65
- continue;
66
- const payload = await validatePublicValue(schema, record.payload);
67
- yield { kind: "event", event: record.event, payload, checkpoint: record.checkpoint };
68
- }
69
- after = page.checkpoint;
70
- if (resolved.descriptor.presence !== undefined && Date.now() - presenceRenewedAt >= 15_000) {
71
- yield { kind: "presence", presence: await renewPresence(resolved, leaseId) };
72
- presenceRenewedAt = Date.now();
73
- }
74
- if (!page.hasMore) {
75
- yield { kind: "caught-up", checkpoint: after };
76
- await resolved.provider.waitAfter({
77
- ...resolved.scope,
78
- after,
79
- deadlineMs: Date.now() + 15_000,
80
- signal: controller,
81
- });
82
- }
83
- }
84
- }
85
- finally {
86
- if (presenceOwner.descriptor.presence !== undefined) {
87
- await presenceOwner.provider
88
- .releasePresence({
89
- ...presenceOwner.scope,
90
- leaseId,
91
- connectionId: leaseId,
92
- maxMembers: memberLimit(presenceOwner.descriptor.presence),
93
- maxConnections: REALTIME_RUNTIME_LIMITS.liveConnections,
94
- })
95
- .catch(() => undefined);
96
- }
97
- }
98
- }
99
- async function acquirePresence(resolved, leaseId) {
100
- const presence = resolved.descriptor.presence;
101
- const member = typeof presence === "object"
102
- ? await validatePublicValue(presence.member, await presence.resolve(resolved.params, resolved.trusted))
103
- : undefined;
104
- return resolved.provider.acquirePresence({
105
- ...resolved.scope,
106
- leaseId,
107
- connectionId: leaseId,
108
- expiresAt: new Date(Date.now() + 45_000).toISOString(),
109
- maxMembers: memberLimit(presence),
110
- maxConnections: REALTIME_RUNTIME_LIMITS.liveConnections,
111
- ...(member === undefined
112
- ? {}
113
- : { opaqueMemberId: memberId(resolved.scope), memberInfo: member }),
114
- });
115
- }
116
- async function renewPresence(resolved, leaseId) {
117
- return resolved.provider.renewPresence({
118
- ...resolved.scope,
119
- leaseId,
120
- connectionId: leaseId,
121
- expiresAt: new Date(Date.now() + 45_000).toISOString(),
122
- maxMembers: memberLimit(resolved.descriptor.presence),
123
- maxConnections: REALTIME_RUNTIME_LIMITS.liveConnections,
124
- });
125
- }
126
- function memberId(scope) {
127
- return createHash("sha256")
128
- .update(`${scope.channelId}:${scope.partition}:${scope.identityScope}`)
129
- .digest("hex");
130
- }
131
- function memberLimit(presence) {
132
- return typeof presence === "object" ? presence.maxMembers : 1_000;
133
- }
134
19
  //# sourceMappingURL=realtime-rpc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-rpc.js","sourceRoot":"","sources":["../src/realtime-rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realtime-rpc.js","sourceRoot":"","sources":["../src/realtime-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAqB,MAAM,cAAc,CAAC;AAIrD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAElF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAoC;IAEpC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACtF,OAAO;QACL,2BAA2B,EAAE,EAAE;aAC5B,QAAQ,EAAc;aACtB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CACtC,eAAe,CAAC,KAAuB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CACnE;QACH,0BAA0B,EAAE,EAAE;aAC3B,QAAQ,EAAc;aACtB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAC9B,oBAAoB,CAAC,KAAuB,EAAE,OAAO,EAAE,OAAO,CAAC,CAChE;KACJ,CAAC;AACJ,CAAC"}
@@ -1,13 +1,2 @@
1
- import type { MaybePromise } from "@relkit/contracts";
2
- import type { RealtimeProvider } from "@relkit/realtime";
3
- import type { HttpAuthInvocation } from "./auth.js";
4
- export interface RealtimeRuntime {
5
- readonly applicationId: string;
6
- readonly environment: string;
7
- readonly provider: (profile: string) => MaybePromise<RealtimeProvider>;
8
- readonly trustedContext?: (input: {
9
- readonly request: Request;
10
- readonly auth?: HttpAuthInvocation;
11
- }) => MaybePromise<unknown>;
12
- }
1
+ export type { RealtimeRuntime } from "./realtime-runtime.types.js";
13
2
  //# sourceMappingURL=realtime-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-runtime.d.ts","sourceRoot":"","sources":["../src/realtime-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACvE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;KACpC,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;CAC7B"}
1
+ {"version":3,"file":"realtime-runtime.d.ts","sourceRoot":"","sources":["../src/realtime-runtime.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { MaybePromise } from "@relkit/contracts";
2
+ import type { RealtimeProvider } from "@relkit/realtime";
3
+ import type { HttpAuthInvocation } from "./auth.js";
4
+ /** Contract for realtime runtime used by realtime runtime. */
5
+ export interface RealtimeRuntime {
6
+ readonly applicationId: string;
7
+ readonly environment: string;
8
+ readonly provider: (profile: string) => MaybePromise<RealtimeProvider>;
9
+ readonly trustedContext?: (input: {
10
+ readonly request: Request;
11
+ readonly auth?: HttpAuthInvocation;
12
+ }) => MaybePromise<unknown>;
13
+ }
14
+ //# sourceMappingURL=realtime-runtime.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-runtime.types.d.ts","sourceRoot":"","sources":["../src/realtime-runtime.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACvE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;KACpC,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=realtime-runtime.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-runtime.types.js","sourceRoot":"","sources":["../src/realtime-runtime.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { HttpBoundaryError } from "./http-effect.js";
3
+ import type { RequestBodyBytes } from "./request-body-service.types.js";
4
+ export type { RequestBodyBytes } from "./request-body-service.types.js";
5
+ declare const RequestBodyReader_base: Context.ServiceClass<RequestBodyReader, "@relkit/runtime-hono/RequestBodyReader", {
6
+ readonly read: (request: Request, maxBytes: number) => Effect.Effect<RequestBodyBytes, HttpBoundaryError>;
7
+ }>;
8
+ /** Owns the native reader until EOF, overflow, failure, or interruption.
9
+ * @example
10
+ * ```ts
11
+ * const read = Effect.flatMap(RequestBodyReader, (reader) =>
12
+ * reader.read(new Request("http://example/body"), 2),
13
+ * ).pipe(Effect.provide(Layer.succeed(RequestBodyReader, {
14
+ * read: () => Effect.succeed({ bytes: new Uint8Array([7]) }),
15
+ * })));
16
+ * ```
17
+ * @see tests/request-services.test.ts for checked service substitution and reader cleanup.
18
+ */
19
+ export declare class RequestBodyReader extends RequestBodyReader_base {
20
+ }
21
+ /** Native implementation; replace this layer to supply deterministic body reads. */
22
+ export declare const RequestBodyReaderLive: Layer.Layer<RequestBodyReader, never, never>;
23
+ //# sourceMappingURL=request-body-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body-service.d.ts","sourceRoot":"","sources":["../src/request-body-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAgB,iBAAiB,EAAe,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;;mBAgBrD,CACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;;AAjB3D;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,SAAQ,sBAQM;CAAG;AAkEhD,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,8CAEhC,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { httpBoundary, HttpBoundaryError, observeHttp } from "./http-effect.js";
3
+ /** Owns the native reader until EOF, overflow, failure, or interruption.
4
+ * @example
5
+ * ```ts
6
+ * const read = Effect.flatMap(RequestBodyReader, (reader) =>
7
+ * reader.read(new Request("http://example/body"), 2),
8
+ * ).pipe(Effect.provide(Layer.succeed(RequestBodyReader, {
9
+ * read: () => Effect.succeed({ bytes: new Uint8Array([7]) }),
10
+ * })));
11
+ * ```
12
+ * @see tests/request-services.test.ts for checked service substitution and reader cleanup.
13
+ */
14
+ export class RequestBodyReader extends Context.Service()("@relkit/runtime-hono/RequestBodyReader") {
15
+ }
16
+ /** Read a bounded request body while retaining the reader until cleanup.
17
+ * @param request - Fetch request or clone whose body this operation owns.
18
+ * @param maxBytes - Positive maximum bytes accepted from headers or streamed chunks.
19
+ * @returns An effect yielding body bytes or an overflow issue, with native failures preserved.
20
+ */
21
+ const read = Effect.fn("RequestBodyReader.read")(function* (request, maxBytes) {
22
+ if (!Number.isSafeInteger(maxBytes) || maxBytes < 1) {
23
+ return yield* Effect.fail(new HttpBoundaryError({
24
+ operation: "request.body",
25
+ cause: new RangeError("maxBodyBytes must be a positive integer"),
26
+ }));
27
+ }
28
+ /** Build the shared overflow result for header and streamed-byte limit checks.
29
+ * @returns A body-too-large issue naming the configured byte limit.
30
+ */
31
+ const oversized = () => ({
32
+ issue: {
33
+ code: "body-too-large",
34
+ message: `Request body exceeds ${maxBytes} bytes`,
35
+ },
36
+ });
37
+ const length = Number(request.headers.get("content-length"));
38
+ if (Number.isSafeInteger(length) && length > maxBytes)
39
+ return oversized();
40
+ if (request.body === null)
41
+ return { bytes: new Uint8Array() };
42
+ const body = request.body;
43
+ return yield* Effect.acquireUseRelease(Effect.sync(() => ({ reader: body.getReader(), complete: false })), (owned) => Effect.gen(function* () {
44
+ const chunks = [];
45
+ let total = 0;
46
+ while (true) {
47
+ const part = yield* httpBoundary("request.body.read", () => owned.reader.read());
48
+ if (part.done) {
49
+ owned.complete = true;
50
+ break;
51
+ }
52
+ total += part.value.byteLength;
53
+ if (total > maxBytes)
54
+ return oversized();
55
+ chunks.push(part.value);
56
+ }
57
+ const bytes = new Uint8Array(total);
58
+ let offset = 0;
59
+ for (const chunk of chunks) {
60
+ bytes.set(chunk, offset);
61
+ offset += chunk.byteLength;
62
+ }
63
+ return { bytes };
64
+ }), (owned) => Effect.sync(() => {
65
+ // Request.clone() tees the source. Its cancellation Promise also waits for
66
+ // the caller-owned branch, which must remain readable after mapping.
67
+ try {
68
+ if (!owned.complete)
69
+ void owned.reader.cancel().catch(() => undefined);
70
+ }
71
+ finally {
72
+ owned.reader.releaseLock();
73
+ }
74
+ }));
75
+ });
76
+ /** Native implementation; replace this layer to supply deterministic body reads. */
77
+ export const RequestBodyReaderLive = Layer.succeed(RequestBodyReader, {
78
+ read: (request, maxBytes) => observeHttp("request.body", read(request, maxBytes)),
79
+ });
80
+ //# sourceMappingURL=request-body-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body-service.js","sourceRoot":"","sources":["../src/request-body-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { BodyIssue } from "./request-mapping-body.js";
2
+ /** A bounded body read, preserving the existing materialization issue envelope. */
3
+ export interface RequestBodyBytes {
4
+ readonly bytes?: Uint8Array;
5
+ readonly issue?: BodyIssue;
6
+ }
7
+ //# sourceMappingURL=request-body-service.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body-service.types.d.ts","sourceRoot":"","sources":["../src/request-body-service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=request-body-service.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-body-service.types.js","sourceRoot":"","sources":["../src/request-body-service.types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,9 @@
1
1
  import type { Context } from "hono";
2
2
  import type { HttpRouteRequest } from "./materialize-routes.js";
3
+ /** Materializes validated request values and routing parameters from Hono.
4
+ * @param context - Trusted Hono or oRPC request context containing request state and authentication.
5
+ * @param pathPattern - Registered route path used to resolve catch-all parameters.
6
+ * @returns A frozen route request with raw request, parameters, repeated values and validated data.
7
+ */
3
8
  export declare function requestFromContext(context: Context, pathPattern?: string): HttpRouteRequest;
4
9
  //# sourceMappingURL=request-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../src/request-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAuB3F"}
1
+ {"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../src/request-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAuB3F"}
@@ -1,3 +1,8 @@
1
+ /** Materializes validated request values and routing parameters from Hono.
2
+ * @param context - Trusted Hono or oRPC request context containing request state and authentication.
3
+ * @param pathPattern - Registered route path used to resolve catch-all parameters.
4
+ * @returns A frozen route request with raw request, parameters, repeated values and validated data.
5
+ */
1
6
  export function requestFromContext(context, pathPattern) {
2
7
  const query = {};
3
8
  const headers = {};
@@ -22,6 +27,11 @@ export function requestFromContext(context, pathPattern) {
22
27
  validated: validatedData(context),
23
28
  });
24
29
  }
30
+ /** Combines Hono route parameters with declared catch-all path captures.
31
+ * @param context - Trusted Hono or oRPC request context containing request state and authentication.
32
+ * @param pathPattern - Registered route path used to resolve catch-all parameters.
33
+ * @returns Frozen named parameters with catch-all captures represented as ordered arrays.
34
+ */
25
35
  function materializeParams(context, pathPattern) {
26
36
  const params = {};
27
37
  for (const [name, value] of Object.entries(context.req.param())) {
@@ -30,6 +40,10 @@ function materializeParams(context, pathPattern) {
30
40
  }
31
41
  return Object.freeze(params);
32
42
  }
43
+ /** Reads validated Hono request data for supported mapping sources.
44
+ * @param context - Trusted Hono or oRPC request context containing request state and authentication.
45
+ * @returns A frozen map containing the validation targets Hono has populated.
46
+ */
33
47
  function validatedData(context) {
34
48
  const request = context.req;
35
49
  return Object.freeze(Object.fromEntries(["param", "query", "header", "cookie", "json", "form"].flatMap((target) => {
@@ -37,16 +51,30 @@ function validatedData(context) {
37
51
  return value === undefined ? [] : [[target, value]];
38
52
  })));
39
53
  }
54
+ /** Locates the catch-all segment corresponding to a declared parameter.
55
+ * @param pathPattern - Registered route path used to resolve catch-all parameters.
56
+ * @param name - Declared field, header, stream or configuration key.
57
+ * @returns The catch-all segment index, or undefined when the named token is absent.
58
+ */
40
59
  function catchAllToken(pathPattern, name) {
41
60
  const token = pathPattern?.split("/").findIndex((segment) => {
42
61
  return segment === `*${name}` || segment === `*${name}?`;
43
62
  });
44
63
  return token === undefined || token < 0 ? undefined : token;
45
64
  }
65
+ /** Decodes the URL path segments captured by a catch-all token.
66
+ * @param url - Request URL supplying decoded path segments.
67
+ * @param token - Declared catch-all token or CSRF value checked by policy.
68
+ * @returns Frozen decoded nonempty path segments captured from the token onward.
69
+ */
46
70
  function catchAllValues(url, token) {
47
71
  const segments = new URL(url).pathname.split("/").slice(token);
48
72
  return Object.freeze(segments.filter((segment) => segment !== "").map(decode));
49
73
  }
74
+ /** Decodes a URL component while preserving malformed input for later validation.
75
+ * @param value - Value inspected, validated or projected by this operation.
76
+ * @returns The decoded component, or its original text when percent encoding is malformed.
77
+ */
50
78
  function decode(value) {
51
79
  try {
52
80
  return decodeURIComponent(value);
@@ -55,6 +83,12 @@ function decode(value) {
55
83
  return value;
56
84
  }
57
85
  }
86
+ /** Appends repeated request values without dropping previously observed values.
87
+ * @param target - Output object accumulating normalized request values.
88
+ * @param key - Declared property or field key.
89
+ * @param value - Value inspected, validated or projected by this operation.
90
+ * @returns Nothing; the requested update is applied to the owned state.
91
+ */
58
92
  function append(target, key, value) {
59
93
  const previous = target[key];
60
94
  target[key] =
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.js","sourceRoot":"","sources":["../src/request-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-context.js","sourceRoot":"","sources":["../src/request-context.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,13 @@
1
+ /** Decode inferred request strings using the target input's JSON Schema.
2
+ * @param value - Value to validate or project.
3
+ * @param route - Route descriptor controlling request mapping.
4
+ * @param target - Target descriptor or validated request source.
5
+ * @returns Converted numbers/booleans, while explicit request mappings remain unchanged.
6
+ * @example
7
+ * import { z } from "@relkit/schema";
8
+ * const target = { input: z.object({ page: z.number(), active: z.boolean() }) };
9
+ * const input = decodeInferredInput({ page: "2", active: "true" }, {}, target);
10
+ * // input is { page: 2, active: true }.
11
+ */
1
12
  export declare function decodeInferredInput(value: unknown, route: unknown, target: unknown): unknown;
2
13
  //# sourceMappingURL=request-inference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-inference.d.ts","sourceRoot":"","sources":["../src/request-inference.ts"],"names":[],"mappings":"AAKA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAK5F"}
1
+ {"version":3,"file":"request-inference.d.ts","sourceRoot":"","sources":["../src/request-inference.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAK5F"}
@@ -1,6 +1,17 @@
1
1
  import { getJsonSchema } from "@relkit/schema";
2
2
  const schemaCache = new WeakMap();
3
3
  const JSON_NUMBER = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
4
+ /** Decode inferred request strings using the target input's JSON Schema.
5
+ * @param value - Value to validate or project.
6
+ * @param route - Route descriptor controlling request mapping.
7
+ * @param target - Target descriptor or validated request source.
8
+ * @returns Converted numbers/booleans, while explicit request mappings remain unchanged.
9
+ * @example
10
+ * import { z } from "@relkit/schema";
11
+ * const target = { input: z.object({ page: z.number(), active: z.boolean() }) };
12
+ * const input = decodeInferredInput({ page: "2", active: "true" }, {}, target);
13
+ * // input is { page: 2, active: true }.
14
+ */
4
15
  export function decodeInferredInput(value, route, target) {
5
16
  if (!isRecord(route) || route.request !== undefined)
6
17
  return value;
@@ -9,6 +20,10 @@ export function decodeInferredInput(value, route, target) {
9
20
  const schema = projectedSchema(target.input);
10
21
  return schema === undefined ? value : decodeValue(value, schema);
11
22
  }
23
+ /** Cache a schema's JSON Schema projection by schema identity.
24
+ * @param schema - Schema used to validate or infer the value.
25
+ * @returns The supported projection, or undefined when projection is unavailable.
26
+ */
12
27
  function projectedSchema(schema) {
13
28
  const cached = schemaCache.get(schema);
14
29
  if (cached !== undefined)
@@ -18,6 +33,11 @@ function projectedSchema(schema) {
18
33
  schemaCache.set(schema, projected);
19
34
  return projected ?? undefined;
20
35
  }
36
+ /** Recursively decode strict number and boolean strings for a JSON Schema.
37
+ * @param value - Value to validate or project.
38
+ * @param schema - Schema used to validate or infer the value.
39
+ * @returns The decoded value, retaining strings not accepted by the target type.
40
+ */
21
41
  function decodeValue(value, schema) {
22
42
  if (!isRecord(schema))
23
43
  return value;
@@ -55,6 +75,11 @@ function decodeValue(value, schema) {
55
75
  return value === "true";
56
76
  return value;
57
77
  }
78
+ /** Check whether a value already satisfies a JSON Schema primitive type.
79
+ * @param value - Value to validate or project.
80
+ * @param schema - Schema used to validate or infer the value.
81
+ * @returns Whether the value needs no coercion for this variant.
82
+ */
58
83
  function acceptsType(value, schema) {
59
84
  if (!isRecord(schema))
60
85
  return false;
@@ -68,12 +93,20 @@ function acceptsType(value, schema) {
68
93
  return isRecord(value);
69
94
  return typeof schema.type === "string" && typeof value === schema.type;
70
95
  }
96
+ /** Recognize a Standard Schema v1 descriptor at the RPC boundary.
97
+ * @param value - Value to validate or project.
98
+ * @returns Whether the value exposes the supported Standard Schema marker.
99
+ */
71
100
  function isSchema(value) {
72
101
  return (isRecord(value) &&
73
102
  isRecord(value["~standard"]) &&
74
103
  value["~standard"].version === 1 &&
75
104
  typeof value["~standard"].validate === "function");
76
105
  }
106
+ /** Check whether a value is a non-null object suitable for field inspection.
107
+ * @param value - Value to validate or project.
108
+ * @returns Whether object fields can be inspected.
109
+ */
77
110
  function isRecord(value) {
78
111
  return value !== null && typeof value === "object" && !Array.isArray(value);
79
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request-inference.js","sourceRoot":"","sources":["../src/request-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-inference.js","sourceRoot":"","sources":["../src/request-inference.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,14 @@
1
+ import type { BodyState, BodyValue, FormDataLike } from "./request-mapping-body.types.js";
2
+ export type { BodyIssue, BodyIssueCode, BodyState, BodyValue, FormDataLike, Missing, } from "./request-mapping-body.types.js";
1
3
  export declare const MISSING: unique symbol;
2
- export type Missing = typeof MISSING;
3
- export type BodyIssueCode = "content-type" | "body-too-large" | "malformed-json" | "malformed-multipart";
4
- export interface BodyIssue {
5
- readonly code: BodyIssueCode;
6
- readonly message: string;
7
- }
8
- export interface FormDataLike {
9
- readonly getAll: (name: string) => readonly unknown[];
10
- }
11
- export interface BodyValue<T> {
12
- readonly value: T | Missing;
13
- readonly issue?: BodyIssue;
14
- }
15
- export interface BodyState {
16
- readonly request: Request;
17
- readonly maxBodyBytes: number;
18
- body?: Promise<{
19
- readonly bytes?: Uint8Array;
20
- readonly issue?: BodyIssue;
21
- }>;
22
- json?: Promise<BodyValue<unknown>>;
23
- form?: Promise<BodyValue<FormDataLike>>;
24
- }
4
+ /** Shares the request body's first JSON parse among all mapping fields.
5
+ * @param state - State owned by the current request or operation.
6
+ * @returns The memoized JSON value, or MISSING with any body or parsing issue.
7
+ */
25
8
  export declare function parseJson(state: BodyState): Promise<BodyValue<unknown>>;
9
+ /** Shares the request body's first multipart parse among all mapping fields.
10
+ * @param state - State owned by the current request or operation.
11
+ * @returns The memoized form data, or MISSING with any body or parsing issue.
12
+ */
26
13
  export declare function parseForm(state: BodyState): Promise<BodyValue<FormDataLike>>;
27
14
  //# sourceMappingURL=request-mapping-body.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-mapping-body.d.ts","sourceRoot":"","sources":["../src/request-mapping-body.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,eAAmC,CAAC;AACxD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC;AACrC,MAAM,MAAM,aAAa,GACvB,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;AAC/E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,CAAC;CACvD;AACD,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B;AACD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;CACzC;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAG7E;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAGlF"}
1
+ {"version":3,"file":"request-mapping-body.d.ts","sourceRoot":"","sources":["../src/request-mapping-body.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,SAAS,EACT,SAAS,EACT,YAAY,EACb,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,SAAS,EACT,aAAa,EACb,SAAS,EACT,SAAS,EACT,YAAY,EACZ,OAAO,GACR,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,OAAO,eAAmC,CAAC;AAExD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAG7E;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAGlF"}