@eagleoutice/flowr 2.6.1 → 2.6.3
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 -39
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +2 -3
- package/abstract-interpretation/data-frame/absint-visitor.js +17 -12
- 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 +9 -10
- package/abstract-interpretation/data-frame/mappers/function-mapper.js +21 -18
- 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 +179 -162
- package/abstract-interpretation/data-frame/shape-inference.d.ts +4 -7
- package/abstract-interpretation/data-frame/shape-inference.js +10 -12
- 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 +2 -8
- package/abstract-interpretation/normalized-ast-fold.js +0 -5
- package/benchmark/slicer.d.ts +4 -7
- package/benchmark/slicer.js +27 -31
- 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 +13 -1
- package/benchmark/summarizer/second-phase/graph.d.ts +5 -0
- package/benchmark/summarizer/second-phase/graph.js +5 -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/export-quads-app.js +1 -1
- package/cli/flowr-main-options.d.ts +3 -0
- package/cli/flowr-main-options.js +3 -0
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +13 -2
- package/cli/repl/commands/repl-dataflow.js +2 -1
- package/cli/repl/commands/repl-execute.d.ts +4 -0
- package/cli/repl/commands/repl-execute.js +6 -2
- package/cli/repl/commands/repl-main.d.ts +15 -9
- package/cli/repl/commands/repl-parse.js +18 -6
- package/cli/repl/commands/repl-query.js +16 -5
- package/cli/repl/core.d.ts +24 -6
- package/cli/repl/core.js +42 -30
- 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 +6 -0
- 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 +5 -32
- 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-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/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 +5 -1
- package/cli/script-core/summarizer-core.d.ts +3 -0
- package/cli/script-core/summarizer-core.js +3 -0
- package/cli/slicer-app.js +3 -4
- package/cli/summarizer-app.d.ts +2 -3
- package/cli/summarizer-app.js +2 -3
- package/cli/wiki.d.ts +4 -0
- package/cli/wiki.js +165 -0
- package/config.d.ts +21 -3
- package/config.js +21 -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-dead-code.js +13 -3
- package/control-flow/cfg-simplification.d.ts +5 -2
- package/control-flow/cfg-simplification.js +3 -0
- 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 +12 -9
- package/control-flow/extract-cfg.js +44 -7
- package/control-flow/happens-before.d.ts +1 -1
- package/control-flow/semantic-cfg-guided-visitor.d.ts +4 -33
- 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 +2 -4
- package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/useless-loop.d.ts +3 -6
- package/control-flow/useless-loop.js +16 -10
- package/core/pipeline-executor.d.ts +11 -22
- package/core/pipeline-executor.js +13 -25
- 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 +21 -1
- 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 +2 -2
- package/core/steps/all/core/00-parse.js +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 -6
- package/core/steps/all/core/10-normalize.js +1 -13
- package/core/steps/all/core/11-normalize-tree-sitter.d.ts +5 -5
- package/core/steps/all/core/11-normalize-tree-sitter.js +2 -3
- package/core/steps/all/core/20-dataflow.d.ts +3 -4
- package/core/steps/all/core/20-dataflow.js +2 -2
- package/core/steps/all/static-slicing/00-slice.d.ts +1 -2
- package/core/steps/all/static-slicing/00-slice.js +1 -1
- package/core/steps/all/static-slicing/10-reconstruct.d.ts +8 -0
- package/core/steps/all/static-slicing/10-reconstruct.js +4 -1
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +94 -95
- package/core/steps/pipeline/default-pipelines.js +8 -12
- 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 -2
- package/dataflow/environments/clone.js +12 -2
- package/dataflow/environments/default-builtin-config.d.ts +3 -0
- package/dataflow/environments/default-builtin-config.js +4 -1
- package/dataflow/environments/diff.d.ts +11 -2
- package/dataflow/environments/diff.js +11 -2
- 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 +1 -2
- package/dataflow/environments/overwrite.js +3 -16
- 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 +9 -2
- package/dataflow/environments/scoping.js +8 -1
- package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
- package/dataflow/eval/resolve/alias-tracking.js +11 -14
- package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
- package/dataflow/eval/resolve/resolve-argument.js +2 -2
- package/dataflow/eval/resolve/resolve.d.ts +1 -7
- package/dataflow/eval/resolve/resolve.js +0 -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 +12 -0
- package/dataflow/eval/values/r-value.js +12 -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 +16 -1
- package/dataflow/eval/values/string/string-constants.js +15 -0
- package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
- package/dataflow/extractor.d.ts +3 -4
- package/dataflow/extractor.js +25 -22
- 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 +9 -28
- package/dataflow/graph/graph.js +4 -28
- 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 +8 -0
- package/dataflow/graph/unknown-replacement.js +8 -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 +16 -10
- package/dataflow/info.js +27 -1
- package/dataflow/internal/linker.d.ts +25 -9
- package/dataflow/internal/linker.js +30 -11
- package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
- package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -1
- 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 +6 -4
- 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 +4 -1
- 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-assignment.js +4 -4
- 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 +9 -6
- 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 +4 -1
- 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 +4 -1
- 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 +7 -1
- 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 +5 -1
- 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-list.js +2 -2
- 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 +6 -3
- 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 +10 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +8 -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 +5 -3
- 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 +34 -12
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +90 -68
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +5 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +5 -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-vector.js +2 -2
- 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 +4 -1
- package/dataflow/internal/process/functions/call/common.d.ts +11 -5
- package/dataflow/internal/process/functions/call/common.js +9 -3
- package/dataflow/internal/process/functions/call/default-call-handling.d.ts +5 -0
- package/dataflow/internal/process/functions/call/default-call-handling.js +5 -0
- package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
- package/dataflow/internal/process/functions/call/known-call-handling.js +10 -3
- package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
- package/dataflow/internal/process/functions/call/named-call-handling.js +10 -4
- 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 +7 -4
- 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 +6 -8
- package/dataflow/origin/dfg-get-symbol-refs.js +7 -9
- package/dataflow/processor.d.ts +6 -12
- package/dataflow/processor.js +0 -1
- package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -2
- 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 +87 -0
- package/documentation/data/faq/recommended-configs.d.ts +36 -0
- package/documentation/data/faq/recommended-configs.js +40 -0
- package/documentation/data/faq/wiki-faq-store.d.ts +19 -0
- package/documentation/data/faq/wiki-faq-store.js +83 -0
- package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
- package/documentation/data/server/doc-data-server-messages.js +5 -64
- package/documentation/doc-capabilities.d.ts +9 -0
- package/documentation/{print-capabilities-markdown.js → doc-capabilities.js} +18 -21
- package/documentation/doc-readme.d.ts +9 -0
- package/documentation/{print-readme.js → doc-readme.js} +136 -35
- 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 +14 -0
- package/documentation/doc-util/doc-benchmarks.js +14 -0
- package/documentation/doc-util/doc-cfg.d.ts +7 -1
- package/documentation/doc-util/doc-cfg.js +14 -8
- 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 +12 -6
- package/documentation/doc-util/doc-dfg.js +19 -10
- 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 +6 -1
- package/documentation/doc-util/doc-escape.js +11 -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 +26 -0
- package/documentation/doc-util/doc-general.js +26 -0
- package/documentation/doc-util/doc-normalized-ast.d.ts +14 -3
- package/documentation/doc-util/doc-normalized-ast.js +16 -7
- package/documentation/doc-util/doc-query.d.ts +26 -3
- package/documentation/doc-util/doc-query.js +34 -12
- package/documentation/doc-util/doc-repl.d.ts +6 -0
- package/documentation/doc-util/doc-repl.js +6 -0
- package/documentation/doc-util/doc-search.d.ts +3 -18
- package/documentation/doc-util/doc-search.js +6 -62
- package/documentation/doc-util/doc-server-message.d.ts +18 -6
- package/documentation/doc-util/doc-server-message.js +17 -5
- 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 +90 -11
- package/documentation/doc-util/doc-types.js +128 -39
- package/documentation/index.d.ts +9 -9
- package/documentation/index.js +9 -9
- package/documentation/issue-linting-rule.d.ts +9 -0
- package/documentation/{print-linter-issue.js → issue-linting-rule.js} +20 -23
- package/documentation/wiki-analyzer.d.ts +9 -0
- package/documentation/wiki-analyzer.js +412 -0
- package/documentation/wiki-cfg.d.ts +9 -0
- package/documentation/{print-cfg-wiki.js → wiki-cfg.js} +144 -160
- package/documentation/wiki-core.d.ts +14 -0
- package/documentation/{print-core-wiki.js → wiki-core.js} +167 -175
- package/documentation/wiki-dataflow-graph.d.ts +9 -0
- package/documentation/{print-dataflow-graph-wiki.js → wiki-dataflow-graph.js} +145 -175
- package/documentation/wiki-engine.d.ts +9 -0
- package/documentation/{print-engines-wiki.js → wiki-engine.js} +27 -42
- package/documentation/wiki-faq.d.ts +8 -0
- package/documentation/wiki-faq.js +22 -0
- package/documentation/wiki-interface.d.ts +9 -0
- package/documentation/{print-interface-wiki.js → wiki-interface.js} +60 -57
- package/documentation/wiki-linter.d.ts +9 -0
- package/documentation/{print-linter-wiki.js → wiki-linter.js} +52 -48
- package/documentation/wiki-linting-and-testing.d.ts +9 -0
- package/documentation/{print-linting-and-testing-wiki.js → wiki-linting-and-testing.js} +25 -32
- package/documentation/wiki-mk/doc-context.d.ts +186 -0
- package/documentation/wiki-mk/doc-context.js +84 -0
- package/documentation/wiki-mk/doc-maker.d.ts +95 -0
- package/documentation/wiki-mk/doc-maker.js +133 -0
- package/documentation/wiki-normalized-ast.d.ts +9 -0
- package/documentation/{print-normalized-ast-wiki.js → wiki-normalized-ast.js} +64 -47
- package/documentation/wiki-onboarding.d.ts +8 -0
- package/documentation/{print-onboarding-wiki.js → wiki-onboarding.js} +18 -15
- package/documentation/wiki-query.d.ts +9 -0
- package/documentation/{print-query-wiki.js → wiki-query.js} +65 -80
- package/documentation/wiki-search.d.ts +9 -0
- package/documentation/wiki-search.js +61 -0
- package/engines.d.ts +1 -1
- package/linter/linter-executor.d.ts +6 -3
- package/linter/linter-executor.js +6 -2
- package/linter/linter-format.d.ts +10 -2
- package/linter/linter-format.js +8 -0
- package/linter/linter-rules.d.ts +13 -17
- package/linter/rules/absolute-path.d.ts +4 -6
- package/linter/rules/absolute-path.js +2 -2
- package/linter/rules/dataframe-access-validation.d.ts +4 -5
- package/linter/rules/dataframe-access-validation.js +21 -19
- package/linter/rules/dead-code.d.ts +2 -2
- package/linter/rules/deprecated-functions.d.ts +2 -6
- package/linter/rules/file-path-validity.d.ts +2 -3
- package/linter/rules/file-path-validity.js +4 -4
- package/linter/rules/function-finder-util.d.ts +2 -7
- package/linter/rules/naming-convention.d.ts +15 -4
- package/linter/rules/naming-convention.js +14 -2
- package/linter/rules/network-functions.d.ts +2 -2
- package/linter/rules/network-functions.js +1 -1
- package/linter/rules/seeded-randomness.d.ts +4 -4
- package/linter/rules/seeded-randomness.js +33 -13
- package/linter/rules/unused-definition.d.ts +3 -4
- package/linter/rules/useless-loop.d.ts +3 -4
- package/linter/rules/useless-loop.js +2 -2
- package/package.json +7 -18
- package/project/cache/flowr-analyzer-cache.d.ts +9 -19
- package/project/cache/flowr-analyzer-cache.js +17 -44
- package/project/cache/flowr-analyzer-controlflow-cache.d.ts +34 -0
- package/project/cache/flowr-analyzer-controlflow-cache.js +79 -0
- package/project/context/flowr-analyzer-context.d.ts +31 -9
- package/project/context/flowr-analyzer-context.js +48 -4
- package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
- package/project/context/flowr-analyzer-files-context.d.ts +63 -15
- package/project/context/flowr-analyzer-files-context.js +110 -39
- package/project/context/flowr-file.d.ts +32 -11
- package/project/context/flowr-file.js +30 -9
- package/project/flowr-analyzer-builder.d.ts +23 -31
- package/project/flowr-analyzer-builder.js +35 -74
- package/project/flowr-analyzer.d.ts +79 -29
- package/project/flowr-analyzer.js +59 -15
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +8 -2
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.js +13 -5
- package/project/plugins/file-plugins/flowr-analyzer-file-plugin.d.ts +3 -3
- package/project/plugins/file-plugins/flowr-analyzer-file-plugin.js +11 -5
- package/project/plugins/file-plugins/flowr-description-file.d.ts +3 -5
- package/project/plugins/file-plugins/flowr-description-file.js +0 -1
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.d.ts +20 -0
- package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.js +42 -0
- package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.d.ts +59 -0
- package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.js +132 -0
- package/project/plugins/file-plugins/notebooks/notebook.d.ts +0 -0
- package/project/plugins/file-plugins/notebooks/notebook.js +2 -0
- package/project/plugins/flowr-analyzer-plugin-defaults.d.ts +5 -0
- package/project/plugins/flowr-analyzer-plugin-defaults.js +23 -0
- package/project/plugins/flowr-analyzer-plugin.d.ts +2 -0
- package/project/plugins/flowr-analyzer-plugin.js +2 -0
- package/project/plugins/loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin.js +1 -1
- package/project/plugins/package-version-plugins/flowr-analyzer-package-versions-description-file-plugin.js +1 -1
- package/project/plugins/plugin-registry.d.ts +34 -0
- package/project/plugins/plugin-registry.js +62 -0
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.js +7 -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 +7 -2
- 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 +16 -4
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +34 -18
- 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 +5 -2
- 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 +3 -0
- 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 +5 -2
- 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 +25 -5
- package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +4 -0
- package/queries/catalog/happens-before-query/happens-before-query-executor.js +4 -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 +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
- 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 +80 -2
- 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 +7 -2
- 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 +6 -1
- 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 +10 -1
- 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 +30 -1
- package/queries/query-print.d.ts +20 -4
- package/queries/query-print.js +18 -2
- package/queries/query.d.ts +93 -55
- package/queries/query.js +55 -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 +2 -2
- package/r-bridge/lang-4.x/ast/model/collect.js +4 -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-project.d.ts +29 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-project.js +15 -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 +11 -14
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +30 -17
- 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 +6 -5
- package/r-bridge/lang-4.x/ast/model/type.js +6 -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/format.js +1 -1
- package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +12 -12
- package/r-bridge/lang-4.x/ast/parser/json/parser.js +11 -11
- 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-root.d.ts +4 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.js +20 -11
- 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 +18 -0
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +15 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +62 -24
- package/r-bridge/parser.d.ts +43 -12
- package/r-bridge/parser.js +27 -13
- package/r-bridge/retriever.d.ts +25 -16
- package/r-bridge/retriever.js +29 -5
- 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 -2
- package/reconstruct/auto-select/magic-comments.d.ts +1 -2
- package/reconstruct/auto-select/magic-comments.js +2 -3
- package/reconstruct/reconstruct.d.ts +18 -12
- package/reconstruct/reconstruct.js +19 -10
- 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 +15 -3
- package/search/search-executor/search-enrichers.d.ts +16 -6
- package/search/search-executor/search-enrichers.js +4 -3
- package/search/search-executor/search-generators.d.ts +19 -10
- package/search/search-executor/search-generators.js +57 -5
- 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 +13 -12
- package/slicing/criterion/collect-all.js +1 -1
- package/slicing/criterion/parse.d.ts +4 -2
- package/slicing/criterion/parse.js +8 -6
- 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/assignments.js +1 -1
- 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/control-flow.js +1 -1
- 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/data-access.js +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/defined-functions/defined-functions.js +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/expression-list/statistics-expression-list.js +1 -1
- package/statistics/features/supported/loops/loops.js +1 -1
- 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-functions/used-functions.js +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/features/supported/variables/variables.js +1 -1
- 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 +4 -4
- 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 +56 -2
- package/util/assert.js +56 -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 +12 -12
- package/util/files.js +11 -11
- 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 +7 -3
- package/util/mermaid/ast.js +39 -8
- package/util/mermaid/cfg.d.ts +1 -1
- package/util/mermaid/cfg.js +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 +10 -1
- package/util/r-value.js +21 -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 +12 -3
- package/util/version.js +12 -3
- 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 -66
- package/cli/repl/server/messages/message-lineage.d.ts +0 -17
- package/cli/repl/server/messages/message-lineage.js +0 -25
- package/documentation/print-analyzer-wiki.d.ts +0 -1
- package/documentation/print-analyzer-wiki.js +0 -137
- package/documentation/print-capabilities-markdown.d.ts +0 -1
- package/documentation/print-cfg-wiki.d.ts +0 -1
- package/documentation/print-core-wiki.d.ts +0 -2
- package/documentation/print-dataflow-graph-wiki.d.ts +0 -1
- package/documentation/print-engines-wiki.d.ts +0 -1
- package/documentation/print-faq-wiki.d.ts +0 -1
- package/documentation/print-faq-wiki.js +0 -90
- package/documentation/print-interface-wiki.d.ts +0 -1
- package/documentation/print-linter-issue.d.ts +0 -1
- package/documentation/print-linter-wiki.d.ts +0 -1
- package/documentation/print-linting-and-testing-wiki.d.ts +0 -1
- package/documentation/print-normalized-ast-wiki.d.ts +0 -1
- package/documentation/print-onboarding-wiki.d.ts +0 -1
- package/documentation/print-query-wiki.d.ts +0 -1
- package/documentation/print-readme.d.ts +0 -1
- package/documentation/print-search-wiki.d.ts +0 -1
- package/documentation/print-search-wiki.js +0 -74
- 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/util/formats/adapter-format.d.ts +0 -6
- package/util/formats/adapter-format.js +0 -3
- package/util/formats/adapter.d.ts +0 -18
- package/util/formats/adapter.js +0 -49
- package/util/formats/adapters/r-adapter.d.ts +0 -4
- package/util/formats/adapters/r-adapter.js +0 -7
- package/util/formats/adapters/rmd-adapter.d.ts +0 -26
- package/util/formats/adapters/rmd-adapter.js +0 -91
package/util/assert.d.ts
CHANGED
|
@@ -1,12 +1,66 @@
|
|
|
1
1
|
/** use this to ensure that all cases are covered in case of a selection */
|
|
2
|
+
/**
|
|
3
|
+
* Verifies, that the given code path is never reached.
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* type Shape = Circle | Square;
|
|
7
|
+
* function area(s: Shape): number {
|
|
8
|
+
* switch(s.type) {
|
|
9
|
+
* case 'circle': return Math.PI * s.radius ** 2;
|
|
10
|
+
* case 'square': return s.sideLength ** 2;
|
|
11
|
+
* default: return assertUnreachable(s); // ensures that all cases are covered
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
2
16
|
export declare function assertUnreachable(x: never): never;
|
|
17
|
+
/**
|
|
18
|
+
* Verifies that the given value is not undefined.
|
|
19
|
+
* This especially helps with a `.filter`
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const values: (number | undefined)[] = [1, 2, undefined, 4];
|
|
23
|
+
* const definedValues: number[] = values.filter(isNotUndefined);
|
|
24
|
+
* // definedValues is now of type number[]
|
|
25
|
+
* ```
|
|
26
|
+
* @see {@link isUndefined}
|
|
27
|
+
* @see {@link isNotNull}
|
|
28
|
+
*/
|
|
3
29
|
export declare function isNotUndefined<T>(x: T | undefined): x is T;
|
|
30
|
+
/**
|
|
31
|
+
* Verifies that the given value is undefined.
|
|
32
|
+
* This especially helps with a `.filter`
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const values: (number | undefined)[] = [1, 2, undefined, 4];
|
|
36
|
+
* const undefinedValues: undefined[] = values.filter(isUndefined);
|
|
37
|
+
* // undefinedValues is now of type undefined[]
|
|
38
|
+
* ```
|
|
39
|
+
* @see {@link isNotUndefined}
|
|
40
|
+
* @see {@link isNotNull}
|
|
41
|
+
*/
|
|
4
42
|
export declare function isUndefined<T>(x: T | undefined): x is undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Verifies that the given value is not null.
|
|
45
|
+
* This especially helps with a `.filter`
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* const values: (number | null)[] = [1, 2, null, 4];
|
|
49
|
+
* const nonNullValues: number[] = values.filter(isNotNull);
|
|
50
|
+
* // nonNullValues is now of type number[]
|
|
51
|
+
* ```
|
|
52
|
+
* @see {@link isUndefined}
|
|
53
|
+
* @see {@link isNotUndefined}
|
|
54
|
+
*/
|
|
5
55
|
export declare function isNotNull<T>(x: T | null): x is T;
|
|
56
|
+
/**
|
|
57
|
+
* Generates a GitHub issue URL for reporting guard errors
|
|
58
|
+
*/
|
|
59
|
+
export declare function getGuardIssueUrl(message: string): string;
|
|
6
60
|
export type GuardMessage = string | (() => string);
|
|
7
61
|
/**
|
|
8
|
-
* @param assertion
|
|
9
|
-
* @param message
|
|
62
|
+
* @param assertion - will be asserted
|
|
63
|
+
* @param message - if a string, we will use it as the error message, if it is a function, we will call it to produce the error message (can be used to avoid costly message generations)
|
|
10
64
|
* @throws GuardError - if the assertion fails
|
|
11
65
|
*/
|
|
12
66
|
export declare function guard(assertion: unknown | undefined, message?: GuardMessage): asserts assertion;
|
package/util/assert.js
CHANGED
|
@@ -5,18 +5,69 @@ exports.assertUnreachable = assertUnreachable;
|
|
|
5
5
|
exports.isNotUndefined = isNotUndefined;
|
|
6
6
|
exports.isUndefined = isUndefined;
|
|
7
7
|
exports.isNotNull = isNotNull;
|
|
8
|
+
exports.getGuardIssueUrl = getGuardIssueUrl;
|
|
8
9
|
exports.guard = guard;
|
|
9
10
|
/* v8 ignore next */
|
|
10
11
|
const version_1 = require("./version");
|
|
12
|
+
/**
|
|
13
|
+
* Verifies, that the given code path is never reached.
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* type Shape = Circle | Square;
|
|
17
|
+
* function area(s: Shape): number {
|
|
18
|
+
* switch(s.type) {
|
|
19
|
+
* case 'circle': return Math.PI * s.radius ** 2;
|
|
20
|
+
* case 'square': return s.sideLength ** 2;
|
|
21
|
+
* default: return assertUnreachable(s); // ensures that all cases are covered
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
11
26
|
function assertUnreachable(x) {
|
|
12
27
|
throw new Error(`Unexpected object: ${JSON.stringify(x)}`);
|
|
13
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Verifies that the given value is not undefined.
|
|
31
|
+
* This especially helps with a `.filter`
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const values: (number | undefined)[] = [1, 2, undefined, 4];
|
|
35
|
+
* const definedValues: number[] = values.filter(isNotUndefined);
|
|
36
|
+
* // definedValues is now of type number[]
|
|
37
|
+
* ```
|
|
38
|
+
* @see {@link isUndefined}
|
|
39
|
+
* @see {@link isNotNull}
|
|
40
|
+
*/
|
|
14
41
|
function isNotUndefined(x) {
|
|
15
42
|
return x !== undefined;
|
|
16
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Verifies that the given value is undefined.
|
|
46
|
+
* This especially helps with a `.filter`
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const values: (number | undefined)[] = [1, 2, undefined, 4];
|
|
50
|
+
* const undefinedValues: undefined[] = values.filter(isUndefined);
|
|
51
|
+
* // undefinedValues is now of type undefined[]
|
|
52
|
+
* ```
|
|
53
|
+
* @see {@link isNotUndefined}
|
|
54
|
+
* @see {@link isNotNull}
|
|
55
|
+
*/
|
|
17
56
|
function isUndefined(x) {
|
|
18
57
|
return x === undefined;
|
|
19
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Verifies that the given value is not null.
|
|
61
|
+
* This especially helps with a `.filter`
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* const values: (number | null)[] = [1, 2, null, 4];
|
|
65
|
+
* const nonNullValues: number[] = values.filter(isNotNull);
|
|
66
|
+
* // nonNullValues is now of type number[]
|
|
67
|
+
* ```
|
|
68
|
+
* @see {@link isUndefined}
|
|
69
|
+
* @see {@link isNotUndefined}
|
|
70
|
+
*/
|
|
20
71
|
function isNotNull(x) {
|
|
21
72
|
return x !== null;
|
|
22
73
|
}
|
|
@@ -36,6 +87,9 @@ function prepareStack(stack) {
|
|
|
36
87
|
}
|
|
37
88
|
return lines.map(l => l.replaceAll(/\(\/.*(src|test)/g, '(<>/$1')).join('\n');
|
|
38
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Generates a GitHub issue URL for reporting guard errors
|
|
92
|
+
*/
|
|
39
93
|
function getGuardIssueUrl(message) {
|
|
40
94
|
const body = encodeURIComponent(`<!-- Please describe your issue in more detail below! -->
|
|
41
95
|
|
|
@@ -61,8 +115,8 @@ class GuardError extends Error {
|
|
|
61
115
|
}
|
|
62
116
|
}
|
|
63
117
|
/**
|
|
64
|
-
* @param assertion
|
|
65
|
-
* @param message
|
|
118
|
+
* @param assertion - will be asserted
|
|
119
|
+
* @param message - if a string, we will use it as the error message, if it is a function, we will call it to produce the error message (can be used to avoid costly message generations)
|
|
66
120
|
* @throws GuardError - if the assertion fails
|
|
67
121
|
*/
|
|
68
122
|
function guard(assertion, message = 'Assertion failed') {
|
|
@@ -18,7 +18,6 @@ export type LastOfArray<T extends AnyArray> = T extends [...infer _, infer L] ?
|
|
|
18
18
|
/**
|
|
19
19
|
* Splits the array every time the given predicate fires.
|
|
20
20
|
* The element the split appears on will not be included!
|
|
21
|
-
*
|
|
22
21
|
* @example with this we can split on all empty strings:
|
|
23
22
|
* ```
|
|
24
23
|
* splitArrayOn(['a', '', 'b', '', '', 'c'], elem => elem === '')
|
|
@@ -38,11 +37,14 @@ export declare function splitArrayOn<T>(arr: readonly T[], predicate: (elem: T)
|
|
|
38
37
|
export declare function partitionArray<T>(arr: readonly T[], predicate: (elem: T) => boolean): [T[], T[]];
|
|
39
38
|
/**
|
|
40
39
|
* Generate all permutations of the given array using Heap's algorithm (with its non-recursive variant).
|
|
41
|
-
*
|
|
42
40
|
* @param arr - The array to permute
|
|
43
41
|
* @see getUniqueCombinationsOfSize
|
|
44
42
|
*/
|
|
45
43
|
export declare function allPermutations<T>(arr: T[]): Generator<T[], void, void>;
|
|
44
|
+
/**
|
|
45
|
+
* Returns a tuple of two arrays, where the first one contains all elements for which the predicate returned true,
|
|
46
|
+
* and the second one contains all elements for which the predicate returned false.
|
|
47
|
+
*/
|
|
46
48
|
export declare function partition<T>(arr: T[], predicate: (elem: T) => boolean): [T[], T[]];
|
|
47
49
|
/**
|
|
48
50
|
* Generate all unique combinations of the array with the given size.
|
|
@@ -50,7 +52,6 @@ export declare function partition<T>(arr: T[], predicate: (elem: T) => boolean):
|
|
|
50
52
|
* but not, e.g., `[a,a]` or `[b,a]`.
|
|
51
53
|
*
|
|
52
54
|
* If `minSize!=maxSize`, the result is guaranteed to be sorted by size.
|
|
53
|
-
*
|
|
54
55
|
* @param array - The array to generate combinations from
|
|
55
56
|
* @param minSize - The inclusive minimum size of the combinations, must be at least `0` and at most `maxSize`
|
|
56
57
|
* @param maxSize - The inclusive maximum size of the combinations, must be at least `minSize` and at most `array.length`
|
|
@@ -64,13 +65,15 @@ export declare function arraySum(arr: readonly number[]): number;
|
|
|
64
65
|
* Converts an array into a bag data-structure (in the form of a map mapping the entries/keys to their counts)
|
|
65
66
|
*/
|
|
66
67
|
export declare function array2bag<T>(arr: T[]): Map<T, number>;
|
|
68
|
+
/**
|
|
69
|
+
* Compares two arrays for equality, using the given comparison function for the elements.
|
|
70
|
+
*/
|
|
67
71
|
export declare function arrayEqual<T>(a: readonly T[] | undefined, b: readonly T[] | undefined, cmp?: (a: T, b: T) => boolean): boolean;
|
|
68
72
|
/**
|
|
69
73
|
* Samples elements from a list such that the distance between the sampled elements is as equal as possible.
|
|
70
74
|
*
|
|
71
75
|
* If the number of elements to sample is greater or equal to the number of elements in the list, the list is returned as is.
|
|
72
76
|
* If the number of elements to sample is less than or equal to 0, an empty list is returned.
|
|
73
|
-
*
|
|
74
77
|
* @param list - list of elements
|
|
75
78
|
* @param sampleCount - number of elements to sample
|
|
76
79
|
* @param rounding - rounding mode to use for the index calculation
|
|
@@ -85,9 +88,11 @@ export declare function equidistantSampling<T>(list: readonly T[], sampleCount:
|
|
|
85
88
|
* cartesianProduct([1, 2], ['a', 'b', 'c'], [true, false])
|
|
86
89
|
* // -> [[1, 'a', true], [1, 'a', false], [1, 'b', true], [1, 'b', false], [1, 'c', true], [1, 'c', false], [2, 'a', true], [2, 'a', false], [2, 'b', true], [2, 'b', false], [2, 'c', true], [2, 'c', false]]
|
|
87
90
|
* ```
|
|
88
|
-
*
|
|
89
91
|
*/
|
|
90
92
|
export declare function cartesianProduct<T>(...arrays: T[][]): T[][];
|
|
91
93
|
/** merge two arrays, removing duplicates */
|
|
92
94
|
export declare function uniqueArrayMerge<T>(left: readonly T[], right: readonly T[]): T[];
|
|
95
|
+
/**
|
|
96
|
+
* Groups the elements of the given array by the key returned by the given key function.
|
|
97
|
+
*/
|
|
93
98
|
export declare function arraysGroupBy<T, K>(arr: readonly T[], keyFn: (elem: T) => K): Map<K, T[]>;
|
|
@@ -16,7 +16,6 @@ const assert_1 = require("../assert");
|
|
|
16
16
|
/**
|
|
17
17
|
* Splits the array every time the given predicate fires.
|
|
18
18
|
* The element the split appears on will not be included!
|
|
19
|
-
*
|
|
20
19
|
* @example with this we can split on all empty strings:
|
|
21
20
|
* ```
|
|
22
21
|
* splitArrayOn(['a', '', 'b', '', '', 'c'], elem => elem === '')
|
|
@@ -66,7 +65,6 @@ function partitionArray(arr, predicate) {
|
|
|
66
65
|
}
|
|
67
66
|
/**
|
|
68
67
|
* Generate all permutations of the given array using Heap's algorithm (with its non-recursive variant).
|
|
69
|
-
*
|
|
70
68
|
* @param arr - The array to permute
|
|
71
69
|
* @see getUniqueCombinationsOfSize
|
|
72
70
|
*/
|
|
@@ -91,6 +89,10 @@ function* allPermutations(arr) {
|
|
|
91
89
|
}
|
|
92
90
|
}
|
|
93
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns a tuple of two arrays, where the first one contains all elements for which the predicate returned true,
|
|
94
|
+
* and the second one contains all elements for which the predicate returned false.
|
|
95
|
+
*/
|
|
94
96
|
function partition(arr, predicate) {
|
|
95
97
|
const left = [];
|
|
96
98
|
const right = [];
|
|
@@ -110,7 +112,6 @@ function partition(arr, predicate) {
|
|
|
110
112
|
* but not, e.g., `[a,a]` or `[b,a]`.
|
|
111
113
|
*
|
|
112
114
|
* If `minSize!=maxSize`, the result is guaranteed to be sorted by size.
|
|
113
|
-
*
|
|
114
115
|
* @param array - The array to generate combinations from
|
|
115
116
|
* @param minSize - The inclusive minimum size of the combinations, must be at least `0` and at most `maxSize`
|
|
116
117
|
* @param maxSize - The inclusive maximum size of the combinations, must be at least `minSize` and at most `array.length`
|
|
@@ -164,6 +165,9 @@ function array2bag(arr) {
|
|
|
164
165
|
}
|
|
165
166
|
return result;
|
|
166
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Compares two arrays for equality, using the given comparison function for the elements.
|
|
170
|
+
*/
|
|
167
171
|
function arrayEqual(a, b, cmp = (a, b) => a === b) {
|
|
168
172
|
if (a === undefined || b === undefined) {
|
|
169
173
|
return a === b;
|
|
@@ -183,7 +187,6 @@ function arrayEqual(a, b, cmp = (a, b) => a === b) {
|
|
|
183
187
|
*
|
|
184
188
|
* If the number of elements to sample is greater or equal to the number of elements in the list, the list is returned as is.
|
|
185
189
|
* If the number of elements to sample is less than or equal to 0, an empty list is returned.
|
|
186
|
-
*
|
|
187
190
|
* @param list - list of elements
|
|
188
191
|
* @param sampleCount - number of elements to sample
|
|
189
192
|
* @param rounding - rounding mode to use for the index calculation
|
|
@@ -212,7 +215,6 @@ function equidistantSampling(list, sampleCount, rounding = 'ceil') {
|
|
|
212
215
|
* cartesianProduct([1, 2], ['a', 'b', 'c'], [true, false])
|
|
213
216
|
* // -> [[1, 'a', true], [1, 'a', false], [1, 'b', true], [1, 'b', false], [1, 'c', true], [1, 'c', false], [2, 'a', true], [2, 'a', false], [2, 'b', true], [2, 'b', false], [2, 'c', true], [2, 'c', false]]
|
|
214
217
|
* ```
|
|
215
|
-
*
|
|
216
218
|
*/
|
|
217
219
|
function cartesianProduct(...arrays) {
|
|
218
220
|
return arrays.reduce((a, b) => a.flatMap(x => b.map(y => x.concat(y))), [[]]);
|
|
@@ -225,6 +227,9 @@ function uniqueArrayMerge(left, right) {
|
|
|
225
227
|
}
|
|
226
228
|
return Array.from(result);
|
|
227
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Groups the elements of the given array by the key returned by the given key function.
|
|
232
|
+
*/
|
|
228
233
|
function arraysGroupBy(arr, keyFn) {
|
|
229
234
|
const result = new Map();
|
|
230
235
|
for (const elem of arr) {
|
|
@@ -8,23 +8,23 @@ export declare class DefaultMap<K, V = K> {
|
|
|
8
8
|
/** generator function to produce a default value for a given key */
|
|
9
9
|
private readonly generator;
|
|
10
10
|
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
* @param generator - the generator to produce a default value for a given key
|
|
12
|
+
* @param map - the initial map to start with
|
|
13
|
+
*/
|
|
14
14
|
constructor(generator: (k: K) => V, map?: Map<K, V>);
|
|
15
15
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
* Sets a value for a given key.
|
|
17
|
+
* As you provide value, this does not invoke the generator!
|
|
18
|
+
*/
|
|
19
19
|
set(k: K, v: V): this;
|
|
20
20
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
* Return a value for the given key, if the key does not exist within the default map,
|
|
22
|
+
* this will invoke the generator and assign the produced value.
|
|
23
|
+
*/
|
|
24
24
|
get(k: K): V;
|
|
25
25
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
* Iterates over all entries that have been set (explicitly or by the generator)
|
|
27
|
+
*/
|
|
28
28
|
entries(): IterableIterator<[K, V]>;
|
|
29
29
|
/** returns only the keys really stored in the map */
|
|
30
30
|
keys(): IterableIterator<K>;
|
|
@@ -11,25 +11,25 @@ class DefaultMap {
|
|
|
11
11
|
/** generator function to produce a default value for a given key */
|
|
12
12
|
generator;
|
|
13
13
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
* @param generator - the generator to produce a default value for a given key
|
|
15
|
+
* @param map - the initial map to start with
|
|
16
|
+
*/
|
|
17
17
|
constructor(generator, map = new Map()) {
|
|
18
18
|
this.generator = generator;
|
|
19
19
|
this.internal = map;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
* Sets a value for a given key.
|
|
23
|
+
* As you provide value, this does not invoke the generator!
|
|
24
|
+
*/
|
|
25
25
|
set(k, v) {
|
|
26
26
|
this.internal.set(k, v);
|
|
27
27
|
return this;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
* Return a value for the given key, if the key does not exist within the default map,
|
|
31
|
+
* this will invoke the generator and assign the produced value.
|
|
32
|
+
*/
|
|
33
33
|
get(k) {
|
|
34
34
|
const potential = this.internal.get(k);
|
|
35
35
|
if (potential !== undefined) {
|
|
@@ -42,8 +42,8 @@ class DefaultMap {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
* Iterates over all entries that have been set (explicitly or by the generator)
|
|
46
|
+
*/
|
|
47
47
|
entries() {
|
|
48
48
|
return this.internal.entries();
|
|
49
49
|
}
|
package/util/containers.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { REnvironmentInformation } from '../dataflow/environments/environment';
|
|
2
2
|
import type { Identifier } from '../dataflow/environments/identifier';
|
|
3
|
-
import type
|
|
3
|
+
import { type ContainerIndices, type ContainerIndicesCollection, type IndexIdentifier } from '../dataflow/graph/vertex';
|
|
4
4
|
import type { RAccess } from '../r-bridge/lang-4.x/ast/model/nodes/r-access';
|
|
5
5
|
import type { RArgument } from '../r-bridge/lang-4.x/ast/model/nodes/r-argument';
|
|
6
|
-
import type
|
|
6
|
+
import { type RFunctionArgument } from '../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
|
|
7
7
|
import type { ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
8
8
|
/**
|
|
9
9
|
* Returns the accessed and access argument of an access operation by filtering the operation arguments.
|
|
@@ -14,7 +14,6 @@ export declare function getAccessOperands<OtherInfo>(args: readonly RFunctionArg
|
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
16
|
* Resolves the passed name within the passed environment and returns the indicesCollection of the resolved definitions.
|
|
17
|
-
*
|
|
18
17
|
* @param name - Name to resolve
|
|
19
18
|
* @param environment - Environment in which name is resolved
|
|
20
19
|
* @returns The indicesCollection of the resolved definitions
|
|
@@ -24,7 +23,6 @@ export declare function resolveIndicesByName(name: Identifier, environment: REnv
|
|
|
24
23
|
* Resolves {@link accessedArg} in the {@link environment} and filters its indices according to {@link accessArg}.
|
|
25
24
|
*
|
|
26
25
|
* If no indices could be found that match the `accessArg`, the original indices are returned as overapproximation.
|
|
27
|
-
*
|
|
28
26
|
* @param accessedArg - The argument to resolve
|
|
29
27
|
* @param accessArg - The argument which is used to filter the indices
|
|
30
28
|
* @param environment - The environment in which {@link accessedArg} is resolved
|
|
@@ -38,7 +36,6 @@ export declare function resolveSingleIndex(accessedArg: {
|
|
|
38
36
|
}, environment: REnvironmentInformation, isIndexBasedAccess: boolean): ContainerIndicesCollection;
|
|
39
37
|
/**
|
|
40
38
|
* Filters the single indices of the {@link indicesCollection} according to the lexeme of the {@link accessArg}.
|
|
41
|
-
*
|
|
42
39
|
* @param indicesCollection - The {@link ContainerIndicesCollection} to filter
|
|
43
40
|
* @param accessArg - The argument which is used to filter {@link indicesCollection}
|
|
44
41
|
* @param isIndexBasedAccess - Whether the access is index-based (e.g. `x[1]`) or name-based (e.g. `x$name`)
|
|
@@ -55,7 +52,6 @@ export declare function filterIndices(indicesCollection: ContainerIndicesCollect
|
|
|
55
52
|
* person$credentials$username
|
|
56
53
|
* ```
|
|
57
54
|
* would result in a list with the index `credentials`, which has the subIndex `username`.
|
|
58
|
-
*
|
|
59
55
|
* @param accessedArg - The top level argument that is accessed
|
|
60
56
|
* @param leafIndices - The index at the end of the nested access i.e. `c` in `a$b$c`.
|
|
61
57
|
* @param constructIdentifier - A function that constructs the identifier for the index from the argument
|
|
@@ -64,7 +60,6 @@ export declare function filterIndices(indicesCollection: ContainerIndicesCollect
|
|
|
64
60
|
export declare function constructNestedAccess<OtherInfo>(accessedArg: RAccess<OtherInfo & ParentInformation>, leafIndices: ContainerIndices, constructIdentifier: (arg: RArgument<OtherInfo & ParentInformation>) => IndexIdentifier): ContainerIndices[];
|
|
65
61
|
/**
|
|
66
62
|
* Adds the passed list of {@link leafSubIndices} to the leaf (sub-)indices of {@link indicesCollection}.
|
|
67
|
-
*
|
|
68
63
|
* @param indicesCollection - Indices where to add the sub indices.
|
|
69
64
|
* @param leafSubIndices - Indices that are added to the leaf indices.
|
|
70
65
|
*/
|
package/util/containers.js
CHANGED
|
@@ -21,7 +21,6 @@ function getAccessOperands(args) {
|
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Resolves the passed name within the passed environment and returns the indicesCollection of the resolved definitions.
|
|
24
|
-
*
|
|
25
24
|
* @param name - Name to resolve
|
|
26
25
|
* @param environment - Environment in which name is resolved
|
|
27
26
|
* @returns The indicesCollection of the resolved definitions
|
|
@@ -34,7 +33,6 @@ function resolveIndicesByName(name, environment) {
|
|
|
34
33
|
* Resolves {@link accessedArg} in the {@link environment} and filters its indices according to {@link accessArg}.
|
|
35
34
|
*
|
|
36
35
|
* If no indices could be found that match the `accessArg`, the original indices are returned as overapproximation.
|
|
37
|
-
*
|
|
38
36
|
* @param accessedArg - The argument to resolve
|
|
39
37
|
* @param accessArg - The argument which is used to filter the indices
|
|
40
38
|
* @param environment - The environment in which {@link accessedArg} is resolved
|
|
@@ -55,7 +53,6 @@ function resolveSingleIndex(accessedArg, accessArg, environment, isIndexBasedAcc
|
|
|
55
53
|
}
|
|
56
54
|
/**
|
|
57
55
|
* Filters the single indices of the {@link indicesCollection} according to the lexeme of the {@link accessArg}.
|
|
58
|
-
*
|
|
59
56
|
* @param indicesCollection - The {@link ContainerIndicesCollection} to filter
|
|
60
57
|
* @param accessArg - The argument which is used to filter {@link indicesCollection}
|
|
61
58
|
* @param isIndexBasedAccess - Whether the access is index-based (e.g. `x[1]`) or name-based (e.g. `x$name`)
|
|
@@ -84,7 +81,6 @@ function filterIndices(indicesCollection, accessArg, isIndexBasedAccess) {
|
|
|
84
81
|
* person$credentials$username
|
|
85
82
|
* ```
|
|
86
83
|
* would result in a list with the index `credentials`, which has the subIndex `username`.
|
|
87
|
-
*
|
|
88
84
|
* @param accessedArg - The top level argument that is accessed
|
|
89
85
|
* @param leafIndices - The index at the end of the nested access i.e. `c` in `a$b$c`.
|
|
90
86
|
* @param constructIdentifier - A function that constructs the identifier for the index from the argument
|
|
@@ -117,7 +113,6 @@ function constructNestedAccess(accessedArg, leafIndices, constructIdentifier) {
|
|
|
117
113
|
}
|
|
118
114
|
/**
|
|
119
115
|
* Adds the passed list of {@link leafSubIndices} to the leaf (sub-)indices of {@link indicesCollection}.
|
|
120
|
-
*
|
|
121
116
|
* @param indicesCollection - Indices where to add the sub indices.
|
|
122
117
|
* @param leafSubIndices - Indices that are added to the leaf indices.
|
|
123
118
|
*/
|
package/util/diff-graph.d.ts
CHANGED
|
@@ -17,7 +17,6 @@ interface ProblematicEdge {
|
|
|
17
17
|
export type ProblematicDiffInfo = ProblematicVertex | ProblematicEdge;
|
|
18
18
|
/**
|
|
19
19
|
* To be produced by a function differencing two graphs (e.g., {@link DataflowGraph|DFGs} or {@link ControlFlowGraph|CFGs}).
|
|
20
|
-
*
|
|
21
20
|
* @see {@link GraphDifferenceReport#isEqual|isEqual} - to check whether the graphs are equal
|
|
22
21
|
* @see {@link GraphDifferenceReport#addComment|addComment} - to add comments to the report
|
|
23
22
|
* @see {@link GraphDifferenceReport#comments|comments} - to get the attached comments
|
package/util/diff-graph.js
CHANGED
|
@@ -4,7 +4,6 @@ exports.GraphDifferenceReport = void 0;
|
|
|
4
4
|
exports.initDiffContext = initDiffContext;
|
|
5
5
|
/**
|
|
6
6
|
* To be produced by a function differencing two graphs (e.g., {@link DataflowGraph|DFGs} or {@link ControlFlowGraph|CFGs}).
|
|
7
|
-
*
|
|
8
7
|
* @see {@link GraphDifferenceReport#isEqual|isEqual} - to check whether the graphs are equal
|
|
9
8
|
* @see {@link GraphDifferenceReport#addComment|addComment} - to add comments to the report
|
|
10
9
|
* @see {@link GraphDifferenceReport#comments|comments} - to get the attached comments
|
package/util/diff.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provides utility types and functions to provide difference information if two structures
|
|
3
3
|
* are not equal. Maybe. Sometime, in the far future this will be as capable as the waldo package :dream:
|
|
4
|
-
*
|
|
5
4
|
* @module
|
|
6
5
|
*/
|
|
7
6
|
import type { MergeableRecord } from './objects';
|
|
@@ -52,4 +51,7 @@ export interface GenericDiffConfiguration {
|
|
|
52
51
|
*/
|
|
53
52
|
readonly leftIsSubgraph?: boolean;
|
|
54
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Computes the difference of two sets and adds human-readable information to the current report
|
|
56
|
+
*/
|
|
55
57
|
export declare function setDifference<T, Report extends WriteableDifferenceReport = WriteableDifferenceReport>(left: ReadonlySet<T>, right: ReadonlySet<T>, info: GenericDifferenceInformation<Report>): void;
|
package/util/diff.js
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Provides utility types and functions to provide difference information if two structures
|
|
4
4
|
* are not equal. Maybe. Sometime, in the far future this will be as capable as the waldo package :dream:
|
|
5
|
-
*
|
|
6
5
|
* @module
|
|
7
6
|
*/
|
|
8
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
8
|
exports.setDifference = setDifference;
|
|
10
9
|
const set_1 = require("./collections/set");
|
|
10
|
+
/**
|
|
11
|
+
* Computes the difference of two sets and adds human-readable information to the current report
|
|
12
|
+
*/
|
|
11
13
|
function setDifference(left, right, info) {
|
|
12
14
|
const lWithoutR = (0, set_1.setMinus)(left, right);
|
|
13
15
|
const rWithoutL = (0, set_1.setMinus)(right, left);
|
package/util/files.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type PathLike } from 'fs';
|
|
2
2
|
import type { RParseRequestFromFile } from '../r-bridge/retriever';
|
|
3
3
|
import type { FlowrFileProvider } from '../project/context/flowr-file';
|
|
4
4
|
/**
|
|
@@ -13,45 +13,43 @@ export interface Table {
|
|
|
13
13
|
* @param dir - Directory path to start the search from
|
|
14
14
|
* @param suffix - Suffix of the files to be retrieved
|
|
15
15
|
* Based on {@link https://stackoverflow.com/a/45130990}
|
|
16
|
-
*
|
|
17
16
|
* @see {@link getAllFilesSync} for a synchronous version.
|
|
18
17
|
*/
|
|
19
18
|
export declare function getAllFiles(dir: string, suffix?: RegExp): AsyncGenerator<string>;
|
|
20
19
|
/**
|
|
21
20
|
* Retrieves all files in the given directory recursively (synchronously)
|
|
22
|
-
*
|
|
23
21
|
* @see {@link getAllFiles} - for an asynchronous version.
|
|
24
22
|
*/
|
|
25
23
|
export declare function getAllFilesSync(dir: string, suffix?: RegExp): Generator<string>;
|
|
26
24
|
/**
|
|
27
25
|
* Retrieves all R files in a given directory (asynchronously)
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
26
|
* @param input - directory-path to start the search from, can be a file as well. Will just return the file then.
|
|
31
27
|
* @param limit - limit the number of files to be retrieved
|
|
32
|
-
*
|
|
33
28
|
* @returns Number of files processed (normally ≤ `limit`, is ≥ `limit` if limit was reached).
|
|
34
29
|
* Will be `1`, if `input` is an R file (and `0` if it isn't).
|
|
35
|
-
*
|
|
36
30
|
* @see getAllFiles
|
|
37
31
|
*/
|
|
38
32
|
export declare function allRFiles(input: string, limit?: number): AsyncGenerator<RParseRequestFromFile, number>;
|
|
39
33
|
/**
|
|
40
34
|
* Retrieves all R files in a given set of directories and files (asynchronously)
|
|
41
|
-
*
|
|
42
35
|
* @param inputs - Files or directories to validate for R-files
|
|
43
36
|
* @param limit - Limit the number of files to be retrieved
|
|
44
37
|
* @returns Number of files processed (≤ limit)
|
|
45
|
-
*
|
|
46
38
|
* @see allRFiles
|
|
47
39
|
*/
|
|
48
40
|
export declare function allRFilesFrom(inputs: string[], limit?: number): AsyncGenerator<RParseRequestFromFile, number>;
|
|
41
|
+
/**
|
|
42
|
+
* Writes the given table as a CSV file.
|
|
43
|
+
* @param table - The table to write
|
|
44
|
+
* @param file - The file path to write the CSV to
|
|
45
|
+
* @param sep - The separator to use (default: `,`)
|
|
46
|
+
* @param newline - The newline character to use (default: `\n`)
|
|
47
|
+
*/
|
|
49
48
|
export declare function writeTableAsCsv(table: Table, file: string, sep?: string, newline?: string): void;
|
|
50
49
|
/**
|
|
51
50
|
* Reads a file line by line and calls the given function for each line.
|
|
52
51
|
* The `lineNumber` starts at `0`.
|
|
53
52
|
* The `maxLines` option limits the maximum number of read lines and is `Infinity` by default.
|
|
54
|
-
*
|
|
55
53
|
* @returns Whether all lines have been successfully read (`false` if `maxLines` was reached)
|
|
56
54
|
*
|
|
57
55
|
* See {@link readLineByLineSync} for a synchronous version.
|
|
@@ -61,7 +59,6 @@ export declare function readLineByLine(filePath: string, onLine: (line: Buffer,
|
|
|
61
59
|
* Reads a file line by line and calls the given function for each line.
|
|
62
60
|
* The `lineNumber` starts at `0`.
|
|
63
61
|
* The `maxLines` option limits the maximum number of read lines and is `Infinity` by default.
|
|
64
|
-
*
|
|
65
62
|
* @returns Whether the file exists and all lines have been successfully read (`false` if `maxLines` was reached)
|
|
66
63
|
*
|
|
67
64
|
* See {@link readLineByLine} for an asynchronous version.
|
|
@@ -78,5 +75,8 @@ export declare function getParentDirectory(directory: string): string;
|
|
|
78
75
|
* @param file - The file to parse
|
|
79
76
|
* @returns Map containing the keys and values of the provided file.
|
|
80
77
|
*/
|
|
81
|
-
export declare function parseDCF(file: FlowrFileProvider
|
|
78
|
+
export declare function parseDCF(file: FlowrFileProvider): Map<string, string[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Checks whether the given path-like object is a file that exists on the local filesystem.
|
|
81
|
+
*/
|
|
82
82
|
export declare function isFilePath(p: PathLike): boolean;
|