bluera-knowledge 0.9.21
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/.claude/commands/commit.md +37 -0
- package/.claude/hooks/post-edit-check.sh +41 -0
- package/.claude/settings.local.json.example +40 -0
- package/.claude/skills/atomic-commits/SKILL.md +53 -0
- package/.claude-plugin/plugin.json +13 -0
- package/.editorconfig +15 -0
- package/.github/workflows/auto-release.yml +59 -0
- package/.github/workflows/ci.yml +142 -0
- package/.github/workflows/release.yml +66 -0
- package/.github/workflows/update-marketplace.yml +96 -0
- package/.husky/pre-commit +47 -0
- package/.husky/pre-push +29 -0
- package/.versionrc.json +28 -0
- package/CHANGELOG.md +410 -0
- package/CLAUDE.md +109 -0
- package/LICENSE +21 -0
- package/NOTICE +47 -0
- package/README.md +1546 -0
- package/SECURITY.md +65 -0
- package/bun.lock +1758 -0
- package/commands/add-folder.md +48 -0
- package/commands/add-repo.md +50 -0
- package/commands/cancel.md +63 -0
- package/commands/check-status.md +78 -0
- package/commands/crawl.md +51 -0
- package/commands/index.md +48 -0
- package/commands/remove-store.md +52 -0
- package/commands/search.md +79 -0
- package/commands/search.sh +63 -0
- package/commands/stores.md +54 -0
- package/commands/suggest.md +82 -0
- package/dist/chunk-5QMHZUC4.js +3617 -0
- package/dist/chunk-5QMHZUC4.js.map +1 -0
- package/dist/chunk-BICFAWMN.js +656 -0
- package/dist/chunk-BICFAWMN.js.map +1 -0
- package/dist/chunk-J7J6LXOJ.js +958 -0
- package/dist/chunk-J7J6LXOJ.js.map +1 -0
- package/dist/chunk-L2YVNC63.js +59 -0
- package/dist/chunk-L2YVNC63.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1429 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/server.d.ts +15 -0
- package/dist/mcp/server.js +11 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/watch.service-YAIKKDCF.js +7 -0
- package/dist/watch.service-YAIKKDCF.js.map +1 -0
- package/dist/workers/background-worker-cli.d.ts +1 -0
- package/dist/workers/background-worker-cli.js +310 -0
- package/dist/workers/background-worker-cli.js.map +1 -0
- package/docs/plans/2024-12-17-ai-search-quality-implementation.md +752 -0
- package/docs/plans/2024-12-17-ai-search-quality-testing-design.md +201 -0
- package/docs/plans/2025-12-16-bluera-knowledge-cli.md +2951 -0
- package/docs/plans/2025-12-16-phase2-features.md +1518 -0
- package/docs/plans/2025-12-17-hil-implementation.md +926 -0
- package/docs/plans/2025-12-17-hil-quality-testing.md +224 -0
- package/docs/plans/2025-12-17-search-quality-phase1-implementation.md +1416 -0
- package/docs/plans/2025-12-17-search-quality-testing-v2-design.md +212 -0
- package/docs/plans/2025-12-28-ai-agent-optimization.md +1630 -0
- package/eslint-rules/require-skip-comment.js +81 -0
- package/eslint.config.js +61 -0
- package/hooks/check-dependencies.sh +110 -0
- package/hooks/format-search-results.py +132 -0
- package/hooks/hooks.json +27 -0
- package/hooks/job-status-hook.sh +51 -0
- package/knip.json +43 -0
- package/mcp.plugin.json +12 -0
- package/package.json +103 -0
- package/python/crawl_worker.py +275 -0
- package/python/requirements.txt +2 -0
- package/scripts/readme-version-updater.cjs +18 -0
- package/skills/advanced-workflows/SKILL.md +273 -0
- package/skills/atomic-commits/SKILL.md +77 -0
- package/skills/knowledge-search/SKILL.md +54 -0
- package/skills/search-optimization/SKILL.md +396 -0
- package/skills/store-lifecycle/SKILL.md +470 -0
- package/skills/when-to-query/SKILL.md +66 -0
- package/src/analysis/ast-parser.test.ts +423 -0
- package/src/analysis/ast-parser.ts +192 -0
- package/src/analysis/code-graph.test.ts +698 -0
- package/src/analysis/code-graph.ts +245 -0
- package/src/analysis/dependency-usage-analyzer.test.ts +799 -0
- package/src/analysis/dependency-usage-analyzer.ts +405 -0
- package/src/analysis/go-ast-parser.test.ts +531 -0
- package/src/analysis/go-ast-parser.ts +478 -0
- package/src/analysis/parser-factory.test.ts +132 -0
- package/src/analysis/parser-factory.ts +44 -0
- package/src/analysis/python-ast-parser.test.ts +210 -0
- package/src/analysis/python-ast-parser.ts +34 -0
- package/src/analysis/repo-url-resolver.test.ts +533 -0
- package/src/analysis/repo-url-resolver.ts +233 -0
- package/src/analysis/rust-ast-parser.test.ts +568 -0
- package/src/analysis/rust-ast-parser.ts +477 -0
- package/src/analysis/tree-sitter-parser.test.ts +297 -0
- package/src/analysis/tree-sitter-parser.ts +223 -0
- package/src/cli/commands/crawl.test.ts +942 -0
- package/src/cli/commands/crawl.ts +141 -0
- package/src/cli/commands/index-cmd.test.ts +722 -0
- package/src/cli/commands/index-cmd.ts +105 -0
- package/src/cli/commands/mcp.test.ts +218 -0
- package/src/cli/commands/mcp.ts +18 -0
- package/src/cli/commands/plugin-api.test.ts +313 -0
- package/src/cli/commands/plugin-api.ts +45 -0
- package/src/cli/commands/search.test.ts +911 -0
- package/src/cli/commands/search.ts +113 -0
- package/src/cli/commands/serve.test.ts +329 -0
- package/src/cli/commands/serve.ts +28 -0
- package/src/cli/commands/setup.test.ts +820 -0
- package/src/cli/commands/setup.ts +153 -0
- package/src/cli/commands/store.test.ts +1003 -0
- package/src/cli/commands/store.ts +167 -0
- package/src/cli/index.ts +7 -0
- package/src/cli/program.ts +59 -0
- package/src/crawl/article-converter.test.ts +604 -0
- package/src/crawl/article-converter.ts +98 -0
- package/src/crawl/bridge.test.ts +674 -0
- package/src/crawl/bridge.ts +236 -0
- package/src/crawl/claude-client.test.ts +663 -0
- package/src/crawl/claude-client.ts +234 -0
- package/src/crawl/intelligent-crawler.test.ts +931 -0
- package/src/crawl/intelligent-crawler.ts +428 -0
- package/src/crawl/markdown-utils.test.ts +703 -0
- package/src/crawl/markdown-utils.ts +228 -0
- package/src/crawl/schemas.ts +114 -0
- package/src/db/embeddings.test.ts +63 -0
- package/src/db/embeddings.ts +69 -0
- package/src/db/index.ts +2 -0
- package/src/db/lance.test.ts +390 -0
- package/src/db/lance.ts +164 -0
- package/src/defaults/repos.ts +67 -0
- package/src/index.ts +107 -0
- package/src/mcp/cache.test.ts +202 -0
- package/src/mcp/cache.ts +103 -0
- package/src/mcp/commands/index.ts +20 -0
- package/src/mcp/commands/job.commands.ts +54 -0
- package/src/mcp/commands/meta.commands.ts +54 -0
- package/src/mcp/commands/registry.ts +183 -0
- package/src/mcp/commands/store.commands.ts +75 -0
- package/src/mcp/handlers/execute.handler.test.ts +179 -0
- package/src/mcp/handlers/execute.handler.ts +24 -0
- package/src/mcp/handlers/index.ts +43 -0
- package/src/mcp/handlers/job.handler.test.ts +189 -0
- package/src/mcp/handlers/job.handler.ts +116 -0
- package/src/mcp/handlers/search.handler.test.ts +334 -0
- package/src/mcp/handlers/search.handler.ts +209 -0
- package/src/mcp/handlers/store.handler.test.ts +415 -0
- package/src/mcp/handlers/store.handler.ts +295 -0
- package/src/mcp/schemas/index.test.ts +315 -0
- package/src/mcp/schemas/index.ts +138 -0
- package/src/mcp/server.test.ts +36 -0
- package/src/mcp/server.ts +162 -0
- package/src/mcp/types.ts +41 -0
- package/src/plugin/commands.test.ts +789 -0
- package/src/plugin/commands.ts +257 -0
- package/src/plugin/dependency-analyzer.test.ts +380 -0
- package/src/plugin/dependency-analyzer.ts +147 -0
- package/src/plugin/git-clone.test.ts +332 -0
- package/src/plugin/git-clone.ts +57 -0
- package/src/server/app.test.ts +752 -0
- package/src/server/app.ts +119 -0
- package/src/server/index.test.ts +477 -0
- package/src/server/index.ts +1 -0
- package/src/services/chunking.service.test.ts +363 -0
- package/src/services/chunking.service.ts +350 -0
- package/src/services/code-graph.service.test.ts +304 -0
- package/src/services/code-graph.service.ts +302 -0
- package/src/services/code-unit.service.test.ts +596 -0
- package/src/services/code-unit.service.ts +115 -0
- package/src/services/config.service.test.ts +127 -0
- package/src/services/config.service.ts +69 -0
- package/src/services/index.service.test.ts +1002 -0
- package/src/services/index.service.ts +266 -0
- package/src/services/index.ts +75 -0
- package/src/services/job.service.test.ts +418 -0
- package/src/services/job.service.ts +246 -0
- package/src/services/project-root.service.test.ts +506 -0
- package/src/services/project-root.service.ts +112 -0
- package/src/services/search.service.test.ts +1105 -0
- package/src/services/search.service.ts +892 -0
- package/src/services/services.test.ts +38 -0
- package/src/services/snippet.service.test.ts +205 -0
- package/src/services/snippet.service.ts +166 -0
- package/src/services/store.service.test.ts +474 -0
- package/src/services/store.service.ts +225 -0
- package/src/services/watch.service.test.ts +553 -0
- package/src/services/watch.service.ts +71 -0
- package/src/types/brands.test.ts +45 -0
- package/src/types/brands.ts +32 -0
- package/src/types/config.ts +79 -0
- package/src/types/document.ts +30 -0
- package/src/types/index.ts +66 -0
- package/src/types/job.ts +46 -0
- package/src/types/progress.ts +9 -0
- package/src/types/result.test.ts +44 -0
- package/src/types/result.ts +41 -0
- package/src/types/search.ts +95 -0
- package/src/types/store.test.ts +69 -0
- package/src/types/store.ts +47 -0
- package/src/utils/type-guards.test.ts +346 -0
- package/src/utils/type-guards.ts +61 -0
- package/src/workers/background-worker-cli.ts +105 -0
- package/src/workers/background-worker.test.ts +178 -0
- package/src/workers/background-worker.ts +294 -0
- package/src/workers/spawn-worker.test.ts +128 -0
- package/src/workers/spawn-worker.ts +49 -0
- package/tests/analysis/ast-parser.test.ts +98 -0
- package/tests/analysis/code-graph.test.ts +60 -0
- package/tests/fixtures/README.md +114 -0
- package/tests/fixtures/code-snippets/api/error-handling.ts +267 -0
- package/tests/fixtures/code-snippets/api/rest-controller.ts +303 -0
- package/tests/fixtures/code-snippets/auth/jwt-auth.ts +213 -0
- package/tests/fixtures/code-snippets/auth/oauth-flow.ts +245 -0
- package/tests/fixtures/code-snippets/database/repository-pattern.ts +272 -0
- package/tests/fixtures/corpus/VERSION.md +25 -0
- package/tests/fixtures/corpus/articles/jwt-authentication.md +97 -0
- package/tests/fixtures/corpus/articles/react-hooks-patterns.md +127 -0
- package/tests/fixtures/corpus/articles/typescript-generics.md +111 -0
- package/tests/fixtures/corpus/documentation/express-middleware.md +71 -0
- package/tests/fixtures/corpus/documentation/express-routing.md +83 -0
- package/tests/fixtures/corpus/documentation/node-streams.md +78 -0
- package/tests/fixtures/corpus/oss-repos/express/History.md +3871 -0
- package/tests/fixtures/corpus/oss-repos/express/LICENSE +24 -0
- package/tests/fixtures/corpus/oss-repos/express/Readme.md +276 -0
- package/tests/fixtures/corpus/oss-repos/express/SECURITY.md +56 -0
- package/tests/fixtures/corpus/oss-repos/express/benchmarks/Makefile +17 -0
- package/tests/fixtures/corpus/oss-repos/express/benchmarks/README.md +34 -0
- package/tests/fixtures/corpus/oss-repos/express/benchmarks/middleware.js +20 -0
- package/tests/fixtures/corpus/oss-repos/express/benchmarks/run +18 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/README.md +29 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/auth/index.js +134 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/foot.ejs +2 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/head.ejs +20 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/login.ejs +21 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/db.js +9 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/index.js +46 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/users.js +19 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/cookie-sessions/index.js +25 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/cookies/index.js +53 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/CCTV/345/244/247/350/265/233/344/270/212/346/265/267/345/210/206/350/265/233/345/214/272.txt +2 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/amazing.txt +1 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/notes/groceries.txt +3 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/downloads/index.js +40 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/index.js +57 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/public/stylesheets/style.css +4 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/footer.html +2 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/header.html +9 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/users.html +10 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/error/index.js +53 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/index.js +103 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/404.ejs +3 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/500.ejs +8 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/error_header.ejs +10 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/footer.ejs +2 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/index.ejs +20 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/hello-world/index.js +15 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/markdown/index.js +44 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/markdown/views/index.md +4 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v1.js +15 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v2.js +15 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/index.js +18 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/main/index.js +5 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/index.js +31 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/edit.ejs +17 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/show.ejs +15 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/index.js +41 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/edit.hbs +27 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/list.hbs +18 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/show.hbs +31 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user-pet/index.js +22 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/db.js +16 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/index.js +95 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/lib/boot.js +83 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/public/style.css +14 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/404.ejs +13 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/5xx.ejs +13 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/online/index.js +61 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/params/index.js +74 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/resource/index.js +95 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-map/index.js +75 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-middleware/index.js +90 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/index.js +55 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/post.js +13 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/public/style.css +24 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/site.js +5 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/user.js +47 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/footer.ejs +2 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/header.ejs +9 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/index.ejs +10 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/posts/index.ejs +12 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/edit.ejs +23 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/index.ejs +14 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/view.ejs +9 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/search/index.js +61 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/search/public/client.js +15 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/search/public/index.html +21 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/session/index.js +37 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/session/redis.js +39 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/static-files/index.js +43 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/css/style.css +3 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/hello.txt +1 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/js/app.js +1 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/vhost/index.js +53 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/github-view.js +53 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/index.js +48 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/index.js +155 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/user.js +36 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/views/index.ejs +20 -0
- package/tests/fixtures/corpus/oss-repos/express/examples/web-service/index.js +117 -0
- package/tests/fixtures/corpus/oss-repos/express/index.js +11 -0
- package/tests/fixtures/corpus/oss-repos/express/lib/application.js +631 -0
- package/tests/fixtures/corpus/oss-repos/express/lib/express.js +81 -0
- package/tests/fixtures/corpus/oss-repos/express/lib/request.js +514 -0
- package/tests/fixtures/corpus/oss-repos/express/lib/response.js +1053 -0
- package/tests/fixtures/corpus/oss-repos/express/lib/utils.js +271 -0
- package/tests/fixtures/corpus/oss-repos/express/lib/view.js +205 -0
- package/tests/fixtures/corpus/oss-repos/express/package.json +99 -0
- package/tests/fixtures/corpus/oss-repos/express/test/Route.js +274 -0
- package/tests/fixtures/corpus/oss-repos/express/test/Router.js +636 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/auth.js +117 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/content-negotiation.js +49 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookie-sessions.js +38 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookies.js +71 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/downloads.js +47 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/ejs.js +17 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error-pages.js +99 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error.js +29 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/hello-world.js +21 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/markdown.js +21 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/multi-router.js +44 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/mvc.js +132 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/params.js +44 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/resource.js +68 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-map.js +45 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-separation.js +97 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/vhost.js +46 -0
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/web-service.js +105 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.all.js +38 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.engine.js +83 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.head.js +66 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.js +120 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.listen.js +55 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.locals.js +26 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.options.js +116 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.param.js +323 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.render.js +374 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.request.js +143 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.response.js +143 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.route.js +197 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.router.js +1217 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.routes.error.js +62 -0
- package/tests/fixtures/corpus/oss-repos/express/test/app.use.js +542 -0
- package/tests/fixtures/corpus/oss-repos/express/test/config.js +207 -0
- package/tests/fixtures/corpus/oss-repos/express/test/exports.js +82 -0
- package/tests/fixtures/corpus/oss-repos/express/test/express.json.js +755 -0
- package/tests/fixtures/corpus/oss-repos/express/test/express.raw.js +513 -0
- package/tests/fixtures/corpus/oss-repos/express/test/express.static.js +815 -0
- package/tests/fixtures/corpus/oss-repos/express/test/express.text.js +566 -0
- package/tests/fixtures/corpus/oss-repos/express/test/express.urlencoded.js +828 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/% of dogs.txt +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/.name +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/index.html +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/post/index.tmpl +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/broken.send +0 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/name.tmpl +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/user.tmpl +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/email.tmpl +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/empty.txt +0 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/local_layout/user.tmpl +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.tmpl +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.txt +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/nums.txt +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/pets/names.txt +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/snow /342/230/203/.gitkeep +0 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.html +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.txt +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.html +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.tmpl +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/index.html +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/tobi.txt +1 -0
- package/tests/fixtures/corpus/oss-repos/express/test/middleware.basic.js +42 -0
- package/tests/fixtures/corpus/oss-repos/express/test/regression.js +20 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.accepts.js +125 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsCharsets.js +50 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsEncodings.js +39 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsLanguages.js +57 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.baseUrl.js +88 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.fresh.js +70 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.get.js +60 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.host.js +156 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.hostname.js +188 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.ip.js +113 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.ips.js +71 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.is.js +169 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.path.js +20 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.protocol.js +113 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.query.js +106 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.range.js +104 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.route.js +28 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.secure.js +101 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.signedCookies.js +37 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.stale.js +50 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.subdomains.js +173 -0
- package/tests/fixtures/corpus/oss-repos/express/test/req.xhr.js +42 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.append.js +116 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.attachment.js +79 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.clearCookie.js +62 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.cookie.js +295 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.download.js +487 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.format.js +248 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.get.js +21 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.json.js +186 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.jsonp.js +344 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.links.js +65 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.locals.js +40 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.location.js +316 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.redirect.js +214 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.render.js +367 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.send.js +569 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.sendFile.js +913 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.sendStatus.js +44 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.set.js +124 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.status.js +206 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.type.js +46 -0
- package/tests/fixtures/corpus/oss-repos/express/test/res.vary.js +90 -0
- package/tests/fixtures/corpus/oss-repos/express/test/support/env.js +3 -0
- package/tests/fixtures/corpus/oss-repos/express/test/support/tmpl.js +36 -0
- package/tests/fixtures/corpus/oss-repos/express/test/support/utils.js +86 -0
- package/tests/fixtures/corpus/oss-repos/express/test/utils.js +83 -0
- package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/Dockerfile +11 -0
- package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/devcontainer.json +21 -0
- package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/docker-compose.yml +18 -0
- package/tests/fixtures/corpus/oss-repos/hono/.eslintignore +1 -0
- package/tests/fixtures/corpus/oss-repos/hono/.eslintrc.cjs +9 -0
- package/tests/fixtures/corpus/oss-repos/hono/.gitpod.yml +9 -0
- package/tests/fixtures/corpus/oss-repos/hono/.prettierrc +9 -0
- package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-default.ts +15 -0
- package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-dom.ts +15 -0
- package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/setup-vitest.ts +47 -0
- package/tests/fixtures/corpus/oss-repos/hono/LICENSE +21 -0
- package/tests/fixtures/corpus/oss-repos/hono/README.md +91 -0
- package/tests/fixtures/corpus/oss-repos/hono/build.ts +80 -0
- package/tests/fixtures/corpus/oss-repos/hono/bun.lockb +0 -0
- package/tests/fixtures/corpus/oss-repos/hono/bunfig.toml +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/codecov.yml +13 -0
- package/tests/fixtures/corpus/oss-repos/hono/docs/CODE_OF_CONDUCT.md +128 -0
- package/tests/fixtures/corpus/oss-repos/hono/docs/CONTRIBUTING.md +62 -0
- package/tests/fixtures/corpus/oss-repos/hono/docs/MIGRATION.md +295 -0
- package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.png +0 -0
- package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.pxm +0 -0
- package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-logo.svg +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-title.png +0 -0
- package/tests/fixtures/corpus/oss-repos/hono/docs/images/hono-title.pxm +0 -0
- package/tests/fixtures/corpus/oss-repos/hono/jsr.json +119 -0
- package/tests/fixtures/corpus/oss-repos/hono/package.cjs.json +3 -0
- package/tests/fixtures/corpus/oss-repos/hono/package.json +650 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/handler.ts +492 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/index.ts +13 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/types.ts +144 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/conninfo.ts +28 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/index.ts +9 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/serve-static.ts +35 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/server.ts +30 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/ssg.ts +27 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/websocket.ts +110 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/handler.ts +120 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/index.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/conninfo.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/index.ts +8 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static-module.ts +12 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static.ts +39 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/utils.ts +50 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/websocket.ts +50 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/conninfo.ts +17 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/deno.d.ts +28 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/index.ts +9 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/serve-static.ts +40 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/ssg.ts +27 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/websocket.ts +51 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/conninfo.ts +15 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/handler.ts +189 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/index.ts +14 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/handler.ts +10 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/index.ts +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/mod.ts +1 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/handler.ts +34 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/index.ts +5 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/types.ts +14 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/conninfo.ts +8 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/handler.ts +9 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/index.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/client/client.ts +214 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/client/index.ts +14 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/client/types.ts +180 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/client/utils.ts +54 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/compose.ts +94 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/context.ts +914 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/accepts.ts +81 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/index.ts +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/adapter/index.ts +85 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/index.ts +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/types.ts +45 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/cookie/index.ts +130 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/common.ts +243 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/index.ts +220 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/dev/index.ts +79 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/factory/index.ts +246 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/html/index.ts +56 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/index.ts +13 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/middleware.ts +79 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/ssg.ts +388 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/utils.ts +71 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/index.ts +9 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/sse.ts +89 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/stream.ts +36 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/text.ts +15 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/testing/index.ts +26 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/websocket/index.ts +57 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/hono-base.ts +523 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/hono.ts +34 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/http-exception.ts +78 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/index.ts +51 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/base.ts +419 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/children.ts +20 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/components.ts +195 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/constants.ts +5 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/context.ts +50 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/client.ts +89 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/components.ts +39 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/context.ts +52 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/css.ts +246 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/hooks/index.ts +91 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/index.ts +159 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/intrinsic-element/components.ts +398 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-dev-runtime.ts +22 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-runtime.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/render.ts +772 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/server.ts +70 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/utils.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/hooks/index.ts +426 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/index.ts +114 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/common.ts +11 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/components.ts +196 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-elements.ts +924 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-dev-runtime.ts +26 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-runtime.ts +18 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/streaming.ts +184 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/types.ts +41 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/utils.ts +36 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/basic-auth/index.ts +128 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/bearer-auth/index.ts +159 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/body-limit/index.ts +115 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cache/index.ts +127 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/combine/index.ts +153 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/compress/index.ts +79 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/context-storage/index.ts +55 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cors/index.ts +141 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/csrf/index.ts +90 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/etag/index.ts +88 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/ip-restriction/index.ts +178 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jsx-renderer/index.ts +158 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/index.ts +8 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/jwt.ts +159 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/logger/index.ts +93 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/method-override/index.ts +146 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/powered-by/index.ts +13 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/pretty-json/index.ts +50 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/index.ts +8 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/request-id.ts +59 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/index.ts +8 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/permissions-policy.ts +86 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/secure-headers.ts +319 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/serve-static/index.ts +140 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timeout/index.ts +58 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/index.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/timing.ts +225 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/trailing-slash/index.ts +71 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/preset/quick.ts +24 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/preset/tiny.ts +20 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/request.ts +403 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/index.ts +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/router.ts +132 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/index.ts +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/router.ts +54 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/index.ts +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/node.ts +159 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/router.ts +274 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/trie.ts +74 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/index.ts +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/router.ts +69 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/index.ts +6 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/node.ts +205 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/router.ts +28 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/router.ts +103 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/types.ts +2009 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/basic-auth.ts +26 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/body.ts +225 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/buffer.ts +65 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/color.ts +26 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/concurrent.ts +55 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/cookie.ts +230 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/crypto.ts +65 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/encode.ts +34 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/filepath.ts +56 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/handler.ts +15 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/html.ts +182 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/http-status.ts +69 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/ipaddr.ts +113 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/index.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwa.ts +23 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jws.ts +226 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwt.ts +114 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/types.ts +83 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/utf8.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/mime.ts +142 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/stream.ts +96 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/types.ts +105 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/url.ts +310 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/validator/index.ts +7 -0
- package/tests/fixtures/corpus/oss-repos/hono/src/validator/validator.ts +151 -0
- package/tests/fixtures/corpus/oss-repos/hono/tsconfig.build.json +23 -0
- package/tests/fixtures/corpus/oss-repos/hono/tsconfig.json +28 -0
- package/tests/fixtures/corpus/oss-repos/hono/vitest.config.ts +34 -0
- package/tests/fixtures/corpus/oss-repos/hono/yarn.lock +6232 -0
- package/tests/fixtures/documentation/api-reference.md +412 -0
- package/tests/fixtures/documentation/architecture.md +214 -0
- package/tests/fixtures/documentation/deployment-guide.md +420 -0
- package/tests/fixtures/github-readmes/express.md +133 -0
- package/tests/fixtures/github-readmes/nextjs.md +106 -0
- package/tests/fixtures/github-readmes/react.md +74 -0
- package/tests/fixtures/github-readmes/typescript.md +93 -0
- package/tests/fixtures/github-readmes/vite.md +79 -0
- package/tests/fixtures/queries/core.json +125 -0
- package/tests/fixtures/queries/extended.json +427 -0
- package/tests/fixtures/queries/generated/.gitkeep +0 -0
- package/tests/fixtures/test-server.ts +267 -0
- package/tests/helpers/performance-metrics.ts +387 -0
- package/tests/helpers/search-relevance.ts +381 -0
- package/tests/integration/cli-consistency.test.ts +299 -0
- package/tests/integration/cli.test.ts +69 -0
- package/tests/integration/e2e-workflow.test.ts +612 -0
- package/tests/integration/python-bridge.test.ts +183 -0
- package/tests/integration/search-quality.test.ts +718 -0
- package/tests/integration/stress.test.ts +326 -0
- package/tests/mcp/server.test.ts +15 -0
- package/tests/scripts/schemas/evaluation.json +44 -0
- package/tests/scripts/schemas/query-generation.json +21 -0
- package/tests/services/code-unit.service.test.ts +47 -0
- package/tests/services/search.progressive-context.test.ts +35 -0
- package/tsconfig.json +34 -0
- package/tsup.config.ts +15 -0
- package/turndown-plugin-gfm.d.ts +29 -0
- package/vitest.config.ts +79 -0
|
@@ -0,0 +1,2009 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module
|
|
3
|
+
* This module contains some type definitions for the Hono modules.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
9
|
+
import type { Context } from './context'
|
|
10
|
+
import type { Hono } from './hono'
|
|
11
|
+
import type { StatusCode } from './utils/http-status'
|
|
12
|
+
import type {
|
|
13
|
+
IfAnyThenEmptyObject,
|
|
14
|
+
IsAny,
|
|
15
|
+
JSONValue,
|
|
16
|
+
RemoveBlankRecord,
|
|
17
|
+
Simplify,
|
|
18
|
+
UnionToIntersection,
|
|
19
|
+
} from './utils/types'
|
|
20
|
+
|
|
21
|
+
////////////////////////////////////////
|
|
22
|
+
////// //////
|
|
23
|
+
////// Values //////
|
|
24
|
+
////// //////
|
|
25
|
+
////////////////////////////////////////
|
|
26
|
+
|
|
27
|
+
export type Bindings = object
|
|
28
|
+
export type Variables = object
|
|
29
|
+
|
|
30
|
+
export type BlankEnv = {}
|
|
31
|
+
export type Env = {
|
|
32
|
+
Bindings?: Bindings
|
|
33
|
+
Variables?: Variables
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export type Next = () => Promise<void>
|
|
37
|
+
|
|
38
|
+
export type ExtractInput<I extends Input | Input['in']> = I extends Input
|
|
39
|
+
? unknown extends I['in']
|
|
40
|
+
? {}
|
|
41
|
+
: I['in']
|
|
42
|
+
: I
|
|
43
|
+
export type Input = {
|
|
44
|
+
in?: {}
|
|
45
|
+
out?: {}
|
|
46
|
+
outputFormat?: ResponseFormat
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type BlankSchema = {}
|
|
50
|
+
export type BlankInput = {}
|
|
51
|
+
|
|
52
|
+
////////////////////////////////////////
|
|
53
|
+
////// //////
|
|
54
|
+
////// Routes //////
|
|
55
|
+
////// //////
|
|
56
|
+
////////////////////////////////////////
|
|
57
|
+
|
|
58
|
+
export interface RouterRoute {
|
|
59
|
+
path: string
|
|
60
|
+
method: string
|
|
61
|
+
handler: H
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
////////////////////////////////////////
|
|
65
|
+
////// //////
|
|
66
|
+
////// Handlers //////
|
|
67
|
+
////// //////
|
|
68
|
+
////////////////////////////////////////
|
|
69
|
+
|
|
70
|
+
export type HandlerResponse<O> = Response | TypedResponse<O> | Promise<Response | TypedResponse<O>>
|
|
71
|
+
|
|
72
|
+
export type Handler<
|
|
73
|
+
E extends Env = any,
|
|
74
|
+
P extends string = any,
|
|
75
|
+
I extends Input = BlankInput,
|
|
76
|
+
R extends HandlerResponse<any> = any
|
|
77
|
+
> = (c: Context<E, P, I>, next: Next) => R
|
|
78
|
+
|
|
79
|
+
export type MiddlewareHandler<
|
|
80
|
+
E extends Env = any,
|
|
81
|
+
P extends string = string,
|
|
82
|
+
I extends Input = {}
|
|
83
|
+
> = (c: Context<E, P, I>, next: Next) => Promise<Response | void>
|
|
84
|
+
|
|
85
|
+
export type H<
|
|
86
|
+
E extends Env = any,
|
|
87
|
+
P extends string = any,
|
|
88
|
+
I extends Input = BlankInput,
|
|
89
|
+
R extends HandlerResponse<any> = any
|
|
90
|
+
> = Handler<E, P, I, R> | MiddlewareHandler<E, P, I>
|
|
91
|
+
|
|
92
|
+
export type NotFoundHandler<E extends Env = any> = (c: Context<E>) => Response | Promise<Response>
|
|
93
|
+
|
|
94
|
+
export interface HTTPResponseError extends Error {
|
|
95
|
+
getResponse: () => Response
|
|
96
|
+
}
|
|
97
|
+
export type ErrorHandler<E extends Env = any> = (
|
|
98
|
+
err: Error | HTTPResponseError,
|
|
99
|
+
c: Context<E>
|
|
100
|
+
) => Response | Promise<Response>
|
|
101
|
+
|
|
102
|
+
////////////////////////////////////////
|
|
103
|
+
////// //////
|
|
104
|
+
////// HandlerInterface //////
|
|
105
|
+
////// //////
|
|
106
|
+
////////////////////////////////////////
|
|
107
|
+
|
|
108
|
+
export interface HandlerInterface<
|
|
109
|
+
E extends Env = Env,
|
|
110
|
+
M extends string = string,
|
|
111
|
+
S extends Schema = BlankSchema,
|
|
112
|
+
BasePath extends string = '/'
|
|
113
|
+
> {
|
|
114
|
+
// app.get(handler)
|
|
115
|
+
<
|
|
116
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
117
|
+
I extends Input = BlankInput,
|
|
118
|
+
R extends HandlerResponse<any> = any,
|
|
119
|
+
E2 extends Env = E
|
|
120
|
+
>(
|
|
121
|
+
handler: H<E2, P, I, R>
|
|
122
|
+
): Hono<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath>
|
|
123
|
+
|
|
124
|
+
// app.get(handler x2)
|
|
125
|
+
<
|
|
126
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
127
|
+
I extends Input = BlankInput,
|
|
128
|
+
I2 extends Input = I,
|
|
129
|
+
R extends HandlerResponse<any> = any,
|
|
130
|
+
E2 extends Env = E,
|
|
131
|
+
E3 extends Env = IntersectNonAnyTypes<[E, E2]>
|
|
132
|
+
>(
|
|
133
|
+
...handlers: [H<E2, P, I>, H<E3, P, I2, R>]
|
|
134
|
+
): Hono<
|
|
135
|
+
IntersectNonAnyTypes<[E, E2, E3]>,
|
|
136
|
+
S & ToSchema<M, P, I2, MergeTypedResponse<R>>,
|
|
137
|
+
BasePath
|
|
138
|
+
>
|
|
139
|
+
|
|
140
|
+
// app.get(path, handler)
|
|
141
|
+
<
|
|
142
|
+
P extends string,
|
|
143
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
144
|
+
R extends HandlerResponse<any> = any,
|
|
145
|
+
I extends Input = BlankInput,
|
|
146
|
+
E2 extends Env = E
|
|
147
|
+
>(
|
|
148
|
+
path: P,
|
|
149
|
+
handler: H<E2, MergedPath, I, R>
|
|
150
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>
|
|
151
|
+
|
|
152
|
+
// app.get(handler x 3)
|
|
153
|
+
<
|
|
154
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
155
|
+
R extends HandlerResponse<any> = any,
|
|
156
|
+
I extends Input = BlankInput,
|
|
157
|
+
I2 extends Input = I,
|
|
158
|
+
I3 extends Input = I & I2,
|
|
159
|
+
E2 extends Env = E,
|
|
160
|
+
E3 extends Env = E,
|
|
161
|
+
E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>
|
|
162
|
+
>(
|
|
163
|
+
...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3, R>]
|
|
164
|
+
): Hono<
|
|
165
|
+
IntersectNonAnyTypes<[E, E2, E3, E4]>,
|
|
166
|
+
S & ToSchema<M, P, I3, MergeTypedResponse<R>>,
|
|
167
|
+
BasePath
|
|
168
|
+
>
|
|
169
|
+
|
|
170
|
+
// app.get(path, handler x2)
|
|
171
|
+
<
|
|
172
|
+
P extends string,
|
|
173
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
174
|
+
R extends HandlerResponse<any> = any,
|
|
175
|
+
I extends Input = BlankInput,
|
|
176
|
+
I2 extends Input = I,
|
|
177
|
+
E2 extends Env = E,
|
|
178
|
+
E3 extends Env = IntersectNonAnyTypes<[E, E2]>
|
|
179
|
+
>(
|
|
180
|
+
path: P,
|
|
181
|
+
...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2, R>]
|
|
182
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R>>, BasePath>
|
|
183
|
+
|
|
184
|
+
// app.get(handler x 4)
|
|
185
|
+
<
|
|
186
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
187
|
+
R extends HandlerResponse<any> = any,
|
|
188
|
+
I extends Input = BlankInput,
|
|
189
|
+
I2 extends Input = I,
|
|
190
|
+
I3 extends Input = I & I2,
|
|
191
|
+
I4 extends Input = I & I2 & I3,
|
|
192
|
+
E2 extends Env = E,
|
|
193
|
+
E3 extends Env = E,
|
|
194
|
+
E4 extends Env = E,
|
|
195
|
+
E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>
|
|
196
|
+
>(
|
|
197
|
+
...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3>, H<E5, P, I4, R>]
|
|
198
|
+
): Hono<
|
|
199
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5]>,
|
|
200
|
+
S & ToSchema<M, P, I4, MergeTypedResponse<R>>,
|
|
201
|
+
BasePath
|
|
202
|
+
>
|
|
203
|
+
|
|
204
|
+
// app.get(path, handler x3)
|
|
205
|
+
<
|
|
206
|
+
P extends string,
|
|
207
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
208
|
+
R extends HandlerResponse<any> = any,
|
|
209
|
+
I extends Input = BlankInput,
|
|
210
|
+
I2 extends Input = I,
|
|
211
|
+
I3 extends Input = I & I2,
|
|
212
|
+
E2 extends Env = E,
|
|
213
|
+
E3 extends Env = E,
|
|
214
|
+
E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>
|
|
215
|
+
>(
|
|
216
|
+
path: P,
|
|
217
|
+
...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2>, H<E4, MergedPath, I3, R>]
|
|
218
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R>>, BasePath>
|
|
219
|
+
|
|
220
|
+
// app.get(handler x 5)
|
|
221
|
+
<
|
|
222
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
223
|
+
R extends HandlerResponse<any> = any,
|
|
224
|
+
I extends Input = BlankInput,
|
|
225
|
+
I2 extends Input = I,
|
|
226
|
+
I3 extends Input = I & I2,
|
|
227
|
+
I4 extends Input = I & I2 & I3,
|
|
228
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
229
|
+
E2 extends Env = E,
|
|
230
|
+
E3 extends Env = E,
|
|
231
|
+
E4 extends Env = E,
|
|
232
|
+
E5 extends Env = E,
|
|
233
|
+
E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>
|
|
234
|
+
>(
|
|
235
|
+
...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3>, H<E5, P, I4>, H<E6, P, I5, R>]
|
|
236
|
+
): Hono<
|
|
237
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>,
|
|
238
|
+
S & ToSchema<M, P, I5, MergeTypedResponse<R>>,
|
|
239
|
+
BasePath
|
|
240
|
+
>
|
|
241
|
+
|
|
242
|
+
// app.get(path, handler x4)
|
|
243
|
+
<
|
|
244
|
+
P extends string,
|
|
245
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
246
|
+
R extends HandlerResponse<any> = any,
|
|
247
|
+
I extends Input = BlankInput,
|
|
248
|
+
I2 extends Input = I,
|
|
249
|
+
I3 extends Input = I & I2,
|
|
250
|
+
I4 extends Input = I & I2 & I3,
|
|
251
|
+
E2 extends Env = E,
|
|
252
|
+
E3 extends Env = E,
|
|
253
|
+
E4 extends Env = E,
|
|
254
|
+
E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>
|
|
255
|
+
>(
|
|
256
|
+
path: P,
|
|
257
|
+
...handlers: [
|
|
258
|
+
H<E2, MergedPath, I>,
|
|
259
|
+
H<E3, MergedPath, I2>,
|
|
260
|
+
H<E4, MergedPath, I3>,
|
|
261
|
+
H<E5, MergedPath, I4, R>
|
|
262
|
+
]
|
|
263
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath>
|
|
264
|
+
|
|
265
|
+
// app.get(handler x 6)
|
|
266
|
+
<
|
|
267
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
268
|
+
R extends HandlerResponse<any> = any,
|
|
269
|
+
I extends Input = BlankInput,
|
|
270
|
+
I2 extends Input = I,
|
|
271
|
+
I3 extends Input = I & I2,
|
|
272
|
+
I4 extends Input = I & I2 & I3,
|
|
273
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
274
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
275
|
+
E2 extends Env = E,
|
|
276
|
+
E3 extends Env = E,
|
|
277
|
+
E4 extends Env = E,
|
|
278
|
+
E5 extends Env = E,
|
|
279
|
+
E6 extends Env = E,
|
|
280
|
+
E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>
|
|
281
|
+
>(
|
|
282
|
+
...handlers: [
|
|
283
|
+
H<E2, P, I>,
|
|
284
|
+
H<E3, P, I2>,
|
|
285
|
+
H<E4, P, I3>,
|
|
286
|
+
H<E5, P, I4>,
|
|
287
|
+
H<E6, P, I5>,
|
|
288
|
+
H<E7, P, I6, R>
|
|
289
|
+
]
|
|
290
|
+
): Hono<
|
|
291
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>,
|
|
292
|
+
S & ToSchema<M, P, I6, MergeTypedResponse<R>>,
|
|
293
|
+
BasePath
|
|
294
|
+
>
|
|
295
|
+
|
|
296
|
+
// app.get(path, handler x5)
|
|
297
|
+
<
|
|
298
|
+
P extends string,
|
|
299
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
300
|
+
R extends HandlerResponse<any> = any,
|
|
301
|
+
I extends Input = BlankInput,
|
|
302
|
+
I2 extends Input = I,
|
|
303
|
+
I3 extends Input = I & I2,
|
|
304
|
+
I4 extends Input = I & I2 & I3,
|
|
305
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
306
|
+
E2 extends Env = E,
|
|
307
|
+
E3 extends Env = E,
|
|
308
|
+
E4 extends Env = E,
|
|
309
|
+
E5 extends Env = E,
|
|
310
|
+
E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>
|
|
311
|
+
>(
|
|
312
|
+
path: P,
|
|
313
|
+
...handlers: [
|
|
314
|
+
H<E2, MergedPath, I>,
|
|
315
|
+
H<E3, MergedPath, I2>,
|
|
316
|
+
H<E4, MergedPath, I3>,
|
|
317
|
+
H<E5, MergedPath, I4>,
|
|
318
|
+
H<E6, MergedPath, I5, R>
|
|
319
|
+
]
|
|
320
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath>
|
|
321
|
+
|
|
322
|
+
// app.get(handler x 7)
|
|
323
|
+
<
|
|
324
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
325
|
+
R extends HandlerResponse<any> = any,
|
|
326
|
+
I extends Input = BlankInput,
|
|
327
|
+
I2 extends Input = I,
|
|
328
|
+
I3 extends Input = I & I2,
|
|
329
|
+
I4 extends Input = I & I2 & I3,
|
|
330
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
331
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
332
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
333
|
+
E2 extends Env = E,
|
|
334
|
+
E3 extends Env = E,
|
|
335
|
+
E4 extends Env = E,
|
|
336
|
+
E5 extends Env = E,
|
|
337
|
+
E6 extends Env = E,
|
|
338
|
+
E7 extends Env = E,
|
|
339
|
+
E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>
|
|
340
|
+
>(
|
|
341
|
+
...handlers: [
|
|
342
|
+
H<E2, P, I>,
|
|
343
|
+
H<E3, P, I2>,
|
|
344
|
+
H<E4, P, I3>,
|
|
345
|
+
H<E5, P, I4>,
|
|
346
|
+
H<E6, P, I5>,
|
|
347
|
+
H<E7, P, I6>,
|
|
348
|
+
H<E8, P, I7, R>
|
|
349
|
+
]
|
|
350
|
+
): Hono<
|
|
351
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>,
|
|
352
|
+
S & ToSchema<M, P, I7, MergeTypedResponse<R>>,
|
|
353
|
+
BasePath
|
|
354
|
+
>
|
|
355
|
+
|
|
356
|
+
// app.get(path, handler x6)
|
|
357
|
+
<
|
|
358
|
+
P extends string,
|
|
359
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
360
|
+
R extends HandlerResponse<any> = any,
|
|
361
|
+
I extends Input = BlankInput,
|
|
362
|
+
I2 extends Input = I,
|
|
363
|
+
I3 extends Input = I & I2,
|
|
364
|
+
I4 extends Input = I & I2 & I3,
|
|
365
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
366
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
367
|
+
E2 extends Env = E,
|
|
368
|
+
E3 extends Env = E,
|
|
369
|
+
E4 extends Env = E,
|
|
370
|
+
E5 extends Env = E,
|
|
371
|
+
E6 extends Env = E,
|
|
372
|
+
E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>
|
|
373
|
+
>(
|
|
374
|
+
path: P,
|
|
375
|
+
...handlers: [
|
|
376
|
+
H<E2, MergedPath, I>,
|
|
377
|
+
H<E3, MergedPath, I2>,
|
|
378
|
+
H<E4, MergedPath, I3>,
|
|
379
|
+
H<E5, MergedPath, I4>,
|
|
380
|
+
H<E6, MergedPath, I5>,
|
|
381
|
+
H<E7, MergedPath, I6, R>
|
|
382
|
+
]
|
|
383
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath>
|
|
384
|
+
|
|
385
|
+
// app.get(handler x 8)
|
|
386
|
+
<
|
|
387
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
388
|
+
R extends HandlerResponse<any> = any,
|
|
389
|
+
I extends Input = BlankInput,
|
|
390
|
+
I2 extends Input = I,
|
|
391
|
+
I3 extends Input = I & I2,
|
|
392
|
+
I4 extends Input = I & I2 & I3,
|
|
393
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
394
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
395
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
396
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
397
|
+
E2 extends Env = E,
|
|
398
|
+
E3 extends Env = E,
|
|
399
|
+
E4 extends Env = E,
|
|
400
|
+
E5 extends Env = E,
|
|
401
|
+
E6 extends Env = E,
|
|
402
|
+
E7 extends Env = E,
|
|
403
|
+
E8 extends Env = E,
|
|
404
|
+
E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>
|
|
405
|
+
>(
|
|
406
|
+
...handlers: [
|
|
407
|
+
H<E2, P, I>,
|
|
408
|
+
H<E3, P, I2>,
|
|
409
|
+
H<E4, P, I3>,
|
|
410
|
+
H<E5, P, I4>,
|
|
411
|
+
H<E6, P, I5>,
|
|
412
|
+
H<E7, P, I6>,
|
|
413
|
+
H<E8, P, I7>,
|
|
414
|
+
H<E9, P, I8, R>
|
|
415
|
+
]
|
|
416
|
+
): Hono<
|
|
417
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>,
|
|
418
|
+
S & ToSchema<M, P, I8, MergeTypedResponse<R>>,
|
|
419
|
+
BasePath
|
|
420
|
+
>
|
|
421
|
+
|
|
422
|
+
// app.get(path, handler x7)
|
|
423
|
+
<
|
|
424
|
+
P extends string,
|
|
425
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
426
|
+
R extends HandlerResponse<any> = any,
|
|
427
|
+
I extends Input = BlankInput,
|
|
428
|
+
I2 extends Input = I,
|
|
429
|
+
I3 extends Input = I & I2,
|
|
430
|
+
I4 extends Input = I & I2 & I3,
|
|
431
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
432
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
433
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
434
|
+
E2 extends Env = E,
|
|
435
|
+
E3 extends Env = E,
|
|
436
|
+
E4 extends Env = E,
|
|
437
|
+
E5 extends Env = E,
|
|
438
|
+
E6 extends Env = E,
|
|
439
|
+
E7 extends Env = E,
|
|
440
|
+
E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>
|
|
441
|
+
>(
|
|
442
|
+
path: P,
|
|
443
|
+
...handlers: [
|
|
444
|
+
H<E2, MergedPath, I>,
|
|
445
|
+
H<E3, MergedPath, I2>,
|
|
446
|
+
H<E4, MergedPath, I3>,
|
|
447
|
+
H<E5, MergedPath, I4>,
|
|
448
|
+
H<E6, MergedPath, I5>,
|
|
449
|
+
H<E7, MergedPath, I6>,
|
|
450
|
+
H<E8, MergedPath, I7, R>
|
|
451
|
+
]
|
|
452
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath>
|
|
453
|
+
|
|
454
|
+
// app.get(handler x 9)
|
|
455
|
+
<
|
|
456
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
457
|
+
R extends HandlerResponse<any> = any,
|
|
458
|
+
I extends Input = BlankInput,
|
|
459
|
+
I2 extends Input = I,
|
|
460
|
+
I3 extends Input = I & I2,
|
|
461
|
+
I4 extends Input = I & I2 & I3,
|
|
462
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
463
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
464
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
465
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
466
|
+
I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8,
|
|
467
|
+
E2 extends Env = E,
|
|
468
|
+
E3 extends Env = E,
|
|
469
|
+
E4 extends Env = E,
|
|
470
|
+
E5 extends Env = E,
|
|
471
|
+
E6 extends Env = E,
|
|
472
|
+
E7 extends Env = E,
|
|
473
|
+
E8 extends Env = E,
|
|
474
|
+
E9 extends Env = E,
|
|
475
|
+
E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>
|
|
476
|
+
>(
|
|
477
|
+
...handlers: [
|
|
478
|
+
H<E2, P, I>,
|
|
479
|
+
H<E3, P, I2>,
|
|
480
|
+
H<E4, P, I3>,
|
|
481
|
+
H<E5, P, I4>,
|
|
482
|
+
H<E6, P, I5>,
|
|
483
|
+
H<E7, P, I6>,
|
|
484
|
+
H<E8, P, I7>,
|
|
485
|
+
H<E9, P, I8>,
|
|
486
|
+
H<E10, P, I9, R>
|
|
487
|
+
]
|
|
488
|
+
): Hono<
|
|
489
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>,
|
|
490
|
+
S & ToSchema<M, P, I9, MergeTypedResponse<R>>,
|
|
491
|
+
BasePath
|
|
492
|
+
>
|
|
493
|
+
|
|
494
|
+
// app.get(path, handler x8)
|
|
495
|
+
<
|
|
496
|
+
P extends string,
|
|
497
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
498
|
+
R extends HandlerResponse<any> = any,
|
|
499
|
+
I extends Input = BlankInput,
|
|
500
|
+
I2 extends Input = I,
|
|
501
|
+
I3 extends Input = I & I2,
|
|
502
|
+
I4 extends Input = I & I2 & I3,
|
|
503
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
504
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
505
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
506
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
507
|
+
E2 extends Env = E,
|
|
508
|
+
E3 extends Env = E,
|
|
509
|
+
E4 extends Env = E,
|
|
510
|
+
E5 extends Env = E,
|
|
511
|
+
E6 extends Env = E,
|
|
512
|
+
E7 extends Env = E,
|
|
513
|
+
E8 extends Env = E,
|
|
514
|
+
E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>
|
|
515
|
+
>(
|
|
516
|
+
path: P,
|
|
517
|
+
...handlers: [
|
|
518
|
+
H<E2, MergedPath, I>,
|
|
519
|
+
H<E3, MergedPath, I2>,
|
|
520
|
+
H<E4, MergedPath, I3>,
|
|
521
|
+
H<E5, MergedPath, I4>,
|
|
522
|
+
H<E6, MergedPath, I5>,
|
|
523
|
+
H<E7, MergedPath, I6>,
|
|
524
|
+
H<E8, MergedPath, I7>,
|
|
525
|
+
H<E9, MergedPath, I8, R>
|
|
526
|
+
]
|
|
527
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath>
|
|
528
|
+
|
|
529
|
+
// app.get(handler x 10)
|
|
530
|
+
<
|
|
531
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
532
|
+
R extends HandlerResponse<any> = any,
|
|
533
|
+
I extends Input = BlankInput,
|
|
534
|
+
I2 extends Input = I,
|
|
535
|
+
I3 extends Input = I & I2,
|
|
536
|
+
I4 extends Input = I & I2 & I3,
|
|
537
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
538
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
539
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
540
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
541
|
+
I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8,
|
|
542
|
+
I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9,
|
|
543
|
+
E2 extends Env = E,
|
|
544
|
+
E3 extends Env = E,
|
|
545
|
+
E4 extends Env = E,
|
|
546
|
+
E5 extends Env = E,
|
|
547
|
+
E6 extends Env = E,
|
|
548
|
+
E7 extends Env = E,
|
|
549
|
+
E8 extends Env = E,
|
|
550
|
+
E9 extends Env = E,
|
|
551
|
+
E10 extends Env = E,
|
|
552
|
+
E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>
|
|
553
|
+
>(
|
|
554
|
+
...handlers: [
|
|
555
|
+
H<E2, P, I>,
|
|
556
|
+
H<E3, P, I2>,
|
|
557
|
+
H<E4, P, I3>,
|
|
558
|
+
H<E5, P, I4>,
|
|
559
|
+
H<E6, P, I5>,
|
|
560
|
+
H<E7, P, I6>,
|
|
561
|
+
H<E8, P, I7>,
|
|
562
|
+
H<E9, P, I8>,
|
|
563
|
+
H<E10, P, I9>,
|
|
564
|
+
H<E11, P, I10, R>
|
|
565
|
+
]
|
|
566
|
+
): Hono<
|
|
567
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>,
|
|
568
|
+
S & ToSchema<M, P, I10, MergeTypedResponse<R>>,
|
|
569
|
+
BasePath
|
|
570
|
+
>
|
|
571
|
+
|
|
572
|
+
// app.get(path, handler x9)
|
|
573
|
+
<
|
|
574
|
+
P extends string,
|
|
575
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
576
|
+
R extends HandlerResponse<any> = any,
|
|
577
|
+
I extends Input = BlankInput,
|
|
578
|
+
I2 extends Input = I,
|
|
579
|
+
I3 extends Input = I & I2,
|
|
580
|
+
I4 extends Input = I & I2 & I3,
|
|
581
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
582
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
583
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
584
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
585
|
+
I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8,
|
|
586
|
+
E2 extends Env = E,
|
|
587
|
+
E3 extends Env = E,
|
|
588
|
+
E4 extends Env = E,
|
|
589
|
+
E5 extends Env = E,
|
|
590
|
+
E6 extends Env = E,
|
|
591
|
+
E7 extends Env = E,
|
|
592
|
+
E8 extends Env = E,
|
|
593
|
+
E9 extends Env = E,
|
|
594
|
+
E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>
|
|
595
|
+
>(
|
|
596
|
+
path: P,
|
|
597
|
+
...handlers: [
|
|
598
|
+
H<E2, MergedPath, I>,
|
|
599
|
+
H<E3, MergedPath, I2>,
|
|
600
|
+
H<E4, MergedPath, I3>,
|
|
601
|
+
H<E5, MergedPath, I4>,
|
|
602
|
+
H<E6, MergedPath, I5>,
|
|
603
|
+
H<E7, MergedPath, I6>,
|
|
604
|
+
H<E8, MergedPath, I7>,
|
|
605
|
+
H<E9, MergedPath, I8>,
|
|
606
|
+
H<E10, MergedPath, I9, R>
|
|
607
|
+
]
|
|
608
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R>>, BasePath>
|
|
609
|
+
|
|
610
|
+
// app.get(path, handler x10)
|
|
611
|
+
<
|
|
612
|
+
P extends string,
|
|
613
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
614
|
+
R extends HandlerResponse<any> = any,
|
|
615
|
+
I extends Input = BlankInput,
|
|
616
|
+
I2 extends Input = I,
|
|
617
|
+
I3 extends Input = I & I2,
|
|
618
|
+
I4 extends Input = I & I2 & I3,
|
|
619
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
620
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
621
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
622
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
623
|
+
I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8,
|
|
624
|
+
I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9,
|
|
625
|
+
E2 extends Env = E,
|
|
626
|
+
E3 extends Env = E,
|
|
627
|
+
E4 extends Env = E,
|
|
628
|
+
E5 extends Env = E,
|
|
629
|
+
E6 extends Env = E,
|
|
630
|
+
E7 extends Env = E,
|
|
631
|
+
E8 extends Env = E,
|
|
632
|
+
E9 extends Env = E,
|
|
633
|
+
E10 extends Env = E,
|
|
634
|
+
E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>
|
|
635
|
+
>(
|
|
636
|
+
path: P,
|
|
637
|
+
...handlers: [
|
|
638
|
+
H<E2, MergedPath, I>,
|
|
639
|
+
H<E3, MergedPath, I2>,
|
|
640
|
+
H<E4, MergedPath, I3>,
|
|
641
|
+
H<E5, MergedPath, I4>,
|
|
642
|
+
H<E6, MergedPath, I5>,
|
|
643
|
+
H<E7, MergedPath, I6>,
|
|
644
|
+
H<E8, MergedPath, I7>,
|
|
645
|
+
H<E9, MergedPath, I8>,
|
|
646
|
+
H<E10, MergedPath, I9>,
|
|
647
|
+
H<E11, MergedPath, I10, R>
|
|
648
|
+
]
|
|
649
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<R>>, BasePath>
|
|
650
|
+
|
|
651
|
+
// app.get(...handlers[])
|
|
652
|
+
<
|
|
653
|
+
P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>,
|
|
654
|
+
I extends Input = BlankInput,
|
|
655
|
+
R extends HandlerResponse<any> = any
|
|
656
|
+
>(
|
|
657
|
+
...handlers: H<E, P, I, R>[]
|
|
658
|
+
): Hono<E, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath>
|
|
659
|
+
|
|
660
|
+
// app.get(path, ...handlers[])
|
|
661
|
+
<P extends string, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(
|
|
662
|
+
path: P,
|
|
663
|
+
...handlers: H<E, MergePath<BasePath, P>, I, R>[]
|
|
664
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>
|
|
665
|
+
|
|
666
|
+
// app.get(path)
|
|
667
|
+
<P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(
|
|
668
|
+
path: P
|
|
669
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
////////////////////////////////////////
|
|
673
|
+
////// //////
|
|
674
|
+
////// MiddlewareHandlerInterface //////
|
|
675
|
+
////// //////
|
|
676
|
+
////////////////////////////////////////
|
|
677
|
+
|
|
678
|
+
export interface MiddlewareHandlerInterface<
|
|
679
|
+
E extends Env = Env,
|
|
680
|
+
S extends Schema = BlankSchema,
|
|
681
|
+
BasePath extends string = '/'
|
|
682
|
+
> {
|
|
683
|
+
//// app.use(...handlers[])
|
|
684
|
+
<E2 extends Env = E>(
|
|
685
|
+
...handlers: MiddlewareHandler<E2, MergePath<BasePath, ExtractKey<S>>>[]
|
|
686
|
+
): Hono<IntersectNonAnyTypes<[E, E2]>, S, BasePath>
|
|
687
|
+
|
|
688
|
+
// app.use(handler)
|
|
689
|
+
<E2 extends Env = E>(handler: MiddlewareHandler<E2, MergePath<BasePath, ExtractKey<S>>>): Hono<
|
|
690
|
+
IntersectNonAnyTypes<[E, E2]>,
|
|
691
|
+
S,
|
|
692
|
+
BasePath
|
|
693
|
+
>
|
|
694
|
+
|
|
695
|
+
// app.use(handler x2)
|
|
696
|
+
<
|
|
697
|
+
E2 extends Env = E,
|
|
698
|
+
E3 extends Env = IntersectNonAnyTypes<[E, E2]>,
|
|
699
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
700
|
+
>(
|
|
701
|
+
...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]
|
|
702
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S, BasePath>
|
|
703
|
+
|
|
704
|
+
// app.get(path, handler)
|
|
705
|
+
<
|
|
706
|
+
P extends string,
|
|
707
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
708
|
+
E2 extends Env = E
|
|
709
|
+
>(
|
|
710
|
+
path: P,
|
|
711
|
+
handler: MiddlewareHandler<E2, MergedPath>
|
|
712
|
+
): Hono<IntersectNonAnyTypes<[E, E2]>, ChangePathOfSchema<S, MergedPath>, BasePath>
|
|
713
|
+
|
|
714
|
+
// app.use(handler x3)
|
|
715
|
+
<
|
|
716
|
+
E2 extends Env = E,
|
|
717
|
+
E3 extends Env = E,
|
|
718
|
+
E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>,
|
|
719
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
720
|
+
>(
|
|
721
|
+
...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]
|
|
722
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S, BasePath>
|
|
723
|
+
|
|
724
|
+
// app.get(path, handler x2)
|
|
725
|
+
<
|
|
726
|
+
P extends string,
|
|
727
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
728
|
+
E2 extends Env = E,
|
|
729
|
+
E3 extends Env = IntersectNonAnyTypes<[E, E2]>
|
|
730
|
+
>(
|
|
731
|
+
path: P,
|
|
732
|
+
...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]
|
|
733
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3]>, ChangePathOfSchema<S, MergedPath>, BasePath>
|
|
734
|
+
|
|
735
|
+
// app.use(handler x4)
|
|
736
|
+
<
|
|
737
|
+
E2 extends Env = E,
|
|
738
|
+
E3 extends Env = E,
|
|
739
|
+
E4 extends Env = E,
|
|
740
|
+
E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>,
|
|
741
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
742
|
+
>(
|
|
743
|
+
...handlers: [
|
|
744
|
+
MiddlewareHandler<E2, P>,
|
|
745
|
+
MiddlewareHandler<E3, P>,
|
|
746
|
+
MiddlewareHandler<E4, P>,
|
|
747
|
+
MiddlewareHandler<E5, P>
|
|
748
|
+
]
|
|
749
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S, BasePath>
|
|
750
|
+
|
|
751
|
+
// app.get(path, handler x3)
|
|
752
|
+
<
|
|
753
|
+
P extends string,
|
|
754
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
755
|
+
E2 extends Env = E,
|
|
756
|
+
E3 extends Env = E,
|
|
757
|
+
E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>
|
|
758
|
+
>(
|
|
759
|
+
path: P,
|
|
760
|
+
...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]
|
|
761
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, ChangePathOfSchema<S, MergedPath>, BasePath>
|
|
762
|
+
|
|
763
|
+
// app.use(handler x5)
|
|
764
|
+
<
|
|
765
|
+
E2 extends Env = E,
|
|
766
|
+
E3 extends Env = E,
|
|
767
|
+
E4 extends Env = E,
|
|
768
|
+
E5 extends Env = E,
|
|
769
|
+
E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>,
|
|
770
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
771
|
+
>(
|
|
772
|
+
...handlers: [
|
|
773
|
+
MiddlewareHandler<E2, P>,
|
|
774
|
+
MiddlewareHandler<E3, P>,
|
|
775
|
+
MiddlewareHandler<E4, P>,
|
|
776
|
+
MiddlewareHandler<E5, P>,
|
|
777
|
+
MiddlewareHandler<E6, P>
|
|
778
|
+
]
|
|
779
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S, BasePath>
|
|
780
|
+
|
|
781
|
+
// app.get(path, handler x4)
|
|
782
|
+
<
|
|
783
|
+
P extends string,
|
|
784
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
785
|
+
E2 extends Env = E,
|
|
786
|
+
E3 extends Env = E,
|
|
787
|
+
E4 extends Env = E,
|
|
788
|
+
E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>
|
|
789
|
+
>(
|
|
790
|
+
path: P,
|
|
791
|
+
...handlers: [
|
|
792
|
+
MiddlewareHandler<E2, P>,
|
|
793
|
+
MiddlewareHandler<E3, P>,
|
|
794
|
+
MiddlewareHandler<E4, P>,
|
|
795
|
+
MiddlewareHandler<E5, P>
|
|
796
|
+
]
|
|
797
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, ChangePathOfSchema<S, MergedPath>, BasePath>
|
|
798
|
+
|
|
799
|
+
// app.use(handler x6)
|
|
800
|
+
<
|
|
801
|
+
E2 extends Env = E,
|
|
802
|
+
E3 extends Env = E,
|
|
803
|
+
E4 extends Env = E,
|
|
804
|
+
E5 extends Env = E,
|
|
805
|
+
E6 extends Env = E,
|
|
806
|
+
E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>,
|
|
807
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
808
|
+
>(
|
|
809
|
+
...handlers: [
|
|
810
|
+
MiddlewareHandler<E2, P>,
|
|
811
|
+
MiddlewareHandler<E3, P>,
|
|
812
|
+
MiddlewareHandler<E4, P>,
|
|
813
|
+
MiddlewareHandler<E5, P>,
|
|
814
|
+
MiddlewareHandler<E6, P>,
|
|
815
|
+
MiddlewareHandler<E7, P>
|
|
816
|
+
]
|
|
817
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S, BasePath>
|
|
818
|
+
|
|
819
|
+
// app.get(path, handler x5)
|
|
820
|
+
<
|
|
821
|
+
P extends string,
|
|
822
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
823
|
+
E2 extends Env = E,
|
|
824
|
+
E3 extends Env = E,
|
|
825
|
+
E4 extends Env = E,
|
|
826
|
+
E5 extends Env = E,
|
|
827
|
+
E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>
|
|
828
|
+
>(
|
|
829
|
+
path: P,
|
|
830
|
+
...handlers: [
|
|
831
|
+
MiddlewareHandler<E2, P>,
|
|
832
|
+
MiddlewareHandler<E3, P>,
|
|
833
|
+
MiddlewareHandler<E4, P>,
|
|
834
|
+
MiddlewareHandler<E5, P>,
|
|
835
|
+
MiddlewareHandler<E6, P>
|
|
836
|
+
]
|
|
837
|
+
): Hono<
|
|
838
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>,
|
|
839
|
+
ChangePathOfSchema<S, MergedPath>,
|
|
840
|
+
BasePath
|
|
841
|
+
>
|
|
842
|
+
|
|
843
|
+
// app.use(handler x7)
|
|
844
|
+
<
|
|
845
|
+
E2 extends Env = E,
|
|
846
|
+
E3 extends Env = E,
|
|
847
|
+
E4 extends Env = E,
|
|
848
|
+
E5 extends Env = E,
|
|
849
|
+
E6 extends Env = E,
|
|
850
|
+
E7 extends Env = E,
|
|
851
|
+
E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>,
|
|
852
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
853
|
+
>(
|
|
854
|
+
...handlers: [
|
|
855
|
+
MiddlewareHandler<E2, P>,
|
|
856
|
+
MiddlewareHandler<E3, P>,
|
|
857
|
+
MiddlewareHandler<E4, P>,
|
|
858
|
+
MiddlewareHandler<E5, P>,
|
|
859
|
+
MiddlewareHandler<E6, P>,
|
|
860
|
+
MiddlewareHandler<E7, P>,
|
|
861
|
+
MiddlewareHandler<E8, P>
|
|
862
|
+
]
|
|
863
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S, BasePath>
|
|
864
|
+
|
|
865
|
+
// app.get(path, handler x6)
|
|
866
|
+
<
|
|
867
|
+
P extends string,
|
|
868
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
869
|
+
E2 extends Env = E,
|
|
870
|
+
E3 extends Env = E,
|
|
871
|
+
E4 extends Env = E,
|
|
872
|
+
E5 extends Env = E,
|
|
873
|
+
E6 extends Env = E,
|
|
874
|
+
E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>
|
|
875
|
+
>(
|
|
876
|
+
path: P,
|
|
877
|
+
...handlers: [
|
|
878
|
+
MiddlewareHandler<E2, P>,
|
|
879
|
+
MiddlewareHandler<E3, P>,
|
|
880
|
+
MiddlewareHandler<E4, P>,
|
|
881
|
+
MiddlewareHandler<E5, P>,
|
|
882
|
+
MiddlewareHandler<E6, P>,
|
|
883
|
+
MiddlewareHandler<E7, P>
|
|
884
|
+
]
|
|
885
|
+
): Hono<
|
|
886
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>,
|
|
887
|
+
ChangePathOfSchema<S, MergedPath>,
|
|
888
|
+
BasePath
|
|
889
|
+
>
|
|
890
|
+
|
|
891
|
+
// app.use(handler x8)
|
|
892
|
+
<
|
|
893
|
+
E2 extends Env = E,
|
|
894
|
+
E3 extends Env = E,
|
|
895
|
+
E4 extends Env = E,
|
|
896
|
+
E5 extends Env = E,
|
|
897
|
+
E6 extends Env = E,
|
|
898
|
+
E7 extends Env = E,
|
|
899
|
+
E8 extends Env = E,
|
|
900
|
+
E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>,
|
|
901
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
902
|
+
>(
|
|
903
|
+
...handlers: [
|
|
904
|
+
MiddlewareHandler<E2, P>,
|
|
905
|
+
MiddlewareHandler<E3, P>,
|
|
906
|
+
MiddlewareHandler<E4, P>,
|
|
907
|
+
MiddlewareHandler<E5, P>,
|
|
908
|
+
MiddlewareHandler<E6, P>,
|
|
909
|
+
MiddlewareHandler<E7, P>,
|
|
910
|
+
MiddlewareHandler<E8, P>,
|
|
911
|
+
MiddlewareHandler<E9, P>
|
|
912
|
+
]
|
|
913
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S, BasePath>
|
|
914
|
+
|
|
915
|
+
// app.get(path, handler x7)
|
|
916
|
+
<
|
|
917
|
+
P extends string,
|
|
918
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
919
|
+
E2 extends Env = E,
|
|
920
|
+
E3 extends Env = E,
|
|
921
|
+
E4 extends Env = E,
|
|
922
|
+
E5 extends Env = E,
|
|
923
|
+
E6 extends Env = E,
|
|
924
|
+
E7 extends Env = E,
|
|
925
|
+
E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>
|
|
926
|
+
>(
|
|
927
|
+
path: P,
|
|
928
|
+
...handlers: [
|
|
929
|
+
MiddlewareHandler<E2, P>,
|
|
930
|
+
MiddlewareHandler<E3, P>,
|
|
931
|
+
MiddlewareHandler<E4, P>,
|
|
932
|
+
MiddlewareHandler<E5, P>,
|
|
933
|
+
MiddlewareHandler<E6, P>,
|
|
934
|
+
MiddlewareHandler<E7, P>,
|
|
935
|
+
MiddlewareHandler<E8, P>
|
|
936
|
+
]
|
|
937
|
+
): Hono<
|
|
938
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>,
|
|
939
|
+
ChangePathOfSchema<S, MergedPath>,
|
|
940
|
+
BasePath
|
|
941
|
+
>
|
|
942
|
+
|
|
943
|
+
// app.use(handler x9)
|
|
944
|
+
<
|
|
945
|
+
E2 extends Env = E,
|
|
946
|
+
E3 extends Env = E,
|
|
947
|
+
E4 extends Env = E,
|
|
948
|
+
E5 extends Env = E,
|
|
949
|
+
E6 extends Env = E,
|
|
950
|
+
E7 extends Env = E,
|
|
951
|
+
E8 extends Env = E,
|
|
952
|
+
E9 extends Env = E,
|
|
953
|
+
E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>,
|
|
954
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
955
|
+
>(
|
|
956
|
+
...handlers: [
|
|
957
|
+
MiddlewareHandler<E2, P>,
|
|
958
|
+
MiddlewareHandler<E3, P>,
|
|
959
|
+
MiddlewareHandler<E4, P>,
|
|
960
|
+
MiddlewareHandler<E5, P>,
|
|
961
|
+
MiddlewareHandler<E6, P>,
|
|
962
|
+
MiddlewareHandler<E7, P>,
|
|
963
|
+
MiddlewareHandler<E8, P>,
|
|
964
|
+
MiddlewareHandler<E9, P>,
|
|
965
|
+
MiddlewareHandler<E10, P>
|
|
966
|
+
]
|
|
967
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S, BasePath>
|
|
968
|
+
|
|
969
|
+
// app.get(path, handler x8)
|
|
970
|
+
<
|
|
971
|
+
P extends string,
|
|
972
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
973
|
+
E2 extends Env = E,
|
|
974
|
+
E3 extends Env = E,
|
|
975
|
+
E4 extends Env = E,
|
|
976
|
+
E5 extends Env = E,
|
|
977
|
+
E6 extends Env = E,
|
|
978
|
+
E7 extends Env = E,
|
|
979
|
+
E8 extends Env = E,
|
|
980
|
+
E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>
|
|
981
|
+
>(
|
|
982
|
+
path: P,
|
|
983
|
+
...handlers: [
|
|
984
|
+
MiddlewareHandler<E2, P>,
|
|
985
|
+
MiddlewareHandler<E3, P>,
|
|
986
|
+
MiddlewareHandler<E4, P>,
|
|
987
|
+
MiddlewareHandler<E5, P>,
|
|
988
|
+
MiddlewareHandler<E6, P>,
|
|
989
|
+
MiddlewareHandler<E7, P>,
|
|
990
|
+
MiddlewareHandler<E8, P>,
|
|
991
|
+
MiddlewareHandler<E9, P>
|
|
992
|
+
]
|
|
993
|
+
): Hono<
|
|
994
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>,
|
|
995
|
+
ChangePathOfSchema<S, MergedPath>,
|
|
996
|
+
BasePath
|
|
997
|
+
>
|
|
998
|
+
|
|
999
|
+
// app.use(handler x10)
|
|
1000
|
+
<
|
|
1001
|
+
E2 extends Env = E,
|
|
1002
|
+
E3 extends Env = E,
|
|
1003
|
+
E4 extends Env = E,
|
|
1004
|
+
E5 extends Env = E,
|
|
1005
|
+
E6 extends Env = E,
|
|
1006
|
+
E7 extends Env = E,
|
|
1007
|
+
E8 extends Env = E,
|
|
1008
|
+
E9 extends Env = E,
|
|
1009
|
+
E10 extends Env = E,
|
|
1010
|
+
E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>,
|
|
1011
|
+
P extends string = MergePath<BasePath, ExtractKey<S>>
|
|
1012
|
+
>(
|
|
1013
|
+
...handlers: [
|
|
1014
|
+
MiddlewareHandler<E2, P>,
|
|
1015
|
+
MiddlewareHandler<E3, P>,
|
|
1016
|
+
MiddlewareHandler<E4, P>,
|
|
1017
|
+
MiddlewareHandler<E5, P>,
|
|
1018
|
+
MiddlewareHandler<E6, P>,
|
|
1019
|
+
MiddlewareHandler<E7, P>,
|
|
1020
|
+
MiddlewareHandler<E8, P>,
|
|
1021
|
+
MiddlewareHandler<E9, P>,
|
|
1022
|
+
MiddlewareHandler<E10, P>,
|
|
1023
|
+
MiddlewareHandler<E11, P>
|
|
1024
|
+
]
|
|
1025
|
+
): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S, BasePath>
|
|
1026
|
+
|
|
1027
|
+
// app.get(path, handler x9)
|
|
1028
|
+
<
|
|
1029
|
+
P extends string,
|
|
1030
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1031
|
+
E2 extends Env = E,
|
|
1032
|
+
E3 extends Env = E,
|
|
1033
|
+
E4 extends Env = E,
|
|
1034
|
+
E5 extends Env = E,
|
|
1035
|
+
E6 extends Env = E,
|
|
1036
|
+
E7 extends Env = E,
|
|
1037
|
+
E8 extends Env = E,
|
|
1038
|
+
E9 extends Env = E,
|
|
1039
|
+
E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>
|
|
1040
|
+
>(
|
|
1041
|
+
path: P,
|
|
1042
|
+
...handlers: [
|
|
1043
|
+
MiddlewareHandler<E2, P>,
|
|
1044
|
+
MiddlewareHandler<E3, P>,
|
|
1045
|
+
MiddlewareHandler<E4, P>,
|
|
1046
|
+
MiddlewareHandler<E5, P>,
|
|
1047
|
+
MiddlewareHandler<E6, P>,
|
|
1048
|
+
MiddlewareHandler<E7, P>,
|
|
1049
|
+
MiddlewareHandler<E8, P>,
|
|
1050
|
+
MiddlewareHandler<E9, P>,
|
|
1051
|
+
MiddlewareHandler<E10, P>
|
|
1052
|
+
]
|
|
1053
|
+
): Hono<
|
|
1054
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>,
|
|
1055
|
+
ChangePathOfSchema<S, MergedPath>,
|
|
1056
|
+
BasePath
|
|
1057
|
+
>
|
|
1058
|
+
|
|
1059
|
+
//// app.use(path, ...handlers[])
|
|
1060
|
+
<P extends string, E2 extends Env = E>(
|
|
1061
|
+
path: P,
|
|
1062
|
+
...handlers: MiddlewareHandler<E2, MergePath<BasePath, P>>[]
|
|
1063
|
+
): Hono<E, S, BasePath>
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
////////////////////////////////////////
|
|
1067
|
+
////// //////
|
|
1068
|
+
////// OnHandlerInterface //////
|
|
1069
|
+
////// //////
|
|
1070
|
+
////////////////////////////////////////
|
|
1071
|
+
|
|
1072
|
+
export interface OnHandlerInterface<
|
|
1073
|
+
E extends Env = Env,
|
|
1074
|
+
S extends Schema = BlankSchema,
|
|
1075
|
+
BasePath extends string = '/'
|
|
1076
|
+
> {
|
|
1077
|
+
// app.on(method, path, handler)
|
|
1078
|
+
<
|
|
1079
|
+
M extends string,
|
|
1080
|
+
P extends string,
|
|
1081
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1082
|
+
R extends HandlerResponse<any> = any,
|
|
1083
|
+
I extends Input = BlankInput,
|
|
1084
|
+
E2 extends Env = E
|
|
1085
|
+
>(
|
|
1086
|
+
method: M,
|
|
1087
|
+
path: P,
|
|
1088
|
+
handler: H<E2, MergedPath, I, R>
|
|
1089
|
+
): Hono<
|
|
1090
|
+
IntersectNonAnyTypes<[E, E2]>,
|
|
1091
|
+
S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>,
|
|
1092
|
+
BasePath
|
|
1093
|
+
>
|
|
1094
|
+
|
|
1095
|
+
// app.on(method, path, handler x2)
|
|
1096
|
+
<
|
|
1097
|
+
M extends string,
|
|
1098
|
+
P extends string,
|
|
1099
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1100
|
+
R extends HandlerResponse<any> = any,
|
|
1101
|
+
I extends Input = BlankInput,
|
|
1102
|
+
I2 extends Input = I,
|
|
1103
|
+
E2 extends Env = E,
|
|
1104
|
+
E3 extends Env = IntersectNonAnyTypes<[E, E2]>
|
|
1105
|
+
>(
|
|
1106
|
+
method: M,
|
|
1107
|
+
path: P,
|
|
1108
|
+
...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2, R>]
|
|
1109
|
+
): Hono<
|
|
1110
|
+
IntersectNonAnyTypes<[E, E2, E3]>,
|
|
1111
|
+
S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R>>,
|
|
1112
|
+
BasePath
|
|
1113
|
+
>
|
|
1114
|
+
|
|
1115
|
+
// app.on(method, path, handler x3)
|
|
1116
|
+
<
|
|
1117
|
+
M extends string,
|
|
1118
|
+
P extends string,
|
|
1119
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1120
|
+
R extends HandlerResponse<any> = any,
|
|
1121
|
+
I extends Input = BlankInput,
|
|
1122
|
+
I2 extends Input = I,
|
|
1123
|
+
I3 extends Input = I & I2,
|
|
1124
|
+
E2 extends Env = E,
|
|
1125
|
+
E3 extends Env = E,
|
|
1126
|
+
E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>
|
|
1127
|
+
>(
|
|
1128
|
+
method: M,
|
|
1129
|
+
path: P,
|
|
1130
|
+
...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2>, H<E4, MergedPath, I3, R>]
|
|
1131
|
+
): Hono<
|
|
1132
|
+
IntersectNonAnyTypes<[E, E2, E3, E4]>,
|
|
1133
|
+
S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R>>,
|
|
1134
|
+
BasePath
|
|
1135
|
+
>
|
|
1136
|
+
|
|
1137
|
+
// app.on(method, path, handler x4)
|
|
1138
|
+
<
|
|
1139
|
+
M extends string,
|
|
1140
|
+
P extends string,
|
|
1141
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1142
|
+
R extends HandlerResponse<any> = any,
|
|
1143
|
+
I extends Input = BlankInput,
|
|
1144
|
+
I2 extends Input = I,
|
|
1145
|
+
I3 extends Input = I & I2,
|
|
1146
|
+
I4 extends Input = I & I2 & I3,
|
|
1147
|
+
E2 extends Env = E,
|
|
1148
|
+
E3 extends Env = E,
|
|
1149
|
+
E4 extends Env = E,
|
|
1150
|
+
E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>
|
|
1151
|
+
>(
|
|
1152
|
+
method: M,
|
|
1153
|
+
path: P,
|
|
1154
|
+
...handlers: [
|
|
1155
|
+
H<E2, MergedPath, I>,
|
|
1156
|
+
H<E3, MergedPath, I2>,
|
|
1157
|
+
H<E4, MergedPath, I3>,
|
|
1158
|
+
H<E5, MergedPath, I4, R>
|
|
1159
|
+
]
|
|
1160
|
+
): Hono<
|
|
1161
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5]>,
|
|
1162
|
+
S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R>>,
|
|
1163
|
+
BasePath
|
|
1164
|
+
>
|
|
1165
|
+
|
|
1166
|
+
// app.on(method, path, handler x5)
|
|
1167
|
+
<
|
|
1168
|
+
M extends string,
|
|
1169
|
+
P extends string,
|
|
1170
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1171
|
+
R extends HandlerResponse<any> = any,
|
|
1172
|
+
I extends Input = BlankInput,
|
|
1173
|
+
I2 extends Input = I,
|
|
1174
|
+
I3 extends Input = I & I2,
|
|
1175
|
+
I4 extends Input = I & I2 & I3,
|
|
1176
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1177
|
+
E2 extends Env = E,
|
|
1178
|
+
E3 extends Env = E,
|
|
1179
|
+
E4 extends Env = E,
|
|
1180
|
+
E5 extends Env = E,
|
|
1181
|
+
E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>
|
|
1182
|
+
>(
|
|
1183
|
+
method: M,
|
|
1184
|
+
path: P,
|
|
1185
|
+
...handlers: [
|
|
1186
|
+
H<E2, MergedPath, I>,
|
|
1187
|
+
H<E3, MergedPath, I2>,
|
|
1188
|
+
H<E4, MergedPath, I3>,
|
|
1189
|
+
H<E5, MergedPath, I4>,
|
|
1190
|
+
H<E6, MergedPath, I5, R>
|
|
1191
|
+
]
|
|
1192
|
+
): Hono<
|
|
1193
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>,
|
|
1194
|
+
S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R>>,
|
|
1195
|
+
BasePath
|
|
1196
|
+
>
|
|
1197
|
+
|
|
1198
|
+
// app.on(method, path, handler x6)
|
|
1199
|
+
<
|
|
1200
|
+
M extends string,
|
|
1201
|
+
P extends string,
|
|
1202
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1203
|
+
R extends HandlerResponse<any> = any,
|
|
1204
|
+
I extends Input = BlankInput,
|
|
1205
|
+
I2 extends Input = I,
|
|
1206
|
+
I3 extends Input = I & I2,
|
|
1207
|
+
I4 extends Input = I & I2 & I3,
|
|
1208
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1209
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1210
|
+
E2 extends Env = E,
|
|
1211
|
+
E3 extends Env = E,
|
|
1212
|
+
E4 extends Env = E,
|
|
1213
|
+
E5 extends Env = E,
|
|
1214
|
+
E6 extends Env = E,
|
|
1215
|
+
E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>
|
|
1216
|
+
>(
|
|
1217
|
+
method: M,
|
|
1218
|
+
path: P,
|
|
1219
|
+
...handlers: [
|
|
1220
|
+
H<E2, MergedPath, I>,
|
|
1221
|
+
H<E3, MergedPath, I2>,
|
|
1222
|
+
H<E4, MergedPath, I3>,
|
|
1223
|
+
H<E5, MergedPath, I4>,
|
|
1224
|
+
H<E6, MergedPath, I5>,
|
|
1225
|
+
H<E7, MergedPath, I6, R>
|
|
1226
|
+
]
|
|
1227
|
+
): Hono<
|
|
1228
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>,
|
|
1229
|
+
S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R>>,
|
|
1230
|
+
BasePath
|
|
1231
|
+
>
|
|
1232
|
+
|
|
1233
|
+
// app.on(method, path, handler x7)
|
|
1234
|
+
<
|
|
1235
|
+
M extends string,
|
|
1236
|
+
P extends string,
|
|
1237
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1238
|
+
R extends HandlerResponse<any> = any,
|
|
1239
|
+
I extends Input = BlankInput,
|
|
1240
|
+
I2 extends Input = I,
|
|
1241
|
+
I3 extends Input = I & I2,
|
|
1242
|
+
I4 extends Input = I & I2 & I3,
|
|
1243
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1244
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1245
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
1246
|
+
E2 extends Env = E,
|
|
1247
|
+
E3 extends Env = E,
|
|
1248
|
+
E4 extends Env = E,
|
|
1249
|
+
E5 extends Env = E,
|
|
1250
|
+
E6 extends Env = E,
|
|
1251
|
+
E7 extends Env = E,
|
|
1252
|
+
E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>
|
|
1253
|
+
>(
|
|
1254
|
+
method: M,
|
|
1255
|
+
path: P,
|
|
1256
|
+
...handlers: [
|
|
1257
|
+
H<E2, MergedPath, I>,
|
|
1258
|
+
H<E3, MergedPath, I2>,
|
|
1259
|
+
H<E4, MergedPath, I3>,
|
|
1260
|
+
H<E5, MergedPath, I4>,
|
|
1261
|
+
H<E6, MergedPath, I5>,
|
|
1262
|
+
H<E7, MergedPath, I6>,
|
|
1263
|
+
H<E8, MergedPath, I7, R>
|
|
1264
|
+
]
|
|
1265
|
+
): Hono<
|
|
1266
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>,
|
|
1267
|
+
S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R>>,
|
|
1268
|
+
BasePath
|
|
1269
|
+
>
|
|
1270
|
+
|
|
1271
|
+
// app.on(method, path, handler x8)
|
|
1272
|
+
<
|
|
1273
|
+
M extends string,
|
|
1274
|
+
P extends string,
|
|
1275
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1276
|
+
R extends HandlerResponse<any> = any,
|
|
1277
|
+
I extends Input = BlankInput,
|
|
1278
|
+
I2 extends Input = I,
|
|
1279
|
+
I3 extends Input = I & I2,
|
|
1280
|
+
I4 extends Input = I & I2 & I3,
|
|
1281
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1282
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1283
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
1284
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
1285
|
+
E2 extends Env = E,
|
|
1286
|
+
E3 extends Env = E,
|
|
1287
|
+
E4 extends Env = E,
|
|
1288
|
+
E5 extends Env = E,
|
|
1289
|
+
E6 extends Env = E,
|
|
1290
|
+
E7 extends Env = E,
|
|
1291
|
+
E8 extends Env = E,
|
|
1292
|
+
E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>
|
|
1293
|
+
>(
|
|
1294
|
+
method: M,
|
|
1295
|
+
path: P,
|
|
1296
|
+
...handlers: [
|
|
1297
|
+
H<E2, MergedPath, I>,
|
|
1298
|
+
H<E3, MergedPath, I2>,
|
|
1299
|
+
H<E4, MergedPath, I3>,
|
|
1300
|
+
H<E5, MergedPath, I4>,
|
|
1301
|
+
H<E6, MergedPath, I5>,
|
|
1302
|
+
H<E7, MergedPath, I6>,
|
|
1303
|
+
H<E8, MergedPath, I7>,
|
|
1304
|
+
H<E9, MergedPath, I8, R>
|
|
1305
|
+
]
|
|
1306
|
+
): Hono<
|
|
1307
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>,
|
|
1308
|
+
S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R>>,
|
|
1309
|
+
BasePath
|
|
1310
|
+
>
|
|
1311
|
+
|
|
1312
|
+
// app.on(method, path, handler x9)
|
|
1313
|
+
<
|
|
1314
|
+
M extends string,
|
|
1315
|
+
P extends string,
|
|
1316
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1317
|
+
R extends HandlerResponse<any> = any,
|
|
1318
|
+
I extends Input = BlankInput,
|
|
1319
|
+
I2 extends Input = I,
|
|
1320
|
+
I3 extends Input = I & I2,
|
|
1321
|
+
I4 extends Input = I & I2 & I3,
|
|
1322
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1323
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1324
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
1325
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
1326
|
+
I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8,
|
|
1327
|
+
E2 extends Env = E,
|
|
1328
|
+
E3 extends Env = E,
|
|
1329
|
+
E4 extends Env = E,
|
|
1330
|
+
E5 extends Env = E,
|
|
1331
|
+
E6 extends Env = E,
|
|
1332
|
+
E7 extends Env = E,
|
|
1333
|
+
E8 extends Env = E,
|
|
1334
|
+
E9 extends Env = E,
|
|
1335
|
+
E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>
|
|
1336
|
+
>(
|
|
1337
|
+
method: M,
|
|
1338
|
+
path: P,
|
|
1339
|
+
...handlers: [
|
|
1340
|
+
H<E2, MergedPath, I>,
|
|
1341
|
+
H<E3, MergedPath, I2>,
|
|
1342
|
+
H<E4, MergedPath, I3>,
|
|
1343
|
+
H<E5, MergedPath, I4>,
|
|
1344
|
+
H<E6, MergedPath, I5>,
|
|
1345
|
+
H<E7, MergedPath, I6>,
|
|
1346
|
+
H<E8, MergedPath, I7>,
|
|
1347
|
+
H<E9, MergedPath, I8>,
|
|
1348
|
+
H<E10, MergedPath, I9, R>
|
|
1349
|
+
]
|
|
1350
|
+
): Hono<
|
|
1351
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>,
|
|
1352
|
+
S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R>>,
|
|
1353
|
+
BasePath
|
|
1354
|
+
>
|
|
1355
|
+
|
|
1356
|
+
// app.on(method, path, handler x10)
|
|
1357
|
+
<
|
|
1358
|
+
M extends string,
|
|
1359
|
+
P extends string,
|
|
1360
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1361
|
+
I extends Input = BlankInput,
|
|
1362
|
+
I2 extends Input = I,
|
|
1363
|
+
I3 extends Input = I & I2,
|
|
1364
|
+
I4 extends Input = I & I2 & I3,
|
|
1365
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1366
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1367
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
1368
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
1369
|
+
I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8,
|
|
1370
|
+
I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9,
|
|
1371
|
+
E2 extends Env = E,
|
|
1372
|
+
E3 extends Env = E,
|
|
1373
|
+
E4 extends Env = E,
|
|
1374
|
+
E5 extends Env = E,
|
|
1375
|
+
E6 extends Env = E,
|
|
1376
|
+
E7 extends Env = E,
|
|
1377
|
+
E8 extends Env = E,
|
|
1378
|
+
E9 extends Env = E,
|
|
1379
|
+
E10 extends Env = E,
|
|
1380
|
+
E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>
|
|
1381
|
+
>(
|
|
1382
|
+
method: M,
|
|
1383
|
+
path: P,
|
|
1384
|
+
...handlers: [
|
|
1385
|
+
H<E2, MergedPath, I>,
|
|
1386
|
+
H<E3, MergedPath, I2>,
|
|
1387
|
+
H<E4, MergedPath, I3>,
|
|
1388
|
+
H<E5, MergedPath, I4>,
|
|
1389
|
+
H<E6, MergedPath, I5>,
|
|
1390
|
+
H<E7, MergedPath, I6>,
|
|
1391
|
+
H<E8, MergedPath, I7>,
|
|
1392
|
+
H<E9, MergedPath, I8>,
|
|
1393
|
+
H<E10, MergedPath, I9>,
|
|
1394
|
+
H<E11, MergedPath, I10>
|
|
1395
|
+
]
|
|
1396
|
+
): Hono<
|
|
1397
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>,
|
|
1398
|
+
S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<HandlerResponse<any>>>,
|
|
1399
|
+
BasePath
|
|
1400
|
+
>
|
|
1401
|
+
|
|
1402
|
+
// app.get(method, path, ...handler)
|
|
1403
|
+
<
|
|
1404
|
+
M extends string,
|
|
1405
|
+
P extends string,
|
|
1406
|
+
R extends HandlerResponse<any> = any,
|
|
1407
|
+
I extends Input = BlankInput
|
|
1408
|
+
>(
|
|
1409
|
+
method: M,
|
|
1410
|
+
path: P,
|
|
1411
|
+
...handlers: H<E, MergePath<BasePath, P>, I, R>[]
|
|
1412
|
+
): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>
|
|
1413
|
+
|
|
1414
|
+
// app.get(method[], path, handler)
|
|
1415
|
+
<
|
|
1416
|
+
Ms extends string[],
|
|
1417
|
+
P extends string,
|
|
1418
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1419
|
+
R extends HandlerResponse<any> = any,
|
|
1420
|
+
I extends Input = BlankInput,
|
|
1421
|
+
E2 extends Env = E
|
|
1422
|
+
>(
|
|
1423
|
+
methods: Ms,
|
|
1424
|
+
path: P,
|
|
1425
|
+
handler: H<E2, MergedPath, I, R>
|
|
1426
|
+
): Hono<
|
|
1427
|
+
IntersectNonAnyTypes<[E, E2]>,
|
|
1428
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I, MergeTypedResponse<R>>,
|
|
1429
|
+
BasePath
|
|
1430
|
+
>
|
|
1431
|
+
|
|
1432
|
+
// app.get(method[], path, handler x2)
|
|
1433
|
+
<
|
|
1434
|
+
Ms extends string[],
|
|
1435
|
+
P extends string,
|
|
1436
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1437
|
+
R extends HandlerResponse<any> = any,
|
|
1438
|
+
I extends Input = BlankInput,
|
|
1439
|
+
I2 extends Input = I,
|
|
1440
|
+
E2 extends Env = E,
|
|
1441
|
+
E3 extends Env = IntersectNonAnyTypes<[E, E2]>
|
|
1442
|
+
>(
|
|
1443
|
+
methods: Ms,
|
|
1444
|
+
path: P,
|
|
1445
|
+
...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2, R>]
|
|
1446
|
+
): Hono<
|
|
1447
|
+
IntersectNonAnyTypes<[E, E2, E3]>,
|
|
1448
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I2, MergeTypedResponse<R>>,
|
|
1449
|
+
BasePath
|
|
1450
|
+
>
|
|
1451
|
+
|
|
1452
|
+
// app.get(method[], path, handler x3)
|
|
1453
|
+
<
|
|
1454
|
+
Ms extends string[],
|
|
1455
|
+
P extends string,
|
|
1456
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1457
|
+
R extends HandlerResponse<any> = any,
|
|
1458
|
+
I extends Input = BlankInput,
|
|
1459
|
+
I2 extends Input = I,
|
|
1460
|
+
I3 extends Input = I & I2,
|
|
1461
|
+
E2 extends Env = E,
|
|
1462
|
+
E3 extends Env = E,
|
|
1463
|
+
E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>
|
|
1464
|
+
>(
|
|
1465
|
+
methods: Ms,
|
|
1466
|
+
path: P,
|
|
1467
|
+
...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2>, H<E4, MergedPath, I3, R>]
|
|
1468
|
+
): Hono<
|
|
1469
|
+
IntersectNonAnyTypes<[E, E2, E3, E4]>,
|
|
1470
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I3, MergeTypedResponse<R>>,
|
|
1471
|
+
BasePath
|
|
1472
|
+
>
|
|
1473
|
+
|
|
1474
|
+
// app.get(method[], path, handler x4)
|
|
1475
|
+
<
|
|
1476
|
+
Ms extends string[],
|
|
1477
|
+
P extends string,
|
|
1478
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1479
|
+
R extends HandlerResponse<any> = any,
|
|
1480
|
+
I extends Input = BlankInput,
|
|
1481
|
+
I2 extends Input = I,
|
|
1482
|
+
I3 extends Input = I & I2,
|
|
1483
|
+
I4 extends Input = I & I2 & I3,
|
|
1484
|
+
E2 extends Env = E,
|
|
1485
|
+
E3 extends Env = E,
|
|
1486
|
+
E4 extends Env = E,
|
|
1487
|
+
E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>
|
|
1488
|
+
>(
|
|
1489
|
+
methods: Ms,
|
|
1490
|
+
path: P,
|
|
1491
|
+
...handlers: [
|
|
1492
|
+
H<E2, MergedPath, I>,
|
|
1493
|
+
H<E3, MergedPath, I2>,
|
|
1494
|
+
H<E4, MergedPath, I3>,
|
|
1495
|
+
H<E5, MergedPath, I4, R>
|
|
1496
|
+
]
|
|
1497
|
+
): Hono<
|
|
1498
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5]>,
|
|
1499
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I4, MergeTypedResponse<R>>,
|
|
1500
|
+
BasePath
|
|
1501
|
+
>
|
|
1502
|
+
|
|
1503
|
+
// app.get(method[], path, handler x5)
|
|
1504
|
+
<
|
|
1505
|
+
Ms extends string[],
|
|
1506
|
+
P extends string,
|
|
1507
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1508
|
+
R extends HandlerResponse<any> = any,
|
|
1509
|
+
I extends Input = BlankInput,
|
|
1510
|
+
I2 extends Input = I,
|
|
1511
|
+
I3 extends Input = I & I2,
|
|
1512
|
+
I4 extends Input = I & I2 & I3,
|
|
1513
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1514
|
+
E2 extends Env = E,
|
|
1515
|
+
E3 extends Env = E,
|
|
1516
|
+
E4 extends Env = E,
|
|
1517
|
+
E5 extends Env = E,
|
|
1518
|
+
E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>
|
|
1519
|
+
>(
|
|
1520
|
+
methods: Ms,
|
|
1521
|
+
path: P,
|
|
1522
|
+
...handlers: [
|
|
1523
|
+
H<E2, MergedPath, I>,
|
|
1524
|
+
H<E3, MergedPath, I2>,
|
|
1525
|
+
H<E4, MergedPath, I3>,
|
|
1526
|
+
H<E5, MergedPath, I4>,
|
|
1527
|
+
H<E6, MergedPath, I5, R>
|
|
1528
|
+
]
|
|
1529
|
+
): Hono<
|
|
1530
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>,
|
|
1531
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I5, MergeTypedResponse<R>>,
|
|
1532
|
+
BasePath
|
|
1533
|
+
>
|
|
1534
|
+
|
|
1535
|
+
// app.get(method[], path, handler x6)
|
|
1536
|
+
<
|
|
1537
|
+
Ms extends string[],
|
|
1538
|
+
P extends string,
|
|
1539
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1540
|
+
R extends HandlerResponse<any> = any,
|
|
1541
|
+
I extends Input = BlankInput,
|
|
1542
|
+
I2 extends Input = I,
|
|
1543
|
+
I3 extends Input = I & I2,
|
|
1544
|
+
I4 extends Input = I & I2 & I3,
|
|
1545
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1546
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1547
|
+
E2 extends Env = E,
|
|
1548
|
+
E3 extends Env = E,
|
|
1549
|
+
E4 extends Env = E,
|
|
1550
|
+
E5 extends Env = E,
|
|
1551
|
+
E6 extends Env = E,
|
|
1552
|
+
E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>
|
|
1553
|
+
>(
|
|
1554
|
+
methods: Ms,
|
|
1555
|
+
path: P,
|
|
1556
|
+
...handlers: [
|
|
1557
|
+
H<E2, MergedPath, I>,
|
|
1558
|
+
H<E3, MergedPath, I2>,
|
|
1559
|
+
H<E4, MergedPath, I3>,
|
|
1560
|
+
H<E5, MergedPath, I4>,
|
|
1561
|
+
H<E6, MergedPath, I5>,
|
|
1562
|
+
H<E7, MergedPath, I6, R>
|
|
1563
|
+
]
|
|
1564
|
+
): Hono<
|
|
1565
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>,
|
|
1566
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I6, MergeTypedResponse<R>>,
|
|
1567
|
+
BasePath
|
|
1568
|
+
>
|
|
1569
|
+
|
|
1570
|
+
// app.get(method[], path, handler x7)
|
|
1571
|
+
<
|
|
1572
|
+
Ms extends string[],
|
|
1573
|
+
P extends string,
|
|
1574
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1575
|
+
R extends HandlerResponse<any> = any,
|
|
1576
|
+
I extends Input = BlankInput,
|
|
1577
|
+
I2 extends Input = I,
|
|
1578
|
+
I3 extends Input = I & I2,
|
|
1579
|
+
I4 extends Input = I & I2 & I3,
|
|
1580
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1581
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1582
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
1583
|
+
E2 extends Env = E,
|
|
1584
|
+
E3 extends Env = E,
|
|
1585
|
+
E4 extends Env = E,
|
|
1586
|
+
E5 extends Env = E,
|
|
1587
|
+
E6 extends Env = E,
|
|
1588
|
+
E7 extends Env = E,
|
|
1589
|
+
E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>
|
|
1590
|
+
>(
|
|
1591
|
+
methods: Ms,
|
|
1592
|
+
path: P,
|
|
1593
|
+
...handlers: [
|
|
1594
|
+
H<E2, MergedPath, I>,
|
|
1595
|
+
H<E3, MergedPath, I2>,
|
|
1596
|
+
H<E4, MergedPath, I3>,
|
|
1597
|
+
H<E5, MergedPath, I4>,
|
|
1598
|
+
H<E6, MergedPath, I5>,
|
|
1599
|
+
H<E7, MergedPath, I6>,
|
|
1600
|
+
H<E8, MergedPath, I7, R>
|
|
1601
|
+
]
|
|
1602
|
+
): Hono<
|
|
1603
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>,
|
|
1604
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I7, MergeTypedResponse<R>>,
|
|
1605
|
+
BasePath
|
|
1606
|
+
>
|
|
1607
|
+
|
|
1608
|
+
// app.get(method[], path, handler x8)
|
|
1609
|
+
<
|
|
1610
|
+
Ms extends string[],
|
|
1611
|
+
P extends string,
|
|
1612
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1613
|
+
R extends HandlerResponse<any> = any,
|
|
1614
|
+
I extends Input = BlankInput,
|
|
1615
|
+
I2 extends Input = I,
|
|
1616
|
+
I3 extends Input = I & I2,
|
|
1617
|
+
I4 extends Input = I & I2 & I3,
|
|
1618
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1619
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1620
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
1621
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
1622
|
+
E2 extends Env = E,
|
|
1623
|
+
E3 extends Env = E,
|
|
1624
|
+
E4 extends Env = E,
|
|
1625
|
+
E5 extends Env = E,
|
|
1626
|
+
E6 extends Env = E,
|
|
1627
|
+
E7 extends Env = E,
|
|
1628
|
+
E8 extends Env = E,
|
|
1629
|
+
E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>
|
|
1630
|
+
>(
|
|
1631
|
+
methods: Ms,
|
|
1632
|
+
path: P,
|
|
1633
|
+
...handlers: [
|
|
1634
|
+
H<E2, MergedPath, I>,
|
|
1635
|
+
H<E3, MergedPath, I2>,
|
|
1636
|
+
H<E4, MergedPath, I3>,
|
|
1637
|
+
H<E5, MergedPath, I4>,
|
|
1638
|
+
H<E6, MergedPath, I5>,
|
|
1639
|
+
H<E7, MergedPath, I6>,
|
|
1640
|
+
H<E8, MergedPath, I7>,
|
|
1641
|
+
H<E9, MergedPath, I8, R>
|
|
1642
|
+
]
|
|
1643
|
+
): Hono<
|
|
1644
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>,
|
|
1645
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I8, MergeTypedResponse<R>>,
|
|
1646
|
+
BasePath
|
|
1647
|
+
>
|
|
1648
|
+
|
|
1649
|
+
// app.get(method[], path, handler x9)
|
|
1650
|
+
<
|
|
1651
|
+
Ms extends string[],
|
|
1652
|
+
P extends string,
|
|
1653
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1654
|
+
I extends Input = BlankInput,
|
|
1655
|
+
I2 extends Input = I,
|
|
1656
|
+
I3 extends Input = I & I2,
|
|
1657
|
+
I4 extends Input = I & I2 & I3,
|
|
1658
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1659
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1660
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
1661
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
1662
|
+
I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8,
|
|
1663
|
+
E2 extends Env = E,
|
|
1664
|
+
E3 extends Env = E,
|
|
1665
|
+
E4 extends Env = E,
|
|
1666
|
+
E5 extends Env = E,
|
|
1667
|
+
E6 extends Env = E,
|
|
1668
|
+
E7 extends Env = E,
|
|
1669
|
+
E8 extends Env = E,
|
|
1670
|
+
E9 extends Env = E,
|
|
1671
|
+
E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>
|
|
1672
|
+
>(
|
|
1673
|
+
methods: Ms,
|
|
1674
|
+
path: P,
|
|
1675
|
+
...handlers: [
|
|
1676
|
+
H<E2, MergedPath, I>,
|
|
1677
|
+
H<E3, MergedPath, I2>,
|
|
1678
|
+
H<E4, MergedPath, I3>,
|
|
1679
|
+
H<E5, MergedPath, I4>,
|
|
1680
|
+
H<E6, MergedPath, I5>,
|
|
1681
|
+
H<E7, MergedPath, I6>,
|
|
1682
|
+
H<E8, MergedPath, I7>,
|
|
1683
|
+
H<E9, MergedPath, I8>,
|
|
1684
|
+
H<E10, MergedPath, I9>
|
|
1685
|
+
]
|
|
1686
|
+
): Hono<
|
|
1687
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>,
|
|
1688
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I9, MergeTypedResponse<HandlerResponse<any>>>,
|
|
1689
|
+
BasePath
|
|
1690
|
+
>
|
|
1691
|
+
|
|
1692
|
+
// app.get(method[], path, handler x10)
|
|
1693
|
+
<
|
|
1694
|
+
Ms extends string[],
|
|
1695
|
+
P extends string,
|
|
1696
|
+
MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>,
|
|
1697
|
+
I extends Input = BlankInput,
|
|
1698
|
+
I2 extends Input = I,
|
|
1699
|
+
I3 extends Input = I & I2,
|
|
1700
|
+
I4 extends Input = I & I2 & I3,
|
|
1701
|
+
I5 extends Input = I & I2 & I3 & I4,
|
|
1702
|
+
I6 extends Input = I & I2 & I3 & I4 & I5,
|
|
1703
|
+
I7 extends Input = I & I2 & I3 & I4 & I5 & I6,
|
|
1704
|
+
I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7,
|
|
1705
|
+
I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8,
|
|
1706
|
+
I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9,
|
|
1707
|
+
E2 extends Env = E,
|
|
1708
|
+
E3 extends Env = E,
|
|
1709
|
+
E4 extends Env = E,
|
|
1710
|
+
E5 extends Env = E,
|
|
1711
|
+
E6 extends Env = E,
|
|
1712
|
+
E7 extends Env = E,
|
|
1713
|
+
E8 extends Env = E,
|
|
1714
|
+
E9 extends Env = E,
|
|
1715
|
+
E10 extends Env = E,
|
|
1716
|
+
E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>
|
|
1717
|
+
>(
|
|
1718
|
+
methods: Ms,
|
|
1719
|
+
path: P,
|
|
1720
|
+
...handlers: [
|
|
1721
|
+
H<E2, MergedPath, I>,
|
|
1722
|
+
H<E3, MergedPath, I2>,
|
|
1723
|
+
H<E4, MergedPath, I3>,
|
|
1724
|
+
H<E5, MergedPath, I4>,
|
|
1725
|
+
H<E6, MergedPath, I5>,
|
|
1726
|
+
H<E7, MergedPath, I6>,
|
|
1727
|
+
H<E8, MergedPath, I7>,
|
|
1728
|
+
H<E9, MergedPath, I8>,
|
|
1729
|
+
H<E10, MergedPath, I9>,
|
|
1730
|
+
H<E11, MergedPath, I10>
|
|
1731
|
+
]
|
|
1732
|
+
): Hono<
|
|
1733
|
+
IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>,
|
|
1734
|
+
S & ToSchema<Ms[number], MergePath<BasePath, P>, I10, MergeTypedResponse<HandlerResponse<any>>>,
|
|
1735
|
+
BasePath
|
|
1736
|
+
>
|
|
1737
|
+
|
|
1738
|
+
// app.on(method[], path, ...handler)
|
|
1739
|
+
<P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(
|
|
1740
|
+
methods: string[],
|
|
1741
|
+
path: P,
|
|
1742
|
+
...handlers: H<E, MergePath<BasePath, P>, I, R>[]
|
|
1743
|
+
): Hono<E, S & ToSchema<string, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>
|
|
1744
|
+
|
|
1745
|
+
// app.on(method | method[], path[], ...handlers[])
|
|
1746
|
+
<I extends Input = BlankInput, R extends HandlerResponse<any> = any>(
|
|
1747
|
+
methods: string | string[],
|
|
1748
|
+
paths: string[],
|
|
1749
|
+
...handlers: H<E, any, I, R>[]
|
|
1750
|
+
): Hono<E, S & ToSchema<string, string, I, MergeTypedResponse<R>>, BasePath>
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
type ExtractKey<S> = S extends Record<infer Key, unknown>
|
|
1754
|
+
? Key extends string
|
|
1755
|
+
? Key
|
|
1756
|
+
: never
|
|
1757
|
+
: string
|
|
1758
|
+
|
|
1759
|
+
////////////////////////////////////////
|
|
1760
|
+
////// //////
|
|
1761
|
+
////// ToSchema //////
|
|
1762
|
+
////// //////
|
|
1763
|
+
////////////////////////////////////////
|
|
1764
|
+
|
|
1765
|
+
export type ToSchema<
|
|
1766
|
+
M extends string,
|
|
1767
|
+
P extends string,
|
|
1768
|
+
I extends Input | Input['in'],
|
|
1769
|
+
RorO // Response or Output
|
|
1770
|
+
> = Simplify<{
|
|
1771
|
+
[K in P]: {
|
|
1772
|
+
[K2 in M as AddDollar<K2>]: Simplify<
|
|
1773
|
+
{
|
|
1774
|
+
input: AddParam<ExtractInput<I>, P>
|
|
1775
|
+
} & (IsAny<RorO> extends true
|
|
1776
|
+
? {
|
|
1777
|
+
output: {}
|
|
1778
|
+
outputFormat: ResponseFormat
|
|
1779
|
+
status: StatusCode
|
|
1780
|
+
}
|
|
1781
|
+
: RorO extends TypedResponse<infer T, infer U, infer F>
|
|
1782
|
+
? {
|
|
1783
|
+
output: unknown extends T ? {} : T
|
|
1784
|
+
outputFormat: I extends { outputFormat: string } ? I['outputFormat'] : F
|
|
1785
|
+
status: U
|
|
1786
|
+
}
|
|
1787
|
+
: {
|
|
1788
|
+
output: unknown extends RorO ? {} : RorO
|
|
1789
|
+
outputFormat: unknown extends RorO
|
|
1790
|
+
? 'json'
|
|
1791
|
+
: I extends { outputFormat: string }
|
|
1792
|
+
? I['outputFormat']
|
|
1793
|
+
: 'json'
|
|
1794
|
+
status: StatusCode
|
|
1795
|
+
})
|
|
1796
|
+
>
|
|
1797
|
+
}
|
|
1798
|
+
}>
|
|
1799
|
+
|
|
1800
|
+
export type Schema = {
|
|
1801
|
+
[Path: string]: {
|
|
1802
|
+
[Method: `$${Lowercase<string>}`]: Endpoint
|
|
1803
|
+
}
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
type ChangePathOfSchema<S extends Schema, Path extends string> = keyof S extends never
|
|
1807
|
+
? { [K in Path]: {} }
|
|
1808
|
+
: { [K in keyof S as Path]: S[K] }
|
|
1809
|
+
|
|
1810
|
+
export type Endpoint = {
|
|
1811
|
+
input: any
|
|
1812
|
+
output: any
|
|
1813
|
+
outputFormat: ResponseFormat
|
|
1814
|
+
status: StatusCode
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1817
|
+
type ExtractParams<Path extends string> = string extends Path
|
|
1818
|
+
? Record<string, string>
|
|
1819
|
+
: Path extends `${infer _Start}:${infer Param}/${infer Rest}`
|
|
1820
|
+
? { [K in Param | keyof ExtractParams<`/${Rest}`>]: string }
|
|
1821
|
+
: Path extends `${infer _Start}:${infer Param}`
|
|
1822
|
+
? { [K in Param]: string }
|
|
1823
|
+
: never
|
|
1824
|
+
|
|
1825
|
+
type FlattenIfIntersect<T> = T extends infer O ? { [K in keyof O]: O[K] } : never
|
|
1826
|
+
|
|
1827
|
+
export type MergeSchemaPath<OrigSchema extends Schema, SubPath extends string> = Simplify<{
|
|
1828
|
+
[P in keyof OrigSchema as MergePath<SubPath, P & string>]: {
|
|
1829
|
+
[M in keyof OrigSchema[P]]: MergeEndpointParamsWithPath<OrigSchema[P][M], SubPath>
|
|
1830
|
+
}
|
|
1831
|
+
}>
|
|
1832
|
+
|
|
1833
|
+
type MergeEndpointParamsWithPath<T, SubPath extends string> = T extends {
|
|
1834
|
+
input: infer Input
|
|
1835
|
+
output: infer Output
|
|
1836
|
+
outputFormat: infer OutputFormat
|
|
1837
|
+
status: infer Status
|
|
1838
|
+
}
|
|
1839
|
+
? {
|
|
1840
|
+
input: Input extends { param: infer _ }
|
|
1841
|
+
? ExtractParams<SubPath> extends never
|
|
1842
|
+
? Input
|
|
1843
|
+
: FlattenIfIntersect<
|
|
1844
|
+
Input & {
|
|
1845
|
+
param: {
|
|
1846
|
+
// Maps extracted keys, stripping braces, to a string-typed record.
|
|
1847
|
+
[K in keyof ExtractParams<SubPath> as K extends `${infer Prefix}{${infer _}}`
|
|
1848
|
+
? Prefix
|
|
1849
|
+
: K]: string
|
|
1850
|
+
}
|
|
1851
|
+
}
|
|
1852
|
+
>
|
|
1853
|
+
: RemoveBlankRecord<ExtractParams<SubPath>> extends never
|
|
1854
|
+
? Input
|
|
1855
|
+
: Input & {
|
|
1856
|
+
// Maps extracted keys, stripping braces, to a string-typed record.
|
|
1857
|
+
param: {
|
|
1858
|
+
[K in keyof ExtractParams<SubPath> as K extends `${infer Prefix}{${infer _}}`
|
|
1859
|
+
? Prefix
|
|
1860
|
+
: K]: string
|
|
1861
|
+
}
|
|
1862
|
+
}
|
|
1863
|
+
output: Output
|
|
1864
|
+
outputFormat: OutputFormat
|
|
1865
|
+
status: Status
|
|
1866
|
+
}
|
|
1867
|
+
: never
|
|
1868
|
+
|
|
1869
|
+
export type AddParam<I, P extends string> = ParamKeys<P> extends never
|
|
1870
|
+
? I
|
|
1871
|
+
: I extends { param: infer _ }
|
|
1872
|
+
? I
|
|
1873
|
+
: I & { param: UnionToIntersection<ParamKeyToRecord<ParamKeys<P>>> }
|
|
1874
|
+
|
|
1875
|
+
type AddDollar<T extends string> = `$${Lowercase<T>}`
|
|
1876
|
+
|
|
1877
|
+
export type MergePath<A extends string, B extends string> = B extends ''
|
|
1878
|
+
? MergePath<A, '/'>
|
|
1879
|
+
: A extends ''
|
|
1880
|
+
? B
|
|
1881
|
+
: A extends '/'
|
|
1882
|
+
? B
|
|
1883
|
+
: A extends `${infer P}/`
|
|
1884
|
+
? B extends `/${infer Q}`
|
|
1885
|
+
? `${P}/${Q}`
|
|
1886
|
+
: `${P}/${B}`
|
|
1887
|
+
: B extends `/${infer Q}`
|
|
1888
|
+
? Q extends ''
|
|
1889
|
+
? A
|
|
1890
|
+
: `${A}/${Q}`
|
|
1891
|
+
: `${A}/${B}`
|
|
1892
|
+
|
|
1893
|
+
////////////////////////////////////////
|
|
1894
|
+
////// //////
|
|
1895
|
+
////// TypedResponse //////
|
|
1896
|
+
////// //////
|
|
1897
|
+
////////////////////////////////////////
|
|
1898
|
+
|
|
1899
|
+
export type KnownResponseFormat = 'json' | 'text' | 'redirect'
|
|
1900
|
+
export type ResponseFormat = KnownResponseFormat | string
|
|
1901
|
+
|
|
1902
|
+
export type TypedResponse<
|
|
1903
|
+
T = unknown,
|
|
1904
|
+
U extends StatusCode = StatusCode,
|
|
1905
|
+
F extends ResponseFormat = T extends string
|
|
1906
|
+
? 'text'
|
|
1907
|
+
: T extends JSONValue
|
|
1908
|
+
? 'json'
|
|
1909
|
+
: ResponseFormat
|
|
1910
|
+
> = {
|
|
1911
|
+
_data: T
|
|
1912
|
+
_status: U
|
|
1913
|
+
_format: F
|
|
1914
|
+
}
|
|
1915
|
+
|
|
1916
|
+
type MergeTypedResponse<T> = T extends Promise<infer T2>
|
|
1917
|
+
? T2 extends TypedResponse
|
|
1918
|
+
? T2
|
|
1919
|
+
: TypedResponse
|
|
1920
|
+
: T extends TypedResponse
|
|
1921
|
+
? T
|
|
1922
|
+
: TypedResponse
|
|
1923
|
+
|
|
1924
|
+
////////////////////////////////////////
|
|
1925
|
+
////// /////
|
|
1926
|
+
////// ValidationTargets /////
|
|
1927
|
+
////// /////
|
|
1928
|
+
////////////////////////////////////////
|
|
1929
|
+
|
|
1930
|
+
export type FormValue = string | Blob
|
|
1931
|
+
export type ParsedFormValue = string | File
|
|
1932
|
+
|
|
1933
|
+
export type ValidationTargets<T extends FormValue = ParsedFormValue, P extends string = string> = {
|
|
1934
|
+
json: any
|
|
1935
|
+
form: Record<string, T | T[]>
|
|
1936
|
+
query: Record<string, string | string[]>
|
|
1937
|
+
param: Record<P, P extends `${infer _}?` ? string | undefined : string>
|
|
1938
|
+
header: Record<string, string>
|
|
1939
|
+
cookie: Record<string, string>
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
////////////////////////////////////////
|
|
1943
|
+
////// //////
|
|
1944
|
+
////// Path parameters //////
|
|
1945
|
+
////// //////
|
|
1946
|
+
////////////////////////////////////////
|
|
1947
|
+
|
|
1948
|
+
type ParamKeyName<NameWithPattern> = NameWithPattern extends `${infer Name}{${infer Rest}`
|
|
1949
|
+
? Rest extends `${infer _Pattern}?`
|
|
1950
|
+
? `${Name}?`
|
|
1951
|
+
: Name
|
|
1952
|
+
: NameWithPattern
|
|
1953
|
+
|
|
1954
|
+
type ParamKey<Component> = Component extends `:${infer NameWithPattern}`
|
|
1955
|
+
? ParamKeyName<NameWithPattern>
|
|
1956
|
+
: never
|
|
1957
|
+
|
|
1958
|
+
export type ParamKeys<Path> = Path extends `${infer Component}/${infer Rest}`
|
|
1959
|
+
? ParamKey<Component> | ParamKeys<Rest>
|
|
1960
|
+
: ParamKey<Path>
|
|
1961
|
+
|
|
1962
|
+
export type ParamKeyToRecord<T extends string> = T extends `${infer R}?`
|
|
1963
|
+
? Record<R, string | undefined>
|
|
1964
|
+
: { [K in T]: string }
|
|
1965
|
+
|
|
1966
|
+
////////////////////////////////////////
|
|
1967
|
+
////// //////
|
|
1968
|
+
///// For HonoRequest //////
|
|
1969
|
+
////// //////
|
|
1970
|
+
////////////////////////////////////////
|
|
1971
|
+
|
|
1972
|
+
export type InputToDataByTarget<
|
|
1973
|
+
T extends Input['out'],
|
|
1974
|
+
Target extends keyof ValidationTargets
|
|
1975
|
+
> = T extends {
|
|
1976
|
+
[K in Target]: infer R
|
|
1977
|
+
}
|
|
1978
|
+
? R
|
|
1979
|
+
: never
|
|
1980
|
+
|
|
1981
|
+
export type RemoveQuestion<T> = T extends `${infer R}?` ? R : T
|
|
1982
|
+
|
|
1983
|
+
////////////////////////////////////////
|
|
1984
|
+
////// //////
|
|
1985
|
+
////// Utilities //////
|
|
1986
|
+
////// //////
|
|
1987
|
+
////////////////////////////////////////
|
|
1988
|
+
|
|
1989
|
+
export type ExtractSchema<T> = UnionToIntersection<
|
|
1990
|
+
T extends Hono<infer _, infer S, any> ? S : never
|
|
1991
|
+
>
|
|
1992
|
+
|
|
1993
|
+
type EnvOrEmpty<T> = T extends Env ? (Env extends T ? {} : T) : T
|
|
1994
|
+
type IntersectNonAnyTypes<T extends any[]> = T extends [infer Head, ...infer Rest]
|
|
1995
|
+
? IfAnyThenEmptyObject<EnvOrEmpty<Head>> & IntersectNonAnyTypes<Rest>
|
|
1996
|
+
: {}
|
|
1997
|
+
|
|
1998
|
+
////////////////////////////////////////
|
|
1999
|
+
////// //////
|
|
2000
|
+
////// FetchEvent //////
|
|
2001
|
+
////// //////
|
|
2002
|
+
////////////////////////////////////////
|
|
2003
|
+
|
|
2004
|
+
export abstract class FetchEventLike {
|
|
2005
|
+
abstract readonly request: Request
|
|
2006
|
+
abstract respondWith(promise: Response | Promise<Response>): void
|
|
2007
|
+
abstract passThroughOnException(): void
|
|
2008
|
+
abstract waitUntil(promise: Promise<void>): void
|
|
2009
|
+
}
|