cgraphx 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +243 -0
- package/dist/.claude-template/commands/my-commit.md +9 -0
- package/dist/.claude-template/commands/my-query.md +4 -0
- package/dist/.claude-template/hooks/context-monitor/context-monitor.cjs +216 -0
- package/dist/.claude-template/plugins/claude-hud/dist/claude-config-dir.d.ts +4 -0
- package/dist/.claude-template/plugins/claude-hud/dist/claude-config-dir.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/claude-config-dir.js +24 -0
- package/dist/.claude-template/plugins/claude-hud/dist/claude-config-dir.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/config-reader.d.ts +8 -0
- package/dist/.claude-template/plugins/claude-hud/dist/config-reader.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/config-reader.js +204 -0
- package/dist/.claude-template/plugins/claude-hud/dist/config-reader.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/config.d.ts +46 -0
- package/dist/.claude-template/plugins/claude-hud/dist/config.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/config.js +220 -0
- package/dist/.claude-template/plugins/claude-hud/dist/config.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/constants.d.ts +10 -0
- package/dist/.claude-template/plugins/claude-hud/dist/constants.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/constants.js +10 -0
- package/dist/.claude-template/plugins/claude-hud/dist/constants.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/debug.d.ts +6 -0
- package/dist/.claude-template/plugins/claude-hud/dist/debug.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/debug.js +15 -0
- package/dist/.claude-template/plugins/claude-hud/dist/debug.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/extra-cmd.d.ts +23 -0
- package/dist/.claude-template/plugins/claude-hud/dist/extra-cmd.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/extra-cmd.js +103 -0
- package/dist/.claude-template/plugins/claude-hud/dist/extra-cmd.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/git.d.ts +16 -0
- package/dist/.claude-template/plugins/claude-hud/dist/git.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/git.js +86 -0
- package/dist/.claude-template/plugins/claude-hud/dist/git.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/index.d.ts +24 -0
- package/dist/.claude-template/plugins/claude-hud/dist/index.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/index.js +97 -0
- package/dist/.claude-template/plugins/claude-hud/dist/index.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/agents-line.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/agents-line.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/agents-line.js +44 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/agents-line.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/colors.d.ts +12 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/colors.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/colors.js +58 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/colors.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/index.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/index.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/index.js +379 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/index.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/environment.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/environment.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/environment.js +30 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/environment.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/identity.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/identity.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/identity.js +52 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/identity.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/index.d.ts +5 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/index.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/index.js +5 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/index.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/project.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/project.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/project.js +74 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/project.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/usage.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/usage.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/usage.js +92 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/lines/usage.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/session-line.d.ts +7 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/session-line.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/session-line.js +247 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/session-line.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/todos-line.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/todos-line.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/todos-line.js +25 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/todos-line.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/tools-line.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/tools-line.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/tools-line.js +43 -0
- package/dist/.claude-template/plugins/claude-hud/dist/render/tools-line.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/speed-tracker.d.ts +7 -0
- package/dist/.claude-template/plugins/claude-hud/dist/speed-tracker.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/speed-tracker.js +62 -0
- package/dist/.claude-template/plugins/claude-hud/dist/speed-tracker.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/stdin.d.ts +9 -0
- package/dist/.claude-template/plugins/claude-hud/dist/stdin.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/stdin.js +136 -0
- package/dist/.claude-template/plugins/claude-hud/dist/stdin.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/transcript.d.ts +3 -0
- package/dist/.claude-template/plugins/claude-hud/dist/transcript.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/transcript.js +189 -0
- package/dist/.claude-template/plugins/claude-hud/dist/transcript.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/types.d.ts +79 -0
- package/dist/.claude-template/plugins/claude-hud/dist/types.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/types.js +5 -0
- package/dist/.claude-template/plugins/claude-hud/dist/types.js.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/usage-api.d.ts +59 -0
- package/dist/.claude-template/plugins/claude-hud/dist/usage-api.d.ts.map +1 -0
- package/dist/.claude-template/plugins/claude-hud/dist/usage-api.js +733 -0
- package/dist/.claude-template/plugins/claude-hud/dist/usage-api.js.map +1 -0
- package/dist/.claude-template/skills/cgraphx/SKILL.md +143 -0
- package/dist/.claude-template/skills/cgraphx/agent-prompt.md +56 -0
- package/dist/.claude-template/skills/clarify-requirements/SKILL.md +425 -0
- package/dist/.claude-template/skills/code-impact-api/SKILL.md +143 -0
- package/dist/.claude-template/skills/code-impact-api/agent-prompt.md +51 -0
- package/dist/.claude-template/skills/code-impact-docgen/SKILL.md +366 -0
- package/dist/.claude-template/skills/code-impact-docgen/template-business-html.md +242 -0
- package/dist/.claude-template/skills/code-impact-docgen/template-business-md.md +107 -0
- package/dist/.claude-template/skills/code-impact-docgen/template-technical-html.md +205 -0
- package/dist/.claude-template/skills/code-impact-docgen/template-technical-md.md +155 -0
- package/dist/.claude-template/skills/code-impact-init/SKILL.md +800 -0
- package/dist/.claude-template/skills/code-impact-markdown/SKILL.md +345 -0
- package/dist/.claude-template/skills/code-impact-markdown/template-guide.md +68 -0
- package/dist/.claude-template/skills/code-impact-markdown/template-memory.md +82 -0
- package/dist/.claude-template/skills/code-impact-markdown/template-runbook.md +58 -0
- package/dist/.claude-template/skills/db-query/SKILL.md +166 -0
- package/dist/.claude-template/skills/db-query/agent-prompt.md +55 -0
- package/dist/.claude-template/skills/developer-timeline/SKILL.md +302 -0
- package/dist/.claude-template/skills/developer-timeline/demo-single-page-report.html +657 -0
- package/dist/.claude-template/skills/implementation/SKILL.md +136 -0
- package/dist/.claude-template/skills/subagent-implement/SKILL.md +225 -0
- package/dist/.claude-template/skills/subagent-implement/implementer-prompt.md +127 -0
- package/dist/.claude-template/skills/subagent-implement/quality-reviewer-prompt.md +130 -0
- package/dist/.claude-template/skills/subagent-implement/spec-reviewer-prompt.md +112 -0
- package/dist/.claude-template/skills/write-plan/SKILL.md +322 -0
- package/dist/.claude-template/skills/write-plan/plan-document-reviewer-prompt.md +134 -0
- package/dist/.claude-template/skills/write-prd/SKILL.md +242 -0
- package/dist/.claude-template/skills/write-spec/SKILL.md +278 -0
- package/dist/bin/codegraph.d.ts +26 -0
- package/dist/bin/codegraph.d.ts.map +1 -0
- package/dist/bin/codegraph.js +2014 -0
- package/dist/bin/codegraph.js.map +1 -0
- package/dist/bin/fatal-handler.d.ts +20 -0
- package/dist/bin/fatal-handler.d.ts.map +1 -0
- package/dist/bin/fatal-handler.js +118 -0
- package/dist/bin/fatal-handler.js.map +1 -0
- package/dist/bin/node-version-check.d.ts +51 -0
- package/dist/bin/node-version-check.d.ts.map +1 -0
- package/dist/bin/node-version-check.js +114 -0
- package/dist/bin/node-version-check.js.map +1 -0
- package/dist/bin/uninstall.d.ts +14 -0
- package/dist/bin/uninstall.d.ts.map +1 -0
- package/dist/bin/uninstall.js +36 -0
- package/dist/bin/uninstall.js.map +1 -0
- package/dist/context/formatter.d.ts +30 -0
- package/dist/context/formatter.d.ts.map +1 -0
- package/dist/context/formatter.js +263 -0
- package/dist/context/formatter.js.map +1 -0
- package/dist/context/index.d.ts +119 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +1296 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/markers.d.ts +19 -0
- package/dist/context/markers.d.ts.map +1 -0
- package/dist/context/markers.js +22 -0
- package/dist/context/markers.js.map +1 -0
- package/dist/db/index.d.ts +122 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +296 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +44 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +140 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/queries.d.ts +401 -0
- package/dist/db/queries.d.ts.map +1 -0
- package/dist/db/queries.js +1591 -0
- package/dist/db/queries.js.map +1 -0
- package/dist/db/schema.sql +152 -0
- package/dist/db/sqlite-adapter.d.ts +53 -0
- package/dist/db/sqlite-adapter.d.ts.map +1 -0
- package/dist/db/sqlite-adapter.js +117 -0
- package/dist/db/sqlite-adapter.js.map +1 -0
- package/dist/dbquery/cli.d.ts +17 -0
- package/dist/dbquery/cli.d.ts.map +1 -0
- package/dist/dbquery/cli.js +229 -0
- package/dist/dbquery/cli.js.map +1 -0
- package/dist/dbquery/config.d.ts +38 -0
- package/dist/dbquery/config.d.ts.map +1 -0
- package/dist/dbquery/config.js +244 -0
- package/dist/dbquery/config.js.map +1 -0
- package/dist/dbquery/constants.d.ts +40 -0
- package/dist/dbquery/constants.d.ts.map +1 -0
- package/dist/dbquery/constants.js +65 -0
- package/dist/dbquery/constants.js.map +1 -0
- package/dist/dbquery/drivers/mysql.d.ts +15 -0
- package/dist/dbquery/drivers/mysql.d.ts.map +1 -0
- package/dist/dbquery/drivers/mysql.js +102 -0
- package/dist/dbquery/drivers/mysql.js.map +1 -0
- package/dist/dbquery/drivers/postgres.d.ts +16 -0
- package/dist/dbquery/drivers/postgres.d.ts.map +1 -0
- package/dist/dbquery/drivers/postgres.js +105 -0
- package/dist/dbquery/drivers/postgres.js.map +1 -0
- package/dist/dbquery/errors.d.ts +40 -0
- package/dist/dbquery/errors.d.ts.map +1 -0
- package/dist/dbquery/errors.js +85 -0
- package/dist/dbquery/errors.js.map +1 -0
- package/dist/dbquery/executor.d.ts +30 -0
- package/dist/dbquery/executor.d.ts.map +1 -0
- package/dist/dbquery/executor.js +243 -0
- package/dist/dbquery/executor.js.map +1 -0
- package/dist/dbquery/format.d.ts +18 -0
- package/dist/dbquery/format.d.ts.map +1 -0
- package/dist/dbquery/format.js +174 -0
- package/dist/dbquery/format.js.map +1 -0
- package/dist/dbquery/index.d.ts +10 -0
- package/dist/dbquery/index.d.ts.map +1 -0
- package/dist/dbquery/index.js +23 -0
- package/dist/dbquery/index.js.map +1 -0
- package/dist/dbquery/init.d.ts +33 -0
- package/dist/dbquery/init.d.ts.map +1 -0
- package/dist/dbquery/init.js +125 -0
- package/dist/dbquery/init.js.map +1 -0
- package/dist/dbquery/logging.d.ts +22 -0
- package/dist/dbquery/logging.d.ts.map +1 -0
- package/dist/dbquery/logging.js +140 -0
- package/dist/dbquery/logging.js.map +1 -0
- package/dist/dbquery/mcp-tools.d.ts +29 -0
- package/dist/dbquery/mcp-tools.d.ts.map +1 -0
- package/dist/dbquery/mcp-tools.js +206 -0
- package/dist/dbquery/mcp-tools.js.map +1 -0
- package/dist/dbquery/queries.d.ts +31 -0
- package/dist/dbquery/queries.d.ts.map +1 -0
- package/dist/dbquery/queries.js +160 -0
- package/dist/dbquery/queries.js.map +1 -0
- package/dist/dbquery/safety.d.ts +35 -0
- package/dist/dbquery/safety.d.ts.map +1 -0
- package/dist/dbquery/safety.js +306 -0
- package/dist/dbquery/safety.js.map +1 -0
- package/dist/dbquery/types.d.ts +152 -0
- package/dist/dbquery/types.d.ts.map +1 -0
- package/dist/dbquery/types.js +10 -0
- package/dist/dbquery/types.js.map +1 -0
- package/dist/directory.d.ts +147 -0
- package/dist/directory.d.ts.map +1 -0
- package/dist/directory.js +523 -0
- package/dist/directory.js.map +1 -0
- package/dist/errors.d.ts +136 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +219 -0
- package/dist/errors.js.map +1 -0
- package/dist/extraction/astro-extractor.d.ts +79 -0
- package/dist/extraction/astro-extractor.d.ts.map +1 -0
- package/dist/extraction/astro-extractor.js +320 -0
- package/dist/extraction/astro-extractor.js.map +1 -0
- package/dist/extraction/dfm-extractor.d.ts +31 -0
- package/dist/extraction/dfm-extractor.d.ts.map +1 -0
- package/dist/extraction/dfm-extractor.js +151 -0
- package/dist/extraction/dfm-extractor.js.map +1 -0
- package/dist/extraction/extraction-version.d.ts +25 -0
- package/dist/extraction/extraction-version.d.ts.map +1 -0
- package/dist/extraction/extraction-version.js +28 -0
- package/dist/extraction/extraction-version.js.map +1 -0
- package/dist/extraction/function-ref.d.ts +118 -0
- package/dist/extraction/function-ref.d.ts.map +1 -0
- package/dist/extraction/function-ref.js +727 -0
- package/dist/extraction/function-ref.js.map +1 -0
- package/dist/extraction/generated-detection.d.ts +30 -0
- package/dist/extraction/generated-detection.d.ts.map +1 -0
- package/dist/extraction/generated-detection.js +83 -0
- package/dist/extraction/generated-detection.js.map +1 -0
- package/dist/extraction/grammars.d.ts +114 -0
- package/dist/extraction/grammars.d.ts.map +1 -0
- package/dist/extraction/grammars.js +477 -0
- package/dist/extraction/grammars.js.map +1 -0
- package/dist/extraction/index.d.ts +175 -0
- package/dist/extraction/index.d.ts.map +1 -0
- package/dist/extraction/index.js +1887 -0
- package/dist/extraction/index.js.map +1 -0
- package/dist/extraction/languages/c-cpp.d.ts +12 -0
- package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
- package/dist/extraction/languages/c-cpp.js +275 -0
- package/dist/extraction/languages/c-cpp.js.map +1 -0
- package/dist/extraction/languages/csharp.d.ts +25 -0
- package/dist/extraction/languages/csharp.d.ts.map +1 -0
- package/dist/extraction/languages/csharp.js +175 -0
- package/dist/extraction/languages/csharp.js.map +1 -0
- package/dist/extraction/languages/dart.d.ts +3 -0
- package/dist/extraction/languages/dart.d.ts.map +1 -0
- package/dist/extraction/languages/dart.js +374 -0
- package/dist/extraction/languages/dart.js.map +1 -0
- package/dist/extraction/languages/go.d.ts +3 -0
- package/dist/extraction/languages/go.d.ts.map +1 -0
- package/dist/extraction/languages/go.js +111 -0
- package/dist/extraction/languages/go.js.map +1 -0
- package/dist/extraction/languages/index.d.ts +10 -0
- package/dist/extraction/languages/index.d.ts.map +1 -0
- package/dist/extraction/languages/index.js +53 -0
- package/dist/extraction/languages/index.js.map +1 -0
- package/dist/extraction/languages/java.d.ts +3 -0
- package/dist/extraction/languages/java.d.ts.map +1 -0
- package/dist/extraction/languages/java.js +315 -0
- package/dist/extraction/languages/java.js.map +1 -0
- package/dist/extraction/languages/javascript.d.ts +3 -0
- package/dist/extraction/languages/javascript.d.ts.map +1 -0
- package/dist/extraction/languages/javascript.js +106 -0
- package/dist/extraction/languages/javascript.js.map +1 -0
- package/dist/extraction/languages/kotlin.d.ts +3 -0
- package/dist/extraction/languages/kotlin.d.ts.map +1 -0
- package/dist/extraction/languages/kotlin.js +379 -0
- package/dist/extraction/languages/kotlin.js.map +1 -0
- package/dist/extraction/languages/lua.d.ts +3 -0
- package/dist/extraction/languages/lua.d.ts.map +1 -0
- package/dist/extraction/languages/lua.js +150 -0
- package/dist/extraction/languages/lua.js.map +1 -0
- package/dist/extraction/languages/luau.d.ts +3 -0
- package/dist/extraction/languages/luau.d.ts.map +1 -0
- package/dist/extraction/languages/luau.js +37 -0
- package/dist/extraction/languages/luau.js.map +1 -0
- package/dist/extraction/languages/objc.d.ts +3 -0
- package/dist/extraction/languages/objc.d.ts.map +1 -0
- package/dist/extraction/languages/objc.js +175 -0
- package/dist/extraction/languages/objc.js.map +1 -0
- package/dist/extraction/languages/pascal.d.ts +3 -0
- package/dist/extraction/languages/pascal.d.ts.map +1 -0
- package/dist/extraction/languages/pascal.js +77 -0
- package/dist/extraction/languages/pascal.js.map +1 -0
- package/dist/extraction/languages/php.d.ts +3 -0
- package/dist/extraction/languages/php.d.ts.map +1 -0
- package/dist/extraction/languages/php.js +196 -0
- package/dist/extraction/languages/php.js.map +1 -0
- package/dist/extraction/languages/python.d.ts +3 -0
- package/dist/extraction/languages/python.d.ts.map +1 -0
- package/dist/extraction/languages/python.js +56 -0
- package/dist/extraction/languages/python.js.map +1 -0
- package/dist/extraction/languages/r.d.ts +3 -0
- package/dist/extraction/languages/r.d.ts.map +1 -0
- package/dist/extraction/languages/r.js +314 -0
- package/dist/extraction/languages/r.js.map +1 -0
- package/dist/extraction/languages/ruby.d.ts +3 -0
- package/dist/extraction/languages/ruby.d.ts.map +1 -0
- package/dist/extraction/languages/ruby.js +149 -0
- package/dist/extraction/languages/ruby.js.map +1 -0
- package/dist/extraction/languages/rust.d.ts +3 -0
- package/dist/extraction/languages/rust.d.ts.map +1 -0
- package/dist/extraction/languages/rust.js +142 -0
- package/dist/extraction/languages/rust.js.map +1 -0
- package/dist/extraction/languages/scala.d.ts +3 -0
- package/dist/extraction/languages/scala.d.ts.map +1 -0
- package/dist/extraction/languages/scala.js +209 -0
- package/dist/extraction/languages/scala.js.map +1 -0
- package/dist/extraction/languages/swift.d.ts +3 -0
- package/dist/extraction/languages/swift.d.ts.map +1 -0
- package/dist/extraction/languages/swift.js +152 -0
- package/dist/extraction/languages/swift.js.map +1 -0
- package/dist/extraction/languages/typescript.d.ts +16 -0
- package/dist/extraction/languages/typescript.d.ts.map +1 -0
- package/dist/extraction/languages/typescript.js +167 -0
- package/dist/extraction/languages/typescript.js.map +1 -0
- package/dist/extraction/liquid-extractor.d.ts +59 -0
- package/dist/extraction/liquid-extractor.d.ts.map +1 -0
- package/dist/extraction/liquid-extractor.js +357 -0
- package/dist/extraction/liquid-extractor.js.map +1 -0
- package/dist/extraction/mybatis-extractor.d.ts +48 -0
- package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
- package/dist/extraction/mybatis-extractor.js +198 -0
- package/dist/extraction/mybatis-extractor.js.map +1 -0
- package/dist/extraction/parse-worker.d.ts +8 -0
- package/dist/extraction/parse-worker.d.ts.map +1 -0
- package/dist/extraction/parse-worker.js +97 -0
- package/dist/extraction/parse-worker.js.map +1 -0
- package/dist/extraction/razor-extractor.d.ts +42 -0
- package/dist/extraction/razor-extractor.d.ts.map +1 -0
- package/dist/extraction/razor-extractor.js +285 -0
- package/dist/extraction/razor-extractor.js.map +1 -0
- package/dist/extraction/svelte-extractor.d.ts +56 -0
- package/dist/extraction/svelte-extractor.d.ts.map +1 -0
- package/dist/extraction/svelte-extractor.js +275 -0
- package/dist/extraction/svelte-extractor.js.map +1 -0
- package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
- package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-helpers.js +152 -0
- package/dist/extraction/tree-sitter-helpers.js.map +1 -0
- package/dist/extraction/tree-sitter-types.d.ts +239 -0
- package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
- package/dist/extraction/tree-sitter-types.js +10 -0
- package/dist/extraction/tree-sitter-types.js.map +1 -0
- package/dist/extraction/tree-sitter.d.ts +647 -0
- package/dist/extraction/tree-sitter.d.ts.map +1 -0
- package/dist/extraction/tree-sitter.js +5592 -0
- package/dist/extraction/tree-sitter.js.map +1 -0
- package/dist/extraction/vue-extractor.d.ts +51 -0
- package/dist/extraction/vue-extractor.d.ts.map +1 -0
- package/dist/extraction/vue-extractor.js +254 -0
- package/dist/extraction/vue-extractor.js.map +1 -0
- package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
- package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
- package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
- package/dist/extraction/wasm-runtime-flags.js +106 -0
- package/dist/extraction/wasm-runtime-flags.js.map +1 -0
- package/dist/graph/index.d.ts +8 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +13 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/queries.d.ts +106 -0
- package/dist/graph/queries.d.ts.map +1 -0
- package/dist/graph/queries.js +339 -0
- package/dist/graph/queries.js.map +1 -0
- package/dist/graph/traversal.d.ts +127 -0
- package/dist/graph/traversal.d.ts.map +1 -0
- package/dist/graph/traversal.js +540 -0
- package/dist/graph/traversal.js.map +1 -0
- package/dist/index.d.ts +563 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1041 -0
- package/dist/index.js.map +1 -0
- package/dist/installer/claude-assets.d.ts +45 -0
- package/dist/installer/claude-assets.d.ts.map +1 -0
- package/dist/installer/claude-assets.js +144 -0
- package/dist/installer/claude-assets.js.map +1 -0
- package/dist/installer/config-writer.d.ts +28 -0
- package/dist/installer/config-writer.d.ts.map +1 -0
- package/dist/installer/config-writer.js +91 -0
- package/dist/installer/config-writer.js.map +1 -0
- package/dist/installer/index.d.ts +101 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +692 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/installer/instructions-template.d.ts +41 -0
- package/dist/installer/instructions-template.d.ts.map +1 -0
- package/dist/installer/instructions-template.js +53 -0
- package/dist/installer/instructions-template.js.map +1 -0
- package/dist/installer/targets/antigravity.d.ts +57 -0
- package/dist/installer/targets/antigravity.d.ts.map +1 -0
- package/dist/installer/targets/antigravity.js +308 -0
- package/dist/installer/targets/antigravity.js.map +1 -0
- package/dist/installer/targets/claude.d.ts +66 -0
- package/dist/installer/targets/claude.d.ts.map +1 -0
- package/dist/installer/targets/claude.js +564 -0
- package/dist/installer/targets/claude.js.map +1 -0
- package/dist/installer/targets/codex.d.ts +18 -0
- package/dist/installer/targets/codex.d.ts.map +1 -0
- package/dist/installer/targets/codex.js +185 -0
- package/dist/installer/targets/codex.js.map +1 -0
- package/dist/installer/targets/cursor.d.ts +35 -0
- package/dist/installer/targets/cursor.d.ts.map +1 -0
- package/dist/installer/targets/cursor.js +254 -0
- package/dist/installer/targets/cursor.js.map +1 -0
- package/dist/installer/targets/gemini.d.ts +26 -0
- package/dist/installer/targets/gemini.d.ts.map +1 -0
- package/dist/installer/targets/gemini.js +165 -0
- package/dist/installer/targets/gemini.js.map +1 -0
- package/dist/installer/targets/hermes.d.ts +18 -0
- package/dist/installer/targets/hermes.d.ts.map +1 -0
- package/dist/installer/targets/hermes.js +359 -0
- package/dist/installer/targets/hermes.js.map +1 -0
- package/dist/installer/targets/kiro.d.ts +27 -0
- package/dist/installer/targets/kiro.d.ts.map +1 -0
- package/dist/installer/targets/kiro.js +178 -0
- package/dist/installer/targets/kiro.js.map +1 -0
- package/dist/installer/targets/opencode.d.ts +38 -0
- package/dist/installer/targets/opencode.d.ts.map +1 -0
- package/dist/installer/targets/opencode.js +288 -0
- package/dist/installer/targets/opencode.js.map +1 -0
- package/dist/installer/targets/registry.d.ts +35 -0
- package/dist/installer/targets/registry.d.ts.map +1 -0
- package/dist/installer/targets/registry.js +91 -0
- package/dist/installer/targets/registry.js.map +1 -0
- package/dist/installer/targets/shared.d.ts +101 -0
- package/dist/installer/targets/shared.d.ts.map +1 -0
- package/dist/installer/targets/shared.js +264 -0
- package/dist/installer/targets/shared.js.map +1 -0
- package/dist/installer/targets/toml.d.ts +52 -0
- package/dist/installer/targets/toml.d.ts.map +1 -0
- package/dist/installer/targets/toml.js +147 -0
- package/dist/installer/targets/toml.js.map +1 -0
- package/dist/installer/targets/types.d.ts +108 -0
- package/dist/installer/targets/types.d.ts.map +1 -0
- package/dist/installer/targets/types.js +16 -0
- package/dist/installer/targets/types.js.map +1 -0
- package/dist/markdown/cli.d.ts +16 -0
- package/dist/markdown/cli.d.ts.map +1 -0
- package/dist/markdown/cli.js +533 -0
- package/dist/markdown/cli.js.map +1 -0
- package/dist/markdown/constants.d.ts +22 -0
- package/dist/markdown/constants.d.ts.map +1 -0
- package/dist/markdown/constants.js +71 -0
- package/dist/markdown/constants.js.map +1 -0
- package/dist/markdown/dedup.d.ts +20 -0
- package/dist/markdown/dedup.d.ts.map +1 -0
- package/dist/markdown/dedup.js +64 -0
- package/dist/markdown/dedup.js.map +1 -0
- package/dist/markdown/errors.d.ts +22 -0
- package/dist/markdown/errors.d.ts.map +1 -0
- package/dist/markdown/errors.js +45 -0
- package/dist/markdown/errors.js.map +1 -0
- package/dist/markdown/extractor.d.ts +43 -0
- package/dist/markdown/extractor.d.ts.map +1 -0
- package/dist/markdown/extractor.js +152 -0
- package/dist/markdown/extractor.js.map +1 -0
- package/dist/markdown/frontmatter-parser.d.ts +47 -0
- package/dist/markdown/frontmatter-parser.d.ts.map +1 -0
- package/dist/markdown/frontmatter-parser.js +199 -0
- package/dist/markdown/frontmatter-parser.js.map +1 -0
- package/dist/markdown/indexer.d.ts +34 -0
- package/dist/markdown/indexer.d.ts.map +1 -0
- package/dist/markdown/indexer.js +256 -0
- package/dist/markdown/indexer.js.map +1 -0
- package/dist/markdown/mcp-tools.d.ts +33 -0
- package/dist/markdown/mcp-tools.d.ts.map +1 -0
- package/dist/markdown/mcp-tools.js +300 -0
- package/dist/markdown/mcp-tools.js.map +1 -0
- package/dist/markdown/query.d.ts +108 -0
- package/dist/markdown/query.d.ts.map +1 -0
- package/dist/markdown/query.js +570 -0
- package/dist/markdown/query.js.map +1 -0
- package/dist/markdown/schema-bootstrap.d.ts +40 -0
- package/dist/markdown/schema-bootstrap.d.ts.map +1 -0
- package/dist/markdown/schema-bootstrap.js +85 -0
- package/dist/markdown/schema-bootstrap.js.map +1 -0
- package/dist/markdown/schema.sql +124 -0
- package/dist/markdown/store.d.ts +77 -0
- package/dist/markdown/store.d.ts.map +1 -0
- package/dist/markdown/store.js +194 -0
- package/dist/markdown/store.js.map +1 -0
- package/dist/markdown/summary-extractor.d.ts +22 -0
- package/dist/markdown/summary-extractor.d.ts.map +1 -0
- package/dist/markdown/summary-extractor.js +66 -0
- package/dist/markdown/summary-extractor.js.map +1 -0
- package/dist/markdown/types.d.ts +159 -0
- package/dist/markdown/types.d.ts.map +1 -0
- package/dist/markdown/types.js +9 -0
- package/dist/markdown/types.js.map +1 -0
- package/dist/markdown/validator.d.ts +44 -0
- package/dist/markdown/validator.d.ts.map +1 -0
- package/dist/markdown/validator.js +95 -0
- package/dist/markdown/validator.js.map +1 -0
- package/dist/mcp/daemon-manager.d.ts +42 -0
- package/dist/mcp/daemon-manager.d.ts.map +1 -0
- package/dist/mcp/daemon-manager.js +129 -0
- package/dist/mcp/daemon-manager.js.map +1 -0
- package/dist/mcp/daemon-paths.d.ts +46 -0
- package/dist/mcp/daemon-paths.d.ts.map +1 -0
- package/dist/mcp/daemon-paths.js +125 -0
- package/dist/mcp/daemon-paths.js.map +1 -0
- package/dist/mcp/daemon-registry.d.ts +47 -0
- package/dist/mcp/daemon-registry.d.ts.map +1 -0
- package/dist/mcp/daemon-registry.js +229 -0
- package/dist/mcp/daemon-registry.js.map +1 -0
- package/dist/mcp/daemon.d.ts +220 -0
- package/dist/mcp/daemon.d.ts.map +1 -0
- package/dist/mcp/daemon.js +637 -0
- package/dist/mcp/daemon.js.map +1 -0
- package/dist/mcp/dynamic-boundaries.d.ts +41 -0
- package/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
- package/dist/mcp/dynamic-boundaries.js +359 -0
- package/dist/mcp/dynamic-boundaries.js.map +1 -0
- package/dist/mcp/engine.d.ts +105 -0
- package/dist/mcp/engine.d.ts.map +1 -0
- package/dist/mcp/engine.js +278 -0
- package/dist/mcp/engine.js.map +1 -0
- package/dist/mcp/index.d.ts +113 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +499 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/liveness-watchdog.d.ts +18 -0
- package/dist/mcp/liveness-watchdog.d.ts.map +1 -0
- package/dist/mcp/liveness-watchdog.js +207 -0
- package/dist/mcp/liveness-watchdog.js.map +1 -0
- package/dist/mcp/ppid-watchdog.d.ts +44 -0
- package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
- package/dist/mcp/ppid-watchdog.js +27 -0
- package/dist/mcp/ppid-watchdog.js.map +1 -0
- package/dist/mcp/proxy.d.ts +87 -0
- package/dist/mcp/proxy.d.ts.map +1 -0
- package/dist/mcp/proxy.js +641 -0
- package/dist/mcp/proxy.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +34 -0
- package/dist/mcp/server-instructions.d.ts.map +1 -0
- package/dist/mcp/server-instructions.js +106 -0
- package/dist/mcp/server-instructions.js.map +1 -0
- package/dist/mcp/session.d.ts +79 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +330 -0
- package/dist/mcp/session.js.map +1 -0
- package/dist/mcp/stdin-teardown.d.ts +27 -0
- package/dist/mcp/stdin-teardown.d.ts.map +1 -0
- package/dist/mcp/stdin-teardown.js +49 -0
- package/dist/mcp/stdin-teardown.js.map +1 -0
- package/dist/mcp/tools.d.ts +547 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +4122 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/transport.d.ts +188 -0
- package/dist/mcp/transport.d.ts.map +1 -0
- package/dist/mcp/transport.js +359 -0
- package/dist/mcp/transport.js.map +1 -0
- package/dist/mcp/version.d.ts +19 -0
- package/dist/mcp/version.d.ts.map +1 -0
- package/dist/mcp/version.js +71 -0
- package/dist/mcp/version.js.map +1 -0
- package/dist/project-config.d.ts +36 -0
- package/dist/project-config.d.ts.map +1 -0
- package/dist/project-config.js +235 -0
- package/dist/project-config.js.map +1 -0
- package/dist/reasoning/config.d.ts +45 -0
- package/dist/reasoning/config.d.ts.map +1 -0
- package/dist/reasoning/config.js +171 -0
- package/dist/reasoning/config.js.map +1 -0
- package/dist/reasoning/credentials.d.ts +5 -0
- package/dist/reasoning/credentials.d.ts.map +1 -0
- package/dist/reasoning/credentials.js +83 -0
- package/dist/reasoning/credentials.js.map +1 -0
- package/dist/reasoning/login.d.ts +21 -0
- package/dist/reasoning/login.d.ts.map +1 -0
- package/dist/reasoning/login.js +85 -0
- package/dist/reasoning/login.js.map +1 -0
- package/dist/reasoning/reasoner.d.ts +43 -0
- package/dist/reasoning/reasoner.d.ts.map +1 -0
- package/dist/reasoning/reasoner.js +308 -0
- package/dist/reasoning/reasoner.js.map +1 -0
- package/dist/resolution/c-fnptr-synthesizer.d.ts +33 -0
- package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
- package/dist/resolution/c-fnptr-synthesizer.js +352 -0
- package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
- package/dist/resolution/callback-synthesizer.d.ts +15 -0
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/resolution/callback-synthesizer.js +2926 -0
- package/dist/resolution/callback-synthesizer.js.map +1 -0
- package/dist/resolution/frameworks/astro.d.ts +9 -0
- package/dist/resolution/frameworks/astro.d.ts.map +1 -0
- package/dist/resolution/frameworks/astro.js +169 -0
- package/dist/resolution/frameworks/astro.js.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
- package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
- package/dist/resolution/frameworks/cargo-workspace.js +225 -0
- package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
- package/dist/resolution/frameworks/csharp.d.ts +8 -0
- package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
- package/dist/resolution/frameworks/csharp.js +241 -0
- package/dist/resolution/frameworks/csharp.js.map +1 -0
- package/dist/resolution/frameworks/drupal.d.ts +51 -0
- package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
- package/dist/resolution/frameworks/drupal.js +367 -0
- package/dist/resolution/frameworks/drupal.js.map +1 -0
- package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
- package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
- package/dist/resolution/frameworks/expo-modules.js +148 -0
- package/dist/resolution/frameworks/expo-modules.js.map +1 -0
- package/dist/resolution/frameworks/express.d.ts +8 -0
- package/dist/resolution/frameworks/express.d.ts.map +1 -0
- package/dist/resolution/frameworks/express.js +308 -0
- package/dist/resolution/frameworks/express.js.map +1 -0
- package/dist/resolution/frameworks/fabric.d.ts +3 -0
- package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
- package/dist/resolution/frameworks/fabric.js +354 -0
- package/dist/resolution/frameworks/fabric.js.map +1 -0
- package/dist/resolution/frameworks/go.d.ts +8 -0
- package/dist/resolution/frameworks/go.d.ts.map +1 -0
- package/dist/resolution/frameworks/go.js +161 -0
- package/dist/resolution/frameworks/go.js.map +1 -0
- package/dist/resolution/frameworks/goframe.d.ts +41 -0
- package/dist/resolution/frameworks/goframe.d.ts.map +1 -0
- package/dist/resolution/frameworks/goframe.js +112 -0
- package/dist/resolution/frameworks/goframe.js.map +1 -0
- package/dist/resolution/frameworks/index.d.ts +50 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/resolution/frameworks/index.js +169 -0
- package/dist/resolution/frameworks/index.js.map +1 -0
- package/dist/resolution/frameworks/java.d.ts +8 -0
- package/dist/resolution/frameworks/java.d.ts.map +1 -0
- package/dist/resolution/frameworks/java.js +509 -0
- package/dist/resolution/frameworks/java.js.map +1 -0
- package/dist/resolution/frameworks/laravel.d.ts +13 -0
- package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
- package/dist/resolution/frameworks/laravel.js +257 -0
- package/dist/resolution/frameworks/laravel.js.map +1 -0
- package/dist/resolution/frameworks/nestjs.d.ts +26 -0
- package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
- package/dist/resolution/frameworks/nestjs.js +698 -0
- package/dist/resolution/frameworks/nestjs.js.map +1 -0
- package/dist/resolution/frameworks/play.d.ts +19 -0
- package/dist/resolution/frameworks/play.d.ts.map +1 -0
- package/dist/resolution/frameworks/play.js +111 -0
- package/dist/resolution/frameworks/play.js.map +1 -0
- package/dist/resolution/frameworks/python.d.ts +10 -0
- package/dist/resolution/frameworks/python.d.ts.map +1 -0
- package/dist/resolution/frameworks/python.js +400 -0
- package/dist/resolution/frameworks/python.js.map +1 -0
- package/dist/resolution/frameworks/react-native.d.ts +3 -0
- package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
- package/dist/resolution/frameworks/react-native.js +410 -0
- package/dist/resolution/frameworks/react-native.js.map +1 -0
- package/dist/resolution/frameworks/react.d.ts +8 -0
- package/dist/resolution/frameworks/react.d.ts.map +1 -0
- package/dist/resolution/frameworks/react.js +334 -0
- package/dist/resolution/frameworks/react.js.map +1 -0
- package/dist/resolution/frameworks/ruby.d.ts +8 -0
- package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
- package/dist/resolution/frameworks/ruby.js +302 -0
- package/dist/resolution/frameworks/ruby.js.map +1 -0
- package/dist/resolution/frameworks/rust.d.ts +8 -0
- package/dist/resolution/frameworks/rust.d.ts.map +1 -0
- package/dist/resolution/frameworks/rust.js +304 -0
- package/dist/resolution/frameworks/rust.js.map +1 -0
- package/dist/resolution/frameworks/svelte.d.ts +9 -0
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
- package/dist/resolution/frameworks/svelte.js +253 -0
- package/dist/resolution/frameworks/svelte.js.map +1 -0
- package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
- package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift-objc.js +252 -0
- package/dist/resolution/frameworks/swift-objc.js.map +1 -0
- package/dist/resolution/frameworks/swift.d.ts +10 -0
- package/dist/resolution/frameworks/swift.d.ts.map +1 -0
- package/dist/resolution/frameworks/swift.js +400 -0
- package/dist/resolution/frameworks/swift.js.map +1 -0
- package/dist/resolution/frameworks/vue.d.ts +9 -0
- package/dist/resolution/frameworks/vue.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue.js +303 -0
- package/dist/resolution/frameworks/vue.js.map +1 -0
- package/dist/resolution/go-module.d.ts +26 -0
- package/dist/resolution/go-module.d.ts.map +1 -0
- package/dist/resolution/go-module.js +78 -0
- package/dist/resolution/go-module.js.map +1 -0
- package/dist/resolution/goframe-synthesizer.d.ts +28 -0
- package/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
- package/dist/resolution/goframe-synthesizer.js +158 -0
- package/dist/resolution/goframe-synthesizer.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts +78 -0
- package/dist/resolution/import-resolver.d.ts.map +1 -0
- package/dist/resolution/import-resolver.js +1849 -0
- package/dist/resolution/import-resolver.js.map +1 -0
- package/dist/resolution/index.d.ts +196 -0
- package/dist/resolution/index.d.ts.map +1 -0
- package/dist/resolution/index.js +1328 -0
- package/dist/resolution/index.js.map +1 -0
- package/dist/resolution/lru-cache.d.ts +24 -0
- package/dist/resolution/lru-cache.d.ts.map +1 -0
- package/dist/resolution/lru-cache.js +62 -0
- package/dist/resolution/lru-cache.js.map +1 -0
- package/dist/resolution/name-matcher.d.ts +93 -0
- package/dist/resolution/name-matcher.d.ts.map +1 -0
- package/dist/resolution/name-matcher.js +1212 -0
- package/dist/resolution/name-matcher.js.map +1 -0
- package/dist/resolution/path-aliases.d.ts +68 -0
- package/dist/resolution/path-aliases.d.ts.map +1 -0
- package/dist/resolution/path-aliases.js +238 -0
- package/dist/resolution/path-aliases.js.map +1 -0
- package/dist/resolution/strip-comments.d.ts +27 -0
- package/dist/resolution/strip-comments.d.ts.map +1 -0
- package/dist/resolution/strip-comments.js +443 -0
- package/dist/resolution/strip-comments.js.map +1 -0
- package/dist/resolution/swift-objc-bridge.d.ts +134 -0
- package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
- package/dist/resolution/swift-objc-bridge.js +256 -0
- package/dist/resolution/swift-objc-bridge.js.map +1 -0
- package/dist/resolution/types.d.ts +233 -0
- package/dist/resolution/types.d.ts.map +1 -0
- package/dist/resolution/types.js +8 -0
- package/dist/resolution/types.js.map +1 -0
- package/dist/resolution/workspace-packages.d.ts +48 -0
- package/dist/resolution/workspace-packages.d.ts.map +1 -0
- package/dist/resolution/workspace-packages.js +208 -0
- package/dist/resolution/workspace-packages.js.map +1 -0
- package/dist/search/query-parser.d.ts +57 -0
- package/dist/search/query-parser.d.ts.map +1 -0
- package/dist/search/query-parser.js +177 -0
- package/dist/search/query-parser.js.map +1 -0
- package/dist/search/query-utils.d.ts +87 -0
- package/dist/search/query-utils.d.ts.map +1 -0
- package/dist/search/query-utils.js +449 -0
- package/dist/search/query-utils.js.map +1 -0
- package/dist/sync/git-hooks.d.ts +45 -0
- package/dist/sync/git-hooks.d.ts.map +1 -0
- package/dist/sync/git-hooks.js +225 -0
- package/dist/sync/git-hooks.js.map +1 -0
- package/dist/sync/index.d.ts +19 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +35 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/watch-policy.d.ts +48 -0
- package/dist/sync/watch-policy.d.ts.map +1 -0
- package/dist/sync/watch-policy.js +124 -0
- package/dist/sync/watch-policy.js.map +1 -0
- package/dist/sync/watcher.d.ts +350 -0
- package/dist/sync/watcher.d.ts.map +1 -0
- package/dist/sync/watcher.js +811 -0
- package/dist/sync/watcher.js.map +1 -0
- package/dist/sync/worktree.d.ts +54 -0
- package/dist/sync/worktree.d.ts.map +1 -0
- package/dist/sync/worktree.js +137 -0
- package/dist/sync/worktree.js.map +1 -0
- package/dist/telemetry/index.d.ts +143 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +541 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/timeline/bash-semantics.d.ts +52 -0
- package/dist/timeline/bash-semantics.d.ts.map +1 -0
- package/dist/timeline/bash-semantics.js +376 -0
- package/dist/timeline/bash-semantics.js.map +1 -0
- package/dist/timeline/cli.d.ts +50 -0
- package/dist/timeline/cli.d.ts.map +1 -0
- package/dist/timeline/cli.js +367 -0
- package/dist/timeline/cli.js.map +1 -0
- package/dist/timeline/constants.d.ts +62 -0
- package/dist/timeline/constants.d.ts.map +1 -0
- package/dist/timeline/constants.js +73 -0
- package/dist/timeline/constants.js.map +1 -0
- package/dist/timeline/errors.d.ts +27 -0
- package/dist/timeline/errors.d.ts.map +1 -0
- package/dist/timeline/errors.js +51 -0
- package/dist/timeline/errors.js.map +1 -0
- package/dist/timeline/hook-runner.d.ts +36 -0
- package/dist/timeline/hook-runner.d.ts.map +1 -0
- package/dist/timeline/hook-runner.js +61 -0
- package/dist/timeline/hook-runner.js.map +1 -0
- package/dist/timeline/hooks.d.ts +45 -0
- package/dist/timeline/hooks.d.ts.map +1 -0
- package/dist/timeline/hooks.js +364 -0
- package/dist/timeline/hooks.js.map +1 -0
- package/dist/timeline/index.d.ts +12 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +28 -0
- package/dist/timeline/index.js.map +1 -0
- package/dist/timeline/indexer.d.ts +37 -0
- package/dist/timeline/indexer.d.ts.map +1 -0
- package/dist/timeline/indexer.js +76 -0
- package/dist/timeline/indexer.js.map +1 -0
- package/dist/timeline/installer.d.ts +33 -0
- package/dist/timeline/installer.d.ts.map +1 -0
- package/dist/timeline/installer.js +255 -0
- package/dist/timeline/installer.js.map +1 -0
- package/dist/timeline/payload.d.ts +31 -0
- package/dist/timeline/payload.d.ts.map +1 -0
- package/dist/timeline/payload.js +58 -0
- package/dist/timeline/payload.js.map +1 -0
- package/dist/timeline/post-tool-summary.d.ts +29 -0
- package/dist/timeline/post-tool-summary.d.ts.map +1 -0
- package/dist/timeline/post-tool-summary.js +190 -0
- package/dist/timeline/post-tool-summary.js.map +1 -0
- package/dist/timeline/recorder.d.ts +36 -0
- package/dist/timeline/recorder.d.ts.map +1 -0
- package/dist/timeline/recorder.js +42 -0
- package/dist/timeline/recorder.js.map +1 -0
- package/dist/timeline/schema-bootstrap.d.ts +42 -0
- package/dist/timeline/schema-bootstrap.d.ts.map +1 -0
- package/dist/timeline/schema-bootstrap.js +81 -0
- package/dist/timeline/schema-bootstrap.js.map +1 -0
- package/dist/timeline/schema.sql +37 -0
- package/dist/timeline/store.d.ts +69 -0
- package/dist/timeline/store.d.ts.map +1 -0
- package/dist/timeline/store.js +429 -0
- package/dist/timeline/store.js.map +1 -0
- package/dist/timeline/types.d.ts +78 -0
- package/dist/timeline/types.d.ts.map +1 -0
- package/dist/timeline/types.js +9 -0
- package/dist/timeline/types.js.map +1 -0
- package/dist/types.d.ts +392 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +81 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/glyphs.d.ts +42 -0
- package/dist/ui/glyphs.d.ts.map +1 -0
- package/dist/ui/glyphs.js +78 -0
- package/dist/ui/glyphs.js.map +1 -0
- package/dist/ui/shimmer-progress.d.ts +11 -0
- package/dist/ui/shimmer-progress.d.ts.map +1 -0
- package/dist/ui/shimmer-progress.js +90 -0
- package/dist/ui/shimmer-progress.js.map +1 -0
- package/dist/ui/shimmer-worker.d.ts +2 -0
- package/dist/ui/shimmer-worker.d.ts.map +1 -0
- package/dist/ui/shimmer-worker.js +118 -0
- package/dist/ui/shimmer-worker.js.map +1 -0
- package/dist/ui/types.d.ts +17 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +3 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/upgrade/index.d.ts +132 -0
- package/dist/upgrade/index.d.ts.map +1 -0
- package/dist/upgrade/index.js +498 -0
- package/dist/upgrade/index.js.map +1 -0
- package/dist/utils.d.ts +224 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +583 -0
- package/dist/utils.js.map +1 -0
- package/package.json +60 -0
- package/scripts/add-lang/bench.sh +60 -0
- package/scripts/add-lang/check-grammar.mjs +75 -0
- package/scripts/add-lang/dump-ast.mjs +103 -0
- package/scripts/add-lang/verify-extraction.mjs +70 -0
- package/scripts/agent-eval/ab-adoption.sh +91 -0
- package/scripts/agent-eval/ab-hook.sh +86 -0
- package/scripts/agent-eval/ab-impl.sh +78 -0
- package/scripts/agent-eval/ab-new-vs-baseline.sh +102 -0
- package/scripts/agent-eval/ab-sufficiency.sh +78 -0
- package/scripts/agent-eval/arms-F.sh +21 -0
- package/scripts/agent-eval/arms-matrix.sh +37 -0
- package/scripts/agent-eval/audit.sh +68 -0
- package/scripts/agent-eval/bench-readme.sh +28 -0
- package/scripts/agent-eval/bench-why-repo.sh +22 -0
- package/scripts/agent-eval/block-read-hook.sh +19 -0
- package/scripts/agent-eval/hook-settings.json +15 -0
- package/scripts/agent-eval/itrun.sh +120 -0
- package/scripts/agent-eval/offload-eval-3arm.sh +72 -0
- package/scripts/agent-eval/offload-eval-cost.mjs +133 -0
- package/scripts/agent-eval/offload-eval-effort.mjs +108 -0
- package/scripts/agent-eval/offload-eval-frontload-matrix.sh +25 -0
- package/scripts/agent-eval/offload-eval-frontload.sh +47 -0
- package/scripts/agent-eval/offload-eval-ground-truth.json +18 -0
- package/scripts/agent-eval/offload-eval-hook.mjs +84 -0
- package/scripts/agent-eval/offload-eval-judge.mjs +103 -0
- package/scripts/agent-eval/offload-eval-matrix.sh +20 -0
- package/scripts/agent-eval/offload-eval-metrics.mjs +94 -0
- package/scripts/agent-eval/offload-eval-refs1.sh +50 -0
- package/scripts/agent-eval/offload-eval-setup.sh +24 -0
- package/scripts/agent-eval/offload-eval-styles.sh +72 -0
- package/scripts/agent-eval/offload-eval-summarize.mjs +68 -0
- package/scripts/agent-eval/offload-eval.md +76 -0
- package/scripts/agent-eval/parse-arms.mjs +116 -0
- package/scripts/agent-eval/parse-bench-readme.mjs +84 -0
- package/scripts/agent-eval/parse-run.mjs +45 -0
- package/scripts/agent-eval/parse-session.mjs +93 -0
- package/scripts/agent-eval/probe-context.mjs +21 -0
- package/scripts/agent-eval/probe-explore.mjs +40 -0
- package/scripts/agent-eval/probe-node.mjs +20 -0
- package/scripts/agent-eval/probe-sweep.mjs +119 -0
- package/scripts/agent-eval/probe-trace.mjs +20 -0
- package/scripts/agent-eval/redirect-read-hook.sh +38 -0
- package/scripts/agent-eval/run-agent.sh +34 -0
- package/scripts/agent-eval/run-all.sh +69 -0
- package/scripts/agent-eval/run-arms.sh +56 -0
- package/scripts/agent-eval/seq-matrix.mjs +137 -0
- package/scripts/build-bundle.sh +118 -0
- package/scripts/extract-release-notes.mjs +130 -0
- package/scripts/local-install.sh +41 -0
- package/scripts/npm-sdk.js +75 -0
- package/scripts/npm-shim.js +246 -0
- package/scripts/pack-npm.sh +118 -0
- package/scripts/prepare-release.mjs +270 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* React Framework Resolver
|
|
4
|
+
*
|
|
5
|
+
* Handles React and Next.js patterns.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.reactResolver = void 0;
|
|
9
|
+
exports.reactResolver = {
|
|
10
|
+
name: 'react',
|
|
11
|
+
// Includes 'tsx'/'jsx' so route extraction runs on JSX files (where
|
|
12
|
+
// `<Route element={<X/>}>` routes live) — without them the .tsx/.jsx grammars
|
|
13
|
+
// were filtered out of the extract pass and those routes were never indexed.
|
|
14
|
+
// (resolve() is unaffected — it runs for every detected framework regardless
|
|
15
|
+
// of language; only the extract pass filters on `languages`.)
|
|
16
|
+
languages: ['javascript', 'typescript', 'tsx', 'jsx'],
|
|
17
|
+
detect(context) {
|
|
18
|
+
// Check for React in package.json
|
|
19
|
+
const packageJson = context.readFile('package.json');
|
|
20
|
+
if (packageJson) {
|
|
21
|
+
try {
|
|
22
|
+
const pkg = JSON.parse(packageJson);
|
|
23
|
+
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
24
|
+
if (deps.react || deps.next || deps['react-native']) {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// Invalid JSON
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Check for .jsx/.tsx files
|
|
33
|
+
const allFiles = context.getAllFiles();
|
|
34
|
+
return allFiles.some((f) => f.endsWith('.jsx') || f.endsWith('.tsx'));
|
|
35
|
+
},
|
|
36
|
+
resolve(ref, context) {
|
|
37
|
+
// Pattern 1: Component references (PascalCase). Only from JSX-capable
|
|
38
|
+
// files — a component is USED in markup, which only parses in .tsx/.jsx.
|
|
39
|
+
// Without this gate, every PascalCase TYPE reference in plain .ts files
|
|
40
|
+
// went through component resolution: in a monorepo with same-named
|
|
41
|
+
// classes per package (#764, amplication), a `.ts` GraphQL-types file's
|
|
42
|
+
// own `Account` type alias lost to an arbitrary `Account` CLASS in
|
|
43
|
+
// another package (the framework's 0.8 outranked the name-matcher's
|
|
44
|
+
// proximity-correct 0.7).
|
|
45
|
+
if ((ref.language === 'tsx' || ref.language === 'jsx') &&
|
|
46
|
+
isPascalCase(ref.referenceName) &&
|
|
47
|
+
!isBuiltInType(ref.referenceName)) {
|
|
48
|
+
const result = resolveComponent(ref.referenceName, ref.filePath, context);
|
|
49
|
+
if (result) {
|
|
50
|
+
return {
|
|
51
|
+
original: ref,
|
|
52
|
+
targetNodeId: result,
|
|
53
|
+
confidence: 0.8,
|
|
54
|
+
resolvedBy: 'framework',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Pattern 2: Hook references (use*)
|
|
59
|
+
if (ref.referenceName.startsWith('use') && ref.referenceName.length > 3) {
|
|
60
|
+
const result = resolveHook(ref.referenceName, context);
|
|
61
|
+
if (result) {
|
|
62
|
+
return {
|
|
63
|
+
original: ref,
|
|
64
|
+
targetNodeId: result,
|
|
65
|
+
confidence: 0.85,
|
|
66
|
+
resolvedBy: 'framework',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Pattern 3: Context references
|
|
71
|
+
if (ref.referenceName.endsWith('Context') || ref.referenceName.endsWith('Provider')) {
|
|
72
|
+
const result = resolveContext(ref.referenceName, context);
|
|
73
|
+
if (result) {
|
|
74
|
+
return {
|
|
75
|
+
original: ref,
|
|
76
|
+
targetNodeId: result,
|
|
77
|
+
confidence: 0.8,
|
|
78
|
+
resolvedBy: 'framework',
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
},
|
|
84
|
+
extract(filePath, content) {
|
|
85
|
+
const nodes = [];
|
|
86
|
+
const references = [];
|
|
87
|
+
const now = Date.now();
|
|
88
|
+
// Components and custom hooks are NOT extracted here. The tree-sitter
|
|
89
|
+
// extractor already emits them natively across .ts/.tsx/.js/.jsx — function
|
|
90
|
+
// and arrow components as `function` nodes, HOC-wrapped components
|
|
91
|
+
// (`forwardRef`/`memo`/`styled`) as `component` nodes (#841), and `useX`
|
|
92
|
+
// hooks as `function` nodes. Re-deriving them here with regex only ran on
|
|
93
|
+
// .ts/.js anyway (this resolver's `languages` didn't include the 'tsx'/'jsx'
|
|
94
|
+
// grammars), and it DUPLICATED those tree-sitter nodes (e.g. a `useAuth`
|
|
95
|
+
// ended up as two `function` nodes). This `extract` now contributes only
|
|
96
|
+
// what tree-sitter can't: route nodes (React Router + Next.js conventions),
|
|
97
|
+
// which is why 'tsx'/'jsx' are now in `languages` — `<Route>`/`element={<X/>}`
|
|
98
|
+
// routes live in JSX files and were previously skipped entirely.
|
|
99
|
+
// React Router: <Route path="/x" component={Comp}/> (v5) or
|
|
100
|
+
// <Route path="/x" element={<Comp/>}/> (v6). Attributes appear in any order,
|
|
101
|
+
// and element={...} contains a nested `>`, so scan a window after each
|
|
102
|
+
// <Route rather than trying to match the whole (possibly multi-line) tag.
|
|
103
|
+
const routeTagRegex = /<Route\b/g;
|
|
104
|
+
let routeMatch;
|
|
105
|
+
while ((routeMatch = routeTagRegex.exec(content)) !== null) {
|
|
106
|
+
const window = content.slice(routeMatch.index, routeMatch.index + 400);
|
|
107
|
+
const pathMatch = window.match(/\bpath\s*=\s*["']([^"']+)["']/);
|
|
108
|
+
if (!pathMatch)
|
|
109
|
+
continue; // index/layout routes without a path
|
|
110
|
+
const routePath = pathMatch[1];
|
|
111
|
+
const compMatch = window.match(/\bcomponent\s*=\s*\{\s*([A-Z][A-Za-z0-9_]*)/) ||
|
|
112
|
+
window.match(/\belement\s*=\s*\{\s*<\s*([A-Z][A-Za-z0-9_]*)/);
|
|
113
|
+
const line = content.slice(0, routeMatch.index).split('\n').length;
|
|
114
|
+
const routeNode = {
|
|
115
|
+
id: `route:${filePath}:${line}:${routePath}`,
|
|
116
|
+
kind: 'route',
|
|
117
|
+
name: routePath,
|
|
118
|
+
qualifiedName: `${filePath}::route:${routePath}`,
|
|
119
|
+
filePath,
|
|
120
|
+
startLine: line,
|
|
121
|
+
endLine: line,
|
|
122
|
+
startColumn: 0,
|
|
123
|
+
endColumn: 0,
|
|
124
|
+
language: filePath.endsWith('.tsx') ? 'tsx' : 'jsx',
|
|
125
|
+
updatedAt: now,
|
|
126
|
+
};
|
|
127
|
+
nodes.push(routeNode);
|
|
128
|
+
if (compMatch) {
|
|
129
|
+
references.push({
|
|
130
|
+
fromNodeId: routeNode.id,
|
|
131
|
+
referenceName: compMatch[1],
|
|
132
|
+
referenceKind: 'references',
|
|
133
|
+
line,
|
|
134
|
+
column: 0,
|
|
135
|
+
filePath,
|
|
136
|
+
language: filePath.endsWith('.tsx') ? 'tsx' : 'jsx',
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// React Router data-router (v6.4+): createBrowserRouter([{ path, element }]).
|
|
141
|
+
// Only scan files that use the data-router API, then pull each route object's
|
|
142
|
+
// `path` + `element={<Comp/>}` / `Component: Comp` (a forward window confirms
|
|
143
|
+
// it's a route object, not a stray `path:` field).
|
|
144
|
+
if (/\b(?:createBrowserRouter|createHashRouter|createMemoryRouter|createRoutesFromElements)\b/.test(content)) {
|
|
145
|
+
const objPathRe = /\bpath\s*:\s*['"]([^'"]*)['"]/g;
|
|
146
|
+
let om;
|
|
147
|
+
while ((om = objPathRe.exec(content)) !== null) {
|
|
148
|
+
const win = content.slice(om.index, om.index + 300);
|
|
149
|
+
const compMatch = win.match(/\belement\s*:\s*<\s*([A-Z][A-Za-z0-9_]*)/) ||
|
|
150
|
+
win.match(/\bComponent\s*:\s*([A-Z][A-Za-z0-9_]*)/);
|
|
151
|
+
if (!compMatch)
|
|
152
|
+
continue; // require a component → it's a real route object
|
|
153
|
+
const routePath = om[1] || '/';
|
|
154
|
+
const line = content.slice(0, om.index).split('\n').length;
|
|
155
|
+
const routeNode = {
|
|
156
|
+
id: `route:${filePath}:${line}:${routePath}`,
|
|
157
|
+
kind: 'route',
|
|
158
|
+
name: routePath,
|
|
159
|
+
qualifiedName: `${filePath}::route:${routePath}`,
|
|
160
|
+
filePath,
|
|
161
|
+
startLine: line,
|
|
162
|
+
endLine: line,
|
|
163
|
+
startColumn: 0,
|
|
164
|
+
endColumn: 0,
|
|
165
|
+
language: filePath.endsWith('.tsx') ? 'tsx' : 'jsx',
|
|
166
|
+
updatedAt: now,
|
|
167
|
+
};
|
|
168
|
+
nodes.push(routeNode);
|
|
169
|
+
references.push({
|
|
170
|
+
fromNodeId: routeNode.id,
|
|
171
|
+
referenceName: compMatch[1],
|
|
172
|
+
referenceKind: 'references',
|
|
173
|
+
line,
|
|
174
|
+
column: 0,
|
|
175
|
+
filePath,
|
|
176
|
+
language: filePath.endsWith('.tsx') ? 'tsx' : 'jsx',
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Extract Next.js pages/routes (pages directory convention)
|
|
181
|
+
if (filePath.includes('pages/') || filePath.includes('app/')) {
|
|
182
|
+
// Default export in pages becomes a route
|
|
183
|
+
if (content.includes('export default')) {
|
|
184
|
+
const routePath = filePathToRoute(filePath);
|
|
185
|
+
if (routePath) {
|
|
186
|
+
const line = content.indexOf('export default');
|
|
187
|
+
const lineNum = content.slice(0, line).split('\n').length;
|
|
188
|
+
nodes.push({
|
|
189
|
+
id: `route:${filePath}:${routePath}:${lineNum}`,
|
|
190
|
+
kind: 'route',
|
|
191
|
+
name: routePath,
|
|
192
|
+
qualifiedName: `${filePath}::route:${routePath}`,
|
|
193
|
+
filePath,
|
|
194
|
+
startLine: lineNum,
|
|
195
|
+
endLine: lineNum,
|
|
196
|
+
startColumn: 0,
|
|
197
|
+
endColumn: 0,
|
|
198
|
+
language: filePath.endsWith('.tsx') ? 'tsx' : filePath.endsWith('.ts') ? 'typescript' : 'javascript',
|
|
199
|
+
updatedAt: now,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return { nodes, references };
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Check if string is PascalCase
|
|
209
|
+
*/
|
|
210
|
+
function isPascalCase(str) {
|
|
211
|
+
return /^[A-Z][a-zA-Z0-9]*$/.test(str);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Check if name is a built-in type
|
|
215
|
+
*/
|
|
216
|
+
function isBuiltInType(name) {
|
|
217
|
+
return BUILT_IN_TYPES.has(name);
|
|
218
|
+
}
|
|
219
|
+
const BUILT_IN_TYPES = new Set([
|
|
220
|
+
'Array', 'Boolean', 'Date', 'Error', 'Function', 'JSON', 'Math', 'Number',
|
|
221
|
+
'Object', 'Promise', 'RegExp', 'String', 'Symbol', 'Map', 'Set', 'WeakMap', 'WeakSet',
|
|
222
|
+
'React', 'Component', 'Fragment', 'Suspense', 'StrictMode',
|
|
223
|
+
]);
|
|
224
|
+
const COMPONENT_KINDS = new Set(['component', 'function', 'class']);
|
|
225
|
+
/**
|
|
226
|
+
* Resolve a component reference using name-based lookup
|
|
227
|
+
*/
|
|
228
|
+
function resolveComponent(name, fromFile, context) {
|
|
229
|
+
const candidates = context.getNodesByName(name);
|
|
230
|
+
if (candidates.length === 0)
|
|
231
|
+
return null;
|
|
232
|
+
const components = candidates.filter((n) => COMPONENT_KINDS.has(n.kind));
|
|
233
|
+
if (components.length === 0)
|
|
234
|
+
return null;
|
|
235
|
+
// Prefer same directory
|
|
236
|
+
const fromDir = fromFile.substring(0, fromFile.lastIndexOf('/'));
|
|
237
|
+
const sameDir = components.filter((n) => n.filePath.startsWith(fromDir));
|
|
238
|
+
if (sameDir.length > 0)
|
|
239
|
+
return sameDir[0].id;
|
|
240
|
+
// Prefer component directories
|
|
241
|
+
const COMPONENT_DIRS = ['/components/', '/src/components/', '/app/components/', '/pages/', '/src/pages/', '/views/', '/src/views/'];
|
|
242
|
+
const preferred = components.filter((n) => COMPONENT_DIRS.some((d) => n.filePath.includes(d)));
|
|
243
|
+
if (preferred.length > 0)
|
|
244
|
+
return preferred[0].id;
|
|
245
|
+
// No positional signal: only an UNAMBIGUOUS name may resolve. Returning
|
|
246
|
+
// components[0] here picked an arbitrary same-named class anywhere in the
|
|
247
|
+
// repo (#764) — let the name-matcher's proximity scoring decide instead.
|
|
248
|
+
return components.length === 1 ? components[0].id : null;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Resolve a custom hook reference using name-based lookup
|
|
252
|
+
*/
|
|
253
|
+
function resolveHook(name, context) {
|
|
254
|
+
const candidates = context.getNodesByName(name);
|
|
255
|
+
if (candidates.length === 0)
|
|
256
|
+
return null;
|
|
257
|
+
const hooks = candidates.filter((n) => n.kind === 'function' && n.name.startsWith('use'));
|
|
258
|
+
if (hooks.length === 0)
|
|
259
|
+
return null;
|
|
260
|
+
// Prefer hooks directories
|
|
261
|
+
const HOOK_DIRS = ['/hooks/', '/src/hooks/', '/lib/hooks/', '/utils/hooks/'];
|
|
262
|
+
const preferred = hooks.filter((n) => HOOK_DIRS.some((d) => n.filePath.includes(d)));
|
|
263
|
+
if (preferred.length > 0)
|
|
264
|
+
return preferred[0].id;
|
|
265
|
+
return hooks[0].id;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Resolve a context reference using name-based lookup
|
|
269
|
+
*/
|
|
270
|
+
function resolveContext(name, context) {
|
|
271
|
+
const candidates = context.getNodesByName(name);
|
|
272
|
+
if (candidates.length === 0) {
|
|
273
|
+
// Try without Context/Provider suffix
|
|
274
|
+
const baseName = name.replace(/Context$|Provider$/, '');
|
|
275
|
+
if (baseName !== name) {
|
|
276
|
+
const baseCandidates = context.getNodesByName(baseName);
|
|
277
|
+
if (baseCandidates.length > 0)
|
|
278
|
+
return baseCandidates[0].id;
|
|
279
|
+
}
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
// Prefer context directories
|
|
283
|
+
const CONTEXT_DIRS = ['/context/', '/contexts/', '/src/context/', '/src/contexts/', '/providers/', '/src/providers/'];
|
|
284
|
+
const preferred = candidates.filter((n) => CONTEXT_DIRS.some((d) => n.filePath.includes(d)));
|
|
285
|
+
if (preferred.length > 0)
|
|
286
|
+
return preferred[0].id;
|
|
287
|
+
return candidates[0].id;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Convert file path to Next.js route
|
|
291
|
+
*/
|
|
292
|
+
function filePathToRoute(filePath) {
|
|
293
|
+
// pages/index.tsx -> /
|
|
294
|
+
// pages/about.tsx -> /about
|
|
295
|
+
// pages/blog/[slug].tsx -> /blog/:slug
|
|
296
|
+
// app/page.tsx -> /
|
|
297
|
+
// app/about/page.tsx -> /about
|
|
298
|
+
// Only real page-component files are routes. Exclude non-page extensions
|
|
299
|
+
// (.mjs/.json/.cjs), config files (next.config.ts, vite.config.ts…), and
|
|
300
|
+
// Next.js special files (_app/_document). This also stops a `*.config.mjs`
|
|
301
|
+
// with `export default` in a dir like `nextjs-pages/` from being a "route".
|
|
302
|
+
const base = filePath.split('/').pop() ?? '';
|
|
303
|
+
if (!/\.(tsx?|jsx?)$/.test(base))
|
|
304
|
+
return null;
|
|
305
|
+
if (base.startsWith('_') || /\.config\.[a-z]+$/.test(base))
|
|
306
|
+
return null;
|
|
307
|
+
// Match pages/ and app/ as PATH SEGMENTS (not a substring — `nextjs-pages/`
|
|
308
|
+
// must not count as a `pages/` router dir).
|
|
309
|
+
if (/(?:^|\/)pages\//.test(filePath)) {
|
|
310
|
+
let route = filePath
|
|
311
|
+
.replace(/^.*pages\//, '/')
|
|
312
|
+
.replace(/\/index\.(tsx?|jsx?)$/, '')
|
|
313
|
+
.replace(/\.(tsx?|jsx?)$/, '')
|
|
314
|
+
.replace(/\[([^\]]+)\]/g, ':$1');
|
|
315
|
+
if (route === '')
|
|
316
|
+
route = '/';
|
|
317
|
+
return route;
|
|
318
|
+
}
|
|
319
|
+
if (/(?:^|\/)app\//.test(filePath)) {
|
|
320
|
+
// App router - only page.tsx files are routes
|
|
321
|
+
if (!filePath.includes('page.')) {
|
|
322
|
+
return null;
|
|
323
|
+
}
|
|
324
|
+
let route = filePath
|
|
325
|
+
.replace(/^.*app\//, '/')
|
|
326
|
+
.replace(/\/page\.(tsx?|jsx?)$/, '')
|
|
327
|
+
.replace(/\[([^\]]+)\]/g, ':$1');
|
|
328
|
+
if (route === '')
|
|
329
|
+
route = '/';
|
|
330
|
+
return route;
|
|
331
|
+
}
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/react.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/ruby.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAG5F,eAAO,MAAM,aAAa,EAAE,iBAoL3B,CAAC"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ruby Framework Resolver
|
|
4
|
+
*
|
|
5
|
+
* Handles Ruby on Rails patterns.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.railsResolver = void 0;
|
|
9
|
+
const strip_comments_1 = require("../strip-comments");
|
|
10
|
+
exports.railsResolver = {
|
|
11
|
+
name: 'rails',
|
|
12
|
+
languages: ['ruby'],
|
|
13
|
+
// `controller#action` route refs name no declared symbol, so resolveOne's
|
|
14
|
+
// pre-filter would drop them before resolve() runs. Claim them (like the django
|
|
15
|
+
// `_iterable_class` hook) so they reach Pattern 0.
|
|
16
|
+
claimsReference(name) {
|
|
17
|
+
return /^[\w/]+#\w+$/.test(name);
|
|
18
|
+
},
|
|
19
|
+
detect(context) {
|
|
20
|
+
// Check for Gemfile with rails
|
|
21
|
+
const gemfile = context.readFile('Gemfile');
|
|
22
|
+
if (gemfile && gemfile.includes("'rails'")) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
// Check for config/application.rb (Rails signature)
|
|
26
|
+
if (context.fileExists('config/application.rb')) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
// Check for typical Rails directory structure
|
|
30
|
+
return (context.fileExists('app/controllers/application_controller.rb') ||
|
|
31
|
+
context.fileExists('config/routes.rb'));
|
|
32
|
+
},
|
|
33
|
+
resolve(ref, context) {
|
|
34
|
+
// Pattern 0: route action `controller#action` (from RESTful `resources` or an
|
|
35
|
+
// explicit route) → the action method in that controller. Precise — avoids the
|
|
36
|
+
// bare-`action` ambiguity (every controller has an `index`/`show`).
|
|
37
|
+
const ca = ref.referenceName.match(/^([\w/]+)#(\w+)$/);
|
|
38
|
+
if (ca) {
|
|
39
|
+
const result = resolveControllerAction(ca[1], ca[2], context);
|
|
40
|
+
if (result) {
|
|
41
|
+
return { original: ref, targetNodeId: result, confidence: 0.85, resolvedBy: 'framework' };
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
// Pattern 1: Model references (ActiveRecord)
|
|
46
|
+
if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
|
|
47
|
+
const result = resolveModel(ref.referenceName, context);
|
|
48
|
+
if (result) {
|
|
49
|
+
return {
|
|
50
|
+
original: ref,
|
|
51
|
+
targetNodeId: result,
|
|
52
|
+
confidence: 0.8,
|
|
53
|
+
resolvedBy: 'framework',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Pattern 2: Controller references
|
|
58
|
+
if (ref.referenceName.endsWith('Controller')) {
|
|
59
|
+
const result = resolveController(ref.referenceName, context);
|
|
60
|
+
if (result) {
|
|
61
|
+
return {
|
|
62
|
+
original: ref,
|
|
63
|
+
targetNodeId: result,
|
|
64
|
+
confidence: 0.85,
|
|
65
|
+
resolvedBy: 'framework',
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Pattern 3: Helper references
|
|
70
|
+
if (ref.referenceName.endsWith('Helper')) {
|
|
71
|
+
const result = resolveHelper(ref.referenceName, context);
|
|
72
|
+
if (result) {
|
|
73
|
+
return {
|
|
74
|
+
original: ref,
|
|
75
|
+
targetNodeId: result,
|
|
76
|
+
confidence: 0.8,
|
|
77
|
+
resolvedBy: 'framework',
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Pattern 4: Service/Job references
|
|
82
|
+
if (ref.referenceName.endsWith('Service') || ref.referenceName.endsWith('Job')) {
|
|
83
|
+
const result = resolveService(ref.referenceName, context);
|
|
84
|
+
if (result) {
|
|
85
|
+
return {
|
|
86
|
+
original: ref,
|
|
87
|
+
targetNodeId: result,
|
|
88
|
+
confidence: 0.8,
|
|
89
|
+
resolvedBy: 'framework',
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
},
|
|
95
|
+
extract(filePath, content) {
|
|
96
|
+
if (!filePath.endsWith('.rb'))
|
|
97
|
+
return { nodes: [], references: [] };
|
|
98
|
+
const nodes = [];
|
|
99
|
+
const references = [];
|
|
100
|
+
const now = Date.now();
|
|
101
|
+
const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'ruby');
|
|
102
|
+
// get/post/put/patch/delete/match '/path', to: 'controller#action'
|
|
103
|
+
// Also: get '/path' => 'controller#action'
|
|
104
|
+
const routeRegex = /\b(get|post|put|patch|delete|match)\s+['"]([^'"]+)['"]\s*(?:,\s*to:\s*|=>\s*)['"]([^#'"]+)#([^'"]+)['"]/g;
|
|
105
|
+
let match;
|
|
106
|
+
while ((match = routeRegex.exec(safe)) !== null) {
|
|
107
|
+
const [, method, routePath, ctrl, action] = match;
|
|
108
|
+
const line = safe.slice(0, match.index).split('\n').length;
|
|
109
|
+
const upper = method.toUpperCase();
|
|
110
|
+
const routeNode = {
|
|
111
|
+
id: `route:${filePath}:${line}:${upper}:${routePath}`,
|
|
112
|
+
kind: 'route',
|
|
113
|
+
name: `${upper} ${routePath}`,
|
|
114
|
+
qualifiedName: `${filePath}::route:${routePath}`,
|
|
115
|
+
filePath,
|
|
116
|
+
startLine: line,
|
|
117
|
+
endLine: line,
|
|
118
|
+
startColumn: 0,
|
|
119
|
+
endColumn: match[0].length,
|
|
120
|
+
language: 'ruby',
|
|
121
|
+
updatedAt: now,
|
|
122
|
+
};
|
|
123
|
+
nodes.push(routeNode);
|
|
124
|
+
references.push({
|
|
125
|
+
fromNodeId: routeNode.id,
|
|
126
|
+
referenceName: `${ctrl}#${action}`, // precise controller#action, not bare action
|
|
127
|
+
referenceKind: 'references',
|
|
128
|
+
line,
|
|
129
|
+
column: 0,
|
|
130
|
+
filePath,
|
|
131
|
+
language: 'ruby',
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
// RESTful resources: `resources :articles` / `resource :user` (the dominant
|
|
135
|
+
// Rails routing) generate a controller action per REST verb. The old resolver
|
|
136
|
+
// only saw explicit `get '/x' => 'c#a'` routes, so resource-routed apps had
|
|
137
|
+
// ZERO route nodes. Expand each into its actions → `controller#action` refs.
|
|
138
|
+
const resRegex = /\b(resources?)\s+:(\w+)([^\n]*)/g;
|
|
139
|
+
while ((match = resRegex.exec(safe)) !== null) {
|
|
140
|
+
const plural = match[1] === 'resources';
|
|
141
|
+
const resName = match[2];
|
|
142
|
+
const tail = match[3] || '';
|
|
143
|
+
let actions = plural ? PLURAL_ACTIONS : SINGULAR_ACTIONS;
|
|
144
|
+
const only = tail.match(/only:\s*\[([^\]]*)\]/);
|
|
145
|
+
const except = tail.match(/except:\s*\[([^\]]*)\]/);
|
|
146
|
+
const symList = (s) => new Set(s.split(',').map((x) => x.trim().replace(/^:/, '')));
|
|
147
|
+
if (only) {
|
|
148
|
+
const s = symList(only[1]);
|
|
149
|
+
actions = actions.filter((a) => s.has(a));
|
|
150
|
+
}
|
|
151
|
+
else if (except) {
|
|
152
|
+
const s = symList(except[1]);
|
|
153
|
+
actions = actions.filter((a) => !s.has(a));
|
|
154
|
+
}
|
|
155
|
+
// `resources :articles` → ArticlesController; `resource :user` → UsersController.
|
|
156
|
+
const ctrl = plural ? resName : pluralize(resName);
|
|
157
|
+
const line = safe.slice(0, match.index).split('\n').length;
|
|
158
|
+
for (const action of actions) {
|
|
159
|
+
const spec = RESTFUL_ROUTES[action];
|
|
160
|
+
const path = spec.path(resName);
|
|
161
|
+
const routeNode = {
|
|
162
|
+
id: `route:${filePath}:${line}:${spec.method}:${ctrl}#${action}`,
|
|
163
|
+
kind: 'route',
|
|
164
|
+
name: `${spec.method} ${path}`,
|
|
165
|
+
qualifiedName: `${filePath}::route:${ctrl}#${action}`,
|
|
166
|
+
filePath, startLine: line, endLine: line, startColumn: 0, endColumn: match[0].length,
|
|
167
|
+
language: 'ruby', updatedAt: now,
|
|
168
|
+
};
|
|
169
|
+
nodes.push(routeNode);
|
|
170
|
+
references.push({
|
|
171
|
+
fromNodeId: routeNode.id,
|
|
172
|
+
referenceName: `${ctrl}#${action}`,
|
|
173
|
+
referenceKind: 'references',
|
|
174
|
+
line, column: 0, filePath, language: 'ruby',
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return { nodes, references };
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
// Helper functions
|
|
182
|
+
// RESTful action → HTTP verb + path. `resources` gets all seven; a singular
|
|
183
|
+
// `resource` omits `index`.
|
|
184
|
+
const RESTFUL_ROUTES = {
|
|
185
|
+
index: { method: 'GET', path: (r) => `/${r}` },
|
|
186
|
+
create: { method: 'POST', path: (r) => `/${r}` },
|
|
187
|
+
new: { method: 'GET', path: (r) => `/${r}/new` },
|
|
188
|
+
show: { method: 'GET', path: (r) => `/${r}/:id` },
|
|
189
|
+
edit: { method: 'GET', path: (r) => `/${r}/:id/edit` },
|
|
190
|
+
update: { method: 'PATCH', path: (r) => `/${r}/:id` },
|
|
191
|
+
destroy: { method: 'DELETE', path: (r) => `/${r}/:id` },
|
|
192
|
+
};
|
|
193
|
+
const PLURAL_ACTIONS = ['index', 'create', 'new', 'show', 'edit', 'update', 'destroy'];
|
|
194
|
+
const SINGULAR_ACTIONS = ['create', 'new', 'show', 'edit', 'update', 'destroy'];
|
|
195
|
+
/** Naive ActiveSupport-style pluralize — covers the common resource names. */
|
|
196
|
+
function pluralize(w) {
|
|
197
|
+
if (/[^aeiou]y$/.test(w))
|
|
198
|
+
return w.slice(0, -1) + 'ies';
|
|
199
|
+
if (/(s|x|z|ch|sh)$/.test(w))
|
|
200
|
+
return w + 'es';
|
|
201
|
+
return w + 's';
|
|
202
|
+
}
|
|
203
|
+
/** snake_case → CamelCase (`user_profiles` → `UserProfiles`). */
|
|
204
|
+
function camelize(s) {
|
|
205
|
+
return s.split('_').map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join('');
|
|
206
|
+
}
|
|
207
|
+
/** Resolve a `controller#action` route ref to the action method in that controller. */
|
|
208
|
+
function resolveControllerAction(ctrlPath, action, context) {
|
|
209
|
+
// Rails convention: `articles` → app/controllers/articles_controller.rb.
|
|
210
|
+
const direct = `app/controllers/${ctrlPath}_controller.rb`;
|
|
211
|
+
if (context.fileExists(direct)) {
|
|
212
|
+
const m = context.getNodesInFile(direct).find((n) => (n.kind === 'method' || n.kind === 'function') && n.name === action);
|
|
213
|
+
if (m)
|
|
214
|
+
return m.id;
|
|
215
|
+
}
|
|
216
|
+
// Fall back: controller class by name, then the action method in its file.
|
|
217
|
+
const cls = camelize(ctrlPath.split('/').pop()) + 'Controller';
|
|
218
|
+
for (const ctrl of context.getNodesByName(cls).filter((n) => n.kind === 'class')) {
|
|
219
|
+
const m = context.getNodesInFile(ctrl.filePath).find((n) => (n.kind === 'method' || n.kind === 'function') && n.name === action);
|
|
220
|
+
if (m)
|
|
221
|
+
return m.id;
|
|
222
|
+
}
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
function resolveModel(name, context) {
|
|
226
|
+
// Try direct file path lookup first (Rails convention: CamelCase -> snake_case.rb)
|
|
227
|
+
const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
|
|
228
|
+
const possiblePaths = [
|
|
229
|
+
`app/models/${snakeName}.rb`,
|
|
230
|
+
`app/models/concerns/${snakeName}.rb`,
|
|
231
|
+
];
|
|
232
|
+
for (const modelPath of possiblePaths) {
|
|
233
|
+
if (context.fileExists(modelPath)) {
|
|
234
|
+
const nodes = context.getNodesInFile(modelPath);
|
|
235
|
+
const modelNode = nodes.find((n) => n.kind === 'class' && n.name === name);
|
|
236
|
+
if (modelNode) {
|
|
237
|
+
return modelNode.id;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Fall back to name-based lookup
|
|
242
|
+
const candidates = context.getNodesByName(name);
|
|
243
|
+
const modelNode = candidates.find((n) => n.kind === 'class' && n.filePath.includes('app/models/'));
|
|
244
|
+
if (modelNode)
|
|
245
|
+
return modelNode.id;
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
function resolveController(name, context) {
|
|
249
|
+
// Try direct file path lookup first
|
|
250
|
+
const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
|
|
251
|
+
const possiblePaths = [
|
|
252
|
+
`app/controllers/${snakeName}.rb`,
|
|
253
|
+
`app/controllers/api/${snakeName}.rb`,
|
|
254
|
+
`app/controllers/api/v1/${snakeName}.rb`,
|
|
255
|
+
];
|
|
256
|
+
for (const controllerPath of possiblePaths) {
|
|
257
|
+
if (context.fileExists(controllerPath)) {
|
|
258
|
+
const nodes = context.getNodesInFile(controllerPath);
|
|
259
|
+
const controllerNode = nodes.find((n) => n.kind === 'class' && n.name === name);
|
|
260
|
+
if (controllerNode) {
|
|
261
|
+
return controllerNode.id;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// Fall back to name-based lookup
|
|
266
|
+
const candidates = context.getNodesByName(name);
|
|
267
|
+
const controllerNode = candidates.find((n) => n.kind === 'class' && n.filePath.includes('controllers/'));
|
|
268
|
+
if (controllerNode)
|
|
269
|
+
return controllerNode.id;
|
|
270
|
+
return null;
|
|
271
|
+
}
|
|
272
|
+
function resolveHelper(name, context) {
|
|
273
|
+
const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
|
|
274
|
+
const helperPath = `app/helpers/${snakeName}.rb`;
|
|
275
|
+
if (context.fileExists(helperPath)) {
|
|
276
|
+
const nodes = context.getNodesInFile(helperPath);
|
|
277
|
+
const helperNode = nodes.find((n) => n.kind === 'module' && n.name === name);
|
|
278
|
+
if (helperNode) {
|
|
279
|
+
return helperNode.id;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
function resolveService(name, context) {
|
|
285
|
+
const snakeName = name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);
|
|
286
|
+
const possiblePaths = [
|
|
287
|
+
`app/services/${snakeName}.rb`,
|
|
288
|
+
`app/jobs/${snakeName}.rb`,
|
|
289
|
+
`app/workers/${snakeName}.rb`,
|
|
290
|
+
];
|
|
291
|
+
for (const servicePath of possiblePaths) {
|
|
292
|
+
if (context.fileExists(servicePath)) {
|
|
293
|
+
const nodes = context.getNodesInFile(servicePath);
|
|
294
|
+
const serviceNode = nodes.find((n) => n.kind === 'class' && n.name === name);
|
|
295
|
+
if (serviceNode) {
|
|
296
|
+
return serviceNode.id;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=ruby.js.map
|