@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/files.js
CHANGED
|
@@ -55,7 +55,6 @@ const n_readlines_1 = __importDefault(require("n-readlines"));
|
|
|
55
55
|
* @param dir - Directory path to start the search from
|
|
56
56
|
* @param suffix - Suffix of the files to be retrieved
|
|
57
57
|
* Based on {@link https://stackoverflow.com/a/45130990}
|
|
58
|
-
*
|
|
59
58
|
* @see {@link getAllFilesSync} for a synchronous version.
|
|
60
59
|
*/
|
|
61
60
|
async function* getAllFiles(dir, suffix = /.*/) {
|
|
@@ -72,7 +71,6 @@ async function* getAllFiles(dir, suffix = /.*/) {
|
|
|
72
71
|
}
|
|
73
72
|
/**
|
|
74
73
|
* Retrieves all files in the given directory recursively (synchronously)
|
|
75
|
-
*
|
|
76
74
|
* @see {@link getAllFiles} - for an asynchronous version.
|
|
77
75
|
*/
|
|
78
76
|
function* getAllFilesSync(dir, suffix = /.*/) {
|
|
@@ -90,14 +88,10 @@ function* getAllFilesSync(dir, suffix = /.*/) {
|
|
|
90
88
|
const rFileRegex = /\.[rR]$/;
|
|
91
89
|
/**
|
|
92
90
|
* Retrieves all R files in a given directory (asynchronously)
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
91
|
* @param input - directory-path to start the search from, can be a file as well. Will just return the file then.
|
|
96
92
|
* @param limit - limit the number of files to be retrieved
|
|
97
|
-
*
|
|
98
93
|
* @returns Number of files processed (normally ≤ `limit`, is ≥ `limit` if limit was reached).
|
|
99
94
|
* Will be `1`, if `input` is an R file (and `0` if it isn't).
|
|
100
|
-
*
|
|
101
95
|
* @see getAllFiles
|
|
102
96
|
*/
|
|
103
97
|
async function* allRFiles(input, limit = Number.MAX_VALUE) {
|
|
@@ -120,11 +114,9 @@ async function* allRFiles(input, limit = Number.MAX_VALUE) {
|
|
|
120
114
|
}
|
|
121
115
|
/**
|
|
122
116
|
* Retrieves all R files in a given set of directories and files (asynchronously)
|
|
123
|
-
*
|
|
124
117
|
* @param inputs - Files or directories to validate for R-files
|
|
125
118
|
* @param limit - Limit the number of files to be retrieved
|
|
126
119
|
* @returns Number of files processed (≤ limit)
|
|
127
|
-
*
|
|
128
120
|
* @see allRFiles
|
|
129
121
|
*/
|
|
130
122
|
async function* allRFilesFrom(inputs, limit) {
|
|
@@ -139,6 +131,13 @@ async function* allRFilesFrom(inputs, limit) {
|
|
|
139
131
|
}
|
|
140
132
|
return count;
|
|
141
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Writes the given table as a CSV file.
|
|
136
|
+
* @param table - The table to write
|
|
137
|
+
* @param file - The file path to write the CSV to
|
|
138
|
+
* @param sep - The separator to use (default: `,`)
|
|
139
|
+
* @param newline - The newline character to use (default: `\n`)
|
|
140
|
+
*/
|
|
142
141
|
function writeTableAsCsv(table, file, sep = ',', newline = '\n') {
|
|
143
142
|
const csv = [table.header.join(sep), ...table.rows.map(row => row.join(sep))].join(newline);
|
|
144
143
|
fs_1.default.writeFileSync(file, csv);
|
|
@@ -147,7 +146,6 @@ function writeTableAsCsv(table, file, sep = ',', newline = '\n') {
|
|
|
147
146
|
* Reads a file line by line and calls the given function for each line.
|
|
148
147
|
* The `lineNumber` starts at `0`.
|
|
149
148
|
* The `maxLines` option limits the maximum number of read lines and is `Infinity` by default.
|
|
150
|
-
*
|
|
151
149
|
* @returns Whether all lines have been successfully read (`false` if `maxLines` was reached)
|
|
152
150
|
*
|
|
153
151
|
* See {@link readLineByLineSync} for a synchronous version.
|
|
@@ -173,7 +171,6 @@ async function readLineByLine(filePath, onLine, maxLines = Infinity) {
|
|
|
173
171
|
* Reads a file line by line and calls the given function for each line.
|
|
174
172
|
* The `lineNumber` starts at `0`.
|
|
175
173
|
* The `maxLines` option limits the maximum number of read lines and is `Infinity` by default.
|
|
176
|
-
*
|
|
177
174
|
* @returns Whether the file exists and all lines have been successfully read (`false` if `maxLines` was reached)
|
|
178
175
|
*
|
|
179
176
|
* See {@link readLineByLine} for an asynchronous version.
|
|
@@ -215,7 +212,7 @@ function parseDCF(file) {
|
|
|
215
212
|
let currentValue = '';
|
|
216
213
|
const indentRegex = new RegExp(/^\s/);
|
|
217
214
|
const firstColonRegex = new RegExp(/:(.*)/s);
|
|
218
|
-
const fileContent = file.content().split(/\r?\n/);
|
|
215
|
+
const fileContent = file.content().toString().split(/\r?\n/);
|
|
219
216
|
for (const line of fileContent) {
|
|
220
217
|
if (indentRegex.test(line)) {
|
|
221
218
|
currentValue += '\n' + line.trim();
|
|
@@ -244,6 +241,9 @@ function cleanValues(values) {
|
|
|
244
241
|
.map(s => s.trim().replace(cleanQuotesRegex, ''))
|
|
245
242
|
.filter(s => s.length > 0);
|
|
246
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Checks whether the given path-like object is a file that exists on the local filesystem.
|
|
246
|
+
*/
|
|
247
247
|
function isFilePath(p) {
|
|
248
248
|
return fs_1.default.existsSync(p) && fs_1.default.statSync(p).isFile();
|
|
249
249
|
}
|
package/util/html-hover-over.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.textWithTooltip = textWithTooltip;
|
|
4
|
+
/**
|
|
5
|
+
* Wraps the given text in a span with a tooltip if the tooltip is provided.
|
|
6
|
+
* @param text - The text to wrap
|
|
7
|
+
* @param tooltip - The tooltip to add
|
|
8
|
+
*/
|
|
4
9
|
function textWithTooltip(text, tooltip) {
|
|
5
10
|
return tooltip ? `<span title=${JSON.stringify(tooltip)}>${text}</span>` : text;
|
|
6
11
|
}
|
package/util/json.d.ts
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is flowR's custom JSON replacer, used to stringify flowR-internal structures.
|
|
3
|
+
* @see {@link jsonBigIntRetriever}
|
|
4
|
+
* @see {@link superBigJsonStringify}
|
|
5
|
+
*/
|
|
1
6
|
export declare function jsonReplacer(key: unknown, value: unknown): unknown;
|
|
7
|
+
/**
|
|
8
|
+
* This is flowR's custom JSON retriever, used to parse flowR-internal structures.
|
|
9
|
+
* @see {@link jsonReplacer}
|
|
10
|
+
* @see {@link superBigJsonStringify}
|
|
11
|
+
*/
|
|
2
12
|
export declare function jsonBigIntRetriever(key: string, value: unknown): unknown;
|
|
13
|
+
/**
|
|
14
|
+
* Stringifies potentially very large objects to JSON, sending chunks to the provided send function.
|
|
15
|
+
*/
|
|
3
16
|
export declare function superBigJsonStringify(obj: unknown, end: string, send: (s: string) => void): void;
|
package/util/json.js
CHANGED
|
@@ -5,6 +5,11 @@ exports.jsonReplacer = jsonReplacer;
|
|
|
5
5
|
exports.jsonBigIntRetriever = jsonBigIntRetriever;
|
|
6
6
|
exports.superBigJsonStringify = superBigJsonStringify;
|
|
7
7
|
const environment_1 = require("../dataflow/environments/environment");
|
|
8
|
+
/**
|
|
9
|
+
* This is flowR's custom JSON replacer, used to stringify flowR-internal structures.
|
|
10
|
+
* @see {@link jsonBigIntRetriever}
|
|
11
|
+
* @see {@link superBigJsonStringify}
|
|
12
|
+
*/
|
|
8
13
|
function jsonReplacer(key, value) {
|
|
9
14
|
if (key === 'fullLexeme') {
|
|
10
15
|
return undefined;
|
|
@@ -19,6 +24,11 @@ function jsonReplacer(key, value) {
|
|
|
19
24
|
return value;
|
|
20
25
|
}
|
|
21
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* This is flowR's custom JSON retriever, used to parse flowR-internal structures.
|
|
29
|
+
* @see {@link jsonReplacer}
|
|
30
|
+
* @see {@link superBigJsonStringify}
|
|
31
|
+
*/
|
|
22
32
|
function jsonBigIntRetriever(key, value) {
|
|
23
33
|
if (typeof value === 'string' && value.endsWith('n')) {
|
|
24
34
|
return BigInt(value.slice(0, -1));
|
|
@@ -27,6 +37,9 @@ function jsonBigIntRetriever(key, value) {
|
|
|
27
37
|
return value;
|
|
28
38
|
}
|
|
29
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Stringifies potentially very large objects to JSON, sending chunks to the provided send function.
|
|
42
|
+
*/
|
|
30
43
|
function superBigJsonStringify(obj, end, send) {
|
|
31
44
|
try {
|
|
32
45
|
const tryOut = JSON.stringify(obj, jsonReplacer) + end;
|
package/util/log.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export declare class FlowrLogger extends Logger<ILogObj> {
|
|
|
7
7
|
getSubLogger(settings?: ISettingsParam<ILogObj>, logObj?: ILogObj): Logger<ILogObj>;
|
|
8
8
|
updateSettings(updater: (logger: Logger<ILogObj>) => void): void;
|
|
9
9
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
* make the logger log to a file as well
|
|
11
|
+
*/
|
|
12
12
|
logToFile(filename?: string, options?: Options): void;
|
|
13
13
|
}
|
|
14
14
|
export declare const enum LogLevel {
|
package/util/log.js
CHANGED
package/util/mermaid/ast.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import type { RNodeWithParent } from '../../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
2
|
-
|
|
1
|
+
import type { ParentInformation, RNodeWithParent } from '../../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
2
|
+
import type { RProject } from '../../r-bridge/lang-4.x/ast/model/nodes/r-project';
|
|
3
|
+
/**
|
|
4
|
+
* Serialize the normalized AST to mermaid format
|
|
5
|
+
*/
|
|
6
|
+
export declare function normalizedAstToMermaid(ast: RProject<ParentInformation> | RNodeWithParent, prefix?: string): string;
|
|
3
7
|
/**
|
|
4
8
|
* Use mermaid to visualize the normalized AST.
|
|
5
9
|
*/
|
|
6
|
-
export declare function normalizedAstToMermaidUrl(ast: RNodeWithParent, prefix?: string): string;
|
|
10
|
+
export declare function normalizedAstToMermaidUrl(ast: RProject<ParentInformation> | RNodeWithParent, prefix?: string): string;
|
package/util/mermaid/ast.js
CHANGED
|
@@ -6,6 +6,17 @@ const mermaid_1 = require("./mermaid");
|
|
|
6
6
|
const visitor_1 = require("../../r-bridge/lang-4.x/ast/model/processing/visitor");
|
|
7
7
|
const type_1 = require("../../r-bridge/lang-4.x/ast/model/type");
|
|
8
8
|
const r_function_call_1 = require("../../r-bridge/lang-4.x/ast/model/nodes/r-function-call");
|
|
9
|
+
const flowr_file_1 = require("../../project/context/flowr-file");
|
|
10
|
+
function identifyMermaidDirection(prefix) {
|
|
11
|
+
const directionMatch = prefix.match(/flowchart (TD|LR|RL|BT)/);
|
|
12
|
+
if (directionMatch) {
|
|
13
|
+
return directionMatch[1];
|
|
14
|
+
}
|
|
15
|
+
return 'TD';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Serialize the normalized AST to mermaid format
|
|
19
|
+
*/
|
|
9
20
|
function normalizedAstToMermaid(ast, prefix = 'flowchart TD\n') {
|
|
10
21
|
let output = prefix;
|
|
11
22
|
function showNode(n) {
|
|
@@ -21,17 +32,37 @@ function normalizedAstToMermaid(ast, prefix = 'flowchart TD\n') {
|
|
|
21
32
|
output += ` n${n.info.id} -.-|"group-close"| n${n.grouping[1].info.id}\n`;
|
|
22
33
|
}
|
|
23
34
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
function showAst(ast) {
|
|
36
|
+
(0, visitor_1.visitAst)(ast, n => {
|
|
37
|
+
showNode(n);
|
|
38
|
+
if (n.type === 'RAccess' && (n.operator !== '[' && n.operator !== '[[')) {
|
|
39
|
+
for (const k of n.access) {
|
|
40
|
+
if (k !== r_function_call_1.EmptyArgument) {
|
|
41
|
+
showNode(k);
|
|
42
|
+
}
|
|
30
43
|
}
|
|
31
44
|
}
|
|
45
|
+
return false;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (ast.type === type_1.RType.Project) {
|
|
49
|
+
for (const f of ast.files) {
|
|
50
|
+
// add a subgraph for each file
|
|
51
|
+
if (ast.files.length !== 1 || (f.filePath && f.filePath !== flowr_file_1.FlowrFile.INLINE_PATH)) {
|
|
52
|
+
output += ` subgraph "File: ${(0, mermaid_1.escapeMarkdown)(f.filePath ?? flowr_file_1.FlowrFile.INLINE_PATH)}"\n`;
|
|
53
|
+
const direction = identifyMermaidDirection(prefix);
|
|
54
|
+
output += ` direction ${direction}\n`;
|
|
55
|
+
showAst(f.root);
|
|
56
|
+
output += ' end\n';
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
showAst(f.root);
|
|
60
|
+
}
|
|
32
61
|
}
|
|
33
|
-
|
|
34
|
-
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
showAst(ast);
|
|
65
|
+
}
|
|
35
66
|
return output;
|
|
36
67
|
}
|
|
37
68
|
/**
|
package/util/mermaid/cfg.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NormalizedAst } from '../../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
2
|
-
import type
|
|
2
|
+
import { type ControlFlowInformation } from '../../control-flow/control-flow-graph';
|
|
3
3
|
/**
|
|
4
4
|
* Convert the control flow graph to a mermaid string.
|
|
5
5
|
* @param cfg - The control flow graph to convert.
|
package/util/mermaid/cfg.js
CHANGED
|
@@ -43,7 +43,7 @@ function cfgToMermaid(cfg, normalizedAst, prefix = 'flowchart BT\n', simplify =
|
|
|
43
43
|
if (vertex.type === control_flow_graph_1.CfgVertexType.Block) {
|
|
44
44
|
if (simplify) {
|
|
45
45
|
const ids = vertex.elems?.map(e => e.id) ?? [];
|
|
46
|
-
const reconstruct = (0, reconstruct_1.reconstructToCode)(normalizedAst, new Set(ids), auto_select_defaults_1.doNotAutoSelect).code;
|
|
46
|
+
const reconstruct = (0, reconstruct_1.reconstructToCode)(normalizedAst, { nodes: new Set(ids) }, auto_select_defaults_1.doNotAutoSelect).code;
|
|
47
47
|
const name = `"\`Basic Block (${id})\n${(0, mermaid_1.escapeMarkdown)(reconstruct)}\`"`;
|
|
48
48
|
output += ` n${id}[[${name}]]\n`;
|
|
49
49
|
}
|
package/util/mermaid/dfg.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SourceRange } from '../range';
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
2
|
+
import { type DataflowGraph } from '../../dataflow/graph/graph';
|
|
3
|
+
import { type NodeId } from '../../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
4
|
+
import { type IdentifierDefinition } from '../../dataflow/environments/identifier';
|
|
5
5
|
type MarkVertex = NodeId;
|
|
6
6
|
type MarkEdge = `${string}->${string}`;
|
|
7
7
|
export type MermaidMarkdownMark = MarkVertex | MarkEdge;
|
|
@@ -26,6 +26,9 @@ interface MermaidGraph {
|
|
|
26
26
|
* Prints a {@link SourceRange|range} as a human-readable string.
|
|
27
27
|
*/
|
|
28
28
|
export declare function formatRange(range: SourceRange | undefined): string;
|
|
29
|
+
/**
|
|
30
|
+
* Prints an identifier definition in a human-readable format.
|
|
31
|
+
*/
|
|
29
32
|
export declare function printIdentifier(id: IdentifierDefinition): string;
|
|
30
33
|
interface MermaidGraphConfiguration {
|
|
31
34
|
graph: DataflowGraph;
|
|
@@ -38,13 +41,15 @@ interface MermaidGraphConfiguration {
|
|
|
38
41
|
presentEdges?: Set<string>;
|
|
39
42
|
simplified?: boolean;
|
|
40
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Converts a dataflow graph to mermaid graph code that visualizes the graph.
|
|
46
|
+
*/
|
|
41
47
|
export declare function graphToMermaid(config: MermaidGraphConfiguration): {
|
|
42
48
|
string: string;
|
|
43
49
|
mermaid: MermaidGraph;
|
|
44
50
|
};
|
|
45
51
|
/**
|
|
46
52
|
* Converts a dataflow graph to a mermaid url that visualizes the graph.
|
|
47
|
-
*
|
|
48
53
|
* @param graph - The graph to convert
|
|
49
54
|
* @param includeEnvironments - Whether to include the environments in the mermaid graph code
|
|
50
55
|
* @param mark - Special nodes to mark (e.g., those included in the slice)
|
|
@@ -58,5 +63,8 @@ export interface LabeledDiffGraph {
|
|
|
58
63
|
}
|
|
59
64
|
/** uses same id map but ensures, it is different from the rhs so that mermaid can work with that */
|
|
60
65
|
export declare function diffGraphsToMermaid(left: LabeledDiffGraph, right: LabeledDiffGraph, prefix: string): string;
|
|
66
|
+
/**
|
|
67
|
+
* Converts two dataflow graphs to a mermaid url that visualizes their differences.
|
|
68
|
+
*/
|
|
61
69
|
export declare function diffGraphsToMermaidUrl(left: LabeledDiffGraph, right: LabeledDiffGraph, prefix: string): string;
|
|
62
70
|
export {};
|
package/util/mermaid/dfg.js
CHANGED
|
@@ -126,6 +126,9 @@ function mermaidNodeBrackets(tag) {
|
|
|
126
126
|
}
|
|
127
127
|
return { open, close };
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Prints an identifier definition in a human-readable format.
|
|
131
|
+
*/
|
|
129
132
|
function printIdentifier(id) {
|
|
130
133
|
return `**${id.name}** (id: ${id.nodeId}, type: ${identifier_1.ReferenceTypeReverseMapping.get(id.type)},${id.controlDependencies ? ' cds: {' + id.controlDependencies.map(c => c.id + (c.when ? '+' : '-')).join(',') + '},' : ''} def. @${id.definedAt})`;
|
|
131
134
|
}
|
|
@@ -220,13 +223,15 @@ function graphToMermaidGraph(rootIds, { simplified, graph, prefix = 'flowchart B
|
|
|
220
223
|
}
|
|
221
224
|
return mermaid;
|
|
222
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Converts a dataflow graph to mermaid graph code that visualizes the graph.
|
|
228
|
+
*/
|
|
223
229
|
function graphToMermaid(config) {
|
|
224
230
|
const mermaid = graphToMermaidGraph(config.graph.rootIds(), config);
|
|
225
231
|
return { string: `${mermaid.nodeLines.join('\n')}\n${mermaid.edgeLines.join('\n')}`, mermaid };
|
|
226
232
|
}
|
|
227
233
|
/**
|
|
228
234
|
* Converts a dataflow graph to a mermaid url that visualizes the graph.
|
|
229
|
-
*
|
|
230
235
|
* @param graph - The graph to convert
|
|
231
236
|
* @param includeEnvironments - Whether to include the environments in the mermaid graph code
|
|
232
237
|
* @param mark - Special nodes to mark (e.g., those included in the slice)
|
|
@@ -242,6 +247,9 @@ function diffGraphsToMermaid(left, right, prefix) {
|
|
|
242
247
|
const { string: rightGraph } = graphToMermaid({ graph: right.graph, prefix: '', idPrefix: `r-${right.label}`, includeEnvironments: true, mark: right.mark, presentEdges: mermaid.presentEdges });
|
|
243
248
|
return `${prefix}flowchart BT\nsubgraph "${left.label}"\n${leftGraph}\nend\nsubgraph "${right.label}"\n${rightGraph}\nend`;
|
|
244
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Converts two dataflow graphs to a mermaid url that visualizes their differences.
|
|
252
|
+
*/
|
|
245
253
|
function diffGraphsToMermaidUrl(left, right, prefix) {
|
|
246
254
|
return (0, mermaid_1.mermaidCodeToUrl)(diffGraphsToMermaid(left, right, prefix));
|
|
247
255
|
}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes markdown special characters in a string.
|
|
3
|
+
*/
|
|
1
4
|
export declare function escapeMarkdown(text: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Escapes a string or number to be used as a mermaid node id.
|
|
7
|
+
*/
|
|
2
8
|
export declare function escapeId(text: string | number): string;
|
|
3
9
|
/**
|
|
4
10
|
* Converts mermaid code (potentially produced by {@link graphToMermaid}) to an url that presents the graph in the mermaid editor.
|
|
5
|
-
*
|
|
6
11
|
* @param code - code to convert
|
|
7
12
|
* @param edit - if true, the url will point to the editor, otherwise it will point to the viewer
|
|
8
13
|
*/
|
package/util/mermaid/mermaid.js
CHANGED
|
@@ -40,19 +40,24 @@ const replacements = {
|
|
|
40
40
|
'∫': '#8747;',
|
|
41
41
|
'⊕': '#8853;',
|
|
42
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Escapes markdown special characters in a string.
|
|
45
|
+
*/
|
|
43
46
|
function escapeMarkdown(text) {
|
|
44
47
|
for (const [key, value] of Object.entries(replacements)) {
|
|
45
48
|
text = text.replaceAll(key, value);
|
|
46
49
|
}
|
|
47
50
|
return text;
|
|
48
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Escapes a string or number to be used as a mermaid node id.
|
|
54
|
+
*/
|
|
49
55
|
function escapeId(text) {
|
|
50
56
|
text = String(text).replace(/[^a-zA-Z0-9:-]/g, '_');
|
|
51
57
|
return text;
|
|
52
58
|
}
|
|
53
59
|
/**
|
|
54
60
|
* Converts mermaid code (potentially produced by {@link graphToMermaid}) to an url that presents the graph in the mermaid editor.
|
|
55
|
-
*
|
|
56
61
|
* @param code - code to convert
|
|
57
62
|
* @param edit - if true, the url will point to the editor, otherwise it will point to the viewer
|
|
58
63
|
*/
|
package/util/numbers.d.ts
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a bigint (or string representation of a bigint) to a number by removing the trailing `n`.
|
|
3
|
+
* Please note that this can lead to loss of precision for very large bigints.
|
|
4
|
+
*/
|
|
1
5
|
export declare function bigint2number(a: bigint | string): number;
|
|
6
|
+
/**
|
|
7
|
+
* Rounds a number to the specified number of decimal places.
|
|
8
|
+
*/
|
|
2
9
|
export declare function roundToDecimals(value: number, decimals: number): number;
|
package/util/numbers.js
CHANGED
|
@@ -2,10 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.bigint2number = bigint2number;
|
|
4
4
|
exports.roundToDecimals = roundToDecimals;
|
|
5
|
+
/**
|
|
6
|
+
* Converts a bigint (or string representation of a bigint) to a number by removing the trailing `n`.
|
|
7
|
+
* Please note that this can lead to loss of precision for very large bigints.
|
|
8
|
+
*/
|
|
5
9
|
function bigint2number(a) {
|
|
6
10
|
// we have to remove the trailing `n`
|
|
7
11
|
return Number(String(a).slice(0, -1));
|
|
8
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Rounds a number to the specified number of decimal places.
|
|
15
|
+
*/
|
|
9
16
|
function roundToDecimals(value, decimals) {
|
|
10
17
|
const factor = 10 ** decimals;
|
|
11
18
|
return Math.round(value * factor) / factor;
|
package/util/objects.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ type OrReadonly<T> = T | Readonly<T> | DeepReadonly<T>;
|
|
|
10
10
|
/**
|
|
11
11
|
* Given two objects deeply merges them, if an object is an array it will merge the array values!
|
|
12
12
|
* Guarantees some type safety by requiring objects to merge to be from the same type (allows undefined)
|
|
13
|
-
*
|
|
14
13
|
* @see {@link deepMergeObjectInPlace} to merge into an existing object
|
|
15
14
|
*/
|
|
16
15
|
export declare function deepMergeObject<T extends Mergeable>(base: Required<OrReadonly<T>>, addon?: T | DeepPartial<T> | Partial<T>): Required<T>;
|
|
@@ -22,7 +21,6 @@ export declare function deepMergeObject(base?: Mergeable, addon?: Mergeable): Me
|
|
|
22
21
|
* Given two objects deeply merges them, if an object is an array it will merge the array values!
|
|
23
22
|
* Modifies the `base` object in place and also returns it.
|
|
24
23
|
* Guarantees some type safety by requiring objects to merge to be from the same type (allows undefined)
|
|
25
|
-
*
|
|
26
24
|
* @see {@link deepMergeObject} to create a new merged object
|
|
27
25
|
*/
|
|
28
26
|
export declare function deepMergeObjectInPlace<T extends Mergeable>(base: T, addon?: DeepPartial<T> | Partial<T>): T;
|
package/util/os.d.ts
CHANGED
package/util/os.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPlatform = getPlatform;
|
|
4
4
|
let platformCache = null;
|
|
5
|
+
/**
|
|
6
|
+
* Returns the current operating system platform.
|
|
7
|
+
*/
|
|
5
8
|
function getPlatform() {
|
|
6
9
|
if (platformCache !== null) {
|
|
7
10
|
return platformCache;
|
package/util/parallel.d.ts
CHANGED
|
@@ -15,10 +15,10 @@ export declare class LimitedThreadPool {
|
|
|
15
15
|
private reportingInterval;
|
|
16
16
|
private readonly timeLimitInMs;
|
|
17
17
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
* Create a new parallel helper that runs the given `module` once for each list of {@link Arguments} in the `queue`.
|
|
19
|
+
* The `limit` stops the execution if `<limit>` number of runs exited successfully.
|
|
20
|
+
* The `parallel` parameter limits the number of parallel executions.
|
|
21
|
+
*/
|
|
22
22
|
constructor(module: string, queue: WorkingQueue, limit: number, parallel: number, timeLimitInMs?: number);
|
|
23
23
|
run(): Promise<void>;
|
|
24
24
|
getStats(): {
|
package/util/parallel.js
CHANGED
|
@@ -58,10 +58,10 @@ class LimitedThreadPool {
|
|
|
58
58
|
reportingInterval = undefined;
|
|
59
59
|
timeLimitInMs;
|
|
60
60
|
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
* Create a new parallel helper that runs the given `module` once for each list of {@link Arguments} in the `queue`.
|
|
62
|
+
* The `limit` stops the execution if `<limit>` number of runs exited successfully.
|
|
63
|
+
* The `parallel` parameter limits the number of parallel executions.
|
|
64
|
+
*/
|
|
65
65
|
constructor(module, queue, limit, parallel, timeLimitInMs) {
|
|
66
66
|
this.workingQueue = queue;
|
|
67
67
|
this.limit = limit;
|
package/util/prefix.d.ts
CHANGED
package/util/prefix.js
CHANGED
|
@@ -4,7 +4,6 @@ exports.findByPrefixIfUnique = findByPrefixIfUnique;
|
|
|
4
4
|
/**
|
|
5
5
|
* given a potentially partial prefix like `hell`, this finds the matching name in the map, but only
|
|
6
6
|
* if it is unique!
|
|
7
|
-
*
|
|
8
7
|
* @example
|
|
9
8
|
* ```typescript
|
|
10
9
|
* findByPrefixIfUnique('hell', { 'hello', 'bar' }) // => 'hello'
|
package/util/quads.d.ts
CHANGED
|
@@ -4,17 +4,15 @@
|
|
|
4
4
|
* <p>
|
|
5
5
|
* At the time of writing this module I am unaware of any sophisticated rdf library for typescript which allows to serialize objects
|
|
6
6
|
* directly as rdf quads. Therefore, this module provides a simple serialization mechanism based on the popular n3.js library.
|
|
7
|
-
*
|
|
8
7
|
* @module
|
|
9
8
|
*/
|
|
10
|
-
import type
|
|
9
|
+
import { type MergeableRecord } from './objects';
|
|
11
10
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
12
11
|
type RecordForQuad = Record<string, unknown>;
|
|
13
12
|
type DataForQuad = Record<string, unknown> | ArrayLike<unknown>;
|
|
14
13
|
type ContextForQuad = string;
|
|
15
14
|
/**
|
|
16
15
|
* Predicate that allows you to ignore given elements based on their key/value
|
|
17
|
-
*
|
|
18
16
|
* @returns true if the given key/value should be ignored, false otherwise
|
|
19
17
|
*/
|
|
20
18
|
export type QuadIgnoreIf = (key: string, value: unknown) => boolean;
|
|
@@ -32,39 +30,39 @@ export type QuadContextRetriever = ContextForQuad | ((obj: DataForQuad) => Conte
|
|
|
32
30
|
* A deterministic counting id generator for quads.
|
|
33
31
|
*/
|
|
34
32
|
export declare function defaultQuadIdGenerator(): QuadIdRetriever;
|
|
33
|
+
/**
|
|
34
|
+
* A default ignore function that ignores undefined values and some common keys.
|
|
35
|
+
*/
|
|
35
36
|
export declare function defaultQuadIgnoreIf(): QuadIgnoreIf;
|
|
36
37
|
/**
|
|
37
38
|
* See {@link DefaultQuadSerializationConfiguration} for defaults.
|
|
38
39
|
*/
|
|
39
40
|
export interface QuadSerializationConfiguration extends MergeableRecord {
|
|
40
41
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
* Ignore certain keys or values when serializing to quads.
|
|
43
|
+
* @see defaultQuadIgnoreIf
|
|
44
|
+
*/
|
|
44
45
|
ignore?: QuadIgnoreIf;
|
|
45
46
|
/**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
* Retrieve a unique id for a given object.
|
|
48
|
+
* @see defaultQuadIdGenerator
|
|
49
|
+
*/
|
|
49
50
|
getId?: QuadIdRetriever;
|
|
50
51
|
/**
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
* The context of the serialized quads, probably the file-name (constant) or whatever is desired.
|
|
53
|
+
*/
|
|
53
54
|
context: QuadContextRetriever;
|
|
54
55
|
/**
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
* The basic domain name to use for the quads.
|
|
57
|
+
*/
|
|
57
58
|
domain?: string;
|
|
58
59
|
}
|
|
59
60
|
export declare const DefaultQuadSerializationConfiguration: Required<QuadSerializationConfiguration>;
|
|
60
61
|
/**
|
|
61
62
|
* Serializes the given object or array to rdf quads.
|
|
62
|
-
*
|
|
63
63
|
* @param obj - The object to serialize (must be a Record and no array etc.)
|
|
64
64
|
* @param config - Further configuration options
|
|
65
|
-
*
|
|
66
65
|
* @returns the serialized quads
|
|
67
|
-
*
|
|
68
66
|
* @see graph2quads
|
|
69
67
|
*/
|
|
70
68
|
export declare function serialize2quads(obj: RecordForQuad, config: QuadSerializationConfiguration): string;
|
|
@@ -85,7 +83,6 @@ export interface GraphInformationForQuad<AdditionalVertexInformation extends Mer
|
|
|
85
83
|
/**
|
|
86
84
|
* Serializes the given directed graph to rdf quads.
|
|
87
85
|
* This is a mere (type-)convenience wrapper for {@link serialize2quads}.
|
|
88
|
-
*
|
|
89
86
|
* @see serialize2quads
|
|
90
87
|
*/
|
|
91
88
|
export declare function graph2quads<AdditionalVertexInformation extends MergeableRecord, AdditionalEdgeInformation extends MergeableRecord>(graph: GraphInformationForQuad<AdditionalVertexInformation, AdditionalEdgeInformation>, config: QuadSerializationConfiguration): string;
|
package/util/quads.js
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* <p>
|
|
6
6
|
* At the time of writing this module I am unaware of any sophisticated rdf library for typescript which allows to serialize objects
|
|
7
7
|
* directly as rdf quads. Therefore, this module provides a simple serialization mechanism based on the popular n3.js library.
|
|
8
|
-
*
|
|
9
8
|
* @module
|
|
10
9
|
*/
|
|
11
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -32,6 +31,9 @@ function defaultQuadIdGenerator() {
|
|
|
32
31
|
return (elem, context) => `${context}/${idMap.get(elem)}`;
|
|
33
32
|
}
|
|
34
33
|
const ignoredKeysArray = ['complexNumber', 'markedAsInt', 'info'];
|
|
34
|
+
/**
|
|
35
|
+
* A default ignore function that ignores undefined values and some common keys.
|
|
36
|
+
*/
|
|
35
37
|
function defaultQuadIgnoreIf() {
|
|
36
38
|
return (key, value) => value === undefined || ignoredKeysArray.includes(key);
|
|
37
39
|
}
|
|
@@ -47,12 +49,9 @@ function retrieveContext(context, obj) {
|
|
|
47
49
|
const writer = new n3_1.Writer({ format: 'N-Quads' });
|
|
48
50
|
/**
|
|
49
51
|
* Serializes the given object or array to rdf quads.
|
|
50
|
-
*
|
|
51
52
|
* @param obj - The object to serialize (must be a Record and no array etc.)
|
|
52
53
|
* @param config - Further configuration options
|
|
53
|
-
*
|
|
54
54
|
* @returns the serialized quads
|
|
55
|
-
*
|
|
56
55
|
* @see graph2quads
|
|
57
56
|
*/
|
|
58
57
|
function serialize2quads(obj, config) {
|
|
@@ -67,7 +66,6 @@ function serialize2quads(obj, config) {
|
|
|
67
66
|
/**
|
|
68
67
|
* Serializes the given directed graph to rdf quads.
|
|
69
68
|
* This is a mere (type-)convenience wrapper for {@link serialize2quads}.
|
|
70
|
-
*
|
|
71
69
|
* @see serialize2quads
|
|
72
70
|
*/
|
|
73
71
|
function graph2quads(graph, config) {
|