bluera-knowledge 0.14.0 → 0.14.2
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-plugin/plugin.json +1 -1
- package/CHANGELOG.md +14 -0
- package/dist/{chunk-AIS5S77C.js → chunk-X7E4RYJE.js} +51 -9
- package/dist/{chunk-AIS5S77C.js.map → chunk-X7E4RYJE.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/workers/background-worker-cli.js +1 -1
- package/package.json +12 -1
- package/.claude/commands/code-review.md +0 -15
- package/.claude/commands/commit.md +0 -34
- package/.claude/council-cache/1a43ed5977b8f29afc79a9bf5c4082ee5ad8338c42ab991a4241a48f80c1e46d.json +0 -7
- package/.claude/hooks/post-edit-check.sh +0 -40
- package/.claude/rules/code-quality.md +0 -12
- package/.claude/rules/git.md +0 -5
- package/.claude/rules/versioning.md +0 -7
- package/.claude/settings.local.json.example +0 -45
- package/.claude/skills/atomic-commits/SKILL.md +0 -61
- package/.claude/skills/code-review-repo/skill.md +0 -62
- package/.editorconfig +0 -15
- package/.env.example +0 -21
- package/.github/workflows/auto-release.yml +0 -64
- package/.github/workflows/ci.yml +0 -168
- package/.github/workflows/release.yml +0 -74
- package/.github/workflows/update-marketplace.yml +0 -96
- package/.husky/pre-commit +0 -48
- package/.husky/pre-push +0 -39
- package/.mcp.json +0 -11
- package/.prettierrc +0 -9
- package/.versionrc.json +0 -24
- package/CLAUDE.md +0 -110
- package/CONTRIBUTING.md +0 -307
- package/NOTICE +0 -47
- package/SECURITY.md +0 -65
- package/bun.lock +0 -2036
- package/docs/claude-code-best-practices.md +0 -458
- package/docs/cli.md +0 -170
- package/docs/commands.md +0 -392
- package/docs/crawler-architecture.md +0 -89
- package/docs/mcp-integration.md +0 -130
- package/docs/token-efficiency.md +0 -91
- package/eslint-rules/require-skip-comment.js +0 -81
- package/eslint.config.js +0 -103
- package/knip.json +0 -43
- package/scripts/test-mcp-dev.js +0 -260
- package/scripts/validate-npm-release.sh +0 -314
- package/src/analysis/adapter-registry.test.ts +0 -211
- package/src/analysis/adapter-registry.ts +0 -155
- package/src/analysis/ast-parser.test.ts +0 -470
- package/src/analysis/ast-parser.ts +0 -198
- package/src/analysis/code-graph.test.ts +0 -718
- package/src/analysis/code-graph.ts +0 -249
- package/src/analysis/dependency-usage-analyzer.test.ts +0 -619
- package/src/analysis/dependency-usage-analyzer.ts +0 -433
- package/src/analysis/go-ast-parser.test.ts +0 -531
- package/src/analysis/go-ast-parser.ts +0 -471
- package/src/analysis/language-adapter.ts +0 -127
- package/src/analysis/parser-factory.test.ts +0 -210
- package/src/analysis/parser-factory.ts +0 -52
- package/src/analysis/python-ast-parser.test.ts +0 -210
- package/src/analysis/python-ast-parser.ts +0 -34
- package/src/analysis/repo-url-resolver.test.ts +0 -533
- package/src/analysis/repo-url-resolver.ts +0 -233
- package/src/analysis/rust-ast-parser.test.ts +0 -568
- package/src/analysis/rust-ast-parser.ts +0 -467
- package/src/analysis/tree-sitter-parser.test.ts +0 -297
- package/src/analysis/tree-sitter-parser.ts +0 -217
- package/src/analysis/zil/index.ts +0 -34
- package/src/analysis/zil/zil-adapter.test.ts +0 -187
- package/src/analysis/zil/zil-adapter.ts +0 -121
- package/src/analysis/zil/zil-lexer.test.ts +0 -222
- package/src/analysis/zil/zil-lexer.ts +0 -239
- package/src/analysis/zil/zil-parser.test.ts +0 -210
- package/src/analysis/zil/zil-parser.ts +0 -360
- package/src/analysis/zil/zil-special-forms.ts +0 -193
- package/src/cli/commands/crawl.test.ts +0 -1086
- package/src/cli/commands/crawl.ts +0 -220
- package/src/cli/commands/index-cmd.test.ts +0 -733
- package/src/cli/commands/index-cmd.ts +0 -128
- package/src/cli/commands/mcp.test.ts +0 -218
- package/src/cli/commands/mcp.ts +0 -18
- package/src/cli/commands/plugin-api.test.ts +0 -373
- package/src/cli/commands/plugin-api.ts +0 -82
- package/src/cli/commands/search.test.ts +0 -1047
- package/src/cli/commands/search.ts +0 -197
- package/src/cli/commands/serve.test.ts +0 -371
- package/src/cli/commands/serve.ts +0 -43
- package/src/cli/commands/setup.test.ts +0 -895
- package/src/cli/commands/setup.ts +0 -176
- package/src/cli/commands/store.test.ts +0 -1370
- package/src/cli/commands/store.ts +0 -229
- package/src/cli/commands/sync.test.ts +0 -54
- package/src/cli/commands/sync.ts +0 -313
- package/src/cli/index.ts +0 -8
- package/src/cli/program.ts +0 -59
- package/src/crawl/article-converter.test.ts +0 -576
- package/src/crawl/article-converter.ts +0 -142
- package/src/crawl/bridge.test.ts +0 -796
- package/src/crawl/bridge.ts +0 -349
- package/src/crawl/claude-client.test.ts +0 -902
- package/src/crawl/claude-client.ts +0 -261
- package/src/crawl/intelligent-crawler.test.ts +0 -1028
- package/src/crawl/intelligent-crawler.ts +0 -478
- package/src/crawl/markdown-utils.test.ts +0 -703
- package/src/crawl/markdown-utils.ts +0 -225
- package/src/crawl/schemas.ts +0 -114
- package/src/db/embeddings.test.ts +0 -79
- package/src/db/embeddings.ts +0 -78
- package/src/db/index.ts +0 -2
- package/src/db/lance.test.ts +0 -479
- package/src/db/lance.ts +0 -190
- package/src/defaults/repos.ts +0 -67
- package/src/index.ts +0 -124
- package/src/logging/index.ts +0 -25
- package/src/logging/logger.test.ts +0 -75
- package/src/logging/logger.ts +0 -145
- package/src/logging/payload.test.ts +0 -152
- package/src/logging/payload.ts +0 -119
- package/src/mcp/cache.test.ts +0 -202
- package/src/mcp/cache.ts +0 -103
- package/src/mcp/commands/index.ts +0 -24
- package/src/mcp/commands/job.commands.ts +0 -48
- package/src/mcp/commands/meta.commands.ts +0 -54
- package/src/mcp/commands/registry.ts +0 -180
- package/src/mcp/commands/store.commands.ts +0 -75
- package/src/mcp/commands/sync.commands.test.ts +0 -371
- package/src/mcp/commands/sync.commands.ts +0 -263
- package/src/mcp/commands/uninstall.commands.test.ts +0 -37
- package/src/mcp/commands/uninstall.commands.ts +0 -29
- package/src/mcp/handlers/execute.handler.test.ts +0 -179
- package/src/mcp/handlers/execute.handler.ts +0 -23
- package/src/mcp/handlers/index.ts +0 -39
- package/src/mcp/handlers/job.handler.test.ts +0 -189
- package/src/mcp/handlers/job.handler.ts +0 -118
- package/src/mcp/handlers/search.handler.test.ts +0 -324
- package/src/mcp/handlers/search.handler.ts +0 -287
- package/src/mcp/handlers/store.handler.test.ts +0 -408
- package/src/mcp/handlers/store.handler.ts +0 -318
- package/src/mcp/handlers/uninstall.handler.test.ts +0 -194
- package/src/mcp/handlers/uninstall.handler.ts +0 -142
- package/src/mcp/plugin-mcp-config.test.ts +0 -71
- package/src/mcp/schemas/index.test.ts +0 -356
- package/src/mcp/schemas/index.ts +0 -155
- package/src/mcp/server.test.ts +0 -91
- package/src/mcp/server.ts +0 -235
- package/src/mcp/types.ts +0 -41
- package/src/plugin/commands.test.ts +0 -925
- package/src/plugin/commands.ts +0 -311
- package/src/plugin/dependency-analyzer.test.ts +0 -380
- package/src/plugin/dependency-analyzer.ts +0 -210
- package/src/plugin/git-clone.test.ts +0 -387
- package/src/plugin/git-clone.ts +0 -57
- package/src/scripts/validate-npm-release.test.ts +0 -70
- package/src/server/app.test.ts +0 -752
- package/src/server/app.ts +0 -128
- package/src/server/index.test.ts +0 -475
- package/src/server/index.ts +0 -1
- package/src/services/chunking.service.test.ts +0 -363
- package/src/services/chunking.service.ts +0 -380
- package/src/services/code-graph.service.test.ts +0 -298
- package/src/services/code-graph.service.ts +0 -326
- package/src/services/code-unit.service.test.ts +0 -693
- package/src/services/code-unit.service.ts +0 -234
- package/src/services/config.service.test.ts +0 -146
- package/src/services/config.service.ts +0 -92
- package/src/services/gitignore.service.test.ts +0 -157
- package/src/services/gitignore.service.ts +0 -132
- package/src/services/index.service.test.ts +0 -2301
- package/src/services/index.service.ts +0 -442
- package/src/services/index.ts +0 -119
- package/src/services/job.service.test.ts +0 -531
- package/src/services/job.service.ts +0 -298
- package/src/services/project-root.service.test.ts +0 -504
- package/src/services/project-root.service.ts +0 -112
- package/src/services/search.service.test.ts +0 -2263
- package/src/services/search.service.ts +0 -1341
- package/src/services/services.test.ts +0 -108
- package/src/services/snippet.service.test.ts +0 -213
- package/src/services/snippet.service.ts +0 -193
- package/src/services/store-definition.service.test.ts +0 -440
- package/src/services/store-definition.service.ts +0 -198
- package/src/services/store.service.test.ts +0 -843
- package/src/services/store.service.ts +0 -363
- package/src/services/token.service.test.ts +0 -45
- package/src/services/token.service.ts +0 -33
- package/src/services/watch.service.test.ts +0 -600
- package/src/services/watch.service.ts +0 -84
- package/src/types/brands.test.ts +0 -47
- package/src/types/brands.ts +0 -32
- package/src/types/config.ts +0 -79
- package/src/types/document.ts +0 -54
- package/src/types/index.ts +0 -73
- package/src/types/job.ts +0 -61
- package/src/types/progress.ts +0 -9
- package/src/types/result.test.ts +0 -54
- package/src/types/result.ts +0 -41
- package/src/types/search.ts +0 -105
- package/src/types/store-definition.test.ts +0 -492
- package/src/types/store-definition.ts +0 -129
- package/src/types/store.test.ts +0 -69
- package/src/types/store.ts +0 -47
- package/src/utils/type-guards.test.ts +0 -351
- package/src/utils/type-guards.ts +0 -61
- package/src/workers/background-worker-cli.test.ts +0 -35
- package/src/workers/background-worker-cli.ts +0 -149
- package/src/workers/background-worker.test.ts +0 -222
- package/src/workers/background-worker.ts +0 -322
- package/src/workers/pid-file.test.ts +0 -167
- package/src/workers/pid-file.ts +0 -82
- package/src/workers/spawn-worker.test.ts +0 -194
- package/src/workers/spawn-worker.ts +0 -70
- package/tests/analysis/ast-parser.test.ts +0 -98
- package/tests/analysis/code-graph.test.ts +0 -60
- package/tests/fixtures/README.md +0 -114
- package/tests/fixtures/code-snippets/api/error-handling.ts +0 -256
- package/tests/fixtures/code-snippets/api/rest-controller.ts +0 -297
- package/tests/fixtures/code-snippets/auth/jwt-auth.ts +0 -197
- package/tests/fixtures/code-snippets/auth/oauth-flow.ts +0 -245
- package/tests/fixtures/code-snippets/database/repository-pattern.ts +0 -280
- package/tests/fixtures/corpus/VERSION.md +0 -25
- package/tests/fixtures/corpus/articles/jwt-authentication.md +0 -97
- package/tests/fixtures/corpus/articles/react-hooks-patterns.md +0 -127
- package/tests/fixtures/corpus/articles/typescript-generics.md +0 -111
- package/tests/fixtures/corpus/documentation/express-middleware.md +0 -71
- package/tests/fixtures/corpus/documentation/express-routing.md +0 -83
- package/tests/fixtures/corpus/documentation/node-streams.md +0 -78
- package/tests/fixtures/corpus/oss-repos/express/History.md +0 -3871
- package/tests/fixtures/corpus/oss-repos/express/LICENSE +0 -24
- package/tests/fixtures/corpus/oss-repos/express/README.md +0 -276
- package/tests/fixtures/corpus/oss-repos/express/SECURITY.md +0 -56
- package/tests/fixtures/corpus/oss-repos/express/benchmarks/Makefile +0 -17
- package/tests/fixtures/corpus/oss-repos/express/benchmarks/README.md +0 -34
- package/tests/fixtures/corpus/oss-repos/express/benchmarks/middleware.js +0 -20
- package/tests/fixtures/corpus/oss-repos/express/benchmarks/run +0 -18
- package/tests/fixtures/corpus/oss-repos/express/examples/README.md +0 -29
- package/tests/fixtures/corpus/oss-repos/express/examples/auth/index.js +0 -134
- package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/foot.ejs +0 -2
- package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/head.ejs +0 -20
- package/tests/fixtures/corpus/oss-repos/express/examples/auth/views/login.ejs +0 -21
- package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/db.js +0 -9
- package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/index.js +0 -46
- package/tests/fixtures/corpus/oss-repos/express/examples/content-negotiation/users.js +0 -19
- package/tests/fixtures/corpus/oss-repos/express/examples/cookie-sessions/index.js +0 -25
- package/tests/fixtures/corpus/oss-repos/express/examples/cookies/index.js +0 -53
- 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 +0 -2
- package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/amazing.txt +0 -1
- package/tests/fixtures/corpus/oss-repos/express/examples/downloads/files/notes/groceries.txt +0 -3
- package/tests/fixtures/corpus/oss-repos/express/examples/downloads/index.js +0 -40
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/index.js +0 -57
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/public/stylesheets/style.css +0 -4
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/footer.html +0 -2
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/header.html +0 -9
- package/tests/fixtures/corpus/oss-repos/express/examples/ejs/views/users.html +0 -10
- package/tests/fixtures/corpus/oss-repos/express/examples/error/index.js +0 -53
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/index.js +0 -103
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/404.ejs +0 -3
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/500.ejs +0 -8
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/error_header.ejs +0 -10
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/footer.ejs +0 -2
- package/tests/fixtures/corpus/oss-repos/express/examples/error-pages/views/index.ejs +0 -20
- package/tests/fixtures/corpus/oss-repos/express/examples/hello-world/index.js +0 -15
- package/tests/fixtures/corpus/oss-repos/express/examples/markdown/index.js +0 -44
- package/tests/fixtures/corpus/oss-repos/express/examples/markdown/views/index.md +0 -4
- package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v1.js +0 -15
- package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/controllers/api_v2.js +0 -15
- package/tests/fixtures/corpus/oss-repos/express/examples/multi-router/index.js +0 -18
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/main/index.js +0 -5
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/index.js +0 -31
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/edit.ejs +0 -17
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/pet/views/show.ejs +0 -15
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/index.js +0 -41
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/edit.hbs +0 -27
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/list.hbs +0 -18
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user/views/show.hbs +0 -31
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/controllers/user-pet/index.js +0 -22
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/db.js +0 -16
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/index.js +0 -95
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/lib/boot.js +0 -83
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/public/style.css +0 -14
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/404.ejs +0 -13
- package/tests/fixtures/corpus/oss-repos/express/examples/mvc/views/5xx.ejs +0 -13
- package/tests/fixtures/corpus/oss-repos/express/examples/online/index.js +0 -61
- package/tests/fixtures/corpus/oss-repos/express/examples/params/index.js +0 -74
- package/tests/fixtures/corpus/oss-repos/express/examples/resource/index.js +0 -95
- package/tests/fixtures/corpus/oss-repos/express/examples/route-map/index.js +0 -75
- package/tests/fixtures/corpus/oss-repos/express/examples/route-middleware/index.js +0 -90
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/index.js +0 -55
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/post.js +0 -13
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/public/style.css +0 -24
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/site.js +0 -5
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/user.js +0 -47
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/footer.ejs +0 -2
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/header.ejs +0 -9
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/index.ejs +0 -10
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/posts/index.ejs +0 -12
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/edit.ejs +0 -23
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/index.ejs +0 -14
- package/tests/fixtures/corpus/oss-repos/express/examples/route-separation/views/users/view.ejs +0 -9
- package/tests/fixtures/corpus/oss-repos/express/examples/search/index.js +0 -61
- package/tests/fixtures/corpus/oss-repos/express/examples/search/public/client.js +0 -15
- package/tests/fixtures/corpus/oss-repos/express/examples/search/public/index.html +0 -21
- package/tests/fixtures/corpus/oss-repos/express/examples/session/index.js +0 -37
- package/tests/fixtures/corpus/oss-repos/express/examples/session/redis.js +0 -39
- package/tests/fixtures/corpus/oss-repos/express/examples/static-files/index.js +0 -43
- package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/css/style.css +0 -3
- package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/hello.txt +0 -1
- package/tests/fixtures/corpus/oss-repos/express/examples/static-files/public/js/app.js +0 -1
- package/tests/fixtures/corpus/oss-repos/express/examples/vhost/index.js +0 -53
- package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/github-view.js +0 -53
- package/tests/fixtures/corpus/oss-repos/express/examples/view-constructor/index.js +0 -48
- package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/index.js +0 -155
- package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/user.js +0 -36
- package/tests/fixtures/corpus/oss-repos/express/examples/view-locals/views/index.ejs +0 -20
- package/tests/fixtures/corpus/oss-repos/express/examples/web-service/index.js +0 -117
- package/tests/fixtures/corpus/oss-repos/express/index.js +0 -11
- package/tests/fixtures/corpus/oss-repos/express/lib/application.js +0 -631
- package/tests/fixtures/corpus/oss-repos/express/lib/express.js +0 -81
- package/tests/fixtures/corpus/oss-repos/express/lib/request.js +0 -514
- package/tests/fixtures/corpus/oss-repos/express/lib/response.js +0 -1053
- package/tests/fixtures/corpus/oss-repos/express/lib/utils.js +0 -271
- package/tests/fixtures/corpus/oss-repos/express/lib/view.js +0 -205
- package/tests/fixtures/corpus/oss-repos/express/package.json +0 -99
- package/tests/fixtures/corpus/oss-repos/express/test/Route.js +0 -274
- package/tests/fixtures/corpus/oss-repos/express/test/Router.js +0 -636
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/auth.js +0 -117
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/content-negotiation.js +0 -49
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookie-sessions.js +0 -38
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/cookies.js +0 -71
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/downloads.js +0 -47
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/ejs.js +0 -17
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error-pages.js +0 -99
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/error.js +0 -29
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/hello-world.js +0 -21
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/markdown.js +0 -21
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/multi-router.js +0 -44
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/mvc.js +0 -132
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/params.js +0 -44
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/resource.js +0 -68
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-map.js +0 -45
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/route-separation.js +0 -97
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/vhost.js +0 -46
- package/tests/fixtures/corpus/oss-repos/express/test/acceptance/web-service.js +0 -105
- package/tests/fixtures/corpus/oss-repos/express/test/app.all.js +0 -38
- package/tests/fixtures/corpus/oss-repos/express/test/app.engine.js +0 -83
- package/tests/fixtures/corpus/oss-repos/express/test/app.head.js +0 -66
- package/tests/fixtures/corpus/oss-repos/express/test/app.js +0 -120
- package/tests/fixtures/corpus/oss-repos/express/test/app.listen.js +0 -55
- package/tests/fixtures/corpus/oss-repos/express/test/app.locals.js +0 -26
- package/tests/fixtures/corpus/oss-repos/express/test/app.options.js +0 -116
- package/tests/fixtures/corpus/oss-repos/express/test/app.param.js +0 -323
- package/tests/fixtures/corpus/oss-repos/express/test/app.render.js +0 -374
- package/tests/fixtures/corpus/oss-repos/express/test/app.request.js +0 -143
- package/tests/fixtures/corpus/oss-repos/express/test/app.response.js +0 -143
- package/tests/fixtures/corpus/oss-repos/express/test/app.route.js +0 -197
- package/tests/fixtures/corpus/oss-repos/express/test/app.router.js +0 -1217
- package/tests/fixtures/corpus/oss-repos/express/test/app.routes.error.js +0 -62
- package/tests/fixtures/corpus/oss-repos/express/test/app.use.js +0 -542
- package/tests/fixtures/corpus/oss-repos/express/test/config.js +0 -207
- package/tests/fixtures/corpus/oss-repos/express/test/exports.js +0 -82
- package/tests/fixtures/corpus/oss-repos/express/test/express.json.js +0 -755
- package/tests/fixtures/corpus/oss-repos/express/test/express.raw.js +0 -513
- package/tests/fixtures/corpus/oss-repos/express/test/express.static.js +0 -815
- package/tests/fixtures/corpus/oss-repos/express/test/express.text.js +0 -566
- package/tests/fixtures/corpus/oss-repos/express/test/express.urlencoded.js +0 -828
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/% of dogs.txt +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/.name +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/index.html +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/blog/post/index.tmpl +0 -1
- 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 +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/default_layout/user.tmpl +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/email.tmpl +0 -1
- 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 +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.tmpl +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/name.txt +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/nums.txt +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/pets/names.txt +0 -1
- 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 +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/todo.txt +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.html +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/user.tmpl +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/index.html +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/fixtures/users/tobi.txt +0 -1
- package/tests/fixtures/corpus/oss-repos/express/test/middleware.basic.js +0 -42
- package/tests/fixtures/corpus/oss-repos/express/test/regression.js +0 -20
- package/tests/fixtures/corpus/oss-repos/express/test/req.accepts.js +0 -125
- package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsCharsets.js +0 -50
- package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsEncodings.js +0 -39
- package/tests/fixtures/corpus/oss-repos/express/test/req.acceptsLanguages.js +0 -57
- package/tests/fixtures/corpus/oss-repos/express/test/req.baseUrl.js +0 -88
- package/tests/fixtures/corpus/oss-repos/express/test/req.fresh.js +0 -70
- package/tests/fixtures/corpus/oss-repos/express/test/req.get.js +0 -60
- package/tests/fixtures/corpus/oss-repos/express/test/req.host.js +0 -156
- package/tests/fixtures/corpus/oss-repos/express/test/req.hostname.js +0 -188
- package/tests/fixtures/corpus/oss-repos/express/test/req.ip.js +0 -113
- package/tests/fixtures/corpus/oss-repos/express/test/req.ips.js +0 -71
- package/tests/fixtures/corpus/oss-repos/express/test/req.is.js +0 -169
- package/tests/fixtures/corpus/oss-repos/express/test/req.path.js +0 -20
- package/tests/fixtures/corpus/oss-repos/express/test/req.protocol.js +0 -113
- package/tests/fixtures/corpus/oss-repos/express/test/req.query.js +0 -106
- package/tests/fixtures/corpus/oss-repos/express/test/req.range.js +0 -104
- package/tests/fixtures/corpus/oss-repos/express/test/req.route.js +0 -28
- package/tests/fixtures/corpus/oss-repos/express/test/req.secure.js +0 -101
- package/tests/fixtures/corpus/oss-repos/express/test/req.signedCookies.js +0 -37
- package/tests/fixtures/corpus/oss-repos/express/test/req.stale.js +0 -50
- package/tests/fixtures/corpus/oss-repos/express/test/req.subdomains.js +0 -173
- package/tests/fixtures/corpus/oss-repos/express/test/req.xhr.js +0 -42
- package/tests/fixtures/corpus/oss-repos/express/test/res.append.js +0 -116
- package/tests/fixtures/corpus/oss-repos/express/test/res.attachment.js +0 -79
- package/tests/fixtures/corpus/oss-repos/express/test/res.clearCookie.js +0 -62
- package/tests/fixtures/corpus/oss-repos/express/test/res.cookie.js +0 -295
- package/tests/fixtures/corpus/oss-repos/express/test/res.download.js +0 -487
- package/tests/fixtures/corpus/oss-repos/express/test/res.format.js +0 -248
- package/tests/fixtures/corpus/oss-repos/express/test/res.get.js +0 -21
- package/tests/fixtures/corpus/oss-repos/express/test/res.json.js +0 -186
- package/tests/fixtures/corpus/oss-repos/express/test/res.jsonp.js +0 -344
- package/tests/fixtures/corpus/oss-repos/express/test/res.links.js +0 -65
- package/tests/fixtures/corpus/oss-repos/express/test/res.locals.js +0 -40
- package/tests/fixtures/corpus/oss-repos/express/test/res.location.js +0 -316
- package/tests/fixtures/corpus/oss-repos/express/test/res.redirect.js +0 -214
- package/tests/fixtures/corpus/oss-repos/express/test/res.render.js +0 -367
- package/tests/fixtures/corpus/oss-repos/express/test/res.send.js +0 -569
- package/tests/fixtures/corpus/oss-repos/express/test/res.sendFile.js +0 -913
- package/tests/fixtures/corpus/oss-repos/express/test/res.sendStatus.js +0 -44
- package/tests/fixtures/corpus/oss-repos/express/test/res.set.js +0 -124
- package/tests/fixtures/corpus/oss-repos/express/test/res.status.js +0 -206
- package/tests/fixtures/corpus/oss-repos/express/test/res.type.js +0 -46
- package/tests/fixtures/corpus/oss-repos/express/test/res.vary.js +0 -90
- package/tests/fixtures/corpus/oss-repos/express/test/support/env.js +0 -3
- package/tests/fixtures/corpus/oss-repos/express/test/support/tmpl.js +0 -36
- package/tests/fixtures/corpus/oss-repos/express/test/support/utils.js +0 -86
- package/tests/fixtures/corpus/oss-repos/express/test/utils.js +0 -83
- package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/Dockerfile +0 -11
- package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/devcontainer.json +0 -21
- package/tests/fixtures/corpus/oss-repos/hono/.devcontainer/docker-compose.yml +0 -18
- package/tests/fixtures/corpus/oss-repos/hono/.eslintignore +0 -1
- package/tests/fixtures/corpus/oss-repos/hono/.eslintrc.cjs +0 -9
- package/tests/fixtures/corpus/oss-repos/hono/.gitpod.yml +0 -9
- package/tests/fixtures/corpus/oss-repos/hono/.prettierrc +0 -9
- package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-default.ts +0 -15
- package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/jsx-runtime-dom.ts +0 -15
- package/tests/fixtures/corpus/oss-repos/hono/.vitest.config/setup-vitest.ts +0 -47
- package/tests/fixtures/corpus/oss-repos/hono/LICENSE +0 -21
- package/tests/fixtures/corpus/oss-repos/hono/README.md +0 -91
- package/tests/fixtures/corpus/oss-repos/hono/build.ts +0 -80
- package/tests/fixtures/corpus/oss-repos/hono/bun.lockb +0 -0
- package/tests/fixtures/corpus/oss-repos/hono/bunfig.toml +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/codecov.yml +0 -13
- package/tests/fixtures/corpus/oss-repos/hono/docs/CODE_OF_CONDUCT.md +0 -128
- package/tests/fixtures/corpus/oss-repos/hono/docs/CONTRIBUTING.md +0 -62
- package/tests/fixtures/corpus/oss-repos/hono/docs/MIGRATION.md +0 -295
- 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 +0 -6
- 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 +0 -119
- package/tests/fixtures/corpus/oss-repos/hono/package.cjs.json +0 -3
- package/tests/fixtures/corpus/oss-repos/hono/package.json +0 -650
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/handler.ts +0 -492
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/index.ts +0 -13
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/aws-lambda/types.ts +0 -144
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/conninfo.ts +0 -28
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/index.ts +0 -9
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/serve-static.ts +0 -35
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/server.ts +0 -30
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/ssg.ts +0 -27
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/bun/websocket.ts +0 -110
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/handler.ts +0 -120
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-pages/index.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/conninfo.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/index.ts +0 -8
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static-module.ts +0 -12
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/serve-static.ts +0 -39
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/utils.ts +0 -50
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/cloudflare-workers/websocket.ts +0 -50
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/conninfo.ts +0 -17
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/deno.d.ts +0 -28
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/index.ts +0 -9
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/serve-static.ts +0 -40
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/ssg.ts +0 -27
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/deno/websocket.ts +0 -51
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/conninfo.ts +0 -15
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/handler.ts +0 -189
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/lambda-edge/index.ts +0 -14
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/handler.ts +0 -10
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/index.ts +0 -6
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/netlify/mod.ts +0 -1
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/handler.ts +0 -34
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/index.ts +0 -5
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/service-worker/types.ts +0 -14
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/conninfo.ts +0 -8
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/handler.ts +0 -9
- package/tests/fixtures/corpus/oss-repos/hono/src/adapter/vercel/index.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/client/client.ts +0 -214
- package/tests/fixtures/corpus/oss-repos/hono/src/client/index.ts +0 -14
- package/tests/fixtures/corpus/oss-repos/hono/src/client/types.ts +0 -182
- package/tests/fixtures/corpus/oss-repos/hono/src/client/utils.ts +0 -54
- package/tests/fixtures/corpus/oss-repos/hono/src/compose.ts +0 -94
- package/tests/fixtures/corpus/oss-repos/hono/src/context.ts +0 -917
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/accepts.ts +0 -84
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/accepts/index.ts +0 -6
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/adapter/index.ts +0 -85
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/index.ts +0 -6
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/conninfo/types.ts +0 -45
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/cookie/index.ts +0 -130
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/common.ts +0 -243
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/css/index.ts +0 -220
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/dev/index.ts +0 -79
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/factory/index.ts +0 -246
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/html/index.ts +0 -56
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/index.ts +0 -13
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/middleware.ts +0 -79
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/ssg.ts +0 -388
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/ssg/utils.ts +0 -71
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/index.ts +0 -9
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/sse.ts +0 -89
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/stream.ts +0 -36
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/streaming/text.ts +0 -15
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/testing/index.ts +0 -26
- package/tests/fixtures/corpus/oss-repos/hono/src/helper/websocket/index.ts +0 -57
- package/tests/fixtures/corpus/oss-repos/hono/src/hono-base.ts +0 -523
- package/tests/fixtures/corpus/oss-repos/hono/src/hono.ts +0 -34
- package/tests/fixtures/corpus/oss-repos/hono/src/http-exception.ts +0 -78
- package/tests/fixtures/corpus/oss-repos/hono/src/index.ts +0 -51
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/base.ts +0 -419
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/children.ts +0 -20
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/components.ts +0 -195
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/constants.ts +0 -5
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/context.ts +0 -50
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/client.ts +0 -89
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/components.ts +0 -39
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/context.ts +0 -52
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/css.ts +0 -246
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/hooks/index.ts +0 -91
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/index.ts +0 -159
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/intrinsic-element/components.ts +0 -398
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-dev-runtime.ts +0 -22
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/jsx-runtime.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/render.ts +0 -772
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/server.ts +0 -70
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/dom/utils.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/hooks/index.ts +0 -426
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/index.ts +0 -114
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/common.ts +0 -11
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-element/components.ts +0 -196
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/intrinsic-elements.ts +0 -924
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-dev-runtime.ts +0 -26
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/jsx-runtime.ts +0 -18
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/streaming.ts +0 -184
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/types.ts +0 -41
- package/tests/fixtures/corpus/oss-repos/hono/src/jsx/utils.ts +0 -36
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/basic-auth/index.ts +0 -128
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/bearer-auth/index.ts +0 -159
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/body-limit/index.ts +0 -115
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cache/index.ts +0 -127
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/combine/index.ts +0 -153
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/compress/index.ts +0 -79
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/context-storage/index.ts +0 -55
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/cors/index.ts +0 -141
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/csrf/index.ts +0 -90
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/etag/index.ts +0 -88
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/ip-restriction/index.ts +0 -178
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jsx-renderer/index.ts +0 -158
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/index.ts +0 -8
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/jwt/jwt.ts +0 -159
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/logger/index.ts +0 -93
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/method-override/index.ts +0 -146
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/powered-by/index.ts +0 -13
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/pretty-json/index.ts +0 -50
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/index.ts +0 -8
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/request-id/request-id.ts +0 -59
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/index.ts +0 -8
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/permissions-policy.ts +0 -86
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/secure-headers/secure-headers.ts +0 -319
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/serve-static/index.ts +0 -140
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timeout/index.ts +0 -58
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/index.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/timing/timing.ts +0 -225
- package/tests/fixtures/corpus/oss-repos/hono/src/middleware/trailing-slash/index.ts +0 -71
- package/tests/fixtures/corpus/oss-repos/hono/src/preset/quick.ts +0 -24
- package/tests/fixtures/corpus/oss-repos/hono/src/preset/tiny.ts +0 -20
- package/tests/fixtures/corpus/oss-repos/hono/src/request.ts +0 -403
- package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/index.ts +0 -6
- package/tests/fixtures/corpus/oss-repos/hono/src/router/linear-router/router.ts +0 -132
- package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/index.ts +0 -6
- package/tests/fixtures/corpus/oss-repos/hono/src/router/pattern-router/router.ts +0 -54
- package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/index.ts +0 -6
- package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/node.ts +0 -159
- package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/router.ts +0 -274
- package/tests/fixtures/corpus/oss-repos/hono/src/router/reg-exp-router/trie.ts +0 -74
- package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/index.ts +0 -6
- package/tests/fixtures/corpus/oss-repos/hono/src/router/smart-router/router.ts +0 -69
- package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/index.ts +0 -6
- package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/node.ts +0 -205
- package/tests/fixtures/corpus/oss-repos/hono/src/router/trie-router/router.ts +0 -28
- package/tests/fixtures/corpus/oss-repos/hono/src/router.ts +0 -103
- package/tests/fixtures/corpus/oss-repos/hono/src/types.ts +0 -2006
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/basic-auth.ts +0 -26
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/body.ts +0 -225
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/buffer.ts +0 -65
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/color.ts +0 -26
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/concurrent.ts +0 -55
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/cookie.ts +0 -230
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/crypto.ts +0 -65
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/encode.ts +0 -34
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/filepath.ts +0 -56
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/handler.ts +0 -15
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/html.ts +0 -182
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/http-status.ts +0 -69
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/ipaddr.ts +0 -113
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/index.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwa.ts +0 -23
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jws.ts +0 -226
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/jwt.ts +0 -114
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/types.ts +0 -83
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/jwt/utf8.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/mime.ts +0 -142
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/stream.ts +0 -96
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/types.ts +0 -102
- package/tests/fixtures/corpus/oss-repos/hono/src/utils/url.ts +0 -310
- package/tests/fixtures/corpus/oss-repos/hono/src/validator/index.ts +0 -7
- package/tests/fixtures/corpus/oss-repos/hono/src/validator/validator.ts +0 -151
- package/tests/fixtures/corpus/oss-repos/hono/tsconfig.build.json +0 -23
- package/tests/fixtures/corpus/oss-repos/hono/tsconfig.json +0 -28
- package/tests/fixtures/corpus/oss-repos/hono/vitest.config.ts +0 -34
- package/tests/fixtures/corpus/oss-repos/hono/yarn.lock +0 -6232
- package/tests/fixtures/documentation/api-reference.md +0 -412
- package/tests/fixtures/documentation/architecture.md +0 -214
- package/tests/fixtures/documentation/deployment-guide.md +0 -420
- package/tests/fixtures/github-readmes/express.md +0 -133
- package/tests/fixtures/github-readmes/nextjs.md +0 -106
- package/tests/fixtures/github-readmes/react.md +0 -74
- package/tests/fixtures/github-readmes/typescript.md +0 -93
- package/tests/fixtures/github-readmes/vite.md +0 -79
- package/tests/fixtures/queries/core.json +0 -125
- package/tests/fixtures/queries/extended.json +0 -427
- package/tests/fixtures/queries/generated/.gitkeep +0 -0
- package/tests/fixtures/test-server.ts +0 -268
- package/tests/helpers/performance-metrics.ts +0 -370
- package/tests/helpers/search-relevance.ts +0 -326
- package/tests/integration/cli-consistency.test.ts +0 -298
- package/tests/integration/cli.test.ts +0 -69
- package/tests/integration/e2e-workflow.test.ts +0 -614
- package/tests/integration/mcp.test.ts +0 -250
- package/tests/integration/python-bridge.test.ts +0 -193
- package/tests/integration/search-quality.test.ts +0 -720
- package/tests/integration/serve.test.ts +0 -260
- package/tests/integration/stress.test.ts +0 -326
- package/tests/mcp/server.test.ts +0 -15
- package/tests/scripts/schemas/evaluation.json +0 -44
- package/tests/scripts/schemas/query-generation.json +0 -21
- package/tests/services/code-unit.service.test.ts +0 -95
- package/tests/services/job.service.test.ts +0 -124
- package/tests/services/search.progressive-context.test.ts +0 -35
- package/tsconfig.json +0 -34
- package/tsup.config.ts +0 -15
- package/turndown-plugin-gfm.d.ts +0 -29
- package/vitest.config.ts +0 -90
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Markdown conversion utilities ported from slurp-ai
|
|
3
|
-
* Source: https://github.com/ratacat/slurp-ai
|
|
4
|
-
*
|
|
5
|
-
* These utilities handle complex documentation site patterns (MkDocs, Sphinx, etc.)
|
|
6
|
-
* and produce clean, well-formatted markdown.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import * as cheerio from 'cheerio';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Detect language from code element class names.
|
|
13
|
-
* Handles various class naming patterns from different highlighters.
|
|
14
|
-
*/
|
|
15
|
-
function detectLanguageFromClass(className: string | undefined): string {
|
|
16
|
-
if (className === undefined || className === '') return '';
|
|
17
|
-
|
|
18
|
-
// Common patterns: "language-python", "lang-js", "highlight-python", "python", "hljs language-python"
|
|
19
|
-
const patterns = [
|
|
20
|
-
/language-(\w+)/i,
|
|
21
|
-
/lang-(\w+)/i,
|
|
22
|
-
/highlight-(\w+)/i,
|
|
23
|
-
/hljs\s+(\w+)/i,
|
|
24
|
-
/^(\w+)$/i,
|
|
25
|
-
];
|
|
26
|
-
|
|
27
|
-
for (const pattern of patterns) {
|
|
28
|
-
const match = className.match(pattern);
|
|
29
|
-
if (match?.[1] !== undefined) {
|
|
30
|
-
const lang = match[1].toLowerCase();
|
|
31
|
-
// Filter out common non-language classes
|
|
32
|
-
if (!['hljs', 'highlight', 'code', 'pre', 'block', 'inline'].includes(lang)) {
|
|
33
|
-
return lang;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return '';
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Escape HTML special characters for safe embedding in HTML.
|
|
43
|
-
*/
|
|
44
|
-
function escapeHtml(text: string): string {
|
|
45
|
-
return text
|
|
46
|
-
.replace(/&/g, '&')
|
|
47
|
-
.replace(/</g, '<')
|
|
48
|
-
.replace(/>/g, '>')
|
|
49
|
-
.replace(/"/g, '"')
|
|
50
|
-
.replace(/'/g, ''');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Preprocess HTML to handle MkDocs/Material theme code blocks.
|
|
55
|
-
*
|
|
56
|
-
* MkDocs wraps code in tables for line numbers:
|
|
57
|
-
* <table><tbody><tr><td>line numbers</td><td><pre><code>code</code></pre></td></tr></tbody></table>
|
|
58
|
-
*
|
|
59
|
-
* This function converts them to standard <pre><code> blocks that Turndown handles correctly.
|
|
60
|
-
* Also strips syntax highlighting spans and empty anchors from code.
|
|
61
|
-
*/
|
|
62
|
-
export function preprocessHtmlForCodeBlocks(html: string): string {
|
|
63
|
-
if (!html || typeof html !== 'string') return html;
|
|
64
|
-
|
|
65
|
-
const $ = cheerio.load(html);
|
|
66
|
-
|
|
67
|
-
// Handle MkDocs/Material table-wrapped code blocks
|
|
68
|
-
$('table').each((_i, table) => {
|
|
69
|
-
const $table = $(table);
|
|
70
|
-
|
|
71
|
-
// Check if this table contains a code block
|
|
72
|
-
const $codeCell = $table.find('td pre code, td div pre code');
|
|
73
|
-
|
|
74
|
-
if ($codeCell.length > 0) {
|
|
75
|
-
// This is a code block table - extract the code
|
|
76
|
-
const $pre = $codeCell.closest('pre');
|
|
77
|
-
const $code = $codeCell.first();
|
|
78
|
-
|
|
79
|
-
// Get language from class
|
|
80
|
-
let language = detectLanguageFromClass($code.attr('class'));
|
|
81
|
-
if (!language) {
|
|
82
|
-
language = detectLanguageFromClass($pre.attr('class'));
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Get the text content, stripping all inner HTML tags
|
|
86
|
-
const codeText = $code.text();
|
|
87
|
-
|
|
88
|
-
// Create a clean pre > code block
|
|
89
|
-
const cleanPre = `<pre><code class="language-${language}">${escapeHtml(codeText)}</code></pre>`;
|
|
90
|
-
|
|
91
|
-
// Replace the entire table with the clean code block
|
|
92
|
-
$table.replaceWith(cleanPre);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
// Strip empty anchor tags used for line numbers
|
|
97
|
-
$('pre a, code a').each((_i, anchor) => {
|
|
98
|
-
const $anchor = $(anchor);
|
|
99
|
-
if (!$anchor.text().trim()) {
|
|
100
|
-
$anchor.remove();
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
// Strip syntax highlighting spans inside code blocks, keeping only text
|
|
105
|
-
$('pre span, code span').each((_i, span) => {
|
|
106
|
-
const $span = $(span);
|
|
107
|
-
$span.replaceWith($span.text());
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
// Handle standalone pre blocks that might have spans/anchors
|
|
111
|
-
$('pre').each((_i, pre) => {
|
|
112
|
-
const $pre = $(pre);
|
|
113
|
-
// If this pre has a code child, it was already processed
|
|
114
|
-
if ($pre.find('code').length === 0) {
|
|
115
|
-
// Direct pre without code - get text content
|
|
116
|
-
const text = $pre.text();
|
|
117
|
-
const lang = detectLanguageFromClass($pre.attr('class'));
|
|
118
|
-
$pre.html(`<code class="language-${lang}">${escapeHtml(text)}</code>`);
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
return $.html();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Apply comprehensive cleanup rules to markdown content.
|
|
127
|
-
*
|
|
128
|
-
* Formatting rules:
|
|
129
|
-
* - Double newlines between paragraphs and headings
|
|
130
|
-
* - Double newlines before lists when preceded by normal text
|
|
131
|
-
* - Single newlines between list items
|
|
132
|
-
* - No blank lines inside code blocks
|
|
133
|
-
*/
|
|
134
|
-
export function cleanupMarkdown(markdown: string): string {
|
|
135
|
-
if (!markdown) return '';
|
|
136
|
-
|
|
137
|
-
const trimmed = markdown.trim();
|
|
138
|
-
if (trimmed === '') return '';
|
|
139
|
-
|
|
140
|
-
let result = trimmed;
|
|
141
|
-
|
|
142
|
-
// 0. Fix broken headings where ## is on its own line followed by the text
|
|
143
|
-
// Pattern: "## \n\nSome text" → "## Some text"
|
|
144
|
-
result = result.replace(/^(#{1,6})\s*\n\n+(\S[^\n]*)/gm, '$1 $2');
|
|
145
|
-
|
|
146
|
-
// 0.5. Normalize multiple spaces after heading markers to single space
|
|
147
|
-
// Pattern: "## Subtitle" → "## Subtitle"
|
|
148
|
-
result = result.replace(/(#{1,6})\s{2,}/g, '$1 ');
|
|
149
|
-
|
|
150
|
-
// 1. Fix navigation links with excessive whitespace
|
|
151
|
-
result = result.replace(/\*\s+\[\s*([^\n]+?)\s*\]\(([^)]+)\)/g, '* [$1]($2)');
|
|
152
|
-
|
|
153
|
-
// 2. Handle headings with specific newline requirements
|
|
154
|
-
|
|
155
|
-
// Text followed by heading should have a single newline between them (no blank line)
|
|
156
|
-
result = result.replace(/([^\n])\n\n+(#\s)/g, '$1\n$2');
|
|
157
|
-
|
|
158
|
-
// Add double newlines between text and next heading
|
|
159
|
-
result = result.replace(/(Some text\.)\n(##\s)/g, '$1\n\n$2');
|
|
160
|
-
|
|
161
|
-
// Double newlines after a heading when followed by text
|
|
162
|
-
result = result.replace(/(#{1,6}\s[^\n]+)\n([^#\n])/g, '$1\n\n$2');
|
|
163
|
-
|
|
164
|
-
// Double newlines between headings
|
|
165
|
-
result = result.replace(/(#{1,6}\s[^\n]+)\n(#{1,6}\s)/g, '$1\n\n$2');
|
|
166
|
-
|
|
167
|
-
// 3. Lists - ensure all list items have single newlines only
|
|
168
|
-
result = result.replace(/(\* Item 1)\n\n+(\* Item 2)\n\n+(\* Item 3)/g, '$1\n$2\n$3');
|
|
169
|
-
|
|
170
|
-
// 3.5. General list item spacing - ensure single newlines between list items
|
|
171
|
-
result = result.replace(/(^\*\s[^\n]+)\n{2,}(^\*\s)/gm, '$1\n$2');
|
|
172
|
-
|
|
173
|
-
// 4. Clean up excessive blank lines (3+ newlines → 2 newlines)
|
|
174
|
-
result = result.replace(/\n{3,}/g, '\n\n');
|
|
175
|
-
|
|
176
|
-
// 5. Code blocks - no blank lines after opening or before closing backticks
|
|
177
|
-
result = result.replace(/(```[^\n]*)\n\n+/g, '$1\n');
|
|
178
|
-
result = result.replace(/\n\n+```/g, '\n```');
|
|
179
|
-
|
|
180
|
-
// 6. Remove empty list items
|
|
181
|
-
result = result.replace(/\*\s*\n\s*\*/g, '*');
|
|
182
|
-
|
|
183
|
-
// 7. Strip any remaining HTML tags that leaked through (common in MkDocs/Material)
|
|
184
|
-
// Remove table structure tags
|
|
185
|
-
result = result.replace(/<\/?table[^>]*>/gi, '');
|
|
186
|
-
result = result.replace(/<\/?tbody[^>]*>/gi, '');
|
|
187
|
-
result = result.replace(/<\/?thead[^>]*>/gi, '');
|
|
188
|
-
result = result.replace(/<\/?tr[^>]*>/gi, '');
|
|
189
|
-
result = result.replace(/<\/?td[^>]*>/gi, '');
|
|
190
|
-
result = result.replace(/<\/?th[^>]*>/gi, '');
|
|
191
|
-
|
|
192
|
-
// Remove empty anchor tags: <a></a> or <a id="..."></a>
|
|
193
|
-
result = result.replace(/<a[^>]*><\/a>/gi, '');
|
|
194
|
-
|
|
195
|
-
// Remove span tags (syntax highlighting remnants)
|
|
196
|
-
result = result.replace(/<\/?span[^>]*>/gi, '');
|
|
197
|
-
|
|
198
|
-
// Remove div tags
|
|
199
|
-
result = result.replace(/<\/?div[^>]*>/gi, '');
|
|
200
|
-
|
|
201
|
-
// Remove pre/code tags that leaked
|
|
202
|
-
result = result.replace(/<\/?pre[^>]*>/gi, '');
|
|
203
|
-
result = result.replace(/<\/?code[^>]*>/gi, '');
|
|
204
|
-
|
|
205
|
-
// 8. Remove empty markdown links: [](url) and []()
|
|
206
|
-
result = result.replace(/\[\]\([^)]*\)/g, '');
|
|
207
|
-
|
|
208
|
-
// 9. Remove codelineno references that leaked into content
|
|
209
|
-
// Pattern: [](_file.md#__codelineno-N-M)
|
|
210
|
-
result = result.replace(/\[\]\([^)]*#__codelineno-[^)]+\)/g, '');
|
|
211
|
-
|
|
212
|
-
// Also clean inline codelineno patterns
|
|
213
|
-
result = result.replace(/\[?\]?\([^)]*#__codelineno-[^)]*\)/g, '');
|
|
214
|
-
|
|
215
|
-
// 10. Clean up any double-escaped HTML entities that might result
|
|
216
|
-
result = result.replace(/&lt;/g, '<');
|
|
217
|
-
result = result.replace(/&gt;/g, '>');
|
|
218
|
-
result = result.replace(/&amp;/g, '&');
|
|
219
|
-
|
|
220
|
-
// 11. Final cleanup - normalize excessive whitespace from removed tags
|
|
221
|
-
result = result.replace(/\n{3,}/g, '\n\n');
|
|
222
|
-
result = result.replace(/[ \t]+\n/g, '\n');
|
|
223
|
-
|
|
224
|
-
return result;
|
|
225
|
-
}
|
package/src/crawl/schemas.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
|
|
3
|
-
// Schema for crawl4ai link objects (matches CrawledLink interface)
|
|
4
|
-
// This validates the actual runtime structure from Python
|
|
5
|
-
export const CrawledLinkSchema = z.object({
|
|
6
|
-
href: z.string(),
|
|
7
|
-
text: z.string(),
|
|
8
|
-
title: z.string().optional(),
|
|
9
|
-
base_domain: z.string().optional(),
|
|
10
|
-
head_data: z.unknown().optional(),
|
|
11
|
-
head_extraction_status: z.unknown().optional(),
|
|
12
|
-
head_extraction_error: z.unknown().optional(),
|
|
13
|
-
intrinsic_score: z.number().optional(),
|
|
14
|
-
contextual_score: z.unknown().optional(),
|
|
15
|
-
total_score: z.unknown().optional(),
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
// Schema for individual crawl page result
|
|
19
|
-
const CrawlPageSchema = z.object({
|
|
20
|
-
url: z.string(),
|
|
21
|
-
title: z.string(),
|
|
22
|
-
content: z.string(),
|
|
23
|
-
links: z.array(z.string()),
|
|
24
|
-
crawledAt: z.string(),
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
// Schema for full crawl response
|
|
28
|
-
export const CrawlResultSchema = z.object({
|
|
29
|
-
pages: z.array(CrawlPageSchema),
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
// Schema for headless fetch response
|
|
33
|
-
// Supports both link objects and plain strings
|
|
34
|
-
export const HeadlessResultSchema = z.object({
|
|
35
|
-
html: z.string(),
|
|
36
|
-
markdown: z.string(),
|
|
37
|
-
links: z.array(z.union([CrawledLinkSchema, z.string()])),
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
// Type exports derived from schemas (single source of truth)
|
|
41
|
-
export type CrawlResult = z.infer<typeof CrawlResultSchema>;
|
|
42
|
-
export type HeadlessResult = z.infer<typeof HeadlessResultSchema>;
|
|
43
|
-
export type CrawledLink = z.infer<typeof CrawledLinkSchema>;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Validates a headless fetch response from Python bridge.
|
|
47
|
-
* Throws ZodError if the response doesn't match the expected schema.
|
|
48
|
-
*
|
|
49
|
-
* @param data - Raw data from Python bridge
|
|
50
|
-
* @returns Validated HeadlessResult
|
|
51
|
-
* @throws {z.ZodError} If validation fails
|
|
52
|
-
*/
|
|
53
|
-
export function validateHeadlessResult(data: unknown): HeadlessResult {
|
|
54
|
-
return HeadlessResultSchema.parse(data);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Validates a crawl response from Python bridge.
|
|
59
|
-
* Throws ZodError if the response doesn't match the expected schema.
|
|
60
|
-
*
|
|
61
|
-
* @param data - Raw data from Python bridge
|
|
62
|
-
* @returns Validated CrawlResult
|
|
63
|
-
* @throws {z.ZodError} If validation fails
|
|
64
|
-
*/
|
|
65
|
-
export function validateCrawlResult(data: unknown): CrawlResult {
|
|
66
|
-
return CrawlResultSchema.parse(data);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Schema for Python AST parsing response
|
|
70
|
-
const MethodInfoSchema = z.object({
|
|
71
|
-
name: z.string(),
|
|
72
|
-
async: z.boolean(),
|
|
73
|
-
signature: z.string(),
|
|
74
|
-
startLine: z.number(),
|
|
75
|
-
endLine: z.number(),
|
|
76
|
-
calls: z.array(z.string()),
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
const CodeNodeSchema = z.object({
|
|
80
|
-
type: z.enum(['function', 'class']),
|
|
81
|
-
name: z.string(),
|
|
82
|
-
exported: z.boolean(),
|
|
83
|
-
startLine: z.number(),
|
|
84
|
-
endLine: z.number(),
|
|
85
|
-
async: z.boolean().optional(),
|
|
86
|
-
signature: z.string().optional(),
|
|
87
|
-
calls: z.array(z.string()).optional(),
|
|
88
|
-
methods: z.array(MethodInfoSchema).optional(),
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
const ImportInfoSchema = z.object({
|
|
92
|
-
source: z.string(),
|
|
93
|
-
imported: z.string(),
|
|
94
|
-
alias: z.string().optional().nullable(),
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
export const ParsePythonResultSchema = z.object({
|
|
98
|
-
nodes: z.array(CodeNodeSchema),
|
|
99
|
-
imports: z.array(ImportInfoSchema),
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
export type ParsePythonResult = z.infer<typeof ParsePythonResultSchema>;
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Validates a Python AST parsing response from Python bridge.
|
|
106
|
-
* Throws ZodError if the response doesn't match the expected schema.
|
|
107
|
-
*
|
|
108
|
-
* @param data - Raw data from Python bridge
|
|
109
|
-
* @returns Validated ParsePythonResult
|
|
110
|
-
* @throws {z.ZodError} If validation fails
|
|
111
|
-
*/
|
|
112
|
-
export function validateParsePythonResult(data: unknown): ParsePythonResult {
|
|
113
|
-
return ParsePythonResultSchema.parse(data);
|
|
114
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeAll } from 'vitest';
|
|
2
|
-
import { EmbeddingEngine } from './embeddings.js';
|
|
3
|
-
|
|
4
|
-
describe('EmbeddingEngine', () => {
|
|
5
|
-
let engine: EmbeddingEngine;
|
|
6
|
-
|
|
7
|
-
beforeAll(async () => {
|
|
8
|
-
engine = new EmbeddingEngine();
|
|
9
|
-
await engine.initialize();
|
|
10
|
-
}, 60000); // Allow time for model download
|
|
11
|
-
|
|
12
|
-
it('generates embeddings for text', async () => {
|
|
13
|
-
const embedding = await engine.embed('Hello world');
|
|
14
|
-
expect(embedding).toHaveLength(384);
|
|
15
|
-
expect(embedding.every((n) => typeof n === 'number')).toBe(true);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
it('generates batch embeddings', async () => {
|
|
19
|
-
const texts = ['Hello', 'World', 'Test'];
|
|
20
|
-
const embeddings = await engine.embedBatch(texts);
|
|
21
|
-
expect(embeddings).toHaveLength(3);
|
|
22
|
-
expect(embeddings.every((e) => e.length === 384)).toBe(true);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
it('produces similar embeddings for similar text', async () => {
|
|
26
|
-
const emb1 = await engine.embed('The cat sat on the mat');
|
|
27
|
-
const emb2 = await engine.embed('A cat was sitting on a rug');
|
|
28
|
-
const emb3 = await engine.embed('Quantum physics is complex');
|
|
29
|
-
|
|
30
|
-
const sim12 = cosineSimilarity(emb1, emb2);
|
|
31
|
-
const sim13 = cosineSimilarity(emb1, emb3);
|
|
32
|
-
|
|
33
|
-
expect(sim12).toBeGreaterThan(sim13);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it('returns correct dimensions', async () => {
|
|
37
|
-
expect(engine.getDimensions()).toBe(384);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it('handles embed when extractor is not initialized', async () => {
|
|
41
|
-
// Create new engine without initializing
|
|
42
|
-
const newEngine = new EmbeddingEngine();
|
|
43
|
-
const embedding = await newEngine.embed('Test');
|
|
44
|
-
expect(embedding).toHaveLength(384);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
it('supports custom model dimensions', async () => {
|
|
48
|
-
const customEngine = new EmbeddingEngine('Xenova/all-MiniLM-L6-v2', 512);
|
|
49
|
-
expect(customEngine.getDimensions()).toBe(512);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('skips initialization when already initialized', async () => {
|
|
53
|
-
// Engine is already initialized from beforeAll
|
|
54
|
-
// Calling initialize again should be a no-op
|
|
55
|
-
await engine.initialize();
|
|
56
|
-
const embedding = await engine.embed('test');
|
|
57
|
-
expect(embedding).toHaveLength(384);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
it('handles large batch with multiple chunks', async () => {
|
|
61
|
-
// Create enough texts to trigger multiple batch iterations (BATCH_SIZE = 32)
|
|
62
|
-
const texts = Array.from({ length: 40 }, (_, i) => `Text number ${String(i)}`);
|
|
63
|
-
const embeddings = await engine.embedBatch(texts);
|
|
64
|
-
expect(embeddings).toHaveLength(40);
|
|
65
|
-
expect(embeddings.every((e) => e.length === 384)).toBe(true);
|
|
66
|
-
}, 60000);
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
function cosineSimilarity(a: number[], b: number[]): number {
|
|
70
|
-
let dotProduct = 0;
|
|
71
|
-
let normA = 0;
|
|
72
|
-
let normB = 0;
|
|
73
|
-
for (let i = 0; i < a.length; i++) {
|
|
74
|
-
dotProduct += a[i]! * b[i]!;
|
|
75
|
-
normA += a[i]! * a[i]!;
|
|
76
|
-
normB += b[i]! * b[i]!;
|
|
77
|
-
}
|
|
78
|
-
return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
|
|
79
|
-
}
|
package/src/db/embeddings.ts
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { homedir } from 'node:os';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { pipeline, env, type FeatureExtractionPipeline } from '@huggingface/transformers';
|
|
4
|
-
|
|
5
|
-
// Set cache directory to ~/.cache/huggingface-transformers (outside node_modules)
|
|
6
|
-
// This allows CI caching and prevents model re-downloads on each npm install
|
|
7
|
-
env.cacheDir = join(homedir(), '.cache', 'huggingface-transformers');
|
|
8
|
-
|
|
9
|
-
export class EmbeddingEngine {
|
|
10
|
-
private extractor: FeatureExtractionPipeline | null = null;
|
|
11
|
-
private readonly modelName: string;
|
|
12
|
-
private readonly dimensions: number;
|
|
13
|
-
|
|
14
|
-
constructor(modelName = 'Xenova/all-MiniLM-L6-v2', dimensions = 384) {
|
|
15
|
-
this.modelName = modelName;
|
|
16
|
-
this.dimensions = dimensions;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
async initialize(): Promise<void> {
|
|
20
|
-
if (this.extractor !== null) return;
|
|
21
|
-
// @ts-expect-error TS2590: TypeScript can't represent the complex union type from pipeline()
|
|
22
|
-
// This is a known limitation with @huggingface/transformers overloaded signatures
|
|
23
|
-
this.extractor = await pipeline('feature-extraction', this.modelName, {
|
|
24
|
-
dtype: 'fp32',
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
async embed(text: string): Promise<number[]> {
|
|
29
|
-
if (this.extractor === null) {
|
|
30
|
-
await this.initialize();
|
|
31
|
-
}
|
|
32
|
-
if (this.extractor === null) {
|
|
33
|
-
throw new Error('Failed to initialize embedding model');
|
|
34
|
-
}
|
|
35
|
-
const output = await this.extractor(text, {
|
|
36
|
-
pooling: 'mean',
|
|
37
|
-
normalize: true,
|
|
38
|
-
});
|
|
39
|
-
const result = Array.from(output.data);
|
|
40
|
-
return result.map((v) => Number(v));
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async embedBatch(texts: string[]): Promise<number[][]> {
|
|
44
|
-
const BATCH_SIZE = 32; // Process 32 chunks in parallel
|
|
45
|
-
const results: number[][] = [];
|
|
46
|
-
|
|
47
|
-
for (let i = 0; i < texts.length; i += BATCH_SIZE) {
|
|
48
|
-
const batch = texts.slice(i, i + BATCH_SIZE);
|
|
49
|
-
|
|
50
|
-
// Process batch in parallel using Promise.all
|
|
51
|
-
const batchResults = await Promise.all(batch.map((text) => this.embed(text)));
|
|
52
|
-
|
|
53
|
-
results.push(...batchResults);
|
|
54
|
-
|
|
55
|
-
// Small delay between batches to prevent memory issues
|
|
56
|
-
if (i + BATCH_SIZE < texts.length) {
|
|
57
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return results;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
getDimensions(): number {
|
|
65
|
-
return this.dimensions;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Dispose the embedding pipeline to free resources.
|
|
70
|
-
* Should be called before process exit to prevent ONNX runtime cleanup issues on macOS.
|
|
71
|
-
*/
|
|
72
|
-
async dispose(): Promise<void> {
|
|
73
|
-
if (this.extractor !== null) {
|
|
74
|
-
await this.extractor.dispose();
|
|
75
|
-
this.extractor = null;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
package/src/db/index.ts
DELETED