@ryanstark24/sfgraph-core 1.4.0 → 1.6.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/dist/analyze/apex-platform.d.ts +23 -0
- package/dist/analyze/apex-platform.d.ts.map +1 -0
- package/dist/analyze/apex-platform.js +112 -0
- package/dist/analyze/apex-platform.js.map +1 -0
- package/dist/analyze/audit-graph.d.ts +34 -10
- package/dist/analyze/audit-graph.d.ts.map +1 -1
- package/dist/analyze/audit-graph.js +360 -39
- package/dist/analyze/audit-graph.js.map +1 -1
- package/dist/analyze/component-scope.d.ts +82 -0
- package/dist/analyze/component-scope.d.ts.map +1 -0
- package/dist/analyze/component-scope.js +207 -0
- package/dist/analyze/component-scope.js.map +1 -0
- package/dist/analyze/containment.d.ts +91 -0
- package/dist/analyze/containment.d.ts.map +1 -0
- package/dist/analyze/containment.js +175 -0
- package/dist/analyze/containment.js.map +1 -0
- package/dist/analyze/cross-org.d.ts +35 -0
- package/dist/analyze/cross-org.d.ts.map +1 -1
- package/dist/analyze/cross-org.js +102 -3
- package/dist/analyze/cross-org.js.map +1 -1
- package/dist/analyze/dead-code.d.ts +99 -3
- package/dist/analyze/dead-code.d.ts.map +1 -1
- package/dist/analyze/dead-code.js +282 -10
- package/dist/analyze/dead-code.js.map +1 -1
- package/dist/analyze/dependencies.d.ts +20 -1
- package/dist/analyze/dependencies.d.ts.map +1 -1
- package/dist/analyze/dependencies.js +96 -12
- package/dist/analyze/dependencies.js.map +1 -1
- package/dist/analyze/dependents.d.ts +111 -1
- package/dist/analyze/dependents.d.ts.map +1 -1
- package/dist/analyze/dependents.js +282 -20
- package/dist/analyze/dependents.js.map +1 -1
- package/dist/analyze/deployment-manifest/generate.d.ts +24 -0
- package/dist/analyze/deployment-manifest/generate.d.ts.map +1 -1
- package/dist/analyze/deployment-manifest/generate.js +40 -12
- package/dist/analyze/deployment-manifest/generate.js.map +1 -1
- package/dist/analyze/deployment-manifest/member-name-formatters.d.ts.map +1 -1
- package/dist/analyze/deployment-manifest/member-name-formatters.js +1 -0
- package/dist/analyze/deployment-manifest/member-name-formatters.js.map +1 -1
- package/dist/analyze/deployment-manifest/member-types.d.ts.map +1 -1
- package/dist/analyze/deployment-manifest/member-types.js +2 -0
- package/dist/analyze/deployment-manifest/member-types.js.map +1 -1
- package/dist/analyze/diff-seeds.d.ts +33 -0
- package/dist/analyze/diff-seeds.d.ts.map +1 -0
- package/dist/analyze/diff-seeds.js +299 -0
- package/dist/analyze/diff-seeds.js.map +1 -0
- package/dist/analyze/edge-filters.d.ts +25 -0
- package/dist/analyze/edge-filters.d.ts.map +1 -1
- package/dist/analyze/edge-filters.js +78 -2
- package/dist/analyze/edge-filters.js.map +1 -1
- package/dist/analyze/field-scope.d.ts +25 -0
- package/dist/analyze/field-scope.d.ts.map +1 -0
- package/dist/analyze/field-scope.js +94 -0
- package/dist/analyze/field-scope.js.map +1 -0
- package/dist/analyze/find-nodes.d.ts +48 -12
- package/dist/analyze/find-nodes.d.ts.map +1 -1
- package/dist/analyze/find-nodes.js +323 -12
- package/dist/analyze/find-nodes.js.map +1 -1
- package/dist/analyze/findings.d.ts.map +1 -1
- package/dist/analyze/findings.js +14 -0
- package/dist/analyze/findings.js.map +1 -1
- package/dist/analyze/git-diff.d.ts +27 -1
- package/dist/analyze/git-diff.d.ts.map +1 -1
- package/dist/analyze/git-diff.js +198 -26
- package/dist/analyze/git-diff.js.map +1 -1
- package/dist/analyze/governor.d.ts +25 -4
- package/dist/analyze/governor.d.ts.map +1 -1
- package/dist/analyze/governor.js +82 -18
- package/dist/analyze/governor.js.map +1 -1
- package/dist/analyze/index.d.ts +6 -0
- package/dist/analyze/index.d.ts.map +1 -1
- package/dist/analyze/index.js +6 -0
- package/dist/analyze/index.js.map +1 -1
- package/dist/analyze/path-to-qname.d.ts +9 -0
- package/dist/analyze/path-to-qname.d.ts.map +1 -1
- package/dist/analyze/path-to-qname.js +58 -15
- package/dist/analyze/path-to-qname.js.map +1 -1
- package/dist/analyze/populate.d.ts +40 -0
- package/dist/analyze/populate.d.ts.map +1 -1
- package/dist/analyze/populate.js +148 -48
- package/dist/analyze/populate.js.map +1 -1
- package/dist/analyze/pseudo-endpoints.d.ts +67 -0
- package/dist/analyze/pseudo-endpoints.d.ts.map +1 -0
- package/dist/analyze/pseudo-endpoints.js +78 -0
- package/dist/analyze/pseudo-endpoints.js.map +1 -0
- package/dist/analyze/security.d.ts +2 -0
- package/dist/analyze/security.d.ts.map +1 -1
- package/dist/analyze/security.js +44 -15
- package/dist/analyze/security.js.map +1 -1
- package/dist/analyze/test-coverage.d.ts +48 -0
- package/dist/analyze/test-coverage.d.ts.map +1 -1
- package/dist/analyze/test-coverage.js +72 -1
- package/dist/analyze/test-coverage.js.map +1 -1
- package/dist/analyze/wip-changed-files.d.ts +88 -0
- package/dist/analyze/wip-changed-files.d.ts.map +1 -0
- package/dist/analyze/wip-changed-files.js +422 -0
- package/dist/analyze/wip-changed-files.js.map +1 -0
- package/dist/analyze/wip-impact.d.ts +59 -0
- package/dist/analyze/wip-impact.d.ts.map +1 -1
- package/dist/analyze/wip-impact.js +199 -126
- package/dist/analyze/wip-impact.js.map +1 -1
- package/dist/domain/apex-platform.d.ts +10 -0
- package/dist/domain/apex-platform.d.ts.map +1 -0
- package/dist/domain/apex-platform.js +231 -0
- package/dist/domain/apex-platform.js.map +1 -0
- package/dist/domain/index.d.ts +2 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +2 -0
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/rel-types.d.ts +7 -0
- package/dist/domain/rel-types.d.ts.map +1 -1
- package/dist/domain/rel-types.js +7 -0
- package/dist/domain/rel-types.js.map +1 -1
- package/dist/domain/standard-sobjects.d.ts +20 -0
- package/dist/domain/standard-sobjects.d.ts.map +1 -0
- package/dist/domain/standard-sobjects.js +183 -0
- package/dist/domain/standard-sobjects.js.map +1 -0
- package/dist/embedding/cache.d.ts +41 -0
- package/dist/embedding/cache.d.ts.map +1 -0
- package/dist/embedding/cache.js +69 -0
- package/dist/embedding/cache.js.map +1 -0
- package/dist/embedding/embed.d.ts +59 -0
- package/dist/embedding/embed.d.ts.map +1 -1
- package/dist/embedding/embed.js +193 -28
- package/dist/embedding/embed.js.map +1 -1
- package/dist/embedding/index.d.ts +7 -0
- package/dist/embedding/index.d.ts.map +1 -1
- package/dist/embedding/index.js +4 -0
- package/dist/embedding/index.js.map +1 -1
- package/dist/embedding/pool.d.ts +66 -6
- package/dist/embedding/pool.d.ts.map +1 -1
- package/dist/embedding/pool.js +156 -6
- package/dist/embedding/pool.js.map +1 -1
- package/dist/embedding/queue.d.ts +166 -9
- package/dist/embedding/queue.d.ts.map +1 -1
- package/dist/embedding/queue.js +397 -39
- package/dist/embedding/queue.js.map +1 -1
- package/dist/embedding/tokenize.d.ts +18 -0
- package/dist/embedding/tokenize.d.ts.map +1 -0
- package/dist/embedding/tokenize.js +43 -0
- package/dist/embedding/tokenize.js.map +1 -0
- package/dist/embedding/worker.d.ts +0 -5
- package/dist/embedding/worker.d.ts.map +1 -1
- package/dist/embedding/worker.js +27 -4
- package/dist/embedding/worker.js.map +1 -1
- package/dist/extractors/filesystem/index.d.ts +21 -1
- package/dist/extractors/filesystem/index.d.ts.map +1 -1
- package/dist/extractors/filesystem/index.js +195 -38
- package/dist/extractors/filesystem/index.js.map +1 -1
- package/dist/extractors/filesystem/vlocity-datapacks.d.ts +27 -0
- package/dist/extractors/filesystem/vlocity-datapacks.d.ts.map +1 -0
- package/dist/extractors/filesystem/vlocity-datapacks.js +201 -0
- package/dist/extractors/filesystem/vlocity-datapacks.js.map +1 -0
- package/dist/extractors/interfaces/metadata-source.d.ts +29 -0
- package/dist/extractors/interfaces/metadata-source.d.ts.map +1 -1
- package/dist/extractors/live-org/bulk-retrieve.d.ts +37 -1
- package/dist/extractors/live-org/bulk-retrieve.d.ts.map +1 -1
- package/dist/extractors/live-org/bulk-retrieve.js +233 -50
- package/dist/extractors/live-org/bulk-retrieve.js.map +1 -1
- package/dist/extractors/live-org/capabilities.d.ts +15 -0
- package/dist/extractors/live-org/capabilities.d.ts.map +1 -1
- package/dist/extractors/live-org/capabilities.js +54 -9
- package/dist/extractors/live-org/capabilities.js.map +1 -1
- package/dist/extractors/live-org/extractors/apex.d.ts +12 -2
- package/dist/extractors/live-org/extractors/apex.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/apex.js +151 -80
- package/dist/extractors/live-org/extractors/apex.js.map +1 -1
- package/dist/extractors/live-org/extractors/custom-settings.d.ts +2 -1
- package/dist/extractors/live-org/extractors/custom-settings.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/custom-settings.js +19 -9
- package/dist/extractors/live-org/extractors/custom-settings.js.map +1 -1
- package/dist/extractors/live-org/extractors/flow.d.ts +2 -1
- package/dist/extractors/live-org/extractors/flow.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/flow.js +12 -3
- package/dist/extractors/live-org/extractors/flow.js.map +1 -1
- package/dist/extractors/live-org/extractors/generic-metadata.d.ts +23 -3
- package/dist/extractors/live-org/extractors/generic-metadata.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/generic-metadata.js +110 -25
- package/dist/extractors/live-org/extractors/generic-metadata.js.map +1 -1
- package/dist/extractors/live-org/extractors/integration.d.ts +2 -1
- package/dist/extractors/live-org/extractors/integration.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/integration.js +14 -5
- package/dist/extractors/live-org/extractors/integration.js.map +1 -1
- package/dist/extractors/live-org/extractors/lwc.d.ts +2 -1
- package/dist/extractors/live-org/extractors/lwc.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/lwc.js +14 -6
- package/dist/extractors/live-org/extractors/lwc.js.map +1 -1
- package/dist/extractors/live-org/extractors/object.d.ts +2 -11
- package/dist/extractors/live-org/extractors/object.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/object.js +127 -226
- package/dist/extractors/live-org/extractors/object.js.map +1 -1
- package/dist/extractors/live-org/extractors/omnistudio.d.ts +3 -0
- package/dist/extractors/live-org/extractors/omnistudio.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/omnistudio.js +57 -22
- package/dist/extractors/live-org/extractors/omnistudio.js.map +1 -1
- package/dist/extractors/live-org/extractors/security.d.ts +12 -1
- package/dist/extractors/live-org/extractors/security.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/security.js +29 -7
- package/dist/extractors/live-org/extractors/security.js.map +1 -1
- package/dist/extractors/live-org/rate-limit.d.ts +7 -1
- package/dist/extractors/live-org/rate-limit.d.ts.map +1 -1
- package/dist/extractors/live-org/rate-limit.js +53 -10
- package/dist/extractors/live-org/rate-limit.js.map +1 -1
- package/dist/extractors/live-org/retry.d.ts +136 -0
- package/dist/extractors/live-org/retry.d.ts.map +1 -0
- package/dist/extractors/live-org/retry.js +416 -0
- package/dist/extractors/live-org/retry.js.map +1 -0
- package/dist/extractors/live-org/vlocity/runner.d.ts +2 -1
- package/dist/extractors/live-org/vlocity/runner.d.ts.map +1 -1
- package/dist/extractors/live-org/vlocity/runner.js +95 -67
- package/dist/extractors/live-org/vlocity/runner.js.map +1 -1
- package/dist/extractors/vlocity-shared/row.d.ts +19 -0
- package/dist/extractors/vlocity-shared/row.d.ts.map +1 -0
- package/dist/extractors/vlocity-shared/row.js +69 -0
- package/dist/extractors/vlocity-shared/row.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/ingest/delta.d.ts +70 -0
- package/dist/ingest/delta.d.ts.map +1 -0
- package/dist/ingest/delta.js +534 -0
- package/dist/ingest/delta.js.map +1 -0
- package/dist/ingest/detect-deletions-guard.d.ts +34 -0
- package/dist/ingest/detect-deletions-guard.d.ts.map +1 -1
- package/dist/ingest/detect-deletions-guard.js +59 -0
- package/dist/ingest/detect-deletions-guard.js.map +1 -1
- package/dist/ingest/index.d.ts +8 -1
- package/dist/ingest/index.d.ts.map +1 -1
- package/dist/ingest/index.js +4 -0
- package/dist/ingest/index.js.map +1 -1
- package/dist/ingest/live-ingest.d.ts +171 -7
- package/dist/ingest/live-ingest.d.ts.map +1 -1
- package/dist/ingest/live-ingest.js +1014 -249
- package/dist/ingest/live-ingest.js.map +1 -1
- package/dist/ingest/lock.d.ts +47 -0
- package/dist/ingest/lock.d.ts.map +1 -0
- package/dist/ingest/lock.js +222 -0
- package/dist/ingest/lock.js.map +1 -0
- package/dist/ingest/member-rows.d.ts +88 -0
- package/dist/ingest/member-rows.d.ts.map +1 -0
- package/dist/ingest/member-rows.js +152 -0
- package/dist/ingest/member-rows.js.map +1 -0
- package/dist/ingest/offline-org.d.ts +8 -0
- package/dist/ingest/offline-org.d.ts.map +1 -0
- package/dist/ingest/offline-org.js +41 -0
- package/dist/ingest/offline-org.js.map +1 -0
- package/dist/ingest/parse-member.d.ts +53 -0
- package/dist/ingest/parse-member.d.ts.map +1 -0
- package/dist/ingest/parse-member.js +276 -0
- package/dist/ingest/parse-member.js.map +1 -0
- package/dist/ingest/parse-pool.d.ts +139 -0
- package/dist/ingest/parse-pool.d.ts.map +1 -0
- package/dist/ingest/parse-pool.js +593 -0
- package/dist/ingest/parse-pool.js.map +1 -0
- package/dist/ingest/parse-worker.d.ts +3 -0
- package/dist/ingest/parse-worker.d.ts.map +1 -0
- package/dist/ingest/parse-worker.js +100 -0
- package/dist/ingest/parse-worker.js.map +1 -0
- package/dist/ingest/profile.d.ts +27 -0
- package/dist/ingest/profile.d.ts.map +1 -0
- package/dist/ingest/profile.js +48 -0
- package/dist/ingest/profile.js.map +1 -0
- package/dist/ingest/resolver-gates.d.ts +12 -0
- package/dist/ingest/resolver-gates.d.ts.map +1 -0
- package/dist/ingest/resolver-gates.js +53 -0
- package/dist/ingest/resolver-gates.js.map +1 -0
- package/dist/parsers/apex/arity-resolver.d.ts +16 -3
- package/dist/parsers/apex/arity-resolver.d.ts.map +1 -1
- package/dist/parsers/apex/arity-resolver.js +31 -2
- package/dist/parsers/apex/arity-resolver.js.map +1 -1
- package/dist/parsers/apex/ast-extractor.d.ts +4 -0
- package/dist/parsers/apex/ast-extractor.d.ts.map +1 -1
- package/dist/parsers/apex/ast-extractor.js +96 -29
- package/dist/parsers/apex/ast-extractor.js.map +1 -1
- package/dist/parsers/apex/class-refs.d.ts +78 -0
- package/dist/parsers/apex/class-refs.d.ts.map +1 -0
- package/dist/parsers/apex/class-refs.js +465 -0
- package/dist/parsers/apex/class-refs.js.map +1 -0
- package/dist/parsers/apex/class.d.ts +158 -0
- package/dist/parsers/apex/class.d.ts.map +1 -1
- package/dist/parsers/apex/class.js +1025 -183
- package/dist/parsers/apex/class.js.map +1 -1
- package/dist/parsers/apex/dynamic-soql.d.ts +52 -0
- package/dist/parsers/apex/dynamic-soql.d.ts.map +1 -0
- package/dist/parsers/apex/dynamic-soql.js +427 -0
- package/dist/parsers/apex/dynamic-soql.js.map +1 -0
- package/dist/parsers/apex/field-access.d.ts +65 -0
- package/dist/parsers/apex/field-access.d.ts.map +1 -0
- package/dist/parsers/apex/field-access.js +438 -0
- package/dist/parsers/apex/field-access.js.map +1 -0
- package/dist/parsers/apex/interface-ref-resolver.d.ts +32 -0
- package/dist/parsers/apex/interface-ref-resolver.d.ts.map +1 -0
- package/dist/parsers/apex/interface-ref-resolver.js +64 -0
- package/dist/parsers/apex/interface-ref-resolver.js.map +1 -0
- package/dist/parsers/apex/name-refs.d.ts +83 -0
- package/dist/parsers/apex/name-refs.d.ts.map +1 -0
- package/dist/parsers/apex/name-refs.js +465 -0
- package/dist/parsers/apex/name-refs.js.map +1 -0
- package/dist/parsers/apex/page-refs.d.ts +11 -0
- package/dist/parsers/apex/page-refs.d.ts.map +1 -0
- package/dist/parsers/apex/page-refs.js +34 -0
- package/dist/parsers/apex/page-refs.js.map +1 -0
- package/dist/parsers/apex/ref-resolver.d.ts +58 -0
- package/dist/parsers/apex/ref-resolver.d.ts.map +1 -0
- package/dist/parsers/apex/ref-resolver.js +348 -0
- package/dist/parsers/apex/ref-resolver.js.map +1 -0
- package/dist/parsers/apex/soql-fields.d.ts +75 -0
- package/dist/parsers/apex/soql-fields.d.ts.map +1 -0
- package/dist/parsers/apex/soql-fields.js +338 -0
- package/dist/parsers/apex/soql-fields.js.map +1 -0
- package/dist/parsers/apex/trigger.d.ts.map +1 -1
- package/dist/parsers/apex/trigger.js +90 -2
- package/dist/parsers/apex/trigger.js.map +1 -1
- package/dist/parsers/apex/vlocity-calls.d.ts +25 -0
- package/dist/parsers/apex/vlocity-calls.d.ts.map +1 -0
- package/dist/parsers/apex/vlocity-calls.js +225 -0
- package/dist/parsers/apex/vlocity-calls.js.map +1 -0
- package/dist/parsers/aura/bundle.d.ts +39 -0
- package/dist/parsers/aura/bundle.d.ts.map +1 -0
- package/dist/parsers/aura/bundle.js +269 -0
- package/dist/parsers/aura/bundle.js.map +1 -0
- package/dist/parsers/aura/embed-resolver.d.ts +17 -0
- package/dist/parsers/aura/embed-resolver.d.ts.map +1 -0
- package/dist/parsers/aura/embed-resolver.js +58 -0
- package/dist/parsers/aura/embed-resolver.js.map +1 -0
- package/dist/parsers/aura/index.d.ts +4 -0
- package/dist/parsers/aura/index.d.ts.map +1 -0
- package/dist/parsers/aura/index.js +6 -0
- package/dist/parsers/aura/index.js.map +1 -0
- package/dist/parsers/common.d.ts +9 -0
- package/dist/parsers/common.d.ts.map +1 -1
- package/dist/parsers/common.js +17 -0
- package/dist/parsers/common.js.map +1 -1
- package/dist/parsers/cross-flavor-resolver.js +8 -2
- package/dist/parsers/cross-flavor-resolver.js.map +1 -1
- package/dist/parsers/flow/invocable-resolver.d.ts.map +1 -1
- package/dist/parsers/flow/invocable-resolver.js +2 -0
- package/dist/parsers/flow/invocable-resolver.js.map +1 -1
- package/dist/parsers/flow/parser.d.ts +9 -0
- package/dist/parsers/flow/parser.d.ts.map +1 -1
- package/dist/parsers/flow/parser.js +327 -2
- package/dist/parsers/flow/parser.js.map +1 -1
- package/dist/parsers/flow/relationship-resolver.d.ts +34 -0
- package/dist/parsers/flow/relationship-resolver.d.ts.map +1 -0
- package/dist/parsers/flow/relationship-resolver.js +199 -0
- package/dist/parsers/flow/relationship-resolver.js.map +1 -0
- package/dist/parsers/generic/opaque-node-parser.d.ts +5 -1
- package/dist/parsers/generic/opaque-node-parser.d.ts.map +1 -1
- package/dist/parsers/generic/opaque-node-parser.js +37 -5
- package/dist/parsers/generic/opaque-node-parser.js.map +1 -1
- package/dist/parsers/generic/reflection-walker.d.ts +7 -0
- package/dist/parsers/generic/reflection-walker.d.ts.map +1 -1
- package/dist/parsers/generic/reflection-walker.js +37 -10
- package/dist/parsers/generic/reflection-walker.js.map +1 -1
- package/dist/parsers/hash-salts.d.ts +72 -0
- package/dist/parsers/hash-salts.d.ts.map +1 -0
- package/dist/parsers/hash-salts.js +91 -0
- package/dist/parsers/hash-salts.js.map +1 -0
- package/dist/parsers/index.d.ts +2 -0
- package/dist/parsers/index.d.ts.map +1 -1
- package/dist/parsers/index.js +2 -0
- package/dist/parsers/index.js.map +1 -1
- package/dist/parsers/lwc/bundle.d.ts +1 -0
- package/dist/parsers/lwc/bundle.d.ts.map +1 -1
- package/dist/parsers/lwc/bundle.js +37 -2
- package/dist/parsers/lwc/bundle.js.map +1 -1
- package/dist/parsers/lwc/field-key-resolver.d.ts +32 -0
- package/dist/parsers/lwc/field-key-resolver.d.ts.map +1 -0
- package/dist/parsers/lwc/field-key-resolver.js +92 -0
- package/dist/parsers/lwc/field-key-resolver.js.map +1 -0
- package/dist/parsers/lwc/html-visitor.d.ts +1 -1
- package/dist/parsers/lwc/html-visitor.d.ts.map +1 -1
- package/dist/parsers/lwc/html-visitor.js +78 -1
- package/dist/parsers/lwc/html-visitor.js.map +1 -1
- package/dist/parsers/lwc/js-visitor.d.ts +16 -0
- package/dist/parsers/lwc/js-visitor.d.ts.map +1 -1
- package/dist/parsers/lwc/js-visitor.js +348 -10
- package/dist/parsers/lwc/js-visitor.js.map +1 -1
- package/dist/parsers/lwc/omnidef.d.ts +10 -0
- package/dist/parsers/lwc/omnidef.d.ts.map +1 -0
- package/dist/parsers/lwc/omnidef.js +127 -0
- package/dist/parsers/lwc/omnidef.js.map +1 -0
- package/dist/parsers/lwc/xml-meta.d.ts.map +1 -1
- package/dist/parsers/lwc/xml-meta.js +16 -1
- package/dist/parsers/lwc/xml-meta.js.map +1 -1
- package/dist/parsers/object/formula-hop-resolver.d.ts +33 -0
- package/dist/parsers/object/formula-hop-resolver.d.ts.map +1 -0
- package/dist/parsers/object/formula-hop-resolver.js +60 -0
- package/dist/parsers/object/formula-hop-resolver.js.map +1 -0
- package/dist/parsers/object/formula-refs.d.ts +40 -0
- package/dist/parsers/object/formula-refs.d.ts.map +1 -0
- package/dist/parsers/object/formula-refs.js +129 -0
- package/dist/parsers/object/formula-refs.js.map +1 -0
- package/dist/parsers/object/object.d.ts +3 -0
- package/dist/parsers/object/object.d.ts.map +1 -1
- package/dist/parsers/object/object.js +53 -52
- package/dist/parsers/object/object.js.map +1 -1
- package/dist/parsers/omnistudio/data-transform.d.ts.map +1 -1
- package/dist/parsers/omnistudio/data-transform.js +2 -2
- package/dist/parsers/omnistudio/data-transform.js.map +1 -1
- package/dist/parsers/omnistudio/integration-procedure.d.ts.map +1 -1
- package/dist/parsers/omnistudio/integration-procedure.js +4 -5
- package/dist/parsers/omnistudio/integration-procedure.js.map +1 -1
- package/dist/parsers/omnistudio/overlap-detector.d.ts.map +1 -1
- package/dist/parsers/omnistudio/overlap-detector.js +27 -2
- package/dist/parsers/omnistudio/overlap-detector.js.map +1 -1
- package/dist/parsers/omnistudio/process.d.ts.map +1 -1
- package/dist/parsers/omnistudio/process.js +4 -5
- package/dist/parsers/omnistudio/process.js.map +1 -1
- package/dist/parsers/omnistudio/remote-refs.d.ts +11 -0
- package/dist/parsers/omnistudio/remote-refs.d.ts.map +1 -0
- package/dist/parsers/omnistudio/remote-refs.js +17 -0
- package/dist/parsers/omnistudio/remote-refs.js.map +1 -0
- package/dist/parsers/omnistudio/ui-card.d.ts.map +1 -1
- package/dist/parsers/omnistudio/ui-card.js +4 -5
- package/dist/parsers/omnistudio/ui-card.js.map +1 -1
- package/dist/parsers/resolver-prune.d.ts +14 -0
- package/dist/parsers/resolver-prune.d.ts.map +1 -0
- package/dist/parsers/resolver-prune.js +29 -0
- package/dist/parsers/resolver-prune.js.map +1 -0
- package/dist/parsers/rules/_engine.d.ts.map +1 -1
- package/dist/parsers/rules/_engine.js +4 -0
- package/dist/parsers/rules/_engine.js.map +1 -1
- package/dist/parsers/rules/_engine.ts +3 -0
- package/dist/parsers/rules/_loader.d.ts +8 -0
- package/dist/parsers/rules/_loader.d.ts.map +1 -1
- package/dist/parsers/rules/_loader.js +17 -0
- package/dist/parsers/rules/_loader.js.map +1 -1
- package/dist/parsers/rules/_loader.ts +19 -0
- package/dist/parsers/rules/_schema.d.ts +12 -12
- package/dist/parsers/rules/_selectors.d.ts +1 -0
- package/dist/parsers/rules/_selectors.d.ts.map +1 -1
- package/dist/parsers/rules/_selectors.js +6 -0
- package/dist/parsers/rules/_selectors.js.map +1 -1
- package/dist/parsers/rules/_selectors.ts +6 -0
- package/dist/parsers/rules/apex-component.yml +49 -4
- package/dist/parsers/rules/apex-page.yml +49 -4
- package/dist/parsers/rules/approval-process.yml +25 -5
- package/dist/parsers/rules/custom-metadata-type.yml +7 -7
- package/dist/parsers/rules/custom-tab.yml +41 -0
- package/dist/parsers/rules/lightning-page.yml +4 -2
- package/dist/parsers/rules/workflow.yml +30 -10
- package/dist/parsers/vf/refs.d.ts +39 -0
- package/dist/parsers/vf/refs.d.ts.map +1 -0
- package/dist/parsers/vf/refs.js +152 -0
- package/dist/parsers/vf/refs.js.map +1 -0
- package/dist/parsers/vlocity/apex-resolver.d.ts +21 -0
- package/dist/parsers/vlocity/apex-resolver.d.ts.map +1 -0
- package/dist/parsers/vlocity/apex-resolver.js +115 -0
- package/dist/parsers/vlocity/apex-resolver.js.map +1 -0
- package/dist/parsers/vlocity/common.d.ts +56 -1
- package/dist/parsers/vlocity/common.d.ts.map +1 -1
- package/dist/parsers/vlocity/common.js +275 -7
- package/dist/parsers/vlocity/common.js.map +1 -1
- package/dist/parsers/vlocity/data-raptor.d.ts +9 -0
- package/dist/parsers/vlocity/data-raptor.d.ts.map +1 -1
- package/dist/parsers/vlocity/data-raptor.js +133 -31
- package/dist/parsers/vlocity/data-raptor.js.map +1 -1
- package/dist/parsers/vlocity/datapack-refs.d.ts +22 -0
- package/dist/parsers/vlocity/datapack-refs.d.ts.map +1 -0
- package/dist/parsers/vlocity/datapack-refs.js +126 -0
- package/dist/parsers/vlocity/datapack-refs.js.map +1 -0
- package/dist/parsers/vlocity/dr-relationship-resolver.d.ts +26 -0
- package/dist/parsers/vlocity/dr-relationship-resolver.d.ts.map +1 -0
- package/dist/parsers/vlocity/dr-relationship-resolver.js +137 -0
- package/dist/parsers/vlocity/dr-relationship-resolver.js.map +1 -0
- package/dist/parsers/vlocity/integration-procedure.d.ts.map +1 -1
- package/dist/parsers/vlocity/integration-procedure.js +15 -48
- package/dist/parsers/vlocity/integration-procedure.js.map +1 -1
- package/dist/parsers/vlocity/name-match-resolver.d.ts +21 -0
- package/dist/parsers/vlocity/name-match-resolver.d.ts.map +1 -0
- package/dist/parsers/vlocity/name-match-resolver.js +97 -0
- package/dist/parsers/vlocity/name-match-resolver.js.map +1 -0
- package/dist/parsers/vlocity/omni-script.d.ts.map +1 -1
- package/dist/parsers/vlocity/omni-script.js +18 -32
- package/dist/parsers/vlocity/omni-script.js.map +1 -1
- package/dist/parsers/vlocity/vlocity-card.d.ts.map +1 -1
- package/dist/parsers/vlocity/vlocity-card.js +30 -36
- package/dist/parsers/vlocity/vlocity-card.js.map +1 -1
- package/dist/render/mermaid/dependency-graph.d.ts.map +1 -1
- package/dist/render/mermaid/dependency-graph.js +13 -1
- package/dist/render/mermaid/dependency-graph.js.map +1 -1
- package/dist/render/mermaid/diff.d.ts.map +1 -1
- package/dist/render/mermaid/diff.js +4 -2
- package/dist/render/mermaid/diff.js.map +1 -1
- package/dist/render/mermaid/shared.d.ts +7 -0
- package/dist/render/mermaid/shared.d.ts.map +1 -1
- package/dist/render/mermaid/shared.js +15 -6
- package/dist/render/mermaid/shared.js.map +1 -1
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +2 -2
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/interfaces.d.ts +155 -1
- package/dist/storage/interfaces.d.ts.map +1 -1
- package/dist/storage/sqlite/graph-store.d.ts +352 -3
- package/dist/storage/sqlite/graph-store.d.ts.map +1 -1
- package/dist/storage/sqlite/graph-store.js +1683 -74
- package/dist/storage/sqlite/graph-store.js.map +1 -1
- package/dist/storage/sqlite/migrations.d.ts +11 -0
- package/dist/storage/sqlite/migrations.d.ts.map +1 -1
- package/dist/storage/sqlite/migrations.js +226 -11
- package/dist/storage/sqlite/migrations.js.map +1 -1
- package/dist/storage/sqlite/snapshot-store.d.ts +79 -3
- package/dist/storage/sqlite/snapshot-store.d.ts.map +1 -1
- package/dist/storage/sqlite/snapshot-store.js +500 -100
- package/dist/storage/sqlite/snapshot-store.js.map +1 -1
- package/dist/storage/sqlite/snapshot-versions.d.ts +51 -0
- package/dist/storage/sqlite/snapshot-versions.d.ts.map +1 -0
- package/dist/storage/sqlite/snapshot-versions.js +209 -0
- package/dist/storage/sqlite/snapshot-versions.js.map +1 -0
- package/dist/storage/sqlite/vector-store.d.ts +12 -0
- package/dist/storage/sqlite/vector-store.d.ts.map +1 -1
- package/dist/storage/sqlite/vector-store.js +57 -14
- package/dist/storage/sqlite/vector-store.js.map +1 -1
- package/dist/util/process-owner.d.ts +35 -0
- package/dist/util/process-owner.d.ts.map +1 -0
- package/dist/util/process-owner.js +87 -0
- package/dist/util/process-owner.js.map +1 -0
- package/dist/util/worker-heap-cap.d.ts +10 -0
- package/dist/util/worker-heap-cap.d.ts.map +1 -0
- package/dist/util/worker-heap-cap.js +65 -0
- package/dist/util/worker-heap-cap.js.map +1 -0
- package/package.json +6 -7
- package/dist/analyze/__tests__/audit-graph.test.d.ts +0 -2
- package/dist/analyze/__tests__/audit-graph.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/audit-graph.test.js +0 -201
- package/dist/analyze/__tests__/audit-graph.test.js.map +0 -1
- package/dist/analyze/__tests__/cross-org-two-store.test.d.ts +0 -2
- package/dist/analyze/__tests__/cross-org-two-store.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/cross-org-two-store.test.js +0 -68
- package/dist/analyze/__tests__/cross-org-two-store.test.js.map +0 -1
- package/dist/analyze/__tests__/dead-code-confidence.test.d.ts +0 -2
- package/dist/analyze/__tests__/dead-code-confidence.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/dead-code-confidence.test.js +0 -66
- package/dist/analyze/__tests__/dead-code-confidence.test.js.map +0 -1
- package/dist/analyze/__tests__/deployment-manifest.test.d.ts +0 -2
- package/dist/analyze/__tests__/deployment-manifest.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/deployment-manifest.test.js +0 -66
- package/dist/analyze/__tests__/deployment-manifest.test.js.map +0 -1
- package/dist/analyze/__tests__/edge-filters.test.d.ts +0 -2
- package/dist/analyze/__tests__/edge-filters.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/edge-filters.test.js +0 -66
- package/dist/analyze/__tests__/edge-filters.test.js.map +0 -1
- package/dist/analyze/__tests__/find-nodes.test.d.ts +0 -2
- package/dist/analyze/__tests__/find-nodes.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/find-nodes.test.js +0 -129
- package/dist/analyze/__tests__/find-nodes.test.js.map +0 -1
- package/dist/analyze/__tests__/findings.test.d.ts +0 -2
- package/dist/analyze/__tests__/findings.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/findings.test.js +0 -100
- package/dist/analyze/__tests__/findings.test.js.map +0 -1
- package/dist/analyze/__tests__/governor-risks-detection.test.d.ts +0 -2
- package/dist/analyze/__tests__/governor-risks-detection.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/governor-risks-detection.test.js +0 -160
- package/dist/analyze/__tests__/governor-risks-detection.test.js.map +0 -1
- package/dist/analyze/__tests__/populate.test.d.ts +0 -2
- package/dist/analyze/__tests__/populate.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/populate.test.js +0 -129
- package/dist/analyze/__tests__/populate.test.js.map +0 -1
- package/dist/analyze/__tests__/security-fls-filter.test.d.ts +0 -2
- package/dist/analyze/__tests__/security-fls-filter.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/security-fls-filter.test.js +0 -23
- package/dist/analyze/__tests__/security-fls-filter.test.js.map +0 -1
- package/dist/analyze/__tests__/traversal-caps.test.d.ts +0 -2
- package/dist/analyze/__tests__/traversal-caps.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/traversal-caps.test.js +0 -129
- package/dist/analyze/__tests__/traversal-caps.test.js.map +0 -1
- package/dist/analyze/__tests__/wip-impact.test.d.ts +0 -2
- package/dist/analyze/__tests__/wip-impact.test.d.ts.map +0 -1
- package/dist/analyze/__tests__/wip-impact.test.js +0 -134
- package/dist/analyze/__tests__/wip-impact.test.js.map +0 -1
- package/dist/embedding/__tests__/embed.test.d.ts +0 -2
- package/dist/embedding/__tests__/embed.test.d.ts.map +0 -1
- package/dist/embedding/__tests__/embed.test.js +0 -72
- package/dist/embedding/__tests__/embed.test.js.map +0 -1
- package/dist/embedding/__tests__/queue.test.d.ts +0 -2
- package/dist/embedding/__tests__/queue.test.d.ts.map +0 -1
- package/dist/embedding/__tests__/queue.test.js +0 -64
- package/dist/embedding/__tests__/queue.test.js.map +0 -1
- package/dist/extractors/__tests__/network-egress.test.d.ts +0 -2
- package/dist/extractors/__tests__/network-egress.test.d.ts.map +0 -1
- package/dist/extractors/__tests__/network-egress.test.js +0 -32
- package/dist/extractors/__tests__/network-egress.test.js.map +0 -1
- package/dist/extractors/filesystem/__tests__/filesystem.test.d.ts +0 -2
- package/dist/extractors/filesystem/__tests__/filesystem.test.d.ts.map +0 -1
- package/dist/extractors/filesystem/__tests__/filesystem.test.js +0 -96
- package/dist/extractors/filesystem/__tests__/filesystem.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/_jsforce-mock.d.ts +0 -38
- package/dist/extractors/live-org/__tests__/_jsforce-mock.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/_jsforce-mock.js +0 -96
- package/dist/extractors/live-org/__tests__/_jsforce-mock.js.map +0 -1
- package/dist/extractors/live-org/__tests__/auth.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/auth.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/auth.test.js +0 -85
- package/dist/extractors/live-org/__tests__/auth.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/bulk-retrieve.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/bulk-retrieve.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/bulk-retrieve.test.js +0 -150
- package/dist/extractors/live-org/__tests__/bulk-retrieve.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/capabilities.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/capabilities.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/capabilities.test.js +0 -54
- package/dist/extractors/live-org/__tests__/capabilities.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/custom-settings.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/custom-settings.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/custom-settings.test.js +0 -79
- package/dist/extractors/live-org/__tests__/custom-settings.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/discovery.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/discovery.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/discovery.test.js +0 -55
- package/dist/extractors/live-org/__tests__/discovery.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/dispatch.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/dispatch.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/dispatch.test.js +0 -68
- package/dist/extractors/live-org/__tests__/dispatch.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/extractor-enrichment.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/extractor-enrichment.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/extractor-enrichment.test.js +0 -374
- package/dist/extractors/live-org/__tests__/extractor-enrichment.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/liveness.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/liveness.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/liveness.test.js +0 -148
- package/dist/extractors/live-org/__tests__/liveness.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.js +0 -177
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.js +0 -75
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.js +0 -135
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/pools.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/pools.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/pools.test.js +0 -78
- package/dist/extractors/live-org/__tests__/pools.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/rate-limit.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/rate-limit.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/rate-limit.test.js +0 -73
- package/dist/extractors/live-org/__tests__/rate-limit.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/read-only-proxy.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/read-only-proxy.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/read-only-proxy.test.js +0 -376
- package/dist/extractors/live-org/__tests__/read-only-proxy.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.js +0 -118
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/source-member.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/source-member.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/source-member.test.js +0 -84
- package/dist/extractors/live-org/__tests__/source-member.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/stop-waiting.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/stop-waiting.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/stop-waiting.test.js +0 -243
- package/dist/extractors/live-org/__tests__/stop-waiting.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/vlocity-runner.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/vlocity-runner.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/vlocity-runner.test.js +0 -115
- package/dist/extractors/live-org/__tests__/vlocity-runner.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.js +0 -40
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.js.map +0 -1
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.d.ts +0 -2
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.d.ts.map +0 -1
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.js +0 -270
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.js.map +0 -1
- package/dist/extractors/live-org/extractors/__tests__/apex.test.d.ts +0 -2
- package/dist/extractors/live-org/extractors/__tests__/apex.test.d.ts.map +0 -1
- package/dist/extractors/live-org/extractors/__tests__/apex.test.js +0 -73
- package/dist/extractors/live-org/extractors/__tests__/apex.test.js.map +0 -1
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.d.ts +0 -2
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.d.ts.map +0 -1
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.js +0 -183
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.js.map +0 -1
- package/dist/ingest/__tests__/config-values.test.d.ts +0 -2
- package/dist/ingest/__tests__/config-values.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/config-values.test.js +0 -65
- package/dist/ingest/__tests__/config-values.test.js.map +0 -1
- package/dist/ingest/__tests__/full-sync-deletion.test.d.ts +0 -2
- package/dist/ingest/__tests__/full-sync-deletion.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/full-sync-deletion.test.js +0 -207
- package/dist/ingest/__tests__/full-sync-deletion.test.js.map +0 -1
- package/dist/ingest/__tests__/incremental-deletion.test.d.ts +0 -2
- package/dist/ingest/__tests__/incremental-deletion.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/incremental-deletion.test.js +0 -92
- package/dist/ingest/__tests__/incremental-deletion.test.js.map +0 -1
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.d.ts +0 -10
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.js +0 -251
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.js.map +0 -1
- package/dist/ingest/__tests__/live-ingest.test.d.ts +0 -2
- package/dist/ingest/__tests__/live-ingest.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/live-ingest.test.js +0 -155
- package/dist/ingest/__tests__/live-ingest.test.js.map +0 -1
- package/dist/ingest/__tests__/multi-org-orchestrator.test.d.ts +0 -2
- package/dist/ingest/__tests__/multi-org-orchestrator.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/multi-org-orchestrator.test.js +0 -108
- package/dist/ingest/__tests__/multi-org-orchestrator.test.js.map +0 -1
- package/dist/ingest/__tests__/parser-dispatch.test.d.ts +0 -2
- package/dist/ingest/__tests__/parser-dispatch.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/parser-dispatch.test.js +0 -55
- package/dist/ingest/__tests__/parser-dispatch.test.js.map +0 -1
- package/dist/ingest/__tests__/read-only-wrapping.test.d.ts +0 -2
- package/dist/ingest/__tests__/read-only-wrapping.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/read-only-wrapping.test.js +0 -62
- package/dist/ingest/__tests__/read-only-wrapping.test.js.map +0 -1
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.d.ts +0 -2
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.d.ts.map +0 -1
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.js +0 -134
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.js.map +0 -1
- package/dist/parsers/__tests__/_harness.d.ts +0 -13
- package/dist/parsers/__tests__/_harness.d.ts.map +0 -1
- package/dist/parsers/__tests__/_harness.js +0 -84
- package/dist/parsers/__tests__/_harness.js.map +0 -1
- package/dist/parsers/__tests__/apex.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/apex.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/apex.golden.test.js +0 -28
- package/dist/parsers/__tests__/apex.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/cross-flavor.test.d.ts +0 -2
- package/dist/parsers/__tests__/cross-flavor.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/cross-flavor.test.js +0 -56
- package/dist/parsers/__tests__/cross-flavor.test.js.map +0 -1
- package/dist/parsers/__tests__/datatransform-structured.test.d.ts +0 -2
- package/dist/parsers/__tests__/datatransform-structured.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/datatransform-structured.test.js +0 -147
- package/dist/parsers/__tests__/datatransform-structured.test.js.map +0 -1
- package/dist/parsers/__tests__/edge-provenance.test.d.ts +0 -2
- package/dist/parsers/__tests__/edge-provenance.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/edge-provenance.test.js +0 -47
- package/dist/parsers/__tests__/edge-provenance.test.js.map +0 -1
- package/dist/parsers/__tests__/flow.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/flow.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/flow.golden.test.js +0 -17
- package/dist/parsers/__tests__/flow.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/integration.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/integration.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/integration.golden.test.js +0 -31
- package/dist/parsers/__tests__/integration.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/long-tail.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/long-tail.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/long-tail.golden.test.js +0 -115
- package/dist/parsers/__tests__/long-tail.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/lwc-bindings.test.d.ts +0 -2
- package/dist/parsers/__tests__/lwc-bindings.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/lwc-bindings.test.js +0 -149
- package/dist/parsers/__tests__/lwc-bindings.test.js.map +0 -1
- package/dist/parsers/__tests__/lwc.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/lwc.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/lwc.golden.test.js +0 -16
- package/dist/parsers/__tests__/lwc.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/mcd-gap-fills.test.d.ts +0 -2
- package/dist/parsers/__tests__/mcd-gap-fills.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/mcd-gap-fills.test.js +0 -75
- package/dist/parsers/__tests__/mcd-gap-fills.test.js.map +0 -1
- package/dist/parsers/__tests__/object-inline-fields.test.d.ts +0 -2
- package/dist/parsers/__tests__/object-inline-fields.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/object-inline-fields.test.js +0 -115
- package/dist/parsers/__tests__/object-inline-fields.test.js.map +0 -1
- package/dist/parsers/__tests__/object.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/object.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/object.golden.test.js +0 -33
- package/dist/parsers/__tests__/object.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/omnistudio-overlap.test.d.ts +0 -2
- package/dist/parsers/__tests__/omnistudio-overlap.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/omnistudio-overlap.test.js +0 -163
- package/dist/parsers/__tests__/omnistudio-overlap.test.js.map +0 -1
- package/dist/parsers/__tests__/omnistudio.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/omnistudio.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/omnistudio.golden.test.js +0 -53
- package/dist/parsers/__tests__/omnistudio.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/reflection-walker.test.d.ts +0 -2
- package/dist/parsers/__tests__/reflection-walker.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/reflection-walker.test.js +0 -162
- package/dist/parsers/__tests__/reflection-walker.test.js.map +0 -1
- package/dist/parsers/__tests__/registry.test.d.ts +0 -2
- package/dist/parsers/__tests__/registry.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/registry.test.js +0 -23
- package/dist/parsers/__tests__/registry.test.js.map +0 -1
- package/dist/parsers/__tests__/security.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/security.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/security.golden.test.js +0 -31
- package/dist/parsers/__tests__/security.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/vlocity.golden.test.d.ts +0 -2
- package/dist/parsers/__tests__/vlocity.golden.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/vlocity.golden.test.js +0 -105
- package/dist/parsers/__tests__/vlocity.golden.test.js.map +0 -1
- package/dist/parsers/__tests__/worker-pool.test.d.ts +0 -2
- package/dist/parsers/__tests__/worker-pool.test.d.ts.map +0 -1
- package/dist/parsers/__tests__/worker-pool.test.js +0 -48
- package/dist/parsers/__tests__/worker-pool.test.js.map +0 -1
- package/dist/parsers/apex/__tests__/arity-resolver.test.d.ts +0 -2
- package/dist/parsers/apex/__tests__/arity-resolver.test.d.ts.map +0 -1
- package/dist/parsers/apex/__tests__/arity-resolver.test.js +0 -135
- package/dist/parsers/apex/__tests__/arity-resolver.test.js.map +0 -1
- package/dist/parsers/apex/__tests__/ast-extractor.test.d.ts +0 -2
- package/dist/parsers/apex/__tests__/ast-extractor.test.d.ts.map +0 -1
- package/dist/parsers/apex/__tests__/ast-extractor.test.js +0 -206
- package/dist/parsers/apex/__tests__/ast-extractor.test.js.map +0 -1
- package/dist/parsers/apex/__tests__/empty-body.test.d.ts +0 -2
- package/dist/parsers/apex/__tests__/empty-body.test.d.ts.map +0 -1
- package/dist/parsers/apex/__tests__/empty-body.test.js +0 -40
- package/dist/parsers/apex/__tests__/empty-body.test.js.map +0 -1
- package/dist/parsers/apex/__tests__/is-test-attribute.test.d.ts +0 -2
- package/dist/parsers/apex/__tests__/is-test-attribute.test.d.ts.map +0 -1
- package/dist/parsers/apex/__tests__/is-test-attribute.test.js +0 -56
- package/dist/parsers/apex/__tests__/is-test-attribute.test.js.map +0 -1
- package/dist/parsers/apex/__tests__/regex-arg-count.test.d.ts +0 -2
- package/dist/parsers/apex/__tests__/regex-arg-count.test.d.ts.map +0 -1
- package/dist/parsers/apex/__tests__/regex-arg-count.test.js +0 -82
- package/dist/parsers/apex/__tests__/regex-arg-count.test.js.map +0 -1
- package/dist/parsers/apex/__tests__/regex-inloop.test.d.ts +0 -2
- package/dist/parsers/apex/__tests__/regex-inloop.test.d.ts.map +0 -1
- package/dist/parsers/apex/__tests__/regex-inloop.test.js +0 -70
- package/dist/parsers/apex/__tests__/regex-inloop.test.js.map +0 -1
- package/dist/parsers/flow/__tests__/invocable-resolver.test.d.ts +0 -2
- package/dist/parsers/flow/__tests__/invocable-resolver.test.d.ts.map +0 -1
- package/dist/parsers/flow/__tests__/invocable-resolver.test.js +0 -91
- package/dist/parsers/flow/__tests__/invocable-resolver.test.js.map +0 -1
- package/dist/parsers/rules/__tests__/applies-to.test.d.ts +0 -2
- package/dist/parsers/rules/__tests__/applies-to.test.d.ts.map +0 -1
- package/dist/parsers/rules/__tests__/applies-to.test.js +0 -31
- package/dist/parsers/rules/__tests__/applies-to.test.js.map +0 -1
- package/dist/parsers/rules/__tests__/applies-to.test.ts +0 -40
- package/dist/parsers/rules/__tests__/engine.test.d.ts +0 -2
- package/dist/parsers/rules/__tests__/engine.test.d.ts.map +0 -1
- package/dist/parsers/rules/__tests__/engine.test.js +0 -127
- package/dist/parsers/rules/__tests__/engine.test.js.map +0 -1
- package/dist/parsers/rules/__tests__/engine.test.ts +0 -138
- package/dist/parsers/rules/__tests__/loader.test.d.ts +0 -2
- package/dist/parsers/rules/__tests__/loader.test.d.ts.map +0 -1
- package/dist/parsers/rules/__tests__/loader.test.js +0 -31
- package/dist/parsers/rules/__tests__/loader.test.js.map +0 -1
- package/dist/parsers/rules/__tests__/loader.test.ts +0 -37
- package/dist/parsers/rules/__tests__/schema.test.d.ts +0 -2
- package/dist/parsers/rules/__tests__/schema.test.d.ts.map +0 -1
- package/dist/parsers/rules/__tests__/schema.test.js +0 -33
- package/dist/parsers/rules/__tests__/schema.test.js.map +0 -1
- package/dist/parsers/rules/__tests__/schema.test.ts +0 -37
- package/dist/parsers/rules/__tests__/selectors.test.d.ts +0 -2
- package/dist/parsers/rules/__tests__/selectors.test.d.ts.map +0 -1
- package/dist/parsers/rules/__tests__/selectors.test.js +0 -51
- package/dist/parsers/rules/__tests__/selectors.test.js.map +0 -1
- package/dist/parsers/rules/__tests__/selectors.test.ts +0 -62
- package/dist/render/__tests__/sarif.test.d.ts +0 -2
- package/dist/render/__tests__/sarif.test.d.ts.map +0 -1
- package/dist/render/__tests__/sarif.test.js +0 -126
- package/dist/render/__tests__/sarif.test.js.map +0 -1
- package/dist/render/mermaid/__tests__/mermaid.test.d.ts +0 -2
- package/dist/render/mermaid/__tests__/mermaid.test.d.ts.map +0 -1
- package/dist/render/mermaid/__tests__/mermaid.test.js +0 -74
- package/dist/render/mermaid/__tests__/mermaid.test.js.map +0 -1
- package/dist/storage/__tests__/analysis-tables-migration.test.d.ts +0 -2
- package/dist/storage/__tests__/analysis-tables-migration.test.d.ts.map +0 -1
- package/dist/storage/__tests__/analysis-tables-migration.test.js +0 -44
- package/dist/storage/__tests__/analysis-tables-migration.test.js.map +0 -1
- package/dist/storage/__tests__/graph-store.test.d.ts +0 -2
- package/dist/storage/__tests__/graph-store.test.d.ts.map +0 -1
- package/dist/storage/__tests__/graph-store.test.js +0 -145
- package/dist/storage/__tests__/graph-store.test.js.map +0 -1
- package/dist/storage/__tests__/identifier.test.d.ts +0 -2
- package/dist/storage/__tests__/identifier.test.d.ts.map +0 -1
- package/dist/storage/__tests__/identifier.test.js +0 -35
- package/dist/storage/__tests__/identifier.test.js.map +0 -1
- package/dist/storage/__tests__/load-better-sqlite3.test.d.ts +0 -2
- package/dist/storage/__tests__/load-better-sqlite3.test.d.ts.map +0 -1
- package/dist/storage/__tests__/load-better-sqlite3.test.js +0 -65
- package/dist/storage/__tests__/load-better-sqlite3.test.js.map +0 -1
- package/dist/storage/__tests__/migrations.test.d.ts +0 -2
- package/dist/storage/__tests__/migrations.test.d.ts.map +0 -1
- package/dist/storage/__tests__/migrations.test.js +0 -93
- package/dist/storage/__tests__/migrations.test.js.map +0 -1
- package/dist/storage/__tests__/perf-50k.test.d.ts +0 -2
- package/dist/storage/__tests__/perf-50k.test.d.ts.map +0 -1
- package/dist/storage/__tests__/perf-50k.test.js +0 -67
- package/dist/storage/__tests__/perf-50k.test.js.map +0 -1
- package/dist/storage/__tests__/rename-stability.test.d.ts +0 -2
- package/dist/storage/__tests__/rename-stability.test.d.ts.map +0 -1
- package/dist/storage/__tests__/rename-stability.test.js +0 -135
- package/dist/storage/__tests__/rename-stability.test.js.map +0 -1
- package/dist/storage/__tests__/snapshot-store.test.d.ts +0 -2
- package/dist/storage/__tests__/snapshot-store.test.d.ts.map +0 -1
- package/dist/storage/__tests__/snapshot-store.test.js +0 -117
- package/dist/storage/__tests__/snapshot-store.test.js.map +0 -1
- package/dist/storage/__tests__/snippets.test.d.ts +0 -2
- package/dist/storage/__tests__/snippets.test.d.ts.map +0 -1
- package/dist/storage/__tests__/snippets.test.js +0 -88
- package/dist/storage/__tests__/snippets.test.js.map +0 -1
- package/dist/storage/__tests__/sync-generation.test.d.ts +0 -2
- package/dist/storage/__tests__/sync-generation.test.d.ts.map +0 -1
- package/dist/storage/__tests__/sync-generation.test.js +0 -159
- package/dist/storage/__tests__/sync-generation.test.js.map +0 -1
- package/dist/storage/__tests__/vector-store-load-failure.test.d.ts +0 -2
- package/dist/storage/__tests__/vector-store-load-failure.test.d.ts.map +0 -1
- package/dist/storage/__tests__/vector-store-load-failure.test.js +0 -42
- package/dist/storage/__tests__/vector-store-load-failure.test.js.map +0 -1
- package/dist/storage/__tests__/vector-store.test.d.ts +0 -2
- package/dist/storage/__tests__/vector-store.test.d.ts.map +0 -1
- package/dist/storage/__tests__/vector-store.test.js +0 -87
- package/dist/storage/__tests__/vector-store.test.js.map +0 -1
- package/dist/telemetry/__tests__/event-schema.test.d.ts +0 -2
- package/dist/telemetry/__tests__/event-schema.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/event-schema.test.js +0 -56
- package/dist/telemetry/__tests__/event-schema.test.js.map +0 -1
- package/dist/telemetry/__tests__/machine-id.test.d.ts +0 -2
- package/dist/telemetry/__tests__/machine-id.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/machine-id.test.js +0 -33
- package/dist/telemetry/__tests__/machine-id.test.js.map +0 -1
- package/dist/telemetry/__tests__/pipeline.test.d.ts +0 -2
- package/dist/telemetry/__tests__/pipeline.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/pipeline.test.js +0 -68
- package/dist/telemetry/__tests__/pipeline.test.js.map +0 -1
- package/dist/telemetry/__tests__/sanitizer.test.d.ts +0 -2
- package/dist/telemetry/__tests__/sanitizer.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/sanitizer.test.js +0 -143
- package/dist/telemetry/__tests__/sanitizer.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-graph.js","sourceRoot":"","sources":["../../src/analyze/audit-graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"audit-graph.js","sourceRoot":"","sources":["../../src/analyze/audit-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { OrgId } from "@ryanstark24/sfgraph-shared";
|
|
2
|
+
import type { GraphStore } from "../storage/interfaces.js";
|
|
3
|
+
/**
|
|
4
|
+
* Change scoping for the change tools (point_in_time_diff, what_broke): which
|
|
5
|
+
* node labels are *components* (units of code, declarative logic, schema or
|
|
6
|
+
* integration endpoints that a change can break or be broken by) and which are
|
|
7
|
+
* *records / configuration* (data rows, access and UI configuration, labels,
|
|
8
|
+
* diagnostics). Record/config rows are never dropped: the tools return them in
|
|
9
|
+
* a separate `nonComponent*` bucket and list them under their own heading.
|
|
10
|
+
*
|
|
11
|
+
* The split follows the label taxonomy of the parsers, not any case data:
|
|
12
|
+
* - every label a dedicated parser emits is listed below on one side, with
|
|
13
|
+
* the reason it is on that side;
|
|
14
|
+
* - every other label comes from the opaque fallback (`OpaqueNodeParser`),
|
|
15
|
+
* which labels a long-tail metadata member or a Vlocity DataPack record
|
|
16
|
+
* with its raw type name (EntityFilter, VlocityPicklist, ...). No such type
|
|
17
|
+
* has a parser of its own, so none is a parsed component: unknown labels are
|
|
18
|
+
* record/config (`changeScopeOfLabel`).
|
|
19
|
+
*
|
|
20
|
+
* Member labels (ApexMethod, FlowVersion, LWCBundle's LWC pairing) are
|
|
21
|
+
* components; they roll up to their owner (`changeUnitOf`).
|
|
22
|
+
*/
|
|
23
|
+
export declare const COMPONENT_LABEL_REASONS: Readonly<Record<string, string>>;
|
|
24
|
+
export declare const RECORD_CONFIG_LABEL_REASONS: Readonly<Record<string, string>>;
|
|
25
|
+
export declare const COMPONENT_LABELS: ReadonlySet<string>;
|
|
26
|
+
/** Labels listed as record/config; any label not in COMPONENT_LABELS is too. */
|
|
27
|
+
export declare const RECORD_CONFIG_LABELS: ReadonlySet<string>;
|
|
28
|
+
export type ChangeScope = "component" | "record-config";
|
|
29
|
+
/** `component` for a COMPONENT_LABELS label, else `record-config` (listed
|
|
30
|
+
* record/config labels and every opaque-fallback label). */
|
|
31
|
+
export declare function changeScopeOfLabel(label: string): ChangeScope;
|
|
32
|
+
/**
|
|
33
|
+
* The component a qname folds into by name grammar alone, for rows that have
|
|
34
|
+
* no live containment edge (a removed member): an ApexMethod into its
|
|
35
|
+
* ApexClass, a FlowVersion into its Flow, an LWCBundle into its same-name
|
|
36
|
+
* LWC (the traversal rules of containment.ts). Else `qname` itself.
|
|
37
|
+
*/
|
|
38
|
+
export declare function componentByName(qname: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* The component unit of a changed row: containment edges first
|
|
41
|
+
* (`componentOf`), then the name grammar (`componentByName`) for a row with
|
|
42
|
+
* no live edge (removed) and for a bundle folding into its LWC.
|
|
43
|
+
*/
|
|
44
|
+
export declare function changeUnitOf(store: GraphStore, orgId: OrgId, qname: string): string;
|
|
45
|
+
/** The change scope of a unit qname (by its label prefix). */
|
|
46
|
+
export declare function changeScopeOf(unit: string, fallbackLabel?: string): ChangeScope;
|
|
47
|
+
export interface ChangeBuckets {
|
|
48
|
+
added: string[];
|
|
49
|
+
removed: string[];
|
|
50
|
+
changed: string[];
|
|
51
|
+
}
|
|
52
|
+
export interface ScopedNodeDiff {
|
|
53
|
+
/** Component units (members rolled up), each list sorted by code point. */
|
|
54
|
+
component: ChangeBuckets;
|
|
55
|
+
/** Record/config units, same shape. */
|
|
56
|
+
nonComponent: ChangeBuckets;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A node-level diff folded to change units and split by change scope.
|
|
60
|
+
* A unit takes the bucket of its own row when that row is in the diff (a new
|
|
61
|
+
* class with its methods is `added`); a unit reached only through members (a
|
|
62
|
+
* method body or a FlowVersion changed, a method removed) existed before and
|
|
63
|
+
* after, so it is `changed`. Units are compared without case (qnames are
|
|
64
|
+
* NOCASE in the store) and keep the first spelling seen.
|
|
65
|
+
*/
|
|
66
|
+
export declare function scopeNodeDiff(store: GraphStore, orgId: OrgId, diff: {
|
|
67
|
+
added: ReadonlyArray<{
|
|
68
|
+
qualifiedName: string;
|
|
69
|
+
label?: string;
|
|
70
|
+
}>;
|
|
71
|
+
removed: ReadonlyArray<{
|
|
72
|
+
qualifiedName: string;
|
|
73
|
+
label?: string;
|
|
74
|
+
}>;
|
|
75
|
+
changed: ReadonlyArray<{
|
|
76
|
+
after: {
|
|
77
|
+
qualifiedName: string;
|
|
78
|
+
label?: string;
|
|
79
|
+
};
|
|
80
|
+
}>;
|
|
81
|
+
}): ScopedNodeDiff;
|
|
82
|
+
//# sourceMappingURL=component-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-scope.d.ts","sourceRoot":"","sources":["../../src/analyze/component-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAiB,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAI3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2CpE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4BxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAiD,CAAC;AAEnG,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAEpD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,eAAe,CAAC;AAExD;6DAC6D;AAC7D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAE7D;AAqBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAarD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnF;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,WAAW,CAE/E;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,SAAS,EAAE,aAAa,CAAC;IACzB,uCAAuC;IACvC,YAAY,EAAE,aAAa,CAAC;CAC7B;AAID;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE;IACJ,KAAK,EAAE,aAAa,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,OAAO,EAAE,aAAa,CAAC;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,OAAO,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE;YAAE,aAAa,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC9E,GACA,cAAc,CAyChB"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { TRAVERSAL_CONTAINMENT_RULES, componentOf } from "./containment.js";
|
|
2
|
+
import { codePointCompare } from "./pseudo-endpoints.js";
|
|
3
|
+
/**
|
|
4
|
+
* Change scoping for the change tools (point_in_time_diff, what_broke): which
|
|
5
|
+
* node labels are *components* (units of code, declarative logic, schema or
|
|
6
|
+
* integration endpoints that a change can break or be broken by) and which are
|
|
7
|
+
* *records / configuration* (data rows, access and UI configuration, labels,
|
|
8
|
+
* diagnostics). Record/config rows are never dropped: the tools return them in
|
|
9
|
+
* a separate `nonComponent*` bucket and list them under their own heading.
|
|
10
|
+
*
|
|
11
|
+
* The split follows the label taxonomy of the parsers, not any case data:
|
|
12
|
+
* - every label a dedicated parser emits is listed below on one side, with
|
|
13
|
+
* the reason it is on that side;
|
|
14
|
+
* - every other label comes from the opaque fallback (`OpaqueNodeParser`),
|
|
15
|
+
* which labels a long-tail metadata member or a Vlocity DataPack record
|
|
16
|
+
* with its raw type name (EntityFilter, VlocityPicklist, ...). No such type
|
|
17
|
+
* has a parser of its own, so none is a parsed component: unknown labels are
|
|
18
|
+
* record/config (`changeScopeOfLabel`).
|
|
19
|
+
*
|
|
20
|
+
* Member labels (ApexMethod, FlowVersion, LWCBundle's LWC pairing) are
|
|
21
|
+
* components; they roll up to their owner (`changeUnitOf`).
|
|
22
|
+
*/
|
|
23
|
+
export const COMPONENT_LABEL_REASONS = {
|
|
24
|
+
// Code.
|
|
25
|
+
ApexClass: "Apex source code",
|
|
26
|
+
ApexTrigger: "Apex source code",
|
|
27
|
+
ApexInterface: "Apex source code (an interface type)",
|
|
28
|
+
ApexMethod: "member of an ApexClass (rolls up to the class)",
|
|
29
|
+
TestMethod: "member of a test ApexClass (rolls up to the class)",
|
|
30
|
+
ApexPage: "Visualforce page markup and controller binding",
|
|
31
|
+
ApexComponent: "Visualforce component markup",
|
|
32
|
+
LWC: "Lightning web component source",
|
|
33
|
+
LWCBundle: "the LWC's own bundle (folds into its same-name LWC)",
|
|
34
|
+
AuraComponent: "Aura component source",
|
|
35
|
+
// Declarative logic.
|
|
36
|
+
Flow: "declarative automation",
|
|
37
|
+
FlowVersion: "member of a Flow (rolls up to the Flow)",
|
|
38
|
+
Workflow: "declarative automation (workflow rules container)",
|
|
39
|
+
WorkflowRule: "declarative automation",
|
|
40
|
+
WorkflowAlert: "declarative automation action of a Workflow",
|
|
41
|
+
ApprovalProcess: "declarative automation",
|
|
42
|
+
ValidationRule: "declarative logic on an object (a formula)",
|
|
43
|
+
DuplicateRule: "declarative logic on an object",
|
|
44
|
+
MatchingRule: "declarative logic on an object",
|
|
45
|
+
GenAiPlanner: "agent logic definition",
|
|
46
|
+
GenAiPlugin: "agent logic definition",
|
|
47
|
+
// OmniStudio / Vlocity components (dedicated parsers).
|
|
48
|
+
OmniScript: "OmniStudio script (dedicated parser)",
|
|
49
|
+
IntegrationProcedure: "OmniStudio integration procedure (dedicated parser)",
|
|
50
|
+
DataRaptor: "OmniStudio data mapper (dedicated parser)",
|
|
51
|
+
VlocityCard: "OmniStudio card (dedicated parser)",
|
|
52
|
+
OmniProcess: "OmniStudio standard-runtime script/procedure (dedicated parser)",
|
|
53
|
+
OmniIntegrationProcedure: "OmniStudio standard-runtime procedure (dedicated parser)",
|
|
54
|
+
OmniDataTransform: "OmniStudio standard-runtime data mapper (dedicated parser)",
|
|
55
|
+
OmniUiCard: "OmniStudio standard-runtime card (dedicated parser)",
|
|
56
|
+
// Schema.
|
|
57
|
+
CustomObject: "schema: an object definition",
|
|
58
|
+
CustomField: "schema: a field definition",
|
|
59
|
+
CustomSetting: "schema: a custom setting type definition (not its records)",
|
|
60
|
+
CustomMetadataType: "schema: a custom metadata type definition (not its records)",
|
|
61
|
+
PlatformEvent: "schema: a platform event definition",
|
|
62
|
+
// Integration endpoints.
|
|
63
|
+
NamedCredential: "integration endpoint definition",
|
|
64
|
+
ExternalCredential: "integration endpoint authentication definition",
|
|
65
|
+
ExternalServiceRegistration: "integration endpoint (OpenAPI) definition",
|
|
66
|
+
};
|
|
67
|
+
export const RECORD_CONFIG_LABEL_REASONS = {
|
|
68
|
+
// Records (data rows, not definitions).
|
|
69
|
+
CustomMetadataRecord: "a record of a custom metadata type (data)",
|
|
70
|
+
// Access configuration.
|
|
71
|
+
Profile: "access configuration",
|
|
72
|
+
PermissionSet: "access configuration",
|
|
73
|
+
PermissionSetGroup: "access configuration",
|
|
74
|
+
SharingRule: "access configuration",
|
|
75
|
+
Role: "access configuration",
|
|
76
|
+
Group: "access configuration",
|
|
77
|
+
Queue: "access / routing configuration",
|
|
78
|
+
// UI configuration.
|
|
79
|
+
Layout: "UI configuration",
|
|
80
|
+
FlexiPage: "UI configuration",
|
|
81
|
+
CustomTab: "UI configuration",
|
|
82
|
+
RecordType: "UI / picklist configuration of an object (no logic, no schema of its own)",
|
|
83
|
+
Network: "site configuration",
|
|
84
|
+
// Content, analytics and setup.
|
|
85
|
+
CustomLabel: "translatable text",
|
|
86
|
+
StaticResource: "file asset (no parsed logic)",
|
|
87
|
+
EmailTemplate: "content",
|
|
88
|
+
Report: "analytics configuration",
|
|
89
|
+
Dashboard: "analytics configuration",
|
|
90
|
+
ConnectedApp: "authentication configuration",
|
|
91
|
+
RemoteSiteSetting: "endpoint allowlist entry",
|
|
92
|
+
// Diagnostics.
|
|
93
|
+
ParseError: "parser diagnostic, not metadata",
|
|
94
|
+
OpaqueMetadata: "opaque fallback node (no dedicated parser)",
|
|
95
|
+
};
|
|
96
|
+
export const COMPONENT_LABELS = new Set(Object.keys(COMPONENT_LABEL_REASONS));
|
|
97
|
+
/** Labels listed as record/config; any label not in COMPONENT_LABELS is too. */
|
|
98
|
+
export const RECORD_CONFIG_LABELS = new Set(Object.keys(RECORD_CONFIG_LABEL_REASONS));
|
|
99
|
+
/** `component` for a COMPONENT_LABELS label, else `record-config` (listed
|
|
100
|
+
* record/config labels and every opaque-fallback label). */
|
|
101
|
+
export function changeScopeOfLabel(label) {
|
|
102
|
+
return COMPONENT_LABELS.has(label) ? "component" : "record-config";
|
|
103
|
+
}
|
|
104
|
+
const labelOfQ = (q) => {
|
|
105
|
+
const i = q.indexOf(":");
|
|
106
|
+
return i > 0 ? q.slice(0, i) : "";
|
|
107
|
+
};
|
|
108
|
+
/** Owner name of a member name, by the member's qualified-name grammar. */
|
|
109
|
+
const OWNER_NAME_OF = {
|
|
110
|
+
// `ApexMethod:Cls.method(2)` (TestMethod nodes use the same qname form).
|
|
111
|
+
ApexMethod: (n) => {
|
|
112
|
+
const m = /^(.+)\.[^.()]+\(\d*\)$/.exec(n);
|
|
113
|
+
return m?.[1] ?? null;
|
|
114
|
+
},
|
|
115
|
+
// `FlowVersion:My_Flow.v12`.
|
|
116
|
+
FlowVersion: (n) => {
|
|
117
|
+
const m = /^(.+)\.v\d+$/.exec(n);
|
|
118
|
+
return m?.[1] ?? null;
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* The component a qname folds into by name grammar alone, for rows that have
|
|
123
|
+
* no live containment edge (a removed member): an ApexMethod into its
|
|
124
|
+
* ApexClass, a FlowVersion into its Flow, an LWCBundle into its same-name
|
|
125
|
+
* LWC (the traversal rules of containment.ts). Else `qname` itself.
|
|
126
|
+
*/
|
|
127
|
+
export function componentByName(qname) {
|
|
128
|
+
const label = labelOfQ(qname);
|
|
129
|
+
const name = qname.slice(qname.indexOf(":") + 1);
|
|
130
|
+
for (const r of TRAVERSAL_CONTAINMENT_RULES) {
|
|
131
|
+
if (r.row !== "member" && r.memberLabel === label) {
|
|
132
|
+
const owner = OWNER_NAME_OF[label]?.(name);
|
|
133
|
+
if (owner)
|
|
134
|
+
return `${r.ownerLabel}:${owner}`;
|
|
135
|
+
}
|
|
136
|
+
if (r.row === "member" && r.sameName && r.ownerLabel === label) {
|
|
137
|
+
return `${r.memberLabel}:${name}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return qname;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The component unit of a changed row: containment edges first
|
|
144
|
+
* (`componentOf`), then the name grammar (`componentByName`) for a row with
|
|
145
|
+
* no live edge (removed) and for a bundle folding into its LWC.
|
|
146
|
+
*/
|
|
147
|
+
export function changeUnitOf(store, orgId, qname) {
|
|
148
|
+
const viaEdges = String(componentOf(store, orgId, qname));
|
|
149
|
+
return viaEdges !== qname ? viaEdges : componentByName(qname);
|
|
150
|
+
}
|
|
151
|
+
/** The change scope of a unit qname (by its label prefix). */
|
|
152
|
+
export function changeScopeOf(unit, fallbackLabel) {
|
|
153
|
+
return changeScopeOfLabel(labelOfQ(unit) || fallbackLabel || "");
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* A node-level diff folded to change units and split by change scope.
|
|
157
|
+
* A unit takes the bucket of its own row when that row is in the diff (a new
|
|
158
|
+
* class with its methods is `added`); a unit reached only through members (a
|
|
159
|
+
* method body or a FlowVersion changed, a method removed) existed before and
|
|
160
|
+
* after, so it is `changed`. Units are compared without case (qnames are
|
|
161
|
+
* NOCASE in the store) and keep the first spelling seen.
|
|
162
|
+
*/
|
|
163
|
+
export function scopeNodeDiff(store, orgId, diff) {
|
|
164
|
+
const rows = [
|
|
165
|
+
...diff.added.map((x) => ({
|
|
166
|
+
q: String(x.qualifiedName),
|
|
167
|
+
label: x.label,
|
|
168
|
+
bucket: "added",
|
|
169
|
+
})),
|
|
170
|
+
...diff.removed.map((x) => ({
|
|
171
|
+
q: String(x.qualifiedName),
|
|
172
|
+
label: x.label,
|
|
173
|
+
bucket: "removed",
|
|
174
|
+
})),
|
|
175
|
+
...diff.changed.map((c) => ({
|
|
176
|
+
q: String(c.after.qualifiedName),
|
|
177
|
+
label: c.after.label,
|
|
178
|
+
bucket: "changed",
|
|
179
|
+
})),
|
|
180
|
+
];
|
|
181
|
+
const ownBucket = new Map();
|
|
182
|
+
for (const r of rows)
|
|
183
|
+
ownBucket.set(r.q.toLowerCase(), r.bucket);
|
|
184
|
+
const units = new Map();
|
|
185
|
+
for (const r of rows) {
|
|
186
|
+
const unit = changeUnitOf(store, orgId, r.q);
|
|
187
|
+
const key = unit.toLowerCase();
|
|
188
|
+
if (!units.has(key))
|
|
189
|
+
units.set(key, { unit, label: unit === r.q ? r.label : undefined });
|
|
190
|
+
}
|
|
191
|
+
const out = {
|
|
192
|
+
component: { added: [], removed: [], changed: [] },
|
|
193
|
+
nonComponent: { added: [], removed: [], changed: [] },
|
|
194
|
+
};
|
|
195
|
+
for (const [key, { unit, label }] of units) {
|
|
196
|
+
const bucket = ownBucket.get(key) ?? "changed";
|
|
197
|
+
const side = changeScopeOf(unit, label) === "component" ? out.component : out.nonComponent;
|
|
198
|
+
side[bucket].push(unit);
|
|
199
|
+
}
|
|
200
|
+
for (const side of [out.component, out.nonComponent]) {
|
|
201
|
+
side.added.sort(codePointCompare);
|
|
202
|
+
side.removed.sort(codePointCompare);
|
|
203
|
+
side.changed.sort(codePointCompare);
|
|
204
|
+
}
|
|
205
|
+
return out;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=component-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-scope.js","sourceRoot":"","sources":["../../src/analyze/component-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { OrgId, QualifiedName } from "@ryanstark24/sfgraph-shared";
|
|
2
|
+
import { type RelType } from "../domain/index.js";
|
|
3
|
+
import type { GraphStore } from "../storage/interfaces.js";
|
|
4
|
+
/**
|
|
5
|
+
* Member containment: an owner node contains member nodes that are only
|
|
6
|
+
* addressable parts of it (an ApexClass contains its ApexMethods via
|
|
7
|
+
* `CONTAINS_METHOD`). Every analysis applies these rules:
|
|
8
|
+
*
|
|
9
|
+
* 1. A reference to a member is a reference to its owner. An LWC that
|
|
10
|
+
* imports `ApexMethod:Svc.search(1)` depends on `ApexClass:Svc`, and keeps
|
|
11
|
+
* the class alive in the dead-code audit.
|
|
12
|
+
* 2. The containment edge itself (owner -> member) is structure, not usage.
|
|
13
|
+
* 3. Rule 1 does not run backwards: a member depends on its own callers and
|
|
14
|
+
* on references to its owner itself (type usage, `new Svc()`, static refs
|
|
15
|
+
* to the class), never on the callers of its sibling members.
|
|
16
|
+
*
|
|
17
|
+
* Lookups query only the containment rel tables, never every edge table.
|
|
18
|
+
*/
|
|
19
|
+
export declare const MEMBER_CONTAINMENT_RELTYPES: ReadonlyArray<RelType>;
|
|
20
|
+
/** True for an owner -> member containment edge. */
|
|
21
|
+
export declare function isMemberContainmentEdge(e: {
|
|
22
|
+
relType: unknown;
|
|
23
|
+
}): boolean;
|
|
24
|
+
/** Members `owner` contains (destinations of its member-containment edges). */
|
|
25
|
+
export declare function listMembers(store: GraphStore, orgId: OrgId, owner: QualifiedName): QualifiedName[];
|
|
26
|
+
/**
|
|
27
|
+
* `listMembers` for many owners from one read per containment rel type
|
|
28
|
+
* (`listEdgesFromAny`, NOCASE like listEdgesFrom), or per-owner reads when the
|
|
29
|
+
* store lacks it. Each owner gets the members its own `listMembers` would,
|
|
30
|
+
* in the same order.
|
|
31
|
+
*/
|
|
32
|
+
export declare function membersReader(store: GraphStore, orgId: OrgId, owners: readonly QualifiedName[]): (owner: QualifiedName) => QualifiedName[];
|
|
33
|
+
/** The owner containing `member`, or null when it is not a member. */
|
|
34
|
+
export declare function ownerOf(store: GraphStore, orgId: OrgId, member: QualifiedName): QualifiedName | null;
|
|
35
|
+
/**
|
|
36
|
+
* Traversal containment (trace_*, wip_impact, flow map): an owner and its
|
|
37
|
+
* members are one component, so following containment costs no hop and the
|
|
38
|
+
* pair is listed as one row. Keyed on rel type AND both labels, so e.g.
|
|
39
|
+
* `Workflow -CONTAINS-> WorkflowAlert` is not folded.
|
|
40
|
+
*
|
|
41
|
+
* `row` says which side stands for the pair in a listing:
|
|
42
|
+
* - `both`: owner and members are listed (Apex: the class plus its methods,
|
|
43
|
+
* method rows being the class roll-up);
|
|
44
|
+
* - `owner`: members fold into the owner row (a Flow and every FlowVersion
|
|
45
|
+
* the graph holds for it; there is no active-version or status check, so
|
|
46
|
+
* a stale version the graph still holds is folded and traversed too);
|
|
47
|
+
* - `member`: the owner folds into the member row (an LWCBundle into its LWC).
|
|
48
|
+
*
|
|
49
|
+
* `memberScoped`: a member *seed* stays member-scoped upstream (rule 3 above);
|
|
50
|
+
* only ApexMethod has siblings to keep apart.
|
|
51
|
+
*
|
|
52
|
+
* `sameName`: the pair only counts when owner and member have the same name
|
|
53
|
+
* (an LWCBundle and its own LWC; mirrors dead-code `isOwnBundleEdge`).
|
|
54
|
+
*
|
|
55
|
+
* Rules never chain: no label is the member of one rule and the owner of
|
|
56
|
+
* another, so a fold is always one step.
|
|
57
|
+
*/
|
|
58
|
+
export interface TraversalContainmentRule {
|
|
59
|
+
relType: RelType;
|
|
60
|
+
ownerLabel: string;
|
|
61
|
+
memberLabel: string;
|
|
62
|
+
row: "both" | "owner" | "member";
|
|
63
|
+
memberScoped: boolean;
|
|
64
|
+
sameName?: boolean;
|
|
65
|
+
}
|
|
66
|
+
export declare const TRAVERSAL_CONTAINMENT_RULES: ReadonlyArray<TraversalContainmentRule>;
|
|
67
|
+
/** The traversal containment rule `e` is an instance of, or null. */
|
|
68
|
+
export declare function traversalContainmentRule(e: {
|
|
69
|
+
relType: unknown;
|
|
70
|
+
srcQualifiedName: string;
|
|
71
|
+
dstQualifiedName: string;
|
|
72
|
+
}): TraversalContainmentRule | null;
|
|
73
|
+
/** Members of `owner` under the traversal rules (one indexed query at most). */
|
|
74
|
+
export declare function traversalMembers(store: GraphStore, orgId: OrgId, owner: QualifiedName): {
|
|
75
|
+
members: QualifiedName[];
|
|
76
|
+
rule: TraversalContainmentRule | null;
|
|
77
|
+
};
|
|
78
|
+
/** The owner of `member` under the traversal rules, or null. */
|
|
79
|
+
export declare function traversalOwner(store: GraphStore, orgId: OrgId, member: QualifiedName): {
|
|
80
|
+
owner: QualifiedName;
|
|
81
|
+
rule: TraversalContainmentRule;
|
|
82
|
+
} | null;
|
|
83
|
+
/**
|
|
84
|
+
* The component a qname belongs to, for component-level listings and
|
|
85
|
+
* coverage: a member folds into its owner (an ApexMethod into its ApexClass,
|
|
86
|
+
* a FlowVersion into its Flow) unless its rule lists the member as the row
|
|
87
|
+
* (`row: "member"`, an LWCBundle's LWC). Falls back to plain member
|
|
88
|
+
* containment for owners outside the traversal rules; else `qname` itself.
|
|
89
|
+
*/
|
|
90
|
+
export declare function componentOf(store: GraphStore, orgId: OrgId, qname: QualifiedName): QualifiedName;
|
|
91
|
+
//# sourceMappingURL=containment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containment.d.ts","sourceRoot":"","sources":["../../src/analyze/containment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,EAAE,aAAa,CAAC,OAAO,CAA+B,CAAC;AAI/F,oDAAoD;AACpD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAExE;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,aAAa,GACnB,aAAa,EAAE,CAQjB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,SAAS,aAAa,EAAE,GAC/B,CAAC,KAAK,EAAE,aAAa,KAAK,aAAa,EAAE,CAuB3C;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CACrB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,GACpB,aAAa,GAAG,IAAI,CAOtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,2BAA2B,EAAE,aAAa,CAAC,wBAAwB,CAuB/E,CAAC;AAUF,qEAAqE;AACrE,wBAAgB,wBAAwB,CAAC,CAAC,EAAE;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,wBAAwB,GAAG,IAAI,CAelC;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,aAAa,GACnB;IAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAAA;CAAE,CAmBrE;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,GACpB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAAG,IAAI,CAkBjE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,CAIhG"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { REL_TYPES } from "../domain/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Member containment: an owner node contains member nodes that are only
|
|
4
|
+
* addressable parts of it (an ApexClass contains its ApexMethods via
|
|
5
|
+
* `CONTAINS_METHOD`). Every analysis applies these rules:
|
|
6
|
+
*
|
|
7
|
+
* 1. A reference to a member is a reference to its owner. An LWC that
|
|
8
|
+
* imports `ApexMethod:Svc.search(1)` depends on `ApexClass:Svc`, and keeps
|
|
9
|
+
* the class alive in the dead-code audit.
|
|
10
|
+
* 2. The containment edge itself (owner -> member) is structure, not usage.
|
|
11
|
+
* 3. Rule 1 does not run backwards: a member depends on its own callers and
|
|
12
|
+
* on references to its owner itself (type usage, `new Svc()`, static refs
|
|
13
|
+
* to the class), never on the callers of its sibling members.
|
|
14
|
+
*
|
|
15
|
+
* Lookups query only the containment rel tables, never every edge table.
|
|
16
|
+
*/
|
|
17
|
+
export const MEMBER_CONTAINMENT_RELTYPES = [REL_TYPES.CONTAINS_METHOD];
|
|
18
|
+
const CONTAINMENT_SET = new Set(MEMBER_CONTAINMENT_RELTYPES);
|
|
19
|
+
/** True for an owner -> member containment edge. */
|
|
20
|
+
export function isMemberContainmentEdge(e) {
|
|
21
|
+
return CONTAINMENT_SET.has(String(e.relType));
|
|
22
|
+
}
|
|
23
|
+
/** Members `owner` contains (destinations of its member-containment edges). */
|
|
24
|
+
export function listMembers(store, orgId, owner) {
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const rel of MEMBER_CONTAINMENT_RELTYPES) {
|
|
27
|
+
for (const e of store.listEdgesFrom(orgId, owner, rel)) {
|
|
28
|
+
if (e.dstQualifiedName !== owner)
|
|
29
|
+
out.push(e.dstQualifiedName);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return out;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* `listMembers` for many owners from one read per containment rel type
|
|
36
|
+
* (`listEdgesFromAny`, NOCASE like listEdgesFrom), or per-owner reads when the
|
|
37
|
+
* store lacks it. Each owner gets the members its own `listMembers` would,
|
|
38
|
+
* in the same order.
|
|
39
|
+
*/
|
|
40
|
+
export function membersReader(store, orgId, owners) {
|
|
41
|
+
if (typeof store.listEdgesFromAny !== "function") {
|
|
42
|
+
return (owner) => listMembers(store, orgId, owner);
|
|
43
|
+
}
|
|
44
|
+
const fold = (s) => s.replace(/[A-Z]/g, (c) => c.toLowerCase());
|
|
45
|
+
const uniq = new Set(owners.map(String));
|
|
46
|
+
const perRel = MEMBER_CONTAINMENT_RELTYPES.map((rel) => {
|
|
47
|
+
const bySrc = new Map();
|
|
48
|
+
for (const e of store.listEdgesFromAny?.(orgId, uniq, rel) ?? []) {
|
|
49
|
+
const k = fold(String(e.srcQualifiedName));
|
|
50
|
+
const list = bySrc.get(k);
|
|
51
|
+
if (list)
|
|
52
|
+
list.push(e.dstQualifiedName);
|
|
53
|
+
else
|
|
54
|
+
bySrc.set(k, [e.dstQualifiedName]);
|
|
55
|
+
}
|
|
56
|
+
return bySrc;
|
|
57
|
+
});
|
|
58
|
+
return (owner) => {
|
|
59
|
+
const out = [];
|
|
60
|
+
for (const bySrc of perRel) {
|
|
61
|
+
for (const dst of bySrc.get(fold(String(owner))) ?? [])
|
|
62
|
+
if (dst !== owner)
|
|
63
|
+
out.push(dst);
|
|
64
|
+
}
|
|
65
|
+
return out;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** The owner containing `member`, or null when it is not a member. */
|
|
69
|
+
export function ownerOf(store, orgId, member) {
|
|
70
|
+
for (const rel of MEMBER_CONTAINMENT_RELTYPES) {
|
|
71
|
+
for (const e of store.listEdgesTo(orgId, member, rel)) {
|
|
72
|
+
if (e.srcQualifiedName !== member)
|
|
73
|
+
return e.srcQualifiedName;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
export const TRAVERSAL_CONTAINMENT_RULES = [
|
|
79
|
+
{
|
|
80
|
+
relType: REL_TYPES.CONTAINS_METHOD,
|
|
81
|
+
ownerLabel: "ApexClass",
|
|
82
|
+
memberLabel: "ApexMethod",
|
|
83
|
+
row: "both",
|
|
84
|
+
memberScoped: true,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
relType: REL_TYPES.CONTAINS,
|
|
88
|
+
ownerLabel: "Flow",
|
|
89
|
+
memberLabel: "FlowVersion",
|
|
90
|
+
row: "owner",
|
|
91
|
+
memberScoped: false,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
relType: REL_TYPES.CONTAINS_COMPONENT,
|
|
95
|
+
ownerLabel: "LWCBundle",
|
|
96
|
+
memberLabel: "LWC",
|
|
97
|
+
row: "member",
|
|
98
|
+
memberScoped: false,
|
|
99
|
+
sameName: true,
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
const labelOf = (q) => {
|
|
103
|
+
const i = q.indexOf(":");
|
|
104
|
+
return i > 0 ? q.slice(0, i) : "";
|
|
105
|
+
};
|
|
106
|
+
const nameOfQ = (q) => q.slice(q.indexOf(":") + 1);
|
|
107
|
+
const namesMatch = (r, owner, member) => !r.sameName || nameOfQ(owner) === nameOfQ(member);
|
|
108
|
+
/** The traversal containment rule `e` is an instance of, or null. */
|
|
109
|
+
export function traversalContainmentRule(e) {
|
|
110
|
+
const rel = String(e.relType);
|
|
111
|
+
const src = labelOf(e.srcQualifiedName);
|
|
112
|
+
const dst = labelOf(e.dstQualifiedName);
|
|
113
|
+
for (const r of TRAVERSAL_CONTAINMENT_RULES) {
|
|
114
|
+
if (r.relType === rel &&
|
|
115
|
+
r.ownerLabel === src &&
|
|
116
|
+
r.memberLabel === dst &&
|
|
117
|
+
namesMatch(r, e.srcQualifiedName, e.dstQualifiedName)) {
|
|
118
|
+
return r;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
/** Members of `owner` under the traversal rules (one indexed query at most). */
|
|
124
|
+
export function traversalMembers(store, orgId, owner) {
|
|
125
|
+
const label = labelOf(owner);
|
|
126
|
+
for (const r of TRAVERSAL_CONTAINMENT_RULES) {
|
|
127
|
+
if (r.ownerLabel !== label)
|
|
128
|
+
continue;
|
|
129
|
+
const members = [];
|
|
130
|
+
for (const e of store.listEdgesFrom(orgId, owner, r.relType)) {
|
|
131
|
+
if (e.dstQualifiedName !== owner &&
|
|
132
|
+
labelOf(e.dstQualifiedName) === r.memberLabel &&
|
|
133
|
+
namesMatch(r, owner, e.dstQualifiedName)) {
|
|
134
|
+
members.push(e.dstQualifiedName);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Sorted: edge listings have no ORDER BY (review M7).
|
|
138
|
+
members.sort();
|
|
139
|
+
return { members, rule: r };
|
|
140
|
+
}
|
|
141
|
+
return { members: [], rule: null };
|
|
142
|
+
}
|
|
143
|
+
/** The owner of `member` under the traversal rules, or null. */
|
|
144
|
+
export function traversalOwner(store, orgId, member) {
|
|
145
|
+
const label = labelOf(member);
|
|
146
|
+
for (const r of TRAVERSAL_CONTAINMENT_RULES) {
|
|
147
|
+
if (r.memberLabel !== label)
|
|
148
|
+
continue;
|
|
149
|
+
let owner = null;
|
|
150
|
+
for (const e of store.listEdgesTo(orgId, member, r.relType)) {
|
|
151
|
+
if (e.srcQualifiedName !== member &&
|
|
152
|
+
labelOf(e.srcQualifiedName) === r.ownerLabel &&
|
|
153
|
+
namesMatch(r, e.srcQualifiedName, member) &&
|
|
154
|
+
(owner === null || e.srcQualifiedName < owner)) {
|
|
155
|
+
owner = e.srcQualifiedName;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return owner === null ? null : { owner, rule: r };
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The component a qname belongs to, for component-level listings and
|
|
164
|
+
* coverage: a member folds into its owner (an ApexMethod into its ApexClass,
|
|
165
|
+
* a FlowVersion into its Flow) unless its rule lists the member as the row
|
|
166
|
+
* (`row: "member"`, an LWCBundle's LWC). Falls back to plain member
|
|
167
|
+
* containment for owners outside the traversal rules; else `qname` itself.
|
|
168
|
+
*/
|
|
169
|
+
export function componentOf(store, orgId, qname) {
|
|
170
|
+
const t = traversalOwner(store, orgId, qname);
|
|
171
|
+
if (t)
|
|
172
|
+
return t.rule.row === "member" ? qname : t.owner;
|
|
173
|
+
return ownerOf(store, orgId, qname) ?? qname;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=containment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containment.js","sourceRoot":"","sources":["../../src/analyze/containment.ts"],"names":[],"mappings":"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"}
|