@relkit/runtime-hono 0.5.4 → 0.5.6
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.
- package/dist/agent-active-execution.d.ts +5 -11
- package/dist/agent-active-execution.d.ts.map +1 -1
- package/dist/agent-active-execution.js +3 -0
- package/dist/agent-active-execution.js.map +1 -1
- package/dist/agent-active-execution.types.d.ts +14 -0
- package/dist/agent-active-execution.types.d.ts.map +1 -0
- package/dist/agent-active-execution.types.js +2 -0
- package/dist/agent-active-execution.types.js.map +1 -0
- package/dist/agent-approval-coordinator.d.ts +17 -6
- package/dist/agent-approval-coordinator.d.ts.map +1 -1
- package/dist/agent-approval-coordinator.js +56 -53
- package/dist/agent-approval-coordinator.js.map +1 -1
- package/dist/agent-approval-coordinator.types.d.ts +14 -0
- package/dist/agent-approval-coordinator.types.d.ts.map +1 -0
- package/dist/agent-approval-coordinator.types.js +2 -0
- package/dist/agent-approval-coordinator.types.js.map +1 -0
- package/dist/agent-approval-support.d.ts +26 -0
- package/dist/agent-approval-support.d.ts.map +1 -0
- package/dist/agent-approval-support.js +47 -0
- package/dist/agent-approval-support.js.map +1 -0
- package/dist/agent-capability-negotiation.d.ts +4 -0
- package/dist/agent-capability-negotiation.d.ts.map +1 -1
- package/dist/agent-capability-negotiation.js +4 -0
- package/dist/agent-capability-negotiation.js.map +1 -1
- package/dist/agent-command-validation.d.ts +22 -0
- package/dist/agent-command-validation.d.ts.map +1 -0
- package/dist/agent-command-validation.js +35 -0
- package/dist/agent-command-validation.js.map +1 -0
- package/dist/agent-compatibility.d.ts +14 -0
- package/dist/agent-compatibility.d.ts.map +1 -1
- package/dist/agent-compatibility.js +18 -0
- package/dist/agent-compatibility.js.map +1 -1
- package/dist/agent-content-sink.d.ts +68 -7
- package/dist/agent-content-sink.d.ts.map +1 -1
- package/dist/agent-content-sink.js +136 -123
- package/dist/agent-content-sink.js.map +1 -1
- package/dist/agent-content-sink.types.d.ts +10 -0
- package/dist/agent-content-sink.types.d.ts.map +1 -0
- package/dist/agent-content-sink.types.js +2 -0
- package/dist/agent-content-sink.types.js.map +1 -0
- package/dist/agent-control-admission.d.ts +13 -0
- package/dist/agent-control-admission.d.ts.map +1 -0
- package/dist/agent-control-admission.js +70 -0
- package/dist/agent-control-admission.js.map +1 -0
- package/dist/agent-control-application.d.ts +32 -0
- package/dist/agent-control-application.d.ts.map +1 -0
- package/dist/agent-control-application.js +114 -0
- package/dist/agent-control-application.js.map +1 -0
- package/dist/agent-control-worker.d.ts +43 -2
- package/dist/agent-control-worker.d.ts.map +1 -1
- package/dist/agent-control-worker.js +39 -104
- package/dist/agent-control-worker.js.map +1 -1
- package/dist/agent-control-worker.types.d.ts +4 -0
- package/dist/agent-control-worker.types.d.ts.map +1 -0
- package/dist/agent-control-worker.types.js +2 -0
- package/dist/agent-control-worker.types.js.map +1 -0
- package/dist/agent-conversation.d.ts +18 -0
- package/dist/agent-conversation.d.ts.map +1 -0
- package/dist/agent-conversation.js +33 -0
- package/dist/agent-conversation.js.map +1 -0
- package/dist/agent-follow-up.d.ts +43 -7
- package/dist/agent-follow-up.d.ts.map +1 -1
- package/dist/agent-follow-up.js +59 -25
- package/dist/agent-follow-up.js.map +1 -1
- package/dist/agent-follow-up.types.d.ts +10 -0
- package/dist/agent-follow-up.types.d.ts.map +1 -0
- package/dist/agent-follow-up.types.js +2 -0
- package/dist/agent-follow-up.types.js.map +1 -0
- package/dist/agent-inspector-projection.d.ts +23 -0
- package/dist/agent-inspector-projection.d.ts.map +1 -1
- package/dist/agent-inspector-projection.js +39 -0
- package/dist/agent-inspector-projection.js.map +1 -1
- package/dist/agent-inspector.d.ts +6 -0
- package/dist/agent-inspector.d.ts.map +1 -1
- package/dist/agent-inspector.js +28 -0
- package/dist/agent-inspector.js.map +1 -1
- package/dist/agent-journal.d.ts +118 -0
- package/dist/agent-journal.d.ts.map +1 -0
- package/dist/agent-journal.js +138 -0
- package/dist/agent-journal.js.map +1 -0
- package/dist/agent-observation.d.ts +32 -0
- package/dist/agent-observation.d.ts.map +1 -0
- package/dist/agent-observation.js +96 -0
- package/dist/agent-observation.js.map +1 -0
- package/dist/agent-observation.types.d.ts +16 -0
- package/dist/agent-observation.types.d.ts.map +1 -0
- package/dist/agent-observation.types.js +2 -0
- package/dist/agent-observation.types.js.map +1 -0
- package/dist/agent-progress-sink.d.ts +37 -2
- package/dist/agent-progress-sink.d.ts.map +1 -1
- package/dist/agent-progress-sink.js +81 -46
- package/dist/agent-progress-sink.js.map +1 -1
- package/dist/agent-progress-sink.types.d.ts +4 -0
- package/dist/agent-progress-sink.types.d.ts.map +1 -0
- package/dist/agent-progress-sink.types.js +2 -0
- package/dist/agent-progress-sink.types.js.map +1 -0
- package/dist/agent-protocol-encoding.d.ts +4 -0
- package/dist/agent-protocol-encoding.d.ts.map +1 -1
- package/dist/agent-protocol-encoding.js +24 -0
- package/dist/agent-protocol-encoding.js.map +1 -1
- package/dist/agent-protocol-encoding.types.d.ts +6 -0
- package/dist/agent-protocol-encoding.types.d.ts.map +1 -0
- package/dist/agent-protocol-encoding.types.js +2 -0
- package/dist/agent-protocol-encoding.types.js.map +1 -0
- package/dist/agent-protocol-frame-state.d.ts +34 -0
- package/dist/agent-protocol-frame-state.d.ts.map +1 -1
- package/dist/agent-protocol-frame-state.js +51 -0
- package/dist/agent-protocol-frame-state.js.map +1 -1
- package/dist/agent-protocol-progress.d.ts +7 -5
- package/dist/agent-protocol-progress.d.ts.map +1 -1
- package/dist/agent-protocol-progress.js +6 -0
- package/dist/agent-protocol-progress.js.map +1 -1
- package/dist/agent-protocol-progress.types.d.ts +6 -0
- package/dist/agent-protocol-progress.types.d.ts.map +1 -0
- package/dist/agent-protocol-progress.types.js +2 -0
- package/dist/agent-protocol-progress.types.js.map +1 -0
- package/dist/agent-protocol-stream.d.ts +13 -50
- package/dist/agent-protocol-stream.d.ts.map +1 -1
- package/dist/agent-protocol-stream.js +22 -0
- package/dist/agent-protocol-stream.js.map +1 -1
- package/dist/agent-protocol-stream.types.d.ts +53 -0
- package/dist/agent-protocol-stream.types.d.ts.map +1 -0
- package/dist/agent-protocol-stream.types.js +2 -0
- package/dist/agent-protocol-stream.types.js.map +1 -0
- package/dist/agent-protocol-support.d.ts +52 -4
- package/dist/agent-protocol-support.d.ts.map +1 -1
- package/dist/agent-protocol-support.js +58 -0
- package/dist/agent-protocol-support.js.map +1 -1
- package/dist/agent-protocol-support.types.d.ts +6 -0
- package/dist/agent-protocol-support.types.d.ts.map +1 -0
- package/dist/agent-protocol-support.types.js +2 -0
- package/dist/agent-protocol-support.types.js.map +1 -0
- package/dist/agent-protocol-tool.d.ts +17 -9
- package/dist/agent-protocol-tool.d.ts.map +1 -1
- package/dist/agent-protocol-tool.js +15 -0
- package/dist/agent-protocol-tool.js.map +1 -1
- package/dist/agent-protocol-tool.types.d.ts +11 -0
- package/dist/agent-protocol-tool.types.d.ts.map +1 -0
- package/dist/agent-protocol-tool.types.js +2 -0
- package/dist/agent-protocol-tool.types.js.map +1 -0
- package/dist/agent-protocol.d.ts +5 -0
- package/dist/agent-protocol.d.ts.map +1 -1
- package/dist/agent-protocol.js +30 -0
- package/dist/agent-protocol.js.map +1 -1
- package/dist/agent-reads.d.ts +64 -0
- package/dist/agent-reads.d.ts.map +1 -0
- package/dist/agent-reads.js +119 -0
- package/dist/agent-reads.js.map +1 -0
- package/dist/agent-request-validation.d.ts +50 -0
- package/dist/agent-request-validation.d.ts.map +1 -0
- package/dist/agent-request-validation.js +87 -0
- package/dist/agent-request-validation.js.map +1 -0
- package/dist/agent-rpc-errors.d.ts +14 -0
- package/dist/agent-rpc-errors.d.ts.map +1 -1
- package/dist/agent-rpc-errors.js +22 -0
- package/dist/agent-rpc-errors.js.map +1 -1
- package/dist/agent-rpc-read.d.ts +26 -16
- package/dist/agent-rpc-read.d.ts.map +1 -1
- package/dist/agent-rpc-read.js +50 -122
- package/dist/agent-rpc-read.js.map +1 -1
- package/dist/agent-rpc-resume.d.ts +49 -2
- package/dist/agent-rpc-resume.d.ts.map +1 -1
- package/dist/agent-rpc-resume.js +57 -23
- package/dist/agent-rpc-resume.js.map +1 -1
- package/dist/agent-rpc-resume.types.d.ts +4 -0
- package/dist/agent-rpc-resume.types.d.ts.map +1 -0
- package/dist/agent-rpc-resume.types.js +2 -0
- package/dist/agent-rpc-resume.types.js.map +1 -0
- package/dist/agent-rpc-support.d.ts +60 -23
- package/dist/agent-rpc-support.d.ts.map +1 -1
- package/dist/agent-rpc-support.js +75 -65
- package/dist/agent-rpc-support.js.map +1 -1
- package/dist/agent-rpc-support.schemas.d.ts +4 -0
- package/dist/agent-rpc-support.schemas.d.ts.map +1 -0
- package/dist/agent-rpc-support.schemas.js +4 -0
- package/dist/agent-rpc-support.schemas.js.map +1 -0
- package/dist/agent-rpc-support.types.d.ts +18 -0
- package/dist/agent-rpc-support.types.d.ts.map +1 -0
- package/dist/agent-rpc-support.types.js +2 -0
- package/dist/agent-rpc-support.types.js.map +1 -0
- package/dist/agent-rpc-worker.d.ts +43 -2
- package/dist/agent-rpc-worker.d.ts.map +1 -1
- package/dist/agent-rpc-worker.js +120 -117
- package/dist/agent-rpc-worker.js.map +1 -1
- package/dist/agent-rpc-worker.types.d.ts +4 -0
- package/dist/agent-rpc-worker.types.d.ts.map +1 -0
- package/dist/agent-rpc-worker.types.js +2 -0
- package/dist/agent-rpc-worker.types.js.map +1 -0
- package/dist/agent-rpc-write.d.ts +25 -0
- package/dist/agent-rpc-write.d.ts.map +1 -1
- package/dist/agent-rpc-write.js +34 -105
- package/dist/agent-rpc-write.js.map +1 -1
- package/dist/agent-rpc.d.ts +4 -0
- package/dist/agent-rpc.d.ts.map +1 -1
- package/dist/agent-rpc.js +10 -0
- package/dist/agent-rpc.js.map +1 -1
- package/dist/agent-run-admission.d.ts +13 -0
- package/dist/agent-run-admission.d.ts.map +1 -0
- package/dist/agent-run-admission.js +60 -0
- package/dist/agent-run-admission.js.map +1 -0
- package/dist/agent-run-journal.d.ts +41 -3
- package/dist/agent-run-journal.d.ts.map +1 -1
- package/dist/agent-run-journal.js +63 -81
- package/dist/agent-run-journal.js.map +1 -1
- package/dist/agent-run-journal.types.d.ts +4 -0
- package/dist/agent-run-journal.types.d.ts.map +1 -0
- package/dist/agent-run-journal.types.js +2 -0
- package/dist/agent-run-journal.types.js.map +1 -0
- package/dist/agent-run-supervision.d.ts +20 -0
- package/dist/agent-run-supervision.d.ts.map +1 -0
- package/dist/agent-run-supervision.js +42 -0
- package/dist/agent-run-supervision.js.map +1 -0
- package/dist/agent-run-supervision.types.d.ts +7 -0
- package/dist/agent-run-supervision.types.d.ts.map +1 -0
- package/dist/agent-run-supervision.types.js +2 -0
- package/dist/agent-run-supervision.types.js.map +1 -0
- package/dist/agent-run-tasks.d.ts +35 -1
- package/dist/agent-run-tasks.d.ts.map +1 -1
- package/dist/agent-run-tasks.js +72 -4
- package/dist/agent-run-tasks.js.map +1 -1
- package/dist/agent-run-tasks.types.d.ts +5 -0
- package/dist/agent-run-tasks.types.d.ts.map +1 -0
- package/dist/agent-run-tasks.types.js +2 -0
- package/dist/agent-run-tasks.types.js.map +1 -0
- package/dist/agent-runtime.d.ts +1 -16
- package/dist/agent-runtime.d.ts.map +1 -1
- package/dist/agent-runtime.types.d.ts +18 -0
- package/dist/agent-runtime.types.d.ts.map +1 -0
- package/dist/agent-runtime.types.js +2 -0
- package/dist/agent-runtime.types.js.map +1 -0
- package/dist/agent-tool-content.d.ts +17 -0
- package/dist/agent-tool-content.d.ts.map +1 -0
- package/dist/agent-tool-content.js +61 -0
- package/dist/agent-tool-content.js.map +1 -0
- package/dist/api-docs.d.ts +8 -13
- package/dist/api-docs.d.ts.map +1 -1
- package/dist/api-docs.js +38 -2
- package/dist/api-docs.js.map +1 -1
- package/dist/api-docs.types.d.ts +14 -0
- package/dist/api-docs.types.d.ts.map +1 -0
- package/dist/api-docs.types.js +2 -0
- package/dist/api-docs.types.js.map +1 -0
- package/dist/auth.d.ts +26 -15
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +46 -4
- package/dist/auth.js.map +1 -1
- package/dist/auth.types.d.ts +20 -0
- package/dist/auth.types.d.ts.map +1 -0
- package/dist/auth.types.js +2 -0
- package/dist/auth.types.js.map +1 -0
- package/dist/client-authorization.d.ts +22 -0
- package/dist/client-authorization.d.ts.map +1 -1
- package/dist/client-authorization.js +26 -12
- package/dist/client-authorization.js.map +1 -1
- package/dist/client-contract.d.ts +8 -4
- package/dist/client-contract.d.ts.map +1 -1
- package/dist/client-contract.js +6 -0
- package/dist/client-contract.js.map +1 -1
- package/dist/client-contract.types.d.ts +8 -0
- package/dist/client-contract.types.d.ts.map +1 -0
- package/dist/client-contract.types.js +2 -0
- package/dist/client-contract.types.js.map +1 -0
- package/dist/client-identity.d.ts +39 -15
- package/dist/client-identity.d.ts.map +1 -1
- package/dist/client-identity.js +50 -4
- package/dist/client-identity.js.map +1 -1
- package/dist/client-identity.types.d.ts +19 -0
- package/dist/client-identity.types.d.ts.map +1 -0
- package/dist/client-identity.types.js +2 -0
- package/dist/client-identity.types.js.map +1 -0
- package/dist/control-plane.d.ts +4 -0
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +4 -0
- package/dist/control-plane.js.map +1 -1
- package/dist/create-app.d.ts +11 -20
- package/dist/create-app.d.ts.map +1 -1
- package/dist/create-app.js +25 -8
- package/dist/create-app.js.map +1 -1
- package/dist/create-app.types.d.ts +21 -0
- package/dist/create-app.types.d.ts.map +1 -0
- package/dist/create-app.types.js +2 -0
- package/dist/create-app.types.js.map +1 -0
- package/dist/http-effect.d.ts +43 -0
- package/dist/http-effect.d.ts.map +1 -0
- package/dist/http-effect.js +67 -0
- package/dist/http-effect.js.map +1 -0
- package/dist/http-invocation.d.ts +22 -0
- package/dist/http-invocation.d.ts.map +1 -0
- package/dist/http-invocation.js +44 -0
- package/dist/http-invocation.js.map +1 -0
- package/dist/http-logging.d.ts +23 -0
- package/dist/http-logging.d.ts.map +1 -0
- package/dist/http-logging.js +69 -0
- package/dist/http-logging.js.map +1 -0
- package/dist/http-logging.types.d.ts +8 -0
- package/dist/http-logging.types.d.ts.map +1 -0
- package/dist/http-logging.types.js +2 -0
- package/dist/http-logging.types.js.map +1 -0
- package/dist/http-response.d.ts +22 -0
- package/dist/http-response.d.ts.map +1 -1
- package/dist/http-response.js +55 -8
- package/dist/http-response.js.map +1 -1
- package/dist/http-span-record.d.ts +5 -0
- package/dist/http-span-record.d.ts.map +1 -1
- package/dist/http-span-record.js +5 -0
- package/dist/http-span-record.js.map +1 -1
- package/dist/http-span.d.ts +18 -0
- package/dist/http-span.d.ts.map +1 -1
- package/dist/http-span.js +37 -3
- package/dist/http-span.js.map +1 -1
- package/dist/http-stream-observation.d.ts +13 -0
- package/dist/http-stream-observation.d.ts.map +1 -0
- package/dist/http-stream-observation.js +15 -0
- package/dist/http-stream-observation.js.map +1 -0
- package/dist/http-validation.d.ts +12 -0
- package/dist/http-validation.d.ts.map +1 -0
- package/dist/http-validation.js +17 -0
- package/dist/http-validation.js.map +1 -0
- package/dist/internal-endpoint-paths.d.ts +3 -0
- package/dist/internal-endpoint-paths.d.ts.map +1 -1
- package/dist/internal-endpoint-paths.js +3 -0
- package/dist/internal-endpoint-paths.js.map +1 -1
- package/dist/internal-endpoint-query.d.ts +18 -0
- package/dist/internal-endpoint-query.d.ts.map +1 -0
- package/dist/internal-endpoint-query.js +88 -0
- package/dist/internal-endpoint-query.js.map +1 -0
- package/dist/internal-endpoints-utils.d.ts +39 -4
- package/dist/internal-endpoints-utils.d.ts.map +1 -1
- package/dist/internal-endpoints-utils.js +48 -52
- package/dist/internal-endpoints-utils.js.map +1 -1
- package/dist/internal-endpoints.d.ts +11 -46
- package/dist/internal-endpoints.d.ts.map +1 -1
- package/dist/internal-endpoints.js +25 -2
- package/dist/internal-endpoints.js.map +1 -1
- package/dist/internal-endpoints.types.d.ts +57 -0
- package/dist/internal-endpoints.types.d.ts.map +1 -0
- package/dist/internal-endpoints.types.js +2 -0
- package/dist/internal-endpoints.types.js.map +1 -0
- package/dist/jobs/authorization.d.ts +22 -8
- package/dist/jobs/authorization.d.ts.map +1 -1
- package/dist/jobs/authorization.js +29 -16
- package/dist/jobs/authorization.js.map +1 -1
- package/dist/jobs/authorization.types.d.ts +9 -0
- package/dist/jobs/authorization.types.d.ts.map +1 -0
- package/dist/jobs/authorization.types.js +2 -0
- package/dist/jobs/authorization.types.js.map +1 -0
- package/dist/jobs/common.d.ts +54 -3
- package/dist/jobs/common.d.ts.map +1 -1
- package/dist/jobs/common.js +63 -23
- package/dist/jobs/common.js.map +1 -1
- package/dist/jobs/common.schemas.d.ts +6 -0
- package/dist/jobs/common.schemas.d.ts.map +1 -0
- package/dist/jobs/common.schemas.js +41 -0
- package/dist/jobs/common.schemas.js.map +1 -0
- package/dist/jobs/cursors.d.ts +38 -0
- package/dist/jobs/cursors.d.ts.map +1 -1
- package/dist/jobs/cursors.js +50 -0
- package/dist/jobs/cursors.js.map +1 -1
- package/dist/jobs/handlers-mutations-cancel.d.ts +15 -0
- package/dist/jobs/handlers-mutations-cancel.d.ts.map +1 -0
- package/dist/jobs/handlers-mutations-cancel.js +49 -0
- package/dist/jobs/handlers-mutations-cancel.js.map +1 -0
- package/dist/jobs/handlers-mutations-retry.d.ts +14 -0
- package/dist/jobs/handlers-mutations-retry.d.ts.map +1 -0
- package/dist/jobs/handlers-mutations-retry.js +37 -0
- package/dist/jobs/handlers-mutations-retry.js.map +1 -0
- package/dist/jobs/handlers-mutations-trigger.d.ts +14 -0
- package/dist/jobs/handlers-mutations-trigger.d.ts.map +1 -0
- package/dist/jobs/handlers-mutations-trigger.js +33 -0
- package/dist/jobs/handlers-mutations-trigger.js.map +1 -0
- package/dist/jobs/handlers-mutations.d.ts +33 -0
- package/dist/jobs/handlers-mutations.d.ts.map +1 -1
- package/dist/jobs/handlers-mutations.js +53 -69
- package/dist/jobs/handlers-mutations.js.map +1 -1
- package/dist/jobs/handlers-mutations.types.d.ts +10 -0
- package/dist/jobs/handlers-mutations.types.d.ts.map +1 -0
- package/dist/jobs/handlers-mutations.types.js +2 -0
- package/dist/jobs/handlers-mutations.types.js.map +1 -0
- package/dist/jobs/handlers-read-get.d.ts +14 -0
- package/dist/jobs/handlers-read-get.d.ts.map +1 -0
- package/dist/jobs/handlers-read-get.js +33 -0
- package/dist/jobs/handlers-read-get.js.map +1 -0
- package/dist/jobs/handlers-read-list.d.ts +14 -0
- package/dist/jobs/handlers-read-list.d.ts.map +1 -0
- package/dist/jobs/handlers-read-list.js +42 -0
- package/dist/jobs/handlers-read-list.js.map +1 -0
- package/dist/jobs/handlers-read-watch.d.ts +15 -0
- package/dist/jobs/handlers-read-watch.d.ts.map +1 -0
- package/dist/jobs/handlers-read-watch.js +39 -0
- package/dist/jobs/handlers-read-watch.js.map +1 -0
- package/dist/jobs/handlers-read.d.ts +33 -0
- package/dist/jobs/handlers-read.d.ts.map +1 -1
- package/dist/jobs/handlers-read.js +53 -66
- package/dist/jobs/handlers-read.js.map +1 -1
- package/dist/jobs/handlers-read.types.d.ts +10 -0
- package/dist/jobs/handlers-read.types.d.ts.map +1 -0
- package/dist/jobs/handlers-read.types.js +2 -0
- package/dist/jobs/handlers-read.types.js.map +1 -0
- package/dist/jobs/handlers-stream.d.ts +28 -0
- package/dist/jobs/handlers-stream.d.ts.map +1 -1
- package/dist/jobs/handlers-stream.js +77 -31
- package/dist/jobs/handlers-stream.js.map +1 -1
- package/dist/jobs/handlers-validation.d.ts +16 -0
- package/dist/jobs/handlers-validation.d.ts.map +1 -1
- package/dist/jobs/handlers-validation.js +21 -0
- package/dist/jobs/handlers-validation.js.map +1 -1
- package/dist/jobs/projection-stream.d.ts +11 -0
- package/dist/jobs/projection-stream.d.ts.map +1 -1
- package/dist/jobs/projection-stream.js +37 -0
- package/dist/jobs/projection-stream.js.map +1 -1
- package/dist/jobs/projection-validation.d.ts +12 -0
- package/dist/jobs/projection-validation.d.ts.map +1 -1
- package/dist/jobs/projection-validation.js +51 -1
- package/dist/jobs/projection-validation.js.map +1 -1
- package/dist/jobs/projection.d.ts +29 -0
- package/dist/jobs/projection.d.ts.map +1 -1
- package/dist/jobs/projection.js +34 -1
- package/dist/jobs/projection.js.map +1 -1
- package/dist/jobs/rpc.d.ts +4 -0
- package/dist/jobs/rpc.d.ts.map +1 -1
- package/dist/jobs/rpc.js +51 -1
- package/dist/jobs/rpc.js.map +1 -1
- package/dist/jobs/runtime.types.d.ts +49 -0
- package/dist/jobs/runtime.types.d.ts.map +1 -0
- package/dist/jobs/runtime.types.js +2 -0
- package/dist/jobs/runtime.types.js.map +1 -0
- package/dist/jobs/support-lookups.d.ts +20 -0
- package/dist/jobs/support-lookups.d.ts.map +1 -0
- package/dist/jobs/support-lookups.js +34 -0
- package/dist/jobs/support-lookups.js.map +1 -0
- package/dist/jobs/support.d.ts +56 -1
- package/dist/jobs/support.d.ts.map +1 -1
- package/dist/jobs/support.js +61 -20
- package/dist/jobs/support.js.map +1 -1
- package/dist/jobs/types.d.ts +17 -42
- package/dist/jobs/types.d.ts.map +1 -1
- package/dist/jobs/types.js +20 -0
- package/dist/jobs/types.js.map +1 -1
- package/dist/manifest-validation.d.ts +12 -1
- package/dist/manifest-validation.d.ts.map +1 -1
- package/dist/manifest-validation.js +17 -0
- package/dist/manifest-validation.js.map +1 -1
- package/dist/manifest-validation.types.d.ts +3 -0
- package/dist/manifest-validation.types.d.ts.map +1 -0
- package/dist/manifest-validation.types.js +2 -0
- package/dist/manifest-validation.types.js.map +1 -0
- package/dist/materialize-routes-utils.d.ts +41 -1
- package/dist/materialize-routes-utils.d.ts.map +1 -1
- package/dist/materialize-routes-utils.js +80 -22
- package/dist/materialize-routes-utils.js.map +1 -1
- package/dist/materialize-routes-validation.d.ts +4 -0
- package/dist/materialize-routes-validation.d.ts.map +1 -1
- package/dist/materialize-routes-validation.js +5 -1
- package/dist/materialize-routes-validation.js.map +1 -1
- package/dist/materialize-routes.d.ts +9 -100
- package/dist/materialize-routes.d.ts.map +1 -1
- package/dist/materialize-routes.js +24 -9
- package/dist/materialize-routes.js.map +1 -1
- package/dist/materialize-routes.types.d.ts +110 -0
- package/dist/materialize-routes.types.d.ts.map +1 -0
- package/dist/materialize-routes.types.js +2 -0
- package/dist/materialize-routes.types.js.map +1 -0
- package/dist/mcp.d.ts +39 -4
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +56 -10
- package/dist/mcp.js.map +1 -1
- package/dist/mcp.types.d.ts +15 -0
- package/dist/mcp.types.d.ts.map +1 -0
- package/dist/mcp.types.js +2 -0
- package/dist/mcp.types.js.map +1 -0
- package/dist/middleware-limits.d.ts +4 -0
- package/dist/middleware-limits.d.ts.map +1 -1
- package/dist/middleware-limits.js +16 -7
- package/dist/middleware-limits.js.map +1 -1
- package/dist/middleware-utils.d.ts +62 -53
- package/dist/middleware-utils.d.ts.map +1 -1
- package/dist/middleware-utils.js +72 -1
- package/dist/middleware-utils.js.map +1 -1
- package/dist/middleware-utils.types.d.ts +59 -0
- package/dist/middleware-utils.types.d.ts.map +1 -0
- package/dist/middleware-utils.types.js +2 -0
- package/dist/middleware-utils.types.js.map +1 -0
- package/dist/middleware.d.ts +19 -7
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +28 -6
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.types.d.ts +10 -0
- package/dist/middleware.types.d.ts.map +1 -0
- package/dist/middleware.types.js +2 -0
- package/dist/middleware.types.js.map +1 -0
- package/dist/native-stream.d.ts +18 -1
- package/dist/native-stream.d.ts.map +1 -1
- package/dist/native-stream.js +55 -4
- package/dist/native-stream.js.map +1 -1
- package/dist/native-stream.schemas.d.ts +6 -0
- package/dist/native-stream.schemas.d.ts.map +1 -0
- package/dist/native-stream.schemas.js +6 -0
- package/dist/native-stream.schemas.js.map +1 -0
- package/dist/native-stream.types.d.ts +4 -0
- package/dist/native-stream.types.d.ts.map +1 -0
- package/dist/native-stream.types.js +2 -0
- package/dist/native-stream.types.js.map +1 -0
- package/dist/rate-limit-store.d.ts +37 -11
- package/dist/rate-limit-store.d.ts.map +1 -1
- package/dist/rate-limit-store.js +108 -43
- package/dist/rate-limit-store.js.map +1 -1
- package/dist/rate-limit-store.types.d.ts +18 -0
- package/dist/rate-limit-store.types.d.ts.map +1 -0
- package/dist/rate-limit-store.types.js +2 -0
- package/dist/rate-limit-store.types.js.map +1 -0
- package/dist/rate-limit-telemetry.d.ts +9 -0
- package/dist/rate-limit-telemetry.d.ts.map +1 -1
- package/dist/rate-limit-telemetry.js +9 -0
- package/dist/rate-limit-telemetry.js.map +1 -1
- package/dist/rate-limit.d.ts +8 -7
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +42 -0
- package/dist/rate-limit.js.map +1 -1
- package/dist/rate-limit.types.d.ts +9 -0
- package/dist/rate-limit.types.d.ts.map +1 -0
- package/dist/rate-limit.types.js +2 -0
- package/dist/rate-limit.types.js.map +1 -0
- package/dist/realtime-observation.d.ts +40 -0
- package/dist/realtime-observation.d.ts.map +1 -0
- package/dist/realtime-observation.js +147 -0
- package/dist/realtime-observation.js.map +1 -0
- package/dist/realtime-observation.types.d.ts +20 -0
- package/dist/realtime-observation.types.d.ts.map +1 -0
- package/dist/realtime-observation.types.js +2 -0
- package/dist/realtime-observation.types.js.map +1 -0
- package/dist/realtime-presence.d.ts +13 -0
- package/dist/realtime-presence.d.ts.map +1 -0
- package/dist/realtime-presence.js +24 -0
- package/dist/realtime-presence.js.map +1 -0
- package/dist/realtime-rpc-support.d.ts +15 -8
- package/dist/realtime-rpc-support.d.ts.map +1 -1
- package/dist/realtime-rpc-support.js +25 -5
- package/dist/realtime-rpc-support.js.map +1 -1
- package/dist/realtime-rpc-support.types.d.ts +9 -0
- package/dist/realtime-rpc-support.types.d.ts.map +1 -0
- package/dist/realtime-rpc-support.types.js +2 -0
- package/dist/realtime-rpc-support.types.js.map +1 -0
- package/dist/realtime-rpc.d.ts +4 -0
- package/dist/realtime-rpc.d.ts.map +1 -1
- package/dist/realtime-rpc.js +9 -124
- package/dist/realtime-rpc.js.map +1 -1
- package/dist/realtime-runtime.d.ts +1 -12
- package/dist/realtime-runtime.d.ts.map +1 -1
- package/dist/realtime-runtime.types.d.ts +14 -0
- package/dist/realtime-runtime.types.d.ts.map +1 -0
- package/dist/realtime-runtime.types.js +2 -0
- package/dist/realtime-runtime.types.js.map +1 -0
- package/dist/request-body-service.d.ts +23 -0
- package/dist/request-body-service.d.ts.map +1 -0
- package/dist/request-body-service.js +80 -0
- package/dist/request-body-service.js.map +1 -0
- package/dist/request-body-service.types.d.ts +7 -0
- package/dist/request-body-service.types.d.ts.map +1 -0
- package/dist/request-body-service.types.js +2 -0
- package/dist/request-body-service.types.js.map +1 -0
- package/dist/request-context.d.ts +5 -0
- package/dist/request-context.d.ts.map +1 -1
- package/dist/request-context.js +34 -0
- package/dist/request-context.js.map +1 -1
- package/dist/request-inference.d.ts +11 -0
- package/dist/request-inference.d.ts.map +1 -1
- package/dist/request-inference.js +33 -0
- package/dist/request-inference.js.map +1 -1
- package/dist/request-mapping-body.d.ts +10 -23
- package/dist/request-mapping-body.d.ts.map +1 -1
- package/dist/request-mapping-body.js +36 -30
- package/dist/request-mapping-body.js.map +1 -1
- package/dist/request-mapping-body.schemas.d.ts +9 -0
- package/dist/request-mapping-body.schemas.d.ts.map +1 -0
- package/dist/request-mapping-body.schemas.js +11 -0
- package/dist/request-mapping-body.schemas.js.map +1 -0
- package/dist/request-mapping-body.types.d.ts +31 -0
- package/dist/request-mapping-body.types.d.ts.map +1 -0
- package/dist/request-mapping-body.types.js +2 -0
- package/dist/request-mapping-body.types.js.map +1 -0
- package/dist/request-mapping-fields.d.ts +35 -0
- package/dist/request-mapping-fields.d.ts.map +1 -1
- package/dist/request-mapping-fields.js +48 -0
- package/dist/request-mapping-fields.js.map +1 -1
- package/dist/request-mapping-object.d.ts +22 -12
- package/dist/request-mapping-object.d.ts.map +1 -1
- package/dist/request-mapping-object.js +34 -4
- package/dist/request-mapping-object.js.map +1 -1
- package/dist/request-mapping-object.types.d.ts +19 -0
- package/dist/request-mapping-object.types.d.ts.map +1 -0
- package/dist/request-mapping-object.types.js +2 -0
- package/dist/request-mapping-object.types.js.map +1 -0
- package/dist/request-mapping-sources.d.ts +28 -1
- package/dist/request-mapping-sources.d.ts.map +1 -1
- package/dist/request-mapping-sources.js +27 -0
- package/dist/request-mapping-sources.js.map +1 -1
- package/dist/request-mapping-transform.d.ts +8 -0
- package/dist/request-mapping-transform.d.ts.map +1 -1
- package/dist/request-mapping-transform.js +20 -0
- package/dist/request-mapping-transform.js.map +1 -1
- package/dist/request-mapping.d.ts +31 -29
- package/dist/request-mapping.d.ts.map +1 -1
- package/dist/request-mapping.js +55 -15
- package/dist/request-mapping.js.map +1 -1
- package/dist/request-mapping.types.d.ts +38 -0
- package/dist/request-mapping.types.d.ts.map +1 -0
- package/dist/request-mapping.types.js +2 -0
- package/dist/request-mapping.types.js.map +1 -0
- package/dist/request-record-middleware.d.ts +14 -1
- package/dist/request-record-middleware.d.ts.map +1 -1
- package/dist/request-record-middleware.js +22 -0
- package/dist/request-record-middleware.js.map +1 -1
- package/dist/request-record-utils.d.ts +25 -2
- package/dist/request-record-utils.d.ts.map +1 -1
- package/dist/request-record-utils.js +27 -2
- package/dist/request-record-utils.js.map +1 -1
- package/dist/response-mapping-provider.d.ts +9 -0
- package/dist/response-mapping-provider.d.ts.map +1 -0
- package/dist/response-mapping-provider.js +15 -0
- package/dist/response-mapping-provider.js.map +1 -0
- package/dist/response-mapping-utils.d.ts +46 -2
- package/dist/response-mapping-utils.d.ts.map +1 -1
- package/dist/response-mapping-utils.js +56 -0
- package/dist/response-mapping-utils.js.map +1 -1
- package/dist/response-mapping-utils.types.d.ts +5 -0
- package/dist/response-mapping-utils.types.d.ts.map +1 -0
- package/dist/response-mapping-utils.types.js +2 -0
- package/dist/response-mapping-utils.types.js.map +1 -0
- package/dist/response-mapping-validation.d.ts +13 -0
- package/dist/response-mapping-validation.d.ts.map +1 -0
- package/dist/response-mapping-validation.js +20 -0
- package/dist/response-mapping-validation.js.map +1 -0
- package/dist/response-mapping.d.ts +57 -8
- package/dist/response-mapping.d.ts.map +1 -1
- package/dist/response-mapping.js +114 -72
- package/dist/response-mapping.js.map +1 -1
- package/dist/response-mapping.types.d.ts +11 -0
- package/dist/response-mapping.types.d.ts.map +1 -0
- package/dist/response-mapping.types.js +2 -0
- package/dist/response-mapping.types.js.map +1 -0
- package/dist/route-middleware.d.ts +5 -0
- package/dist/route-middleware.d.ts.map +1 -1
- package/dist/route-middleware.js +29 -5
- package/dist/route-middleware.js.map +1 -1
- package/dist/rpc-identity.d.ts +13 -6
- package/dist/rpc-identity.d.ts.map +1 -1
- package/dist/rpc-identity.js +11 -0
- package/dist/rpc-identity.js.map +1 -1
- package/dist/rpc-identity.types.d.ts +9 -0
- package/dist/rpc-identity.types.d.ts.map +1 -0
- package/dist/rpc-identity.types.js +2 -0
- package/dist/rpc-identity.types.js.map +1 -0
- package/dist/rpc-middleware-trace.d.ts +14 -0
- package/dist/rpc-middleware-trace.d.ts.map +1 -1
- package/dist/rpc-middleware-trace.js +20 -4
- package/dist/rpc-middleware-trace.js.map +1 -1
- package/dist/rpc-response.d.ts +12 -0
- package/dist/rpc-response.d.ts.map +1 -1
- package/dist/rpc-response.js +12 -0
- package/dist/rpc-response.js.map +1 -1
- package/dist/rpc-route-types.d.ts +26 -1
- package/dist/rpc-route-types.d.ts.map +1 -1
- package/dist/rpc-route-types.js +37 -0
- package/dist/rpc-route-types.js.map +1 -1
- package/dist/rpc-websocket.d.ts +6 -1
- package/dist/rpc-websocket.d.ts.map +1 -1
- package/dist/rpc-websocket.js +20 -1
- package/dist/rpc-websocket.js.map +1 -1
- package/dist/rpc.d.ts +11 -3
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +43 -6
- package/dist/rpc.js.map +1 -1
- package/dist/rpc.types.d.ts +5 -0
- package/dist/rpc.types.d.ts.map +1 -0
- package/dist/rpc.types.js +2 -0
- package/dist/rpc.types.js.map +1 -0
- package/dist/static-file-service.d.ts +22 -0
- package/dist/static-file-service.d.ts.map +1 -0
- package/dist/static-file-service.js +43 -0
- package/dist/static-file-service.js.map +1 -0
- package/dist/static-files.d.ts +7 -3
- package/dist/static-files.d.ts.map +1 -1
- package/dist/static-files.js +32 -19
- package/dist/static-files.js.map +1 -1
- package/dist/static-files.types.d.ts +5 -0
- package/dist/static-files.types.d.ts.map +1 -0
- package/dist/static-files.types.js +2 -0
- package/dist/static-files.types.js.map +1 -0
- package/dist/transport-security-errors.d.ts +10 -0
- package/dist/transport-security-errors.d.ts.map +1 -0
- package/dist/transport-security-errors.js +14 -0
- package/dist/transport-security-errors.js.map +1 -0
- package/dist/transport-security.d.ts +49 -13
- package/dist/transport-security.d.ts.map +1 -1
- package/dist/transport-security.js +86 -15
- package/dist/transport-security.js.map +1 -1
- package/dist/transport-security.types.d.ts +11 -0
- package/dist/transport-security.types.d.ts.map +1 -0
- package/dist/transport-security.types.js +2 -0
- package/dist/transport-security.types.js.map +1 -0
- package/package.json +19 -16
package/dist/rpc-websocket.js
CHANGED
|
@@ -2,7 +2,12 @@ import { RPCHandler } from "@orpc/server/websocket";
|
|
|
2
2
|
import { REALTIME_RUNTIME_LIMITS } from "@relkit/contracts";
|
|
3
3
|
import { createRpcRouter } from "./rpc.js";
|
|
4
4
|
import { assertWebSocketRequest } from "./transport-security.js";
|
|
5
|
-
/** Installs the oRPC WebSocket adapter on the same router and policies as HTTP RPC.
|
|
5
|
+
/** Installs the oRPC WebSocket adapter on the same router and policies as HTTP RPC.
|
|
6
|
+
* @param app - Hono application receiving the configured endpoints or middleware.
|
|
7
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
8
|
+
* @param upgradeWebSocket - Bun adapter callback that upgrades an admitted native request.
|
|
9
|
+
* @returns Nothing; the requested update is applied to the owned state.
|
|
10
|
+
*/
|
|
6
11
|
export function installRpcWebSocket(app, options, upgradeWebSocket) {
|
|
7
12
|
const handler = new RPCHandler(createRpcRouter(options).router);
|
|
8
13
|
app.get("/rpc", upgradeWebSocket(async (hono) => {
|
|
@@ -14,6 +19,11 @@ export function installRpcWebSocket(app, options, upgradeWebSocket) {
|
|
|
14
19
|
auth: options.auth?.contextFor(hono.req.raw),
|
|
15
20
|
};
|
|
16
21
|
return {
|
|
22
|
+
/** Forwards one admitted WebSocket message to the protocol handler.
|
|
23
|
+
* @param event - Event or record being projected into the target protocol.
|
|
24
|
+
* @param socket - Native WebSocket connection whose protocol state is owned by the handler.
|
|
25
|
+
* @returns Nothing; the frame is dispatched or the connection is closed for an oversized message.
|
|
26
|
+
*/
|
|
17
27
|
onMessage(event, socket) {
|
|
18
28
|
if (encodedBytes(event.data) > REALTIME_RUNTIME_LIMITS.transportFrameBytes) {
|
|
19
29
|
socket.close(1009, "Relkit frame exceeds the transport limit.");
|
|
@@ -28,12 +38,21 @@ export function installRpcWebSocket(app, options, upgradeWebSocket) {
|
|
|
28
38
|
socket.close(1011, "Relkit RPC transport failed.");
|
|
29
39
|
});
|
|
30
40
|
},
|
|
41
|
+
/** Releases protocol state when the WebSocket closes.
|
|
42
|
+
* @param _event - Unused native close event; cleanup is keyed by its socket.
|
|
43
|
+
* @param socket - Native WebSocket connection whose protocol state is owned by the handler.
|
|
44
|
+
* @returns Nothing; protocol cleanup is requested for the closed socket.
|
|
45
|
+
*/
|
|
31
46
|
onClose(_event, socket) {
|
|
32
47
|
void handler.close((socket.raw ?? socket));
|
|
33
48
|
},
|
|
34
49
|
};
|
|
35
50
|
}));
|
|
36
51
|
}
|
|
52
|
+
/** Measures the UTF-8 byte size used by transport or journal limits.
|
|
53
|
+
* @param value - Value inspected, validated or projected by this operation.
|
|
54
|
+
* @returns The encoded byte length, or infinity for an unsupported frame representation.
|
|
55
|
+
*/
|
|
37
56
|
function encodedBytes(value) {
|
|
38
57
|
if (typeof value === "string")
|
|
39
58
|
return new TextEncoder().encode(value).byteLength;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-websocket.js","sourceRoot":"","sources":["../src/rpc-websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc-websocket.js","sourceRoot":"","sources":["../src/rpc-websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,EAAE,eAAe,EAAmB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAS,EACT,OAAoC,EACpC,gBAAkC;IAElC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAa,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,GAAG,CAAC,GAAG,CACL,MAAM,EACN,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,OAAO,GAAe;YAC1B,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;SAC7C,CAAC;QACF,OAAO;YACL;;;;eAIG;YACH,SAAS,CAAC,KAAK,EAAE,MAAM;gBACrB,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;oBAC3E,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,2CAA2C,CAAC,CAAC;oBAChE,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAkB,CAAC;gBACrD,KAAK,OAAO;qBACT,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAA4B,EAAE;oBACjD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;iBACpE,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE;oBACV,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;YACP,CAAC;YACD;;;;eAIG;YACH,OAAO,CAAC,MAAM,EAAE,MAAM;gBACpB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAkB,CAAC,CAAC;YAC9D,CAAC;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;IACjF,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC7C,IAAI,KAAK,YAAY,WAAW;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1D,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IACvD,OAAO,MAAM,CAAC,iBAAiB,CAAC;AAClC,CAAC"}
|
package/dist/rpc.d.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { type Router } from "@orpc/server";
|
|
2
2
|
import type { Hono } from "hono";
|
|
3
3
|
import type { RouteMaterializationOptions } from "./materialize-routes.js";
|
|
4
|
-
import {
|
|
5
|
-
export
|
|
6
|
-
|
|
4
|
+
import type { RpcContext } from "./rpc.types.js";
|
|
5
|
+
export type { RpcContext } from "./rpc.types.js";
|
|
6
|
+
/** Registers the existing HTTP oRPC transport over materialized procedures.
|
|
7
|
+
* @param app - Hono application receiving the configured endpoints or middleware.
|
|
8
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
9
|
+
* @returns Nothing; mounts the RPC handler at the exact prefix and all descendant paths.
|
|
10
|
+
*/
|
|
7
11
|
export declare function installRpc(app: Hono, options: RouteMaterializationOptions): void;
|
|
12
|
+
/** Builds declared route, agent, realtime and job procedures for the active generation.
|
|
13
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
14
|
+
* @returns The combined procedure router and its public error-to-status mapping.
|
|
15
|
+
*/
|
|
8
16
|
export declare function createRpcRouter(options: RouteMaterializationOptions): {
|
|
9
17
|
readonly router: Router<RpcContext>;
|
|
10
18
|
readonly errorStatusMap: Readonly<Record<string, number>>;
|
package/dist/rpc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAW,IAAI,EAAQ,MAAM,MAAM,CAAC;AAKhD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAgB3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAiBhF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,2BAA2B,GAAG;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3D,CA8BA"}
|
package/dist/rpc.js
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
|
-
import { ORPCError, os } from "@orpc/server";
|
|
1
|
+
import { COMMON_ERROR_STATUS_MAP, ORPCError, os, } from "@orpc/server";
|
|
2
2
|
import { RPCHandler } from "@orpc/server/fetch";
|
|
3
|
+
import { agentErrorStatuses, agentProcedures } from "./agent-rpc.js";
|
|
4
|
+
import { invokeHttpEngine } from "./http-invocation.js";
|
|
5
|
+
import { jobsErrorStatuses, jobsProcedures } from "./jobs/rpc.js";
|
|
3
6
|
import { getEntry, isRecord } from "./materialize-routes-utils.js";
|
|
7
|
+
import { realtimeProcedures } from "./realtime-rpc.js";
|
|
8
|
+
import { assertExpectedIdentity, assertRpcSecurity } from "./rpc-identity.js";
|
|
4
9
|
import { createRpcMiddlewareContext, runRpcMiddleware as runTracedMiddleware, } from "./rpc-middleware-trace.js";
|
|
5
|
-
import { assertExpectedIdentity, assertRpcSecurity, } from "./rpc-identity.js";
|
|
6
10
|
import { responseError, rpcError, rpcNotFound } from "./rpc-response.js";
|
|
7
|
-
import { realtimeProcedures } from "./realtime-rpc.js";
|
|
8
|
-
import { agentErrorStatuses, agentProcedures } from "./agent-rpc.js";
|
|
9
|
-
import { jobsErrorStatuses, jobsProcedures } from "./jobs/rpc.js";
|
|
10
11
|
import { errorStatuses, isMiddleware, isSchema, routeOperation, rpcOutput, rpcOutputSchema, } from "./rpc-route-types.js";
|
|
12
|
+
/** Registers the existing HTTP oRPC transport over materialized procedures.
|
|
13
|
+
* @param app - Hono application receiving the configured endpoints or middleware.
|
|
14
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
15
|
+
* @returns Nothing; mounts the RPC handler at the exact prefix and all descendant paths.
|
|
16
|
+
*/
|
|
11
17
|
export function installRpc(app, options) {
|
|
12
18
|
const { router, errorStatusMap } = createRpcRouter(options);
|
|
13
19
|
const handler = new RPCHandler(router, { errorStatusMap });
|
|
20
|
+
/** Attach request authentication before dispatching through the installed oRPC router.
|
|
21
|
+
* @param context - Incoming Hono context for the RPC endpoint.
|
|
22
|
+
* @returns The matching RPC response, or the stable RPC not-found response.
|
|
23
|
+
*/
|
|
14
24
|
const route = async (context) => {
|
|
15
25
|
const auth = options.auth?.contextFor(context.req.raw);
|
|
16
26
|
const result = await handler.handle(context.req.raw, {
|
|
@@ -22,9 +32,14 @@ export function installRpc(app, options) {
|
|
|
22
32
|
app.all("/rpc", route);
|
|
23
33
|
app.all("/rpc/*", route);
|
|
24
34
|
}
|
|
35
|
+
/** Builds declared route, agent, realtime and job procedures for the active generation.
|
|
36
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
37
|
+
* @returns The combined procedure router and its public error-to-status mapping.
|
|
38
|
+
*/
|
|
25
39
|
export function createRpcRouter(options) {
|
|
26
40
|
const triggers = options.plan.httpTriggers.filter((trigger) => trigger.config.rawHandler !== true && trigger.config.client !== false);
|
|
27
41
|
const errorStatusMap = {
|
|
42
|
+
...COMMON_ERROR_STATUS_MAP,
|
|
28
43
|
...Object.fromEntries(triggers.flatMap((trigger) => errorStatuses(trigger))),
|
|
29
44
|
...agentErrorStatuses,
|
|
30
45
|
...jobsErrorStatuses,
|
|
@@ -46,6 +61,11 @@ export function createRpcRouter(options) {
|
|
|
46
61
|
};
|
|
47
62
|
return { router, errorStatusMap };
|
|
48
63
|
}
|
|
64
|
+
/** Adapts one registered route to its oRPC procedure contract.
|
|
65
|
+
* @param trigger - Registered route declaration with its target and transport contract.
|
|
66
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
67
|
+
* @returns The typed oRPC procedure, or undefined when target schemas are unavailable.
|
|
68
|
+
*/
|
|
49
69
|
function procedure(trigger, options) {
|
|
50
70
|
const target = getEntry(options.manifest.targets ?? {}, trigger.targetFunctionId) ??
|
|
51
71
|
getEntry(options.manifest.functions, trigger.targetFunctionId);
|
|
@@ -80,7 +100,10 @@ function procedure(trigger, options) {
|
|
|
80
100
|
if (routeOperation(trigger) === "mutation" && options.transportSecurity !== undefined) {
|
|
81
101
|
await assertRpcSecurity(context, options.transportSecurity);
|
|
82
102
|
}
|
|
83
|
-
|
|
103
|
+
/** Invoke the registered function with validated RPC input and inherited cancellation.
|
|
104
|
+
* @returns The engine's native result Promise, including any lazy output stream.
|
|
105
|
+
*/
|
|
106
|
+
const invoke = () => invokeHttpEngine(options.engine, {
|
|
84
107
|
functionId: trigger.targetFunctionId,
|
|
85
108
|
input,
|
|
86
109
|
source: "http",
|
|
@@ -98,6 +121,13 @@ function procedure(trigger, options) {
|
|
|
98
121
|
}
|
|
99
122
|
});
|
|
100
123
|
}
|
|
124
|
+
/** Preserves declared middleware onion order around an oRPC route invocation.
|
|
125
|
+
* @param trigger - Registered route declaration with its target and transport contract.
|
|
126
|
+
* @param context - Trusted Hono or oRPC request context containing request state and authentication.
|
|
127
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
128
|
+
* @param invoke - invoke supplied by the caller.
|
|
129
|
+
* @returns The target result after middleware unwinds, or a public error for a rejected continuation.
|
|
130
|
+
*/
|
|
101
131
|
async function runMiddleware(trigger, context, options, invoke) {
|
|
102
132
|
const ids = trigger.config.middleware
|
|
103
133
|
.map((entry) => entry.id)
|
|
@@ -105,6 +135,10 @@ async function runMiddleware(trigger, context, options, invoke) {
|
|
|
105
135
|
const value = getEntry(options.manifest.middleware, id);
|
|
106
136
|
return isRecord(value) && value.path !== "*";
|
|
107
137
|
});
|
|
138
|
+
/** Traverse declared middleware in onion order and invoke the target at the final index.
|
|
139
|
+
* @param index - Next middleware position in the filtered declaration list.
|
|
140
|
+
* @returns The downstream value; middleware responses and missing continuation become RPC errors.
|
|
141
|
+
*/
|
|
108
142
|
const run = async (index) => {
|
|
109
143
|
if (index === ids.length)
|
|
110
144
|
return invoke();
|
|
@@ -113,6 +147,9 @@ async function runMiddleware(trigger, context, options, invoke) {
|
|
|
113
147
|
return run(index + 1);
|
|
114
148
|
let continued = false;
|
|
115
149
|
let output;
|
|
150
|
+
/** Mark this middleware as continued and capture its downstream result.
|
|
151
|
+
* @returns A Promise settling after the remaining middleware and target complete.
|
|
152
|
+
*/
|
|
116
153
|
const next = async () => {
|
|
117
154
|
continued = true;
|
|
118
155
|
output = await run(index + 1);
|
package/dist/rpc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.types.d.ts","sourceRoot":"","sources":["../src/rpc.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,4CAA4C;AAC5C,MAAM,WAAW,UAAW,SAAQ,kBAAkB;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.types.js","sourceRoot":"","sources":["../src/rpc.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import { HttpBoundaryError } from "./http-effect.js";
|
|
3
|
+
declare const StaticFileSystem_base: Context.ServiceClass<StaticFileSystem, "@relkit/runtime-hono/StaticFileSystem", {
|
|
4
|
+
readonly realpath: (path: string) => Effect.Effect<string, HttpBoundaryError>;
|
|
5
|
+
readonly isFile: (path: string) => Effect.Effect<boolean, HttpBoundaryError>;
|
|
6
|
+
readonly open: (path: string) => Effect.Effect<Bun.BunFile, HttpBoundaryError>;
|
|
7
|
+
}>;
|
|
8
|
+
/** Filesystem operations needed to resolve a confined public file. */
|
|
9
|
+
export declare class StaticFileSystem extends StaticFileSystem_base {
|
|
10
|
+
}
|
|
11
|
+
/** Resolves symlinks and creates native Bun file bodies at the filesystem boundary. */
|
|
12
|
+
export declare const StaticFileSystemLive: Layer.Layer<StaticFileSystem, never, never>;
|
|
13
|
+
declare const StaticFiles_base: Context.ServiceClass<StaticFiles, "@relkit/runtime-hono/StaticFiles", {
|
|
14
|
+
readonly find: (root: string, path: string) => Effect.Effect<Bun.BunFile | undefined>;
|
|
15
|
+
}>;
|
|
16
|
+
/** Selects a public regular file or index while preventing symlink escape. */
|
|
17
|
+
export declare class StaticFiles extends StaticFiles_base {
|
|
18
|
+
}
|
|
19
|
+
/** Domain layer; filesystem failures remain indistinguishable from missing files. */
|
|
20
|
+
export declare const StaticFilesLive: Layer.Layer<StaticFiles, never, StaticFileSystem>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=static-file-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-file-service.d.ts","sourceRoot":"","sources":["../src/static-file-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAgB,iBAAiB,EAAe,MAAM,kBAAkB,CAAC;;uBAMzD,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;qBAC5D,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC;mBAC7D,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC;;AANlF,sEAAsE;AACtE,qBAAa,gBAAiB,SAAQ,qBAOM;CAAG;AAE/C,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,6CAQ/B,CAAC;;mBAMgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;;AAJzF,8EAA8E;AAC9E,qBAAa,WAAY,SAAQ,gBAKM;CAAG;AAE1C,qFAAqF;AACrF,eAAO,MAAM,eAAe,mDA4B3B,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { realpath, stat } from "node:fs/promises";
|
|
2
|
+
import { relative, resolve, sep } from "node:path";
|
|
3
|
+
import { Context, Effect, Layer, Option } from "effect";
|
|
4
|
+
import { httpBoundary, HttpBoundaryError, observeHttp } from "./http-effect.js";
|
|
5
|
+
/** Filesystem operations needed to resolve a confined public file. */
|
|
6
|
+
export class StaticFileSystem extends Context.Service()("@relkit/runtime-hono/StaticFileSystem") {
|
|
7
|
+
}
|
|
8
|
+
/** Resolves symlinks and creates native Bun file bodies at the filesystem boundary. */
|
|
9
|
+
export const StaticFileSystemLive = Layer.succeed(StaticFileSystem, {
|
|
10
|
+
realpath: (path) => httpBoundary("static.realpath", () => realpath(path)),
|
|
11
|
+
isFile: (path) => httpBoundary("static.stat", async () => (await stat(path)).isFile()),
|
|
12
|
+
open: (path) => Effect.try({
|
|
13
|
+
try: () => Bun.file(path),
|
|
14
|
+
catch: (cause) => new HttpBoundaryError({ operation: "static.open", cause }),
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
17
|
+
/** Selects a public regular file or index while preventing symlink escape. */
|
|
18
|
+
export class StaticFiles extends Context.Service()("@relkit/runtime-hono/StaticFiles") {
|
|
19
|
+
}
|
|
20
|
+
/** Domain layer; filesystem failures remain indistinguishable from missing files. */
|
|
21
|
+
export const StaticFilesLive = Layer.effect(StaticFiles, Effect.gen(function* () {
|
|
22
|
+
const fs = yield* StaticFileSystem;
|
|
23
|
+
return {
|
|
24
|
+
find: Effect.fn("StaticFiles.find")((root, path) => observeHttp("static.find", Effect.gen(function* () {
|
|
25
|
+
const actualRoot = yield* fs
|
|
26
|
+
.realpath(root)
|
|
27
|
+
.pipe(Effect.catch(() => Effect.succeed(root)));
|
|
28
|
+
for (const candidate of [path, resolve(path, "index.html")]) {
|
|
29
|
+
const result = yield* Effect.gen(function* () {
|
|
30
|
+
const actual = yield* fs.realpath(candidate);
|
|
31
|
+
const child = relative(actualRoot, actual);
|
|
32
|
+
if (child === ".." || child.startsWith(`..${sep}`) || !(yield* fs.isFile(actual)))
|
|
33
|
+
return undefined;
|
|
34
|
+
return yield* fs.open(actual);
|
|
35
|
+
}).pipe(Effect.option);
|
|
36
|
+
if (Option.isSome(result) && result.value !== undefined)
|
|
37
|
+
return result.value;
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}))),
|
|
41
|
+
};
|
|
42
|
+
}));
|
|
43
|
+
//# sourceMappingURL=static-file-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-file-service.js","sourceRoot":"","sources":["../src/static-file-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhF,sEAAsE;AACtE,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,OAAO,EAOlD,CAAC,uCAAuC,CAAC;CAAG;AAE/C,uFAAuF;AACvF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE;IAClE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACtF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CACb,MAAM,CAAC,GAAG,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KAC7E,CAAC;CACL,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAK7C,CAAC,kCAAkC,CAAC;CAAG;AAE1C,qFAAqF;AACrF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CACzC,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;IACnC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CACjE,WAAW,CACT,aAAa,EACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,EAAE;iBACzB,QAAQ,CAAC,IAAI,CAAC;iBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClD,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC/E,OAAO,SAAS,CAAC;oBACnB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACvB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;oBAAE,OAAO,MAAM,CAAC,KAAK,CAAC;YAC/E,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CACH,CACF;KACF,CAAC;AACJ,CAAC,CAAC,CACH,CAAC"}
|
package/dist/static-files.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { Hono } from "hono";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import type { StaticFilesOptions } from "./static-files.types.js";
|
|
3
|
+
export type { StaticFilesOptions } from "./static-files.types.js";
|
|
4
|
+
/** Registers declared assets while retaining route precedence and confinement checks.
|
|
5
|
+
* @param app - Hono application receiving the configured endpoints or middleware.
|
|
6
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
7
|
+
* @returns Nothing; the requested update is applied to the owned state.
|
|
8
|
+
*/
|
|
5
9
|
export declare function installStaticFiles(app: Hono, options: StaticFilesOptions | undefined): void;
|
|
6
10
|
//# sourceMappingURL=static-files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-files.d.ts","sourceRoot":"","sources":["../src/static-files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"static-files.d.ts","sourceRoot":"","sources":["../src/static-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,CAU3F"}
|
package/dist/static-files.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Effect, Layer } from "effect";
|
|
2
|
+
import { relative, resolve, sep } from "node:path";
|
|
3
|
+
import { runHttp } from "./http-effect.js";
|
|
4
|
+
import { StaticFiles, StaticFilesLive, StaticFileSystemLive } from "./static-file-service.js";
|
|
5
|
+
/** Registers declared assets while retaining route precedence and confinement checks.
|
|
6
|
+
* @param app - Hono application receiving the configured endpoints or middleware.
|
|
7
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
8
|
+
* @returns Nothing; the requested update is applied to the owned state.
|
|
9
|
+
*/
|
|
3
10
|
export function installStaticFiles(app, options) {
|
|
4
11
|
if (options === undefined)
|
|
5
12
|
return;
|
|
@@ -14,6 +21,11 @@ export function installStaticFiles(app, options) {
|
|
|
14
21
|
return fileResponse(context, file);
|
|
15
22
|
});
|
|
16
23
|
}
|
|
24
|
+
/** Resolves a URL path beneath the configured public root and rejects traversal.
|
|
25
|
+
* @param root - Configured filesystem root that bounds served files.
|
|
26
|
+
* @param pathname - Decoded URL pathname resolved under the public root.
|
|
27
|
+
* @returns The confined absolute path, or undefined for malformed, hidden or traversing paths.
|
|
28
|
+
*/
|
|
17
29
|
function safePath(root, pathname) {
|
|
18
30
|
let decoded;
|
|
19
31
|
try {
|
|
@@ -31,25 +43,21 @@ function safePath(root, pathname) {
|
|
|
31
43
|
? path
|
|
32
44
|
: undefined;
|
|
33
45
|
}
|
|
46
|
+
/** Finds an existing confined file through the static-file service.
|
|
47
|
+
* @param root - Configured filesystem root that bounds served files.
|
|
48
|
+
* @param path - Ordered validation path or confined resource path.
|
|
49
|
+
* @returns The existing confined Bun file, or undefined when no public file matches.
|
|
50
|
+
*/
|
|
34
51
|
async function publicFile(root, path) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const actual = await realpath(candidate);
|
|
39
|
-
const child = relative(actualRoot, actual);
|
|
40
|
-
if (child === ".." ||
|
|
41
|
-
child.startsWith(`..${sep}`) ||
|
|
42
|
-
(await stat(actual)).isFile() === false) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
return Bun.file(actual);
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return undefined;
|
|
52
|
+
return runHttp(Effect.gen(function* () {
|
|
53
|
+
return yield* (yield* StaticFiles).find(root, path);
|
|
54
|
+
}).pipe(Effect.provide(StaticFilesLive.pipe(Layer.provide(StaticFileSystemLive)))));
|
|
52
55
|
}
|
|
56
|
+
/** Creates a range-aware file response with the established cache and content headers.
|
|
57
|
+
* @param context - Trusted Hono or oRPC request context containing request state and authentication.
|
|
58
|
+
* @param file - Confined native file selected by the static-file service.
|
|
59
|
+
* @returns A full, partial, not-modified or unsatisfiable-range response for the request.
|
|
60
|
+
*/
|
|
53
61
|
async function fileResponse(context, file) {
|
|
54
62
|
const etag = `"${file.size.toString(16)}-${file.lastModified.toString(16)}"`;
|
|
55
63
|
const headers = new Headers({
|
|
@@ -75,6 +83,11 @@ async function fileResponse(context, file) {
|
|
|
75
83
|
headers.set("content-length", String(file.size));
|
|
76
84
|
return new Response(context.req.method === "HEAD" ? null : file, { headers });
|
|
77
85
|
}
|
|
86
|
+
/** Parses one satisfiable byte range within the known file size.
|
|
87
|
+
* @param header - Raw header value parsed without trusting malformed input.
|
|
88
|
+
* @param size - Known total byte length of the selected file.
|
|
89
|
+
* @returns Inclusive byte offsets, undefined for no range, or "invalid" for an unsatisfiable range.
|
|
90
|
+
*/
|
|
78
91
|
function parseRange(header, size) {
|
|
79
92
|
if (header === undefined)
|
|
80
93
|
return undefined;
|
package/dist/static-files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-files.js","sourceRoot":"","sources":["../src/static-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"static-files.js","sourceRoot":"","sources":["../src/static-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-files.types.d.ts","sourceRoot":"","sources":["../src/static-files.types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-files.types.js","sourceRoot":"","sources":["../src/static-files.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Public origin or CSRF denial retained across transport adapters. */
|
|
2
|
+
export declare class TransportSecurityError extends Error {
|
|
3
|
+
readonly code: "ORIGIN_DENIED" | "CSRF_DENIED";
|
|
4
|
+
/** Create a safe transport-policy failure.
|
|
5
|
+
* @param code - Origin or CSRF failure classification.
|
|
6
|
+
* @param message - Public diagnostic describing the rejected policy.
|
|
7
|
+
*/
|
|
8
|
+
constructor(code: "ORIGIN_DENIED" | "CSRF_DENIED", message: string);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=transport-security-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-security-errors.d.ts","sourceRoot":"","sources":["../src/transport-security-errors.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,qBAAa,sBAAuB,SAAQ,KAAK;IAM7C,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa;IALhD;;;OAGG;gBAEQ,IAAI,EAAE,eAAe,GAAG,aAAa,EAC9C,OAAO,EAAE,MAAM;CAKlB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Public origin or CSRF denial retained across transport adapters. */
|
|
2
|
+
export class TransportSecurityError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
/** Create a safe transport-policy failure.
|
|
5
|
+
* @param code - Origin or CSRF failure classification.
|
|
6
|
+
* @param message - Public diagnostic describing the rejected policy.
|
|
7
|
+
*/
|
|
8
|
+
constructor(code, message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.name = "TransportSecurityError";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=transport-security-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-security-errors.js","sourceRoot":"","sources":["../src/transport-security-errors.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAMpC;IALX;;;OAGG;IACH,YACW,IAAqC,EAC9C,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAiC;QAI9C,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1,19 +1,55 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
2
|
import type { Hono } from "hono";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
readonly code: "ORIGIN_DENIED" | "CSRF_DENIED";
|
|
13
|
-
constructor(code: "ORIGIN_DENIED" | "CSRF_DENIED", message: string);
|
|
14
|
-
}
|
|
3
|
+
import { HttpBoundaryError } from "./http-effect.js";
|
|
4
|
+
import type { TransportSecurityOptions } from "./transport-security.types.js";
|
|
5
|
+
export { TransportSecurityError } from "./transport-security-errors.js";
|
|
6
|
+
export type { TransportSecurityOptions } from "./transport-security.types.js";
|
|
7
|
+
/** Installs origin, preflight and CSRF policy before application routes.
|
|
8
|
+
* @param app - Hono application receiving the configured endpoints or middleware.
|
|
9
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
10
|
+
* @returns Nothing; registers preflight, origin and CSRF middleware on the application.
|
|
11
|
+
*/
|
|
15
12
|
export declare function installTransportSecurity(app: Hono, options: TransportSecurityOptions | undefined): void;
|
|
13
|
+
/** Admit trusted service calls or enforce origin and CSRF policy for a mutation.
|
|
14
|
+
* @param request - Mutation request containing origin and optional CSRF headers.
|
|
15
|
+
* @param options - Trusted-service callback, admitted origins and token validator.
|
|
16
|
+
* @returns An effect succeeding for admitted requests or failing with the public security error.
|
|
17
|
+
*/
|
|
18
|
+
declare const stateChangingRequest: (request: Request, options: TransportSecurityOptions) => Effect.Effect<undefined, HttpBoundaryError, never>;
|
|
19
|
+
declare const RequestSecurity_base: Context.ServiceClass<RequestSecurity, "@relkit/runtime-hono/RequestSecurity", {
|
|
20
|
+
readonly stateChanging: typeof stateChangingRequest;
|
|
21
|
+
}>;
|
|
22
|
+
/** Validates origin and CSRF policy without replacing the public error class. */
|
|
23
|
+
export declare class RequestSecurity extends RequestSecurity_base {
|
|
24
|
+
}
|
|
25
|
+
/** Live trusted-service, origin and CSRF checks. */
|
|
26
|
+
export declare const RequestSecurityLive: Layer.Layer<RequestSecurity, never, never>;
|
|
27
|
+
/** Executes state-changing request policy at the native middleware edge.
|
|
28
|
+
* @param request - Native request whose headers, body and cancellation signal define this operation.
|
|
29
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
30
|
+
* @returns A Promise succeeding for admitted requests or rejecting with the public security error.
|
|
31
|
+
*/
|
|
16
32
|
export declare function assertStateChangingRequest(request: Request, options: TransportSecurityOptions): Promise<void>;
|
|
33
|
+
/** Rejects a WebSocket origin outside the configured credentialed origin policy.
|
|
34
|
+
* @param request - Native request whose headers, body and cancellation signal define this operation.
|
|
35
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
36
|
+
* @returns Nothing for an admitted origin; otherwise throws TransportSecurityError.
|
|
37
|
+
*/
|
|
17
38
|
export declare function assertWebSocketOrigin(request: Request, options: TransportSecurityOptions): void;
|
|
39
|
+
/** Allows trusted service callers or validates the WebSocket origin.
|
|
40
|
+
* @param request - Native request whose headers, body and cancellation signal define this operation.
|
|
41
|
+
* @param options - Application dependencies and configuration for this domain.
|
|
42
|
+
* @returns A Promise succeeding for trusted callers or admitted WebSocket origins.
|
|
43
|
+
*/
|
|
18
44
|
export declare function assertWebSocketRequest(request: Request, options: TransportSecurityOptions): Promise<void>;
|
|
45
|
+
/** Builds the normalized set of methods admitted by preflight policy.
|
|
46
|
+
* @param values - Configured values normalized into the resulting lookup set.
|
|
47
|
+
* @returns Uppercase allowed methods, using the default method set when unspecified.
|
|
48
|
+
*/
|
|
49
|
+
export declare function allowedMethods(values: readonly string[] | undefined): ReadonlySet<string>;
|
|
50
|
+
/** Normalizes configured origins and rejects credentialed wildcard access.
|
|
51
|
+
* @param values - Configured values normalized into the resulting lookup set.
|
|
52
|
+
* @returns Normalized exact origins; invalid or wildcard origins throw a configuration error.
|
|
53
|
+
*/
|
|
54
|
+
export declare function allowedOrigins(values: readonly string[]): ReadonlySet<string>;
|
|
19
55
|
//# sourceMappingURL=transport-security.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport-security.d.ts","sourceRoot":"","sources":["../src/transport-security.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport-security.d.ts","sourceRoot":"","sources":["../src/transport-security.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAgB,iBAAiB,EAAwB,MAAM,kBAAkB,CAAC;AAEzF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,IAAI,EACT,OAAO,EAAE,wBAAwB,GAAG,SAAS,GAC5C,IAAI,CAmCN;AAED;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,6GAkCxB,CAAC;;4BAKyB,OAAO,oBAAoB;;AAHvD,iFAAiF;AACjF,qBAAa,eAAgB,SAAQ,oBAGM;CAAG;AAE9C,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,4CAE9B,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAS/F;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAGf;AAsCD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAEzF;AAaD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAG7E"}
|