@ryanstark24/sfgraph-core 1.1.8 → 1.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/dist/analyze/__tests__/audit-graph.test.js +79 -0
- package/dist/analyze/__tests__/audit-graph.test.js.map +1 -1
- package/dist/analyze/__tests__/edge-filters.test.d.ts +2 -0
- package/dist/analyze/__tests__/edge-filters.test.d.ts.map +1 -0
- package/dist/analyze/__tests__/edge-filters.test.js +66 -0
- package/dist/analyze/__tests__/edge-filters.test.js.map +1 -0
- package/dist/analyze/__tests__/find-nodes.test.d.ts +2 -0
- package/dist/analyze/__tests__/find-nodes.test.d.ts.map +1 -0
- package/dist/analyze/__tests__/find-nodes.test.js +129 -0
- package/dist/analyze/__tests__/find-nodes.test.js.map +1 -0
- package/dist/analyze/__tests__/findings.test.d.ts +2 -0
- package/dist/analyze/__tests__/findings.test.d.ts.map +1 -0
- package/dist/analyze/__tests__/findings.test.js +100 -0
- package/dist/analyze/__tests__/findings.test.js.map +1 -0
- package/dist/analyze/__tests__/governor-risks-detection.test.js +90 -0
- package/dist/analyze/__tests__/governor-risks-detection.test.js.map +1 -1
- package/dist/analyze/__tests__/security-fls-filter.test.d.ts +2 -0
- package/dist/analyze/__tests__/security-fls-filter.test.d.ts.map +1 -0
- package/dist/analyze/__tests__/security-fls-filter.test.js +23 -0
- package/dist/analyze/__tests__/security-fls-filter.test.js.map +1 -0
- package/dist/analyze/audit-graph.d.ts +26 -2
- package/dist/analyze/audit-graph.d.ts.map +1 -1
- package/dist/analyze/audit-graph.js +52 -5
- package/dist/analyze/audit-graph.js.map +1 -1
- package/dist/analyze/dependencies.d.ts +2 -2
- package/dist/analyze/dependencies.d.ts.map +1 -1
- package/dist/analyze/dependencies.js +9 -3
- package/dist/analyze/dependencies.js.map +1 -1
- package/dist/analyze/dependents.d.ts +6 -1
- package/dist/analyze/dependents.d.ts.map +1 -1
- package/dist/analyze/dependents.js +12 -2
- package/dist/analyze/dependents.js.map +1 -1
- package/dist/analyze/edge-filters.d.ts +37 -0
- package/dist/analyze/edge-filters.d.ts.map +1 -0
- package/dist/analyze/edge-filters.js +51 -0
- package/dist/analyze/edge-filters.js.map +1 -0
- package/dist/analyze/find-nodes.d.ts +38 -0
- package/dist/analyze/find-nodes.d.ts.map +1 -0
- package/dist/analyze/find-nodes.js +51 -0
- package/dist/analyze/find-nodes.js.map +1 -0
- package/dist/analyze/findings.d.ts +86 -0
- package/dist/analyze/findings.d.ts.map +1 -0
- package/dist/analyze/findings.js +141 -0
- package/dist/analyze/findings.js.map +1 -0
- package/dist/analyze/index.d.ts +2 -0
- package/dist/analyze/index.d.ts.map +1 -1
- package/dist/analyze/index.js +2 -0
- package/dist/analyze/index.js.map +1 -1
- package/dist/analyze/populate.d.ts.map +1 -1
- package/dist/analyze/populate.js +55 -10
- package/dist/analyze/populate.js.map +1 -1
- package/dist/analyze/security.d.ts +15 -0
- package/dist/analyze/security.d.ts.map +1 -1
- package/dist/analyze/security.js +59 -3
- package/dist/analyze/security.js.map +1 -1
- package/dist/analyze/wip-impact.d.ts.map +1 -1
- package/dist/analyze/wip-impact.js +12 -2
- package/dist/analyze/wip-impact.js.map +1 -1
- package/dist/domain/edge-fact.d.ts +25 -0
- package/dist/domain/edge-fact.d.ts.map +1 -1
- package/dist/domain/metadata-category.d.ts +1 -0
- package/dist/domain/metadata-category.d.ts.map +1 -1
- package/dist/domain/metadata-category.js +1 -0
- package/dist/domain/metadata-category.js.map +1 -1
- package/dist/domain/rel-types.d.ts +4 -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/embedding/__tests__/embed.test.d.ts +2 -0
- package/dist/embedding/__tests__/embed.test.d.ts.map +1 -0
- package/dist/embedding/__tests__/embed.test.js +72 -0
- package/dist/embedding/__tests__/embed.test.js.map +1 -0
- package/dist/embedding/embed.d.ts.map +1 -1
- package/dist/embedding/embed.js +14 -1
- package/dist/embedding/embed.js.map +1 -1
- package/dist/extractors/interfaces/metadata-source.d.ts +11 -0
- package/dist/extractors/interfaces/metadata-source.d.ts.map +1 -1
- package/dist/extractors/live-org/__tests__/bulk-retrieve.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/custom-settings.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/custom-settings.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/custom-settings.test.js +79 -0
- package/dist/extractors/live-org/__tests__/custom-settings.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/extractor-enrichment.test.js +70 -8
- package/dist/extractors/live-org/__tests__/extractor-enrichment.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/liveness.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/liveness.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/liveness.test.js +148 -0
- package/dist/extractors/live-org/__tests__/liveness.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.js +177 -0
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.js +75 -0
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.js +135 -0
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/pools.test.js +4 -1
- package/dist/extractors/live-org/__tests__/pools.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/rate-limit.test.js +1 -6
- package/dist/extractors/live-org/__tests__/rate-limit.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.js +118 -0
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/stop-waiting.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/stop-waiting.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/stop-waiting.test.js +243 -0
- package/dist/extractors/live-org/__tests__/stop-waiting.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/vlocity-runner.test.js +27 -0
- package/dist/extractors/live-org/__tests__/vlocity-runner.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.js +40 -0
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.js +270 -0
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.js.map +1 -0
- package/dist/extractors/live-org/bulk-retrieve.d.ts +176 -0
- package/dist/extractors/live-org/bulk-retrieve.d.ts.map +1 -1
- package/dist/extractors/live-org/bulk-retrieve.js +509 -71
- package/dist/extractors/live-org/bulk-retrieve.js.map +1 -1
- package/dist/extractors/live-org/capabilities.d.ts.map +1 -1
- package/dist/extractors/live-org/capabilities.js.map +1 -1
- package/dist/extractors/live-org/extractors/__tests__/apex.test.d.ts +2 -0
- package/dist/extractors/live-org/extractors/__tests__/apex.test.d.ts.map +1 -0
- package/dist/extractors/live-org/extractors/__tests__/apex.test.js +73 -0
- package/dist/extractors/live-org/extractors/__tests__/apex.test.js.map +1 -0
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.d.ts +2 -0
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.d.ts.map +1 -0
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.js +183 -0
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.js.map +1 -0
- package/dist/extractors/live-org/extractors/apex.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/apex.js +76 -51
- package/dist/extractors/live-org/extractors/apex.js.map +1 -1
- package/dist/extractors/live-org/extractors/custom-settings.d.ts +3 -0
- package/dist/extractors/live-org/extractors/custom-settings.d.ts.map +1 -0
- package/dist/extractors/live-org/extractors/custom-settings.js +66 -0
- package/dist/extractors/live-org/extractors/custom-settings.js.map +1 -0
- package/dist/extractors/live-org/extractors/flow.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/flow.js.map +1 -1
- package/dist/extractors/live-org/extractors/generic-metadata.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/generic-metadata.js.map +1 -1
- package/dist/extractors/live-org/extractors/generic-sobject.js.map +1 -1
- package/dist/extractors/live-org/extractors/lwc.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/lwc.js +81 -41
- package/dist/extractors/live-org/extractors/lwc.js.map +1 -1
- package/dist/extractors/live-org/extractors/mcd-baseline.d.ts +60 -0
- package/dist/extractors/live-org/extractors/mcd-baseline.d.ts.map +1 -0
- package/dist/extractors/live-org/extractors/mcd-baseline.js +118 -0
- package/dist/extractors/live-org/extractors/mcd-baseline.js.map +1 -0
- package/dist/extractors/live-org/extractors/object.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/object.js.map +1 -1
- package/dist/extractors/live-org/extractors/omnistudio-retrieve.d.ts +23 -0
- package/dist/extractors/live-org/extractors/omnistudio-retrieve.d.ts.map +1 -0
- package/dist/extractors/live-org/extractors/omnistudio-retrieve.js +172 -0
- package/dist/extractors/live-org/extractors/omnistudio-retrieve.js.map +1 -0
- package/dist/extractors/live-org/extractors/omnistudio.d.ts +8 -1
- package/dist/extractors/live-org/extractors/omnistudio.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/omnistudio.js +59 -6
- package/dist/extractors/live-org/extractors/omnistudio.js.map +1 -1
- package/dist/extractors/live-org/rate-limit.d.ts +98 -15
- package/dist/extractors/live-org/rate-limit.d.ts.map +1 -1
- package/dist/extractors/live-org/rate-limit.js +278 -41
- package/dist/extractors/live-org/rate-limit.js.map +1 -1
- package/dist/extractors/live-org/vlocity/runner.d.ts +1 -1
- package/dist/extractors/live-org/vlocity/runner.d.ts.map +1 -1
- package/dist/extractors/live-org/vlocity/runner.js +49 -14
- package/dist/extractors/live-org/vlocity/runner.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ingest/__tests__/config-values.test.d.ts +2 -0
- package/dist/ingest/__tests__/config-values.test.d.ts.map +1 -0
- package/dist/ingest/__tests__/config-values.test.js +65 -0
- package/dist/ingest/__tests__/config-values.test.js.map +1 -0
- package/dist/ingest/__tests__/full-sync-deletion.test.js +11 -4
- package/dist/ingest/__tests__/full-sync-deletion.test.js.map +1 -1
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.d.ts +10 -0
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.d.ts.map +1 -0
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.js +251 -0
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.js.map +1 -0
- package/dist/ingest/__tests__/live-ingest.test.js.map +1 -1
- package/dist/ingest/__tests__/multi-org-orchestrator.test.js +3 -0
- package/dist/ingest/__tests__/multi-org-orchestrator.test.js.map +1 -1
- package/dist/ingest/__tests__/parser-dispatch.test.d.ts +2 -0
- package/dist/ingest/__tests__/parser-dispatch.test.d.ts.map +1 -0
- package/dist/ingest/__tests__/parser-dispatch.test.js +55 -0
- package/dist/ingest/__tests__/parser-dispatch.test.js.map +1 -0
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.d.ts +2 -0
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.d.ts.map +1 -0
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.js +134 -0
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.js.map +1 -0
- package/dist/ingest/detect-deletions-guard.d.ts +45 -0
- package/dist/ingest/detect-deletions-guard.d.ts.map +1 -0
- package/dist/ingest/detect-deletions-guard.js +63 -0
- package/dist/ingest/detect-deletions-guard.js.map +1 -0
- package/dist/ingest/live-ingest.d.ts +86 -0
- package/dist/ingest/live-ingest.d.ts.map +1 -1
- package/dist/ingest/live-ingest.js +783 -449
- package/dist/ingest/live-ingest.js.map +1 -1
- package/dist/parsers/__tests__/datatransform-structured.test.d.ts +2 -0
- package/dist/parsers/__tests__/datatransform-structured.test.d.ts.map +1 -0
- package/dist/parsers/__tests__/datatransform-structured.test.js +147 -0
- package/dist/parsers/__tests__/datatransform-structured.test.js.map +1 -0
- package/dist/parsers/__tests__/edge-provenance.test.d.ts +2 -0
- package/dist/parsers/__tests__/edge-provenance.test.d.ts.map +1 -0
- package/dist/parsers/__tests__/edge-provenance.test.js +47 -0
- package/dist/parsers/__tests__/edge-provenance.test.js.map +1 -0
- package/dist/parsers/__tests__/lwc-bindings.test.js +78 -3
- package/dist/parsers/__tests__/lwc-bindings.test.js.map +1 -1
- package/dist/parsers/__tests__/mcd-gap-fills.test.d.ts +2 -0
- package/dist/parsers/__tests__/mcd-gap-fills.test.d.ts.map +1 -0
- package/dist/parsers/__tests__/mcd-gap-fills.test.js +75 -0
- package/dist/parsers/__tests__/mcd-gap-fills.test.js.map +1 -0
- package/dist/parsers/__tests__/object-inline-fields.test.js +2 -2
- package/dist/parsers/__tests__/object-inline-fields.test.js.map +1 -1
- package/dist/parsers/__tests__/omnistudio-overlap.test.d.ts +2 -0
- package/dist/parsers/__tests__/omnistudio-overlap.test.d.ts.map +1 -0
- package/dist/parsers/__tests__/omnistudio-overlap.test.js +163 -0
- package/dist/parsers/__tests__/omnistudio-overlap.test.js.map +1 -0
- package/dist/parsers/__tests__/omnistudio.golden.test.js +5 -6
- package/dist/parsers/__tests__/omnistudio.golden.test.js.map +1 -1
- package/dist/parsers/__tests__/reflection-walker.test.d.ts +2 -0
- package/dist/parsers/__tests__/reflection-walker.test.d.ts.map +1 -0
- package/dist/parsers/__tests__/reflection-walker.test.js +162 -0
- package/dist/parsers/__tests__/reflection-walker.test.js.map +1 -0
- package/dist/parsers/__tests__/vlocity.golden.test.js +9 -13
- package/dist/parsers/__tests__/vlocity.golden.test.js.map +1 -1
- package/dist/parsers/apex/__tests__/ast-extractor.test.js +64 -4
- package/dist/parsers/apex/__tests__/ast-extractor.test.js.map +1 -1
- package/dist/parsers/apex/__tests__/empty-body.test.d.ts +2 -0
- package/dist/parsers/apex/__tests__/empty-body.test.d.ts.map +1 -0
- package/dist/parsers/apex/__tests__/empty-body.test.js +40 -0
- package/dist/parsers/apex/__tests__/empty-body.test.js.map +1 -0
- package/dist/parsers/apex/__tests__/is-test-attribute.test.d.ts +2 -0
- package/dist/parsers/apex/__tests__/is-test-attribute.test.d.ts.map +1 -0
- package/dist/parsers/apex/__tests__/is-test-attribute.test.js +56 -0
- package/dist/parsers/apex/__tests__/is-test-attribute.test.js.map +1 -0
- package/dist/parsers/apex/__tests__/regex-arg-count.test.d.ts +2 -0
- package/dist/parsers/apex/__tests__/regex-arg-count.test.d.ts.map +1 -0
- package/dist/parsers/apex/__tests__/regex-arg-count.test.js +82 -0
- package/dist/parsers/apex/__tests__/regex-arg-count.test.js.map +1 -0
- package/dist/parsers/apex/__tests__/regex-inloop.test.d.ts +2 -0
- package/dist/parsers/apex/__tests__/regex-inloop.test.d.ts.map +1 -0
- package/dist/parsers/apex/__tests__/regex-inloop.test.js +70 -0
- package/dist/parsers/apex/__tests__/regex-inloop.test.js.map +1 -0
- package/dist/parsers/apex/arity-resolver.d.ts.map +1 -1
- package/dist/parsers/apex/arity-resolver.js.map +1 -1
- package/dist/parsers/apex/ast-extractor.d.ts.map +1 -1
- package/dist/parsers/apex/ast-extractor.js +33 -1
- package/dist/parsers/apex/ast-extractor.js.map +1 -1
- package/dist/parsers/apex/class.d.ts.map +1 -1
- package/dist/parsers/apex/class.js +162 -5
- package/dist/parsers/apex/class.js.map +1 -1
- package/dist/parsers/apex/trigger.d.ts.map +1 -1
- package/dist/parsers/apex/trigger.js +10 -0
- package/dist/parsers/apex/trigger.js.map +1 -1
- package/dist/parsers/common.d.ts +4 -1
- package/dist/parsers/common.d.ts.map +1 -1
- package/dist/parsers/common.js +15 -2
- package/dist/parsers/common.js.map +1 -1
- package/dist/parsers/flow/__tests__/invocable-resolver.test.js.map +1 -1
- package/dist/parsers/flow/invocable-resolver.d.ts.map +1 -1
- package/dist/parsers/flow/invocable-resolver.js.map +1 -1
- package/dist/parsers/generic/reflection-walker.d.ts +90 -0
- package/dist/parsers/generic/reflection-walker.d.ts.map +1 -0
- package/dist/parsers/generic/reflection-walker.js +193 -0
- package/dist/parsers/generic/reflection-walker.js.map +1 -0
- package/dist/parsers/lwc/html-visitor.d.ts.map +1 -1
- package/dist/parsers/lwc/html-visitor.js +82 -3
- package/dist/parsers/lwc/html-visitor.js.map +1 -1
- package/dist/parsers/lwc/js-visitor.d.ts.map +1 -1
- package/dist/parsers/lwc/js-visitor.js +6 -2
- package/dist/parsers/lwc/js-visitor.js.map +1 -1
- package/dist/parsers/object/object.d.ts.map +1 -1
- package/dist/parsers/object/object.js +35 -5
- 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 +39 -6
- 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 +3 -2
- package/dist/parsers/omnistudio/integration-procedure.js.map +1 -1
- package/dist/parsers/omnistudio/overlap-detector.d.ts +50 -0
- package/dist/parsers/omnistudio/overlap-detector.d.ts.map +1 -0
- package/dist/parsers/omnistudio/overlap-detector.js +122 -0
- package/dist/parsers/omnistudio/overlap-detector.js.map +1 -0
- package/dist/parsers/omnistudio/process.d.ts.map +1 -1
- package/dist/parsers/omnistudio/process.js +3 -2
- package/dist/parsers/omnistudio/process.js.map +1 -1
- package/dist/parsers/omnistudio/ui-card.d.ts.map +1 -1
- package/dist/parsers/omnistudio/ui-card.js +3 -2
- package/dist/parsers/omnistudio/ui-card.js.map +1 -1
- package/dist/parsers/rules/custom-metadata-type.yml +7 -0
- package/dist/parsers/rules/custom-setting.yml +24 -0
- package/dist/parsers/vlocity/common.d.ts +16 -0
- package/dist/parsers/vlocity/common.d.ts.map +1 -1
- package/dist/parsers/vlocity/common.js +62 -0
- package/dist/parsers/vlocity/common.js.map +1 -1
- package/dist/parsers/vlocity/data-raptor.d.ts.map +1 -1
- package/dist/parsers/vlocity/data-raptor.js +43 -14
- package/dist/parsers/vlocity/data-raptor.js.map +1 -1
- package/dist/render/__tests__/sarif.test.d.ts +2 -0
- package/dist/render/__tests__/sarif.test.d.ts.map +1 -0
- package/dist/render/__tests__/sarif.test.js +126 -0
- package/dist/render/__tests__/sarif.test.js.map +1 -0
- package/dist/render/sarif.d.ts +94 -0
- package/dist/render/sarif.d.ts.map +1 -0
- package/dist/render/sarif.js +131 -0
- package/dist/render/sarif.js.map +1 -0
- package/dist/storage/__tests__/analysis-tables-migration.test.js +1 -1
- package/dist/storage/__tests__/graph-store.test.js +13 -0
- package/dist/storage/__tests__/graph-store.test.js.map +1 -1
- package/dist/storage/__tests__/migrations.test.js +4 -4
- package/dist/storage/__tests__/rename-stability.test.d.ts +2 -0
- package/dist/storage/__tests__/rename-stability.test.d.ts.map +1 -0
- package/dist/storage/__tests__/rename-stability.test.js +135 -0
- package/dist/storage/__tests__/rename-stability.test.js.map +1 -0
- package/dist/storage/__tests__/sync-generation.test.d.ts +2 -0
- package/dist/storage/__tests__/sync-generation.test.d.ts.map +1 -0
- package/dist/storage/__tests__/sync-generation.test.js +159 -0
- package/dist/storage/__tests__/sync-generation.test.js.map +1 -0
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +1 -0
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/interfaces.d.ts +60 -0
- package/dist/storage/interfaces.d.ts.map +1 -1
- package/dist/storage/sqlite/graph-store.d.ts +21 -1
- package/dist/storage/sqlite/graph-store.d.ts.map +1 -1
- package/dist/storage/sqlite/graph-store.js +86 -0
- package/dist/storage/sqlite/graph-store.js.map +1 -1
- package/dist/storage/sqlite/migrations.d.ts.map +1 -1
- package/dist/storage/sqlite/migrations.js +38 -0
- package/dist/storage/sqlite/migrations.js.map +1 -1
- package/dist/storage/sqlite/rename-stability.d.ts +94 -0
- package/dist/storage/sqlite/rename-stability.d.ts.map +1 -0
- package/dist/storage/sqlite/rename-stability.js +92 -0
- package/dist/storage/sqlite/rename-stability.js.map +1 -0
- package/package.json +4 -1
|
@@ -1,7 +1,44 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
1
2
|
import Bottleneck from "bottleneck";
|
|
2
3
|
import pLimit from "p-limit";
|
|
3
4
|
/** Cap concurrent query invocations against a single org connection. */
|
|
4
5
|
export const queryLimit = pLimit(5);
|
|
6
|
+
/** Typed sentinel surfaced by the rate-limit wrappers when a stop-signal
|
|
7
|
+
* is observed mid-race. Distinct from a real timeout so callers (e.g. the
|
|
8
|
+
* late-drain loop in bulk-retrieve.ts) can branch on the kind of failure.
|
|
9
|
+
*
|
|
10
|
+
* This is a voluntary stop on the caller side — it is NOT a wedge, and it
|
|
11
|
+
* is NOT proof that the underlying HTTP request was cancelled (see
|
|
12
|
+
* socket-leak limitation above). */
|
|
13
|
+
export class StopWaitingError extends Error {
|
|
14
|
+
stopWaiting = true;
|
|
15
|
+
constructor(label) {
|
|
16
|
+
super(`stop-waiting: source "${label}" was instructed to stop awaiting an in-flight request`);
|
|
17
|
+
this.name = "StopWaitingError";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** How often a wrapper polls the stop-signal flag while racing the underlying
|
|
21
|
+
* promise. 50ms gives sub-100ms median latency from flip to rejection
|
|
22
|
+
* without burning the event loop. Tests can squeeze via env if needed. */
|
|
23
|
+
const STOP_WAITING_POLL_MS = 50;
|
|
24
|
+
/**
|
|
25
|
+
* AsyncLocalStorage context channel — the merger's `failSoft` wrapper
|
|
26
|
+
* `.run()`s the body inside `stopSignalContext.run(stopSignal, ...)` so any
|
|
27
|
+
* downstream call into a rate-limit wrapper that did not receive an
|
|
28
|
+
* explicit stopSignal can still pick one up. Tradeoff: implicit, but the
|
|
29
|
+
* alternative is threading a new optional param through every extractor
|
|
30
|
+
* signature (~13 files). Documented as a deviation in the W1.5-03 SUMMARY.
|
|
31
|
+
*/
|
|
32
|
+
export const stopSignalContext = new AsyncLocalStorage();
|
|
33
|
+
/** Pick up a stop-signal from either the explicit arg or the async context.
|
|
34
|
+
* Explicit always wins. Returns `undefined` when neither is present, which
|
|
35
|
+
* keeps the existing fast path (no extra setTimeout) for callers that have
|
|
36
|
+
* not opted in. */
|
|
37
|
+
function resolveStopSignal(explicit) {
|
|
38
|
+
if (explicit)
|
|
39
|
+
return explicit;
|
|
40
|
+
return stopSignalContext.getStore();
|
|
41
|
+
}
|
|
5
42
|
/**
|
|
6
43
|
* Hard upper bound on a single jsforce call. Used to wrap metadata.list /
|
|
7
44
|
* metadata.read calls in extractors so a Salesforce-side stall can't park
|
|
@@ -9,17 +46,46 @@ export const queryLimit = pLimit(5);
|
|
|
9
46
|
* Rejects with a descriptive error after `ms`; the failSoft wrapper one
|
|
10
47
|
* level up surfaces it as a skip. The underlying jsforce HTTP request may
|
|
11
48
|
* continue until libuv tears it down — we just stop waiting.
|
|
49
|
+
*
|
|
50
|
+
* Phase 1.5 W1.5-03: accepts an optional `stopSignal` cell. When the cell's
|
|
51
|
+
* `.value` flips to `true` mid-race, the timer is cleared and the returned
|
|
52
|
+
* promise rejects with `StopWaitingError`. The underlying jsforce request
|
|
53
|
+
* is NOT cancelled — see the socket-leak limitation block at the top of
|
|
54
|
+
* this file.
|
|
12
55
|
*/
|
|
13
|
-
export function withTimeout(p, ms, label) {
|
|
56
|
+
export function withTimeout(p, ms, label, stopSignal) {
|
|
57
|
+
const signal = resolveStopSignal(stopSignal);
|
|
14
58
|
return new Promise((resolve, reject) => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
59
|
+
let settled = false;
|
|
60
|
+
const finish = (fn) => {
|
|
61
|
+
if (settled)
|
|
62
|
+
return;
|
|
63
|
+
settled = true;
|
|
64
|
+
if (timeoutTimer !== undefined)
|
|
65
|
+
clearTimeout(timeoutTimer);
|
|
66
|
+
if (pollTimer !== undefined)
|
|
67
|
+
clearInterval(pollTimer);
|
|
68
|
+
fn();
|
|
69
|
+
};
|
|
70
|
+
const timeoutTimer = setTimeout(() => finish(() => reject(new Error(`${label} timeout (${ms}ms)`))), ms);
|
|
71
|
+
// Stop-waiting poller. Only wired when a signal is in scope — otherwise
|
|
72
|
+
// we keep the original two-promise race and pay zero extra timer cost.
|
|
73
|
+
let pollTimer;
|
|
74
|
+
if (signal) {
|
|
75
|
+
// Fast-path: signal already set at entry. Reject on next tick so the
|
|
76
|
+
// returned promise is well-formed (no synchronous reject before
|
|
77
|
+
// listeners attach).
|
|
78
|
+
if (signal.value) {
|
|
79
|
+
queueMicrotask(() => finish(() => reject(new StopWaitingError(label))));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
pollTimer = setInterval(() => {
|
|
83
|
+
if (signal.value)
|
|
84
|
+
finish(() => reject(new StopWaitingError(label)));
|
|
85
|
+
}, STOP_WAITING_POLL_MS);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
p.then((v) => finish(() => resolve(v)), (e) => finish(() => reject(e)));
|
|
23
89
|
});
|
|
24
90
|
}
|
|
25
91
|
/** Per-call ceilings — kept here so all extractors apply them consistently.
|
|
@@ -47,8 +113,8 @@ export const METADATA_DESCRIBE_TIMEOUT_MS = 60_000;
|
|
|
47
113
|
* with a SOQL-flavoured withTimeout. Centralizes the timeout value so
|
|
48
114
|
* callers don't drift; centralizes the label format so failures are
|
|
49
115
|
* greppable. */
|
|
50
|
-
export function soqlWithTimeout(p, label, ms = SOQL_TIMEOUT_MS) {
|
|
51
|
-
return withTimeout(p, ms, `soql ${label}
|
|
116
|
+
export function soqlWithTimeout(p, label, ms = SOQL_TIMEOUT_MS, stopSignal) {
|
|
117
|
+
return withTimeout(p, ms, `soql ${label}`, stopSignal);
|
|
52
118
|
}
|
|
53
119
|
/**
|
|
54
120
|
* Resilient metadata.read for a batch of items, with adaptive splitting on
|
|
@@ -68,9 +134,39 @@ const MAX_BISECT_DEPTH = (() => {
|
|
|
68
134
|
const env = Number.parseInt(process.env.SFGRAPH_BISECT_MAX_DEPTH ?? "", 10);
|
|
69
135
|
return Number.isFinite(env) && env > 0 ? env : 6;
|
|
70
136
|
})();
|
|
137
|
+
/**
|
|
138
|
+
* Maximum items per `metadata.read` Salesforce SOAP call. The platform docs
|
|
139
|
+
* cap this at 10 — passing more makes jsforce either error or silently
|
|
140
|
+
* truncate depending on version. Most callers already hand-chunk at 10
|
|
141
|
+
* (see extractors/generic-metadata, flow, integration); this constant
|
|
142
|
+
* centralises that value and lets readMetadataBatchAdaptive enforce it
|
|
143
|
+
* defensively for callers that don't.
|
|
144
|
+
*
|
|
145
|
+
* NOTE: The Salesforce Composite REST API allows 25 subrequests per call,
|
|
146
|
+
* but that's a different API (REST, not SOAP Metadata) which sfgraph does
|
|
147
|
+
* not currently use. Don't conflate the two — bumping this to 25 against
|
|
148
|
+
* the Metadata SOAP path is silently broken on real orgs.
|
|
149
|
+
*/
|
|
150
|
+
export const METADATA_READ_BATCH_SIZE = (() => {
|
|
151
|
+
const env = Number.parseInt(process.env.SFGRAPH_METADATA_READ_CHUNK_SIZE ?? "", 10);
|
|
152
|
+
return Number.isFinite(env) && env > 0 && env <= 10 ? env : 10;
|
|
153
|
+
})();
|
|
71
154
|
export async function readMetadataBatchAdaptive(conn, type, items, depth = 0) {
|
|
72
155
|
if (items.length === 0)
|
|
73
156
|
return [];
|
|
157
|
+
// Pre-chunk to the platform's per-call ceiling before doing anything else.
|
|
158
|
+
// When the caller passes >10 items, run them as independent scheduled
|
|
159
|
+
// calls (the Bottleneck metadata pool bounds concurrency); on failure
|
|
160
|
+
// only the failing sub-chunk bisects, so an oversized happy-path batch
|
|
161
|
+
// doesn't drag healthy peers into the bisection cascade.
|
|
162
|
+
if (depth === 0 && items.length > METADATA_READ_BATCH_SIZE) {
|
|
163
|
+
const chunks = [];
|
|
164
|
+
for (let i = 0; i < items.length; i += METADATA_READ_BATCH_SIZE) {
|
|
165
|
+
chunks.push(items.slice(i, i + METADATA_READ_BATCH_SIZE));
|
|
166
|
+
}
|
|
167
|
+
const partials = await Promise.all(chunks.map((c) => readMetadataBatchAdaptive(conn, type, c, 0)));
|
|
168
|
+
return partials.flat();
|
|
169
|
+
}
|
|
74
170
|
try {
|
|
75
171
|
const raw = await scheduleMetadata(() => withTimeout(conn.metadata.read(type, items.map((i) => i.fullName)), METADATA_READ_TIMEOUT_MS, `metadata.read ${type}`));
|
|
76
172
|
const arr = Array.isArray(raw) ? raw : raw ? [raw] : [];
|
|
@@ -104,6 +200,67 @@ export async function readMetadataBatchAdaptive(conn, type, items, depth = 0) {
|
|
|
104
200
|
return [...left, ...right];
|
|
105
201
|
}
|
|
106
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Wrap a Bottleneck-bound factory with stop-waiting semantics.
|
|
205
|
+
*
|
|
206
|
+
* Two distinct fast paths the caller sees:
|
|
207
|
+
*
|
|
208
|
+
* (1) Signal flips while the job is still QUEUED in Bottleneck. The
|
|
209
|
+
* outer race rejects with StopWaitingError quickly; when Bottleneck
|
|
210
|
+
* eventually dequeues the wrapped factory it sees `signal.value` and
|
|
211
|
+
* returns a no-op rejected promise WITHOUT executing the user's
|
|
212
|
+
* callable. No HTTP fires. The queue slot is released cleanly.
|
|
213
|
+
*
|
|
214
|
+
* (2) Signal flips while the job is EXECUTING (HTTP in flight). The
|
|
215
|
+
* outer race rejects with StopWaitingError; the underlying jsforce
|
|
216
|
+
* request continues running until network-layer timeout. This is
|
|
217
|
+
* the documented socket leak. The caller-side Promise reference is
|
|
218
|
+
* released so the merger's `pending` Map can drop the iterator.
|
|
219
|
+
*
|
|
220
|
+
* Bottleneck 2.19.x does not expose a per-job `.cancel()` — see d.ts:602+.
|
|
221
|
+
* Implementing pool-level cancel would require either using
|
|
222
|
+
* Bottleneck.JobOptions's `expiration` (a real wall-clock timeout, not a
|
|
223
|
+
* runtime signal) or stopping the entire pool (`stop()`), neither of which
|
|
224
|
+
* is appropriate here. The pre-execution flag-check is the cleanest
|
|
225
|
+
* surface within the library's actual API.
|
|
226
|
+
*/
|
|
227
|
+
function wrapScheduled(pool, fn, stopSignal, label) {
|
|
228
|
+
if (!stopSignal)
|
|
229
|
+
return pool.schedule(fn);
|
|
230
|
+
const guarded = () => {
|
|
231
|
+
// Pre-execution gate. If the signal was flipped while we were queued,
|
|
232
|
+
// do not fire the underlying call at all. This is the clean queue-
|
|
233
|
+
// cancel path documented in the W1.5-03 plan section.
|
|
234
|
+
if (stopSignal.value)
|
|
235
|
+
return Promise.reject(new StopWaitingError(label));
|
|
236
|
+
return fn();
|
|
237
|
+
};
|
|
238
|
+
const inner = pool.schedule(guarded);
|
|
239
|
+
// Caller-side race: reject quickly when the signal flips, regardless of
|
|
240
|
+
// whether the job is queued or executing. Mirrors withTimeout's poller.
|
|
241
|
+
return new Promise((resolve, reject) => {
|
|
242
|
+
let settled = false;
|
|
243
|
+
const finish = (fn2) => {
|
|
244
|
+
if (settled)
|
|
245
|
+
return;
|
|
246
|
+
settled = true;
|
|
247
|
+
if (pollTimer !== undefined)
|
|
248
|
+
clearInterval(pollTimer);
|
|
249
|
+
fn2();
|
|
250
|
+
};
|
|
251
|
+
let pollTimer;
|
|
252
|
+
if (stopSignal.value) {
|
|
253
|
+
queueMicrotask(() => finish(() => reject(new StopWaitingError(label))));
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
pollTimer = setInterval(() => {
|
|
257
|
+
if (stopSignal.value)
|
|
258
|
+
finish(() => reject(new StopWaitingError(label)));
|
|
259
|
+
}, STOP_WAITING_POLL_MS);
|
|
260
|
+
}
|
|
261
|
+
inner.then((v) => finish(() => resolve(v)), (e) => finish(() => reject(e)));
|
|
262
|
+
});
|
|
263
|
+
}
|
|
107
264
|
function parseRetryAfter(err) {
|
|
108
265
|
if (!err || typeof err !== "object")
|
|
109
266
|
return null;
|
|
@@ -181,6 +338,23 @@ function envOverrides() {
|
|
|
181
338
|
* Concurrency resolution order: explicit `overrides` arg > `SFGRAPH_*_POOL`
|
|
182
339
|
* env vars > {@link DEFAULT_POOL_CONCURRENCY}.
|
|
183
340
|
*/
|
|
341
|
+
/** Per-pool reservoir budget and refill cadence (200 calls / 10s ≈ 20 req/s). */
|
|
342
|
+
const RESERVOIR_SIZE = 200;
|
|
343
|
+
const RESERVOIR_REFILL_MS = 10_000;
|
|
344
|
+
/**
|
|
345
|
+
* Refill a pool's reservoir to {@link RESERVOIR_SIZE} on a self-managed timer.
|
|
346
|
+
* Replaces Bottleneck's built-in `reservoirRefreshInterval`, which is
|
|
347
|
+
* permanently disarmed by any `updateSettings()` call in bottleneck@2.19.5
|
|
348
|
+
* (the cause of a full-run deadlock: reservoir stuck at 0, all API calls
|
|
349
|
+
* queued forever). Setting the absolute reservoir value mirrors refresh
|
|
350
|
+
* semantics; the timer is unref'd so it never keeps the process alive.
|
|
351
|
+
*/
|
|
352
|
+
function startReservoirRefill(pool) {
|
|
353
|
+
const timer = setInterval(() => {
|
|
354
|
+
void pool.updateSettings({ reservoir: RESERVOIR_SIZE });
|
|
355
|
+
}, RESERVOIR_REFILL_MS);
|
|
356
|
+
timer.unref?.();
|
|
357
|
+
}
|
|
184
358
|
export function createRateLimitPools(overrides = {}) {
|
|
185
359
|
const env = envOverrides();
|
|
186
360
|
const toolingConc = overrides.tooling ?? env.tooling ?? DEFAULT_POOL_CONCURRENCY.tooling;
|
|
@@ -195,41 +369,49 @@ export function createRateLimitPools(overrides = {}) {
|
|
|
195
369
|
// 200/10s = 20 req/sec aligns the reservoir with maxConcurrent + typical
|
|
196
370
|
// 0.5–2s call latency. minTime: 0 lets maxConcurrent be the sole
|
|
197
371
|
// parallelism bound (it was the binding constraint anyway).
|
|
372
|
+
//
|
|
373
|
+
// NB: we do NOT use Bottleneck's built-in `reservoirRefreshAmount/Interval`.
|
|
374
|
+
// In bottleneck@2.19.5 any later `updateSettings()` call (e.g. the
|
|
375
|
+
// maxConcurrent override applied by configureDefaultPools at ingest start)
|
|
376
|
+
// PERMANENTLY disarms the built-in refresh timer — the reservoir drains to 0
|
|
377
|
+
// and never refills, deadlocking the whole fan-out (every queued API call
|
|
378
|
+
// waits forever; sources then wedge on first-yield/inactivity). We instead
|
|
379
|
+
// refill the reservoir on our own interval (see startReservoirRefill), which
|
|
380
|
+
// is immune to updateSettings. Verified against the live PLDT org.
|
|
198
381
|
const toolingPool = new Bottleneck({
|
|
199
382
|
maxConcurrent: toolingConc,
|
|
200
383
|
minTime: 0,
|
|
201
|
-
reservoir:
|
|
202
|
-
reservoirRefreshAmount: 200,
|
|
203
|
-
reservoirRefreshInterval: 10_000,
|
|
384
|
+
reservoir: RESERVOIR_SIZE,
|
|
204
385
|
});
|
|
205
386
|
const metadataPool = new Bottleneck({
|
|
206
387
|
maxConcurrent: metadataConc,
|
|
207
388
|
minTime: 0,
|
|
208
|
-
reservoir:
|
|
209
|
-
reservoirRefreshAmount: 200,
|
|
210
|
-
reservoirRefreshInterval: 10_000,
|
|
389
|
+
reservoir: RESERVOIR_SIZE,
|
|
211
390
|
});
|
|
212
391
|
const dataPool = new Bottleneck({
|
|
213
392
|
maxConcurrent: dataConc,
|
|
214
393
|
minTime: 0,
|
|
215
|
-
reservoir:
|
|
216
|
-
reservoirRefreshAmount: 200,
|
|
217
|
-
reservoirRefreshInterval: 10_000,
|
|
394
|
+
reservoir: RESERVOIR_SIZE,
|
|
218
395
|
});
|
|
219
|
-
for (const p of [toolingPool, metadataPool, dataPool])
|
|
396
|
+
for (const p of [toolingPool, metadataPool, dataPool]) {
|
|
220
397
|
attachRetryHandler(p);
|
|
398
|
+
startReservoirRefill(p);
|
|
399
|
+
}
|
|
221
400
|
return {
|
|
222
401
|
toolingPool,
|
|
223
402
|
metadataPool,
|
|
224
403
|
dataPool,
|
|
225
|
-
scheduleQuery(fn) {
|
|
226
|
-
|
|
404
|
+
scheduleQuery(fn, stopSignal) {
|
|
405
|
+
const sig = resolveStopSignal(stopSignal);
|
|
406
|
+
return wrapScheduled(toolingPool, () => queryLimit(fn), sig, "scheduleQuery");
|
|
227
407
|
},
|
|
228
|
-
scheduleMetadata(fn) {
|
|
229
|
-
|
|
408
|
+
scheduleMetadata(fn, stopSignal) {
|
|
409
|
+
const sig = resolveStopSignal(stopSignal);
|
|
410
|
+
return wrapScheduled(metadataPool, fn, sig, "scheduleMetadata");
|
|
230
411
|
},
|
|
231
|
-
scheduleData(fn) {
|
|
232
|
-
|
|
412
|
+
scheduleData(fn, stopSignal) {
|
|
413
|
+
const sig = resolveStopSignal(stopSignal);
|
|
414
|
+
return wrapScheduled(dataPool, fn, sig, "scheduleData");
|
|
233
415
|
},
|
|
234
416
|
};
|
|
235
417
|
}
|
|
@@ -245,27 +427,82 @@ export const dataPool = defaultPools.dataPool;
|
|
|
245
427
|
*/
|
|
246
428
|
export const limiter = toolingPool;
|
|
247
429
|
/** Helper that runs a single SOQL/Tooling callable through both gates. */
|
|
248
|
-
export function scheduleQuery(fn) {
|
|
249
|
-
return defaultPools.scheduleQuery(fn);
|
|
430
|
+
export function scheduleQuery(fn, stopSignal) {
|
|
431
|
+
return defaultPools.scheduleQuery(fn, stopSignal);
|
|
250
432
|
}
|
|
251
433
|
/** Schedule a Metadata API call (list/read/retrieve/deploy). */
|
|
252
|
-
export function scheduleMetadata(fn) {
|
|
253
|
-
return defaultPools.scheduleMetadata(fn);
|
|
434
|
+
export function scheduleMetadata(fn, stopSignal) {
|
|
435
|
+
return defaultPools.scheduleMetadata(fn, stopSignal);
|
|
254
436
|
}
|
|
255
437
|
/** Schedule a SObject SOQL / Bulk query (Vlocity, CMDT, generic records). */
|
|
256
|
-
export function scheduleData(fn) {
|
|
257
|
-
return defaultPools.scheduleData(fn);
|
|
438
|
+
export function scheduleData(fn, stopSignal) {
|
|
439
|
+
return defaultPools.scheduleData(fn, stopSignal);
|
|
440
|
+
}
|
|
441
|
+
/** Detect errors that should trigger a smaller-batch retry rather than
|
|
442
|
+
* failing the whole call. Tries the canonical jsforce error shape first
|
|
443
|
+
* (`statusCode` / `errorCode`) then falls back to message matching. */
|
|
444
|
+
export function isRebatchableSoqlError(err) {
|
|
445
|
+
const e = err;
|
|
446
|
+
if (e?.statusCode === 414 || e?.statusCode === 431)
|
|
447
|
+
return true;
|
|
448
|
+
if (e?.errorCode === "URI_TOO_LONG" || e?.errorCode === "REQUEST_HEADER_FIELDS_TOO_LARGE") {
|
|
449
|
+
return true;
|
|
450
|
+
}
|
|
451
|
+
const msg = (e?.message ?? String(err)).toLowerCase();
|
|
452
|
+
if (msg.includes("uri too long") || msg.includes("414"))
|
|
453
|
+
return true;
|
|
454
|
+
if (msg.includes("request header fields too large") || msg.includes("431"))
|
|
455
|
+
return true;
|
|
456
|
+
if (msg.includes("malformed_query") && msg.includes("characters"))
|
|
457
|
+
return true;
|
|
458
|
+
return false;
|
|
258
459
|
}
|
|
259
460
|
/**
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
* constructor. Bottleneck supports live updates via `updateSettings`.
|
|
265
|
-
*
|
|
266
|
-
* Returns the concurrency caps actually applied (after merging defaults +
|
|
267
|
-
* env vars + overrides), so callers can log what the user got.
|
|
461
|
+
* Execute `template` against `ids`, splitting the ID set on a rebatchable
|
|
462
|
+
* error or when it exceeds `rebatchAt`. Returns the merged record set.
|
|
463
|
+
* Throws only on non-rebatchable errors (the caller's existing failSoft /
|
|
464
|
+
* onError plumbing handles those).
|
|
268
465
|
*/
|
|
466
|
+
export async function runSoqlInRebatchable(opts) {
|
|
467
|
+
const rebatchAt = opts.rebatchAt ?? 300;
|
|
468
|
+
const maxDepth = opts.maxDepth ?? 6;
|
|
469
|
+
const scheduler = opts.scheduler ?? scheduleQuery;
|
|
470
|
+
const timeoutMs = opts.timeoutMs ?? SOQL_TIMEOUT_MS;
|
|
471
|
+
if (opts.ids.length === 0)
|
|
472
|
+
return [];
|
|
473
|
+
if (!opts.template.includes("${IDS}")) {
|
|
474
|
+
throw new Error(`runSoqlInRebatchable(${opts.label}): template must contain \`\${IDS}\` placeholder`);
|
|
475
|
+
}
|
|
476
|
+
const runSlice = async (slice, depth) => {
|
|
477
|
+
const idList = slice.join(",");
|
|
478
|
+
const soql = opts.template.replace("${IDS}", idList);
|
|
479
|
+
try {
|
|
480
|
+
const res = await scheduler(() => withTimeout(opts.runner(soql), timeoutMs, `soql ${opts.label}`));
|
|
481
|
+
return res?.records ?? [];
|
|
482
|
+
}
|
|
483
|
+
catch (e) {
|
|
484
|
+
if (slice.length === 1 || depth >= maxDepth)
|
|
485
|
+
throw e;
|
|
486
|
+
if (!isRebatchableSoqlError(e))
|
|
487
|
+
throw e;
|
|
488
|
+
// Halve and recurse.
|
|
489
|
+
const mid = Math.ceil(slice.length / 2);
|
|
490
|
+
const [left, right] = await Promise.all([
|
|
491
|
+
runSlice(slice.slice(0, mid), depth + 1),
|
|
492
|
+
runSlice(slice.slice(mid), depth + 1),
|
|
493
|
+
]);
|
|
494
|
+
return [...left, ...right];
|
|
495
|
+
}
|
|
496
|
+
};
|
|
497
|
+
// Pre-chunk to rebatchAt. Each chunk runs through the scheduler
|
|
498
|
+
// independently so the pool's concurrency cap controls fan-out.
|
|
499
|
+
const chunks = [];
|
|
500
|
+
for (let i = 0; i < opts.ids.length; i += rebatchAt) {
|
|
501
|
+
chunks.push(opts.ids.slice(i, i + rebatchAt));
|
|
502
|
+
}
|
|
503
|
+
const results = await Promise.all(chunks.map((c) => runSlice(c, 0)));
|
|
504
|
+
return results.flat();
|
|
505
|
+
}
|
|
269
506
|
export async function configureDefaultPools(overrides = {}) {
|
|
270
507
|
const env = envOverrides();
|
|
271
508
|
const tooling = overrides.tooling ?? env.tooling ?? DEFAULT_POOL_CONCURRENCY.tooling;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/extractors/live-org/rate-limit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/extractors/live-org/rate-limit.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,5 +17,5 @@ export declare function loadVlocityRegistry(): Record<string, VlocityTypeDef>;
|
|
|
17
17
|
* emit zero edges, so Vlocity nodes exist in the graph but have no
|
|
18
18
|
* relationships.
|
|
19
19
|
*/
|
|
20
|
-
export declare function iterVlocityRecords(conn: any, caps: OrgCapabilities, orgId: string): AsyncIterable<RawMember>;
|
|
20
|
+
export declare function iterVlocityRecords(conn: any, caps: OrgCapabilities, orgId: string, onError?: (label: string, err: Error) => void): AsyncIterable<RawMember>;
|
|
21
21
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/extractors/live-org/vlocity/runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;CACf;AAYD,mEAAmE;AACnE,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAgBpE;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/extractors/live-org/vlocity/runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,WAAW,cAAc;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;CACf;AAYD,mEAAmE;AACnE,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAgBpE;AAgMD;;;;;;;;;GASG;AACH,wBAAuB,kBAAkB,CACvC,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,GAC5C,aAAa,CAAC,SAAS,CAAC,CA8G1B"}
|
|
@@ -92,10 +92,27 @@ const CHILD_FETCHES = {
|
|
|
92
92
|
parentField: "OmniScriptId",
|
|
93
93
|
attachAs: "elements",
|
|
94
94
|
},
|
|
95
|
+
// DRMapItem stores field mappings structurally, NOT as Input/OutputField:
|
|
96
|
+
// one side names a real SObject + field (Interface* for Extract, Domain*
|
|
97
|
+
// for Load, Lookup* for lookups), the other is a JSON/XML path. Two bugs
|
|
98
|
+
// here, both only surfaced by real DRMapItem data:
|
|
99
|
+
// 1. The old query selected `InputFieldName__c`/`OutputFieldName__c` —
|
|
100
|
+
// fields that do NOT exist on DRMapItem__c — so it threw INVALID_FIELD
|
|
101
|
+
// and every DataRaptor came back childless. These are the real columns.
|
|
102
|
+
// 2. DRMapItem__c has NO `DRBundleId__c` field in vlocity_cmt; the old
|
|
103
|
+
// `WHERE DRBundleId__c IN (...)` ALSO threw INVALID_FIELD. The child
|
|
104
|
+
// correlates to its parent by NAME (DRMapItem.Name === DRBundle.Name),
|
|
105
|
+
// so we filter and group by Name (linkBy: "Name").
|
|
95
106
|
DataRaptor: {
|
|
96
|
-
soql: (ns,
|
|
97
|
-
|
|
98
|
-
|
|
107
|
+
soql: (ns, names) => `SELECT Id, Name, ${ns}__InterfaceObjectName__c, ${ns}__InterfaceFieldAPIName__c, ${ns}__DomainObjectAPIName__c, ${ns}__DomainObjectFieldAPIName__c, ${ns}__LookupDomainObjectName__c, ${ns}__LookupDomainObjectFieldName__c, ${ns}__Formula__c, ${ns}__FormulaConverted__c, ${ns}__TransformValuesMap__c FROM ${ns}__DRMapItem__c WHERE Name IN (${names})`,
|
|
108
|
+
// Children carry the bundle name in their own `Name`; group on it and
|
|
109
|
+
// attach to the parent whose Name matches.
|
|
110
|
+
parentField: "Name",
|
|
111
|
+
linkBy: "Name",
|
|
112
|
+
// DataRaptorParser reads dp.elements (shared shape with the OmniScript /
|
|
113
|
+
// IntegrationProcedure element walk); attaching under any other key left
|
|
114
|
+
// the parser looking at an empty array.
|
|
115
|
+
attachAs: "elements",
|
|
99
116
|
},
|
|
100
117
|
};
|
|
101
118
|
/** Long-text fields that need to be SELECTed explicitly per-type because
|
|
@@ -125,7 +142,7 @@ function enrichSoql(baseSoql, vdpType, namespace) {
|
|
|
125
142
|
* zero element nodes and emits zero IP_CALLS_DR / OS_USES_DR / DR_READS_FIELD
|
|
126
143
|
* edges — Vlocity nodes exist in isolation.
|
|
127
144
|
*/
|
|
128
|
-
async function fetchChildrenByParent(conn, vdpType, namespace, parentIds) {
|
|
145
|
+
async function fetchChildrenByParent(conn, vdpType, namespace, parentIds, onError) {
|
|
129
146
|
const byParent = new Map();
|
|
130
147
|
const spec = CHILD_FETCHES[vdpType];
|
|
131
148
|
if (!spec || parentIds.length === 0)
|
|
@@ -139,7 +156,14 @@ async function fetchChildrenByParent(conn, vdpType, namespace, parentIds) {
|
|
|
139
156
|
try {
|
|
140
157
|
res = (await scheduleQuery(() => soqlWithTimeout(conn.query(soql), `vlocity ${vdpType} children (${namespace})`)));
|
|
141
158
|
}
|
|
142
|
-
catch {
|
|
159
|
+
catch (e) {
|
|
160
|
+
// Child fetch failed for this chunk — could be schema drift (e.g.
|
|
161
|
+
// DRMapItem.DRBundleId__c removed in newer vlocity_cmt packages) or
|
|
162
|
+
// a transient pool/socket failure. Surface via onError so callers can
|
|
163
|
+
// distinguish "feature absent" from "schema drift" instead of seeing
|
|
164
|
+
// identical empty output. Continue to the next chunk — partial
|
|
165
|
+
// children are still useful.
|
|
166
|
+
onError?.(`vlocity:${vdpType}:children:${namespace}`, e);
|
|
143
167
|
continue;
|
|
144
168
|
}
|
|
145
169
|
for (const r of res?.records ?? []) {
|
|
@@ -164,7 +188,7 @@ async function fetchChildrenByParent(conn, vdpType, namespace, parentIds) {
|
|
|
164
188
|
* emit zero edges, so Vlocity nodes exist in the graph but have no
|
|
165
189
|
* relationships.
|
|
166
190
|
*/
|
|
167
|
-
export async function* iterVlocityRecords(conn, caps, orgId) {
|
|
191
|
+
export async function* iterVlocityRecords(conn, caps, orgId, onError) {
|
|
168
192
|
const namespaces = caps.vlocityNamespaces ?? [];
|
|
169
193
|
if (namespaces.length === 0)
|
|
170
194
|
return;
|
|
@@ -182,17 +206,26 @@ export async function* iterVlocityRecords(conn, caps, orgId) {
|
|
|
182
206
|
try {
|
|
183
207
|
res = (await scheduleQuery(() => soqlWithTimeout(conn.query(soql), `vlocity ${t.typeDef.vlocityDataPackType} (${t.namespace})`)));
|
|
184
208
|
}
|
|
185
|
-
catch {
|
|
186
|
-
// Per-type
|
|
187
|
-
// (different Vlocity industry namespaces install different
|
|
188
|
-
// types
|
|
189
|
-
//
|
|
209
|
+
catch (e) {
|
|
210
|
+
// Per-type query failed. Common causes: type doesn't exist in this
|
|
211
|
+
// org (different Vlocity industry namespaces install different
|
|
212
|
+
// DataPack types — INVALID_TYPE / sObject not supported), socket
|
|
213
|
+
// timeout, schema drift. Report via onError so the caller can
|
|
214
|
+
// distinguish "type genuinely absent" from "type present but query
|
|
215
|
+
// wedged" — these used to look identical (empty output) which made
|
|
216
|
+
// schema-drift bugs invisible.
|
|
217
|
+
onError?.(`vlocity:${t.typeDef.vlocityDataPackType}:${t.namespace}`, e);
|
|
190
218
|
return { idx, t, records: [], childrenByParent: new Map() };
|
|
191
219
|
}
|
|
192
220
|
const records = res?.records ?? [];
|
|
193
221
|
const childSpec = CHILD_FETCHES[t.typeDef.vlocityDataPackType];
|
|
222
|
+
// Collect the parent keys the children correlate to — Id for FK-linked
|
|
223
|
+
// children (Element.OmniScriptId), Name for name-linked ones (DRMapItem).
|
|
224
|
+
const linkBy = childSpec?.linkBy ?? "Id";
|
|
194
225
|
const childrenByParent = childSpec
|
|
195
|
-
? await fetchChildrenByParent(conn, t.typeDef.vlocityDataPackType, t.namespace, records
|
|
226
|
+
? await fetchChildrenByParent(conn, t.typeDef.vlocityDataPackType, t.namespace, records
|
|
227
|
+
.map((r) => String((linkBy === "Name" ? r.Name : r.Id) ?? ""))
|
|
228
|
+
.filter((k) => k.length > 0), onError)
|
|
196
229
|
: new Map();
|
|
197
230
|
return { idx, t, records, childrenByParent };
|
|
198
231
|
};
|
|
@@ -225,8 +258,10 @@ export async function* iterVlocityRecords(conn, caps, orgId) {
|
|
|
225
258
|
for (const r of records) {
|
|
226
259
|
const name = String(r.Name ?? r.Id ?? "");
|
|
227
260
|
const normalised = normaliseRow(r, t.namespace);
|
|
228
|
-
if (childSpec
|
|
229
|
-
|
|
261
|
+
if (childSpec) {
|
|
262
|
+
// Match children by the same key the fetch grouped on (Id or Name).
|
|
263
|
+
const parentKey = String((childSpec.linkBy === "Name" ? r.Name : r.Id) ?? "");
|
|
264
|
+
const kids = parentKey ? childrenByParent.get(parentKey) : undefined;
|
|
230
265
|
if (kids && kids.length > 0)
|
|
231
266
|
normalised[childSpec.attachAs] = kids;
|
|
232
267
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/extractors/live-org/vlocity/runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/extractors/live-org/vlocity/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from "./embedding/index.js";
|
|
|
7
7
|
export type { MetadataSource, MemberRef, RawMember, } from "./extractors/interfaces/metadata-source.js";
|
|
8
8
|
export { FilesystemMetadataSource } from "./extractors/filesystem/index.js";
|
|
9
9
|
export * as render from "./render/mermaid/index.js";
|
|
10
|
+
export { emitSarif, lintSarifReport, type SarifReport } from "./render/sarif.js";
|
|
10
11
|
export * as analyze from "./analyze/index.js";
|
|
11
12
|
export { auditDanglingEdges, deleteDanglingEdges, type AuditResult, type AuditOpts, type DanglingEdgeSample, } from "./analyze/audit-graph.js";
|
|
12
13
|
export type { ToolResponse } from "./tools/types.js";
|