@suveren/gateway 0.8.7 → 0.9.0
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/bin/suveren-gateway.js +165 -9
- package/dist/control-plane/index.mjs +330 -87
- package/dist/mcp-server/http.mjs +662 -186
- package/dist/ui/assets/{index-tzStUGuj.js → index-CIiOCgjJ.js} +21 -21
- package/dist/ui/index.html +1 -1
- package/lib/config.d.mts +37 -0
- package/lib/config.mjs +150 -0
- package/node_modules/@hap/core/dist/index.d.mts +33 -2
- package/node_modules/@hap/core/dist/index.d.ts +33 -2
- package/node_modules/@hap/core/dist/index.js +26 -2
- package/node_modules/@hap/core/dist/index.mjs +25 -2
- package/node_modules/@hap/core/package.json +1 -1
- package/node_modules/@hap/core/src/gatekeeper.ts +36 -2
- package/node_modules/@hap/core/src/types.ts +21 -1
- package/node_modules/@hono/node-server/README.md +21 -10
- package/node_modules/@hono/node-server/dist/early-hints.cjs +1 -1
- package/node_modules/@hono/node-server/dist/early-hints.mjs +1 -1
- package/node_modules/@hono/node-server/dist/index.cjs +41 -19
- package/node_modules/@hono/node-server/dist/index.mjs +42 -20
- package/node_modules/@hono/node-server/dist/serve-static.cjs +1 -0
- package/node_modules/@hono/node-server/dist/serve-static.d.cts +2 -1
- package/node_modules/@hono/node-server/dist/serve-static.d.mts +2 -1
- package/node_modules/@hono/node-server/dist/serve-static.mjs +1 -0
- package/node_modules/@hono/node-server/package.json +3 -2
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.d.ts +43 -2
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.js +26 -5
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.d.ts +11 -0
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js +96 -14
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.js +11 -2
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts +2 -0
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.js +6 -3
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.d.ts +3 -0
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.js +12 -2
- package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.d.ts +43 -2
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.js +26 -5
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts +11 -0
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js +96 -14
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.d.ts +1 -0
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.js +11 -2
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts +2 -0
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.js +6 -3
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts +3 -0
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js +12 -2
- package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js.map +1 -1
- package/node_modules/@modelcontextprotocol/sdk/package.json +1 -1
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/crypto.d.ts +2 -2
- package/node_modules/@types/node/dgram.d.ts +1 -1
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/hono/dist/_virtual/_rolldown/runtime.js +13 -0
- package/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +42 -23
- package/node_modules/hono/dist/adapter/aws-lambda/handler.js +318 -344
- package/node_modules/hono/dist/adapter/aws-lambda/index.js +2 -8
- package/node_modules/hono/dist/adapter/aws-lambda/types.js +1 -0
- package/node_modules/hono/dist/adapter/bun/conninfo.js +20 -25
- package/node_modules/hono/dist/adapter/bun/index.js +3 -13
- package/node_modules/hono/dist/adapter/bun/serve-static.js +27 -27
- package/node_modules/hono/dist/adapter/bun/server.js +11 -5
- package/node_modules/hono/dist/adapter/bun/ssg.js +25 -15
- package/node_modules/hono/dist/adapter/bun/websocket.js +61 -68
- package/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +24 -9
- package/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +59 -62
- package/node_modules/hono/dist/adapter/cloudflare-pages/index.js +2 -8
- package/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +7 -9
- package/node_modules/hono/dist/adapter/cloudflare-workers/index.js +3 -8
- package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
- package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +26 -20
- package/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +21 -34
- package/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +31 -39
- package/node_modules/hono/dist/adapter/deno/conninfo.js +16 -13
- package/node_modules/hono/dist/adapter/deno/deno.d.js +1 -0
- package/node_modules/hono/dist/adapter/deno/index.js +3 -10
- package/node_modules/hono/dist/adapter/deno/serve-static.js +33 -38
- package/node_modules/hono/dist/adapter/deno/ssg.js +27 -16
- package/node_modules/hono/dist/adapter/deno/websocket.js +30 -30
- package/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +7 -9
- package/node_modules/hono/dist/adapter/lambda-edge/handler.js +102 -101
- package/node_modules/hono/dist/adapter/lambda-edge/index.js +2 -6
- package/node_modules/hono/dist/adapter/netlify/conninfo.js +24 -9
- package/node_modules/hono/dist/adapter/netlify/handler.js +10 -8
- package/node_modules/hono/dist/adapter/netlify/index.js +3 -2
- package/node_modules/hono/dist/adapter/netlify/mod.js +2 -6
- package/node_modules/hono/dist/adapter/service-worker/handler.js +15 -19
- package/node_modules/hono/dist/adapter/service-worker/index.js +23 -7
- package/node_modules/hono/dist/adapter/service-worker/types.js +1 -0
- package/node_modules/hono/dist/adapter/vercel/conninfo.js +7 -10
- package/node_modules/hono/dist/adapter/vercel/handler.js +8 -6
- package/node_modules/hono/dist/adapter/vercel/index.js +2 -6
- package/node_modules/hono/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
- package/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
- package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +326 -373
- package/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +7 -34
- package/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +0 -15
- package/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +21 -47
- package/node_modules/hono/dist/cjs/adapter/bun/index.js +14 -45
- package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +29 -50
- package/node_modules/hono/dist/cjs/adapter/bun/server.js +11 -26
- package/node_modules/hono/dist/cjs/adapter/bun/ssg.js +24 -35
- package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +63 -91
- package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
- package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
- package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
- package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
- package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
- package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
- package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
- package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
- package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
- package/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +16 -34
- package/node_modules/hono/dist/cjs/adapter/deno/index.js +10 -38
- package/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +33 -59
- package/node_modules/hono/dist/cjs/adapter/deno/ssg.js +27 -37
- package/node_modules/hono/dist/cjs/adapter/deno/websocket.js +32 -53
- package/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
- package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +102 -130
- package/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +5 -30
- package/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +25 -31
- package/node_modules/hono/dist/cjs/adapter/netlify/handler.js +10 -29
- package/node_modules/hono/dist/cjs/adapter/netlify/index.js +5 -21
- package/node_modules/hono/dist/cjs/adapter/netlify/mod.js +5 -30
- package/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +16 -41
- package/node_modules/hono/dist/cjs/adapter/service-worker/index.js +25 -30
- package/node_modules/hono/dist/cjs/adapter/service-worker/types.js +0 -15
- package/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +8 -32
- package/node_modules/hono/dist/cjs/adapter/vercel/handler.js +8 -27
- package/node_modules/hono/dist/cjs/adapter/vercel/index.js +5 -30
- package/node_modules/hono/dist/cjs/client/client.js +139 -212
- package/node_modules/hono/dist/cjs/client/fetch-result-please.js +62 -80
- package/node_modules/hono/dist/cjs/client/index.js +7 -32
- package/node_modules/hono/dist/cjs/client/types.js +0 -15
- package/node_modules/hono/dist/cjs/client/utils.js +54 -92
- package/node_modules/hono/dist/cjs/compose.js +49 -66
- package/node_modules/hono/dist/cjs/context.js +379 -450
- package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +47 -72
- package/node_modules/hono/dist/cjs/helper/accepts/index.js +3 -27
- package/node_modules/hono/dist/cjs/helper/adapter/index.js +33 -73
- package/node_modules/hono/dist/cjs/helper/conninfo/index.js +0 -15
- package/node_modules/hono/dist/cjs/helper/conninfo/types.js +0 -15
- package/node_modules/hono/dist/cjs/helper/cookie/index.js +75 -116
- package/node_modules/hono/dist/cjs/helper/css/common.js +165 -244
- package/node_modules/hono/dist/cjs/helper/css/index.js +136 -151
- package/node_modules/hono/dist/cjs/helper/dev/index.js +45 -71
- package/node_modules/hono/dist/cjs/helper/factory/index.js +30 -51
- package/node_modules/hono/dist/cjs/helper/html/index.js +32 -62
- package/node_modules/hono/dist/cjs/helper/proxy/index.js +113 -106
- package/node_modules/hono/dist/cjs/helper/route/index.js +123 -66
- package/node_modules/hono/dist/cjs/helper/ssg/index.js +19 -43
- package/node_modules/hono/dist/cjs/helper/ssg/middleware.js +56 -64
- package/node_modules/hono/dist/cjs/helper/ssg/plugins.js +55 -57
- package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +196 -296
- package/node_modules/hono/dist/cjs/helper/ssg/utils.js +47 -90
- package/node_modules/hono/dist/cjs/helper/streaming/index.js +8 -35
- package/node_modules/hono/dist/cjs/helper/streaming/sse.js +53 -85
- package/node_modules/hono/dist/cjs/helper/streaming/stream.js +23 -53
- package/node_modules/hono/dist/cjs/helper/streaming/text.js +10 -32
- package/node_modules/hono/dist/cjs/helper/streaming/utils.js +13 -32
- package/node_modules/hono/dist/cjs/helper/testing/index.js +16 -31
- package/node_modules/hono/dist/cjs/helper/websocket/index.js +51 -76
- package/node_modules/hono/dist/cjs/hono-base.js +345 -403
- package/node_modules/hono/dist/cjs/hono.js +28 -42
- package/node_modules/hono/dist/cjs/http-exception.js +55 -56
- package/node_modules/hono/dist/cjs/index.js +22 -30
- package/node_modules/hono/dist/cjs/jsx/base.js +237 -366
- package/node_modules/hono/dist/cjs/jsx/children.js +16 -41
- package/node_modules/hono/dist/cjs/jsx/components.js +119 -192
- package/node_modules/hono/dist/cjs/jsx/constants.js +15 -42
- package/node_modules/hono/dist/cjs/jsx/context.js +144 -162
- package/node_modules/hono/dist/cjs/jsx/dom/client.js +49 -69
- package/node_modules/hono/dist/cjs/jsx/dom/components.js +23 -52
- package/node_modules/hono/dist/cjs/jsx/dom/context.js +39 -67
- package/node_modules/hono/dist/cjs/jsx/dom/css.js +143 -158
- package/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +55 -64
- package/node_modules/hono/dist/cjs/jsx/dom/index.js +114 -173
- package/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
- package/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
- package/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
- package/node_modules/hono/dist/cjs/jsx/dom/render.js +469 -623
- package/node_modules/hono/dist/cjs/jsx/dom/server.js +37 -64
- package/node_modules/hono/dist/cjs/jsx/dom/utils.js +7 -30
- package/node_modules/hono/dist/cjs/jsx/hooks/index.js +225 -318
- package/node_modules/hono/dist/cjs/jsx/index.js +86 -135
- package/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +20 -43
- package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +117 -168
- package/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +0 -15
- package/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
- package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +34 -68
- package/node_modules/hono/dist/cjs/jsx/streaming.js +123 -166
- package/node_modules/hono/dist/cjs/jsx/types.js +0 -15
- package/node_modules/hono/dist/cjs/jsx/utils.js +91 -175
- package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +98 -86
- package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +92 -109
- package/node_modules/hono/dist/cjs/middleware/body-limit/index.js +66 -72
- package/node_modules/hono/dist/cjs/middleware/cache/index.js +153 -199
- package/node_modules/hono/dist/cjs/middleware/combine/index.js +135 -95
- package/node_modules/hono/dist/cjs/middleware/compress/index.js +73 -88
- package/node_modules/hono/dist/cjs/middleware/context-storage/index.js +49 -41
- package/node_modules/hono/dist/cjs/middleware/cors/index.js +107 -107
- package/node_modules/hono/dist/cjs/middleware/csrf/index.js +101 -72
- package/node_modules/hono/dist/cjs/middleware/etag/digest.js +58 -97
- package/node_modules/hono/dist/cjs/middleware/etag/index.js +71 -91
- package/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +161 -169
- package/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +99 -77
- package/node_modules/hono/dist/cjs/middleware/jwk/index.js +3 -27
- package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +118 -135
- package/node_modules/hono/dist/cjs/middleware/jwt/index.js +9 -38
- package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +120 -141
- package/node_modules/hono/dist/cjs/middleware/language/index.js +7 -35
- package/node_modules/hono/dist/cjs/middleware/language/language.js +184 -182
- package/node_modules/hono/dist/cjs/middleware/logger/index.js +41 -62
- package/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +82 -88
- package/node_modules/hono/dist/cjs/middleware/method-override/index.js +101 -102
- package/node_modules/hono/dist/cjs/middleware/powered-by/index.js +23 -30
- package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +38 -42
- package/node_modules/hono/dist/cjs/middleware/request-id/index.js +3 -27
- package/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +34 -42
- package/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +4 -29
- package/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
- package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
- package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +56 -93
- package/node_modules/hono/dist/cjs/middleware/serve-static/path.js +15 -38
- package/node_modules/hono/dist/cjs/middleware/timeout/index.js +40 -45
- package/node_modules/hono/dist/cjs/middleware/timing/index.js +7 -35
- package/node_modules/hono/dist/cjs/middleware/timing/timing.js +177 -118
- package/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +85 -58
- package/node_modules/hono/dist/cjs/preset/quick.js +18 -37
- package/node_modules/hono/dist/cjs/preset/tiny.js +15 -33
- package/node_modules/hono/dist/cjs/request/constants.js +5 -27
- package/node_modules/hono/dist/cjs/request.js +334 -346
- package/node_modules/hono/dist/cjs/router/linear-router/index.js +3 -27
- package/node_modules/hono/dist/cjs/router/linear-router/router.js +95 -143
- package/node_modules/hono/dist/cjs/router/pattern-router/index.js +3 -27
- package/node_modules/hono/dist/cjs/router/pattern-router/router.js +41 -63
- package/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +7 -34
- package/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +18 -45
- package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +91 -135
- package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
- package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +98 -147
- package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +73 -89
- package/node_modules/hono/dist/cjs/router/smart-router/index.js +3 -27
- package/node_modules/hono/dist/cjs/router/smart-router/router.js +49 -79
- package/node_modules/hono/dist/cjs/router/trie-router/index.js +3 -27
- package/node_modules/hono/dist/cjs/router/trie-router/node.js +134 -186
- package/node_modules/hono/dist/cjs/router/trie-router/router.js +15 -39
- package/node_modules/hono/dist/cjs/router/utils.js +5 -27
- package/node_modules/hono/dist/cjs/router.js +37 -37
- package/node_modules/hono/dist/cjs/types.js +5 -28
- package/node_modules/hono/dist/cjs/utils/accept.js +177 -225
- package/node_modules/hono/dist/cjs/utils/basic-auth.js +16 -40
- package/node_modules/hono/dist/cjs/utils/body.js +84 -110
- package/node_modules/hono/dist/cjs/utils/buffer.js +43 -91
- package/node_modules/hono/dist/cjs/utils/color.js +35 -44
- package/node_modules/hono/dist/cjs/utils/compress.js +11 -26
- package/node_modules/hono/dist/cjs/utils/concurrent.js +29 -59
- package/node_modules/hono/dist/cjs/utils/constants.js +7 -26
- package/node_modules/hono/dist/cjs/utils/cookie.js +107 -177
- package/node_modules/hono/dist/cjs/utils/crypto.js +30 -61
- package/node_modules/hono/dist/cjs/utils/encode.js +31 -48
- package/node_modules/hono/dist/cjs/utils/filepath.js +23 -54
- package/node_modules/hono/dist/cjs/utils/handler.js +11 -33
- package/node_modules/hono/dist/cjs/utils/headers.js +0 -15
- package/node_modules/hono/dist/cjs/utils/html.js +96 -137
- package/node_modules/hono/dist/cjs/utils/http-status.js +0 -15
- package/node_modules/hono/dist/cjs/utils/ipaddr.js +213 -286
- package/node_modules/hono/dist/cjs/utils/jwt/index.js +14 -27
- package/node_modules/hono/dist/cjs/utils/jwt/jwa.js +25 -42
- package/node_modules/hono/dist/cjs/utils/jwt/jws.js +119 -199
- package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +122 -206
- package/node_modules/hono/dist/cjs/utils/jwt/types.js +122 -159
- package/node_modules/hono/dist/cjs/utils/jwt/utf8.js +9 -28
- package/node_modules/hono/dist/cjs/utils/mime.js +75 -101
- package/node_modules/hono/dist/cjs/utils/stream.js +88 -111
- package/node_modules/hono/dist/cjs/utils/types.js +0 -15
- package/node_modules/hono/dist/cjs/utils/url.js +185 -234
- package/node_modules/hono/dist/cjs/validator/index.js +3 -27
- package/node_modules/hono/dist/cjs/validator/utils.js +0 -15
- package/node_modules/hono/dist/cjs/validator/validator.js +60 -103
- package/node_modules/hono/dist/client/client.js +138 -197
- package/node_modules/hono/dist/client/fetch-result-please.js +59 -56
- package/node_modules/hono/dist/client/index.js +3 -7
- package/node_modules/hono/dist/client/types.js +1 -0
- package/node_modules/hono/dist/client/utils.js +51 -68
- package/node_modules/hono/dist/compose.js +49 -45
- package/node_modules/hono/dist/context.js +376 -426
- package/node_modules/hono/dist/helper/accepts/accepts.js +47 -51
- package/node_modules/hono/dist/helper/accepts/index.js +1 -4
- package/node_modules/hono/dist/helper/adapter/index.js +33 -52
- package/node_modules/hono/dist/helper/conninfo/index.js +1 -0
- package/node_modules/hono/dist/helper/conninfo/types.js +1 -0
- package/node_modules/hono/dist/helper/cookie/index.js +74 -94
- package/node_modules/hono/dist/helper/css/common.js +167 -225
- package/node_modules/hono/dist/helper/css/index.js +132 -137
- package/node_modules/hono/dist/helper/dev/index.js +44 -49
- package/node_modules/hono/dist/helper/factory/index.js +27 -27
- package/node_modules/hono/dist/helper/html/index.js +30 -39
- package/node_modules/hono/dist/helper/proxy/index.js +116 -88
- package/node_modules/hono/dist/helper/route/index.js +121 -43
- package/node_modules/hono/dist/helper/ssg/index.js +3 -18
- package/node_modules/hono/dist/helper/ssg/middleware.js +53 -40
- package/node_modules/hono/dist/helper/ssg/plugins.js +55 -36
- package/node_modules/hono/dist/helper/ssg/ssg.js +198 -283
- package/node_modules/hono/dist/helper/ssg/utils.js +53 -75
- package/node_modules/hono/dist/helper/streaming/index.js +2 -8
- package/node_modules/hono/dist/helper/streaming/sse.js +50 -61
- package/node_modules/hono/dist/helper/streaming/stream.js +22 -31
- package/node_modules/hono/dist/helper/streaming/text.js +9 -10
- package/node_modules/hono/dist/helper/streaming/utils.js +9 -12
- package/node_modules/hono/dist/helper/testing/index.js +16 -10
- package/node_modules/hono/dist/helper/websocket/index.js +49 -53
- package/node_modules/hono/dist/hono-base.js +342 -379
- package/node_modules/hono/dist/hono.js +27 -20
- package/node_modules/hono/dist/http-exception.js +53 -33
- package/node_modules/hono/dist/index.js +19 -6
- package/node_modules/hono/dist/jsx/base.js +231 -340
- package/node_modules/hono/dist/jsx/children.js +16 -20
- package/node_modules/hono/dist/jsx/components.js +118 -170
- package/node_modules/hono/dist/jsx/constants.js +9 -15
- package/node_modules/hono/dist/jsx/context.js +153 -150
- package/node_modules/hono/dist/jsx/dom/client.js +45 -48
- package/node_modules/hono/dist/jsx/dom/components.js +21 -29
- package/node_modules/hono/dist/jsx/dom/context.js +37 -44
- package/node_modules/hono/dist/jsx/dom/css.js +142 -147
- package/node_modules/hono/dist/jsx/dom/hooks/index.js +52 -40
- package/node_modules/hono/dist/jsx/dom/index.js +71 -134
- package/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +275 -359
- package/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +14 -18
- package/node_modules/hono/dist/jsx/dom/jsx-runtime.js +2 -8
- package/node_modules/hono/dist/jsx/dom/render.js +492 -631
- package/node_modules/hono/dist/jsx/dom/server.js +32 -32
- package/node_modules/hono/dist/jsx/dom/utils.js +6 -8
- package/node_modules/hono/dist/jsx/hooks/index.js +236 -308
- package/node_modules/hono/dist/jsx/index.js +45 -98
- package/node_modules/hono/dist/jsx/intrinsic-element/common.js +20 -22
- package/node_modules/hono/dist/jsx/intrinsic-element/components.js +113 -154
- package/node_modules/hono/dist/jsx/intrinsic-elements.js +1 -0
- package/node_modules/hono/dist/jsx/jsx-dev-runtime.js +12 -16
- package/node_modules/hono/dist/jsx/jsx-runtime.js +29 -42
- package/node_modules/hono/dist/jsx/streaming.js +120 -142
- package/node_modules/hono/dist/jsx/types.js +1 -0
- package/node_modules/hono/dist/jsx/utils.js +105 -168
- package/node_modules/hono/dist/middleware/basic-auth/index.js +96 -63
- package/node_modules/hono/dist/middleware/bearer-auth/index.js +93 -89
- package/node_modules/hono/dist/middleware/body-limit/index.js +66 -51
- package/node_modules/hono/dist/middleware/cache/index.js +165 -190
- package/node_modules/hono/dist/middleware/combine/index.js +134 -73
- package/node_modules/hono/dist/middleware/compress/index.js +75 -69
- package/node_modules/hono/dist/middleware/context-storage/index.js +49 -19
- package/node_modules/hono/dist/middleware/cors/index.js +107 -86
- package/node_modules/hono/dist/middleware/csrf/index.js +103 -53
- package/node_modules/hono/dist/middleware/etag/digest.js +59 -77
- package/node_modules/hono/dist/middleware/etag/index.js +71 -70
- package/node_modules/hono/dist/middleware/ip-restriction/index.js +163 -158
- package/node_modules/hono/dist/middleware/jsx-renderer/index.js +97 -54
- package/node_modules/hono/dist/middleware/jwk/index.js +1 -4
- package/node_modules/hono/dist/middleware/jwk/jwk.js +116 -112
- package/node_modules/hono/dist/middleware/jwt/index.js +2 -10
- package/node_modules/hono/dist/middleware/jwt/jwt.js +114 -114
- package/node_modules/hono/dist/middleware/language/index.js +2 -15
- package/node_modules/hono/dist/middleware/language/language.js +180 -157
- package/node_modules/hono/dist/middleware/logger/index.js +43 -37
- package/node_modules/hono/dist/middleware/method-not-allowed/index.js +81 -66
- package/node_modules/hono/dist/middleware/method-override/index.js +101 -81
- package/node_modules/hono/dist/middleware/powered-by/index.js +23 -9
- package/node_modules/hono/dist/middleware/pretty-json/index.js +39 -22
- package/node_modules/hono/dist/middleware/request-id/index.js +1 -4
- package/node_modules/hono/dist/middleware/request-id/request-id.js +33 -20
- package/node_modules/hono/dist/middleware/secure-headers/index.js +1 -5
- package/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +1 -0
- package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +144 -155
- package/node_modules/hono/dist/middleware/serve-static/index.js +56 -72
- package/node_modules/hono/dist/middleware/serve-static/path.js +15 -17
- package/node_modules/hono/dist/middleware/timeout/index.js +40 -23
- package/node_modules/hono/dist/middleware/timing/index.js +2 -9
- package/node_modules/hono/dist/middleware/timing/timing.js +177 -97
- package/node_modules/hono/dist/middleware/trailing-slash/index.js +85 -37
- package/node_modules/hono/dist/preset/quick.js +17 -15
- package/node_modules/hono/dist/preset/tiny.js +14 -11
- package/node_modules/hono/dist/request/constants.js +4 -5
- package/node_modules/hono/dist/request.js +328 -319
- package/node_modules/hono/dist/router/linear-router/index.js +1 -4
- package/node_modules/hono/dist/router/linear-router/router.js +93 -120
- package/node_modules/hono/dist/router/pattern-router/index.js +1 -4
- package/node_modules/hono/dist/router/pattern-router/router.js +39 -40
- package/node_modules/hono/dist/router/reg-exp-router/index.js +1 -7
- package/node_modules/hono/dist/router/reg-exp-router/matcher.js +17 -23
- package/node_modules/hono/dist/router/reg-exp-router/node.js +87 -110
- package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +89 -137
- package/node_modules/hono/dist/router/reg-exp-router/router.js +92 -129
- package/node_modules/hono/dist/router/reg-exp-router/trie.js +69 -64
- package/node_modules/hono/dist/router/smart-router/index.js +1 -4
- package/node_modules/hono/dist/router/smart-router/router.js +46 -55
- package/node_modules/hono/dist/router/trie-router/index.js +1 -4
- package/node_modules/hono/dist/router/trie-router/node.js +131 -162
- package/node_modules/hono/dist/router/trie-router/router.js +11 -14
- package/node_modules/hono/dist/router/utils.js +4 -5
- package/node_modules/hono/dist/router.js +35 -14
- package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
- package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +150 -104
- package/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +4 -8
- package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +152 -122
- package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +4 -1
- package/node_modules/hono/dist/types/adapter/bun/index.d.ts +6 -10
- package/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +7 -2
- package/node_modules/hono/dist/types/adapter/bun/server.d.ts +4 -5
- package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +5 -1
- package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +31 -16
- package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
- package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -17
- package/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
- package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
- package/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
- package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -2
- package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
- package/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
- package/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
- package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +4 -1
- package/node_modules/hono/dist/types/adapter/deno/deno.d.ts +1 -0
- package/node_modules/hono/dist/types/adapter/deno/index.d.ts +5 -8
- package/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +7 -2
- package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +5 -1
- package/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +6 -1
- package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
- package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +83 -57
- package/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +3 -7
- package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +4 -1
- package/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +6 -1
- package/node_modules/hono/dist/types/adapter/netlify/index.d.ts +3 -5
- package/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +3 -2
- package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +9 -7
- package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +7 -9
- package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -7
- package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +6 -1
- package/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +6 -1
- package/node_modules/hono/dist/types/adapter/vercel/index.d.ts +3 -6
- package/node_modules/hono/dist/types/client/client.d.ts +5 -3
- package/node_modules/hono/dist/types/client/fetch-result-please.d.ts +21 -19
- package/node_modules/hono/dist/types/client/index.d.ts +5 -7
- package/node_modules/hono/dist/types/client/types.d.ts +134 -159
- package/node_modules/hono/dist/types/client/utils.d.ts +6 -4
- package/node_modules/hono/dist/types/compose.d.ts +4 -2
- package/node_modules/hono/dist/types/context.d.ts +335 -335
- package/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +11 -9
- package/node_modules/hono/dist/types/helper/accepts/index.d.ts +2 -5
- package/node_modules/hono/dist/types/helper/adapter/index.d.ts +4 -6
- package/node_modules/hono/dist/types/helper/conninfo/index.d.ts +2 -5
- package/node_modules/hono/dist/types/helper/conninfo/types.d.ts +25 -23
- package/node_modules/hono/dist/types/helper/cookie/index.d.ts +10 -12
- package/node_modules/hono/dist/types/helper/css/common.d.ts +11 -9
- package/node_modules/hono/dist/types/helper/css/index.d.ts +26 -28
- package/node_modules/hono/dist/types/helper/dev/index.d.ts +10 -12
- package/node_modules/hono/dist/types/helper/factory/index.d.ts +26 -73
- package/node_modules/hono/dist/types/helper/html/index.d.ts +4 -7
- package/node_modules/hono/dist/types/helper/proxy/index.d.ts +19 -21
- package/node_modules/hono/dist/types/helper/route/index.d.ts +4 -2
- package/node_modules/hono/dist/types/helper/ssg/index.d.ts +4 -7
- package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +8 -6
- package/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +3 -1
- package/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +38 -36
- package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +5 -3
- package/node_modules/hono/dist/types/helper/streaming/index.d.ts +4 -8
- package/node_modules/hono/dist/types/helper/streaming/sse.d.ts +10 -8
- package/node_modules/hono/dist/types/helper/streaming/stream.d.ts +4 -2
- package/node_modules/hono/dist/types/helper/streaming/text.d.ts +4 -2
- package/node_modules/hono/dist/types/helper/streaming/utils.d.ts +2 -0
- package/node_modules/hono/dist/types/helper/testing/index.d.ts +7 -9
- package/node_modules/hono/dist/types/helper/websocket/index.d.ts +30 -33
- package/node_modules/hono/dist/types/hono-base.d.ts +208 -210
- package/node_modules/hono/dist/types/hono.d.ts +11 -10
- package/node_modules/hono/dist/types/http-exception.d.ts +20 -22
- package/node_modules/hono/dist/types/index.d.ts +6 -37
- package/node_modules/hono/dist/types/jsx/base.d.ts +36 -34
- package/node_modules/hono/dist/types/jsx/children.d.ts +8 -6
- package/node_modules/hono/dist/types/jsx/components.d.ts +8 -5
- package/node_modules/hono/dist/types/jsx/constants.d.ts +2 -0
- package/node_modules/hono/dist/types/jsx/context.d.ts +9 -6
- package/node_modules/hono/dist/types/jsx/dom/client.d.ts +9 -10
- package/node_modules/hono/dist/types/jsx/dom/components.d.ts +9 -6
- package/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -1
- package/node_modules/hono/dist/types/jsx/dom/css.d.ts +27 -30
- package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +11 -12
- package/node_modules/hono/dist/types/jsx/dom/index.d.ts +79 -83
- package/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
- package/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
- package/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
- package/node_modules/hono/dist/types/jsx/dom/render.d.ts +32 -50
- package/node_modules/hono/dist/types/jsx/dom/server.d.ts +87 -85
- package/node_modules/hono/dist/types/jsx/dom/utils.d.ts +2 -0
- package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +16 -16
- package/node_modules/hono/dist/types/jsx/index.d.ts +71 -73
- package/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
- package/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
- package/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +708 -708
- package/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
- package/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +7 -10
- package/node_modules/hono/dist/types/jsx/streaming.d.ts +9 -10
- package/node_modules/hono/dist/types/jsx/types.d.ts +12 -13
- package/node_modules/hono/dist/types/jsx/utils.d.ts +2 -0
- package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +17 -19
- package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +46 -48
- package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +6 -8
- package/node_modules/hono/dist/types/middleware/cache/index.d.ts +13 -15
- package/node_modules/hono/dist/types/middleware/combine/index.d.ts +4 -6
- package/node_modules/hono/dist/types/middleware/compress/index.d.ts +9 -10
- package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +4 -6
- package/node_modules/hono/dist/types/middleware/cors/index.d.ts +10 -12
- package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +6 -8
- package/node_modules/hono/dist/types/middleware/etag/digest.d.ts +2 -0
- package/node_modules/hono/dist/types/middleware/etag/index.d.ts +6 -8
- package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +11 -12
- package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +11 -11
- package/node_modules/hono/dist/types/middleware/jwk/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +20 -23
- package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +7 -6
- package/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +28 -30
- package/node_modules/hono/dist/types/middleware/language/index.d.ts +6 -5
- package/node_modules/hono/dist/types/middleware/language/language.d.ts +42 -44
- package/node_modules/hono/dist/types/middleware/logger/index.d.ts +3 -5
- package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +7 -9
- package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +14 -16
- package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +8 -10
- package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +18 -20
- package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +6 -5
- package/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +9 -11
- package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +6 -6
- package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -0
- package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -57
- package/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +24 -24
- package/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +2 -0
- package/node_modules/hono/dist/types/middleware/timeout/index.d.ts +5 -7
- package/node_modules/hono/dist/types/middleware/timing/index.d.ts +6 -5
- package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +17 -20
- package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +35 -37
- package/node_modules/hono/dist/types/preset/quick.d.ts +6 -9
- package/node_modules/hono/dist/types/preset/tiny.d.ts +6 -9
- package/node_modules/hono/dist/types/request/constants.d.ts +2 -0
- package/node_modules/hono/dist/types/request.d.ts +288 -286
- package/node_modules/hono/dist/types/router/linear-router/index.d.ts +2 -5
- package/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -5
- package/node_modules/hono/dist/types/router/pattern-router/index.d.ts +2 -5
- package/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -5
- package/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +3 -6
- package/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
- package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +6 -4
- package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -10
- package/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +10 -9
- package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -5
- package/node_modules/hono/dist/types/router/smart-router/index.d.ts +2 -5
- package/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -9
- package/node_modules/hono/dist/types/router/trie-router/index.d.ts +2 -5
- package/node_modules/hono/dist/types/router/trie-router/node.d.ts +6 -4
- package/node_modules/hono/dist/types/router/trie-router/router.d.ts +7 -5
- package/node_modules/hono/dist/types/router/utils.d.ts +2 -0
- package/node_modules/hono/dist/types/router.d.ts +23 -22
- package/node_modules/hono/dist/types/types.d.ts +146 -505
- package/node_modules/hono/dist/types/utils/accept.d.ts +5 -3
- package/node_modules/hono/dist/types/utils/basic-auth.d.ts +4 -2
- package/node_modules/hono/dist/types/utils/body.d.ts +46 -50
- package/node_modules/hono/dist/types/utils/buffer.d.ts +7 -5
- package/node_modules/hono/dist/types/utils/color.d.ts +2 -0
- package/node_modules/hono/dist/types/utils/compress.d.ts +2 -0
- package/node_modules/hono/dist/types/utils/concurrent.d.ts +6 -4
- package/node_modules/hono/dist/types/utils/constants.d.ts +2 -0
- package/node_modules/hono/dist/types/utils/cookie.d.ts +20 -18
- package/node_modules/hono/dist/types/utils/crypto.d.ts +5 -7
- package/node_modules/hono/dist/types/utils/encode.d.ts +2 -0
- package/node_modules/hono/dist/types/utils/filepath.d.ts +5 -3
- package/node_modules/hono/dist/types/utils/handler.d.ts +2 -0
- package/node_modules/hono/dist/types/utils/headers.d.ts +2 -0
- package/node_modules/hono/dist/types/utils/html.d.ts +11 -9
- package/node_modules/hono/dist/types/utils/http-status.d.ts +2 -0
- package/node_modules/hono/dist/types/utils/ipaddr.d.ts +4 -6
- package/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -12
- package/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +15 -13
- package/node_modules/hono/dist/types/utils/jwt/jws.d.ts +4 -7
- package/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +26 -29
- package/node_modules/hono/dist/types/utils/jwt/types.d.ts +48 -45
- package/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +2 -0
- package/node_modules/hono/dist/types/utils/mime.d.ts +60 -57
- package/node_modules/hono/dist/types/utils/stream.d.ts +27 -25
- package/node_modules/hono/dist/types/utils/types.d.ts +14 -26
- package/node_modules/hono/dist/types/utils/url.d.ts +2 -0
- package/node_modules/hono/dist/types/validator/index.d.ts +3 -7
- package/node_modules/hono/dist/types/validator/utils.d.ts +6 -8
- package/node_modules/hono/dist/types/validator/validator.d.ts +11 -9
- package/node_modules/hono/dist/types.js +4 -6
- package/node_modules/hono/dist/utils/accept.js +185 -212
- package/node_modules/hono/dist/utils/basic-auth.js +18 -21
- package/node_modules/hono/dist/utils/body.js +87 -92
- package/node_modules/hono/dist/utils/buffer.js +44 -71
- package/node_modules/hono/dist/utils/color.js +33 -21
- package/node_modules/hono/dist/utils/compress.js +11 -5
- package/node_modules/hono/dist/utils/concurrent.js +29 -38
- package/node_modules/hono/dist/utils/constants.js +7 -5
- package/node_modules/hono/dist/utils/cookie.js +114 -163
- package/node_modules/hono/dist/utils/crypto.js +30 -40
- package/node_modules/hono/dist/utils/encode.js +30 -26
- package/node_modules/hono/dist/utils/filepath.js +23 -33
- package/node_modules/hono/dist/utils/handler.js +10 -11
- package/node_modules/hono/dist/utils/headers.js +1 -0
- package/node_modules/hono/dist/utils/html.js +97 -117
- package/node_modules/hono/dist/utils/http-status.js +1 -0
- package/node_modules/hono/dist/utils/ipaddr.js +227 -279
- package/node_modules/hono/dist/utils/jwt/index.js +12 -4
- package/node_modules/hono/dist/utils/jwt/jwa.js +24 -20
- package/node_modules/hono/dist/utils/jwt/jws.js +115 -174
- package/node_modules/hono/dist/utils/jwt/jwt.js +120 -198
- package/node_modules/hono/dist/utils/jwt/types.js +79 -95
- package/node_modules/hono/dist/utils/jwt/utf8.js +9 -7
- package/node_modules/hono/dist/utils/mime.js +74 -79
- package/node_modules/hono/dist/utils/stream.js +86 -88
- package/node_modules/hono/dist/utils/types.js +1 -0
- package/node_modules/hono/dist/utils/url.js +187 -215
- package/node_modules/hono/dist/validator/index.js +1 -4
- package/node_modules/hono/dist/validator/utils.js +1 -0
- package/node_modules/hono/dist/validator/validator.js +61 -83
- package/node_modules/hono/package.json +27 -27
- package/package.json +2 -2
- package/profiles/README.md +20 -0
- package/profiles/index.json +2 -1
- package/profiles/sales/0.1.profile.json +252 -0
- package/server.js +99 -0
package/dist/ui/index.html
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<meta name="apple-mobile-web-app-title" content="Suveren" />
|
|
15
15
|
<meta name="theme-color" content="#111111" />
|
|
16
16
|
<title>Suveren</title>
|
|
17
|
-
<script type="module" crossorigin src="/assets/index-
|
|
17
|
+
<script type="module" crossorigin src="/assets/index-CIiOCgjJ.js"></script>
|
|
18
18
|
<link rel="stylesheet" crossorigin href="/assets/index-BJqF5rmx.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
package/lib/config.d.mts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the plain-ESM saved-config module.
|
|
3
|
+
*
|
|
4
|
+
* The module is .mjs because the CLI (plain JS, no build step) imports it
|
|
5
|
+
* directly. TypeScript consumers — the tests — need declarations, and without
|
|
6
|
+
* them a typecheck fails with TS7016 rather than checking anything (see
|
|
7
|
+
* autostart-templates.d.mts for the established precedent).
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export declare const DEFAULT_AS_URL: string;
|
|
11
|
+
|
|
12
|
+
export interface SavedConfig {
|
|
13
|
+
asUrl?: string;
|
|
14
|
+
caFile?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export declare function readConfig(dataDir: string): SavedConfig;
|
|
18
|
+
export declare function writeConfig(dataDir: string, patch: SavedConfig): SavedConfig;
|
|
19
|
+
|
|
20
|
+
export interface AsUrlValidation {
|
|
21
|
+
ok: boolean;
|
|
22
|
+
url?: string;
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export declare function validateAsUrl(candidate: string): AsUrlValidation;
|
|
27
|
+
|
|
28
|
+
export interface CaFileValidation {
|
|
29
|
+
ok: boolean;
|
|
30
|
+
path?: string;
|
|
31
|
+
error?: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export declare function validateCaFile(candidate: string): CaFileValidation;
|
|
35
|
+
|
|
36
|
+
export declare function resolveAsUrl(dataDir: string): string;
|
|
37
|
+
export declare function resolveCaFile(dataDir: string): string | undefined;
|
package/lib/config.mjs
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Saved gateway config (`<dataDir>/config.json`) — the CLI's copy.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors `apps/mcp-server/src/lib/as-config.ts` / `apps/control-plane/src/lib/as-config.ts`
|
|
5
|
+
* (same file shape, same validation rules) but written in plain JS: this
|
|
6
|
+
* runs as bundle/bin/suveren-gateway.js and bundle/server.js, which are
|
|
7
|
+
* hand-authored ESM shipped as-is (not built by tsup like the apps), so
|
|
8
|
+
* there is no shared runtime package to import the TS version from. Keep
|
|
9
|
+
* all three in step if the shape or validation rules change.
|
|
10
|
+
*
|
|
11
|
+
* Not secret — an Authority Server URL and a CA file path are not
|
|
12
|
+
* credentials — so this is plain JSON, same trust level as the rest of
|
|
13
|
+
* config.json.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
17
|
+
import { dirname, join, resolve } from 'node:path';
|
|
18
|
+
|
|
19
|
+
export const DEFAULT_AS_URL = 'https://www.suveren.ai';
|
|
20
|
+
|
|
21
|
+
function configPath(dataDir) {
|
|
22
|
+
return join(dataDir, 'config.json');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Tolerant of a missing or corrupt file — both degrade to "{}", never throw. */
|
|
26
|
+
export function readConfig(dataDir) {
|
|
27
|
+
const path = configPath(dataDir);
|
|
28
|
+
if (!existsSync(path)) return {};
|
|
29
|
+
try {
|
|
30
|
+
const data = JSON.parse(readFileSync(path, 'utf8'));
|
|
31
|
+
const out = {};
|
|
32
|
+
if (typeof data.asUrl === 'string') out.asUrl = data.asUrl;
|
|
33
|
+
if (typeof data.caFile === 'string') out.caFile = data.caFile;
|
|
34
|
+
return out;
|
|
35
|
+
} catch {
|
|
36
|
+
return {};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Strict counterpart used only by resolveAsUrl: distinguishes "genuinely
|
|
42
|
+
* absent" (fine — falls through to the default) from "present but
|
|
43
|
+
* unparsable" (must refuse to start, not silently behave like an empty
|
|
44
|
+
* file — see resolveAsUrl's doc comment).
|
|
45
|
+
*/
|
|
46
|
+
function readConfigStrict(dataDir) {
|
|
47
|
+
const path = configPath(dataDir);
|
|
48
|
+
if (!existsSync(path)) return {};
|
|
49
|
+
let data;
|
|
50
|
+
try {
|
|
51
|
+
data = JSON.parse(readFileSync(path, 'utf8'));
|
|
52
|
+
} catch (err) {
|
|
53
|
+
throw new Error(`Could not parse ${path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
54
|
+
}
|
|
55
|
+
const out = {};
|
|
56
|
+
if (typeof data.asUrl === 'string') out.asUrl = data.asUrl;
|
|
57
|
+
if (typeof data.caFile === 'string') out.caFile = data.caFile;
|
|
58
|
+
return out;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function writeConfig(dataDir, patch) {
|
|
62
|
+
const merged = { ...readConfig(dataDir), ...patch };
|
|
63
|
+
const path = configPath(dataDir);
|
|
64
|
+
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
65
|
+
writeFileSync(path, JSON.stringify(merged, null, 2), { encoding: 'utf8', mode: 0o600 });
|
|
66
|
+
return merged;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Validate + normalize a candidate Authority Server URL.
|
|
71
|
+
* https only, except http://localhost / http://127.0.0.1; trailing slash
|
|
72
|
+
* stripped rather than rejected. Returns `{ ok, url }` or `{ ok: false, error }`.
|
|
73
|
+
*/
|
|
74
|
+
export function validateAsUrl(candidate) {
|
|
75
|
+
const trimmed = (candidate ?? '').trim();
|
|
76
|
+
if (!trimmed) return { ok: false, error: 'The Authority Server URL is empty.' };
|
|
77
|
+
|
|
78
|
+
let parsed;
|
|
79
|
+
try {
|
|
80
|
+
parsed = new URL(trimmed);
|
|
81
|
+
} catch {
|
|
82
|
+
return { ok: false, error: `"${trimmed}" is not a valid URL.` };
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const isLocalHttp =
|
|
86
|
+
parsed.protocol === 'http:' && (parsed.hostname === 'localhost' || parsed.hostname === '127.0.0.1');
|
|
87
|
+
if (parsed.protocol !== 'https:' && !isLocalHttp) {
|
|
88
|
+
return {
|
|
89
|
+
ok: false,
|
|
90
|
+
error: `"${trimmed}" must use https:// (http:// is only allowed for http://localhost or http://127.0.0.1).`,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
let normalized = `${parsed.origin}${parsed.pathname}${parsed.search}${parsed.hash}`;
|
|
95
|
+
if (normalized.endsWith('/') && normalized !== `${parsed.origin}/`) {
|
|
96
|
+
normalized = normalized.slice(0, -1);
|
|
97
|
+
} else if (normalized === `${parsed.origin}/`) {
|
|
98
|
+
normalized = parsed.origin;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return { ok: true, url: normalized };
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Validate a candidate CA file path: must exist and be readable. Returns an
|
|
106
|
+
* ABSOLUTE path (resolved against the CURRENT working directory) — a
|
|
107
|
+
* relative one saved as-is would resolve differently depending on where a
|
|
108
|
+
* later `start`/autostart happens to run from (a login service's cwd is
|
|
109
|
+
* rarely the directory someone typed the flag from). Does not check that it
|
|
110
|
+
* PARSES as PEM — Node reports that itself, loudly, at TLS handshake time if
|
|
111
|
+
* it's wrong, which is soon enough for a rare setup step.
|
|
112
|
+
*/
|
|
113
|
+
export function validateCaFile(candidate) {
|
|
114
|
+
const trimmed = (candidate ?? '').trim();
|
|
115
|
+
if (!trimmed) return { ok: false, error: 'The CA file path is empty.' };
|
|
116
|
+
const absolute = resolve(process.cwd(), trimmed);
|
|
117
|
+
if (!existsSync(absolute)) return { ok: false, error: `No file at "${absolute}".` };
|
|
118
|
+
return { ok: true, path: absolute };
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Resolution order: env SUVEREN_AS_URL > saved config > default. Throws on
|
|
123
|
+
* an explicitly-set-but-invalid env var, AND on a saved value that is
|
|
124
|
+
* present but invalid or on a config.json that won't parse — fail closed,
|
|
125
|
+
* audibly. For a self-hosted customer, silently falling back to the public
|
|
126
|
+
* default here would mean their real API key gets sent to suveren.ai instead
|
|
127
|
+
* of their own server. Only a genuinely ABSENT saved value (nothing was ever
|
|
128
|
+
* set) falls through to the default.
|
|
129
|
+
*/
|
|
130
|
+
export function resolveAsUrl(dataDir) {
|
|
131
|
+
const envUrl = process.env.SUVEREN_AS_URL;
|
|
132
|
+
if (envUrl) {
|
|
133
|
+
const v = validateAsUrl(envUrl);
|
|
134
|
+
if (!v.ok) throw new Error(`Invalid SUVEREN_AS_URL: ${v.error}`);
|
|
135
|
+
return v.url;
|
|
136
|
+
}
|
|
137
|
+
const saved = readConfigStrict(dataDir).asUrl;
|
|
138
|
+
if (saved) {
|
|
139
|
+
const v = validateAsUrl(saved);
|
|
140
|
+
if (!v.ok) throw new Error(`Invalid saved as-url "${saved}" in ${dataDir}/config.json: ${v.error}`);
|
|
141
|
+
return v.url;
|
|
142
|
+
}
|
|
143
|
+
return DEFAULT_AS_URL;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/** The saved CA file path, if any — no env/flag tier (see bundle/server.js,
|
|
147
|
+
* the one place that reads and acts on it). */
|
|
148
|
+
export function resolveCaFile(dataDir) {
|
|
149
|
+
return readConfig(dataDir).caFile;
|
|
150
|
+
}
|
|
@@ -610,7 +610,21 @@ interface ExecutionLogQuery {
|
|
|
610
610
|
* Sum a field's values within a time window for a given profile.
|
|
611
611
|
* Use field="_count" to count executions instead of summing a field.
|
|
612
612
|
*/
|
|
613
|
-
sumByWindow(profileId: string, path: string, field: string, window: CumulativeWindow, now?: number
|
|
613
|
+
sumByWindow(profileId: string, path: string, field: string, window: CumulativeWindow, now?: number,
|
|
614
|
+
/**
|
|
615
|
+
* Only count executions whose `execution.action_type` is one of these.
|
|
616
|
+
* Omitted → every execution counts (a bound that governs all action types).
|
|
617
|
+
*
|
|
618
|
+
* Consumption is partitioned by action type (*Cumulative Tracking* rule 4):
|
|
619
|
+
* a bound counts only the action types it governs. Without the filter a
|
|
620
|
+
* profile with several action types feeds every bound the combined total —
|
|
621
|
+
* sales' "orders per day" counted quotes and sends too, and its daily order
|
|
622
|
+
* value summed quote values. Use {@link boundActionTypes} to derive it.
|
|
623
|
+
*
|
|
624
|
+
* Implementations SHOULD count an entry that carries no `action_type`
|
|
625
|
+
* against every filter: an unknown action is not evidence of headroom.
|
|
626
|
+
*/
|
|
627
|
+
actionTypes?: readonly string[]): number;
|
|
614
628
|
}
|
|
615
629
|
/**
|
|
616
630
|
* Agent frame parameters — mixed types (strings and numbers).
|
|
@@ -1126,6 +1140,23 @@ declare function verifyAttestationV4(blob: string, publicKeyHex: string, expecte
|
|
|
1126
1140
|
* @param executionLog - Optional execution log for resolving cumulative fields
|
|
1127
1141
|
*/
|
|
1128
1142
|
declare function verify(request: GatekeeperRequest, publicKeyHex: string, now?: number, executionLog?: ExecutionLogQuery): Promise<GatekeeperResult>;
|
|
1143
|
+
/**
|
|
1144
|
+
* Which action types' executions count toward this cumulative bound's running
|
|
1145
|
+
* total. `undefined` means all of them.
|
|
1146
|
+
*
|
|
1147
|
+
* `boundGovernsAction` decides whether a bound applies to the current call; this
|
|
1148
|
+
* decides what the bound's total is made of. Both are needed: selecting the right
|
|
1149
|
+
* bound and then feeding it the profile's combined total is still wrong — sales'
|
|
1150
|
+
* "orders per day" was checked only on orders, but counted every quote and send.
|
|
1151
|
+
* Consumption is partitioned by action type (*Cumulative Tracking* rule 4), as
|
|
1152
|
+
* the Authority Server already does.
|
|
1153
|
+
*
|
|
1154
|
+
* Same answer, same order of preference as `boundGovernsAction`: the declared
|
|
1155
|
+
* `appliesTo`; else, for a count bound named for an action (`delete_daily_max`),
|
|
1156
|
+
* that action; else every action type. Exported so display surfaces report the
|
|
1157
|
+
* same totals the gate enforces.
|
|
1158
|
+
*/
|
|
1159
|
+
declare function boundActionTypes(fieldName: string, fieldDef: ProfileBoundsField): readonly string[] | undefined;
|
|
1129
1160
|
|
|
1130
1161
|
/**
|
|
1131
1162
|
* Profile Registry — dynamically populated from git-hosted profile sources.
|
|
@@ -1322,4 +1353,4 @@ interface ReceiptPayload {
|
|
|
1322
1353
|
*/
|
|
1323
1354
|
declare function verifyReceiptSignature(receipt: ReceiptPayload, publicKeyHex: string): Promise<void>;
|
|
1324
1355
|
|
|
1325
|
-
export { type AgentBoundsParams, type AgentContextParams, type AgentFrameParams, type AgentProfile, type ApprovalObject, type Attestation, type AttestationHeader, type AttestationPayload, type BoundType, CanonicalValueError, type ContentBinding, ContentBindingError, type ContentBindingErrorCode, type CumulativeFieldDef, type CumulativeWindow, type DeclaredFieldDef, type ExecutionContextFieldDef, type ExecutionLogEntry, type ExecutionLogQuery, type ExecutionMappingTransform, type ExecutionMappingValue, type ExecutionPath, type FieldConstraint, type FieldUnit, type GateQuestion, type GatekeeperError, type GatekeeperRequest, type GatekeeperResult, type MandateBinding, MandateError, type MandateProjection, type OwnerMandate, type ProfileBoundsField, type ProfileContextField, type ProfileFrameField, type ProfileToolGating, type ProfileToolGatingEntry, type ReceiptPayload, type ResolvedDomain, type SigningSurface, type Subject, type SubjectValidation, approvalSigningBytes, attestationId, bindingAppliesTo, buildMandateProjection, canonicalBounds, canonicalContext, canonicalFrame, canonicalize, canonicalizeText, checkAttestationExpiry, clearProfiles, computeBoundsHash, computeContentHash, computeContextHash, computeFieldsContentHash, computeFrameHash, computeIntentDisclosureHash, computeIntentHash, contentCanonicalBytes, decodeAttestationBlob, decodeDidKey, deriveIdentityLine, encodeAttestationBlob, encodeDidKey, frameHash, getAllProfiles, getProfile, intentDisclosureCanonicalBytes, isFieldBinding, isKeyBearingDid, isV4Attestation, listProfiles, mandateSigningBytes, registerProfile, selectBoundFields, signApproval, signMandateProjection, validateBoundsParams, validateContextParams, validateFrameParams, validateSubject, verify, verifyApproval, verifyAttestation, verifyAttestationSignature, verifyAttestationV4, verifyBoundsHash, verifyContextHash, verifyFrameHash, verifyOwnerMandate, verifyOwnerMandates, verifyReceiptSignature };
|
|
1356
|
+
export { type AgentBoundsParams, type AgentContextParams, type AgentFrameParams, type AgentProfile, type ApprovalObject, type Attestation, type AttestationHeader, type AttestationPayload, type BoundType, CanonicalValueError, type ContentBinding, ContentBindingError, type ContentBindingErrorCode, type CumulativeFieldDef, type CumulativeWindow, type DeclaredFieldDef, type ExecutionContextFieldDef, type ExecutionLogEntry, type ExecutionLogQuery, type ExecutionMappingTransform, type ExecutionMappingValue, type ExecutionPath, type FieldConstraint, type FieldUnit, type GateQuestion, type GatekeeperError, type GatekeeperRequest, type GatekeeperResult, type MandateBinding, MandateError, type MandateProjection, type OwnerMandate, type ProfileBoundsField, type ProfileContextField, type ProfileFrameField, type ProfileToolGating, type ProfileToolGatingEntry, type ReceiptPayload, type ResolvedDomain, type SigningSurface, type Subject, type SubjectValidation, approvalSigningBytes, attestationId, bindingAppliesTo, boundActionTypes, buildMandateProjection, canonicalBounds, canonicalContext, canonicalFrame, canonicalize, canonicalizeText, checkAttestationExpiry, clearProfiles, computeBoundsHash, computeContentHash, computeContextHash, computeFieldsContentHash, computeFrameHash, computeIntentDisclosureHash, computeIntentHash, contentCanonicalBytes, decodeAttestationBlob, decodeDidKey, deriveIdentityLine, encodeAttestationBlob, encodeDidKey, frameHash, getAllProfiles, getProfile, intentDisclosureCanonicalBytes, isFieldBinding, isKeyBearingDid, isV4Attestation, listProfiles, mandateSigningBytes, registerProfile, selectBoundFields, signApproval, signMandateProjection, validateBoundsParams, validateContextParams, validateFrameParams, validateSubject, verify, verifyApproval, verifyAttestation, verifyAttestationSignature, verifyAttestationV4, verifyBoundsHash, verifyContextHash, verifyFrameHash, verifyOwnerMandate, verifyOwnerMandates, verifyReceiptSignature };
|
|
@@ -610,7 +610,21 @@ interface ExecutionLogQuery {
|
|
|
610
610
|
* Sum a field's values within a time window for a given profile.
|
|
611
611
|
* Use field="_count" to count executions instead of summing a field.
|
|
612
612
|
*/
|
|
613
|
-
sumByWindow(profileId: string, path: string, field: string, window: CumulativeWindow, now?: number
|
|
613
|
+
sumByWindow(profileId: string, path: string, field: string, window: CumulativeWindow, now?: number,
|
|
614
|
+
/**
|
|
615
|
+
* Only count executions whose `execution.action_type` is one of these.
|
|
616
|
+
* Omitted → every execution counts (a bound that governs all action types).
|
|
617
|
+
*
|
|
618
|
+
* Consumption is partitioned by action type (*Cumulative Tracking* rule 4):
|
|
619
|
+
* a bound counts only the action types it governs. Without the filter a
|
|
620
|
+
* profile with several action types feeds every bound the combined total —
|
|
621
|
+
* sales' "orders per day" counted quotes and sends too, and its daily order
|
|
622
|
+
* value summed quote values. Use {@link boundActionTypes} to derive it.
|
|
623
|
+
*
|
|
624
|
+
* Implementations SHOULD count an entry that carries no `action_type`
|
|
625
|
+
* against every filter: an unknown action is not evidence of headroom.
|
|
626
|
+
*/
|
|
627
|
+
actionTypes?: readonly string[]): number;
|
|
614
628
|
}
|
|
615
629
|
/**
|
|
616
630
|
* Agent frame parameters — mixed types (strings and numbers).
|
|
@@ -1126,6 +1140,23 @@ declare function verifyAttestationV4(blob: string, publicKeyHex: string, expecte
|
|
|
1126
1140
|
* @param executionLog - Optional execution log for resolving cumulative fields
|
|
1127
1141
|
*/
|
|
1128
1142
|
declare function verify(request: GatekeeperRequest, publicKeyHex: string, now?: number, executionLog?: ExecutionLogQuery): Promise<GatekeeperResult>;
|
|
1143
|
+
/**
|
|
1144
|
+
* Which action types' executions count toward this cumulative bound's running
|
|
1145
|
+
* total. `undefined` means all of them.
|
|
1146
|
+
*
|
|
1147
|
+
* `boundGovernsAction` decides whether a bound applies to the current call; this
|
|
1148
|
+
* decides what the bound's total is made of. Both are needed: selecting the right
|
|
1149
|
+
* bound and then feeding it the profile's combined total is still wrong — sales'
|
|
1150
|
+
* "orders per day" was checked only on orders, but counted every quote and send.
|
|
1151
|
+
* Consumption is partitioned by action type (*Cumulative Tracking* rule 4), as
|
|
1152
|
+
* the Authority Server already does.
|
|
1153
|
+
*
|
|
1154
|
+
* Same answer, same order of preference as `boundGovernsAction`: the declared
|
|
1155
|
+
* `appliesTo`; else, for a count bound named for an action (`delete_daily_max`),
|
|
1156
|
+
* that action; else every action type. Exported so display surfaces report the
|
|
1157
|
+
* same totals the gate enforces.
|
|
1158
|
+
*/
|
|
1159
|
+
declare function boundActionTypes(fieldName: string, fieldDef: ProfileBoundsField): readonly string[] | undefined;
|
|
1129
1160
|
|
|
1130
1161
|
/**
|
|
1131
1162
|
* Profile Registry — dynamically populated from git-hosted profile sources.
|
|
@@ -1322,4 +1353,4 @@ interface ReceiptPayload {
|
|
|
1322
1353
|
*/
|
|
1323
1354
|
declare function verifyReceiptSignature(receipt: ReceiptPayload, publicKeyHex: string): Promise<void>;
|
|
1324
1355
|
|
|
1325
|
-
export { type AgentBoundsParams, type AgentContextParams, type AgentFrameParams, type AgentProfile, type ApprovalObject, type Attestation, type AttestationHeader, type AttestationPayload, type BoundType, CanonicalValueError, type ContentBinding, ContentBindingError, type ContentBindingErrorCode, type CumulativeFieldDef, type CumulativeWindow, type DeclaredFieldDef, type ExecutionContextFieldDef, type ExecutionLogEntry, type ExecutionLogQuery, type ExecutionMappingTransform, type ExecutionMappingValue, type ExecutionPath, type FieldConstraint, type FieldUnit, type GateQuestion, type GatekeeperError, type GatekeeperRequest, type GatekeeperResult, type MandateBinding, MandateError, type MandateProjection, type OwnerMandate, type ProfileBoundsField, type ProfileContextField, type ProfileFrameField, type ProfileToolGating, type ProfileToolGatingEntry, type ReceiptPayload, type ResolvedDomain, type SigningSurface, type Subject, type SubjectValidation, approvalSigningBytes, attestationId, bindingAppliesTo, buildMandateProjection, canonicalBounds, canonicalContext, canonicalFrame, canonicalize, canonicalizeText, checkAttestationExpiry, clearProfiles, computeBoundsHash, computeContentHash, computeContextHash, computeFieldsContentHash, computeFrameHash, computeIntentDisclosureHash, computeIntentHash, contentCanonicalBytes, decodeAttestationBlob, decodeDidKey, deriveIdentityLine, encodeAttestationBlob, encodeDidKey, frameHash, getAllProfiles, getProfile, intentDisclosureCanonicalBytes, isFieldBinding, isKeyBearingDid, isV4Attestation, listProfiles, mandateSigningBytes, registerProfile, selectBoundFields, signApproval, signMandateProjection, validateBoundsParams, validateContextParams, validateFrameParams, validateSubject, verify, verifyApproval, verifyAttestation, verifyAttestationSignature, verifyAttestationV4, verifyBoundsHash, verifyContextHash, verifyFrameHash, verifyOwnerMandate, verifyOwnerMandates, verifyReceiptSignature };
|
|
1356
|
+
export { type AgentBoundsParams, type AgentContextParams, type AgentFrameParams, type AgentProfile, type ApprovalObject, type Attestation, type AttestationHeader, type AttestationPayload, type BoundType, CanonicalValueError, type ContentBinding, ContentBindingError, type ContentBindingErrorCode, type CumulativeFieldDef, type CumulativeWindow, type DeclaredFieldDef, type ExecutionContextFieldDef, type ExecutionLogEntry, type ExecutionLogQuery, type ExecutionMappingTransform, type ExecutionMappingValue, type ExecutionPath, type FieldConstraint, type FieldUnit, type GateQuestion, type GatekeeperError, type GatekeeperRequest, type GatekeeperResult, type MandateBinding, MandateError, type MandateProjection, type OwnerMandate, type ProfileBoundsField, type ProfileContextField, type ProfileFrameField, type ProfileToolGating, type ProfileToolGatingEntry, type ReceiptPayload, type ResolvedDomain, type SigningSurface, type Subject, type SubjectValidation, approvalSigningBytes, attestationId, bindingAppliesTo, boundActionTypes, buildMandateProjection, canonicalBounds, canonicalContext, canonicalFrame, canonicalize, canonicalizeText, checkAttestationExpiry, clearProfiles, computeBoundsHash, computeContentHash, computeContextHash, computeFieldsContentHash, computeFrameHash, computeIntentDisclosureHash, computeIntentHash, contentCanonicalBytes, decodeAttestationBlob, decodeDidKey, deriveIdentityLine, encodeAttestationBlob, encodeDidKey, frameHash, getAllProfiles, getProfile, intentDisclosureCanonicalBytes, isFieldBinding, isKeyBearingDid, isV4Attestation, listProfiles, mandateSigningBytes, registerProfile, selectBoundFields, signApproval, signMandateProjection, validateBoundsParams, validateContextParams, validateFrameParams, validateSubject, verify, verifyApproval, verifyAttestation, verifyAttestationSignature, verifyAttestationV4, verifyBoundsHash, verifyContextHash, verifyFrameHash, verifyOwnerMandate, verifyOwnerMandates, verifyReceiptSignature };
|
|
@@ -36,6 +36,7 @@ __export(index_exports, {
|
|
|
36
36
|
approvalSigningBytes: () => approvalSigningBytes,
|
|
37
37
|
attestationId: () => attestationId,
|
|
38
38
|
bindingAppliesTo: () => bindingAppliesTo,
|
|
39
|
+
boundActionTypes: () => boundActionTypes,
|
|
39
40
|
buildMandateProjection: () => buildMandateProjection,
|
|
40
41
|
canonicalBounds: () => canonicalBounds,
|
|
41
42
|
canonicalContext: () => canonicalContext,
|
|
@@ -785,6 +786,14 @@ function boundGovernsAction(fieldName, fieldDef, bt, actionType) {
|
|
|
785
786
|
const matches = prefix === actionType || prefix.startsWith("transaction");
|
|
786
787
|
return !namedForAnAction || matches;
|
|
787
788
|
}
|
|
789
|
+
function boundActionTypes(fieldName, fieldDef) {
|
|
790
|
+
if (fieldDef.appliesTo) return fieldDef.appliesTo;
|
|
791
|
+
const bt = fieldDef.boundType;
|
|
792
|
+
if (!bt || bt.kind !== "cumulative_count") return void 0;
|
|
793
|
+
const prefix = fieldName.replace(/_(?:daily|monthly|weekly)_max$/, "");
|
|
794
|
+
if (prefix === fieldName || prefix.startsWith("transaction")) return void 0;
|
|
795
|
+
return [prefix];
|
|
796
|
+
}
|
|
788
797
|
function checkBoundsV4(request, profile, executionLog, now) {
|
|
789
798
|
const errors = [];
|
|
790
799
|
if (!profile.boundsSchema) return errors;
|
|
@@ -845,7 +854,14 @@ function checkBoundsV4(request, profile, executionLog, now) {
|
|
|
845
854
|
break;
|
|
846
855
|
}
|
|
847
856
|
if (!executionLog) break;
|
|
848
|
-
const runningTotal = executionLog.sumByWindow(
|
|
857
|
+
const runningTotal = executionLog.sumByWindow(
|
|
858
|
+
profileId,
|
|
859
|
+
path,
|
|
860
|
+
bt.of,
|
|
861
|
+
bt.window,
|
|
862
|
+
now,
|
|
863
|
+
boundActionTypes(fieldName, fieldDef)
|
|
864
|
+
);
|
|
849
865
|
const currentRaw = request.execution[bt.of];
|
|
850
866
|
const current = typeof currentRaw === "number" ? currentRaw : currentRaw !== void 0 ? Number(currentRaw) : 0;
|
|
851
867
|
const total = runningTotal + current;
|
|
@@ -872,7 +888,14 @@ function checkBoundsV4(request, profile, executionLog, now) {
|
|
|
872
888
|
break;
|
|
873
889
|
}
|
|
874
890
|
if (!executionLog) break;
|
|
875
|
-
const runningCount = executionLog.sumByWindow(
|
|
891
|
+
const runningCount = executionLog.sumByWindow(
|
|
892
|
+
profileId,
|
|
893
|
+
path,
|
|
894
|
+
"_count",
|
|
895
|
+
bt.window,
|
|
896
|
+
now,
|
|
897
|
+
boundActionTypes(fieldName, fieldDef)
|
|
898
|
+
);
|
|
876
899
|
const total = runningCount + 1;
|
|
877
900
|
if (total > boundValue) {
|
|
878
901
|
errors.push({
|
|
@@ -1207,6 +1230,7 @@ async function verifyReceiptSignature(receipt, publicKeyHex) {
|
|
|
1207
1230
|
approvalSigningBytes,
|
|
1208
1231
|
attestationId,
|
|
1209
1232
|
bindingAppliesTo,
|
|
1233
|
+
boundActionTypes,
|
|
1210
1234
|
buildMandateProjection,
|
|
1211
1235
|
canonicalBounds,
|
|
1212
1236
|
canonicalContext,
|
|
@@ -695,6 +695,14 @@ function boundGovernsAction(fieldName, fieldDef, bt, actionType) {
|
|
|
695
695
|
const matches = prefix === actionType || prefix.startsWith("transaction");
|
|
696
696
|
return !namedForAnAction || matches;
|
|
697
697
|
}
|
|
698
|
+
function boundActionTypes(fieldName, fieldDef) {
|
|
699
|
+
if (fieldDef.appliesTo) return fieldDef.appliesTo;
|
|
700
|
+
const bt = fieldDef.boundType;
|
|
701
|
+
if (!bt || bt.kind !== "cumulative_count") return void 0;
|
|
702
|
+
const prefix = fieldName.replace(/_(?:daily|monthly|weekly)_max$/, "");
|
|
703
|
+
if (prefix === fieldName || prefix.startsWith("transaction")) return void 0;
|
|
704
|
+
return [prefix];
|
|
705
|
+
}
|
|
698
706
|
function checkBoundsV4(request, profile, executionLog, now) {
|
|
699
707
|
const errors = [];
|
|
700
708
|
if (!profile.boundsSchema) return errors;
|
|
@@ -755,7 +763,14 @@ function checkBoundsV4(request, profile, executionLog, now) {
|
|
|
755
763
|
break;
|
|
756
764
|
}
|
|
757
765
|
if (!executionLog) break;
|
|
758
|
-
const runningTotal = executionLog.sumByWindow(
|
|
766
|
+
const runningTotal = executionLog.sumByWindow(
|
|
767
|
+
profileId,
|
|
768
|
+
path,
|
|
769
|
+
bt.of,
|
|
770
|
+
bt.window,
|
|
771
|
+
now,
|
|
772
|
+
boundActionTypes(fieldName, fieldDef)
|
|
773
|
+
);
|
|
759
774
|
const currentRaw = request.execution[bt.of];
|
|
760
775
|
const current = typeof currentRaw === "number" ? currentRaw : currentRaw !== void 0 ? Number(currentRaw) : 0;
|
|
761
776
|
const total = runningTotal + current;
|
|
@@ -782,7 +797,14 @@ function checkBoundsV4(request, profile, executionLog, now) {
|
|
|
782
797
|
break;
|
|
783
798
|
}
|
|
784
799
|
if (!executionLog) break;
|
|
785
|
-
const runningCount = executionLog.sumByWindow(
|
|
800
|
+
const runningCount = executionLog.sumByWindow(
|
|
801
|
+
profileId,
|
|
802
|
+
path,
|
|
803
|
+
"_count",
|
|
804
|
+
bt.window,
|
|
805
|
+
now,
|
|
806
|
+
boundActionTypes(fieldName, fieldDef)
|
|
807
|
+
);
|
|
786
808
|
const total = runningCount + 1;
|
|
787
809
|
if (total > boundValue) {
|
|
788
810
|
errors.push({
|
|
@@ -1116,6 +1138,7 @@ export {
|
|
|
1116
1138
|
approvalSigningBytes,
|
|
1117
1139
|
attestationId,
|
|
1118
1140
|
bindingAppliesTo,
|
|
1141
|
+
boundActionTypes,
|
|
1119
1142
|
buildMandateProjection,
|
|
1120
1143
|
canonicalBounds,
|
|
1121
1144
|
canonicalContext,
|
|
@@ -469,6 +469,36 @@ function boundGovernsAction(
|
|
|
469
469
|
return !namedForAnAction || matches;
|
|
470
470
|
}
|
|
471
471
|
|
|
472
|
+
/**
|
|
473
|
+
* Which action types' executions count toward this cumulative bound's running
|
|
474
|
+
* total. `undefined` means all of them.
|
|
475
|
+
*
|
|
476
|
+
* `boundGovernsAction` decides whether a bound applies to the current call; this
|
|
477
|
+
* decides what the bound's total is made of. Both are needed: selecting the right
|
|
478
|
+
* bound and then feeding it the profile's combined total is still wrong — sales'
|
|
479
|
+
* "orders per day" was checked only on orders, but counted every quote and send.
|
|
480
|
+
* Consumption is partitioned by action type (*Cumulative Tracking* rule 4), as
|
|
481
|
+
* the Authority Server already does.
|
|
482
|
+
*
|
|
483
|
+
* Same answer, same order of preference as `boundGovernsAction`: the declared
|
|
484
|
+
* `appliesTo`; else, for a count bound named for an action (`delete_daily_max`),
|
|
485
|
+
* that action; else every action type. Exported so display surfaces report the
|
|
486
|
+
* same totals the gate enforces.
|
|
487
|
+
*/
|
|
488
|
+
export function boundActionTypes(
|
|
489
|
+
fieldName: string,
|
|
490
|
+
fieldDef: ProfileBoundsField,
|
|
491
|
+
): readonly string[] | undefined {
|
|
492
|
+
if (fieldDef.appliesTo) return fieldDef.appliesTo;
|
|
493
|
+
|
|
494
|
+
const bt = fieldDef.boundType;
|
|
495
|
+
if (!bt || bt.kind !== 'cumulative_count') return undefined;
|
|
496
|
+
|
|
497
|
+
const prefix = fieldName.replace(/_(?:daily|monthly|weekly)_max$/, '');
|
|
498
|
+
if (prefix === fieldName || prefix.startsWith('transaction')) return undefined;
|
|
499
|
+
return [prefix];
|
|
500
|
+
}
|
|
501
|
+
|
|
472
502
|
function checkBoundsV4(
|
|
473
503
|
request: GatekeeperRequest,
|
|
474
504
|
profile: AgentProfile,
|
|
@@ -552,7 +582,9 @@ function checkBoundsV4(
|
|
|
552
582
|
}
|
|
553
583
|
if (!executionLog) break;
|
|
554
584
|
|
|
555
|
-
const runningTotal = executionLog.sumByWindow(
|
|
585
|
+
const runningTotal = executionLog.sumByWindow(
|
|
586
|
+
profileId, path, bt.of, bt.window, now, boundActionTypes(fieldName, fieldDef),
|
|
587
|
+
);
|
|
556
588
|
const currentRaw = request.execution[bt.of];
|
|
557
589
|
const current = typeof currentRaw === 'number'
|
|
558
590
|
? currentRaw
|
|
@@ -584,7 +616,9 @@ function checkBoundsV4(
|
|
|
584
616
|
}
|
|
585
617
|
if (!executionLog) break;
|
|
586
618
|
|
|
587
|
-
const runningCount = executionLog.sumByWindow(
|
|
619
|
+
const runningCount = executionLog.sumByWindow(
|
|
620
|
+
profileId, path, '_count', bt.window, now, boundActionTypes(fieldName, fieldDef),
|
|
621
|
+
);
|
|
588
622
|
const total = runningCount + 1;
|
|
589
623
|
|
|
590
624
|
if (total > boundValue) {
|
|
@@ -636,7 +636,27 @@ export interface ExecutionLogQuery {
|
|
|
636
636
|
* Sum a field's values within a time window for a given profile.
|
|
637
637
|
* Use field="_count" to count executions instead of summing a field.
|
|
638
638
|
*/
|
|
639
|
-
sumByWindow(
|
|
639
|
+
sumByWindow(
|
|
640
|
+
profileId: string,
|
|
641
|
+
path: string,
|
|
642
|
+
field: string,
|
|
643
|
+
window: CumulativeWindow,
|
|
644
|
+
now?: number,
|
|
645
|
+
/**
|
|
646
|
+
* Only count executions whose `execution.action_type` is one of these.
|
|
647
|
+
* Omitted → every execution counts (a bound that governs all action types).
|
|
648
|
+
*
|
|
649
|
+
* Consumption is partitioned by action type (*Cumulative Tracking* rule 4):
|
|
650
|
+
* a bound counts only the action types it governs. Without the filter a
|
|
651
|
+
* profile with several action types feeds every bound the combined total —
|
|
652
|
+
* sales' "orders per day" counted quotes and sends too, and its daily order
|
|
653
|
+
* value summed quote values. Use {@link boundActionTypes} to derive it.
|
|
654
|
+
*
|
|
655
|
+
* Implementations SHOULD count an entry that carries no `action_type`
|
|
656
|
+
* against every filter: an unknown action is not evidence of headroom.
|
|
657
|
+
*/
|
|
658
|
+
actionTypes?: readonly string[],
|
|
659
|
+
): number;
|
|
640
660
|
}
|
|
641
661
|
|
|
642
662
|
// ─── Frame Types ─────────────────────────────────────────────────────────────
|
|
@@ -5,20 +5,20 @@ Initially, Hono wasn't designed for Node.js, but with this adapter, you can now
|
|
|
5
5
|
|
|
6
6
|
## Benchmarks
|
|
7
7
|
|
|
8
|
-
Hono is
|
|
8
|
+
Hono is 3.1 times faster than Express.
|
|
9
9
|
|
|
10
|
-
Express:
|
|
10
|
+
Express v5:
|
|
11
11
|
|
|
12
12
|
```txt
|
|
13
13
|
$ bombardier -d 10s --fasthttp http://localhost:3000/
|
|
14
14
|
|
|
15
15
|
Statistics Avg Stdev Max
|
|
16
|
-
Reqs/sec
|
|
17
|
-
Latency
|
|
16
|
+
Reqs/sec 24380.41 1409.74 26604.88
|
|
17
|
+
Latency 5.12ms 2.95ms 305.21ms
|
|
18
18
|
HTTP codes:
|
|
19
|
-
1xx - 0, 2xx -
|
|
19
|
+
1xx - 0, 2xx - 243915, 3xx - 0, 4xx - 0, 5xx - 0
|
|
20
20
|
others - 0
|
|
21
|
-
Throughput:
|
|
21
|
+
Throughput: 6.98MB/s
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
Hono + `@hono/node-server`:
|
|
@@ -27,12 +27,12 @@ Hono + `@hono/node-server`:
|
|
|
27
27
|
$ bombardier -d 10s --fasthttp http://localhost:3000/
|
|
28
28
|
|
|
29
29
|
Statistics Avg Stdev Max
|
|
30
|
-
Reqs/sec
|
|
31
|
-
Latency 1.
|
|
30
|
+
Reqs/sec 74428.96 3815.27 88228.32
|
|
31
|
+
Latency 1.68ms 621.25us 106.20ms
|
|
32
32
|
HTTP codes:
|
|
33
|
-
1xx - 0, 2xx -
|
|
33
|
+
1xx - 0, 2xx - 744378, 3xx - 0, 4xx - 0, 5xx - 0
|
|
34
34
|
others - 0
|
|
35
|
-
Throughput:
|
|
35
|
+
Throughput: 16.82MB/s
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
## Requirements
|
|
@@ -226,6 +226,17 @@ Notice that `root` here is not relative to `src/index.ts`, rather to `my-hono-pr
|
|
|
226
226
|
|
|
227
227
|
### Options
|
|
228
228
|
|
|
229
|
+
#### `allowPercentInPath`
|
|
230
|
+
|
|
231
|
+
By default, `serveStatic` skips request paths that still contain `%` after routing. This prevents a second decoding step from serving a file under a different path than the one checked by route middleware. Set `allowPercentInPath: true` to keep the previous behavior when serving files whose names contain percent signs.
|
|
232
|
+
|
|
233
|
+
If you restrict access to only some paths under `root` (for example, `/static/admin/*`), enabling this option may let requests bypass those restrictions. Apply access control to the same route pattern as `serveStatic` (for example, `/static/*`), before the static middleware:
|
|
234
|
+
|
|
235
|
+
```ts
|
|
236
|
+
app.use('/static/*', authMiddleware)
|
|
237
|
+
app.use('/static/*', serveStatic({ root: './static', allowPercentInPath: true }))
|
|
238
|
+
```
|
|
239
|
+
|
|
229
240
|
#### `rewriteRequestPath`
|
|
230
241
|
|
|
231
242
|
If you want to serve files in `./.foojs` with the request path `/__foo/*`, you can write like the following.
|
|
@@ -15,7 +15,7 @@ const earlyHints = (options) => {
|
|
|
15
15
|
const dest = c.req.header("Sec-Fetch-Dest");
|
|
16
16
|
if (mode && mode !== "navigate" || dest && dest !== "document") return next();
|
|
17
17
|
const env = c.env || {};
|
|
18
|
-
const outgoing = (
|
|
18
|
+
const outgoing = ("server" in env ? env.server : env)?.outgoing;
|
|
19
19
|
if (typeof outgoing?.writeEarlyHints !== "function") {
|
|
20
20
|
if (!warned) {
|
|
21
21
|
console.warn("Early Hints Middleware is not supported because writeEarlyHints is not defined.");
|
|
@@ -13,7 +13,7 @@ const earlyHints = (options) => {
|
|
|
13
13
|
const dest = c.req.header("Sec-Fetch-Dest");
|
|
14
14
|
if (mode && mode !== "navigate" || dest && dest !== "document") return next();
|
|
15
15
|
const env = c.env || {};
|
|
16
|
-
const outgoing = (
|
|
16
|
+
const outgoing = ("server" in env ? env.server : env)?.outgoing;
|
|
17
17
|
if (typeof outgoing?.writeEarlyHints !== "function") {
|
|
18
18
|
if (!warned) {
|
|
19
19
|
console.warn("Early Hints Middleware is not supported because writeEarlyHints is not defined.");
|