@eagleoutice/flowr 2.6.0 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -45
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +3 -4
- package/abstract-interpretation/data-frame/absint-visitor.js +16 -11
- package/abstract-interpretation/data-frame/dataframe-domain.d.ts +18 -12
- package/abstract-interpretation/data-frame/dataframe-domain.js +25 -13
- package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/access-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/arguments.d.ts +1 -10
- package/abstract-interpretation/data-frame/mappers/arguments.js +0 -7
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +4 -5
- package/abstract-interpretation/data-frame/mappers/function-mapper.js +3 -4
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +0 -1
- package/abstract-interpretation/data-frame/resolve-args.d.ts +1 -1
- package/abstract-interpretation/data-frame/semantics.d.ts +3 -4
- package/abstract-interpretation/data-frame/semantics.js +171 -162
- package/abstract-interpretation/data-frame/shape-inference.d.ts +1 -4
- package/abstract-interpretation/data-frame/shape-inference.js +7 -9
- package/abstract-interpretation/domains/abstract-domain.d.ts +59 -18
- package/abstract-interpretation/domains/abstract-domain.js +74 -1
- package/abstract-interpretation/domains/bounded-set-domain.d.ts +37 -24
- package/abstract-interpretation/domains/bounded-set-domain.js +70 -47
- package/abstract-interpretation/domains/interval-domain.d.ts +33 -25
- package/abstract-interpretation/domains/interval-domain.js +109 -50
- package/abstract-interpretation/domains/lattice.d.ts +19 -11
- package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +34 -0
- package/abstract-interpretation/domains/mapped-abstract-domain.js +189 -0
- package/abstract-interpretation/domains/positive-interval-domain.d.ts +16 -12
- package/abstract-interpretation/domains/positive-interval-domain.js +20 -11
- package/abstract-interpretation/domains/product-domain.d.ts +18 -23
- package/abstract-interpretation/domains/product-domain.js +11 -19
- package/abstract-interpretation/domains/satisfiable-domain.d.ts +29 -0
- package/abstract-interpretation/domains/satisfiable-domain.js +24 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.d.ts +54 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.js +197 -0
- package/abstract-interpretation/domains/singleton-domain.d.ts +24 -19
- package/abstract-interpretation/domains/singleton-domain.js +52 -37
- package/abstract-interpretation/domains/state-abstract-domain.d.ts +8 -24
- package/abstract-interpretation/domains/state-abstract-domain.js +2 -167
- package/abstract-interpretation/normalized-ast-fold.d.ts +1 -7
- package/abstract-interpretation/normalized-ast-fold.js +0 -5
- package/benchmark/slicer.d.ts +3 -7
- package/benchmark/slicer.js +14 -19
- package/benchmark/stats/print.d.ts +6 -0
- package/benchmark/stats/print.js +6 -0
- package/benchmark/stats/size-of.d.ts +0 -1
- package/benchmark/stats/size-of.js +0 -1
- package/benchmark/stats/stats.d.ts +2 -2
- package/benchmark/stopwatch.d.ts +11 -13
- package/benchmark/stopwatch.js +11 -13
- package/benchmark/summarizer/first-phase/input.d.ts +6 -0
- package/benchmark/summarizer/first-phase/input.js +6 -0
- package/benchmark/summarizer/first-phase/process.d.ts +13 -1
- package/benchmark/summarizer/first-phase/process.js +12 -0
- package/benchmark/summarizer/second-phase/graph.d.ts +3 -0
- package/benchmark/summarizer/second-phase/graph.js +3 -0
- package/benchmark/summarizer/second-phase/process.d.ts +12 -0
- package/benchmark/summarizer/second-phase/process.js +12 -0
- package/benchmark/summarizer/summarizer.d.ts +1 -2
- package/cli/benchmark-app.js +0 -2
- package/cli/common/features.d.ts +7 -1
- package/cli/common/features.js +6 -0
- package/cli/common/script.d.ts +3 -1
- package/cli/common/script.js +3 -1
- package/cli/common/scripts-info.d.ts +3 -1
- package/cli/common/scripts-info.js +3 -0
- package/cli/flowr-main-options.d.ts +3 -0
- package/cli/flowr-main-options.js +3 -0
- package/cli/flowr.js +8 -4
- package/cli/repl/commands/repl-cfg.js +4 -4
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +15 -4
- package/cli/repl/commands/repl-dataflow.js +4 -4
- package/cli/repl/commands/repl-execute.d.ts +5 -1
- package/cli/repl/commands/repl-execute.js +12 -8
- package/cli/repl/commands/repl-main.d.ts +17 -14
- package/cli/repl/commands/repl-normalize.js +2 -2
- package/cli/repl/commands/repl-parse.js +4 -3
- package/cli/repl/commands/repl-query.js +18 -7
- package/cli/repl/commands/repl-quit.js +1 -1
- package/cli/repl/commands/repl-version.d.ts +1 -16
- package/cli/repl/commands/repl-version.js +2 -19
- package/cli/repl/core.d.ts +32 -14
- package/cli/repl/core.js +38 -35
- package/cli/repl/execute.d.ts +0 -2
- package/cli/repl/execute.js +0 -2
- package/cli/repl/parser/slice-query-parser.d.ts +14 -0
- package/cli/repl/parser/slice-query-parser.js +34 -0
- package/cli/repl/print-version.d.ts +6 -0
- package/cli/repl/print-version.js +8 -2
- package/cli/repl/server/compact.d.ts +8 -0
- package/cli/repl/server/compact.js +8 -0
- package/cli/repl/server/connection.d.ts +4 -3
- package/cli/repl/server/connection.js +9 -33
- package/cli/repl/server/messages/all-messages.d.ts +1 -3
- package/cli/repl/server/messages/all-messages.js +0 -1
- package/cli/repl/server/messages/message-analysis.d.ts +0 -2
- package/cli/repl/server/messages/message-hello.d.ts +1 -1
- package/cli/repl/server/messages/message-query.d.ts +1 -1
- package/cli/repl/server/messages/message-repl.d.ts +0 -1
- package/cli/repl/server/send.d.ts +6 -0
- package/cli/repl/server/send.js +6 -0
- package/cli/repl/server/server.d.ts +1 -1
- package/cli/repl/server/server.js +2 -2
- package/cli/repl/server/validate.d.ts +10 -1
- package/cli/repl/server/validate.js +9 -0
- package/cli/run-script.d.ts +1 -2
- package/cli/run-script.js +0 -1
- package/cli/script-core/statistics-core.d.ts +3 -0
- package/cli/script-core/statistics-core.js +3 -0
- package/cli/script-core/statistics-helper-core.d.ts +4 -1
- package/cli/script-core/statistics-helper-core.js +3 -0
- package/cli/script-core/summarizer-core.d.ts +3 -0
- package/cli/script-core/summarizer-core.js +3 -0
- package/cli/summarizer-app.d.ts +2 -3
- package/cli/summarizer-app.js +2 -3
- package/config.d.ts +17 -3
- package/config.js +15 -0
- package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/basic-cfg-guided-visitor.js +0 -1
- package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
- package/control-flow/control-flow-graph.d.ts +20 -12
- package/control-flow/control-flow-graph.js +16 -4
- package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
- package/control-flow/diff-cfg.d.ts +3 -5
- package/control-flow/diff-cfg.js +0 -1
- package/control-flow/extract-cfg.d.ts +3 -6
- package/control-flow/extract-cfg.js +0 -3
- package/control-flow/happens-before.d.ts +1 -1
- package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -31
- package/control-flow/semantic-cfg-guided-visitor.js +0 -28
- package/control-flow/simple-visitor.d.ts +1 -3
- package/control-flow/simple-visitor.js +0 -2
- package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/useless-loop.d.ts +0 -3
- package/control-flow/useless-loop.js +2 -5
- package/core/pipeline-executor.d.ts +8 -16
- package/core/pipeline-executor.js +9 -18
- package/core/print/dataflow-printer.d.ts +19 -0
- package/core/print/dataflow-printer.js +19 -0
- package/core/print/normalize-printer.d.ts +21 -1
- package/core/print/normalize-printer.js +20 -0
- package/core/print/parse-printer.d.ts +6 -1
- package/core/print/parse-printer.js +5 -0
- package/core/print/print.d.ts +0 -1
- package/core/print/print.js +0 -1
- package/core/print/slice-diff-ansi.d.ts +3 -0
- package/core/print/slice-diff-ansi.js +3 -0
- package/core/steps/all/core/00-parse.d.ts +1 -1
- package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
- package/core/steps/all/core/10-normalize.d.ts +3 -0
- package/core/steps/all/core/10-normalize.js +3 -0
- package/core/steps/all/core/11-normalize-tree-sitter.d.ts +4 -3
- package/core/steps/all/core/20-dataflow.d.ts +3 -1
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +29 -13
- package/core/steps/pipeline/default-pipelines.js +0 -4
- package/core/steps/pipeline/pipeline.d.ts +1 -8
- package/core/steps/pipeline/pipeline.js +1 -3
- package/core/steps/pipeline-step.d.ts +0 -1
- package/core/steps/pipeline-step.js +0 -1
- package/dataflow/cluster.d.ts +3 -0
- package/dataflow/cluster.js +3 -0
- package/dataflow/environments/append.d.ts +1 -1
- package/dataflow/environments/built-in-config.d.ts +1 -5
- package/dataflow/environments/built-in-config.js +0 -1
- package/dataflow/environments/built-in.d.ts +10 -5
- package/dataflow/environments/built-in.js +6 -1
- package/dataflow/environments/clone.d.ts +1 -1
- package/dataflow/environments/default-builtin-config.d.ts +3 -0
- package/dataflow/environments/default-builtin-config.js +12 -1
- package/dataflow/environments/diff.d.ts +11 -2
- package/dataflow/environments/diff.js +9 -0
- package/dataflow/environments/environment.d.ts +3 -3
- package/dataflow/environments/environment.js +8 -6
- package/dataflow/environments/identifier.d.ts +0 -4
- package/dataflow/environments/identifier.js +0 -1
- package/dataflow/environments/overwrite.d.ts +4 -1
- package/dataflow/environments/overwrite.js +3 -0
- package/dataflow/environments/resolve-by-name.d.ts +4 -4
- package/dataflow/environments/resolve-by-name.js +3 -2
- package/dataflow/environments/scoping.d.ts +4 -1
- package/dataflow/environments/scoping.js +3 -0
- package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
- package/dataflow/eval/resolve/alias-tracking.js +13 -14
- package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
- package/dataflow/eval/resolve/resolve.d.ts +1 -7
- package/dataflow/eval/resolve/resolve.js +3 -5
- package/dataflow/eval/values/general.d.ts +1 -3
- package/dataflow/eval/values/general.js +0 -1
- package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
- package/dataflow/eval/values/intervals/interval-constants.js +6 -0
- package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
- package/dataflow/eval/values/logical/logical-constants.js +3 -0
- package/dataflow/eval/values/r-value.d.ts +16 -1
- package/dataflow/eval/values/r-value.js +14 -0
- package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
- package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
- package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
- package/dataflow/eval/values/sets/set-constants.js +6 -0
- package/dataflow/eval/values/string/string-constants.d.ts +10 -1
- package/dataflow/eval/values/string/string-constants.js +9 -0
- package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
- package/dataflow/extractor.d.ts +5 -2
- package/dataflow/extractor.js +7 -5
- package/dataflow/fn/higher-order-function.d.ts +9 -0
- package/dataflow/fn/higher-order-function.js +75 -0
- package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
- package/dataflow/graph/dataflowgraph-builder.js +6 -23
- package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
- package/dataflow/graph/diff-dataflow-graph.js +12 -1
- package/dataflow/graph/edge.d.ts +9 -0
- package/dataflow/graph/edge.js +9 -0
- package/dataflow/graph/graph.d.ts +6 -19
- package/dataflow/graph/graph.js +4 -15
- package/dataflow/graph/invert-dfg.d.ts +3 -0
- package/dataflow/graph/invert-dfg.js +3 -0
- package/dataflow/graph/quads.d.ts +1 -1
- package/dataflow/graph/unknown-replacement.d.ts +6 -0
- package/dataflow/graph/unknown-replacement.js +6 -0
- package/dataflow/graph/unknown-side-effect.d.ts +8 -0
- package/dataflow/graph/unknown-side-effect.js +8 -0
- package/dataflow/graph/vertex.d.ts +9 -9
- package/dataflow/graph/vertex.js +9 -1
- package/dataflow/info.d.ts +9 -10
- package/dataflow/info.js +6 -1
- package/dataflow/internal/linker.d.ts +25 -9
- package/dataflow/internal/linker.js +23 -7
- package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
- package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -0
- package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.js +3 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +6 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +4 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +3 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +23 -6
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +20 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +3 -0
- package/dataflow/internal/process/functions/call/common.d.ts +11 -5
- package/dataflow/internal/process/functions/call/common.js +6 -0
- package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -0
- package/dataflow/internal/process/functions/call/default-call-handling.js +3 -0
- package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
- package/dataflow/internal/process/functions/call/known-call-handling.js +7 -0
- package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
- package/dataflow/internal/process/functions/call/named-call-handling.js +6 -0
- package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
- package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
- package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
- package/dataflow/internal/process/functions/process-argument.js +6 -0
- package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
- package/dataflow/internal/process/functions/process-parameter.js +3 -0
- package/dataflow/internal/process/process-symbol.d.ts +3 -0
- package/dataflow/internal/process/process-symbol.js +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
- package/dataflow/internal/process/process-value.d.ts +3 -0
- package/dataflow/internal/process/process-value.js +3 -0
- package/dataflow/origin/dfg-get-origin.d.ts +0 -2
- package/dataflow/origin/dfg-get-symbol-refs.d.ts +5 -7
- package/dataflow/origin/dfg-get-symbol-refs.js +6 -8
- package/dataflow/processor.d.ts +0 -1
- package/dataflow/processor.js +0 -1
- package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -0
- package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
- package/documentation/data/faq/faqs.d.ts +5 -0
- package/documentation/data/faq/faqs.js +78 -0
- package/documentation/data/faq/wiki-faq-store.d.ts +18 -0
- package/documentation/data/faq/wiki-faq-store.js +75 -0
- package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
- package/documentation/data/server/doc-data-server-messages.js +4 -63
- package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
- package/documentation/doc-util/doc-auto-gen.js +6 -0
- package/documentation/doc-util/doc-benchmarks.d.ts +12 -0
- package/documentation/doc-util/doc-benchmarks.js +12 -0
- package/documentation/doc-util/doc-cfg.d.ts +7 -1
- package/documentation/doc-util/doc-cfg.js +9 -0
- package/documentation/doc-util/doc-cli-option.d.ts +9 -0
- package/documentation/doc-util/doc-cli-option.js +9 -0
- package/documentation/doc-util/doc-code.d.ts +24 -0
- package/documentation/doc-util/doc-code.js +24 -0
- package/documentation/doc-util/doc-dfg.d.ts +7 -1
- package/documentation/doc-util/doc-dfg.js +9 -0
- package/documentation/doc-util/doc-env.d.ts +3 -0
- package/documentation/doc-util/doc-env.js +3 -0
- package/documentation/doc-util/doc-escape.d.ts +0 -1
- package/documentation/doc-util/doc-escape.js +0 -1
- package/documentation/doc-util/doc-files.d.ts +11 -0
- package/documentation/doc-util/doc-files.js +15 -4
- package/documentation/doc-util/doc-general.d.ts +6 -0
- package/documentation/doc-util/doc-general.js +6 -0
- package/documentation/doc-util/doc-normalized-ast.d.ts +7 -1
- package/documentation/doc-util/doc-normalized-ast.js +6 -0
- package/documentation/doc-util/doc-query.d.ts +15 -0
- package/documentation/doc-util/doc-query.js +17 -2
- package/documentation/doc-util/doc-repl.d.ts +6 -0
- package/documentation/doc-util/doc-repl.js +11 -2
- package/documentation/doc-util/doc-search.d.ts +15 -0
- package/documentation/doc-util/doc-search.js +17 -2
- package/documentation/doc-util/doc-server-message.d.ts +13 -1
- package/documentation/doc-util/doc-server-message.js +13 -1
- package/documentation/doc-util/doc-structure.d.ts +9 -0
- package/documentation/doc-util/doc-structure.js +10 -1
- package/documentation/doc-util/doc-types.d.ts +42 -0
- package/documentation/doc-util/doc-types.js +42 -0
- package/documentation/print-analyzer-wiki.js +4 -0
- package/documentation/print-core-wiki.d.ts +3 -0
- package/documentation/print-core-wiki.js +5 -2
- package/documentation/print-dataflow-graph-wiki.js +7 -7
- package/documentation/print-faq-wiki.js +3 -75
- package/documentation/print-interface-wiki.js +1 -1
- package/documentation/print-onboarding-wiki.js +1 -1
- package/documentation/print-query-wiki.js +24 -34
- package/documentation/print-readme.js +106 -1
- package/engines.d.ts +1 -1
- package/linter/linter-executor.d.ts +6 -3
- package/linter/linter-executor.js +3 -0
- package/linter/linter-format.d.ts +8 -0
- package/linter/linter-format.js +8 -0
- package/linter/rules/absolute-path.d.ts +3 -4
- package/linter/rules/dataframe-access-validation.d.ts +3 -4
- package/linter/rules/dataframe-access-validation.js +9 -11
- package/linter/rules/dead-code.d.ts +1 -1
- package/linter/rules/deprecated-functions.d.ts +1 -1
- package/linter/rules/file-path-validity.d.ts +1 -2
- package/linter/rules/function-finder-util.d.ts +1 -2
- package/linter/rules/naming-convention.d.ts +13 -2
- package/linter/rules/naming-convention.js +13 -1
- package/linter/rules/network-functions.d.ts +1 -1
- package/linter/rules/seeded-randomness.d.ts +1 -2
- package/linter/rules/unused-definition.d.ts +2 -3
- package/linter/rules/useless-loop.d.ts +1 -2
- package/package.json +2 -2
- package/project/cache/flowr-analyzer-cache.d.ts +8 -14
- package/project/cache/flowr-analyzer-cache.js +21 -19
- package/project/cfg-kind.d.ts +17 -0
- package/project/cfg-kind.js +22 -0
- package/project/context/abstract-flowr-analyzer-context.d.ts +4 -0
- package/project/context/flowr-analyzer-context.d.ts +9 -6
- package/project/context/flowr-analyzer-context.js +11 -0
- package/project/context/flowr-analyzer-dependencies-context.d.ts +1 -1
- package/project/context/flowr-analyzer-dependencies-context.js +4 -0
- package/project/context/flowr-analyzer-files-context.d.ts +3 -4
- package/project/context/flowr-analyzer-files-context.js +4 -0
- package/project/context/flowr-analyzer-loading-order-context.d.ts +1 -0
- package/project/context/flowr-analyzer-loading-order-context.js +6 -0
- package/project/context/flowr-file.d.ts +0 -1
- package/project/flowr-analyzer-builder.d.ts +1 -3
- package/project/flowr-analyzer-builder.js +5 -6
- package/project/flowr-analyzer.d.ts +42 -32
- package/project/flowr-analyzer.js +14 -8
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +1 -1
- package/project/plugins/file-plugins/flowr-description-file.d.ts +1 -3
- package/project/plugins/file-plugins/flowr-description-file.js +0 -1
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
- package/queries/base-query-format.d.ts +2 -2
- package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
- package/queries/catalog/call-context-query/call-context-query-executor.js +5 -1
- package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +11 -2
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +9 -0
- package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
- package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
- package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
- package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
- package/queries/catalog/config-query/config-query-executor.js +3 -0
- package/queries/catalog/config-query/config-query-format.d.ts +6 -3
- package/queries/catalog/config-query/config-query-format.js +13 -16
- package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-executor.js +5 -1
- package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
- package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
- package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-format.js +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
- package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
- package/queries/catalog/df-shape-query/df-shape-query-format.js +24 -5
- package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +3 -0
- package/queries/catalog/happens-before-query/happens-before-query-executor.js +3 -0
- package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
- package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
- package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
- package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +6 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +48 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +22 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.js +32 -0
- package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
- package/queries/catalog/linter-query/linter-query-executor.js +4 -0
- package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
- package/queries/catalog/linter-query/linter-query-format.js +67 -0
- package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
- package/queries/catalog/location-map-query/location-map-query-executor.js +5 -1
- package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
- package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
- package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-executor.js +6 -0
- package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-format.js +17 -1
- package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
- package/queries/catalog/project-query/project-query-executor.js +3 -0
- package/queries/catalog/project-query/project-query-format.d.ts +1 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
- package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
- package/queries/catalog/search-query/search-query-executor.js +3 -0
- package/queries/catalog/search-query/search-query-format.d.ts +1 -1
- package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-executor.js +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
- package/queries/catalog/static-slice-query/static-slice-query-format.js +17 -0
- package/queries/query-print.d.ts +20 -4
- package/queries/query-print.js +18 -2
- package/queries/query.d.ts +91 -53
- package/queries/query.js +37 -23
- package/queries/virtual-query/virtual-queries.d.ts +1 -2
- package/r-bridge/data/get.d.ts +6 -0
- package/r-bridge/data/get.js +6 -0
- package/r-bridge/lang-4.x/ast/model/collect.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/collect.js +0 -1
- package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
- package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +6 -7
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +6 -6
- package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
- package/r-bridge/lang-4.x/ast/model/type.d.ts +4 -5
- package/r-bridge/lang-4.x/ast/model/type.js +4 -5
- package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +4 -5
- package/r-bridge/lang-4.x/ast/parser/json/parser.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
- package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
- package/r-bridge/lang-4.x/convert-values.js +12 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +17 -0
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +13 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +48 -19
- package/r-bridge/parser.d.ts +30 -2
- package/r-bridge/retriever.d.ts +16 -1
- package/r-bridge/retriever.js +15 -0
- package/r-bridge/shell-executor.d.ts +3 -3
- package/r-bridge/shell-executor.js +6 -1
- package/r-bridge/shell.d.ts +24 -23
- package/r-bridge/shell.js +37 -31
- package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
- package/reconstruct/auto-select/magic-comments.d.ts +1 -2
- package/reconstruct/auto-select/magic-comments.js +1 -2
- package/reconstruct/reconstruct.d.ts +1 -3
- package/reconstruct/reconstruct.js +0 -2
- package/search/flowr-search-builder.d.ts +12 -5
- package/search/flowr-search-builder.js +7 -2
- package/search/flowr-search-executor.d.ts +3 -3
- package/search/flowr-search-filters.d.ts +14 -1
- package/search/flowr-search-filters.js +13 -0
- package/search/flowr-search-printer.d.ts +6 -0
- package/search/flowr-search-printer.js +6 -0
- package/search/flowr-search-traverse.d.ts +1 -1
- package/search/flowr-search.d.ts +3 -3
- package/search/search-executor/search-enrichers.d.ts +9 -6
- package/search/search-executor/search-enrichers.js +5 -1
- package/search/search-executor/search-generators.d.ts +19 -10
- package/search/search-executor/search-generators.js +49 -2
- package/search/search-executor/search-mappers.d.ts +8 -5
- package/search/search-executor/search-mappers.js +3 -0
- package/search/search-executor/search-transformer.d.ts +19 -16
- package/search/search-executor/search-transformer.js +3 -0
- package/slicing/criterion/collect-all.d.ts +10 -10
- package/slicing/criterion/parse.d.ts +4 -2
- package/slicing/criterion/parse.js +4 -2
- package/slicing/static/fingerprint.d.ts +9 -1
- package/slicing/static/fingerprint.js +8 -0
- package/slicing/static/slice-call.d.ts +2 -2
- package/slicing/static/static-slicer.d.ts +8 -4
- package/slicing/static/static-slicer.js +5 -1
- package/slicing/static/visiting-queue.d.ts +1 -1
- package/statistics/features/common-syntax-probability.d.ts +10 -1
- package/statistics/features/common-syntax-probability.js +9 -0
- package/statistics/features/feature.d.ts +0 -4
- package/statistics/features/feature.js +0 -1
- package/statistics/features/post-processing.d.ts +6 -0
- package/statistics/features/post-processing.js +6 -0
- package/statistics/features/supported/assignments/post-process.d.ts +3 -0
- package/statistics/features/supported/assignments/post-process.js +3 -0
- package/statistics/features/supported/comments/post-process.d.ts +3 -0
- package/statistics/features/supported/comments/post-process.js +3 -0
- package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
- package/statistics/features/supported/control-flow/post-process.js +3 -0
- package/statistics/features/supported/data-access/data-access.d.ts +1 -1
- package/statistics/features/supported/data-access/post-process.d.ts +3 -0
- package/statistics/features/supported/data-access/post-process.js +3 -0
- package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
- package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
- package/statistics/features/supported/expression-list/post-process.js +3 -0
- package/statistics/features/supported/loops/post-process.d.ts +3 -0
- package/statistics/features/supported/loops/post-process.js +3 -0
- package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
- package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
- package/statistics/features/supported/used-packages/post-process.js +3 -0
- package/statistics/features/supported/values/post-process.d.ts +3 -0
- package/statistics/features/supported/values/post-process.js +3 -0
- package/statistics/features/supported/variables/post-process.d.ts +7 -1
- package/statistics/features/supported/variables/post-process.js +6 -0
- package/statistics/meta-statistics.d.ts +8 -9
- package/statistics/output/file-provider.d.ts +5 -6
- package/statistics/output/file-provider.js +5 -6
- package/statistics/output/print-stats.d.ts +13 -1
- package/statistics/output/print-stats.js +12 -0
- package/statistics/output/statistics-file.d.ts +1 -2
- package/statistics/output/statistics-file.js +0 -1
- package/statistics/statistics.d.ts +3 -4
- package/statistics/statistics.js +1 -2
- package/statistics/summarizer/auto-detect.d.ts +3 -0
- package/statistics/summarizer/auto-detect.js +3 -0
- package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
- package/statistics/summarizer/post-process/clusterer.js +0 -2
- package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
- package/statistics/summarizer/post-process/file-based-count.js +0 -1
- package/statistics/summarizer/post-process/histogram.d.ts +0 -2
- package/statistics/summarizer/post-process/histogram.js +0 -2
- package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
- package/statistics/summarizer/post-process/post-process-output.js +0 -3
- package/statistics/summarizer/second-phase/process.d.ts +5 -3
- package/statistics/summarizer/second-phase/process.js +3 -1
- package/statistics/summarizer/summarizer.d.ts +1 -2
- package/util/assert.d.ts +52 -2
- package/util/assert.js +52 -2
- package/util/collections/arrays.d.ts +10 -5
- package/util/collections/arrays.js +10 -5
- package/util/collections/defaultmap.d.ts +11 -11
- package/util/collections/defaultmap.js +11 -11
- package/util/containers.d.ts +2 -7
- package/util/containers.js +0 -5
- package/util/diff-graph.d.ts +0 -1
- package/util/diff-graph.js +0 -1
- package/util/diff.d.ts +3 -1
- package/util/diff.js +3 -1
- package/util/files.d.ts +11 -11
- package/util/files.js +10 -10
- package/util/formats/adapter.d.ts +9 -0
- package/util/formats/adapter.js +9 -0
- package/util/formats/adapters/rmd-adapter.d.ts +10 -1
- package/util/formats/adapters/rmd-adapter.js +10 -1
- package/util/html-hover-over.d.ts +5 -0
- package/util/html-hover-over.js +5 -0
- package/util/json.d.ts +13 -0
- package/util/json.js +13 -0
- package/util/log.d.ts +2 -2
- package/util/log.js +2 -2
- package/util/mermaid/ast.d.ts +3 -0
- package/util/mermaid/ast.js +3 -0
- package/util/mermaid/cfg.d.ts +1 -1
- package/util/mermaid/dfg.d.ts +12 -4
- package/util/mermaid/dfg.js +9 -1
- package/util/mermaid/mermaid.d.ts +6 -1
- package/util/mermaid/mermaid.js +6 -1
- package/util/numbers.d.ts +7 -0
- package/util/numbers.js +7 -0
- package/util/objects.d.ts +0 -2
- package/util/os.d.ts +3 -0
- package/util/os.js +3 -0
- package/util/parallel.d.ts +4 -4
- package/util/parallel.js +4 -4
- package/util/prefix.d.ts +0 -1
- package/util/prefix.js +0 -1
- package/util/quads.d.ts +14 -17
- package/util/quads.js +3 -5
- package/util/r-value.d.ts +11 -2
- package/util/r-value.js +23 -0
- package/util/random.d.ts +3 -0
- package/util/random.js +3 -0
- package/util/range.d.ts +9 -3
- package/util/range.js +15 -2
- package/util/schema.d.ts +14 -1
- package/util/schema.js +15 -2
- package/util/simple-df/dfg-view.d.ts +4 -1
- package/util/simple-df/dfg-view.js +4 -1
- package/util/summarizer.d.ts +9 -1
- package/util/summarizer.js +9 -0
- package/util/text/ansi.d.ts +3 -0
- package/util/text/ansi.js +3 -0
- package/util/text/args.d.ts +2 -4
- package/util/text/args.js +7 -5
- package/util/text/text.d.ts +4 -0
- package/util/text/text.js +4 -0
- package/util/text/time.d.ts +0 -1
- package/util/text/time.js +0 -1
- package/util/version.d.ts +26 -0
- package/util/version.js +37 -1
- package/abstract-interpretation/data-frame/domain.d.ts +0 -107
- package/abstract-interpretation/data-frame/domain.js +0 -315
- package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
- package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
- package/cli/repl/commands/repl-lineage.d.ts +0 -15
- package/cli/repl/commands/repl-lineage.js +0 -67
- package/cli/repl/server/messages/message-lineage.d.ts +0 -17
- package/cli/repl/server/messages/message-lineage.js +0 -25
- package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
- package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
package/queries/query.d.ts
CHANGED
|
@@ -1,46 +1,58 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type CallContextQuery } from './catalog/call-context-query/call-context-query-format';
|
|
2
2
|
import type { BaseQueryFormat, BaseQueryResult, BasicQueryData } from './base-query-format';
|
|
3
|
-
import type
|
|
3
|
+
import { type VirtualQueryArgumentsWithType } from './virtual-query/virtual-queries';
|
|
4
4
|
import type { VirtualCompoundConstraint } from './virtual-query/compound-query';
|
|
5
|
-
import type
|
|
6
|
-
import type
|
|
7
|
-
import type
|
|
8
|
-
import type
|
|
9
|
-
import type
|
|
10
|
-
import type
|
|
11
|
-
import type { DependenciesQuery } from './catalog/dependencies-query/dependencies-query-format';
|
|
5
|
+
import { type DataflowQuery } from './catalog/dataflow-query/dataflow-query-format';
|
|
6
|
+
import { type IdMapQuery } from './catalog/id-map-query/id-map-query-format';
|
|
7
|
+
import { type NormalizedAstQuery } from './catalog/normalized-ast-query/normalized-ast-query-format';
|
|
8
|
+
import { type StaticSliceQuery } from './catalog/static-slice-query/static-slice-query-format';
|
|
9
|
+
import { type DataflowClusterQuery } from './catalog/cluster-query/cluster-query-format';
|
|
10
|
+
import { type DependenciesQuery } from './catalog/dependencies-query/dependencies-query-format';
|
|
12
11
|
import type { OutputFormatter } from '../util/text/ansi';
|
|
13
12
|
import Joi from 'joi';
|
|
14
|
-
import type
|
|
15
|
-
import type
|
|
16
|
-
import type
|
|
17
|
-
import type
|
|
18
|
-
import type
|
|
19
|
-
import type
|
|
20
|
-
import type
|
|
21
|
-
import type
|
|
22
|
-
import type
|
|
13
|
+
import { type LocationMapQuery } from './catalog/location-map-query/location-map-query-format';
|
|
14
|
+
import { type ConfigQuery } from './catalog/config-query/config-query-format';
|
|
15
|
+
import { type SearchQuery } from './catalog/search-query/search-query-format';
|
|
16
|
+
import { type HappensBeforeQuery } from './catalog/happens-before-query/happens-before-query-format';
|
|
17
|
+
import { type ResolveValueQuery } from './catalog/resolve-value-query/resolve-value-query-format';
|
|
18
|
+
import { type DataflowLensQuery } from './catalog/dataflow-lens-query/dataflow-lens-query-format';
|
|
19
|
+
import { type ProjectQuery } from './catalog/project-query/project-query-format';
|
|
20
|
+
import { type OriginQuery } from './catalog/origin-query/origin-query-format';
|
|
21
|
+
import { type LinterQuery } from './catalog/linter-query/linter-query-format';
|
|
23
22
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
24
|
-
import type
|
|
25
|
-
import type
|
|
23
|
+
import { type ControlFlowQuery } from './catalog/control-flow-query/control-flow-query-format';
|
|
24
|
+
import { type DfShapeQuery } from './catalog/df-shape-query/df-shape-query-format';
|
|
26
25
|
import type { AsyncOrSync } from 'ts-essentials';
|
|
27
26
|
import type { FlowrConfigOptions } from '../config';
|
|
28
|
-
import type
|
|
27
|
+
import { type InspectHigherOrderQuery } from './catalog/inspect-higher-order-query/inspect-higher-order-query-format';
|
|
28
|
+
import type { ReadonlyFlowrAnalysisProvider } from '../project/flowr-analyzer';
|
|
29
|
+
import type { ReplOutput } from '../cli/repl/commands/repl-main';
|
|
30
|
+
import type { CommandCompletions } from '../cli/repl/core';
|
|
29
31
|
/**
|
|
30
32
|
* These are all queries that can be executed from within flowR
|
|
31
33
|
*/
|
|
32
|
-
export type Query = CallContextQuery | ConfigQuery | SearchQuery | DataflowQuery | ControlFlowQuery | DataflowLensQuery | DfShapeQuery | NormalizedAstQuery | IdMapQuery | DataflowClusterQuery | StaticSliceQuery |
|
|
34
|
+
export type Query = CallContextQuery | ConfigQuery | SearchQuery | DataflowQuery | ControlFlowQuery | DataflowLensQuery | DfShapeQuery | NormalizedAstQuery | IdMapQuery | DataflowClusterQuery | StaticSliceQuery | DependenciesQuery | LocationMapQuery | HappensBeforeQuery | InspectHigherOrderQuery | ResolveValueQuery | ProjectQuery | OriginQuery | LinterQuery;
|
|
33
35
|
export type QueryArgumentsWithType<QueryType extends BaseQueryFormat['type']> = Query & {
|
|
34
36
|
type: QueryType;
|
|
35
37
|
};
|
|
36
38
|
export type QueryExecutor<Query extends BaseQueryFormat, Result extends Promise<BaseQueryResult>> = (data: BasicQueryData, query: readonly Query[]) => Result;
|
|
39
|
+
/**
|
|
40
|
+
* The result of parsing a query line from, e.g., the repl.
|
|
41
|
+
*/
|
|
42
|
+
export interface ParsedQueryLine<QueryType extends BaseQueryFormat['type']> {
|
|
43
|
+
/** The parsed query or queries from the line. */
|
|
44
|
+
query: QueryArgumentsWithType<QueryType> | QueryArgumentsWithType<QueryType>[] | undefined;
|
|
45
|
+
/** Optional R code associated with the query. */
|
|
46
|
+
rCode?: string;
|
|
47
|
+
}
|
|
37
48
|
export interface SupportedQuery<QueryType extends BaseQueryFormat['type'] = BaseQueryFormat['type']> {
|
|
38
49
|
executor: QueryExecutor<QueryArgumentsWithType<QueryType>, Promise<BaseQueryResult>>;
|
|
39
50
|
/** optional completion in, e.g., the repl */
|
|
40
|
-
completer?: (splitLine: readonly string[], config: FlowrConfigOptions) =>
|
|
51
|
+
completer?: (splitLine: readonly string[], startingNewArg: boolean, config: FlowrConfigOptions) => CommandCompletions;
|
|
41
52
|
/** optional query construction from an, e.g., repl line */
|
|
42
|
-
fromLine?: (splitLine: readonly string[], config: FlowrConfigOptions) =>
|
|
43
|
-
asciiSummarizer: (formatter: OutputFormatter, analyzer:
|
|
53
|
+
fromLine?: (output: ReplOutput, splitLine: readonly string[], config: FlowrConfigOptions) => ParsedQueryLine<QueryType>;
|
|
54
|
+
asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, resultStrings: string[], query: readonly Query[]) => AsyncOrSync<boolean>;
|
|
55
|
+
jsonFormatter?: (queryResults: BaseQueryResult) => object;
|
|
44
56
|
schema: Joi.ObjectSchema;
|
|
45
57
|
/**
|
|
46
58
|
* Flattens the involved query nodes to be added to a flowR search when the {@link fromQuery} function is used based on the given result after this query is executed.
|
|
@@ -51,123 +63,136 @@ export interface SupportedQuery<QueryType extends BaseQueryFormat['type'] = Base
|
|
|
51
63
|
export declare const SupportedQueries: {
|
|
52
64
|
readonly 'call-context': {
|
|
53
65
|
readonly executor: typeof import("./catalog/call-context-query/call-context-query-executor").executeCallContextQueries;
|
|
54
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, analyzer:
|
|
66
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
|
|
55
67
|
readonly schema: Joi.ObjectSchema<any>;
|
|
56
68
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
57
69
|
};
|
|
58
70
|
readonly config: {
|
|
59
71
|
readonly executor: typeof import("./catalog/config-query/config-query-executor").executeConfigQuery;
|
|
60
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) =>
|
|
61
|
-
readonly completer: (partialLine: readonly string[], config: FlowrConfigOptions) =>
|
|
62
|
-
readonly fromLine: (line: readonly string[], _config: FlowrConfigOptions) =>
|
|
72
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) => true;
|
|
73
|
+
readonly completer: (partialLine: readonly string[], _startingNewArg: boolean, config: FlowrConfigOptions) => CommandCompletions;
|
|
74
|
+
readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"config">;
|
|
63
75
|
readonly schema: Joi.ObjectSchema<any>;
|
|
64
76
|
readonly flattenInvolvedNodes: () => never[];
|
|
65
77
|
};
|
|
66
78
|
readonly 'control-flow': {
|
|
67
79
|
readonly executor: typeof import("./catalog/control-flow-query/control-flow-query-executor").executeControlFlowQuery;
|
|
68
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, analyzer:
|
|
80
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
|
|
69
81
|
readonly schema: Joi.ObjectSchema<any>;
|
|
70
82
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
71
83
|
};
|
|
72
84
|
readonly dataflow: {
|
|
73
85
|
readonly executor: typeof import("./catalog/dataflow-query/dataflow-query-executor").executeDataflowQuery;
|
|
74
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
86
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
75
87
|
readonly schema: Joi.ObjectSchema<any>;
|
|
76
88
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
77
89
|
};
|
|
78
90
|
readonly 'dataflow-lens': {
|
|
79
91
|
readonly executor: typeof import("./catalog/dataflow-lens-query/dataflow-lens-query-executor").executeDataflowLensQuery;
|
|
80
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
92
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
81
93
|
readonly schema: Joi.ObjectSchema<any>;
|
|
82
94
|
readonly flattenInvolvedNodes: () => never[];
|
|
83
95
|
};
|
|
84
96
|
readonly 'df-shape': {
|
|
85
97
|
readonly executor: typeof import("./catalog/df-shape-query/df-shape-query-executor").executeDfShapeQuery;
|
|
86
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
98
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
99
|
+
readonly jsonFormatter: (queryResults: BaseQueryResult) => object;
|
|
100
|
+
readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"df-shape">;
|
|
87
101
|
readonly schema: Joi.ObjectSchema<any>;
|
|
88
102
|
readonly flattenInvolvedNodes: () => never[];
|
|
89
103
|
};
|
|
90
104
|
readonly 'id-map': {
|
|
91
105
|
readonly executor: typeof import("./catalog/id-map-query/id-map-query-executor").executeIdMapQuery;
|
|
92
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
106
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
93
107
|
readonly schema: Joi.ObjectSchema<any>;
|
|
94
108
|
readonly flattenInvolvedNodes: () => never[];
|
|
95
109
|
};
|
|
96
110
|
readonly 'normalized-ast': {
|
|
97
111
|
readonly executor: typeof import("./catalog/normalized-ast-query/normalized-ast-query-executor").executeNormalizedAstQuery;
|
|
98
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
112
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
99
113
|
readonly schema: Joi.ObjectSchema<any>;
|
|
100
114
|
readonly flattenInvolvedNodes: () => never[];
|
|
101
115
|
};
|
|
102
116
|
readonly 'dataflow-cluster': {
|
|
103
117
|
readonly executor: typeof import("./catalog/cluster-query/cluster-query-executor").executeDataflowClusterQuery;
|
|
104
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, analyzer:
|
|
118
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
|
|
105
119
|
readonly schema: Joi.ObjectSchema<any>;
|
|
106
120
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
107
121
|
};
|
|
108
122
|
readonly 'static-slice': {
|
|
109
123
|
readonly executor: typeof import("./catalog/static-slice-query/static-slice-query-executor").executeStaticSliceQuery;
|
|
110
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
111
|
-
readonly
|
|
112
|
-
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
113
|
-
};
|
|
114
|
-
readonly lineage: {
|
|
115
|
-
readonly executor: typeof import("./catalog/lineage-query/lineage-query-executor").executeLineageQuery;
|
|
116
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
124
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
125
|
+
readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"static-slice">;
|
|
117
126
|
readonly schema: Joi.ObjectSchema<any>;
|
|
118
127
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
119
128
|
};
|
|
120
129
|
readonly dependencies: {
|
|
121
130
|
readonly executor: typeof import("./catalog/dependencies-query/dependencies-query-executor").executeDependenciesQuery;
|
|
122
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
131
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[], queries: readonly Query[]) => true;
|
|
123
132
|
readonly schema: Joi.ObjectSchema<any>;
|
|
124
133
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult, query: readonly Query[]) => NodeId[];
|
|
125
134
|
};
|
|
126
135
|
readonly 'location-map': {
|
|
127
136
|
readonly executor: typeof import("./catalog/location-map-query/location-map-query-executor").executeLocationMapQuery;
|
|
128
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) =>
|
|
137
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) => true;
|
|
138
|
+
readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"location-map">;
|
|
129
139
|
readonly schema: Joi.ObjectSchema<any>;
|
|
130
140
|
readonly flattenInvolvedNodes: () => never[];
|
|
131
141
|
};
|
|
132
142
|
readonly search: {
|
|
133
143
|
readonly executor: typeof import("./catalog/search-query/search-query-executor").executeSearch;
|
|
134
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
144
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
135
145
|
readonly schema: Joi.ObjectSchema<any>;
|
|
136
146
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
137
147
|
};
|
|
138
148
|
readonly 'happens-before': {
|
|
139
149
|
readonly executor: typeof import("./catalog/happens-before-query/happens-before-query-executor").executeHappensBefore;
|
|
140
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
150
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
141
151
|
readonly schema: Joi.ObjectSchema<any>;
|
|
142
152
|
readonly flattenInvolvedNodes: () => never[];
|
|
143
153
|
};
|
|
154
|
+
readonly 'inspect-higher-order': {
|
|
155
|
+
readonly executor: typeof import("./catalog/inspect-higher-order-query/inspect-higher-order-query-executor").executeHigherOrderQuery;
|
|
156
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, processed: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
|
|
157
|
+
readonly schema: Joi.ObjectSchema<any>;
|
|
158
|
+
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
159
|
+
};
|
|
144
160
|
readonly 'resolve-value': {
|
|
145
161
|
readonly executor: typeof import("./catalog/resolve-value-query/resolve-value-query-executor").executeResolveValueQuery;
|
|
146
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
162
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
163
|
+
readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"resolve-value">;
|
|
147
164
|
readonly schema: Joi.ObjectSchema<any>;
|
|
148
165
|
readonly flattenInvolvedNodes: () => never[];
|
|
149
166
|
};
|
|
150
167
|
readonly project: {
|
|
151
168
|
readonly executor: typeof import("./catalog/project-query/project-query-executor").executeProjectQuery;
|
|
152
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
169
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
153
170
|
readonly schema: Joi.ObjectSchema<any>;
|
|
154
171
|
readonly flattenInvolvedNodes: () => never[];
|
|
155
172
|
};
|
|
156
173
|
readonly origin: {
|
|
157
174
|
readonly executor: typeof import("./catalog/origin-query/origin-query-executor").executeResolveValueQuery;
|
|
158
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
175
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
176
|
+
readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"origin">;
|
|
159
177
|
readonly schema: Joi.ObjectSchema<any>;
|
|
160
178
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
161
179
|
};
|
|
162
180
|
readonly linter: {
|
|
163
181
|
readonly executor: typeof import("./catalog/linter-query/linter-query-executor").executeLinterQuery;
|
|
164
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer:
|
|
182
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
|
|
183
|
+
readonly completer: (line: readonly string[], startingNewArg: boolean, _config: FlowrConfigOptions) => CommandCompletions;
|
|
184
|
+
readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"linter">;
|
|
165
185
|
readonly schema: Joi.ObjectSchema<any>;
|
|
166
186
|
readonly flattenInvolvedNodes: () => never[];
|
|
167
187
|
};
|
|
168
188
|
};
|
|
169
189
|
export type SupportedQueryTypes = keyof typeof SupportedQueries;
|
|
170
190
|
export type QueryResult<Type extends Query['type']> = Promise<ReturnType<typeof SupportedQueries[Type]['executor']>>;
|
|
191
|
+
/**
|
|
192
|
+
* Executes a set of queries that are all of the same type.
|
|
193
|
+
* Only use this function if you are sure all queries are of the same type.
|
|
194
|
+
* Otherwise, use {@link executeQueries}.
|
|
195
|
+
*/
|
|
171
196
|
export declare function executeQueriesOfSameType<SpecificQuery extends Query>(data: BasicQueryData, queries: readonly SpecificQuery[]): QueryResult<SpecificQuery['type']>;
|
|
172
197
|
export type QueryResults<Base extends SupportedQueryTypes = SupportedQueryTypes> = {
|
|
173
198
|
readonly [QueryType in Base]: Awaited<QueryResult<QueryType>>;
|
|
@@ -176,14 +201,27 @@ type OmitFromValues<T, K extends string | number | symbol> = {
|
|
|
176
201
|
[P in keyof T]?: Omit<T[P], K>;
|
|
177
202
|
};
|
|
178
203
|
export type QueryResultsWithoutMeta<Queries extends Query> = OmitFromValues<Omit<QueryResults<Queries['type']>, '.meta'>, '.meta'>;
|
|
179
|
-
export type Queries<Base extends SupportedQueryTypes, VirtualArguments extends VirtualCompoundConstraint<Base> = VirtualCompoundConstraint<Base>> = readonly (QueryArgumentsWithType<Base> | VirtualQueryArgumentsWithType<Base, VirtualArguments>)[];
|
|
204
|
+
export type Queries<Base extends SupportedQueryTypes = SupportedQueryTypes, VirtualArguments extends VirtualCompoundConstraint<Base> = VirtualCompoundConstraint<Base>> = readonly (QueryArgumentsWithType<Base> | VirtualQueryArgumentsWithType<Base, VirtualArguments>)[];
|
|
180
205
|
/**
|
|
181
206
|
* This is the main query execution function that takes a set of queries and executes them on the given data.
|
|
207
|
+
* @see {@link executeQueriesOfSameType}
|
|
208
|
+
*/
|
|
209
|
+
export declare function executeQueries<Base extends SupportedQueryTypes, VirtualArguments extends VirtualCompoundConstraint<Base> = VirtualCompoundConstraint<Base>>(data: BasicQueryData, queries: Queries<Base, VirtualArguments>): Promise<QueryResults<Base>>;
|
|
210
|
+
/**
|
|
211
|
+
* Produces a Joi schema representing all supported queries.
|
|
182
212
|
*/
|
|
183
|
-
export declare function executeQueries<Base extends SupportedQueryTypes, VirtualArguments extends VirtualCompoundConstraint<Base> = VirtualCompoundConstraint<Base>>(data: BasicQueryData, queries: Queries<Base, VirtualArguments>): AsyncOrSync<QueryResults<Base>>;
|
|
184
213
|
export declare function SupportedQueriesSchema(): Joi.AlternativesSchema<any>;
|
|
185
214
|
export declare const CompoundQuerySchema: Joi.ObjectSchema<any>;
|
|
215
|
+
/**
|
|
216
|
+
* Produces a Joi schema representing all virtual queries.
|
|
217
|
+
*/
|
|
186
218
|
export declare function VirtualQuerySchema(): Joi.AlternativesSchema<any>;
|
|
219
|
+
/**
|
|
220
|
+
* Produces a Joi schema representing any supported query (including virtual queries).
|
|
221
|
+
*/
|
|
187
222
|
export declare function AnyQuerySchema(): Joi.AlternativesSchema<any>;
|
|
223
|
+
/**
|
|
224
|
+
* Produces a Joi schema representing an array of supported queries.
|
|
225
|
+
*/
|
|
188
226
|
export declare function QueriesSchema(): Joi.ArraySchema<any[]>;
|
|
189
227
|
export {};
|
package/queries/query.js
CHANGED
|
@@ -16,7 +16,6 @@ const virtual_queries_1 = require("./virtual-query/virtual-queries");
|
|
|
16
16
|
const dataflow_query_format_1 = require("./catalog/dataflow-query/dataflow-query-format");
|
|
17
17
|
const id_map_query_format_1 = require("./catalog/id-map-query/id-map-query-format");
|
|
18
18
|
const normalized_ast_query_format_1 = require("./catalog/normalized-ast-query/normalized-ast-query-format");
|
|
19
|
-
const lineage_query_format_1 = require("./catalog/lineage-query/lineage-query-format");
|
|
20
19
|
const static_slice_query_format_1 = require("./catalog/static-slice-query/static-slice-query-format");
|
|
21
20
|
const cluster_query_format_1 = require("./catalog/cluster-query/cluster-query-format");
|
|
22
21
|
const dependencies_query_format_1 = require("./catalog/dependencies-query/dependencies-query-format");
|
|
@@ -32,6 +31,8 @@ const origin_query_format_1 = require("./catalog/origin-query/origin-query-forma
|
|
|
32
31
|
const linter_query_format_1 = require("./catalog/linter-query/linter-query-format");
|
|
33
32
|
const control_flow_query_format_1 = require("./catalog/control-flow-query/control-flow-query-format");
|
|
34
33
|
const df_shape_query_format_1 = require("./catalog/df-shape-query/df-shape-query-format");
|
|
34
|
+
const inspect_higher_order_query_format_1 = require("./catalog/inspect-higher-order-query/inspect-higher-order-query-format");
|
|
35
|
+
const log_1 = require("../util/log");
|
|
35
36
|
exports.SupportedQueries = {
|
|
36
37
|
'call-context': call_context_query_format_1.CallContextQueryDefinition,
|
|
37
38
|
'config': config_query_format_1.ConfigQueryDefinition,
|
|
@@ -43,16 +44,21 @@ exports.SupportedQueries = {
|
|
|
43
44
|
'normalized-ast': normalized_ast_query_format_1.NormalizedAstQueryDefinition,
|
|
44
45
|
'dataflow-cluster': cluster_query_format_1.ClusterQueryDefinition,
|
|
45
46
|
'static-slice': static_slice_query_format_1.StaticSliceQueryDefinition,
|
|
46
|
-
'lineage': lineage_query_format_1.LineageQueryDefinition,
|
|
47
47
|
'dependencies': dependencies_query_format_1.DependenciesQueryDefinition,
|
|
48
48
|
'location-map': location_map_query_format_1.LocationMapQueryDefinition,
|
|
49
49
|
'search': search_query_format_1.SearchQueryDefinition,
|
|
50
50
|
'happens-before': happens_before_query_format_1.HappensBeforeQueryDefinition,
|
|
51
|
+
'inspect-higher-order': inspect_higher_order_query_format_1.InspectHigherOrderQueryDefinition,
|
|
51
52
|
'resolve-value': resolve_value_query_format_1.ResolveValueQueryDefinition,
|
|
52
53
|
'project': project_query_format_1.ProjectQueryDefinition,
|
|
53
54
|
'origin': origin_query_format_1.OriginQueryDefinition,
|
|
54
55
|
'linter': linter_query_format_1.LinterQueryDefinition
|
|
55
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* Executes a set of queries that are all of the same type.
|
|
59
|
+
* Only use this function if you are sure all queries are of the same type.
|
|
60
|
+
* Otherwise, use {@link executeQueries}.
|
|
61
|
+
*/
|
|
56
62
|
async function executeQueriesOfSameType(data, queries) {
|
|
57
63
|
(0, assert_1.guard)(queries.length > 0, 'At least one query must be provided');
|
|
58
64
|
/* every query must have the same type */
|
|
@@ -84,35 +90,34 @@ function groupQueriesByType(queries) {
|
|
|
84
90
|
}
|
|
85
91
|
return grouped;
|
|
86
92
|
}
|
|
87
|
-
function isPromiseLike(value) {
|
|
88
|
-
return value !== null && typeof value === 'object' && typeof value.then === 'function';
|
|
89
|
-
}
|
|
90
93
|
/**
|
|
91
94
|
* This is the main query execution function that takes a set of queries and executes them on the given data.
|
|
95
|
+
* @see {@link executeQueriesOfSameType}
|
|
92
96
|
*/
|
|
93
|
-
function executeQueries(data, queries) {
|
|
97
|
+
async function executeQueries(data, queries) {
|
|
94
98
|
const now = Date.now();
|
|
95
99
|
const grouped = groupQueriesByType(queries);
|
|
96
100
|
const entries = Object.entries(grouped);
|
|
97
|
-
const results =
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
const results = [];
|
|
102
|
+
for (const [type, group] of entries) {
|
|
103
|
+
try {
|
|
104
|
+
const result = await Promise.resolve(executeQueriesOfSameType(data, group));
|
|
105
|
+
results.push([type, result]);
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
log_1.log.error(e);
|
|
109
|
+
results.push([type, undefined]);
|
|
110
|
+
}
|
|
105
111
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
timing: Date.now() - now
|
|
112
|
-
};
|
|
113
|
-
return results;
|
|
114
|
-
});
|
|
112
|
+
const r = Object.fromEntries(results);
|
|
113
|
+
r['.meta'] = {
|
|
114
|
+
timing: Date.now() - now
|
|
115
|
+
};
|
|
116
|
+
return r;
|
|
115
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Produces a Joi schema representing all supported queries.
|
|
120
|
+
*/
|
|
116
121
|
function SupportedQueriesSchema() {
|
|
117
122
|
return joi_1.default.alternatives(Object.values(exports.SupportedQueries).map(q => q.schema)).description('Supported queries');
|
|
118
123
|
}
|
|
@@ -122,12 +127,21 @@ exports.CompoundQuerySchema = joi_1.default.object({
|
|
|
122
127
|
commonArguments: joi_1.default.object().required().description('Common arguments for all queries.'),
|
|
123
128
|
arguments: joi_1.default.array().items(joi_1.default.object()).required().description('Arguments for each query.')
|
|
124
129
|
}).description('Compound query used to combine queries of the same type');
|
|
130
|
+
/**
|
|
131
|
+
* Produces a Joi schema representing all virtual queries.
|
|
132
|
+
*/
|
|
125
133
|
function VirtualQuerySchema() {
|
|
126
134
|
return joi_1.default.alternatives(exports.CompoundQuerySchema).description('Virtual queries (used for structure)');
|
|
127
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Produces a Joi schema representing any supported query (including virtual queries).
|
|
138
|
+
*/
|
|
128
139
|
function AnyQuerySchema() {
|
|
129
140
|
return joi_1.default.alternatives(SupportedQueriesSchema(), VirtualQuerySchema()).description('Any query');
|
|
130
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Produces a Joi schema representing an array of supported queries.
|
|
144
|
+
*/
|
|
131
145
|
function QueriesSchema() {
|
|
132
146
|
return joi_1.default.array().items(AnyQuerySchema()).description('Queries to run on the file analysis information (in the form of an array)');
|
|
133
147
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { QueryArgumentsWithType, SupportedQueryTypes } from '../query';
|
|
2
|
-
import type
|
|
3
|
-
import { executeCompoundQueries } from './compound-query';
|
|
2
|
+
import { type CompoundQueryFormat, type VirtualCompoundConstraint, executeCompoundQueries } from './compound-query';
|
|
4
3
|
import type { BaseQueryFormat } from '../base-query-format';
|
|
5
4
|
/** A query that does not perform a search but may perform (e.g., convenience) modifications of other queries */
|
|
6
5
|
export type VirtualQueryArgumentsWithType<Base extends SupportedQueryTypes, VirtualArguments extends VirtualCompoundConstraint<Base> = VirtualCompoundConstraint<Base>> = CompoundQueryFormat<Base, VirtualArguments>;
|
package/r-bridge/data/get.d.ts
CHANGED
|
@@ -14,6 +14,12 @@ type PathToCapability = readonly number[];
|
|
|
14
14
|
export interface FlowrCapabilityWithPath extends FlowrCapability {
|
|
15
15
|
path: PathToCapability;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Find a flowR capability by its id.
|
|
19
|
+
*/
|
|
17
20
|
export declare function getCapabilityById(id: FlowrCapabilityId): FlowrCapabilityWithPath;
|
|
21
|
+
/**
|
|
22
|
+
* Get all capabilities with their paths.
|
|
23
|
+
*/
|
|
18
24
|
export declare function getAllCapabilities(): readonly FlowrCapabilityWithPath[];
|
|
19
25
|
export {};
|
package/r-bridge/data/get.js
CHANGED
|
@@ -21,6 +21,9 @@ function search(id, capabilities, path = []) {
|
|
|
21
21
|
return undefined;
|
|
22
22
|
}
|
|
23
23
|
const capabilityCache = new Map();
|
|
24
|
+
/**
|
|
25
|
+
* Find a flowR capability by its id.
|
|
26
|
+
*/
|
|
24
27
|
function getCapabilityById(id) {
|
|
25
28
|
const cached = capabilityCache.get(id);
|
|
26
29
|
if (cached) {
|
|
@@ -31,6 +34,9 @@ function getCapabilityById(id) {
|
|
|
31
34
|
capabilityCache.set(id, value);
|
|
32
35
|
return value;
|
|
33
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Get all capabilities with their paths.
|
|
39
|
+
*/
|
|
34
40
|
function getAllCapabilities() {
|
|
35
41
|
const result = [];
|
|
36
42
|
function traverse(capabilities, currentPath = []) {
|
|
@@ -3,7 +3,6 @@ import type { NodeId } from './processing/node-id';
|
|
|
3
3
|
import type { ParentInformation } from './processing/decorate';
|
|
4
4
|
/**
|
|
5
5
|
* Collects all node ids within a tree given by a respective root node
|
|
6
|
-
*
|
|
7
6
|
* @param nodes - The root id nodes to start collecting from
|
|
8
7
|
* @param stop - A function that determines whether to stop collecting at a given node, does not stop by default
|
|
9
8
|
*/
|
|
@@ -4,7 +4,6 @@ exports.collectAllIds = collectAllIds;
|
|
|
4
4
|
const visitor_1 = require("./processing/visitor");
|
|
5
5
|
/**
|
|
6
6
|
* Collects all node ids within a tree given by a respective root node
|
|
7
|
-
*
|
|
8
7
|
* @param nodes - The root id nodes to start collecting from
|
|
9
8
|
* @param stop - A function that determines whether to stop collecting at a given node, does not stop by default
|
|
10
9
|
*/
|
|
@@ -31,16 +31,16 @@ export type NoInfo = object;
|
|
|
31
31
|
*/
|
|
32
32
|
interface Source {
|
|
33
33
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
* The range is different from the assigned {@link Location} as it refers to the complete source range covered by the given
|
|
35
|
+
* element.
|
|
36
|
+
* <p>
|
|
37
|
+
* As an example for the difference, consider a for loop, the location of `for` will be just the three characters,
|
|
38
|
+
* but the *range* will be everything including the loop body.
|
|
39
|
+
*/
|
|
40
40
|
fullRange?: SourceRange;
|
|
41
41
|
/**
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
* Similar to {@link Source.fullRange} this contains the complete R lexeme of the given element.
|
|
43
|
+
*/
|
|
44
44
|
fullLexeme?: string;
|
|
45
45
|
/**
|
|
46
46
|
* This may contain additional elements that were part of the original R code, but are not part of the normalized R-ast.
|
|
@@ -54,7 +54,6 @@ interface Source {
|
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Provides the common base of all {@link RNode|RNodes}.
|
|
57
|
-
*
|
|
58
57
|
* @typeParam Info - can be used to store additional information about the node
|
|
59
58
|
* @typeParam LexemeType - the type of the lexeme, probably always a `string` or `string | undefined`
|
|
60
59
|
*/
|
|
@@ -85,7 +84,6 @@ export interface Location {
|
|
|
85
84
|
/**
|
|
86
85
|
* The location may differ from what is stated in {@link Source#fullRange} as it
|
|
87
86
|
* represents the location identified by the R parser.
|
|
88
|
-
*
|
|
89
87
|
* @see Source#fullRange
|
|
90
88
|
*/
|
|
91
89
|
location: SourceRange;
|
|
@@ -144,7 +142,6 @@ export type ROther<Info> = RComment<Info> | RLineDirective<Info>;
|
|
|
144
142
|
* All other subtypes (like {@link RLoopConstructs}) listed above
|
|
145
143
|
* can be used to restrict the kind of node. They do not have to be
|
|
146
144
|
* exclusive, some nodes can appear in multiple subtypes.
|
|
147
|
-
*
|
|
148
145
|
* @see {@link recoverName} - to receive the name/lexeme from such a node
|
|
149
146
|
* @see {@link recoverContent} - for a more rigorous approach to get the content of a node within a {@link DataflowGraph|dataflow graph}
|
|
150
147
|
*/
|
|
@@ -6,7 +6,6 @@ export declare const EmptyArgument = "<>";
|
|
|
6
6
|
export type RFunctionArgument<Info = NoInfo> = RArgument<Info> | typeof EmptyArgument;
|
|
7
7
|
/**
|
|
8
8
|
* Calls of functions like `a()` and `foo(42, "hello")`.
|
|
9
|
-
*
|
|
10
9
|
* @see RUnnamedFunctionCall
|
|
11
10
|
*/
|
|
12
11
|
export interface RNamedFunctionCall<Info = NoInfo> extends Base<Info>, Location {
|
|
@@ -18,7 +17,6 @@ export interface RNamedFunctionCall<Info = NoInfo> extends Base<Info>, Location
|
|
|
18
17
|
}
|
|
19
18
|
/**
|
|
20
19
|
* Direct calls of functions like `(function(x) { x })(3)`.
|
|
21
|
-
*
|
|
22
20
|
* @see RNamedFunctionCall
|
|
23
21
|
*/
|
|
24
22
|
export interface RUnnamedFunctionCall<Info = NoInfo> extends Base<Info>, Location {
|
|
@@ -10,4 +10,7 @@ export interface RNumber<Info = NoInfo> extends Leaf<Info>, Location {
|
|
|
10
10
|
readonly type: RType.Number;
|
|
11
11
|
content: RNumberValue;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Checks whether the given node is an RNumber.
|
|
15
|
+
*/
|
|
13
16
|
export declare function isRNumber(node: RNode | undefined): node is RNumber;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isRNumber = isRNumber;
|
|
4
4
|
const type_1 = require("../type");
|
|
5
|
+
/**
|
|
6
|
+
* Checks whether the given node is an RNumber.
|
|
7
|
+
*/
|
|
5
8
|
function isRNumber(node) {
|
|
6
9
|
return node?.type === type_1.RType.Number;
|
|
7
10
|
}
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isSpecialSymbol = isSpecialSymbol;
|
|
4
4
|
const convert_values_1 = require("../../../convert-values");
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
5
8
|
function isSpecialSymbol(symbol) {
|
|
6
9
|
return symbol.content === convert_values_1.RNull || symbol.content === convert_values_1.RNa;
|
|
7
10
|
}
|