@zbigniewsobiecki/squint 1.0.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 +1065 -0
- package/bin/dev.js +5 -0
- package/bin/run.js +5 -0
- package/dist/commands/_shared/db-helper.d.ts +18 -0
- package/dist/commands/_shared/db-helper.d.ts.map +1 -0
- package/dist/commands/_shared/db-helper.js +72 -0
- package/dist/commands/_shared/db-helper.js.map +1 -0
- package/dist/commands/_shared/flags.d.ts +20 -0
- package/dist/commands/_shared/flags.d.ts.map +1 -0
- package/dist/commands/_shared/flags.js +38 -0
- package/dist/commands/_shared/flags.js.map +1 -0
- package/dist/commands/_shared/index.d.ts +6 -0
- package/dist/commands/_shared/index.d.ts.map +1 -0
- package/dist/commands/_shared/index.js +6 -0
- package/dist/commands/_shared/index.js.map +1 -0
- package/dist/commands/_shared/output.d.ts +22 -0
- package/dist/commands/_shared/output.d.ts.map +1 -0
- package/dist/commands/_shared/output.js +36 -0
- package/dist/commands/_shared/output.js.map +1 -0
- package/dist/commands/_shared/source-reader.d.ts +23 -0
- package/dist/commands/_shared/source-reader.d.ts.map +1 -0
- package/dist/commands/_shared/source-reader.js +45 -0
- package/dist/commands/_shared/source-reader.js.map +1 -0
- package/dist/commands/_shared/symbol-resolver.d.ts +35 -0
- package/dist/commands/_shared/symbol-resolver.d.ts.map +1 -0
- package/dist/commands/_shared/symbol-resolver.js +102 -0
- package/dist/commands/_shared/symbol-resolver.js.map +1 -0
- package/dist/commands/browse.d.ts +13 -0
- package/dist/commands/browse.d.ts.map +1 -0
- package/dist/commands/browse.js +106 -0
- package/dist/commands/browse.js.map +1 -0
- package/dist/commands/domains/create.d.ts +15 -0
- package/dist/commands/domains/create.d.ts.map +1 -0
- package/dist/commands/domains/create.js +34 -0
- package/dist/commands/domains/create.js.map +1 -0
- package/dist/commands/domains/delete.d.ts +14 -0
- package/dist/commands/domains/delete.d.ts.map +1 -0
- package/dist/commands/domains/delete.js +41 -0
- package/dist/commands/domains/delete.js.map +1 -0
- package/dist/commands/domains/index.d.ts +2 -0
- package/dist/commands/domains/index.d.ts.map +1 -0
- package/dist/commands/domains/index.js +2 -0
- package/dist/commands/domains/index.js.map +1 -0
- package/dist/commands/domains/list.d.ts +12 -0
- package/dist/commands/domains/list.d.ts.map +1 -0
- package/dist/commands/domains/list.js +67 -0
- package/dist/commands/domains/list.js.map +1 -0
- package/dist/commands/domains/merge.d.ts +14 -0
- package/dist/commands/domains/merge.d.ts.map +1 -0
- package/dist/commands/domains/merge.js +40 -0
- package/dist/commands/domains/merge.js.map +1 -0
- package/dist/commands/domains/rename.d.ts +14 -0
- package/dist/commands/domains/rename.d.ts.map +1 -0
- package/dist/commands/domains/rename.js +33 -0
- package/dist/commands/domains/rename.js.map +1 -0
- package/dist/commands/domains/show.d.ts +14 -0
- package/dist/commands/domains/show.d.ts.map +1 -0
- package/dist/commands/domains/show.js +47 -0
- package/dist/commands/domains/show.js.map +1 -0
- package/dist/commands/domains/sync.d.ts +11 -0
- package/dist/commands/domains/sync.d.ts.map +1 -0
- package/dist/commands/domains/sync.js +33 -0
- package/dist/commands/domains/sync.js.map +1 -0
- package/dist/commands/domains/update.d.ts +14 -0
- package/dist/commands/domains/update.d.ts.map +1 -0
- package/dist/commands/domains/update.js +28 -0
- package/dist/commands/domains/update.js.map +1 -0
- package/dist/commands/features/assign.d.ts +16 -0
- package/dist/commands/features/assign.d.ts.map +1 -0
- package/dist/commands/features/assign.js +51 -0
- package/dist/commands/features/assign.js.map +1 -0
- package/dist/commands/features/create.d.ts +15 -0
- package/dist/commands/features/create.d.ts.map +1 -0
- package/dist/commands/features/create.js +30 -0
- package/dist/commands/features/create.js.map +1 -0
- package/dist/commands/features/delete.d.ts +14 -0
- package/dist/commands/features/delete.d.ts.map +1 -0
- package/dist/commands/features/delete.js +37 -0
- package/dist/commands/features/delete.js.map +1 -0
- package/dist/commands/features/generate.d.ts +34 -0
- package/dist/commands/features/generate.d.ts.map +1 -0
- package/dist/commands/features/generate.js +178 -0
- package/dist/commands/features/generate.js.map +1 -0
- package/dist/commands/features/index.d.ts +2 -0
- package/dist/commands/features/index.d.ts.map +1 -0
- package/dist/commands/features/index.js +2 -0
- package/dist/commands/features/index.js.map +1 -0
- package/dist/commands/features/list.d.ts +11 -0
- package/dist/commands/features/list.d.ts.map +1 -0
- package/dist/commands/features/list.js +45 -0
- package/dist/commands/features/list.js.map +1 -0
- package/dist/commands/features/show.d.ts +15 -0
- package/dist/commands/features/show.d.ts.map +1 -0
- package/dist/commands/features/show.js +61 -0
- package/dist/commands/features/show.js.map +1 -0
- package/dist/commands/features/unassign.d.ts +16 -0
- package/dist/commands/features/unassign.d.ts.map +1 -0
- package/dist/commands/features/unassign.js +55 -0
- package/dist/commands/features/unassign.js.map +1 -0
- package/dist/commands/features/update.d.ts +16 -0
- package/dist/commands/features/update.d.ts.map +1 -0
- package/dist/commands/features/update.js +54 -0
- package/dist/commands/features/update.js.map +1 -0
- package/dist/commands/files/imported-by.d.ts +13 -0
- package/dist/commands/files/imported-by.d.ts.map +1 -0
- package/dist/commands/files/imported-by.js +40 -0
- package/dist/commands/files/imported-by.js.map +1 -0
- package/dist/commands/files/imports.d.ts +14 -0
- package/dist/commands/files/imports.d.ts.map +1 -0
- package/dist/commands/files/imports.js +48 -0
- package/dist/commands/files/imports.js.map +1 -0
- package/dist/commands/files/index.d.ts +2 -0
- package/dist/commands/files/index.d.ts.map +1 -0
- package/dist/commands/files/index.js +2 -0
- package/dist/commands/files/index.js.map +1 -0
- package/dist/commands/files/list.d.ts +11 -0
- package/dist/commands/files/list.d.ts.map +1 -0
- package/dist/commands/files/list.js +35 -0
- package/dist/commands/files/list.js.map +1 -0
- package/dist/commands/files/orphans.d.ts +12 -0
- package/dist/commands/files/orphans.d.ts.map +1 -0
- package/dist/commands/files/orphans.js +43 -0
- package/dist/commands/files/orphans.js.map +1 -0
- package/dist/commands/files/show.d.ts +14 -0
- package/dist/commands/files/show.d.ts.map +1 -0
- package/dist/commands/files/show.js +95 -0
- package/dist/commands/files/show.js.map +1 -0
- package/dist/commands/flows/add-step.d.ts +19 -0
- package/dist/commands/flows/add-step.d.ts.map +1 -0
- package/dist/commands/flows/add-step.js +46 -0
- package/dist/commands/flows/add-step.js.map +1 -0
- package/dist/commands/flows/create.d.ts +17 -0
- package/dist/commands/flows/create.d.ts.map +1 -0
- package/dist/commands/flows/create.js +39 -0
- package/dist/commands/flows/create.js.map +1 -0
- package/dist/commands/flows/delete.d.ts +14 -0
- package/dist/commands/flows/delete.d.ts.map +1 -0
- package/dist/commands/flows/delete.js +37 -0
- package/dist/commands/flows/delete.js.map +1 -0
- package/dist/commands/flows/generate.d.ts +50 -0
- package/dist/commands/flows/generate.d.ts.map +1 -0
- package/dist/commands/flows/generate.js +438 -0
- package/dist/commands/flows/generate.js.map +1 -0
- package/dist/commands/flows/index.d.ts +2 -0
- package/dist/commands/flows/index.d.ts.map +1 -0
- package/dist/commands/flows/index.js +2 -0
- package/dist/commands/flows/index.js.map +1 -0
- package/dist/commands/flows/list.d.ts +12 -0
- package/dist/commands/flows/list.d.ts.map +1 -0
- package/dist/commands/flows/list.js +98 -0
- package/dist/commands/flows/list.js.map +1 -0
- package/dist/commands/flows/remove-step.d.ts +18 -0
- package/dist/commands/flows/remove-step.d.ts.map +1 -0
- package/dist/commands/flows/remove-step.js +41 -0
- package/dist/commands/flows/remove-step.js.map +1 -0
- package/dist/commands/flows/show.d.ts +17 -0
- package/dist/commands/flows/show.d.ts.map +1 -0
- package/dist/commands/flows/show.js +136 -0
- package/dist/commands/flows/show.js.map +1 -0
- package/dist/commands/flows/trace.d.ts +22 -0
- package/dist/commands/flows/trace.d.ts.map +1 -0
- package/dist/commands/flows/trace.js +217 -0
- package/dist/commands/flows/trace.js.map +1 -0
- package/dist/commands/flows/update.d.ts +17 -0
- package/dist/commands/flows/update.d.ts.map +1 -0
- package/dist/commands/flows/update.js +60 -0
- package/dist/commands/flows/update.js.map +1 -0
- package/dist/commands/flows/verify.d.ts +21 -0
- package/dist/commands/flows/verify.d.ts.map +1 -0
- package/dist/commands/flows/verify.js +123 -0
- package/dist/commands/flows/verify.js.map +1 -0
- package/dist/commands/gaps.d.ts +14 -0
- package/dist/commands/gaps.d.ts.map +1 -0
- package/dist/commands/gaps.js +184 -0
- package/dist/commands/gaps.js.map +1 -0
- package/dist/commands/hierarchy/index.d.ts +20 -0
- package/dist/commands/hierarchy/index.d.ts.map +1 -0
- package/dist/commands/hierarchy/index.js +344 -0
- package/dist/commands/hierarchy/index.js.map +1 -0
- package/dist/commands/ingest.d.ts +23 -0
- package/dist/commands/ingest.d.ts.map +1 -0
- package/dist/commands/ingest.js +249 -0
- package/dist/commands/ingest.js.map +1 -0
- package/dist/commands/interactions/create.d.ts +16 -0
- package/dist/commands/interactions/create.d.ts.map +1 -0
- package/dist/commands/interactions/create.js +58 -0
- package/dist/commands/interactions/create.js.map +1 -0
- package/dist/commands/interactions/delete.d.ts +16 -0
- package/dist/commands/interactions/delete.d.ts.map +1 -0
- package/dist/commands/interactions/delete.js +28 -0
- package/dist/commands/interactions/delete.js.map +1 -0
- package/dist/commands/interactions/generate.d.ts +62 -0
- package/dist/commands/interactions/generate.d.ts.map +1 -0
- package/dist/commands/interactions/generate.js +870 -0
- package/dist/commands/interactions/generate.js.map +1 -0
- package/dist/commands/interactions/index.d.ts +2 -0
- package/dist/commands/interactions/index.d.ts.map +1 -0
- package/dist/commands/interactions/index.js +2 -0
- package/dist/commands/interactions/index.js.map +1 -0
- package/dist/commands/interactions/list.d.ts +15 -0
- package/dist/commands/interactions/list.d.ts.map +1 -0
- package/dist/commands/interactions/list.js +127 -0
- package/dist/commands/interactions/list.js.map +1 -0
- package/dist/commands/interactions/show.d.ts +17 -0
- package/dist/commands/interactions/show.d.ts.map +1 -0
- package/dist/commands/interactions/show.js +80 -0
- package/dist/commands/interactions/show.js.map +1 -0
- package/dist/commands/interactions/update.d.ts +20 -0
- package/dist/commands/interactions/update.d.ts.map +1 -0
- package/dist/commands/interactions/update.js +57 -0
- package/dist/commands/interactions/update.js.map +1 -0
- package/dist/commands/interactions/validate.d.ts +12 -0
- package/dist/commands/interactions/validate.d.ts.map +1 -0
- package/dist/commands/interactions/validate.js +94 -0
- package/dist/commands/interactions/validate.js.map +1 -0
- package/dist/commands/interactions/verify.d.ts +18 -0
- package/dist/commands/interactions/verify.d.ts.map +1 -0
- package/dist/commands/interactions/verify.js +127 -0
- package/dist/commands/interactions/verify.js.map +1 -0
- package/dist/commands/llm/_shared/base-llm-command.d.ts +44 -0
- package/dist/commands/llm/_shared/base-llm-command.d.ts.map +1 -0
- package/dist/commands/llm/_shared/base-llm-command.js +73 -0
- package/dist/commands/llm/_shared/base-llm-command.js.map +1 -0
- package/dist/commands/llm/_shared/coverage.d.ts +61 -0
- package/dist/commands/llm/_shared/coverage.d.ts.map +1 -0
- package/dist/commands/llm/_shared/coverage.js +161 -0
- package/dist/commands/llm/_shared/coverage.js.map +1 -0
- package/dist/commands/llm/_shared/csv-utils.d.ts +65 -0
- package/dist/commands/llm/_shared/csv-utils.d.ts.map +1 -0
- package/dist/commands/llm/_shared/csv-utils.js +231 -0
- package/dist/commands/llm/_shared/csv-utils.js.map +1 -0
- package/dist/commands/llm/_shared/csv.d.ts +44 -0
- package/dist/commands/llm/_shared/csv.d.ts.map +1 -0
- package/dist/commands/llm/_shared/csv.js +76 -0
- package/dist/commands/llm/_shared/csv.js.map +1 -0
- package/dist/commands/llm/_shared/entity-utils.d.ts +11 -0
- package/dist/commands/llm/_shared/entity-utils.d.ts.map +1 -0
- package/dist/commands/llm/_shared/entity-utils.js +87 -0
- package/dist/commands/llm/_shared/entity-utils.js.map +1 -0
- package/dist/commands/llm/_shared/flow-csv.d.ts +74 -0
- package/dist/commands/llm/_shared/flow-csv.d.ts.map +1 -0
- package/dist/commands/llm/_shared/flow-csv.js +198 -0
- package/dist/commands/llm/_shared/flow-csv.js.map +1 -0
- package/dist/commands/llm/_shared/flow-prompts.d.ts +61 -0
- package/dist/commands/llm/_shared/flow-prompts.d.ts.map +1 -0
- package/dist/commands/llm/_shared/flow-prompts.js +281 -0
- package/dist/commands/llm/_shared/flow-prompts.js.map +1 -0
- package/dist/commands/llm/_shared/flow-validation.d.ts +69 -0
- package/dist/commands/llm/_shared/flow-validation.d.ts.map +1 -0
- package/dist/commands/llm/_shared/flow-validation.js +176 -0
- package/dist/commands/llm/_shared/flow-validation.js.map +1 -0
- package/dist/commands/llm/_shared/llm-utils.d.ts +88 -0
- package/dist/commands/llm/_shared/llm-utils.d.ts.map +1 -0
- package/dist/commands/llm/_shared/llm-utils.js +256 -0
- package/dist/commands/llm/_shared/llm-utils.js.map +1 -0
- package/dist/commands/llm/_shared/module-csv.d.ts +76 -0
- package/dist/commands/llm/_shared/module-csv.d.ts.map +1 -0
- package/dist/commands/llm/_shared/module-csv.js +196 -0
- package/dist/commands/llm/_shared/module-csv.js.map +1 -0
- package/dist/commands/llm/_shared/module-prompts.d.ts +107 -0
- package/dist/commands/llm/_shared/module-prompts.d.ts.map +1 -0
- package/dist/commands/llm/_shared/module-prompts.js +395 -0
- package/dist/commands/llm/_shared/module-prompts.js.map +1 -0
- package/dist/commands/llm/_shared/process-utils.d.ts +52 -0
- package/dist/commands/llm/_shared/process-utils.d.ts.map +1 -0
- package/dist/commands/llm/_shared/process-utils.js +214 -0
- package/dist/commands/llm/_shared/process-utils.js.map +1 -0
- package/dist/commands/llm/_shared/prompts.d.ts +132 -0
- package/dist/commands/llm/_shared/prompts.d.ts.map +1 -0
- package/dist/commands/llm/_shared/prompts.js +391 -0
- package/dist/commands/llm/_shared/prompts.js.map +1 -0
- package/dist/commands/llm/_shared/pure-check.d.ts +10 -0
- package/dist/commands/llm/_shared/pure-check.d.ts.map +1 -0
- package/dist/commands/llm/_shared/pure-check.js +449 -0
- package/dist/commands/llm/_shared/pure-check.js.map +1 -0
- package/dist/commands/llm/_shared/verify/content-verifier.d.ts +40 -0
- package/dist/commands/llm/_shared/verify/content-verifier.d.ts.map +1 -0
- package/dist/commands/llm/_shared/verify/content-verifier.js +247 -0
- package/dist/commands/llm/_shared/verify/content-verifier.js.map +1 -0
- package/dist/commands/llm/_shared/verify/coverage-checker.d.ts +34 -0
- package/dist/commands/llm/_shared/verify/coverage-checker.d.ts.map +1 -0
- package/dist/commands/llm/_shared/verify/coverage-checker.js +1096 -0
- package/dist/commands/llm/_shared/verify/coverage-checker.js.map +1 -0
- package/dist/commands/llm/_shared/verify/verify-prompts.d.ts +30 -0
- package/dist/commands/llm/_shared/verify/verify-prompts.d.ts.map +1 -0
- package/dist/commands/llm/_shared/verify/verify-prompts.js +118 -0
- package/dist/commands/llm/_shared/verify/verify-prompts.js.map +1 -0
- package/dist/commands/llm/_shared/verify/verify-types.d.ts +47 -0
- package/dist/commands/llm/_shared/verify/verify-types.d.ts.map +1 -0
- package/dist/commands/llm/_shared/verify/verify-types.js +2 -0
- package/dist/commands/llm/_shared/verify/verify-types.js.map +1 -0
- package/dist/commands/llm/annotate.d.ts +7 -0
- package/dist/commands/llm/annotate.d.ts.map +1 -0
- package/dist/commands/llm/annotate.js +11 -0
- package/dist/commands/llm/annotate.js.map +1 -0
- package/dist/commands/llm/features/feature-grouper.d.ts +31 -0
- package/dist/commands/llm/features/feature-grouper.d.ts.map +1 -0
- package/dist/commands/llm/features/feature-grouper.js +223 -0
- package/dist/commands/llm/features/feature-grouper.js.map +1 -0
- package/dist/commands/llm/features/index.d.ts +6 -0
- package/dist/commands/llm/features/index.d.ts.map +1 -0
- package/dist/commands/llm/features/index.js +6 -0
- package/dist/commands/llm/features/index.js.map +1 -0
- package/dist/commands/llm/features/types.d.ts +10 -0
- package/dist/commands/llm/features/types.d.ts.map +1 -0
- package/dist/commands/llm/features/types.js +5 -0
- package/dist/commands/llm/features/types.js.map +1 -0
- package/dist/commands/llm/features.d.ts +7 -0
- package/dist/commands/llm/features.d.ts.map +1 -0
- package/dist/commands/llm/features.js +11 -0
- package/dist/commands/llm/features.js.map +1 -0
- package/dist/commands/llm/flows/atomic-flow-builder.d.ts +51 -0
- package/dist/commands/llm/flows/atomic-flow-builder.d.ts.map +1 -0
- package/dist/commands/llm/flows/atomic-flow-builder.js +247 -0
- package/dist/commands/llm/flows/atomic-flow-builder.js.map +1 -0
- package/dist/commands/llm/flows/dedup.d.ts +18 -0
- package/dist/commands/llm/flows/dedup.d.ts.map +1 -0
- package/dist/commands/llm/flows/dedup.js +76 -0
- package/dist/commands/llm/flows/dedup.js.map +1 -0
- package/dist/commands/llm/flows/entry-point-detector.d.ts +41 -0
- package/dist/commands/llm/flows/entry-point-detector.d.ts.map +1 -0
- package/dist/commands/llm/flows/entry-point-detector.js +388 -0
- package/dist/commands/llm/flows/entry-point-detector.js.map +1 -0
- package/dist/commands/llm/flows/flow-enhancer.d.ts +21 -0
- package/dist/commands/llm/flows/flow-enhancer.d.ts.map +1 -0
- package/dist/commands/llm/flows/flow-enhancer.js +166 -0
- package/dist/commands/llm/flows/flow-enhancer.js.map +1 -0
- package/dist/commands/llm/flows/flow-tracer.d.ts +50 -0
- package/dist/commands/llm/flows/flow-tracer.d.ts.map +1 -0
- package/dist/commands/llm/flows/flow-tracer.js +271 -0
- package/dist/commands/llm/flows/flow-tracer.js.map +1 -0
- package/dist/commands/llm/flows/flow-validator.d.ts +31 -0
- package/dist/commands/llm/flows/flow-validator.d.ts.map +1 -0
- package/dist/commands/llm/flows/flow-validator.js +262 -0
- package/dist/commands/llm/flows/flow-validator.js.map +1 -0
- package/dist/commands/llm/flows/gap-flow-generator.d.ts +13 -0
- package/dist/commands/llm/flows/gap-flow-generator.d.ts.map +1 -0
- package/dist/commands/llm/flows/gap-flow-generator.js +48 -0
- package/dist/commands/llm/flows/gap-flow-generator.js.map +1 -0
- package/dist/commands/llm/flows/index.d.ts +12 -0
- package/dist/commands/llm/flows/index.d.ts.map +1 -0
- package/dist/commands/llm/flows/index.js +12 -0
- package/dist/commands/llm/flows/index.js.map +1 -0
- package/dist/commands/llm/flows/types.d.ts +87 -0
- package/dist/commands/llm/flows/types.d.ts.map +1 -0
- package/dist/commands/llm/flows/types.js +5 -0
- package/dist/commands/llm/flows/types.js.map +1 -0
- package/dist/commands/llm/flows.d.ts +7 -0
- package/dist/commands/llm/flows.d.ts.map +1 -0
- package/dist/commands/llm/flows.js +11 -0
- package/dist/commands/llm/flows.js.map +1 -0
- package/dist/commands/llm/interactions.d.ts +7 -0
- package/dist/commands/llm/interactions.d.ts.map +1 -0
- package/dist/commands/llm/interactions.js +11 -0
- package/dist/commands/llm/interactions.js.map +1 -0
- package/dist/commands/llm/modules.d.ts +7 -0
- package/dist/commands/llm/modules.d.ts.map +1 -0
- package/dist/commands/llm/modules.js +11 -0
- package/dist/commands/llm/modules.js.map +1 -0
- package/dist/commands/llm/relationships.d.ts +7 -0
- package/dist/commands/llm/relationships.d.ts.map +1 -0
- package/dist/commands/llm/relationships.js +11 -0
- package/dist/commands/llm/relationships.js.map +1 -0
- package/dist/commands/modules/assign.d.ts +14 -0
- package/dist/commands/modules/assign.d.ts.map +1 -0
- package/dist/commands/modules/assign.js +54 -0
- package/dist/commands/modules/assign.js.map +1 -0
- package/dist/commands/modules/create.d.ts +16 -0
- package/dist/commands/modules/create.d.ts.map +1 -0
- package/dist/commands/modules/create.js +37 -0
- package/dist/commands/modules/create.js.map +1 -0
- package/dist/commands/modules/delete.d.ts +14 -0
- package/dist/commands/modules/delete.d.ts.map +1 -0
- package/dist/commands/modules/delete.js +54 -0
- package/dist/commands/modules/delete.js.map +1 -0
- package/dist/commands/modules/generate.d.ts +84 -0
- package/dist/commands/modules/generate.d.ts.map +1 -0
- package/dist/commands/modules/generate.js +1234 -0
- package/dist/commands/modules/generate.js.map +1 -0
- package/dist/commands/modules/index.d.ts +2 -0
- package/dist/commands/modules/index.d.ts.map +1 -0
- package/dist/commands/modules/index.js +2 -0
- package/dist/commands/modules/index.js.map +1 -0
- package/dist/commands/modules/list.d.ts +13 -0
- package/dist/commands/modules/list.d.ts.map +1 -0
- package/dist/commands/modules/list.js +92 -0
- package/dist/commands/modules/list.js.map +1 -0
- package/dist/commands/modules/prune.d.ts +10 -0
- package/dist/commands/modules/prune.d.ts.map +1 -0
- package/dist/commands/modules/prune.js +23 -0
- package/dist/commands/modules/prune.js.map +1 -0
- package/dist/commands/modules/show.d.ts +15 -0
- package/dist/commands/modules/show.d.ts.map +1 -0
- package/dist/commands/modules/show.js +95 -0
- package/dist/commands/modules/show.js.map +1 -0
- package/dist/commands/modules/unassign.d.ts +13 -0
- package/dist/commands/modules/unassign.d.ts.map +1 -0
- package/dist/commands/modules/unassign.js +49 -0
- package/dist/commands/modules/unassign.js.map +1 -0
- package/dist/commands/modules/update.d.ts +15 -0
- package/dist/commands/modules/update.d.ts.map +1 -0
- package/dist/commands/modules/update.js +50 -0
- package/dist/commands/modules/update.js.map +1 -0
- package/dist/commands/modules/verify.d.ts +18 -0
- package/dist/commands/modules/verify.d.ts.map +1 -0
- package/dist/commands/modules/verify.js +114 -0
- package/dist/commands/modules/verify.js.map +1 -0
- package/dist/commands/overview.d.ts +12 -0
- package/dist/commands/overview.d.ts.map +1 -0
- package/dist/commands/overview.js +219 -0
- package/dist/commands/overview.js.map +1 -0
- package/dist/commands/parse.d.ts +30 -0
- package/dist/commands/parse.d.ts.map +1 -0
- package/dist/commands/parse.js +211 -0
- package/dist/commands/parse.js.map +1 -0
- package/dist/commands/process-groups/index.d.ts +2 -0
- package/dist/commands/process-groups/index.d.ts.map +1 -0
- package/dist/commands/process-groups/index.js +2 -0
- package/dist/commands/process-groups/index.js.map +1 -0
- package/dist/commands/process-groups/list.d.ts +11 -0
- package/dist/commands/process-groups/list.d.ts.map +1 -0
- package/dist/commands/process-groups/list.js +98 -0
- package/dist/commands/process-groups/list.js.map +1 -0
- package/dist/commands/relationships/annotate.d.ts +27 -0
- package/dist/commands/relationships/annotate.d.ts.map +1 -0
- package/dist/commands/relationships/annotate.js +453 -0
- package/dist/commands/relationships/annotate.js.map +1 -0
- package/dist/commands/relationships/index.d.ts +2 -0
- package/dist/commands/relationships/index.d.ts.map +1 -0
- package/dist/commands/relationships/index.js +2 -0
- package/dist/commands/relationships/index.js.map +1 -0
- package/dist/commands/relationships/list.d.ts +18 -0
- package/dist/commands/relationships/list.d.ts.map +1 -0
- package/dist/commands/relationships/list.js +147 -0
- package/dist/commands/relationships/list.js.map +1 -0
- package/dist/commands/relationships/next.d.ts +17 -0
- package/dist/commands/relationships/next.d.ts.map +1 -0
- package/dist/commands/relationships/next.js +178 -0
- package/dist/commands/relationships/next.js.map +1 -0
- package/dist/commands/relationships/set.d.ts +19 -0
- package/dist/commands/relationships/set.d.ts.map +1 -0
- package/dist/commands/relationships/set.js +65 -0
- package/dist/commands/relationships/set.js.map +1 -0
- package/dist/commands/relationships/show.d.ts +13 -0
- package/dist/commands/relationships/show.d.ts.map +1 -0
- package/dist/commands/relationships/show.js +59 -0
- package/dist/commands/relationships/show.js.map +1 -0
- package/dist/commands/relationships/unset.d.ts +16 -0
- package/dist/commands/relationships/unset.d.ts.map +1 -0
- package/dist/commands/relationships/unset.js +62 -0
- package/dist/commands/relationships/unset.js.map +1 -0
- package/dist/commands/relationships/verify.d.ts +24 -0
- package/dist/commands/relationships/verify.d.ts.map +1 -0
- package/dist/commands/relationships/verify.js +328 -0
- package/dist/commands/relationships/verify.js.map +1 -0
- package/dist/commands/stats.d.ts +11 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +207 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/symbols/annotate.d.ts +32 -0
- package/dist/commands/symbols/annotate.d.ts.map +1 -0
- package/dist/commands/symbols/annotate.js +862 -0
- package/dist/commands/symbols/annotate.js.map +1 -0
- package/dist/commands/symbols/deps.d.ts +18 -0
- package/dist/commands/symbols/deps.d.ts.map +1 -0
- package/dist/commands/symbols/deps.js +104 -0
- package/dist/commands/symbols/deps.js.map +1 -0
- package/dist/commands/symbols/index.d.ts +2 -0
- package/dist/commands/symbols/index.d.ts.map +1 -0
- package/dist/commands/symbols/index.js +2 -0
- package/dist/commands/symbols/index.js.map +1 -0
- package/dist/commands/symbols/list.d.ts +17 -0
- package/dist/commands/symbols/list.d.ts.map +1 -0
- package/dist/commands/symbols/list.js +136 -0
- package/dist/commands/symbols/list.js.map +1 -0
- package/dist/commands/symbols/next.d.ts +15 -0
- package/dist/commands/symbols/next.d.ts.map +1 -0
- package/dist/commands/symbols/next.js +147 -0
- package/dist/commands/symbols/next.js.map +1 -0
- package/dist/commands/symbols/prereqs.d.ts +18 -0
- package/dist/commands/symbols/prereqs.d.ts.map +1 -0
- package/dist/commands/symbols/prereqs.js +107 -0
- package/dist/commands/symbols/prereqs.js.map +1 -0
- package/dist/commands/symbols/ready.d.ts +17 -0
- package/dist/commands/symbols/ready.d.ts.map +1 -0
- package/dist/commands/symbols/ready.js +126 -0
- package/dist/commands/symbols/ready.js.map +1 -0
- package/dist/commands/symbols/set.d.ts +27 -0
- package/dist/commands/symbols/set.d.ts.map +1 -0
- package/dist/commands/symbols/set.js +241 -0
- package/dist/commands/symbols/set.js.map +1 -0
- package/dist/commands/symbols/show.d.ts +19 -0
- package/dist/commands/symbols/show.d.ts.map +1 -0
- package/dist/commands/symbols/show.js +182 -0
- package/dist/commands/symbols/show.js.map +1 -0
- package/dist/commands/symbols/understood.d.ts +15 -0
- package/dist/commands/symbols/understood.d.ts.map +1 -0
- package/dist/commands/symbols/understood.js +101 -0
- package/dist/commands/symbols/understood.js.map +1 -0
- package/dist/commands/symbols/unset.d.ts +16 -0
- package/dist/commands/symbols/unset.d.ts.map +1 -0
- package/dist/commands/symbols/unset.js +48 -0
- package/dist/commands/symbols/unset.js.map +1 -0
- package/dist/commands/symbols/verify.d.ts +25 -0
- package/dist/commands/symbols/verify.d.ts.map +1 -0
- package/dist/commands/symbols/verify.js +360 -0
- package/dist/commands/symbols/verify.js.map +1 -0
- package/dist/db/connection.d.ts +14 -0
- package/dist/db/connection.d.ts.map +1 -0
- package/dist/db/connection.js +37 -0
- package/dist/db/connection.js.map +1 -0
- package/dist/db/database-facade.d.ts +125 -0
- package/dist/db/database-facade.d.ts.map +1 -0
- package/dist/db/database-facade.js +347 -0
- package/dist/db/database-facade.js.map +1 -0
- package/dist/db/database.d.ts +9 -0
- package/dist/db/database.d.ts.map +1 -0
- package/dist/db/database.js +11 -0
- package/dist/db/database.js.map +1 -0
- package/dist/db/index.d.ts +7 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +11 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/repositories/_shared/call-graph-query.d.ts +10 -0
- package/dist/db/repositories/_shared/call-graph-query.d.ts.map +1 -0
- package/dist/db/repositories/_shared/call-graph-query.js +59 -0
- package/dist/db/repositories/_shared/call-graph-query.js.map +1 -0
- package/dist/db/repositories/call-graph-service.d.ts +28 -0
- package/dist/db/repositories/call-graph-service.d.ts.map +1 -0
- package/dist/db/repositories/call-graph-service.js +223 -0
- package/dist/db/repositories/call-graph-service.js.map +1 -0
- package/dist/db/repositories/definition-repository.d.ts +99 -0
- package/dist/db/repositories/definition-repository.d.ts.map +1 -0
- package/dist/db/repositories/definition-repository.js +317 -0
- package/dist/db/repositories/definition-repository.js.map +1 -0
- package/dist/db/repositories/dependency-repository.d.ts +78 -0
- package/dist/db/repositories/dependency-repository.d.ts.map +1 -0
- package/dist/db/repositories/dependency-repository.js +446 -0
- package/dist/db/repositories/dependency-repository.js.map +1 -0
- package/dist/db/repositories/domain-repository.d.ts +97 -0
- package/dist/db/repositories/domain-repository.d.ts.map +1 -0
- package/dist/db/repositories/domain-repository.js +261 -0
- package/dist/db/repositories/domain-repository.js.map +1 -0
- package/dist/db/repositories/feature-repository.d.ts +64 -0
- package/dist/db/repositories/feature-repository.d.ts.map +1 -0
- package/dist/db/repositories/feature-repository.js +189 -0
- package/dist/db/repositories/feature-repository.js.map +1 -0
- package/dist/db/repositories/file-repository.d.ts +67 -0
- package/dist/db/repositories/file-repository.d.ts.map +1 -0
- package/dist/db/repositories/file-repository.js +179 -0
- package/dist/db/repositories/file-repository.js.map +1 -0
- package/dist/db/repositories/flow-repository.d.ts +172 -0
- package/dist/db/repositories/flow-repository.d.ts.map +1 -0
- package/dist/db/repositories/flow-repository.js +599 -0
- package/dist/db/repositories/flow-repository.js.map +1 -0
- package/dist/db/repositories/graph-repository.d.ts +93 -0
- package/dist/db/repositories/graph-repository.d.ts.map +1 -0
- package/dist/db/repositories/graph-repository.js +413 -0
- package/dist/db/repositories/graph-repository.js.map +1 -0
- package/dist/db/repositories/index.d.ts +20 -0
- package/dist/db/repositories/index.d.ts.map +1 -0
- package/dist/db/repositories/index.js +15 -0
- package/dist/db/repositories/index.js.map +1 -0
- package/dist/db/repositories/interaction-analysis.d.ts +78 -0
- package/dist/db/repositories/interaction-analysis.d.ts.map +1 -0
- package/dist/db/repositories/interaction-analysis.js +340 -0
- package/dist/db/repositories/interaction-analysis.js.map +1 -0
- package/dist/db/repositories/interaction-repository.d.ts +145 -0
- package/dist/db/repositories/interaction-repository.d.ts.map +1 -0
- package/dist/db/repositories/interaction-repository.js +395 -0
- package/dist/db/repositories/interaction-repository.js.map +1 -0
- package/dist/db/repositories/metadata-repository.d.ts +110 -0
- package/dist/db/repositories/metadata-repository.d.ts.map +1 -0
- package/dist/db/repositories/metadata-repository.js +294 -0
- package/dist/db/repositories/metadata-repository.js.map +1 -0
- package/dist/db/repositories/module-repository.d.ts +162 -0
- package/dist/db/repositories/module-repository.d.ts.map +1 -0
- package/dist/db/repositories/module-repository.js +519 -0
- package/dist/db/repositories/module-repository.js.map +1 -0
- package/dist/db/repositories/relationship-repository.d.ts +98 -0
- package/dist/db/repositories/relationship-repository.d.ts.map +1 -0
- package/dist/db/repositories/relationship-repository.js +421 -0
- package/dist/db/repositories/relationship-repository.js.map +1 -0
- package/dist/db/schema-manager.d.ts +31 -0
- package/dist/db/schema-manager.d.ts.map +1 -0
- package/dist/db/schema-manager.js +398 -0
- package/dist/db/schema-manager.js.map +1 -0
- package/dist/db/schema.d.ts +404 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +234 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/db/utils/tree-builder.d.ts +25 -0
- package/dist/db/utils/tree-builder.d.ts.map +1 -0
- package/dist/db/utils/tree-builder.js +38 -0
- package/dist/db/utils/tree-builder.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/ast-parser.d.ts +23 -0
- package/dist/parser/ast-parser.d.ts.map +1 -0
- package/dist/parser/ast-parser.js +65 -0
- package/dist/parser/ast-parser.js.map +1 -0
- package/dist/parser/definition-extractor.d.ts +29 -0
- package/dist/parser/definition-extractor.d.ts.map +1 -0
- package/dist/parser/definition-extractor.js +379 -0
- package/dist/parser/definition-extractor.js.map +1 -0
- package/dist/parser/reference-extractor.d.ts +72 -0
- package/dist/parser/reference-extractor.d.ts.map +1 -0
- package/dist/parser/reference-extractor.js +759 -0
- package/dist/parser/reference-extractor.js.map +1 -0
- package/dist/utils/file-scanner.d.ts +6 -0
- package/dist/utils/file-scanner.d.ts.map +1 -0
- package/dist/utils/file-scanner.js +33 -0
- package/dist/utils/file-scanner.js.map +1 -0
- package/dist/web/api-transforms.d.ts +4 -0
- package/dist/web/api-transforms.d.ts.map +1 -0
- package/dist/web/api-transforms.js +4 -0
- package/dist/web/api-transforms.js.map +1 -0
- package/dist/web/server.d.ts +16 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +229 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/server.test.d.ts +2 -0
- package/dist/web/server.test.d.ts.map +1 -0
- package/dist/web/server.test.js +505 -0
- package/dist/web/server.test.js.map +1 -0
- package/dist/web/transforms/flow-transforms.d.ts +117 -0
- package/dist/web/transforms/flow-transforms.d.ts.map +1 -0
- package/dist/web/transforms/flow-transforms.js +202 -0
- package/dist/web/transforms/flow-transforms.js.map +1 -0
- package/dist/web/transforms/index.d.ts +4 -0
- package/dist/web/transforms/index.d.ts.map +1 -0
- package/dist/web/transforms/index.js +4 -0
- package/dist/web/transforms/index.js.map +1 -0
- package/dist/web/transforms/module-transforms.d.ts +42 -0
- package/dist/web/transforms/module-transforms.d.ts.map +1 -0
- package/dist/web/transforms/module-transforms.js +64 -0
- package/dist/web/transforms/module-transforms.js.map +1 -0
- package/dist/web/transforms/symbol-transforms.d.ts +31 -0
- package/dist/web/transforms/symbol-transforms.d.ts.map +1 -0
- package/dist/web/transforms/symbol-transforms.js +95 -0
- package/dist/web/transforms/symbol-transforms.js.map +1 -0
- package/package.json +96 -0
- package/ui/dist/assets/index-DP3dRMlh.js +268 -0
- package/ui/dist/assets/index-DP3dRMlh.js.map +1 -0
- package/ui/dist/assets/index-Db204Xn1.css +1 -0
- package/ui/dist/index.html +67 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import type { CallsiteResult, DependencyInfo, DependencyWithMetadata, IncomingDependency, ReadySymbolInfo } from '../schema.js';
|
|
3
|
+
export interface ImportGraphNode {
|
|
4
|
+
id: number;
|
|
5
|
+
name: string;
|
|
6
|
+
kind: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ImportGraphLink {
|
|
9
|
+
source: number;
|
|
10
|
+
target: number;
|
|
11
|
+
type: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class DependencyRepository {
|
|
14
|
+
private db;
|
|
15
|
+
constructor(db: Database.Database);
|
|
16
|
+
getCallsites(definitionId: number): CallsiteResult[];
|
|
17
|
+
getCallsitesForFile(fileId: number): CallsiteResult[];
|
|
18
|
+
getCallsiteCount(): number;
|
|
19
|
+
/**
|
|
20
|
+
* Get incoming dependencies - symbols that use this definition.
|
|
21
|
+
* This finds all definitions that have usages pointing to this definition.
|
|
22
|
+
*/
|
|
23
|
+
getIncoming(definitionId: number, limit?: number): IncomingDependency[];
|
|
24
|
+
/**
|
|
25
|
+
* Get count of incoming dependencies - how many symbols use this definition.
|
|
26
|
+
*/
|
|
27
|
+
getIncomingCount(definitionId: number): number;
|
|
28
|
+
/**
|
|
29
|
+
* Get all symbols that a definition depends on (uses within its line range).
|
|
30
|
+
* This finds usages within the definition's code that reference other definitions.
|
|
31
|
+
*/
|
|
32
|
+
getForDefinition(definitionId: number): DependencyInfo[];
|
|
33
|
+
/**
|
|
34
|
+
* Get dependencies with their metadata status for a specific aspect.
|
|
35
|
+
* Combines dependency lookup with metadata check in a single efficient query.
|
|
36
|
+
*/
|
|
37
|
+
getWithMetadata(definitionId: number, aspect?: string): DependencyWithMetadata[];
|
|
38
|
+
/**
|
|
39
|
+
* Get dependencies that don't have a specific aspect set.
|
|
40
|
+
* Orders by dependency count (leaf nodes first) for topological processing.
|
|
41
|
+
*/
|
|
42
|
+
getUnmet(definitionId: number, aspect: string): DependencyInfo[];
|
|
43
|
+
/**
|
|
44
|
+
* Get the full prerequisite chain for understanding a symbol.
|
|
45
|
+
* Returns unmet dependencies in topological order (leaves first).
|
|
46
|
+
* Handles circular dependencies by tracking visited nodes.
|
|
47
|
+
*/
|
|
48
|
+
getPrerequisiteChain(definitionId: number, aspect: string, getDefinitionById: (id: number) => {
|
|
49
|
+
name: string;
|
|
50
|
+
kind: string;
|
|
51
|
+
filePath: string;
|
|
52
|
+
line: number;
|
|
53
|
+
} | null): Array<DependencyInfo & {
|
|
54
|
+
unmetDepCount: number;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Find symbols that are "ready to understand" for a given aspect.
|
|
58
|
+
* A symbol is ready when all its dependencies already have the aspect set (or it has no dependencies).
|
|
59
|
+
* Excludes symbols that already have the aspect set.
|
|
60
|
+
*/
|
|
61
|
+
getReadySymbols(aspect: string, options?: {
|
|
62
|
+
limit?: number;
|
|
63
|
+
kind?: string;
|
|
64
|
+
filePattern?: string;
|
|
65
|
+
}): {
|
|
66
|
+
symbols: ReadySymbolInfo[];
|
|
67
|
+
totalReady: number;
|
|
68
|
+
remaining: number;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Get import dependency graph data for D3 visualization
|
|
72
|
+
*/
|
|
73
|
+
getImportGraph(): {
|
|
74
|
+
nodes: ImportGraphNode[];
|
|
75
|
+
links: ImportGraphLink[];
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=dependency-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-repository.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/dependency-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,EAAE;IA6EpD,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE;IAsDrD,gBAAgB,IAAI,MAAM;IAU1B;;;OAGG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,kBAAkB,EAAE;IAwBlE;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiB9C;;;OAGG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,EAAE;IA2BxD;;;OAGG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,EAAE;IA8ChF;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE;IA6BhE;;;;OAIG;IACH,oBAAoB,CAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GACvG,KAAK,CAAC,cAAc,GAAG;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IA8CpD;;;;OAIG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAChE;QAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAyHxE;;OAEG;IACH,cAAc,IAAI;QAChB,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB,KAAK,EAAE,eAAe,EAAE,CAAC;KAC1B;CAkBF"}
|
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
export class DependencyRepository {
|
|
2
|
+
db;
|
|
3
|
+
constructor(db) {
|
|
4
|
+
this.db = db;
|
|
5
|
+
}
|
|
6
|
+
getCallsites(definitionId) {
|
|
7
|
+
// Query for both imported and internal call sites using UNION
|
|
8
|
+
const stmt = this.db.prepare(`
|
|
9
|
+
SELECT
|
|
10
|
+
u.id as usage_id,
|
|
11
|
+
u.symbol_id,
|
|
12
|
+
s.definition_id,
|
|
13
|
+
f.path as file_path,
|
|
14
|
+
u.line,
|
|
15
|
+
u.column,
|
|
16
|
+
s.name as symbol_name,
|
|
17
|
+
s.local_name,
|
|
18
|
+
u.argument_count,
|
|
19
|
+
u.is_method_call,
|
|
20
|
+
u.is_constructor_call,
|
|
21
|
+
u.receiver_name
|
|
22
|
+
FROM usages u
|
|
23
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
24
|
+
JOIN imports i ON s.reference_id = i.id
|
|
25
|
+
JOIN files f ON i.from_file_id = f.id
|
|
26
|
+
WHERE s.definition_id = ?
|
|
27
|
+
AND (u.context = 'call_expression' OR u.context = 'new_expression')
|
|
28
|
+
AND u.argument_count IS NOT NULL
|
|
29
|
+
UNION ALL
|
|
30
|
+
SELECT
|
|
31
|
+
u.id as usage_id,
|
|
32
|
+
u.symbol_id,
|
|
33
|
+
s.definition_id,
|
|
34
|
+
f.path as file_path,
|
|
35
|
+
u.line,
|
|
36
|
+
u.column,
|
|
37
|
+
s.name as symbol_name,
|
|
38
|
+
s.local_name,
|
|
39
|
+
u.argument_count,
|
|
40
|
+
u.is_method_call,
|
|
41
|
+
u.is_constructor_call,
|
|
42
|
+
u.receiver_name
|
|
43
|
+
FROM usages u
|
|
44
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
45
|
+
JOIN files f ON s.file_id = f.id
|
|
46
|
+
WHERE s.definition_id = ?
|
|
47
|
+
AND s.reference_id IS NULL
|
|
48
|
+
AND (u.context = 'call_expression' OR u.context = 'new_expression')
|
|
49
|
+
AND u.argument_count IS NOT NULL
|
|
50
|
+
ORDER BY file_path, line
|
|
51
|
+
`);
|
|
52
|
+
const rows = stmt.all(definitionId, definitionId);
|
|
53
|
+
return rows.map((row) => ({
|
|
54
|
+
usageId: row.usage_id,
|
|
55
|
+
symbolId: row.symbol_id,
|
|
56
|
+
definitionId: row.definition_id,
|
|
57
|
+
filePath: row.file_path,
|
|
58
|
+
line: row.line,
|
|
59
|
+
column: row.column,
|
|
60
|
+
symbolName: row.symbol_name,
|
|
61
|
+
localName: row.local_name,
|
|
62
|
+
argumentCount: row.argument_count,
|
|
63
|
+
isMethodCall: row.is_method_call === 1,
|
|
64
|
+
isConstructorCall: row.is_constructor_call === 1,
|
|
65
|
+
receiverName: row.receiver_name,
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
getCallsitesForFile(fileId) {
|
|
69
|
+
const stmt = this.db.prepare(`
|
|
70
|
+
SELECT
|
|
71
|
+
u.id as usage_id,
|
|
72
|
+
u.symbol_id,
|
|
73
|
+
s.definition_id,
|
|
74
|
+
f.path as file_path,
|
|
75
|
+
u.line,
|
|
76
|
+
u.column,
|
|
77
|
+
s.name as symbol_name,
|
|
78
|
+
s.local_name,
|
|
79
|
+
u.argument_count,
|
|
80
|
+
u.is_method_call,
|
|
81
|
+
u.is_constructor_call,
|
|
82
|
+
u.receiver_name
|
|
83
|
+
FROM usages u
|
|
84
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
85
|
+
JOIN imports i ON s.reference_id = i.id
|
|
86
|
+
JOIN files f ON i.from_file_id = f.id
|
|
87
|
+
WHERE i.from_file_id = ?
|
|
88
|
+
AND (u.context = 'call_expression' OR u.context = 'new_expression')
|
|
89
|
+
AND u.argument_count IS NOT NULL
|
|
90
|
+
`);
|
|
91
|
+
const rows = stmt.all(fileId);
|
|
92
|
+
return rows.map((row) => ({
|
|
93
|
+
usageId: row.usage_id,
|
|
94
|
+
symbolId: row.symbol_id,
|
|
95
|
+
definitionId: row.definition_id,
|
|
96
|
+
filePath: row.file_path,
|
|
97
|
+
line: row.line,
|
|
98
|
+
column: row.column,
|
|
99
|
+
symbolName: row.symbol_name,
|
|
100
|
+
localName: row.local_name,
|
|
101
|
+
argumentCount: row.argument_count,
|
|
102
|
+
isMethodCall: row.is_method_call === 1,
|
|
103
|
+
isConstructorCall: row.is_constructor_call === 1,
|
|
104
|
+
receiverName: row.receiver_name,
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
getCallsiteCount() {
|
|
108
|
+
const stmt = this.db.prepare(`
|
|
109
|
+
SELECT COUNT(*) as count FROM usages
|
|
110
|
+
WHERE (context = 'call_expression' OR context = 'new_expression')
|
|
111
|
+
AND argument_count IS NOT NULL
|
|
112
|
+
`);
|
|
113
|
+
const row = stmt.get();
|
|
114
|
+
return row.count;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get incoming dependencies - symbols that use this definition.
|
|
118
|
+
* This finds all definitions that have usages pointing to this definition.
|
|
119
|
+
*/
|
|
120
|
+
getIncoming(definitionId, limit = 5) {
|
|
121
|
+
const stmt = this.db.prepare(`
|
|
122
|
+
SELECT DISTINCT
|
|
123
|
+
caller.id,
|
|
124
|
+
caller.name,
|
|
125
|
+
caller.kind,
|
|
126
|
+
f.path as filePath,
|
|
127
|
+
caller.line
|
|
128
|
+
FROM definitions caller
|
|
129
|
+
JOIN files f ON caller.file_id = f.id
|
|
130
|
+
JOIN usages u ON u.line >= caller.line AND u.line <= caller.end_line
|
|
131
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
132
|
+
WHERE s.definition_id = ?
|
|
133
|
+
AND caller.id != ?
|
|
134
|
+
AND (
|
|
135
|
+
s.reference_id IN (SELECT id FROM imports WHERE from_file_id = caller.file_id)
|
|
136
|
+
OR s.file_id = caller.file_id
|
|
137
|
+
)
|
|
138
|
+
ORDER BY f.path, caller.line
|
|
139
|
+
LIMIT ?
|
|
140
|
+
`);
|
|
141
|
+
return stmt.all(definitionId, definitionId, limit);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get count of incoming dependencies - how many symbols use this definition.
|
|
145
|
+
*/
|
|
146
|
+
getIncomingCount(definitionId) {
|
|
147
|
+
const stmt = this.db.prepare(`
|
|
148
|
+
SELECT COUNT(DISTINCT caller.id) as count
|
|
149
|
+
FROM definitions caller
|
|
150
|
+
JOIN usages u ON u.line >= caller.line AND u.line <= caller.end_line
|
|
151
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
152
|
+
WHERE s.definition_id = ?
|
|
153
|
+
AND caller.id != ?
|
|
154
|
+
AND (
|
|
155
|
+
s.reference_id IN (SELECT id FROM imports WHERE from_file_id = caller.file_id)
|
|
156
|
+
OR s.file_id = caller.file_id
|
|
157
|
+
)
|
|
158
|
+
`);
|
|
159
|
+
const row = stmt.get(definitionId, definitionId);
|
|
160
|
+
return row.count;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get all symbols that a definition depends on (uses within its line range).
|
|
164
|
+
* This finds usages within the definition's code that reference other definitions.
|
|
165
|
+
*/
|
|
166
|
+
getForDefinition(definitionId) {
|
|
167
|
+
const stmt = this.db.prepare(`
|
|
168
|
+
SELECT DISTINCT
|
|
169
|
+
dep_def.id as dependencyId,
|
|
170
|
+
dep_def.name,
|
|
171
|
+
dep_def.kind,
|
|
172
|
+
dep_f.path as filePath,
|
|
173
|
+
dep_def.line
|
|
174
|
+
FROM definitions source
|
|
175
|
+
JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
|
|
176
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
177
|
+
JOIN definitions dep_def ON s.definition_id = dep_def.id
|
|
178
|
+
JOIN files dep_f ON dep_def.file_id = dep_f.id
|
|
179
|
+
JOIN files source_f ON source.file_id = source_f.id
|
|
180
|
+
WHERE source.id = ?
|
|
181
|
+
AND dep_def.id != source.id
|
|
182
|
+
AND (
|
|
183
|
+
-- Symbol is from an import in the same file
|
|
184
|
+
s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
|
|
185
|
+
-- Or symbol is internal to the same file
|
|
186
|
+
OR s.file_id = source.file_id
|
|
187
|
+
)
|
|
188
|
+
ORDER BY dep_f.path, dep_def.line
|
|
189
|
+
`);
|
|
190
|
+
return stmt.all(definitionId);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get dependencies with their metadata status for a specific aspect.
|
|
194
|
+
* Combines dependency lookup with metadata check in a single efficient query.
|
|
195
|
+
*/
|
|
196
|
+
getWithMetadata(definitionId, aspect) {
|
|
197
|
+
const sql = `
|
|
198
|
+
SELECT DISTINCT
|
|
199
|
+
dep_def.id,
|
|
200
|
+
dep_def.name,
|
|
201
|
+
dep_def.kind,
|
|
202
|
+
dep_f.path as filePath,
|
|
203
|
+
dep_def.line,
|
|
204
|
+
CASE WHEN dm.value IS NOT NULL THEN 1 ELSE 0 END as hasAspect,
|
|
205
|
+
dm.value as aspectValue
|
|
206
|
+
FROM definitions source
|
|
207
|
+
JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
|
|
208
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
209
|
+
JOIN definitions dep_def ON s.definition_id = dep_def.id
|
|
210
|
+
JOIN files dep_f ON dep_def.file_id = dep_f.id
|
|
211
|
+
LEFT JOIN definition_metadata dm ON dm.definition_id = dep_def.id AND dm.key = ?
|
|
212
|
+
WHERE source.id = ?
|
|
213
|
+
AND dep_def.id != source.id
|
|
214
|
+
AND (
|
|
215
|
+
s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
|
|
216
|
+
OR s.file_id = source.file_id
|
|
217
|
+
)
|
|
218
|
+
ORDER BY dep_f.path, dep_def.line
|
|
219
|
+
`;
|
|
220
|
+
const stmt = this.db.prepare(sql);
|
|
221
|
+
const rows = stmt.all(aspect ?? '', definitionId);
|
|
222
|
+
return rows.map((row) => ({
|
|
223
|
+
id: row.id,
|
|
224
|
+
name: row.name,
|
|
225
|
+
kind: row.kind,
|
|
226
|
+
filePath: row.filePath,
|
|
227
|
+
line: row.line,
|
|
228
|
+
hasAspect: row.hasAspect === 1,
|
|
229
|
+
aspectValue: row.aspectValue,
|
|
230
|
+
}));
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Get dependencies that don't have a specific aspect set.
|
|
234
|
+
* Orders by dependency count (leaf nodes first) for topological processing.
|
|
235
|
+
*/
|
|
236
|
+
getUnmet(definitionId, aspect) {
|
|
237
|
+
const sql = `
|
|
238
|
+
WITH has_aspect AS (
|
|
239
|
+
SELECT definition_id FROM definition_metadata WHERE key = ?
|
|
240
|
+
)
|
|
241
|
+
SELECT DISTINCT
|
|
242
|
+
dep_def.id as dependencyId,
|
|
243
|
+
dep_def.name,
|
|
244
|
+
dep_def.kind,
|
|
245
|
+
dep_f.path as filePath,
|
|
246
|
+
dep_def.line
|
|
247
|
+
FROM definitions source
|
|
248
|
+
JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
|
|
249
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
250
|
+
JOIN definitions dep_def ON s.definition_id = dep_def.id
|
|
251
|
+
JOIN files dep_f ON dep_def.file_id = dep_f.id
|
|
252
|
+
WHERE source.id = ?
|
|
253
|
+
AND dep_def.id != source.id
|
|
254
|
+
AND dep_def.id NOT IN (SELECT definition_id FROM has_aspect)
|
|
255
|
+
AND (
|
|
256
|
+
s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
|
|
257
|
+
OR s.file_id = source.file_id
|
|
258
|
+
)
|
|
259
|
+
ORDER BY dep_f.path, dep_def.line
|
|
260
|
+
`;
|
|
261
|
+
const stmt = this.db.prepare(sql);
|
|
262
|
+
return stmt.all(aspect, definitionId);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Get the full prerequisite chain for understanding a symbol.
|
|
266
|
+
* Returns unmet dependencies in topological order (leaves first).
|
|
267
|
+
* Handles circular dependencies by tracking visited nodes.
|
|
268
|
+
*/
|
|
269
|
+
getPrerequisiteChain(definitionId, aspect, getDefinitionById) {
|
|
270
|
+
const visited = new Set();
|
|
271
|
+
const result = [];
|
|
272
|
+
const processNode = (id) => {
|
|
273
|
+
if (visited.has(id))
|
|
274
|
+
return;
|
|
275
|
+
visited.add(id);
|
|
276
|
+
const unmetDeps = this.getUnmet(id, aspect);
|
|
277
|
+
// Process children first (depth-first)
|
|
278
|
+
for (const dep of unmetDeps) {
|
|
279
|
+
if (!visited.has(dep.dependencyId)) {
|
|
280
|
+
processNode(dep.dependencyId);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// Add this node after its dependencies (unless it's the root)
|
|
284
|
+
if (id !== definitionId) {
|
|
285
|
+
const nodeUnmetDeps = this.getUnmet(id, aspect);
|
|
286
|
+
const def = getDefinitionById(id);
|
|
287
|
+
if (def) {
|
|
288
|
+
result.push({
|
|
289
|
+
dependencyId: id,
|
|
290
|
+
name: def.name,
|
|
291
|
+
kind: def.kind,
|
|
292
|
+
filePath: def.filePath,
|
|
293
|
+
line: def.line,
|
|
294
|
+
unmetDepCount: nodeUnmetDeps.length,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
// Start from the target definition
|
|
300
|
+
const directUnmet = this.getUnmet(definitionId, aspect);
|
|
301
|
+
for (const dep of directUnmet) {
|
|
302
|
+
processNode(dep.dependencyId);
|
|
303
|
+
}
|
|
304
|
+
// Sort by unmet dependency count (leaves first)
|
|
305
|
+
result.sort((a, b) => a.unmetDepCount - b.unmetDepCount);
|
|
306
|
+
return result;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Find symbols that are "ready to understand" for a given aspect.
|
|
310
|
+
* A symbol is ready when all its dependencies already have the aspect set (or it has no dependencies).
|
|
311
|
+
* Excludes symbols that already have the aspect set.
|
|
312
|
+
*/
|
|
313
|
+
getReadySymbols(aspect, options) {
|
|
314
|
+
const limit = options?.limit ?? 20;
|
|
315
|
+
// Build filter conditions and collect filter params
|
|
316
|
+
let filterConditions = '';
|
|
317
|
+
const filterParams = [];
|
|
318
|
+
if (options?.kind) {
|
|
319
|
+
filterConditions += ' AND d.kind = ?';
|
|
320
|
+
filterParams.push(options.kind);
|
|
321
|
+
}
|
|
322
|
+
if (options?.filePattern) {
|
|
323
|
+
filterConditions += ' AND f.path LIKE ?';
|
|
324
|
+
filterParams.push(`%${options.filePattern}%`);
|
|
325
|
+
}
|
|
326
|
+
// The main query uses CTEs:
|
|
327
|
+
// 1. understood: definitions that already have the aspect set
|
|
328
|
+
// 2. definition_deps: maps each definition to its dependencies
|
|
329
|
+
// 3. unmet: definitions that have at least one dependency without the aspect
|
|
330
|
+
const sql = `
|
|
331
|
+
WITH understood AS (
|
|
332
|
+
SELECT definition_id FROM definition_metadata WHERE key = ?
|
|
333
|
+
),
|
|
334
|
+
definition_deps AS (
|
|
335
|
+
SELECT DISTINCT
|
|
336
|
+
source.id as definition_id,
|
|
337
|
+
dep_def.id as dependency_id
|
|
338
|
+
FROM definitions source
|
|
339
|
+
JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
|
|
340
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
341
|
+
JOIN definitions dep_def ON s.definition_id = dep_def.id
|
|
342
|
+
JOIN files source_f ON source.file_id = source_f.id
|
|
343
|
+
WHERE dep_def.id != source.id
|
|
344
|
+
AND (
|
|
345
|
+
s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
|
|
346
|
+
OR s.file_id = source.file_id
|
|
347
|
+
)
|
|
348
|
+
),
|
|
349
|
+
unmet AS (
|
|
350
|
+
SELECT DISTINCT definition_id
|
|
351
|
+
FROM definition_deps
|
|
352
|
+
WHERE dependency_id NOT IN (SELECT definition_id FROM understood)
|
|
353
|
+
)
|
|
354
|
+
SELECT
|
|
355
|
+
d.id,
|
|
356
|
+
d.name,
|
|
357
|
+
d.kind,
|
|
358
|
+
f.path as filePath,
|
|
359
|
+
d.line,
|
|
360
|
+
d.end_line as endLine,
|
|
361
|
+
COALESCE(dep_count.cnt, 0) as dependencyCount
|
|
362
|
+
FROM definitions d
|
|
363
|
+
JOIN files f ON d.file_id = f.id
|
|
364
|
+
LEFT JOIN (
|
|
365
|
+
SELECT definition_id, COUNT(*) as cnt
|
|
366
|
+
FROM definition_deps
|
|
367
|
+
GROUP BY definition_id
|
|
368
|
+
) dep_count ON dep_count.definition_id = d.id
|
|
369
|
+
WHERE d.id NOT IN (SELECT definition_id FROM understood)
|
|
370
|
+
AND d.id NOT IN (SELECT definition_id FROM unmet)
|
|
371
|
+
${filterConditions}
|
|
372
|
+
ORDER BY dependencyCount ASC, f.path, d.line
|
|
373
|
+
LIMIT ?
|
|
374
|
+
`;
|
|
375
|
+
const params = [aspect, ...filterParams, limit];
|
|
376
|
+
const stmt = this.db.prepare(sql);
|
|
377
|
+
const symbols = stmt.all(...params);
|
|
378
|
+
// Get counts for the summary
|
|
379
|
+
const countSql = `
|
|
380
|
+
WITH understood AS (
|
|
381
|
+
SELECT definition_id FROM definition_metadata WHERE key = ?
|
|
382
|
+
),
|
|
383
|
+
definition_deps AS (
|
|
384
|
+
SELECT DISTINCT
|
|
385
|
+
source.id as definition_id,
|
|
386
|
+
dep_def.id as dependency_id
|
|
387
|
+
FROM definitions source
|
|
388
|
+
JOIN usages u ON u.line >= source.line AND u.line <= source.end_line
|
|
389
|
+
JOIN symbols s ON u.symbol_id = s.id
|
|
390
|
+
JOIN definitions dep_def ON s.definition_id = dep_def.id
|
|
391
|
+
JOIN files source_f ON source.file_id = source_f.id
|
|
392
|
+
WHERE dep_def.id != source.id
|
|
393
|
+
AND (
|
|
394
|
+
s.reference_id IN (SELECT id FROM imports WHERE from_file_id = source.file_id)
|
|
395
|
+
OR s.file_id = source.file_id
|
|
396
|
+
)
|
|
397
|
+
),
|
|
398
|
+
unmet AS (
|
|
399
|
+
SELECT DISTINCT definition_id
|
|
400
|
+
FROM definition_deps
|
|
401
|
+
WHERE dependency_id NOT IN (SELECT definition_id FROM understood)
|
|
402
|
+
)
|
|
403
|
+
SELECT
|
|
404
|
+
COUNT(*) as totalReady,
|
|
405
|
+
(SELECT COUNT(*) FROM definitions d2
|
|
406
|
+
JOIN files f2 ON d2.file_id = f2.id
|
|
407
|
+
WHERE d2.id NOT IN (SELECT definition_id FROM understood)
|
|
408
|
+
${filterConditions.replace(/d\./g, 'd2.').replace(/f\./g, 'f2.')}
|
|
409
|
+
) as totalRemaining
|
|
410
|
+
FROM definitions d
|
|
411
|
+
JOIN files f ON d.file_id = f.id
|
|
412
|
+
WHERE d.id NOT IN (SELECT definition_id FROM understood)
|
|
413
|
+
AND d.id NOT IN (SELECT definition_id FROM unmet)
|
|
414
|
+
${filterConditions}
|
|
415
|
+
`;
|
|
416
|
+
// Params: aspect, then filterParams for subquery, then filterParams for main WHERE
|
|
417
|
+
const countParams = [aspect, ...filterParams, ...filterParams];
|
|
418
|
+
const countStmt = this.db.prepare(countSql);
|
|
419
|
+
const countResult = countStmt.get(...countParams);
|
|
420
|
+
return {
|
|
421
|
+
symbols,
|
|
422
|
+
totalReady: countResult.totalReady,
|
|
423
|
+
remaining: countResult.totalRemaining - countResult.totalReady,
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Get import dependency graph data for D3 visualization
|
|
428
|
+
*/
|
|
429
|
+
getImportGraph() {
|
|
430
|
+
// Get all files as nodes
|
|
431
|
+
const nodesStmt = this.db.prepare(`
|
|
432
|
+
SELECT id, path as name, 'file' as kind
|
|
433
|
+
FROM files
|
|
434
|
+
`);
|
|
435
|
+
const nodes = nodesStmt.all();
|
|
436
|
+
// Get all internal imports as links
|
|
437
|
+
const linksStmt = this.db.prepare(`
|
|
438
|
+
SELECT DISTINCT from_file_id as source, to_file_id as target, type
|
|
439
|
+
FROM imports
|
|
440
|
+
WHERE to_file_id IS NOT NULL
|
|
441
|
+
`);
|
|
442
|
+
const links = linksStmt.all();
|
|
443
|
+
return { nodes, links };
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
//# sourceMappingURL=dependency-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-repository.js","sourceRoot":"","sources":["../../../src/db/repositories/dependency-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import type { Domain, DomainWithCount } from '../schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Repository for domain registry operations.
|
|
5
|
+
* Handles CRUD operations for the domains table and domain-related queries.
|
|
6
|
+
*/
|
|
7
|
+
export declare class DomainRepository {
|
|
8
|
+
private db;
|
|
9
|
+
private metadata;
|
|
10
|
+
constructor(db: Database.Database);
|
|
11
|
+
/**
|
|
12
|
+
* Add a new domain to the registry.
|
|
13
|
+
* @returns The domain ID if created, or null if already exists.
|
|
14
|
+
*/
|
|
15
|
+
add(name: string, description?: string): number | null;
|
|
16
|
+
/**
|
|
17
|
+
* Get a domain by name.
|
|
18
|
+
*/
|
|
19
|
+
get(name: string): Domain | null;
|
|
20
|
+
/**
|
|
21
|
+
* Get all domains from the registry.
|
|
22
|
+
*/
|
|
23
|
+
getAll(): Domain[];
|
|
24
|
+
/**
|
|
25
|
+
* Get all domains with their symbol counts.
|
|
26
|
+
*/
|
|
27
|
+
getAllWithCounts(): DomainWithCount[];
|
|
28
|
+
/**
|
|
29
|
+
* Update a domain's description.
|
|
30
|
+
*/
|
|
31
|
+
updateDescription(name: string, description: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Rename a domain in both the registry and all symbol metadata.
|
|
34
|
+
* @returns Number of symbols updated.
|
|
35
|
+
*/
|
|
36
|
+
rename(oldName: string, newName: string): {
|
|
37
|
+
updated: boolean;
|
|
38
|
+
symbolsUpdated: number;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Merge one domain into another. The source domain is removed from all symbols
|
|
42
|
+
* and replaced with the target domain.
|
|
43
|
+
* @returns Number of symbols updated.
|
|
44
|
+
*/
|
|
45
|
+
merge(fromName: string, intoName: string): {
|
|
46
|
+
symbolsUpdated: number;
|
|
47
|
+
registryRemoved: boolean;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Remove a domain from the registry.
|
|
51
|
+
* @param force If true, removes even if symbols still use this domain.
|
|
52
|
+
* @returns Object with removed status and count of symbols still using the domain.
|
|
53
|
+
*/
|
|
54
|
+
remove(name: string, force?: boolean): {
|
|
55
|
+
removed: boolean;
|
|
56
|
+
symbolsUsingDomain: number;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Sync all domains currently in use to the registry.
|
|
60
|
+
* Registers any domain found in symbol metadata that isn't already registered.
|
|
61
|
+
* @returns Array of newly registered domain names.
|
|
62
|
+
*/
|
|
63
|
+
syncFromMetadata(): string[];
|
|
64
|
+
/**
|
|
65
|
+
* Get all unregistered domains currently in use.
|
|
66
|
+
*/
|
|
67
|
+
getUnregistered(): string[];
|
|
68
|
+
/**
|
|
69
|
+
* Check if a domain is registered.
|
|
70
|
+
*/
|
|
71
|
+
isRegistered(name: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Get symbols that have a specific domain tag.
|
|
74
|
+
* Domain is stored as a JSON array in the 'domain' metadata key.
|
|
75
|
+
*/
|
|
76
|
+
getSymbolsByDomain(domain: string): Array<{
|
|
77
|
+
id: number;
|
|
78
|
+
name: string;
|
|
79
|
+
kind: string;
|
|
80
|
+
filePath: string;
|
|
81
|
+
line: number;
|
|
82
|
+
domains: string[];
|
|
83
|
+
purpose: string | null;
|
|
84
|
+
}>;
|
|
85
|
+
/**
|
|
86
|
+
* Get symbols filtered by purity (pure = no side effects).
|
|
87
|
+
*/
|
|
88
|
+
getSymbolsByPurity(isPure: boolean): Array<{
|
|
89
|
+
id: number;
|
|
90
|
+
name: string;
|
|
91
|
+
kind: string;
|
|
92
|
+
filePath: string;
|
|
93
|
+
line: number;
|
|
94
|
+
purpose: string | null;
|
|
95
|
+
}>;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=domain-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-repository.d.ts","sourceRoot":"","sources":["../../../src/db/repositories/domain-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG5D;;;GAGG;AACH,qBAAa,gBAAgB;IAGf,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,QAAQ,CAAqB;gBAEjB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIzC;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiBtD;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAUhC;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;IASlB;;OAEG;IACH,gBAAgB,IAAI,eAAe,EAAE;IA+BrC;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAS7D;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAwCtF;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE;IA6C/F;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE;IAsBrF;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAuB5B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAO3B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQnC;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;QACxC,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IAIF;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC;QACzC,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;CAGH"}
|