@lovrozagar/honey 0.7.3 → 1.0.0-rc.3
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/LICENSE +21 -0
- package/README.md +930 -1664
- package/bin/honey.js +87 -27
- package/dist/adapters/bun/serve.d.ts +18 -0
- package/dist/adapters/bun/serve.js +89 -0
- package/dist/adapters/fetch-request.d.ts +20 -0
- package/dist/adapters/fetch-request.js +29 -0
- package/dist/adapters/node/headers.d.ts +27 -0
- package/dist/adapters/node/headers.js +86 -0
- package/dist/adapters/node/request.d.ts +16 -0
- package/dist/adapters/node/request.js +214 -0
- package/dist/adapters/node/response.d.ts +11 -0
- package/dist/adapters/node/response.js +126 -0
- package/dist/adapters/node/serve.d.ts +39 -0
- package/dist/adapters/node/serve.js +205 -0
- package/dist/adapters/node/url.d.ts +13 -0
- package/dist/adapters/node/url.js +87 -0
- package/dist/adapters/serve.d.ts +36 -0
- package/dist/adapters/serve.js +52 -0
- package/dist/build/artifacts.d.ts +34 -0
- package/dist/build/artifacts.js +123 -0
- package/dist/build/cli-args.d.ts +30 -0
- package/dist/build/cli-args.js +97 -0
- package/dist/build/cli.d.ts +11 -0
- package/dist/build/cli.js +150 -0
- package/dist/build/config.d.ts +102 -0
- package/dist/build/config.js +89 -0
- package/dist/build/generate.d.ts +19 -0
- package/dist/build/generate.js +80 -0
- package/dist/build/glob.d.ts +8 -0
- package/dist/build/glob.js +97 -0
- package/dist/build/index.d.ts +3 -58
- package/dist/build/index.js +3 -173
- package/dist/build/init.d.ts +3 -0
- package/dist/build/init.js +131 -0
- package/dist/build/loaders.d.ts +33 -0
- package/dist/build/loaders.js +105 -0
- package/dist/build/plugin.d.ts +52 -0
- package/dist/build/plugin.js +146 -0
- package/dist/build/source.d.ts +21 -0
- package/dist/build/source.js +100 -0
- package/dist/build/targets.d.ts +59 -0
- package/dist/build/targets.js +107 -0
- package/dist/context/context.d.ts +111 -0
- package/dist/context/context.js +213 -0
- package/dist/context/cookie-sign.d.ts +38 -0
- package/dist/context/cookie-sign.js +113 -0
- package/dist/context/cookie.d.ts +28 -0
- package/dist/context/cookie.js +142 -0
- package/dist/context/peer.d.ts +34 -0
- package/dist/context/peer.js +190 -0
- package/dist/errors/error.d.ts +60 -0
- package/dist/errors/error.js +84 -0
- package/dist/errors/errors.d.ts +45 -0
- package/dist/errors/errors.js +31 -0
- package/dist/errors/on-error.d.ts +10 -0
- package/dist/errors/on-error.js +204 -0
- package/dist/errors/problem-json.d.ts +14 -0
- package/dist/errors/problem-json.js +58 -0
- package/dist/errors/projector.d.ts +50 -0
- package/dist/errors/projector.js +107 -0
- package/dist/i18n/error-i18n.d.ts +26 -0
- package/dist/i18n/error-i18n.js +77 -0
- package/dist/i18n/i18n.d.ts +21 -0
- package/dist/i18n/i18n.js +40 -0
- package/dist/i18n/icu.d.ts +29 -0
- package/dist/i18n/icu.js +170 -0
- package/dist/i18n/index.d.ts +4 -0
- package/dist/i18n/index.js +3 -0
- package/dist/index.d.ts +30 -746
- package/dist/index.js +12 -2364
- package/dist/input/accepts.d.ts +5 -0
- package/dist/input/accepts.js +105 -0
- package/dist/input/binary.d.ts +20 -0
- package/dist/input/binary.js +40 -0
- package/dist/input/body-kind.d.ts +15 -0
- package/dist/input/body-kind.js +47 -0
- package/dist/input/body-limit.d.ts +21 -0
- package/dist/input/body-limit.js +99 -0
- package/dist/input/cookies.d.ts +7 -0
- package/dist/input/cookies.js +8 -0
- package/dist/input/form.d.ts +10 -0
- package/dist/input/form.js +24 -0
- package/dist/input/headers.d.ts +7 -0
- package/dist/input/headers.js +8 -0
- package/dist/input/input.d.ts +91 -0
- package/dist/input/input.js +88 -0
- package/dist/input/json.d.ts +10 -0
- package/dist/input/json.js +22 -0
- package/dist/input/params.d.ts +7 -0
- package/dist/input/params.js +8 -0
- package/dist/input/query.d.ts +10 -0
- package/dist/input/query.js +17 -0
- package/dist/mcp/mount.d.ts +116 -0
- package/dist/mcp/mount.js +45 -0
- package/dist/mcp/oauth.d.ts +14 -0
- package/dist/mcp/oauth.js +88 -0
- package/dist/mcp/uploads.d.ts +36 -0
- package/dist/mcp/uploads.js +171 -0
- package/dist/mcp/url-files.d.ts +32 -0
- package/dist/mcp/url-files.js +75 -0
- package/dist/meta/meta-spec-apply.d.ts +25 -0
- package/dist/meta/meta-spec-apply.js +83 -0
- package/dist/meta/meta-spec-merge.d.ts +103 -0
- package/dist/meta/meta-spec-merge.js +50 -0
- package/dist/meta/meta-spec-validate.d.ts +61 -0
- package/dist/meta/meta-spec-validate.js +166 -0
- package/dist/meta/meta-spec.d.ts +49 -0
- package/dist/meta/meta-spec.js +197 -0
- package/dist/middleware/compress.d.ts +15 -0
- package/dist/middleware/compress.js +93 -0
- package/dist/middleware/cors.d.ts +18 -0
- package/dist/middleware/cors.js +80 -0
- package/dist/middleware/csrf.d.ts +11 -0
- package/dist/middleware/csrf.js +65 -0
- package/dist/middleware/ip-restrict.d.ts +10 -0
- package/dist/middleware/ip-restrict.js +82 -0
- package/dist/middleware/middleware.d.ts +53 -0
- package/dist/middleware/middleware.js +112 -0
- package/dist/middleware/powered-by.d.ts +6 -0
- package/dist/middleware/powered-by.js +13 -0
- package/dist/middleware/rate-limit.d.ts +40 -0
- package/dist/middleware/rate-limit.js +90 -0
- package/dist/middleware/request-id.d.ts +25 -0
- package/dist/middleware/request-id.js +30 -0
- package/dist/middleware/secure-headers.d.ts +18 -0
- package/dist/middleware/secure-headers.js +36 -0
- package/dist/middleware/server-timing.d.ts +8 -0
- package/dist/middleware/server-timing.js +52 -0
- package/dist/middleware/timeout.d.ts +6 -0
- package/dist/middleware/timeout.js +29 -0
- package/dist/observability/curl-logger.d.ts +46 -0
- package/dist/observability/curl-logger.js +175 -0
- package/dist/observability/request-to-curl.d.ts +17 -0
- package/dist/observability/request-to-curl.js +47 -0
- package/dist/openapi/collect.d.ts +56 -18
- package/dist/openapi/collect.js +109 -23
- package/dist/openapi/components.d.ts +9 -0
- package/dist/openapi/components.js +90 -0
- package/dist/openapi/docs-page.d.ts +20 -18
- package/dist/openapi/docs-page.js +28 -46
- package/dist/openapi/document.d.ts +33 -26
- package/dist/openapi/document.js +21 -780
- package/dist/openapi/extract-schemas.d.ts +11 -0
- package/dist/openapi/extract-schemas.js +31 -0
- package/dist/openapi/generate.d.ts +47 -0
- package/dist/openapi/generate.js +180 -0
- package/dist/openapi/manifest.d.ts +41 -0
- package/dist/openapi/manifest.js +49 -0
- package/dist/openapi/output-keys.d.ts +6 -0
- package/dist/openapi/output-keys.js +24 -0
- package/dist/openapi/paths.d.ts +35 -0
- package/dist/openapi/paths.js +175 -0
- package/dist/openapi/register.d.ts +14 -3
- package/dist/openapi/register.js +13 -20
- package/dist/openapi/responses.d.ts +44 -0
- package/dist/openapi/responses.js +159 -0
- package/dist/openapi/scalar.d.ts +4 -14
- package/dist/openapi/scalar.js +5 -7
- package/dist/openapi/security.d.ts +4 -0
- package/dist/openapi/security.js +25 -0
- package/dist/openapi/serve.d.ts +25 -9
- package/dist/openapi/serve.js +108 -29
- package/dist/openapi/servers.d.ts +19 -0
- package/dist/openapi/servers.js +72 -0
- package/dist/openapi/swagger.d.ts +4 -14
- package/dist/openapi/swagger.js +5 -7
- package/dist/openapi/tags.d.ts +20 -0
- package/dist/openapi/tags.js +20 -0
- package/dist/openapi/webhooks.d.ts +19 -0
- package/dist/openapi/webhooks.js +70 -0
- package/dist/openapi/yaml.d.ts +8 -0
- package/dist/openapi/yaml.js +74 -0
- package/dist/proxy/headers.d.ts +30 -0
- package/dist/proxy/headers.js +86 -0
- package/dist/proxy/proxy.d.ts +39 -0
- package/dist/proxy/proxy.js +103 -0
- package/dist/proxy/upstream.d.ts +30 -0
- package/dist/proxy/upstream.js +116 -0
- package/dist/realtime/bus.d.ts +10 -13
- package/dist/realtime/bus.js +48 -93
- package/dist/realtime/invoke-user.d.ts +36 -0
- package/dist/realtime/invoke-user.js +103 -0
- package/dist/realtime/realtime.d.ts +7 -0
- package/dist/realtime/realtime.js +40 -0
- package/dist/realtime/route.d.ts +33 -27
- package/dist/realtime/route.js +27 -43
- package/dist/realtime/server.d.ts +24 -28
- package/dist/realtime/server.js +202 -225
- package/dist/response/binary.d.ts +18 -0
- package/dist/response/binary.js +10 -0
- package/dist/response/builder.d.ts +73 -0
- package/dist/response/builder.js +214 -0
- package/dist/response/cache-control.d.ts +30 -0
- package/dist/response/cache-control.js +74 -0
- package/dist/response/etag.d.ts +15 -0
- package/dist/response/etag.js +83 -0
- package/dist/response/media-type.d.ts +28 -0
- package/dist/response/media-type.js +97 -0
- package/dist/response/out-headers.d.ts +31 -0
- package/dist/response/out-headers.js +130 -0
- package/dist/response/pretty-json.d.ts +10 -0
- package/dist/response/pretty-json.js +44 -0
- package/dist/response/range.d.ts +19 -0
- package/dist/response/range.js +98 -0
- package/dist/response/response-headers.d.ts +11 -0
- package/dist/response/response-headers.js +21 -0
- package/dist/response/response.d.ts +69 -0
- package/dist/response/response.js +208 -0
- package/dist/response/sse.d.ts +41 -0
- package/dist/response/sse.js +73 -0
- package/dist/response/static.d.ts +20 -0
- package/dist/response/static.js +181 -0
- package/dist/response/status.d.ts +5 -0
- package/dist/response/status.js +68 -0
- package/dist/response/with-headers.d.ts +11 -0
- package/dist/response/with-headers.js +47 -0
- package/dist/routing/app-types.d.ts +175 -0
- package/dist/routing/app-types.js +1 -0
- package/dist/routing/app.d.ts +76 -0
- package/dist/routing/app.js +137 -0
- package/dist/routing/codegen-types.d.ts +17 -0
- package/dist/routing/codegen-types.js +1 -0
- package/dist/routing/delegate.d.ts +9 -0
- package/dist/routing/delegate.js +75 -0
- package/dist/routing/dispatch.d.ts +22 -0
- package/dist/routing/dispatch.js +255 -0
- package/dist/routing/finalize.d.ts +47 -0
- package/dist/routing/finalize.js +169 -0
- package/dist/routing/gateway-tree.d.ts +19 -0
- package/dist/routing/gateway-tree.js +74 -0
- package/dist/routing/invalidate-check.d.ts +58 -0
- package/dist/routing/invalidate-check.js +124 -0
- package/dist/routing/match.d.ts +22 -0
- package/dist/routing/match.js +108 -0
- package/dist/routing/meta-types.d.ts +34 -0
- package/dist/routing/meta-types.js +5 -0
- package/dist/routing/middleware-chain.d.ts +16 -0
- package/dist/routing/middleware-chain.js +41 -0
- package/dist/routing/output-types.d.ts +91 -0
- package/dist/routing/output-types.js +1 -0
- package/dist/routing/pattern.d.ts +55 -0
- package/dist/routing/pattern.js +219 -0
- package/dist/routing/record.d.ts +18 -0
- package/dist/routing/record.js +4 -0
- package/dist/routing/register.d.ts +135 -0
- package/dist/routing/register.js +155 -0
- package/dist/routing/request-path.d.ts +30 -0
- package/dist/routing/request-path.js +173 -0
- package/dist/routing/route-builder.d.ts +160 -0
- package/dist/routing/route-builder.js +86 -0
- package/dist/routing/route-tree.d.ts +18 -0
- package/dist/routing/route-tree.js +91 -0
- package/dist/routing/settings-chain.d.ts +75 -0
- package/dist/routing/settings-chain.js +137 -0
- package/dist/routing/settings.d.ts +90 -0
- package/dist/routing/settings.js +44 -0
- package/dist/routing/tap.d.ts +31 -0
- package/dist/routing/tap.js +77 -0
- package/dist/routing/tree-merge.d.ts +7 -0
- package/dist/routing/tree-merge.js +77 -0
- package/dist/routing/tree.d.ts +85 -0
- package/dist/routing/tree.js +196 -0
- package/dist/routing/types.d.ts +20 -0
- package/dist/routing/types.js +1 -0
- package/dist/routing/ws-builder.d.ts +62 -0
- package/dist/routing/ws-builder.js +109 -0
- package/dist/runtime/detect-runtime.d.ts +16 -0
- package/dist/runtime/detect-runtime.js +11 -0
- package/dist/runtime/optional-peer.d.ts +10 -0
- package/dist/runtime/optional-peer.js +19 -0
- package/dist/schema/arktype.d.ts +7 -0
- package/dist/schema/arktype.js +13 -0
- package/dist/schema/canonicalize.d.ts +8 -0
- package/dist/schema/canonicalize.js +19 -0
- package/dist/schema/effect.d.ts +7 -0
- package/dist/schema/effect.js +4 -0
- package/dist/schema/naming.d.ts +31 -0
- package/dist/schema/naming.js +116 -0
- package/dist/schema/sanitize-spec.d.ts +15 -0
- package/dist/schema/sanitize-spec.js +43 -0
- package/dist/schema/slots.d.ts +15 -0
- package/dist/schema/slots.js +179 -0
- package/dist/schema/to-json-schema.d.ts +34 -0
- package/dist/schema/to-json-schema.js +94 -0
- package/dist/schema/valibot.d.ts +4 -0
- package/dist/schema/valibot.js +153 -0
- package/dist/schema/yup.d.ts +3 -0
- package/dist/schema/yup.js +57 -0
- package/dist/schema/zod.d.ts +6 -0
- package/dist/schema/zod.js +192 -0
- package/dist/security/crypto.d.ts +7 -0
- package/dist/security/crypto.js +30 -0
- package/dist/streaming/producer-stream.d.ts +45 -0
- package/dist/streaming/producer-stream.js +251 -0
- package/dist/telemetry/fields.d.ts +43 -0
- package/dist/telemetry/fields.js +64 -0
- package/dist/telemetry/log-format.d.ts +7 -0
- package/dist/telemetry/log-format.js +43 -0
- package/dist/telemetry/logger.d.ts +44 -0
- package/dist/telemetry/logger.js +136 -0
- package/dist/telemetry/otel-subpath.d.ts +7 -0
- package/dist/telemetry/otel-subpath.js +5 -0
- package/dist/telemetry/otel.d.ts +50 -57
- package/dist/telemetry/otel.js +54 -130
- package/dist/telemetry/request-log.d.ts +22 -0
- package/dist/telemetry/request-log.js +83 -0
- package/dist/telemetry/request-trace.d.ts +123 -0
- package/dist/telemetry/request-trace.js +199 -0
- package/dist/telemetry/span-lifecycle.d.ts +11 -0
- package/dist/telemetry/span-lifecycle.js +114 -0
- package/dist/telemetry/traceparent.d.ts +40 -0
- package/dist/telemetry/traceparent.js +73 -0
- package/dist/testing/testing.d.ts +42 -0
- package/dist/testing/testing.js +101 -0
- package/dist/validation/content-type.d.ts +21 -0
- package/dist/validation/content-type.js +42 -0
- package/dist/validation/standard-schema.d.ts +41 -0
- package/dist/validation/standard-schema.js +5 -0
- package/dist/validation/validate-input.d.ts +45 -0
- package/dist/validation/validate-input.js +174 -0
- package/dist/validation/validate-output.d.ts +34 -0
- package/dist/validation/validate-output.js +107 -0
- package/dist/ws/bun.d.ts +30 -25
- package/dist/ws/bun.js +42 -46
- package/dist/ws/cloudflare.d.ts +6 -75
- package/dist/ws/cloudflare.js +37 -104
- package/dist/ws/contract.d.ts +74 -0
- package/dist/ws/contract.js +83 -0
- package/dist/ws/node.d.ts +12 -21
- package/dist/ws/node.js +103 -151
- package/dist/ws/origin.d.ts +23 -0
- package/dist/ws/origin.js +48 -0
- package/dist/ws/route.d.ts +14 -0
- package/dist/ws/route.js +5 -0
- package/dist/ws/session.d.ts +15 -6
- package/dist/ws/session.js +22 -23
- package/dist/ws/shared.d.ts +23 -33
- package/dist/ws/shared.js +53 -39
- package/package.json +169 -251
- package/dist/accepts.d.ts +0 -12
- package/dist/accepts.d.ts.map +0 -1
- package/dist/accepts.js +0 -126
- package/dist/accepts.js.map +0 -1
- package/dist/body-kind.d.ts +0 -26
- package/dist/body-kind.d.ts.map +0 -1
- package/dist/body-kind.js +0 -70
- package/dist/body-kind.js.map +0 -1
- package/dist/body-limit.d.ts +0 -26
- package/dist/body-limit.d.ts.map +0 -1
- package/dist/body-limit.js +0 -126
- package/dist/body-limit.js.map +0 -1
- package/dist/build/index.d.ts.map +0 -1
- package/dist/build/index.js.map +0 -1
- package/dist/cli-args.d.ts +0 -33
- package/dist/cli-args.d.ts.map +0 -1
- package/dist/cli-args.js +0 -102
- package/dist/cli-args.js.map +0 -1
- package/dist/cli-go/auth.go +0 -26
- package/dist/cli-go/config.go +0 -192
- package/dist/cli-go/errors.go +0 -75
- package/dist/cli-go/multipart.go +0 -79
- package/dist/cli-go/output.go +0 -163
- package/dist/cli-go/root.go +0 -30
- package/dist/cli-go/stream.go +0 -88
- package/dist/cli-go/version.go +0 -5
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -209
- package/dist/cli.js.map +0 -1
- package/dist/client/defaults.d.ts +0 -12
- package/dist/client/defaults.d.ts.map +0 -1
- package/dist/client/defaults.js +0 -48
- package/dist/client/defaults.js.map +0 -1
- package/dist/client/error.d.ts +0 -49
- package/dist/client/error.d.ts.map +0 -1
- package/dist/client/error.js +0 -71
- package/dist/client/error.js.map +0 -1
- package/dist/client/http.d.ts +0 -155
- package/dist/client/http.d.ts.map +0 -1
- package/dist/client/http.js +0 -571
- package/dist/client/http.js.map +0 -1
- package/dist/client/index.d.ts +0 -23
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -95
- package/dist/client/index.js.map +0 -1
- package/dist/client/path.d.ts +0 -26
- package/dist/client/path.d.ts.map +0 -1
- package/dist/client/path.js +0 -163
- package/dist/client/path.js.map +0 -1
- package/dist/client/redirect-policy.d.ts +0 -12
- package/dist/client/redirect-policy.d.ts.map +0 -1
- package/dist/client/redirect-policy.js +0 -20
- package/dist/client/redirect-policy.js.map +0 -1
- package/dist/client/sdk.d.ts +0 -70
- package/dist/client/sdk.d.ts.map +0 -1
- package/dist/client/sdk.js +0 -292
- package/dist/client/sdk.js.map +0 -1
- package/dist/client/sse.d.ts +0 -23
- package/dist/client/sse.d.ts.map +0 -1
- package/dist/client/sse.js +0 -129
- package/dist/client/sse.js.map +0 -1
- package/dist/client/types.d.ts +0 -124
- package/dist/client/types.d.ts.map +0 -1
- package/dist/client/types.js +0 -2
- package/dist/client/types.js.map +0 -1
- package/dist/client/ws.d.ts +0 -22
- package/dist/client/ws.d.ts.map +0 -1
- package/dist/client/ws.js +0 -112
- package/dist/client/ws.js.map +0 -1
- package/dist/client-go/errors.go +0 -236
- package/dist/client-go/export.go +0 -44
- package/dist/client-go/invalidation.go +0 -371
- package/dist/client-go/nullable.go +0 -62
- package/dist/client-go/realtime.go +0 -354
- package/dist/client-go/result.go +0 -20
- package/dist/client-go/runtime.go +0 -975
- package/dist/client-go/sse.go +0 -159
- package/dist/client-go/transport.go +0 -495
- package/dist/client-go/ws.go +0 -128
- package/dist/client-info.d.ts +0 -36
- package/dist/client-info.d.ts.map +0 -1
- package/dist/client-info.js +0 -53
- package/dist/client-info.js.map +0 -1
- package/dist/client-mcp/README.md +0 -10
- package/dist/client-mcp/server.ts +0 -221
- package/dist/client-mcp/types.ts +0 -19
- package/dist/client-python/_errors.py +0 -115
- package/dist/client-python/_invalidation.py +0 -494
- package/dist/client-python/_realtime.py +0 -179
- package/dist/client-python/_runtime.py +0 -860
- package/dist/client-python/_sse.py +0 -155
- package/dist/client-python/_transport.py +0 -366
- package/dist/client-python/_ws.py +0 -159
- package/dist/client-python/py.typed +0 -0
- package/dist/client-rust/errors.rs +0 -220
- package/dist/client-rust/invalidation.rs +0 -412
- package/dist/client-rust/invalidation_sync.rs +0 -93
- package/dist/client-rust/nullable.rs +0 -17
- package/dist/client-rust/realtime.rs +0 -702
- package/dist/client-rust/result.rs +0 -22
- package/dist/client-rust/runtime.rs +0 -980
- package/dist/client-rust/runtime_sync.rs +0 -484
- package/dist/client-rust/sse.rs +0 -188
- package/dist/client-rust/ws.rs +0 -167
- package/dist/codegen-go-cli.d.ts +0 -22
- package/dist/codegen-go-cli.d.ts.map +0 -1
- package/dist/codegen-go-cli.js +0 -964
- package/dist/codegen-go-cli.js.map +0 -1
- package/dist/codegen-go.d.ts +0 -41
- package/dist/codegen-go.d.ts.map +0 -1
- package/dist/codegen-go.js +0 -872
- package/dist/codegen-go.js.map +0 -1
- package/dist/codegen-hash.d.ts +0 -3
- package/dist/codegen-hash.d.ts.map +0 -1
- package/dist/codegen-hash.js +0 -9
- package/dist/codegen-hash.js.map +0 -1
- package/dist/codegen-ir.d.ts +0 -190
- package/dist/codegen-ir.d.ts.map +0 -1
- package/dist/codegen-ir.js +0 -661
- package/dist/codegen-ir.js.map +0 -1
- package/dist/codegen-lang.d.ts +0 -65
- package/dist/codegen-lang.d.ts.map +0 -1
- package/dist/codegen-lang.js +0 -526
- package/dist/codegen-lang.js.map +0 -1
- package/dist/codegen-load.d.ts +0 -31
- package/dist/codegen-load.d.ts.map +0 -1
- package/dist/codegen-load.js +0 -138
- package/dist/codegen-load.js.map +0 -1
- package/dist/codegen-loaders.d.ts +0 -12
- package/dist/codegen-loaders.d.ts.map +0 -1
- package/dist/codegen-loaders.js +0 -55
- package/dist/codegen-loaders.js.map +0 -1
- package/dist/codegen-mcp.d.ts +0 -13
- package/dist/codegen-mcp.d.ts.map +0 -1
- package/dist/codegen-mcp.js +0 -368
- package/dist/codegen-mcp.js.map +0 -1
- package/dist/codegen-python.d.ts +0 -33
- package/dist/codegen-python.d.ts.map +0 -1
- package/dist/codegen-python.js +0 -828
- package/dist/codegen-python.js.map +0 -1
- package/dist/codegen-route-tree-intern.d.ts +0 -40
- package/dist/codegen-route-tree-intern.d.ts.map +0 -1
- package/dist/codegen-route-tree-intern.js +0 -221
- package/dist/codegen-route-tree-intern.js.map +0 -1
- package/dist/codegen-rust.d.ts +0 -18
- package/dist/codegen-rust.d.ts.map +0 -1
- package/dist/codegen-rust.js +0 -1293
- package/dist/codegen-rust.js.map +0 -1
- package/dist/codegen-sanitize.d.ts +0 -3
- package/dist/codegen-sanitize.d.ts.map +0 -1
- package/dist/codegen-sanitize.js +0 -56
- package/dist/codegen-sanitize.js.map +0 -1
- package/dist/codegen-schema-naming.d.ts +0 -27
- package/dist/codegen-schema-naming.d.ts.map +0 -1
- package/dist/codegen-schema-naming.js +0 -150
- package/dist/codegen-schema-naming.js.map +0 -1
- package/dist/codegen-sdk-model.d.ts +0 -71
- package/dist/codegen-sdk-model.d.ts.map +0 -1
- package/dist/codegen-sdk-model.js +0 -179
- package/dist/codegen-sdk-model.js.map +0 -1
- package/dist/codegen.d.ts +0 -187
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -4619
- package/dist/codegen.js.map +0 -1
- package/dist/context.d.ts +0 -86
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -242
- package/dist/context.js.map +0 -1
- package/dist/cookie-sign.d.ts +0 -17
- package/dist/cookie-sign.d.ts.map +0 -1
- package/dist/cookie-sign.js +0 -104
- package/dist/cookie-sign.js.map +0 -1
- package/dist/cookie.d.ts +0 -24
- package/dist/cookie.d.ts.map +0 -1
- package/dist/cookie.js +0 -138
- package/dist/cookie.js.map +0 -1
- package/dist/cors.d.ts +0 -14
- package/dist/cors.d.ts.map +0 -1
- package/dist/cors.js +0 -87
- package/dist/cors.js.map +0 -1
- package/dist/crypto.d.ts +0 -7
- package/dist/crypto.d.ts.map +0 -1
- package/dist/crypto.js +0 -38
- package/dist/crypto.js.map +0 -1
- package/dist/csrf.d.ts +0 -28
- package/dist/csrf.d.ts.map +0 -1
- package/dist/csrf.js +0 -79
- package/dist/csrf.js.map +0 -1
- package/dist/curl-logger.d.ts +0 -44
- package/dist/curl-logger.d.ts.map +0 -1
- package/dist/curl-logger.js +0 -199
- package/dist/curl-logger.js.map +0 -1
- package/dist/detect-runtime.d.ts +0 -16
- package/dist/detect-runtime.d.ts.map +0 -1
- package/dist/detect-runtime.js +0 -13
- package/dist/detect-runtime.js.map +0 -1
- package/dist/dict.d.ts +0 -11
- package/dist/dict.d.ts.map +0 -1
- package/dist/dict.js +0 -13
- package/dist/dict.js.map +0 -1
- package/dist/error.d.ts +0 -21
- package/dist/error.d.ts.map +0 -1
- package/dist/error.js +0 -44
- package/dist/error.js.map +0 -1
- package/dist/errors.d.ts +0 -40
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -39
- package/dist/errors.js.map +0 -1
- package/dist/etag.d.ts +0 -11
- package/dist/etag.d.ts.map +0 -1
- package/dist/etag.js +0 -82
- package/dist/etag.js.map +0 -1
- package/dist/feature-detect.d.ts +0 -25
- package/dist/feature-detect.d.ts.map +0 -1
- package/dist/feature-detect.js +0 -144
- package/dist/feature-detect.js.map +0 -1
- package/dist/feature-load.d.ts +0 -3
- package/dist/feature-load.d.ts.map +0 -1
- package/dist/feature-load.js +0 -36
- package/dist/feature-load.js.map +0 -1
- package/dist/feature-slots.d.ts +0 -44
- package/dist/feature-slots.d.ts.map +0 -1
- package/dist/feature-slots.js +0 -48
- package/dist/feature-slots.js.map +0 -1
- package/dist/fetch-request.d.ts +0 -10
- package/dist/fetch-request.d.ts.map +0 -1
- package/dist/fetch-request.js +0 -13
- package/dist/fetch-request.js.map +0 -1
- package/dist/gen-process.d.ts +0 -15
- package/dist/gen-process.d.ts.map +0 -1
- package/dist/gen-process.js +0 -43
- package/dist/gen-process.js.map +0 -1
- package/dist/gen-write.d.ts +0 -19
- package/dist/gen-write.d.ts.map +0 -1
- package/dist/gen-write.js +0 -120
- package/dist/gen-write.js.map +0 -1
- package/dist/glob.d.ts +0 -21
- package/dist/glob.d.ts.map +0 -1
- package/dist/glob.js +0 -115
- package/dist/glob.js.map +0 -1
- package/dist/go-type-emitter.d.ts +0 -47
- package/dist/go-type-emitter.d.ts.map +0 -1
- package/dist/go-type-emitter.js +0 -594
- package/dist/go-type-emitter.js.map +0 -1
- package/dist/honey-response.d.ts +0 -82
- package/dist/honey-response.d.ts.map +0 -1
- package/dist/honey-response.js +0 -338
- package/dist/honey-response.js.map +0 -1
- package/dist/i18n-slot.d.ts +0 -15
- package/dist/i18n-slot.d.ts.map +0 -1
- package/dist/i18n-slot.js +0 -14
- package/dist/i18n-slot.js.map +0 -1
- package/dist/i18n.d.ts +0 -29
- package/dist/i18n.d.ts.map +0 -1
- package/dist/i18n.js +0 -250
- package/dist/i18n.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init.d.ts +0 -5
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -140
- package/dist/init.js.map +0 -1
- package/dist/input.d.ts +0 -6
- package/dist/input.d.ts.map +0 -1
- package/dist/input.js +0 -4
- package/dist/input.js.map +0 -1
- package/dist/invalidate-check.d.ts +0 -61
- package/dist/invalidate-check.d.ts.map +0 -1
- package/dist/invalidate-check.js +0 -163
- package/dist/invalidate-check.js.map +0 -1
- package/dist/invoke-user.d.ts +0 -35
- package/dist/invoke-user.d.ts.map +0 -1
- package/dist/invoke-user.js +0 -73
- package/dist/invoke-user.js.map +0 -1
- package/dist/ip-restrict.d.ts +0 -24
- package/dist/ip-restrict.d.ts.map +0 -1
- package/dist/ip-restrict.js +0 -60
- package/dist/ip-restrict.js.map +0 -1
- package/dist/ip.d.ts +0 -39
- package/dist/ip.d.ts.map +0 -1
- package/dist/ip.js +0 -209
- package/dist/ip.js.map +0 -1
- package/dist/logger.d.ts +0 -45
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -113
- package/dist/logger.js.map +0 -1
- package/dist/media-type.d.ts +0 -30
- package/dist/media-type.d.ts.map +0 -1
- package/dist/media-type.js +0 -97
- package/dist/media-type.js.map +0 -1
- package/dist/meta-spec-merge.d.ts +0 -32
- package/dist/meta-spec-merge.d.ts.map +0 -1
- package/dist/meta-spec-merge.js +0 -68
- package/dist/meta-spec-merge.js.map +0 -1
- package/dist/meta-spec.d.ts +0 -94
- package/dist/meta-spec.d.ts.map +0 -1
- package/dist/meta-spec.js +0 -535
- package/dist/meta-spec.js.map +0 -1
- package/dist/middleware.d.ts +0 -77
- package/dist/middleware.d.ts.map +0 -1
- package/dist/middleware.js +0 -253
- package/dist/middleware.js.map +0 -1
- package/dist/node-request.d.ts +0 -104
- package/dist/node-request.d.ts.map +0 -1
- package/dist/node-request.js +0 -407
- package/dist/node-request.js.map +0 -1
- package/dist/node.d.ts +0 -30
- package/dist/node.d.ts.map +0 -1
- package/dist/node.js +0 -396
- package/dist/node.js.map +0 -1
- package/dist/openapi/collect.d.ts.map +0 -1
- package/dist/openapi/collect.js.map +0 -1
- package/dist/openapi/docs-page.d.ts.map +0 -1
- package/dist/openapi/docs-page.js.map +0 -1
- package/dist/openapi/document.d.ts.map +0 -1
- package/dist/openapi/document.js.map +0 -1
- package/dist/openapi/json-schema-slot.d.ts +0 -12
- package/dist/openapi/json-schema-slot.d.ts.map +0 -1
- package/dist/openapi/json-schema-slot.js +0 -38
- package/dist/openapi/json-schema-slot.js.map +0 -1
- package/dist/openapi/register.d.ts.map +0 -1
- package/dist/openapi/register.js.map +0 -1
- package/dist/openapi/scalar.d.ts.map +0 -1
- package/dist/openapi/scalar.js.map +0 -1
- package/dist/openapi/serve.d.ts.map +0 -1
- package/dist/openapi/serve.js.map +0 -1
- package/dist/openapi/spec-factory.d.ts +0 -65
- package/dist/openapi/spec-factory.d.ts.map +0 -1
- package/dist/openapi/spec-factory.js +0 -52
- package/dist/openapi/spec-factory.js.map +0 -1
- package/dist/openapi/spec.d.ts +0 -29
- package/dist/openapi/spec.d.ts.map +0 -1
- package/dist/openapi/spec.js +0 -50
- package/dist/openapi/spec.js.map +0 -1
- package/dist/openapi/swagger.d.ts.map +0 -1
- package/dist/openapi/swagger.js.map +0 -1
- package/dist/pattern.d.ts +0 -71
- package/dist/pattern.d.ts.map +0 -1
- package/dist/pattern.js +0 -239
- package/dist/pattern.js.map +0 -1
- package/dist/peer.d.ts +0 -17
- package/dist/peer.d.ts.map +0 -1
- package/dist/peer.js +0 -50
- package/dist/peer.js.map +0 -1
- package/dist/plugin.d.ts +0 -228
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -666
- package/dist/plugin.js.map +0 -1
- package/dist/powered-by.d.ts +0 -7
- package/dist/powered-by.d.ts.map +0 -1
- package/dist/powered-by.js +0 -11
- package/dist/powered-by.js.map +0 -1
- package/dist/pretty-json.d.ts +0 -10
- package/dist/pretty-json.d.ts.map +0 -1
- package/dist/pretty-json.js +0 -47
- package/dist/pretty-json.js.map +0 -1
- package/dist/producer-stream.d.ts +0 -47
- package/dist/producer-stream.d.ts.map +0 -1
- package/dist/producer-stream.js +0 -267
- package/dist/producer-stream.js.map +0 -1
- package/dist/proxy.d.ts +0 -90
- package/dist/proxy.d.ts.map +0 -1
- package/dist/proxy.js +0 -274
- package/dist/proxy.js.map +0 -1
- package/dist/python-type-emitter.d.ts +0 -24
- package/dist/python-type-emitter.d.ts.map +0 -1
- package/dist/python-type-emitter.js +0 -157
- package/dist/python-type-emitter.js.map +0 -1
- package/dist/realtime/bus.d.ts.map +0 -1
- package/dist/realtime/bus.js.map +0 -1
- package/dist/realtime/register.d.ts +0 -3
- package/dist/realtime/register.d.ts.map +0 -1
- package/dist/realtime/register.js +0 -10
- package/dist/realtime/register.js.map +0 -1
- package/dist/realtime/route.d.ts.map +0 -1
- package/dist/realtime/route.js.map +0 -1
- package/dist/realtime/server.d.ts.map +0 -1
- package/dist/realtime/server.js.map +0 -1
- package/dist/request-id.d.ts +0 -19
- package/dist/request-id.d.ts.map +0 -1
- package/dist/request-id.js +0 -16
- package/dist/request-id.js.map +0 -1
- package/dist/request-limits.d.ts +0 -3
- package/dist/request-limits.d.ts.map +0 -1
- package/dist/request-limits.js +0 -3
- package/dist/request-limits.js.map +0 -1
- package/dist/request-path.d.ts +0 -33
- package/dist/request-path.d.ts.map +0 -1
- package/dist/request-path.js +0 -178
- package/dist/request-path.js.map +0 -1
- package/dist/request-to-curl.d.ts +0 -15
- package/dist/request-to-curl.d.ts.map +0 -1
- package/dist/request-to-curl.js +0 -48
- package/dist/request-to-curl.js.map +0 -1
- package/dist/response.d.ts +0 -86
- package/dist/response.d.ts.map +0 -1
- package/dist/response.js +0 -313
- package/dist/response.js.map +0 -1
- package/dist/rust-type-emitter.d.ts +0 -44
- package/dist/rust-type-emitter.d.ts.map +0 -1
- package/dist/rust-type-emitter.js +0 -463
- package/dist/rust-type-emitter.js.map +0 -1
- package/dist/secure-headers.d.ts +0 -16
- package/dist/secure-headers.d.ts.map +0 -1
- package/dist/secure-headers.js +0 -53
- package/dist/secure-headers.js.map +0 -1
- package/dist/serve-register.d.ts +0 -6
- package/dist/serve-register.d.ts.map +0 -1
- package/dist/serve-register.js +0 -9
- package/dist/serve-register.js.map +0 -1
- package/dist/serve-slot.d.ts +0 -9
- package/dist/serve-slot.d.ts.map +0 -1
- package/dist/serve-slot.js +0 -52
- package/dist/serve-slot.js.map +0 -1
- package/dist/serve.d.ts +0 -38
- package/dist/serve.d.ts.map +0 -1
- package/dist/serve.js +0 -157
- package/dist/serve.js.map +0 -1
- package/dist/server-timing.d.ts +0 -9
- package/dist/server-timing.d.ts.map +0 -1
- package/dist/server-timing.js +0 -51
- package/dist/server-timing.js.map +0 -1
- package/dist/static.d.ts +0 -21
- package/dist/static.d.ts.map +0 -1
- package/dist/static.js +0 -102
- package/dist/static.js.map +0 -1
- package/dist/telemetry/otel.d.ts.map +0 -1
- package/dist/telemetry/otel.js.map +0 -1
- package/dist/testing.d.ts +0 -36
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -124
- package/dist/testing.js.map +0 -1
- package/dist/timeout.d.ts +0 -13
- package/dist/timeout.d.ts.map +0 -1
- package/dist/timeout.js +0 -36
- package/dist/timeout.js.map +0 -1
- package/dist/tree.d.ts +0 -197
- package/dist/tree.d.ts.map +0 -1
- package/dist/tree.js +0 -437
- package/dist/tree.js.map +0 -1
- package/dist/trust.d.ts +0 -21
- package/dist/trust.d.ts.map +0 -1
- package/dist/trust.js +0 -100
- package/dist/trust.js.map +0 -1
- package/dist/ts-type-emitter.d.ts +0 -8
- package/dist/ts-type-emitter.d.ts.map +0 -1
- package/dist/ts-type-emitter.js +0 -150
- package/dist/ts-type-emitter.js.map +0 -1
- package/dist/type-emitter.d.ts +0 -36
- package/dist/type-emitter.d.ts.map +0 -1
- package/dist/type-emitter.js +0 -729
- package/dist/type-emitter.js.map +0 -1
- package/dist/type-extractor.d.ts +0 -43
- package/dist/type-extractor.d.ts.map +0 -1
- package/dist/type-extractor.js +0 -819
- package/dist/type-extractor.js.map +0 -1
- package/dist/types.d.ts +0 -467
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -96
- package/dist/types.js.map +0 -1
- package/dist/validation.d.ts +0 -31
- package/dist/validation.d.ts.map +0 -1
- package/dist/validation.js +0 -335
- package/dist/validation.js.map +0 -1
- package/dist/with-headers.d.ts +0 -15
- package/dist/with-headers.d.ts.map +0 -1
- package/dist/with-headers.js +0 -45
- package/dist/with-headers.js.map +0 -1
- package/dist/ws/bun.d.ts.map +0 -1
- package/dist/ws/bun.js.map +0 -1
- package/dist/ws/cloudflare.d.ts.map +0 -1
- package/dist/ws/cloudflare.js.map +0 -1
- package/dist/ws/deno.d.ts +0 -13
- package/dist/ws/deno.d.ts.map +0 -1
- package/dist/ws/deno.js +0 -133
- package/dist/ws/deno.js.map +0 -1
- package/dist/ws/node.d.ts.map +0 -1
- package/dist/ws/node.js.map +0 -1
- package/dist/ws/session.d.ts.map +0 -1
- package/dist/ws/session.js.map +0 -1
- package/dist/ws/shared.d.ts.map +0 -1
- package/dist/ws/shared.js.map +0 -1
- package/dist/ws-origin.d.ts +0 -20
- package/dist/ws-origin.d.ts.map +0 -1
- package/dist/ws-origin.js +0 -41
- package/dist/ws-origin.js.map +0 -1
- package/dist/yaml.d.ts +0 -18
- package/dist/yaml.d.ts.map +0 -1
- package/dist/yaml.js +0 -101
- package/dist/yaml.js.map +0 -1
- package/docs/api-ref/go.md +0 -399
- package/docs/api-ref/python.md +0 -399
- package/docs/api-ref/rust.md +0 -399
- package/docs/api-ref/typescript.md +0 -399
- package/docs/invalidate-spec.md +0 -333
- package/docs/meta-spec.md +0 -555
- package/docs/packaging.md +0 -104
- package/docs/regression-matrix/README.md +0 -32
- package/docs/regression-matrix/review.md +0 -44
- package/docs/regression-matrix/ws1-3.md +0 -97
- package/docs/regression-matrix/ws4-8.md +0 -107
- package/docs/regression-matrix/ws9-12.md +0 -266
- package/docs/sdk.md +0 -798
- package/src/accepts.ts +0 -136
- package/src/body-kind.ts +0 -67
- package/src/body-limit.ts +0 -152
- package/src/build/index.ts +0 -217
- package/src/cli-args.ts +0 -123
- package/src/cli-go/auth.go +0 -26
- package/src/cli-go/config.go +0 -192
- package/src/cli-go/errors.go +0 -75
- package/src/cli-go/multipart.go +0 -79
- package/src/cli-go/output.go +0 -163
- package/src/cli-go/root.go +0 -30
- package/src/cli-go/stream.go +0 -88
- package/src/cli-go/version.go +0 -5
- package/src/cli.ts +0 -209
- package/src/client/defaults.ts +0 -47
- package/src/client/error.ts +0 -82
- package/src/client/http.ts +0 -737
- package/src/client/index.ts +0 -157
- package/src/client/path.ts +0 -169
- package/src/client/redirect-policy.ts +0 -19
- package/src/client/sdk.ts +0 -351
- package/src/client/sse.ts +0 -128
- package/src/client/types.ts +0 -206
- package/src/client/ws.ts +0 -149
- package/src/client-go/errors.go +0 -236
- package/src/client-go/export.go +0 -44
- package/src/client-go/invalidation.go +0 -371
- package/src/client-go/nullable.go +0 -62
- package/src/client-go/realtime.go +0 -354
- package/src/client-go/result.go +0 -20
- package/src/client-go/runtime.go +0 -975
- package/src/client-go/sse.go +0 -159
- package/src/client-go/transport.go +0 -495
- package/src/client-go/ws.go +0 -128
- package/src/client-info.ts +0 -79
- package/src/client-mcp/README.md +0 -10
- package/src/client-mcp/server.ts +0 -221
- package/src/client-mcp/types.ts +0 -19
- package/src/client-python/_errors.py +0 -115
- package/src/client-python/_invalidation.py +0 -494
- package/src/client-python/_realtime.py +0 -179
- package/src/client-python/_runtime.py +0 -860
- package/src/client-python/_sse.py +0 -155
- package/src/client-python/_transport.py +0 -366
- package/src/client-python/_ws.py +0 -159
- package/src/client-python/py.typed +0 -0
- package/src/client-rust/errors.rs +0 -220
- package/src/client-rust/invalidation.rs +0 -412
- package/src/client-rust/invalidation_sync.rs +0 -93
- package/src/client-rust/nullable.rs +0 -17
- package/src/client-rust/realtime.rs +0 -702
- package/src/client-rust/result.rs +0 -22
- package/src/client-rust/runtime.rs +0 -980
- package/src/client-rust/runtime_sync.rs +0 -484
- package/src/client-rust/sse.rs +0 -188
- package/src/client-rust/ws.rs +0 -167
- package/src/codegen-go-cli.ts +0 -1066
- package/src/codegen-go.ts +0 -970
- package/src/codegen-hash.ts +0 -8
- package/src/codegen-ir.ts +0 -812
- package/src/codegen-lang.ts +0 -517
- package/src/codegen-load.ts +0 -150
- package/src/codegen-loaders.ts +0 -50
- package/src/codegen-mcp.ts +0 -445
- package/src/codegen-python.ts +0 -916
- package/src/codegen-route-tree-intern.ts +0 -198
- package/src/codegen-rust.ts +0 -1402
- package/src/codegen-sanitize.ts +0 -57
- package/src/codegen-schema-naming.ts +0 -165
- package/src/codegen-sdk-model.ts +0 -228
- package/src/codegen.ts +0 -5089
- package/src/context.ts +0 -325
- package/src/cookie-sign.ts +0 -119
- package/src/cookie.ts +0 -143
- package/src/cors.ts +0 -95
- package/src/crypto.ts +0 -38
- package/src/csrf.ts +0 -86
- package/src/curl-logger.ts +0 -258
- package/src/detect-runtime.ts +0 -17
- package/src/dict.ts +0 -12
- package/src/error.ts +0 -55
- package/src/errors.ts +0 -85
- package/src/etag.ts +0 -97
- package/src/feature-detect.ts +0 -147
- package/src/feature-load.ts +0 -23
- package/src/feature-slots.ts +0 -70
- package/src/fetch-request.ts +0 -13
- package/src/gen-process.ts +0 -42
- package/src/gen-write.ts +0 -127
- package/src/glob.ts +0 -109
- package/src/go-type-emitter.ts +0 -660
- package/src/honey-response.ts +0 -379
- package/src/i18n-slot.ts +0 -30
- package/src/i18n.ts +0 -300
- package/src/index.ts +0 -3829
- package/src/init.ts +0 -161
- package/src/input.ts +0 -8
- package/src/invalidate-check.ts +0 -205
- package/src/invoke-user.ts +0 -95
- package/src/ip-restrict.ts +0 -79
- package/src/ip.ts +0 -194
- package/src/logger.ts +0 -178
- package/src/media-type.ts +0 -104
- package/src/meta-spec-merge.ts +0 -80
- package/src/meta-spec.ts +0 -718
- package/src/middleware.ts +0 -331
- package/src/node-request.ts +0 -431
- package/src/node.ts +0 -454
- package/src/openapi/collect.ts +0 -50
- package/src/openapi/docs-page.ts +0 -89
- package/src/openapi/document.ts +0 -902
- package/src/openapi/json-schema-slot.ts +0 -53
- package/src/openapi/register.ts +0 -23
- package/src/openapi/scalar.ts +0 -34
- package/src/openapi/serve.ts +0 -39
- package/src/openapi/spec-factory.ts +0 -100
- package/src/openapi/spec.ts +0 -74
- package/src/openapi/swagger.ts +0 -35
- package/src/pattern.ts +0 -245
- package/src/peer.ts +0 -53
- package/src/plugin.ts +0 -864
- package/src/powered-by.ts +0 -18
- package/src/pretty-json.ts +0 -56
- package/src/producer-stream.ts +0 -296
- package/src/proxy.ts +0 -370
- package/src/python-type-emitter.ts +0 -181
- package/src/realtime/bus.ts +0 -140
- package/src/realtime/register.ts +0 -13
- package/src/realtime/route.ts +0 -153
- package/src/realtime/server.ts +0 -298
- package/src/request-id.ts +0 -32
- package/src/request-limits.ts +0 -2
- package/src/request-path.ts +0 -165
- package/src/request-to-curl.ts +0 -52
- package/src/response.ts +0 -411
- package/src/rust-type-emitter.ts +0 -548
- package/src/secure-headers.ts +0 -74
- package/src/serve-register.ts +0 -12
- package/src/serve-slot.ts +0 -58
- package/src/serve.ts +0 -220
- package/src/server-timing.ts +0 -71
- package/src/static.ts +0 -112
- package/src/telemetry/otel.ts +0 -156
- package/src/testing.ts +0 -167
- package/src/timeout.ts +0 -45
- package/src/tree.ts +0 -558
- package/src/trust.ts +0 -117
- package/src/ts-type-emitter.ts +0 -168
- package/src/type-emitter.ts +0 -760
- package/src/type-extractor.ts +0 -855
- package/src/types.ts +0 -756
- package/src/validation.ts +0 -413
- package/src/with-headers.ts +0 -45
- package/src/ws/bun.ts +0 -120
- package/src/ws/cloudflare.ts +0 -192
- package/src/ws/deno.ts +0 -188
- package/src/ws/node.ts +0 -240
- package/src/ws/session.ts +0 -73
- package/src/ws/shared.ts +0 -140
- package/src/ws-origin.ts +0 -53
- package/src/yaml.ts +0 -103
package/src/types.ts
DELETED
|
@@ -1,756 +0,0 @@
|
|
|
1
|
-
export type HttpMethod = "DELETE" | "GET" | "HEAD" | "OPTIONS" | "PATCH" | "POST" | "PUT"
|
|
2
|
-
|
|
3
|
-
/** Overwrite keys in T with keys from U -- used by .use() to support narrowing middleware */
|
|
4
|
-
export type Overwrite<T, U> = Omit<T, keyof U> & U
|
|
5
|
-
|
|
6
|
-
export type WSReadyState = 0 | 1 | 2 | 3
|
|
7
|
-
|
|
8
|
-
/** All HTTP status codes 2xx–5xx as snake_case keys */
|
|
9
|
-
export type StatusKey =
|
|
10
|
-
/* 2xx success */
|
|
11
|
-
| "accepted"
|
|
12
|
-
| "already_reported"
|
|
13
|
-
| "created"
|
|
14
|
-
| "im_used"
|
|
15
|
-
| "multi_status"
|
|
16
|
-
| "no_content"
|
|
17
|
-
| "non_authoritative_information"
|
|
18
|
-
| "ok"
|
|
19
|
-
| "partial_content"
|
|
20
|
-
| "reset_content"
|
|
21
|
-
/* 3xx redirection */
|
|
22
|
-
| "found"
|
|
23
|
-
| "moved_permanently"
|
|
24
|
-
| "multiple_choices"
|
|
25
|
-
| "not_modified"
|
|
26
|
-
| "permanent_redirect"
|
|
27
|
-
| "see_other"
|
|
28
|
-
| "temporary_redirect"
|
|
29
|
-
/* 4xx client error */
|
|
30
|
-
| "bad_request"
|
|
31
|
-
| "conflict"
|
|
32
|
-
| "expectation_failed"
|
|
33
|
-
| "failed_dependency"
|
|
34
|
-
| "forbidden"
|
|
35
|
-
| "gone"
|
|
36
|
-
| "im_a_teapot"
|
|
37
|
-
| "length_required"
|
|
38
|
-
| "locked"
|
|
39
|
-
| "method_not_allowed"
|
|
40
|
-
| "misdirected_request"
|
|
41
|
-
| "not_acceptable"
|
|
42
|
-
| "not_found"
|
|
43
|
-
| "content_too_large"
|
|
44
|
-
| "payment_required"
|
|
45
|
-
| "precondition_failed"
|
|
46
|
-
| "precondition_required"
|
|
47
|
-
| "proxy_authentication_required"
|
|
48
|
-
| "range_not_satisfiable"
|
|
49
|
-
| "request_header_fields_too_large"
|
|
50
|
-
| "request_timeout"
|
|
51
|
-
| "too_early"
|
|
52
|
-
| "too_many_requests"
|
|
53
|
-
| "unauthorized"
|
|
54
|
-
| "unavailable_for_legal_reasons"
|
|
55
|
-
| "unprocessable_entity"
|
|
56
|
-
| "unsupported_media_type"
|
|
57
|
-
| "upgrade_required"
|
|
58
|
-
| "uri_too_long"
|
|
59
|
-
/* 5xx server error */
|
|
60
|
-
| "bad_gateway"
|
|
61
|
-
| "gateway_timeout"
|
|
62
|
-
| "http_version_not_supported"
|
|
63
|
-
| "insufficient_storage"
|
|
64
|
-
| "internal_server_error"
|
|
65
|
-
| "loop_detected"
|
|
66
|
-
| "network_authentication_required"
|
|
67
|
-
| "not_extended"
|
|
68
|
-
| "not_implemented"
|
|
69
|
-
| "service_unavailable"
|
|
70
|
-
| "variant_also_negotiates"
|
|
71
|
-
|
|
72
|
-
export const statusKeyToCode: Record<StatusKey, number> = {
|
|
73
|
-
accepted: 202,
|
|
74
|
-
already_reported: 208,
|
|
75
|
-
bad_gateway: 502,
|
|
76
|
-
bad_request: 400,
|
|
77
|
-
conflict: 409,
|
|
78
|
-
content_too_large: 413,
|
|
79
|
-
created: 201,
|
|
80
|
-
expectation_failed: 417,
|
|
81
|
-
failed_dependency: 424,
|
|
82
|
-
forbidden: 403,
|
|
83
|
-
found: 302,
|
|
84
|
-
gateway_timeout: 504,
|
|
85
|
-
gone: 410,
|
|
86
|
-
http_version_not_supported: 505,
|
|
87
|
-
im_a_teapot: 418,
|
|
88
|
-
im_used: 226,
|
|
89
|
-
insufficient_storage: 507,
|
|
90
|
-
internal_server_error: 500,
|
|
91
|
-
length_required: 411,
|
|
92
|
-
locked: 423,
|
|
93
|
-
loop_detected: 508,
|
|
94
|
-
method_not_allowed: 405,
|
|
95
|
-
misdirected_request: 421,
|
|
96
|
-
moved_permanently: 301,
|
|
97
|
-
multi_status: 207,
|
|
98
|
-
multiple_choices: 300,
|
|
99
|
-
network_authentication_required: 511,
|
|
100
|
-
no_content: 204,
|
|
101
|
-
non_authoritative_information: 203,
|
|
102
|
-
not_acceptable: 406,
|
|
103
|
-
not_extended: 510,
|
|
104
|
-
not_found: 404,
|
|
105
|
-
not_implemented: 501,
|
|
106
|
-
not_modified: 304,
|
|
107
|
-
ok: 200,
|
|
108
|
-
partial_content: 206,
|
|
109
|
-
payment_required: 402,
|
|
110
|
-
permanent_redirect: 308,
|
|
111
|
-
precondition_failed: 412,
|
|
112
|
-
precondition_required: 428,
|
|
113
|
-
proxy_authentication_required: 407,
|
|
114
|
-
range_not_satisfiable: 416,
|
|
115
|
-
request_header_fields_too_large: 431,
|
|
116
|
-
request_timeout: 408,
|
|
117
|
-
reset_content: 205,
|
|
118
|
-
see_other: 303,
|
|
119
|
-
service_unavailable: 503,
|
|
120
|
-
temporary_redirect: 307,
|
|
121
|
-
too_early: 425,
|
|
122
|
-
too_many_requests: 429,
|
|
123
|
-
unauthorized: 401,
|
|
124
|
-
unavailable_for_legal_reasons: 451,
|
|
125
|
-
unprocessable_entity: 422,
|
|
126
|
-
unsupported_media_type: 415,
|
|
127
|
-
upgrade_required: 426,
|
|
128
|
-
uri_too_long: 414,
|
|
129
|
-
variant_also_negotiates: 506,
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export const codeToStatusKey: Record<number, StatusKey> = Object.fromEntries(
|
|
133
|
-
Object.entries(statusKeyToCode).map(([k, v]) => [v, k]),
|
|
134
|
-
) as Record<number, StatusKey>
|
|
135
|
-
|
|
136
|
-
/** Framework error keys — centralized to prevent typo-induced silent failures */
|
|
137
|
-
export const EK = {
|
|
138
|
-
bad_gateway: "bad_gateway",
|
|
139
|
-
bad_request: "bad_request",
|
|
140
|
-
content_too_large: "content_too_large",
|
|
141
|
-
forbidden: "forbidden",
|
|
142
|
-
gateway_timeout: "gateway_timeout",
|
|
143
|
-
internal_server_error: "internal_server_error",
|
|
144
|
-
/** a request body the declared parser cannot read (bad JSON, broken multipart) — 400 */
|
|
145
|
-
malformed_body: "malformed_body",
|
|
146
|
-
method_not_allowed: "method_not_allowed",
|
|
147
|
-
not_found: "not_found",
|
|
148
|
-
output_content_type_mismatch: "output_content_type_mismatch",
|
|
149
|
-
output_validation_failed: "output_validation_failed",
|
|
150
|
-
request_timeout: "request_timeout",
|
|
151
|
-
too_many_requests: "too_many_requests",
|
|
152
|
-
unsupported_media_type: "unsupported_media_type",
|
|
153
|
-
validation_failed: "validation_failed",
|
|
154
|
-
} as const
|
|
155
|
-
|
|
156
|
-
/** Framework status keys — centralized subset of StatusKey used internally */
|
|
157
|
-
export const SK = {
|
|
158
|
-
bad_gateway: "bad_gateway",
|
|
159
|
-
bad_request: "bad_request",
|
|
160
|
-
content_too_large: "content_too_large",
|
|
161
|
-
forbidden: "forbidden",
|
|
162
|
-
gateway_timeout: "gateway_timeout",
|
|
163
|
-
internal_server_error: "internal_server_error",
|
|
164
|
-
method_not_allowed: "method_not_allowed",
|
|
165
|
-
not_found: "not_found",
|
|
166
|
-
unprocessable_entity: "unprocessable_entity",
|
|
167
|
-
unsupported_media_type: "unsupported_media_type",
|
|
168
|
-
} as const satisfies Record<string, StatusKey>
|
|
169
|
-
|
|
170
|
-
export type FieldError = {
|
|
171
|
-
error_key: string
|
|
172
|
-
message: string
|
|
173
|
-
path: string
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/* shared frozen empty objects — avoid per-call {} allocations */
|
|
177
|
-
export const EMPTY_OBJ: Record<string, never> = Object.freeze(Object.create(null)) as Record<string, never>
|
|
178
|
-
export const EMPTY_FIELDS: Record<string, FieldError[]> = EMPTY_OBJ as Record<string, FieldError[]>
|
|
179
|
-
|
|
180
|
-
export type NormalizedIssue = {
|
|
181
|
-
code: string
|
|
182
|
-
message: string
|
|
183
|
-
meta: {
|
|
184
|
-
expected?: string
|
|
185
|
-
field?: string
|
|
186
|
-
max?: number
|
|
187
|
-
min?: number
|
|
188
|
-
multipleOf?: number
|
|
189
|
-
received?: string
|
|
190
|
-
}
|
|
191
|
-
path: PropertyKey[]
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
export type SchemaDefinition = {
|
|
195
|
-
input: unknown
|
|
196
|
-
output: unknown
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Minimal Standard Schema interface (StandardSchemaV1).
|
|
201
|
-
* Compatible with Zod, Valibot, ArkType, etc.
|
|
202
|
-
*/
|
|
203
|
-
export type StandardSchemaLike = {
|
|
204
|
-
readonly "~standard": {
|
|
205
|
-
readonly types?: { readonly input: unknown; readonly output: unknown } | undefined
|
|
206
|
-
readonly validate: (value: unknown) =>
|
|
207
|
-
| {
|
|
208
|
-
readonly issues?: ReadonlyArray<StandardSchemaIssue> | undefined
|
|
209
|
-
readonly value?: unknown
|
|
210
|
-
}
|
|
211
|
-
| Promise<{
|
|
212
|
-
readonly issues?: ReadonlyArray<StandardSchemaIssue> | undefined
|
|
213
|
-
readonly value?: unknown
|
|
214
|
-
}>
|
|
215
|
-
readonly vendor: string
|
|
216
|
-
readonly version: number
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export type StandardSchemaIssue = {
|
|
221
|
-
readonly message: string
|
|
222
|
-
readonly path?: ReadonlyArray<PropertyKey | { readonly key: PropertyKey }> | undefined
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/** Extract the output type from a Standard Schema compatible schema */
|
|
226
|
-
export type InferOutput<T> = T extends {
|
|
227
|
-
readonly "~standard": { readonly types?: infer TTypes }
|
|
228
|
-
}
|
|
229
|
-
? NonNullable<TTypes> extends { readonly output: infer O }
|
|
230
|
-
? O
|
|
231
|
-
: unknown
|
|
232
|
-
: unknown
|
|
233
|
-
|
|
234
|
-
/** Map input schema definitions to their inferred output types, dropping undefined keys */
|
|
235
|
-
export type InferInputMap<T> = {
|
|
236
|
-
[K in keyof T as T[K] extends undefined | null ? never : K]-?: InferOutput<UnwrapInputSchema<NonNullable<T[K]>>>
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Extract param names from a route path string.
|
|
241
|
-
* "/users/:id/posts/:postId" → "id" | "postId"
|
|
242
|
-
* Handles optional params (:id?) and wildcards (*name)
|
|
243
|
-
*/
|
|
244
|
-
export type ParamKeys<Path extends string> = Path extends `${string}:${infer Param}/${infer Rest}`
|
|
245
|
-
? ParamKey<Param> | ParamKeys<`/${Rest}`>
|
|
246
|
-
: Path extends `${string}:${infer Param}`
|
|
247
|
-
? ParamKey<Param>
|
|
248
|
-
: Path extends `${string}*${infer Name}`
|
|
249
|
-
? Name extends ""
|
|
250
|
-
? "*"
|
|
251
|
-
: Name
|
|
252
|
-
: never
|
|
253
|
-
|
|
254
|
-
type ParamKey<T extends string> = T extends `${infer Name}?` ? Name : T
|
|
255
|
-
|
|
256
|
-
/** Build a params record from a route path string */
|
|
257
|
-
export type ParamsFromPath<Path extends string> = [ParamKeys<Path>] extends [never]
|
|
258
|
-
? Record<string, string>
|
|
259
|
-
: { [K in ParamKeys<Path>]: string }
|
|
260
|
-
|
|
261
|
-
/** Tagged schema wrapper for runtime behavior control */
|
|
262
|
-
type TaggedSchema = {
|
|
263
|
-
readonly _tag: "readableStream"
|
|
264
|
-
readonly schema: StandardSchemaLike
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/** A schema entry: plain StandardSchema or wrapped with readableStream() */
|
|
268
|
-
export type InputSchemaEntry = StandardSchemaLike | TaggedSchema
|
|
269
|
-
|
|
270
|
-
/** Unwrap tagged schemas to get the inner StandardSchemaLike for type inference */
|
|
271
|
-
type UnwrapInputSchema<T> = T extends {
|
|
272
|
-
readonly _tag: string
|
|
273
|
-
readonly schema: infer S
|
|
274
|
-
}
|
|
275
|
-
? S
|
|
276
|
-
: T
|
|
277
|
-
|
|
278
|
-
/** Non-body input sources — combine freely */
|
|
279
|
-
type InputNonBody = {
|
|
280
|
-
cookies?: InputSchemaEntry
|
|
281
|
-
headers?: InputSchemaEntry
|
|
282
|
-
params?: InputSchemaEntry
|
|
283
|
-
search?: InputSchemaEntry
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/** Input schema definition — json and form are mutually exclusive (one Content-Type per request) */
|
|
287
|
-
export type InputSchemasDef =
|
|
288
|
-
| (InputNonBody & { form?: InputSchemaEntry; json?: never })
|
|
289
|
-
| (InputNonBody & { form?: never; json?: InputSchemaEntry })
|
|
290
|
-
|
|
291
|
-
/** 2xx-only status keys for output declarations */
|
|
292
|
-
export type SuccessStatusKey =
|
|
293
|
-
| "accepted"
|
|
294
|
-
| "already_reported"
|
|
295
|
-
| "created"
|
|
296
|
-
| "im_used"
|
|
297
|
-
| "multi_status"
|
|
298
|
-
| "no_content"
|
|
299
|
-
| "non_authoritative_information"
|
|
300
|
-
| "ok"
|
|
301
|
-
| "partial_content"
|
|
302
|
-
| "reset_content"
|
|
303
|
-
|
|
304
|
-
/** Status-key → schema map for a single content type (2xx only) */
|
|
305
|
-
type StatusSchemaMap = Partial<Record<SuccessStatusKey, StandardSchemaLike>>
|
|
306
|
-
|
|
307
|
-
/** 3xx redirect status keys (excludes not_modified — cache, not redirect) */
|
|
308
|
-
export type RedirectStatusKey =
|
|
309
|
-
| "found"
|
|
310
|
-
| "moved_permanently"
|
|
311
|
-
| "multiple_choices"
|
|
312
|
-
| "permanent_redirect"
|
|
313
|
-
| "see_other"
|
|
314
|
-
| "temporary_redirect"
|
|
315
|
-
|
|
316
|
-
/** Redirect declaration map — no body schema, just status keys */
|
|
317
|
-
type RedirectSchemaMap = Partial<Record<RedirectStatusKey, true>>
|
|
318
|
-
|
|
319
|
-
/** Output schema definition — maps content-type → status-key → schema */
|
|
320
|
-
export type OutputSchemaDef = {
|
|
321
|
-
"application/cbor"?: StatusSchemaMap
|
|
322
|
-
"application/json"?: StatusSchemaMap
|
|
323
|
-
"application/msgpack"?: StatusSchemaMap
|
|
324
|
-
"application/octet-stream"?: StatusSchemaMap
|
|
325
|
-
"application/pdf"?: StatusSchemaMap
|
|
326
|
-
"application/xml"?: StatusSchemaMap
|
|
327
|
-
redirect?: RedirectSchemaMap
|
|
328
|
-
"text/csv"?: StatusSchemaMap
|
|
329
|
-
"text/event-stream"?: StatusSchemaMap
|
|
330
|
-
"text/html"?: StatusSchemaMap
|
|
331
|
-
"text/plain"?: StatusSchemaMap
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
/** Maps content-type strings to HoneyRes method names */
|
|
335
|
-
export type ContentTypeMethodMap = {
|
|
336
|
-
"application/json": "json"
|
|
337
|
-
"application/octet-stream": "binary"
|
|
338
|
-
"application/xml": "xml"
|
|
339
|
-
"text/csv": "csv"
|
|
340
|
-
"text/event-stream": "sse"
|
|
341
|
-
"text/html": "html"
|
|
342
|
-
"text/plain": "text"
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
/** Methods always available on ctx.res regardless of output declaration */
|
|
346
|
-
export type UniversalResMethods = "noContent" | "raw" | "redirect" | "stream"
|
|
347
|
-
|
|
348
|
-
/** Derive allowed response methods from declared output content types */
|
|
349
|
-
export type AllowedResMethods<TOutput> = {
|
|
350
|
-
[CT in keyof ContentTypeMethodMap]: CT extends keyof TOutput ? ContentTypeMethodMap[CT] : never
|
|
351
|
-
}[keyof ContentTypeMethodMap]
|
|
352
|
-
|
|
353
|
-
/** Extract schemas for any content type from an OutputSchemaDef */
|
|
354
|
-
export type ExtractSchemas<T, CT extends string> = T extends {
|
|
355
|
-
[K in CT]: infer S extends Record<string, unknown>
|
|
356
|
-
}
|
|
357
|
-
? S
|
|
358
|
-
: never
|
|
359
|
-
|
|
360
|
-
/** Extract JSON output schemas from an OutputSchemaDef */
|
|
361
|
-
export type ExtractJsonSchemas<T> = ExtractSchemas<T, "application/json">
|
|
362
|
-
|
|
363
|
-
/** Infer output types from a JSON output schema map */
|
|
364
|
-
export type InferJsonOutputMap<T extends Record<string, StandardSchemaLike>> = {
|
|
365
|
-
[K in keyof T]: InferOutput<T[K]>
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
/** OpenAPI operation-level metadata (also serves as built-in meta base) */
|
|
369
|
-
export type OpenApiMeta = {
|
|
370
|
-
internal?: boolean
|
|
371
|
-
deprecated?: boolean
|
|
372
|
-
description?: string
|
|
373
|
-
/** Escape hatch — emitted verbatim at the highest precedence. Prefer a `.metaSpec()` entry. */
|
|
374
|
-
extensions?: Record<`x-${string}`, unknown>
|
|
375
|
-
invalidate?: readonly string[] | null
|
|
376
|
-
mcp?: boolean
|
|
377
|
-
operationId?: string
|
|
378
|
-
security?: Array<Record<string, string[]>> | string | string[]
|
|
379
|
-
summary?: string
|
|
380
|
-
tags?: string | string[]
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/* ---- Meta spec (codegen-time policy: meta → OpenAPI operation) ---- */
|
|
384
|
-
|
|
385
|
-
/** Which operation kinds a policy entry applies to */
|
|
386
|
-
export type MetaSpecTarget = "both" | "http" | "ws"
|
|
387
|
-
|
|
388
|
-
/** Where a schema-derived policy entry reads its source key from */
|
|
389
|
-
export type MetaSpecSchemaSource =
|
|
390
|
-
| "input.cookies"
|
|
391
|
-
| "input.form"
|
|
392
|
-
| "input.headers"
|
|
393
|
-
| "input.json"
|
|
394
|
-
| "input.search"
|
|
395
|
-
| "output"
|
|
396
|
-
|
|
397
|
-
/** Passed to a policy entry's `map` / `expand` */
|
|
398
|
-
export type MetaSpecContext = {
|
|
399
|
-
meta: Record<string, unknown>
|
|
400
|
-
method: string
|
|
401
|
-
path: string
|
|
402
|
-
profile: string
|
|
403
|
-
/** Where the source value came from — `"meta"`, or the schema source for schema entries */
|
|
404
|
-
source: "meta" | MetaSpecSchemaSource
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
type MetaSpecEntryBase = {
|
|
408
|
-
/** Which operation kinds this entry applies to. Default `"both"` */
|
|
409
|
-
on?: MetaSpecTarget
|
|
410
|
-
/** Restrict this entry to named profiles. Default: every profile */
|
|
411
|
-
profiles?: readonly string[]
|
|
412
|
-
/** Validates the produced value at codegen time. A failure is a build error */
|
|
413
|
-
schema?: StandardSchemaLike
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
/** Policy entry writing one operation key */
|
|
417
|
-
export type MetaSpecSingle<TValue = unknown> = MetaSpecEntryBase & {
|
|
418
|
-
/** Target operation key — an `x-*` extension or an allowed standard field */
|
|
419
|
-
key: string
|
|
420
|
-
/** Transform the source value. Returning `undefined` omits the key for that operation */
|
|
421
|
-
map?: (value: TValue, ctx: MetaSpecContext) => unknown
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
/** Policy entry fanning one source value out to several operation keys */
|
|
425
|
-
export type MetaSpecExpand<TValue = unknown> = MetaSpecEntryBase & {
|
|
426
|
-
/** Returns operation keys → values. `undefined` (returned or per key) omits */
|
|
427
|
-
expand: (value: TValue, ctx: MetaSpecContext) => Record<string, unknown> | undefined
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
/** One policy entry: hidden (`false`), verbatim (`"x-foo"`), single target, or fan-out */
|
|
431
|
-
export type MetaSpecEntry<TValue = unknown> = false | MetaSpecExpand<TValue> | MetaSpecSingle<TValue> | string
|
|
432
|
-
|
|
433
|
-
/**
|
|
434
|
-
* How deeply to look for a schema-metadata key.
|
|
435
|
-
* `"root"` reads the schema root, reading through one level of `items` for a bare array output.
|
|
436
|
-
* `"deep"` walks the schema (properties, items, composition members) and takes the shallowest
|
|
437
|
-
* match — for envelope shapes like `{ articles: [Article], nextCursor, count }`.
|
|
438
|
-
*/
|
|
439
|
-
export type MetaSpecSchemaSearch = "deep" | "root"
|
|
440
|
-
|
|
441
|
-
/** Refuse a descriptor whose publisher contract version is newer than this policy understands */
|
|
442
|
-
export type MetaSpecVersionGuard = {
|
|
443
|
-
/** Field carrying the contract version. Default `"v"` */
|
|
444
|
-
field?: string
|
|
445
|
-
/** Highest version this entry's `map`/`expand` was written against */
|
|
446
|
-
max: number
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
/**
|
|
450
|
-
* Policy entry reading its source key off a route schema instead of route meta.
|
|
451
|
-
*
|
|
452
|
-
* The object key names the entry; `read` says which schema-metadata key it reads, so several
|
|
453
|
-
* entries can read one reserved key — the shape a publisher takes when it stamps a
|
|
454
|
-
* discriminated union under a single key.
|
|
455
|
-
*/
|
|
456
|
-
export type MetaSpecSchemaEntry<TValue = unknown> = (MetaSpecExpand<TValue> | MetaSpecSingle<TValue>) & {
|
|
457
|
-
/** Schema sources to search, in order. First one carrying a matching descriptor wins */
|
|
458
|
-
from?: readonly MetaSpecSchemaSource[]
|
|
459
|
-
/**
|
|
460
|
-
* Shallow subset the descriptor must satisfy for this entry to claim it — the discriminant
|
|
461
|
-
* of a union, e.g. `{ kind: "entity" }`. A descriptor found under `read` that satisfies no
|
|
462
|
-
* entry's `match` is a build error, never a silently missing tag.
|
|
463
|
-
*/
|
|
464
|
-
match?: Record<string, unknown>
|
|
465
|
-
/** Schema-metadata key to read. Defaults to this entry's own name */
|
|
466
|
-
read?: string
|
|
467
|
-
/** Where in the schema to look. Default `"root"` */
|
|
468
|
-
search?: MetaSpecSchemaSearch
|
|
469
|
-
/** Fail the build on a descriptor from a newer publisher contract than this entry handles */
|
|
470
|
-
version?: MetaSpecVersionGuard
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
/** Per-document filter over emitted operation keys */
|
|
474
|
-
export type MetaSpecProfile = {
|
|
475
|
-
/** Denylist of emitted keys */
|
|
476
|
-
exclude?: readonly string[]
|
|
477
|
-
/** Allowlist of emitted `x-*` keys — standard fields are always kept unless excluded */
|
|
478
|
-
include?: readonly string[]
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
/** How an unmapped meta key is reported at codegen time */
|
|
482
|
-
export type MetaSpecStrictness = "error" | "off" | "warn"
|
|
483
|
-
|
|
484
|
-
type MetaSpecSections<TMetaSection> = {
|
|
485
|
-
/** Route-meta entries, keyed by meta key */
|
|
486
|
-
meta?: TMetaSection
|
|
487
|
-
/** Named per-document filters. `"default"` filters nothing */
|
|
488
|
-
profiles?: Record<string, MetaSpecProfile>
|
|
489
|
-
/** Schema-derived entries, keyed by the key read off the schema's metadata */
|
|
490
|
-
schema?: Record<string, MetaSpecSchemaEntry<never>>
|
|
491
|
-
/** How to report a meta key with no entry. Default `"error"` */
|
|
492
|
-
strict?: MetaSpecStrictness
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
/** Built-in meta keys ship with a default policy — overriding them is optional */
|
|
496
|
-
type MetaSpecOptionalKeys<TMeta> = {
|
|
497
|
-
[K in Extract<keyof TMeta, keyof OpenApiMeta>]?: MetaSpecEntry<Exclude<TMeta[K], undefined>>
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
/** Every app-defined meta key must have an entry — a missing key is a type error */
|
|
501
|
-
type MetaSpecRequiredKeys<TMeta> = {
|
|
502
|
-
[K in Exclude<keyof TMeta, keyof OpenApiMeta>]-?: MetaSpecEntry<Exclude<TMeta[K], undefined>>
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
/** Declarative policy for what flows from route meta and route schemas into the document */
|
|
506
|
-
export type HoneyMetaSpec<TMeta = unknown> = [TMeta] extends [never]
|
|
507
|
-
? MetaSpecSections<Record<string, MetaSpecEntry>>
|
|
508
|
-
: TMeta extends Record<string, unknown>
|
|
509
|
-
? MetaSpecSections<MetaSpecOptionalKeys<TMeta> & MetaSpecRequiredKeys<TMeta>>
|
|
510
|
-
: MetaSpecSections<Record<string, MetaSpecEntry>>
|
|
511
|
-
|
|
512
|
-
/** Recorded when a mounted sub-app's policy entry disagrees with the parent's */
|
|
513
|
-
export type MetaSpecMergeConflict = {
|
|
514
|
-
key: string
|
|
515
|
-
/** `"hidden"` — the sub hid a key the parent emits, and hiding won */
|
|
516
|
-
resolution: "hidden" | "parent"
|
|
517
|
-
section: "meta" | "profiles" | "schema"
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
/** Erased runtime shape of a resolved policy — what codegen consumes */
|
|
521
|
-
export type MetaSpecConfig = {
|
|
522
|
-
/** @internal — populated by `.route()` when merging a mounted sub-app's policy */
|
|
523
|
-
conflicts?: readonly MetaSpecMergeConflict[]
|
|
524
|
-
meta?: Record<string, MetaSpecEntry>
|
|
525
|
-
profiles?: Record<string, MetaSpecProfile>
|
|
526
|
-
schema?: Record<string, MetaSpecSchemaEntry>
|
|
527
|
-
strict?: MetaSpecStrictness
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
/** Built-in meta shape — always available on .meta() */
|
|
531
|
-
export type DefaultMeta = OpenApiMeta
|
|
532
|
-
|
|
533
|
-
/** Augmented by generated code per-app to narrow invalidate selectors */
|
|
534
|
-
export interface HoneyCodegen {}
|
|
535
|
-
|
|
536
|
-
type ResolveSelector = HoneyCodegen extends { routeSelector: infer R } ? (R extends string ? R : string) : string
|
|
537
|
-
|
|
538
|
-
/** Utility: merges built-in meta, custom meta T, and type-safe invalidate from codegen */
|
|
539
|
-
export type HoneyMeta<T = {}> = DefaultMeta &
|
|
540
|
-
T & {
|
|
541
|
-
invalidate?: readonly ResolveSelector[] | null
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
/** Accumulated route schema entry for RPC client generation */
|
|
545
|
-
export type RouteRecord<
|
|
546
|
-
TMethod extends string,
|
|
547
|
-
TPath extends string,
|
|
548
|
-
TInput,
|
|
549
|
-
TOutput,
|
|
550
|
-
TCtx = unknown,
|
|
551
|
-
TErrors extends string = never,
|
|
552
|
-
TErrorsByStatus = never,
|
|
553
|
-
> = {
|
|
554
|
-
[P in TPath]: {
|
|
555
|
-
[M in Lowercase<TMethod>]: {
|
|
556
|
-
ctx: TCtx
|
|
557
|
-
errors: TErrors
|
|
558
|
-
errorsByStatus: TErrorsByStatus
|
|
559
|
-
input: TInput
|
|
560
|
-
output: TOutput
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
/** Merge a new route record into accumulated routes via flat intersection */
|
|
566
|
-
export type MergeRoute<
|
|
567
|
-
TRoutes,
|
|
568
|
-
TPath extends string,
|
|
569
|
-
TMethod extends string,
|
|
570
|
-
TInput,
|
|
571
|
-
TOutput,
|
|
572
|
-
TCtx,
|
|
573
|
-
TMeta = {},
|
|
574
|
-
TErrors extends string = never,
|
|
575
|
-
TErrorsByStatus = never,
|
|
576
|
-
> = TRoutes & {
|
|
577
|
-
[P in TPath]: {
|
|
578
|
-
[M in Lowercase<TMethod>]: {
|
|
579
|
-
ctx: TCtx
|
|
580
|
-
errors: TErrors
|
|
581
|
-
errorsByStatus: TErrorsByStatus
|
|
582
|
-
input: TInput
|
|
583
|
-
meta: TMeta
|
|
584
|
-
output: TOutput
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
/** Extract accumulated routes from a Honey instance type */
|
|
590
|
-
export type InferRoutes<T> = T extends { readonly $routes: infer R } ? R : never
|
|
591
|
-
|
|
592
|
-
/** Extract accumulated middleware context. `res` is omitted so handler ctx is assignable into services. Use InferRouteCtx for the route's constrained `res`. */
|
|
593
|
-
export type InferCtx<T> = T extends { readonly $ctx: infer TCtx } ? Omit<TCtx, "res"> : never
|
|
594
|
-
|
|
595
|
-
/** Extract environment type (TEnv) from a Honey instance */
|
|
596
|
-
export type InferEnv<T> = T extends { readonly $env: infer TEnv } ? TEnv : never
|
|
597
|
-
|
|
598
|
-
/** All HTTP methods used across all routes */
|
|
599
|
-
export type InferMethods<T> = InferRoutes<T> extends infer R ? { [P in keyof R]: keyof R[P] & string }[keyof R] : never
|
|
600
|
-
|
|
601
|
-
/** Available route paths registered on a Honey instance */
|
|
602
|
-
export type InferRoutePaths<T> = keyof InferRoutes<T> & string
|
|
603
|
-
|
|
604
|
-
/** Available methods for a given path ("get", "post", etc.) */
|
|
605
|
-
export type InferRouteMethods<T, TPath extends InferRoutePaths<T>> = InferRoutes<T>[TPath] extends infer M
|
|
606
|
-
? keyof M & string
|
|
607
|
-
: never
|
|
608
|
-
|
|
609
|
-
/** Lookup a specific route's record from the accumulated route map */
|
|
610
|
-
type RouteLookup<T, TPath extends string, TMethod extends string> =
|
|
611
|
-
InferRoutes<T> extends infer R
|
|
612
|
-
? TPath extends keyof R
|
|
613
|
-
? R[TPath] extends infer Methods
|
|
614
|
-
? TMethod extends keyof Methods
|
|
615
|
-
? Methods[TMethod]
|
|
616
|
-
: never
|
|
617
|
-
: never
|
|
618
|
-
: never
|
|
619
|
-
: never
|
|
620
|
-
|
|
621
|
-
/** Extract the meta type generic (TMeta) from a Honey instance */
|
|
622
|
-
export type InferMeta<T> = T extends { readonly $meta: infer M } ? M : never
|
|
623
|
-
|
|
624
|
-
/** Extract the full handler context type for a specific route */
|
|
625
|
-
export type InferRouteCtx<T, TPath extends InferRoutePaths<T>, TMethod extends InferRouteMethods<T, TPath>> =
|
|
626
|
-
RouteLookup<T, TPath, TMethod> extends { ctx: infer C } ? C : never
|
|
627
|
-
|
|
628
|
-
/** Extract input type for a specific route */
|
|
629
|
-
export type InferRouteInput<T, TPath extends InferRoutePaths<T>, TMethod extends InferRouteMethods<T, TPath>> =
|
|
630
|
-
RouteLookup<T, TPath, TMethod> extends { input: infer I } ? I : never
|
|
631
|
-
|
|
632
|
-
/** Extract meta type for a specific route */
|
|
633
|
-
export type InferRouteMeta<T, TPath extends InferRoutePaths<T>, TMethod extends InferRouteMethods<T, TPath>> =
|
|
634
|
-
RouteLookup<T, TPath, TMethod> extends { meta: infer M } ? M : never
|
|
635
|
-
|
|
636
|
-
/** Extract output type for a specific route */
|
|
637
|
-
export type InferRouteOutput<T, TPath extends InferRoutePaths<T>, TMethod extends InferRouteMethods<T, TPath>> =
|
|
638
|
-
RouteLookup<T, TPath, TMethod> extends { output: infer O } ? O : never
|
|
639
|
-
|
|
640
|
-
/** Extract error keys for a specific route */
|
|
641
|
-
export type InferRouteErrors<T, TPath extends InferRoutePaths<T>, TMethod extends InferRouteMethods<T, TPath>> =
|
|
642
|
-
RouteLookup<T, TPath, TMethod> extends { errors: infer E } ? E : never
|
|
643
|
-
|
|
644
|
-
/** Extract the error factory type from a Honey instance */
|
|
645
|
-
export type InferErrorFactory<T> = T extends { readonly $errorFactory: infer F } ? F : never
|
|
646
|
-
|
|
647
|
-
/**
|
|
648
|
-
* Compute errorsByStatus from error factory + declared error keys.
|
|
649
|
-
* Maps status codes to body shapes for client-side discrimination.
|
|
650
|
-
*/
|
|
651
|
-
export type ComputeErrorsByStatus<TFactory, TErrorKeys extends string, TMetaSymbol extends symbol> = TFactory extends {
|
|
652
|
-
readonly [K in TMetaSymbol]: infer TMeta
|
|
653
|
-
}
|
|
654
|
-
? TMeta extends Record<string, { schema: infer _S; statusKey: infer _SK }>
|
|
655
|
-
? _BuildByStatus<TMeta, TErrorKeys>
|
|
656
|
-
: never
|
|
657
|
-
: never
|
|
658
|
-
|
|
659
|
-
/** Internal: build { [statusCode]: bodyShape } from meta + error keys */
|
|
660
|
-
type _BuildByStatus<TMeta extends Record<string, { schema: unknown; statusKey: unknown }>, TKeys extends string> = {
|
|
661
|
-
[SK in _UsedStatusKeys<TMeta, TKeys> & StatusKey as StatusKeyToCodeType<SK>]: _ShapesForStatus<TMeta, TKeys, SK>
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
/** Internal: collect all statusKeys used by the declared error keys */
|
|
665
|
-
type _UsedStatusKeys<
|
|
666
|
-
TMeta extends Record<string, { schema: unknown; statusKey: unknown }>,
|
|
667
|
-
TKeys extends string,
|
|
668
|
-
> = TKeys extends keyof TMeta ? TMeta[TKeys]["statusKey"] : never
|
|
669
|
-
|
|
670
|
-
/** Internal: union of shapes for all error keys that map to a given statusKey */
|
|
671
|
-
type _ShapesForStatus<
|
|
672
|
-
TMeta extends Record<string, { schema: unknown; statusKey: unknown }>,
|
|
673
|
-
TKeys extends string,
|
|
674
|
-
TSK extends StatusKey,
|
|
675
|
-
> = TKeys extends keyof TMeta
|
|
676
|
-
? TMeta[TKeys]["statusKey"] extends TSK
|
|
677
|
-
? TMeta[TKeys]["schema"] extends StandardSchemaLike
|
|
678
|
-
? InferOutput<TMeta[TKeys]["schema"]>
|
|
679
|
-
: null
|
|
680
|
-
: never
|
|
681
|
-
: never
|
|
682
|
-
|
|
683
|
-
/** Map StatusKey string to numeric status code at the type level */
|
|
684
|
-
type StatusKeyToCodeType<SK extends StatusKey> = SK extends "ok"
|
|
685
|
-
? 200
|
|
686
|
-
: SK extends "created"
|
|
687
|
-
? 201
|
|
688
|
-
: SK extends "accepted"
|
|
689
|
-
? 202
|
|
690
|
-
: SK extends "no_content"
|
|
691
|
-
? 204
|
|
692
|
-
: SK extends "bad_request"
|
|
693
|
-
? 400
|
|
694
|
-
: SK extends "unauthorized"
|
|
695
|
-
? 401
|
|
696
|
-
: SK extends "payment_required"
|
|
697
|
-
? 402
|
|
698
|
-
: SK extends "forbidden"
|
|
699
|
-
? 403
|
|
700
|
-
: SK extends "not_found"
|
|
701
|
-
? 404
|
|
702
|
-
: SK extends "method_not_allowed"
|
|
703
|
-
? 405
|
|
704
|
-
: SK extends "not_acceptable"
|
|
705
|
-
? 406
|
|
706
|
-
: SK extends "conflict"
|
|
707
|
-
? 409
|
|
708
|
-
: SK extends "gone"
|
|
709
|
-
? 410
|
|
710
|
-
: SK extends "unprocessable_entity"
|
|
711
|
-
? 422
|
|
712
|
-
: SK extends "too_many_requests"
|
|
713
|
-
? 429
|
|
714
|
-
: SK extends "internal_server_error"
|
|
715
|
-
? 500
|
|
716
|
-
: SK extends "not_implemented"
|
|
717
|
-
? 501
|
|
718
|
-
: SK extends "bad_gateway"
|
|
719
|
-
? 502
|
|
720
|
-
: SK extends "service_unavailable"
|
|
721
|
-
? 503
|
|
722
|
-
: SK extends "gateway_timeout"
|
|
723
|
-
? 504
|
|
724
|
-
: number
|
|
725
|
-
|
|
726
|
-
/** Extract the base path type from a Honey instance */
|
|
727
|
-
export type InferBasePath<T> = T extends { readonly $basePath: infer P } ? P : never
|
|
728
|
-
|
|
729
|
-
/** Merge two path segments — "/" is identity */
|
|
730
|
-
export type MergePath<A extends string, B extends string> = A extends "/" ? B : B extends "/" ? A : `${A}${B}`
|
|
731
|
-
|
|
732
|
-
/** The routes of a mounted sub-app, moved under the mounting handle's basePath. */
|
|
733
|
-
export type PrefixRoutes<TBase extends string, TRoutes> = TBase extends "/"
|
|
734
|
-
? TRoutes
|
|
735
|
-
: { [P in keyof TRoutes & string as MergePath<TBase, P>]: TRoutes[P] }
|
|
736
|
-
|
|
737
|
-
/* ── Tap types ── */
|
|
738
|
-
|
|
739
|
-
/** Queued side-effect emitted by c.tap() inside a handler */
|
|
740
|
-
export type PendingTap = { key: string; payload: unknown }
|
|
741
|
-
|
|
742
|
-
/** Handler registered via app.tap(key, handler) — receives context + payload */
|
|
743
|
-
export type TapHandler<TEnv = unknown> = (ctx: TapContext<TEnv>, payload: unknown) => void | Promise<void>
|
|
744
|
-
|
|
745
|
-
/** Subset of HoneyContext exposed to tap handlers — no res, no recursive tap */
|
|
746
|
-
export type TapContext<TEnv = unknown> = {
|
|
747
|
-
readonly background: (p: Promise<unknown>) => void
|
|
748
|
-
readonly env: TEnv
|
|
749
|
-
readonly headers: Record<string, string>
|
|
750
|
-
readonly meta: Record<string, unknown>
|
|
751
|
-
readonly params: Record<string, string>
|
|
752
|
-
readonly path: string
|
|
753
|
-
readonly req: Request
|
|
754
|
-
readonly routePattern: string
|
|
755
|
-
readonly search: Record<string, string>
|
|
756
|
-
}
|