@lzehrung/codegraph 2.3.31 → 2.4.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/README.md +30 -137
- package/codegraph-skill/codegraph/SKILL.md +5 -3
- package/dist/agent/artifact.d.ts +2 -0
- package/dist/agent/artifact.d.ts.map +1 -1
- package/dist/agent/artifact.js.map +1 -1
- package/dist/agent/search.d.ts.map +1 -1
- package/dist/agent/search.js +3 -0
- package/dist/agent/search.js.map +1 -1
- package/dist/agent/session.d.ts +3 -0
- package/dist/agent/session.d.ts.map +1 -1
- package/dist/agent/session.js +10 -2
- package/dist/agent/session.js.map +1 -1
- package/dist/bin/cli.js +42243 -29202
- package/dist/bin/query-index-worker.js +73 -11
- package/dist/cli/affected.d.ts.map +1 -1
- package/dist/cli/affected.js +4 -1
- package/dist/cli/affected.js.map +1 -1
- package/dist/cli/command-catalog.js +1 -1
- package/dist/cli/command-catalog.js.map +1 -1
- package/dist/cli/graph-queries.d.ts.map +1 -1
- package/dist/cli/graph-queries.js +27 -1
- package/dist/cli/graph-queries.js.map +1 -1
- package/dist/cli/help.d.ts +2 -2
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +4 -2
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/options.js +2 -2
- package/dist/cli/options.js.map +1 -1
- package/dist/drift/artifact.d.ts.map +1 -1
- package/dist/drift/artifact.js +15 -18
- package/dist/drift/artifact.js.map +1 -1
- package/dist/drift/compare.js +1 -1
- package/dist/drift/compare.js.map +1 -1
- package/dist/drift/snapshot.d.ts.map +1 -1
- package/dist/drift/snapshot.js +5 -6
- package/dist/drift/snapshot.js.map +1 -1
- package/dist/drift/types.d.ts +2 -0
- package/dist/drift/types.d.ts.map +1 -1
- package/dist/drift/types.js.map +1 -1
- package/dist/graph-builder.d.ts.map +1 -1
- package/dist/graph-builder.js +4 -6
- package/dist/graph-builder.js.map +1 -1
- package/dist/graph-edge-collector.d.ts +3 -0
- package/dist/graph-edge-collector.d.ts.map +1 -1
- package/dist/graph-edge-collector.js +8 -5
- package/dist/graph-edge-collector.js.map +1 -1
- package/dist/graphs/angularjs.d.ts.map +1 -1
- package/dist/graphs/angularjs.js +2 -1
- package/dist/graphs/angularjs.js.map +1 -1
- package/dist/graphs/edge-resolution.d.ts +4 -1
- package/dist/graphs/edge-resolution.d.ts.map +1 -1
- package/dist/graphs/edge-resolution.js +26 -2
- package/dist/graphs/edge-resolution.js.map +1 -1
- package/dist/graphs/specifiers.d.ts.map +1 -1
- package/dist/graphs/specifiers.js +6 -2
- package/dist/graphs/specifiers.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/ast.d.ts +20 -0
- package/dist/graphs/symbol-graph-detailed/ast.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/ast.js +154 -15
- package/dist/graphs/symbol-graph-detailed/ast.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts +51 -8
- package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.js +823 -132
- package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts +2 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.js +139 -7
- package/dist/graphs/symbol-graph-detailed/import-aliases.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.d.ts +1 -0
- package/dist/graphs/symbol-graph-detailed/member-chains.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.js +3 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +128 -15
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +873 -93
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed.js +434 -40
- package/dist/graphs/symbol-graph-detailed.js.map +1 -1
- package/dist/graphs/symbol-graph.d.ts +2 -0
- package/dist/graphs/symbol-graph.d.ts.map +1 -1
- package/dist/graphs/symbol-graph.js +34 -16
- package/dist/graphs/symbol-graph.js.map +1 -1
- package/dist/impact/call-compatibility/providers/index.d.ts +4 -4
- package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.js +6 -6
- package/dist/impact/call-compatibility/providers/index.js.map +1 -1
- package/dist/impact/call-compatibility/providers/types.d.ts +2 -0
- package/dist/impact/call-compatibility/providers/types.d.ts.map +1 -1
- package/dist/impact/call-compatibility/types.d.ts +6 -0
- package/dist/impact/call-compatibility/types.d.ts.map +1 -1
- package/dist/impact/call-compatibility.d.ts.map +1 -1
- package/dist/impact/call-compatibility.js +310 -516
- package/dist/impact/call-compatibility.js.map +1 -1
- package/dist/impact/map.js +1 -0
- package/dist/impact/map.js.map +1 -1
- package/dist/impact/reference-cache.d.ts.map +1 -1
- package/dist/impact/reference-cache.js +2 -2
- package/dist/impact/reference-cache.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/ambiguous-resolution.d.ts +11 -0
- package/dist/indexer/ambiguous-resolution.d.ts.map +1 -0
- package/dist/indexer/ambiguous-resolution.js +19 -0
- package/dist/indexer/ambiguous-resolution.js.map +1 -0
- package/dist/indexer/build-cache/module-cache.d.ts +38 -0
- package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
- package/dist/indexer/build-cache/module-cache.js +151 -9
- package/dist/indexer/build-cache/module-cache.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +16 -43
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +16 -43
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.d.ts +1 -0
- package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.js +117 -24
- package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
- package/dist/indexer/build-cache/resolver-environment.d.ts.map +1 -1
- package/dist/indexer/build-cache/resolver-environment.js +32 -2
- package/dist/indexer/build-cache/resolver-environment.js.map +1 -1
- package/dist/indexer/build-cache.d.ts +1 -1
- package/dist/indexer/build-cache.d.ts.map +1 -1
- package/dist/indexer/build-cache.js +1 -1
- package/dist/indexer/build-cache.js.map +1 -1
- package/dist/indexer/build-index.d.ts.map +1 -1
- package/dist/indexer/build-index.js +593 -22
- package/dist/indexer/build-index.js.map +1 -1
- package/dist/indexer/call-hierarchy.js +1 -1
- package/dist/indexer/call-hierarchy.js.map +1 -1
- package/dist/indexer/compilation-units.d.ts +101 -0
- package/dist/indexer/compilation-units.d.ts.map +1 -0
- package/dist/indexer/compilation-units.js +605 -0
- package/dist/indexer/compilation-units.js.map +1 -0
- package/dist/indexer/cpp-callables.d.ts +20 -0
- package/dist/indexer/cpp-callables.d.ts.map +1 -0
- package/dist/indexer/cpp-callables.js +554 -0
- package/dist/indexer/cpp-callables.js.map +1 -0
- package/dist/indexer/declaration-visibility.d.ts +36 -2
- package/dist/indexer/declaration-visibility.d.ts.map +1 -1
- package/dist/indexer/declaration-visibility.js +136 -2
- package/dist/indexer/declaration-visibility.js.map +1 -1
- package/dist/indexer/expand-star-imports.d.ts.map +1 -1
- package/dist/indexer/expand-star-imports.js +28 -6
- package/dist/indexer/expand-star-imports.js.map +1 -1
- package/dist/indexer/import-types.d.ts +37 -0
- package/dist/indexer/import-types.d.ts.map +1 -1
- package/dist/indexer/import-types.js +24 -1
- package/dist/indexer/import-types.js.map +1 -1
- package/dist/indexer/imports/context.d.ts +11 -1
- package/dist/indexer/imports/context.d.ts.map +1 -1
- package/dist/indexer/imports/import-binding-tables.d.ts +12 -1
- package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
- package/dist/indexer/imports/import-binding-tables.js +144 -19
- package/dist/indexer/imports/import-binding-tables.js.map +1 -1
- package/dist/indexer/imports/js-text-imports.js +4 -4
- package/dist/indexer/imports/js-text-imports.js.map +1 -1
- package/dist/indexer/imports/native-captures.d.ts.map +1 -1
- package/dist/indexer/imports/native-captures.js +18 -6
- package/dist/indexer/imports/native-captures.js.map +1 -1
- package/dist/indexer/imports/python.d.ts +10 -2
- package/dist/indexer/imports/python.d.ts.map +1 -1
- package/dist/indexer/imports/python.js +91 -40
- package/dist/indexer/imports/python.js.map +1 -1
- package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -1
- package/dist/indexer/imports/text-import-extractors.js +51 -12
- package/dist/indexer/imports/text-import-extractors.js.map +1 -1
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +23 -4
- package/dist/indexer/imports.js.map +1 -1
- package/dist/indexer/incremental-plan.d.ts +33 -0
- package/dist/indexer/incremental-plan.d.ts.map +1 -1
- package/dist/indexer/incremental-plan.js +187 -1
- package/dist/indexer/incremental-plan.js.map +1 -1
- package/dist/indexer/locals-and-exports.d.ts +2 -0
- package/dist/indexer/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +565 -54
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/name-lookup-policies/c-family.d.ts +7 -0
- package/dist/indexer/name-lookup-policies/c-family.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/c-family.js +117 -0
- package/dist/indexer/name-lookup-policies/c-family.js.map +1 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts +11 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.js +136 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.js.map +1 -0
- package/dist/indexer/name-lookup-policies/implicit-self.d.ts +10 -0
- package/dist/indexer/name-lookup-policies/implicit-self.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/implicit-self.js +113 -0
- package/dist/indexer/name-lookup-policies/implicit-self.js.map +1 -0
- package/dist/indexer/name-lookup-policies/index.d.ts +3 -0
- package/dist/indexer/name-lookup-policies/index.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/index.js +106 -0
- package/dist/indexer/name-lookup-policies/index.js.map +1 -0
- package/dist/indexer/name-lookup-policies/php.d.ts +3 -0
- package/dist/indexer/name-lookup-policies/php.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/php.js +75 -0
- package/dist/indexer/name-lookup-policies/php.js.map +1 -0
- package/dist/indexer/name-resolution-types.d.ts +99 -0
- package/dist/indexer/name-resolution-types.d.ts.map +1 -0
- package/dist/indexer/name-resolution-types.js +2 -0
- package/dist/indexer/name-resolution-types.js.map +1 -0
- package/dist/indexer/name-resolution.d.ts +52 -0
- package/dist/indexer/name-resolution.d.ts.map +1 -0
- package/dist/indexer/name-resolution.js +189 -0
- package/dist/indexer/name-resolution.js.map +1 -0
- package/dist/indexer/navigation-cpp.d.ts +50 -0
- package/dist/indexer/navigation-cpp.d.ts.map +1 -0
- package/dist/indexer/navigation-cpp.js +654 -0
- package/dist/indexer/navigation-cpp.js.map +1 -0
- package/dist/indexer/navigation-goto.d.ts +106 -3
- package/dist/indexer/navigation-goto.d.ts.map +1 -1
- package/dist/indexer/navigation-goto.js +2074 -137
- package/dist/indexer/navigation-goto.js.map +1 -1
- package/dist/indexer/navigation-local.d.ts +18 -2
- package/dist/indexer/navigation-local.d.ts.map +1 -1
- package/dist/indexer/navigation-local.js +498 -61
- package/dist/indexer/navigation-local.js.map +1 -1
- package/dist/indexer/navigation-php.d.ts +66 -0
- package/dist/indexer/navigation-php.d.ts.map +1 -1
- package/dist/indexer/navigation-php.js +287 -4
- package/dist/indexer/navigation-php.js.map +1 -1
- package/dist/indexer/navigation-references.d.ts +72 -5
- package/dist/indexer/navigation-references.d.ts.map +1 -1
- package/dist/indexer/navigation-references.js +620 -54
- package/dist/indexer/navigation-references.js.map +1 -1
- package/dist/indexer/navigation-resolve.d.ts +33 -2
- package/dist/indexer/navigation-resolve.d.ts.map +1 -1
- package/dist/indexer/navigation-resolve.js +446 -193
- package/dist/indexer/navigation-resolve.js.map +1 -1
- package/dist/indexer/navigation.d.ts +28 -2
- package/dist/indexer/navigation.d.ts.map +1 -1
- package/dist/indexer/navigation.js +1082 -151
- package/dist/indexer/navigation.js.map +1 -1
- package/dist/indexer/php-namespace-symbols.d.ts +66 -0
- package/dist/indexer/php-namespace-symbols.d.ts.map +1 -0
- package/dist/indexer/php-namespace-symbols.js +342 -0
- package/dist/indexer/php-namespace-symbols.js.map +1 -0
- package/dist/indexer/reference-context.d.ts +2 -0
- package/dist/indexer/reference-context.d.ts.map +1 -1
- package/dist/indexer/reference-context.js +4 -0
- package/dist/indexer/reference-context.js.map +1 -1
- package/dist/indexer/scope-nodes.d.ts +92 -13
- package/dist/indexer/scope-nodes.d.ts.map +1 -1
- package/dist/indexer/scope-nodes.js +212 -20
- package/dist/indexer/scope-nodes.js.map +1 -1
- package/dist/indexer/scope-types.d.ts +25 -1
- package/dist/indexer/scope-types.d.ts.map +1 -1
- package/dist/indexer/scope.d.ts.map +1 -1
- package/dist/indexer/scope.js +894 -45
- package/dist/indexer/scope.js.map +1 -1
- package/dist/indexer/shared-owner-identity.d.ts +53 -0
- package/dist/indexer/shared-owner-identity.d.ts.map +1 -0
- package/dist/indexer/shared-owner-identity.js +460 -0
- package/dist/indexer/shared-owner-identity.js.map +1 -0
- package/dist/indexer/shared.d.ts +1 -1
- package/dist/indexer/shared.d.ts.map +1 -1
- package/dist/indexer/shared.js +1 -1
- package/dist/indexer/shared.js.map +1 -1
- package/dist/indexer/star-import-precedence.d.ts +114 -0
- package/dist/indexer/star-import-precedence.d.ts.map +1 -0
- package/dist/indexer/star-import-precedence.js +396 -0
- package/dist/indexer/star-import-precedence.js.map +1 -0
- package/dist/indexer/symbols.d.ts +3 -1
- package/dist/indexer/symbols.d.ts.map +1 -1
- package/dist/indexer/symbols.js +58 -18
- package/dist/indexer/symbols.js.map +1 -1
- package/dist/indexer/ts-callables.d.ts +51 -0
- package/dist/indexer/ts-callables.d.ts.map +1 -0
- package/dist/indexer/ts-callables.js +264 -0
- package/dist/indexer/ts-callables.js.map +1 -0
- package/dist/indexer/types.d.ts +23 -1
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/indexer/unused-exports.d.ts +13 -0
- package/dist/indexer/unused-exports.d.ts.map +1 -0
- package/dist/indexer/unused-exports.js +159 -0
- package/dist/indexer/unused-exports.js.map +1 -0
- package/dist/indexer/workspace-symbols.d.ts.map +1 -1
- package/dist/indexer/workspace-symbols.js +3 -2
- package/dist/indexer/workspace-symbols.js.map +1 -1
- package/dist/indexer.d.ts +2 -2
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +1 -1
- package/dist/indexer.js.map +1 -1
- package/dist/languages/callable-arity.d.ts +202 -0
- package/dist/languages/callable-arity.d.ts.map +1 -0
- package/dist/languages/callable-arity.js +1182 -0
- package/dist/languages/callable-arity.js.map +1 -0
- package/dist/languages/definitions/c-family.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.js +30 -1
- package/dist/languages/definitions/c-family.js.map +1 -1
- package/dist/languages/definitions/c.d.ts +4 -0
- package/dist/languages/definitions/c.d.ts.map +1 -1
- package/dist/languages/definitions/c.js +19 -0
- package/dist/languages/definitions/c.js.map +1 -1
- package/dist/languages/definitions/cpp.d.ts.map +1 -1
- package/dist/languages/definitions/cpp.js +12 -0
- package/dist/languages/definitions/cpp.js.map +1 -1
- package/dist/languages/definitions/csharp.d.ts.map +1 -1
- package/dist/languages/definitions/csharp.js +2 -8
- package/dist/languages/definitions/csharp.js.map +1 -1
- package/dist/languages/definitions/go.d.ts.map +1 -1
- package/dist/languages/definitions/go.js +3 -0
- package/dist/languages/definitions/go.js.map +1 -1
- package/dist/languages/definitions/javascript.d.ts.map +1 -1
- package/dist/languages/definitions/javascript.js +10 -1
- package/dist/languages/definitions/javascript.js.map +1 -1
- package/dist/languages/definitions/js-family.d.ts +1 -1
- package/dist/languages/definitions/js-family.d.ts.map +1 -1
- package/dist/languages/definitions/js-family.js +7 -1
- package/dist/languages/definitions/js-family.js.map +1 -1
- package/dist/languages/definitions/php.d.ts.map +1 -1
- package/dist/languages/definitions/php.js +5 -1
- package/dist/languages/definitions/php.js.map +1 -1
- package/dist/languages/definitions/typescript.d.ts.map +1 -1
- package/dist/languages/definitions/typescript.js +8 -1
- package/dist/languages/definitions/typescript.js.map +1 -1
- package/dist/languages/definitions/zig.d.ts.map +1 -1
- package/dist/languages/definitions/zig.js +2 -0
- package/dist/languages/definitions/zig.js.map +1 -1
- package/dist/mcp/handlers.js +14 -7
- package/dist/mcp/handlers.js.map +1 -1
- package/dist/review/candidates.d.ts.map +1 -1
- package/dist/review/candidates.js +1 -1
- package/dist/review/candidates.js.map +1 -1
- package/dist/review/deleted.d.ts +3 -3
- package/dist/review/deleted.d.ts.map +1 -1
- package/dist/review/deleted.js +82 -32
- package/dist/review/deleted.js.map +1 -1
- package/dist/review/report.d.ts +1 -0
- package/dist/review/report.d.ts.map +1 -1
- package/dist/review/report.js +1 -1
- package/dist/review/report.js.map +1 -1
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +1 -0
- package/dist/review.js.map +1 -1
- package/dist/sql/navigation.d.ts.map +1 -1
- package/dist/sql/navigation.js +1 -0
- package/dist/sql/navigation.js.map +1 -1
- package/dist/sql/source-graph.d.ts.map +1 -1
- package/dist/sql/source-graph.js +2 -2
- package/dist/sql/source-graph.js.map +1 -1
- package/dist/sqlite/schema.d.ts +1 -1
- package/dist/sqlite/schema.d.ts.map +1 -1
- package/dist/sqlite/schema.js +8 -2
- package/dist/sqlite/schema.js.map +1 -1
- package/dist/sqlite/write.js +2 -2
- package/dist/sqlite/write.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/util/bloom-filter.d.ts +7 -1
- package/dist/util/bloom-filter.d.ts.map +1 -1
- package/dist/util/bloom-filter.js +12 -2
- package/dist/util/bloom-filter.js.map +1 -1
- package/dist/util/graph-edges.d.ts +19 -1
- package/dist/util/graph-edges.d.ts.map +1 -1
- package/dist/util/graph-edges.js +30 -4
- package/dist/util/graph-edges.js.map +1 -1
- package/dist/util/identifiers.d.ts +15 -0
- package/dist/util/identifiers.d.ts.map +1 -1
- package/dist/util/identifiers.js +35 -0
- package/dist/util/identifiers.js.map +1 -1
- package/dist/util/member-access-tables.d.ts +61 -4
- package/dist/util/member-access-tables.d.ts.map +1 -1
- package/dist/util/member-access-tables.js +137 -19
- package/dist/util/member-access-tables.js.map +1 -1
- package/dist/util/member-access.d.ts +17 -0
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +95 -3
- package/dist/util/member-access.js.map +1 -1
- package/dist/util/resolution/cargo-targets.d.ts +11 -0
- package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
- package/dist/util/resolution/cargo-targets.js +174 -13
- package/dist/util/resolution/cargo-targets.js.map +1 -1
- package/dist/util/resolution/csharp.d.ts +33 -1
- package/dist/util/resolution/csharp.d.ts.map +1 -1
- package/dist/util/resolution/csharp.js +145 -30
- package/dist/util/resolution/csharp.js.map +1 -1
- package/dist/util/resolution/php.d.ts.map +1 -1
- package/dist/util/resolution/php.js +35 -8
- package/dist/util/resolution/php.js.map +1 -1
- package/dist/util/resolution/python.d.ts +9 -0
- package/dist/util/resolution/python.d.ts.map +1 -1
- package/dist/util/resolution/python.js +46 -0
- package/dist/util/resolution/python.js.map +1 -1
- package/dist/util/resolution/rust.d.ts.map +1 -1
- package/dist/util/resolution/rust.js +95 -26
- package/dist/util/resolution/rust.js.map +1 -1
- package/dist/util/resolution-candidates.d.ts +5 -0
- package/dist/util/resolution-candidates.d.ts.map +1 -1
- package/dist/util/resolution-candidates.js +16 -3
- package/dist/util/resolution-candidates.js.map +1 -1
- package/dist/util/resolution.d.ts +2 -1
- package/dist/util/resolution.d.ts.map +1 -1
- package/dist/util/resolution.js +96 -5
- package/dist/util/resolution.js.map +1 -1
- package/dist/util/specifiers.d.ts +20 -0
- package/dist/util/specifiers.d.ts.map +1 -1
- package/dist/util/specifiers.js +29 -0
- package/dist/util/specifiers.js.map +1 -1
- package/docs/mcp.md +3 -2
- package/package.json +3 -3
- package/dist/impact/call-compatibility/providers/profiles.d.ts +0 -80
- package/dist/impact/call-compatibility/providers/profiles.d.ts.map +0 -1
- package/dist/impact/call-compatibility/providers/profiles.js +0 -164
- package/dist/impact/call-compatibility/providers/profiles.js.map +0 -1
package/dist/util/graph-edges.js
CHANGED
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
import { toProjectDisplayPath } from "./paths.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Rebuilds a file-dependency edge from an {@link EdgeImportSource}.
|
|
4
|
+
* Import bindings and deleted-file snapshots both use this so `raw`, type-only,
|
|
5
|
+
* and C/C++ `includeForm` stay on the edge. Angle and quoted includes of one
|
|
6
|
+
* header must not collapse.
|
|
7
|
+
*/
|
|
8
|
+
export function edgeFromImportBinding(from, to, source) {
|
|
9
|
+
const { includeForm } = source;
|
|
10
|
+
return {
|
|
11
|
+
from,
|
|
12
|
+
to,
|
|
13
|
+
raw: source.raw ?? source.from,
|
|
14
|
+
...(source.typeOnly ? { typeOnly: source.typeOnly } : {}),
|
|
15
|
+
...(includeForm ? { includeForm } : {}),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function storedFilePath(file) {
|
|
19
|
+
return file;
|
|
20
|
+
}
|
|
21
|
+
/** Shared identity for collection, project assembly, delta, and drift comparison. */
|
|
22
|
+
export function edgeKey(edge, rawIsIdentity = true, filePath = storedFilePath) {
|
|
23
|
+
const from = filePath(edge.from);
|
|
24
|
+
const target = edge.to.type === "file" ? filePath(edge.to.path) : edge.to.name;
|
|
25
|
+
const raw = rawIsIdentity ? edge.raw : "";
|
|
4
26
|
const typeOnly = edge.typeOnly ? "1" : "0";
|
|
5
|
-
return `${edge.
|
|
27
|
+
return `${from}\0${edge.to.type}\0${target}\0${raw}\0${typeOnly}\0${edge.includeForm ?? ""}`;
|
|
6
28
|
}
|
|
7
29
|
export function compareEdges(left, right) {
|
|
8
30
|
const fromCompare = left.from.localeCompare(right.from);
|
|
@@ -21,7 +43,10 @@ export function compareEdges(left, right) {
|
|
|
21
43
|
return rawCompare;
|
|
22
44
|
const leftTypeOnly = left.typeOnly ? 1 : 0;
|
|
23
45
|
const rightTypeOnly = right.typeOnly ? 1 : 0;
|
|
24
|
-
|
|
46
|
+
const typeCompare = leftTypeOnly - rightTypeOnly;
|
|
47
|
+
if (typeCompare)
|
|
48
|
+
return typeCompare;
|
|
49
|
+
return (left.includeForm ?? "").localeCompare(right.includeForm ?? "");
|
|
25
50
|
}
|
|
26
51
|
export function toRelativeEdge(projectRoot, edge) {
|
|
27
52
|
const from = toProjectDisplayPath(projectRoot, edge.from);
|
|
@@ -37,6 +62,7 @@ export function toRelativeEdge(projectRoot, edge) {
|
|
|
37
62
|
to,
|
|
38
63
|
raw: edge.raw,
|
|
39
64
|
...(edge.typeOnly ? { typeOnly: edge.typeOnly } : {}),
|
|
65
|
+
...(edge.includeForm ? { includeForm: edge.includeForm } : {}),
|
|
40
66
|
};
|
|
41
67
|
}
|
|
42
68
|
//# sourceMappingURL=graph-edges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-edges.js","sourceRoot":"","sources":["../../src/util/graph-edges.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-edges.js","sourceRoot":"","sources":["../../src/util/graph-edges.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,13 @@ export declare const PHP_IDENTIFIER_SOURCE: string;
|
|
|
35
35
|
export declare const JAVA_IDENTIFIER_IGNORABLE_SOURCE: string;
|
|
36
36
|
/** C# formatting characters permitted in identifier-part-character. */
|
|
37
37
|
export declare const CSHARP_IDENTIFIER_FORMAT_SOURCE: string;
|
|
38
|
+
/**
|
|
39
|
+
* C# identifier equality: a verbatim `@` prefix and formatting characters (Cf) do not change
|
|
40
|
+
* the identifier, so `@P` and `P` name the same namespace, type, or member.
|
|
41
|
+
*/
|
|
42
|
+
export declare function normalizeCsharpIdentifier(name: string): string;
|
|
43
|
+
/** Normalizes each dotted segment of a C# namespace or type path; a `global::` prefix is kept. */
|
|
44
|
+
export declare function normalizeCsharpQualifiedName(text: string): string;
|
|
38
45
|
/**
|
|
39
46
|
* Java identifiers (`Character.isJavaIdentifierStart`/`isJavaIdentifierPart`) permit a
|
|
40
47
|
* Unicode letter (Lu/Ll/Lt/Lm/Lo), a letter-number (Nl, e.g. Roman numerals), a currency
|
|
@@ -66,4 +73,12 @@ export declare const GO_IDENTIFIER_SOURCE: string;
|
|
|
66
73
|
* (No), and combining marks are not part of the Kotlin grammar.
|
|
67
74
|
*/
|
|
68
75
|
export declare const KOTLIN_IDENTIFIER_SOURCE: string;
|
|
76
|
+
/**
|
|
77
|
+
* ASCII-only case fold for a PHP identifier. PHP resolves class, interface, trait, and
|
|
78
|
+
* function names case-insensitively but only across the ASCII range; non-ASCII bytes in a
|
|
79
|
+
* PHP identifier are passed through unchanged. Shared by PHP name comparison and by the
|
|
80
|
+
* bloom filter, which stores both a PHP file's raw identifier spellings and their folded
|
|
81
|
+
* form so a case-variant reference can still be probed with a single folded lookup.
|
|
82
|
+
*/
|
|
83
|
+
export declare function foldPhpIdentifierCase(value: string): string;
|
|
69
84
|
//# sourceMappingURL=identifiers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/util/identifiers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,UAAQ,GAAG,OAAO,CAMtF;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAqE,CAAC;AAE/G;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,QAAiG,CAAC;AAE7I,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,QAAmD,CAAC;AAEtF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,QAAwB,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAuE,CAAC;AAE1G;;;GAGG;AACH,eAAO,MAAM,gCAAgC,QAA4D,CAAC;AAE1G,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,QAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../src/util/identifiers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,UAAQ,GAAG,OAAO,CAMtF;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAqE,CAAC;AAE/G;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,QAAiG,CAAC;AAE7I,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,QAAmD,CAAC;AAEtF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,QAAwB,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAuE,CAAC;AAE1G;;;GAGG;AACH,eAAO,MAAM,gCAAgC,QAA4D,CAAC;AAE1G,uEAAuE;AACvE,eAAO,MAAM,+BAA+B,QAAqB,CAAC;AAIlE;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,kGAAkG;AAClG,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,QAAuH,CAAC;AAE3J;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,QAAwG,CAAC;AAE9I;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAsC,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAsC,CAAC;AAE5E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO3D"}
|
package/dist/util/identifiers.js
CHANGED
|
@@ -42,6 +42,26 @@ export const PHP_IDENTIFIER_SOURCE = String.raw `[A-Za-z_\u{80}-\u{10FFFF}][A-Za
|
|
|
42
42
|
export const JAVA_IDENTIFIER_IGNORABLE_SOURCE = String.raw `\p{Cf}\u0000-\u0008\u000E-\u001B\u007F-\u009F`;
|
|
43
43
|
/** C# formatting characters permitted in identifier-part-character. */
|
|
44
44
|
export const CSHARP_IDENTIFIER_FORMAT_SOURCE = String.raw `\p{Cf}`;
|
|
45
|
+
const CSHARP_IDENTIFIER_FORMAT_PATTERN = new RegExp(`[${CSHARP_IDENTIFIER_FORMAT_SOURCE}]`, "gu");
|
|
46
|
+
/**
|
|
47
|
+
* C# identifier equality: a verbatim `@` prefix and formatting characters (Cf) do not change
|
|
48
|
+
* the identifier, so `@P` and `P` name the same namespace, type, or member.
|
|
49
|
+
*/
|
|
50
|
+
export function normalizeCsharpIdentifier(name) {
|
|
51
|
+
const withoutVerbatimPrefix = name.startsWith("@") ? name.slice(1) : name;
|
|
52
|
+
return hasNonAsciiCodePoint(withoutVerbatimPrefix)
|
|
53
|
+
? withoutVerbatimPrefix.replace(CSHARP_IDENTIFIER_FORMAT_PATTERN, "")
|
|
54
|
+
: withoutVerbatimPrefix;
|
|
55
|
+
}
|
|
56
|
+
/** Normalizes each dotted segment of a C# namespace or type path; a `global::` prefix is kept. */
|
|
57
|
+
export function normalizeCsharpQualifiedName(text) {
|
|
58
|
+
const compact = text.replace(/\s+/gu, "");
|
|
59
|
+
const globalPrefix = compact.startsWith("global::") ? "global::" : "";
|
|
60
|
+
const body = compact.slice(globalPrefix.length);
|
|
61
|
+
if (!body)
|
|
62
|
+
return globalPrefix;
|
|
63
|
+
return globalPrefix + body.split(".").map(normalizeCsharpIdentifier).join(".");
|
|
64
|
+
}
|
|
45
65
|
/**
|
|
46
66
|
* Java identifiers (`Character.isJavaIdentifierStart`/`isJavaIdentifierPart`) permit a
|
|
47
67
|
* Unicode letter (Lu/Ll/Lt/Lm/Lo), a letter-number (Nl, e.g. Roman numerals), a currency
|
|
@@ -73,4 +93,19 @@ export const GO_IDENTIFIER_SOURCE = String.raw `[\p{L}_][\p{L}\p{Nd}_]*`;
|
|
|
73
93
|
* (No), and combining marks are not part of the Kotlin grammar.
|
|
74
94
|
*/
|
|
75
95
|
export const KOTLIN_IDENTIFIER_SOURCE = String.raw `[\p{L}_][\p{L}\p{Nd}_]*`;
|
|
96
|
+
/**
|
|
97
|
+
* ASCII-only case fold for a PHP identifier. PHP resolves class, interface, trait, and
|
|
98
|
+
* function names case-insensitively but only across the ASCII range; non-ASCII bytes in a
|
|
99
|
+
* PHP identifier are passed through unchanged. Shared by PHP name comparison and by the
|
|
100
|
+
* bloom filter, which stores both a PHP file's raw identifier spellings and their folded
|
|
101
|
+
* form so a case-variant reference can still be probed with a single folded lookup.
|
|
102
|
+
*/
|
|
103
|
+
export function foldPhpIdentifierCase(value) {
|
|
104
|
+
let folded = "";
|
|
105
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
106
|
+
const code = value.charCodeAt(index);
|
|
107
|
+
folded += code >= 65 && code <= 90 ? String.fromCharCode(code + 32) : value[index];
|
|
108
|
+
}
|
|
109
|
+
return folded;
|
|
110
|
+
}
|
|
76
111
|
//# sourceMappingURL=identifiers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/util/identifiers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,iBAAiB,GAAG,KAAK;IAC3E,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAC5C,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,iBAAiB,IAAI,SAAS,IAAI,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,GAAG,CAAA,wDAAwD,CAAC;AAE/G;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,GAAG,CAAA,oFAAoF,CAAC;AAE7I,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA,sCAAsC,CAAC;AAEtF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA,0DAA0D,CAAC;AAE1G;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC,GAAG,CAAA,+CAA+C,CAAC;AAE1G,uEAAuE;AACvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,GAAG,CAAA,QAAQ,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAA,sEAAsE,gCAAgC,IAAI,CAAC;AAE3J;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAA,wDAAwD,+BAA+B,IAAI,CAAC;AAE9I;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,yBAAyB,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAA,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/util/identifiers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-language member-access and
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* the
|
|
2
|
+
* Per-language member-access, receiver, and ancestry tables for `./member-access.ts`, keyword
|
|
3
|
+
* navigation, and the detailed graph passes. Rows are keyed by language id, following the
|
|
4
|
+
* trivia-table precedent in `./trivia-tables.ts`: walkers keep the algorithms; this table keeps
|
|
5
|
+
* the per-language node types, extraction shapes, receiver keywords, and ancestry forms.
|
|
6
6
|
*
|
|
7
7
|
* Every registered language has a row. A document, style, or data format row carries only
|
|
8
8
|
* `omittedReason`; a source-language row declares each capability it has and names a one-line
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
export type ReceiverKeywords = {
|
|
15
15
|
/** Keywords naming the type that declares the calling member. */
|
|
16
16
|
own: readonly string[];
|
|
17
|
+
/** Own-type keywords that name an instance rather than the type itself. */
|
|
18
|
+
instanceOwn: readonly string[];
|
|
17
19
|
/** Keywords naming a supertype of the declaring type. */
|
|
18
20
|
supertype: readonly string[];
|
|
19
21
|
};
|
|
@@ -41,6 +43,35 @@ export type MemberAccessShape = {
|
|
|
41
43
|
navigation: true;
|
|
42
44
|
};
|
|
43
45
|
};
|
|
46
|
+
export type ReceiverAncestryRelation = "extends" | "implements" | "trait" | "mixin";
|
|
47
|
+
export type ReceiverAncestorClause = {
|
|
48
|
+
/** Syntax node that contains one or more declared ancestors. */
|
|
49
|
+
nodeType: string;
|
|
50
|
+
/** Detailed-graph edge label, or superclass-first classification for mixed base lists. */
|
|
51
|
+
relation: ReceiverAncestryRelation | "superclass-first";
|
|
52
|
+
/** Descend into this field before collecting ancestors. */
|
|
53
|
+
field?: string;
|
|
54
|
+
/** Treat every matching clause separately. */
|
|
55
|
+
each?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Which ancestors a `super`/`parent`/`base` receiver may address. Own-type receivers use every
|
|
58
|
+
* declaration in the clause.
|
|
59
|
+
*/
|
|
60
|
+
supertype?: "all" | "first-child" | "first-match";
|
|
61
|
+
};
|
|
62
|
+
export type ReceiverAncestorEmbed = {
|
|
63
|
+
body: string;
|
|
64
|
+
memberList?: string;
|
|
65
|
+
member: string;
|
|
66
|
+
typeField?: string;
|
|
67
|
+
nameless?: boolean;
|
|
68
|
+
};
|
|
69
|
+
export type ReceiverAncestry = {
|
|
70
|
+
clauses: readonly ReceiverAncestorClause[];
|
|
71
|
+
embeds?: readonly ReceiverAncestorEmbed[];
|
|
72
|
+
/** Call names that add mixins to the declaring type, such as Ruby `include` and `prepend`. */
|
|
73
|
+
mixinCalls?: readonly string[];
|
|
74
|
+
};
|
|
44
75
|
export type MemberAccessRow = {
|
|
45
76
|
/** Why the language has no member-access capability at all; only document, style, and data formats set it. */
|
|
46
77
|
omittedReason?: string;
|
|
@@ -58,8 +89,25 @@ export type MemberAccessRow = {
|
|
|
58
89
|
navigationFallbackLastChild?: true;
|
|
59
90
|
/** Identifiers that name the type declaring the calling member. */
|
|
60
91
|
receiverKeywords?: ReceiverKeywords;
|
|
92
|
+
/**
|
|
93
|
+
* A receiver keyword may also be spelled as a zero-argument call to that keyword identifier
|
|
94
|
+
* (Python's `super()`, which has no bare-name form unlike `self`/`cls`). Absent for every
|
|
95
|
+
* language whose receiver keywords are always bare names.
|
|
96
|
+
*/
|
|
97
|
+
receiverKeywordCallShape?: true;
|
|
61
98
|
/** Why the language declares no receiver keywords. */
|
|
62
99
|
receiverKeywordsOmittedReason?: string;
|
|
100
|
+
/** Language syntax that declares ancestors visible to own-type and supertype receivers. */
|
|
101
|
+
receiverAncestry?: ReceiverAncestry;
|
|
102
|
+
/**
|
|
103
|
+
* Member syntax can name a free function (`!isMember`): Kotlin extensions
|
|
104
|
+
* (`fun Widget.describe()`) and Go methods, which are indexed as free functions.
|
|
105
|
+
* Swift extensions, Rust methods, and C# extension methods are `isMember`, so they
|
|
106
|
+
* stay on the member path and do not set this flag.
|
|
107
|
+
*/
|
|
108
|
+
memberCallNamesFreeFunction?: true;
|
|
109
|
+
/** Why a member call cannot name a free function in this language. */
|
|
110
|
+
memberCallNamesFreeFunctionOmittedReason?: string;
|
|
63
111
|
};
|
|
64
112
|
export declare const MEMBER_ACCESS_ROWS: Record<string, MemberAccessRow>;
|
|
65
113
|
/** Every language that declares receiver keywords, guarded by the registry-consistency test. */
|
|
@@ -68,5 +116,14 @@ export declare const receiverKeywordLanguageIds: readonly string[];
|
|
|
68
116
|
export declare function supportsReceiverCallEdges(languageId: string): boolean;
|
|
69
117
|
/** Languages where goto and references require proven receivers and do not fall back to a bare name. */
|
|
70
118
|
export declare function supportsReceiverMemberNavigation(languageId: string): boolean;
|
|
119
|
+
export declare function keywordReceiverKind(languageId: string, receiverName: string): "own" | "supertype" | null;
|
|
120
|
+
/**
|
|
121
|
+
* Instance-own keywords (`this`, `$this`) require instance members.
|
|
122
|
+
* Other own keywords name the declaring type and may still bind instance members
|
|
123
|
+
* (PHP `self::` / `static::` late static binding), so they do not force a static-only filter.
|
|
124
|
+
*/
|
|
125
|
+
export declare function ownReceiverMemberScope(languageId: string, receiverName: string): "instance" | "any" | null;
|
|
71
126
|
export declare function isKeywordReceiver(languageId: string, receiverName: string): boolean;
|
|
127
|
+
/** Whether `receiver.name()` can refer to a free function rather than only a member. */
|
|
128
|
+
export declare function memberSyntaxNamesFreeFunction(languageId: string): boolean;
|
|
72
129
|
//# sourceMappingURL=member-access-tables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-access-tables.d.ts","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iEAAiE;IACjE,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,yDAAyD;IACzD,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,mGAAmG;IACnG,QAAQ,EAAE,iBAAiB,GAAG;QAAE,UAAU,EAAE,IAAI,CAAA;KAAE,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,8GAA8G;IAC9G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yGAAyG;IACzG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,yFAAyF;IACzF,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,sGAAsG;IACtG,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,oGAAoG;IACpG,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gHAAgH;IAChH,2BAA2B,CAAC,EAAE,IAAI,CAAC;IACnC,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,sDAAsD;IACtD,6BAA6B,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"member-access-tables.d.ts","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-language member-access and
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* the
|
|
2
|
+
* Per-language member-access, receiver, and ancestry tables for `./member-access.ts`, keyword
|
|
3
|
+
* navigation, and the detailed graph passes. Rows are keyed by language id, following the
|
|
4
|
+
* trivia-table precedent in `./trivia-tables.ts`: walkers keep the algorithms; this table keeps
|
|
5
|
+
* the per-language node types, extraction shapes, receiver keywords, and ancestry forms.
|
|
6
6
|
*
|
|
7
7
|
* Every registered language has a row. A document, style, or data format row carries only
|
|
8
8
|
* `omittedReason`; a source-language row declares each capability it has and names a one-line
|
|
@@ -21,23 +21,39 @@ const CPP_QUALIFIED_ACCESS_SHAPE = {
|
|
|
21
21
|
object: { field: "scope", fallbackIndex: 0 },
|
|
22
22
|
property: { field: "name", fallbackIndex: 2 },
|
|
23
23
|
};
|
|
24
|
-
const THIS_SUPER_RECEIVERS = { own: ["this"], supertype: ["super"] };
|
|
25
|
-
const SELF_RECEIVERS = { own: ["self"], supertype: ["super"] };
|
|
24
|
+
const THIS_SUPER_RECEIVERS = { own: ["this"], instanceOwn: ["this"], supertype: ["super"] };
|
|
25
|
+
const SELF_RECEIVERS = { own: ["self"], instanceOwn: ["self"], supertype: ["super"] };
|
|
26
26
|
export const MEMBER_ACCESS_ROWS = {
|
|
27
27
|
adoc: { omittedReason: "AsciiDoc document format; embedded code blocks parse as their own language." },
|
|
28
28
|
astro: { omittedReason: "Astro document format; scripts parse as js/ts and templates as html." },
|
|
29
29
|
c: {
|
|
30
30
|
memberAccessShapes: [C_FIELD_ACCESS_SHAPE],
|
|
31
31
|
receiverKeywordsOmittedReason: "C has no receiver keyword; member access always names an explicit object or pointer.",
|
|
32
|
+
memberCallNamesFreeFunctionOmittedReason: "A member expression names a field of an object, not a free function.",
|
|
32
33
|
},
|
|
33
34
|
cpp: {
|
|
34
35
|
memberAccessShapes: [C_FIELD_ACCESS_SHAPE, CPP_QUALIFIED_ACCESS_SHAPE],
|
|
35
|
-
receiverKeywords: { own: ["this"], supertype: [] },
|
|
36
|
+
receiverKeywords: { own: ["this"], instanceOwn: ["this"], supertype: [] },
|
|
37
|
+
receiverAncestry: { clauses: [{ nodeType: "base_class_clause", relation: "extends" }] },
|
|
38
|
+
memberCallNamesFreeFunctionOmittedReason: "A member call on an object or parameter cannot name a namespace free function.",
|
|
36
39
|
},
|
|
37
40
|
css: { omittedReason: "Style language; no member-access concept." },
|
|
38
41
|
csharp: {
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
extraTraversalTypes: ["qualified_name", "alias_qualified_name"],
|
|
43
|
+
extraMemberAccessTypes: ["alias_qualified_name"],
|
|
44
|
+
memberAccessShapes: [
|
|
45
|
+
{
|
|
46
|
+
nodeTypes: ["alias_qualified_name"],
|
|
47
|
+
object: { field: "alias", fallbackIndex: 0 },
|
|
48
|
+
property: { field: "name", fallbackIndex: 2 },
|
|
49
|
+
},
|
|
50
|
+
{ object: { index: 0 }, property: { index: 2 } },
|
|
51
|
+
],
|
|
52
|
+
receiverKeywords: { own: ["this"], instanceOwn: ["this"], supertype: ["base"] },
|
|
53
|
+
receiverAncestry: {
|
|
54
|
+
clauses: [{ nodeType: "base_list", relation: "superclass-first", supertype: "first-child" }],
|
|
55
|
+
},
|
|
56
|
+
memberCallNamesFreeFunctionOmittedReason: "Extension methods are members; a free function is not called with member syntax.",
|
|
41
57
|
},
|
|
42
58
|
go: {
|
|
43
59
|
extraTraversalTypes: ["qualified_type"],
|
|
@@ -45,7 +61,21 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
45
61
|
memberAccessShapes: [{ nodeTypes: ["qualified_type"], object: { namedIndex: 0 }, property: { namedIndex: 1 } }],
|
|
46
62
|
// Go has no receiver keyword: a method call's receiver is an ordinary value. The row still
|
|
47
63
|
// exists so go receivers must be proven rather than falling back to a bare name.
|
|
48
|
-
receiverKeywords: { own: [], supertype: [] },
|
|
64
|
+
receiverKeywords: { own: [], instanceOwn: [], supertype: [] },
|
|
65
|
+
receiverAncestry: {
|
|
66
|
+
clauses: [],
|
|
67
|
+
embeds: [
|
|
68
|
+
{ body: "interface_type", member: "type_elem" },
|
|
69
|
+
{
|
|
70
|
+
body: "struct_type",
|
|
71
|
+
memberList: "field_declaration_list",
|
|
72
|
+
member: "field_declaration",
|
|
73
|
+
typeField: "type",
|
|
74
|
+
nameless: true,
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
memberCallNamesFreeFunction: true,
|
|
49
79
|
},
|
|
50
80
|
hbs: { omittedReason: "Handlebars document format; embedded scripts parse as their own language." },
|
|
51
81
|
html: { omittedReason: "Document format; embedded scripts parse as their own language." },
|
|
@@ -63,10 +93,19 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
63
93
|
},
|
|
64
94
|
],
|
|
65
95
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
96
|
+
receiverAncestry: {
|
|
97
|
+
clauses: [
|
|
98
|
+
{ nodeType: "superclass", relation: "extends", supertype: "all" },
|
|
99
|
+
{ nodeType: "super_interfaces", relation: "implements" },
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
memberCallNamesFreeFunctionOmittedReason: "A method call names a member of the receiver type, not a free function.",
|
|
66
103
|
},
|
|
67
104
|
js: {
|
|
68
105
|
memberAccessOmittedReason: "The shared generic default already reads member_expression's object and property fields.",
|
|
69
106
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
107
|
+
receiverAncestry: { clauses: [{ nodeType: "class_heritage", relation: "extends", supertype: "all" }] },
|
|
108
|
+
memberCallNamesFreeFunctionOmittedReason: "Member syntax names an object property; a free function is not called that way.",
|
|
70
109
|
},
|
|
71
110
|
kotlin: {
|
|
72
111
|
memberAccessShapes: [
|
|
@@ -74,12 +113,21 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
74
113
|
],
|
|
75
114
|
navigationFallbackLastChild: true,
|
|
76
115
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
116
|
+
receiverAncestry: {
|
|
117
|
+
clauses: [{ nodeType: "delegation_specifiers", relation: "superclass-first", supertype: "first-child" }],
|
|
118
|
+
},
|
|
119
|
+
memberCallNamesFreeFunction: true,
|
|
77
120
|
},
|
|
78
121
|
less: { omittedReason: "Style language; no member-access concept." },
|
|
79
122
|
markdown: { omittedReason: "Document format; fenced code blocks parse as their own language." },
|
|
80
123
|
mdx: { omittedReason: "MDX document format; scripts parse as js/ts and templates as html." },
|
|
81
124
|
php: {
|
|
82
|
-
extraMemberAccessTypes: [
|
|
125
|
+
extraMemberAccessTypes: [
|
|
126
|
+
"member_call_expression",
|
|
127
|
+
"nullsafe_member_call_expression",
|
|
128
|
+
"scoped_call_expression",
|
|
129
|
+
"class_constant_access_expression",
|
|
130
|
+
],
|
|
83
131
|
memberAccessShapes: [
|
|
84
132
|
{
|
|
85
133
|
nodeTypes: ["member_call_expression", "nullsafe_member_call_expression"],
|
|
@@ -91,15 +139,31 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
91
139
|
object: { field: "scope", fallbackIndex: 0 },
|
|
92
140
|
property: { field: "name", fallbackIndex: 2 },
|
|
93
141
|
},
|
|
142
|
+
{
|
|
143
|
+
nodeTypes: ["class_constant_access_expression"],
|
|
144
|
+
object: { namedIndex: 0 },
|
|
145
|
+
property: { namedIndex: 1 },
|
|
146
|
+
},
|
|
94
147
|
],
|
|
95
|
-
receiverKeywords: { own: ["$this", "self", "static"], supertype: ["parent"] },
|
|
148
|
+
receiverKeywords: { own: ["$this", "self", "static"], instanceOwn: ["$this"], supertype: ["parent"] },
|
|
149
|
+
receiverAncestry: {
|
|
150
|
+
clauses: [
|
|
151
|
+
{ nodeType: "base_clause", relation: "extends", supertype: "all" },
|
|
152
|
+
{ nodeType: "class_interface_clause", relation: "implements" },
|
|
153
|
+
{ nodeType: "use_declaration", relation: "trait", each: true },
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
memberCallNamesFreeFunctionOmittedReason: "A member or scoped call names a class member, not a free function.",
|
|
96
157
|
},
|
|
97
158
|
python: {
|
|
98
159
|
memberExpressionType: "attribute",
|
|
99
160
|
memberAccessShapes: [
|
|
100
161
|
{ object: { field: "object", fallbackIndex: 0 }, property: { field: "attribute", fallbackIndex: 2 } },
|
|
101
162
|
],
|
|
102
|
-
receiverKeywords: { own: ["self", "cls"], supertype: [] },
|
|
163
|
+
receiverKeywords: { own: ["self", "cls"], instanceOwn: ["self"], supertype: ["super"] },
|
|
164
|
+
receiverKeywordCallShape: true,
|
|
165
|
+
receiverAncestry: { clauses: [{ nodeType: "argument_list", relation: "extends" }] },
|
|
166
|
+
memberCallNamesFreeFunctionOmittedReason: "Attribute access names a member; a free function is not called that way.",
|
|
103
167
|
},
|
|
104
168
|
rst: { omittedReason: "reStructuredText document format; embedded code blocks parse as their own language." },
|
|
105
169
|
ruby: {
|
|
@@ -113,7 +177,12 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
113
177
|
// Ruby models every other member access as a `call` node with receiver and method fields.
|
|
114
178
|
{ object: { field: "receiver", fallbackIndex: 0 }, property: { field: "method", fallbackIndex: 2 } },
|
|
115
179
|
],
|
|
116
|
-
receiverKeywords: { own: ["self"], supertype: [] },
|
|
180
|
+
receiverKeywords: { own: ["self"], instanceOwn: ["self"], supertype: [] },
|
|
181
|
+
receiverAncestry: {
|
|
182
|
+
clauses: [{ nodeType: "superclass", relation: "extends", supertype: "all" }],
|
|
183
|
+
mixinCalls: ["include", "extend", "prepend"],
|
|
184
|
+
},
|
|
185
|
+
memberCallNamesFreeFunctionOmittedReason: "A call with a receiver names a method, not a free function.",
|
|
117
186
|
},
|
|
118
187
|
rust: {
|
|
119
188
|
memberAccessShapes: [
|
|
@@ -123,7 +192,8 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
123
192
|
property: { field: "name", fallbackIndex: 2 },
|
|
124
193
|
},
|
|
125
194
|
],
|
|
126
|
-
receiverKeywords: { own: ["self", "Self"], supertype: [] },
|
|
195
|
+
receiverKeywords: { own: ["self", "Self"], instanceOwn: ["self"], supertype: [] },
|
|
196
|
+
memberCallNamesFreeFunctionOmittedReason: "Methods are members; a free function is not invoked with member syntax.",
|
|
127
197
|
},
|
|
128
198
|
scss: { omittedReason: "Style language; no member-access concept." },
|
|
129
199
|
svelte: { omittedReason: "Svelte component format; script blocks parse as js/ts and templates as html." },
|
|
@@ -133,19 +203,45 @@ export const MEMBER_ACCESS_ROWS = {
|
|
|
133
203
|
{ nodeTypes: ["navigation_expression"], object: { namedIndex: 0 }, property: { navigation: true } },
|
|
134
204
|
],
|
|
135
205
|
receiverKeywords: SELF_RECEIVERS,
|
|
206
|
+
receiverAncestry: {
|
|
207
|
+
clauses: [
|
|
208
|
+
{
|
|
209
|
+
nodeType: "inheritance_specifier",
|
|
210
|
+
relation: "superclass-first",
|
|
211
|
+
each: true,
|
|
212
|
+
supertype: "first-match",
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
},
|
|
216
|
+
memberCallNamesFreeFunctionOmittedReason: "Extension methods are members; a free function is not called with member syntax.",
|
|
136
217
|
},
|
|
137
218
|
ts: {
|
|
138
219
|
memberAccessOmittedReason: "The shared generic default already reads member_expression's object and property fields.",
|
|
139
220
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
221
|
+
receiverAncestry: {
|
|
222
|
+
clauses: [
|
|
223
|
+
{ nodeType: "extends_clause", relation: "extends", field: "value", supertype: "all" },
|
|
224
|
+
{ nodeType: "implements_clause", relation: "implements" },
|
|
225
|
+
],
|
|
226
|
+
},
|
|
227
|
+
memberCallNamesFreeFunctionOmittedReason: "Member syntax names an object property; a free function is not called that way.",
|
|
140
228
|
},
|
|
141
229
|
tsx: {
|
|
142
230
|
memberAccessOmittedReason: "The shared generic default already reads member_expression's object and property fields.",
|
|
143
231
|
receiverKeywords: THIS_SUPER_RECEIVERS,
|
|
232
|
+
receiverAncestry: {
|
|
233
|
+
clauses: [
|
|
234
|
+
{ nodeType: "extends_clause", relation: "extends", field: "value", supertype: "all" },
|
|
235
|
+
{ nodeType: "implements_clause", relation: "implements" },
|
|
236
|
+
],
|
|
237
|
+
},
|
|
238
|
+
memberCallNamesFreeFunctionOmittedReason: "Member syntax names an object property; a free function is not called that way.",
|
|
144
239
|
},
|
|
145
240
|
vue: { omittedReason: "Vue component format; script blocks parse as js/ts and templates as html." },
|
|
146
241
|
zig: {
|
|
147
242
|
memberAccessOmittedReason: "No per-language extraction today; the shared generic default is zig's behavior.",
|
|
148
|
-
receiverKeywords: { own: ["self"], supertype: [] },
|
|
243
|
+
receiverKeywords: { own: ["self"], instanceOwn: ["self"], supertype: [] },
|
|
244
|
+
memberCallNamesFreeFunctionOmittedReason: "A member call names a container member, not a free function.",
|
|
149
245
|
},
|
|
150
246
|
};
|
|
151
247
|
/** Every language that declares receiver keywords, guarded by the registry-consistency test. */
|
|
@@ -158,10 +254,32 @@ export function supportsReceiverCallEdges(languageId) {
|
|
|
158
254
|
export function supportsReceiverMemberNavigation(languageId) {
|
|
159
255
|
return MEMBER_ACCESS_ROWS[languageId]?.receiverKeywords !== undefined;
|
|
160
256
|
}
|
|
161
|
-
export function
|
|
257
|
+
export function keywordReceiverKind(languageId, receiverName) {
|
|
162
258
|
const keywords = MEMBER_ACCESS_ROWS[languageId]?.receiverKeywords;
|
|
163
259
|
if (!keywords)
|
|
164
|
-
return
|
|
165
|
-
|
|
260
|
+
return null;
|
|
261
|
+
if (keywords.own.includes(receiverName))
|
|
262
|
+
return "own";
|
|
263
|
+
if (keywords.supertype.includes(receiverName))
|
|
264
|
+
return "supertype";
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Instance-own keywords (`this`, `$this`) require instance members.
|
|
269
|
+
* Other own keywords name the declaring type and may still bind instance members
|
|
270
|
+
* (PHP `self::` / `static::` late static binding), so they do not force a static-only filter.
|
|
271
|
+
*/
|
|
272
|
+
export function ownReceiverMemberScope(languageId, receiverName) {
|
|
273
|
+
const keywords = MEMBER_ACCESS_ROWS[languageId]?.receiverKeywords;
|
|
274
|
+
if (!keywords?.own.includes(receiverName))
|
|
275
|
+
return null;
|
|
276
|
+
return keywords.instanceOwn.includes(receiverName) ? "instance" : "any";
|
|
277
|
+
}
|
|
278
|
+
export function isKeywordReceiver(languageId, receiverName) {
|
|
279
|
+
return keywordReceiverKind(languageId, receiverName) !== null;
|
|
280
|
+
}
|
|
281
|
+
/** Whether `receiver.name()` can refer to a free function rather than only a member. */
|
|
282
|
+
export function memberSyntaxNamesFreeFunction(languageId) {
|
|
283
|
+
return !!MEMBER_ACCESS_ROWS[languageId]?.memberCallNamesFreeFunction;
|
|
166
284
|
}
|
|
167
285
|
//# sourceMappingURL=member-access-tables.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-access-tables.js","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"member-access-tables.js","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,14 @@ export declare function isMemberObjectIdentifier(nodeType: string): boolean;
|
|
|
17
17
|
/** Identifier-like nodes that can name a receiver, including Ruby `@ivar`/`@@cvar`. */
|
|
18
18
|
export declare function isReceiverNameNode(sup: LanguageSupport, nodeType: string): boolean;
|
|
19
19
|
export declare function isMemberReferencePropertyIdentifier(sup: LanguageSupport, nodeType: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The text used to classify a receiver as an own-type or supertype keyword. Ordinarily this is
|
|
22
|
+
* the receiver node's own source spelling, but a language whose row sets `receiverKeywordCallShape`
|
|
23
|
+
* may also spell a keyword receiver as a zero-argument call to that keyword - Python's `super()`,
|
|
24
|
+
* which (unlike `self`/`cls`) has no bare-name form. Only unwrap that call when its callee is
|
|
25
|
+
* not shadowed by a visible lexical binding.
|
|
26
|
+
*/
|
|
27
|
+
export declare function receiverKeywordText(sup: LanguageSupport, node: SyntaxNodeLike, source: string, hasLexicalBinding: (callee: SyntaxNodeLike) => boolean): string;
|
|
20
28
|
export declare function getNavigationExpressionProperty(sup: LanguageSupport, expr: SyntaxNodeLike): SyntaxNodeLike | null;
|
|
21
29
|
export declare function getMemberAccessParts(sup: LanguageSupport, memberNode: SyntaxNodeLike): MemberAccessParts;
|
|
22
30
|
export declare function collectMemberAccessChain(args: {
|
|
@@ -25,4 +33,13 @@ export declare function collectMemberAccessChain(args: {
|
|
|
25
33
|
chainNode: SyntaxNodeLike;
|
|
26
34
|
constStringOf?: Map<string, string>;
|
|
27
35
|
}): MemberAccessChain | null;
|
|
36
|
+
/**
|
|
37
|
+
* Whether a name inside a Rust macro token tree follows a `.` or `::` separator, ignoring comments:
|
|
38
|
+
* `counter.bump()` with a block comment after the dot is still a member call, and `m::run()` with
|
|
39
|
+
* one after the `::` is still a path call. Raw
|
|
40
|
+
* tokens cannot prove such a receiver, so both consumers stay conservative there.
|
|
41
|
+
*/
|
|
42
|
+
export declare function rustTokenTreeNameFollowsSeparator(name: SyntaxNodeLike): boolean;
|
|
43
|
+
/** Whether a Rust token tree is (nested in) the arguments of a standard expression macro. */
|
|
44
|
+
export declare function rustTokenTreeHoldsExpressions(tokenTree: SyntaxNodeLike): boolean;
|
|
28
45
|
//# sourceMappingURL=member-access.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-access.d.ts","sourceRoot":"","sources":["../../src/util/member-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAsBF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAGpE;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAE5E;AAED,wBAAgB,sCAAsC,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAErF;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAS5E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAMtF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWlE;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnG;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAajH;AAgBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAiBxG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,GAAG,iBAAiB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"member-access.d.ts","sourceRoot":"","sources":["../../src/util/member-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAsBF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAGpE;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAE5E;AAED,wBAAgB,sCAAsC,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAErF;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAS5E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAMtF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWlE;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,wBAAgB,mCAAmC,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnG;AAID;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,GACrD,MAAM,CAUR;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAajH;AAgBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAiBxG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,GAAG,iBAAiB,GAAG,IAAI,CA+C3B;AAID;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAU/E;AAgCD,6FAA6F;AAC7F,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAYhF"}
|