@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
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PathLike } from 'fs';
|
|
2
|
+
import { SemVer } from 'semver';
|
|
3
|
+
import type { FlowrAnalyzerContext } from '../../../context/flowr-analyzer-context';
|
|
4
|
+
import type { FlowrFileProvider } from '../../../context/flowr-file';
|
|
5
|
+
import { FlowrAnalyzerFilePlugin } from '../flowr-analyzer-file-plugin';
|
|
6
|
+
import { FlowrJupyterFile } from './flowr-jupyter-file';
|
|
7
|
+
/**
|
|
8
|
+
* The plugin provides support for Jupyter (`.ipynb`) files
|
|
9
|
+
*/
|
|
10
|
+
export declare class FlowrAnalyzerJupyterFilePlugin extends FlowrAnalyzerFilePlugin {
|
|
11
|
+
readonly name = "ipynb-file-plugin";
|
|
12
|
+
readonly description = "Parses Jupyter files";
|
|
13
|
+
readonly version: SemVer;
|
|
14
|
+
private readonly pattern;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new instance of the Jupyter file plugin.
|
|
17
|
+
* @param filePattern - The pattern to identify Jupyter files, see {@link IpynbPattern} for the default pattern.
|
|
18
|
+
*/
|
|
19
|
+
constructor(filePattern?: RegExp);
|
|
20
|
+
applies(file: PathLike): boolean;
|
|
21
|
+
protected process(_ctx: FlowrAnalyzerContext, arg: FlowrFileProvider<string>): FlowrJupyterFile;
|
|
22
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowrAnalyzerJupyterFilePlugin = void 0;
|
|
4
|
+
const semver_1 = require("semver");
|
|
5
|
+
const flowr_analyzer_file_plugin_1 = require("../flowr-analyzer-file-plugin");
|
|
6
|
+
const built_in_source_1 = require("../../../../dataflow/internal/process/functions/call/built-in/built-in-source");
|
|
7
|
+
const flowr_jupyter_file_1 = require("./flowr-jupyter-file");
|
|
8
|
+
const IpynbPattern = /\.ipynb$/i;
|
|
9
|
+
/**
|
|
10
|
+
* The plugin provides support for Jupyter (`.ipynb`) files
|
|
11
|
+
*/
|
|
12
|
+
class FlowrAnalyzerJupyterFilePlugin extends flowr_analyzer_file_plugin_1.FlowrAnalyzerFilePlugin {
|
|
13
|
+
name = 'ipynb-file-plugin';
|
|
14
|
+
description = 'Parses Jupyter files';
|
|
15
|
+
version = new semver_1.SemVer('0.1.0');
|
|
16
|
+
pattern;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a new instance of the Jupyter file plugin.
|
|
19
|
+
* @param filePattern - The pattern to identify Jupyter files, see {@link IpynbPattern} for the default pattern.
|
|
20
|
+
*/
|
|
21
|
+
constructor(filePattern = IpynbPattern) {
|
|
22
|
+
super();
|
|
23
|
+
this.pattern = filePattern;
|
|
24
|
+
}
|
|
25
|
+
applies(file) {
|
|
26
|
+
return this.pattern.test((0, built_in_source_1.platformBasename)(file.toString()));
|
|
27
|
+
}
|
|
28
|
+
process(_ctx, arg) {
|
|
29
|
+
return flowr_jupyter_file_1.FlowrJupyterFile.from(arg);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.FlowrAnalyzerJupyterFilePlugin = FlowrAnalyzerJupyterFilePlugin;
|
|
33
|
+
//# sourceMappingURL=flowr-analyzer-jupyter-file-plugin.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PathLike } from 'fs';
|
|
2
|
+
import { SemVer } from 'semver';
|
|
3
|
+
import type { FlowrAnalyzerContext } from '../../../context/flowr-analyzer-context';
|
|
4
|
+
import type { FlowrFileProvider } from '../../../context/flowr-file';
|
|
5
|
+
import { FlowrAnalyzerFilePlugin } from '../flowr-analyzer-file-plugin';
|
|
6
|
+
import { FlowrRMarkdownFile } from './flowr-rmarkdown-file';
|
|
7
|
+
/**
|
|
8
|
+
* The plugin provides support for Quarto R Markdown (`.qmd`) files
|
|
9
|
+
*/
|
|
10
|
+
export declare class FlowrAnalyzerQmdFilePlugin extends FlowrAnalyzerFilePlugin {
|
|
11
|
+
readonly name = "qmd-file-plugin";
|
|
12
|
+
readonly description = "Parses Quarto R Markdown files";
|
|
13
|
+
readonly version: SemVer;
|
|
14
|
+
private readonly pattern;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new instance of the Quarto R Markdown file plugin.
|
|
17
|
+
* @param filePattern - The pattern to identify Quarto R Markdown files, see {@link QmdPattern} for the default pattern.
|
|
18
|
+
*/
|
|
19
|
+
constructor(filePattern?: RegExp);
|
|
20
|
+
applies(file: PathLike): boolean;
|
|
21
|
+
protected process(_ctx: FlowrAnalyzerContext, arg: FlowrFileProvider<string>): FlowrRMarkdownFile;
|
|
22
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowrAnalyzerQmdFilePlugin = void 0;
|
|
4
|
+
const semver_1 = require("semver");
|
|
5
|
+
const flowr_analyzer_file_plugin_1 = require("../flowr-analyzer-file-plugin");
|
|
6
|
+
const flowr_rmarkdown_file_1 = require("./flowr-rmarkdown-file");
|
|
7
|
+
const built_in_source_1 = require("../../../../dataflow/internal/process/functions/call/built-in/built-in-source");
|
|
8
|
+
const QmdPattern = /\.qmd$/i;
|
|
9
|
+
/**
|
|
10
|
+
* The plugin provides support for Quarto R Markdown (`.qmd`) files
|
|
11
|
+
*/
|
|
12
|
+
class FlowrAnalyzerQmdFilePlugin extends flowr_analyzer_file_plugin_1.FlowrAnalyzerFilePlugin {
|
|
13
|
+
name = 'qmd-file-plugin';
|
|
14
|
+
description = 'Parses Quarto R Markdown files';
|
|
15
|
+
version = new semver_1.SemVer('0.1.0');
|
|
16
|
+
pattern;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a new instance of the Quarto R Markdown file plugin.
|
|
19
|
+
* @param filePattern - The pattern to identify Quarto R Markdown files, see {@link QmdPattern} for the default pattern.
|
|
20
|
+
*/
|
|
21
|
+
constructor(filePattern = QmdPattern) {
|
|
22
|
+
super();
|
|
23
|
+
this.pattern = filePattern;
|
|
24
|
+
}
|
|
25
|
+
applies(file) {
|
|
26
|
+
return this.pattern.test((0, built_in_source_1.platformBasename)(file.toString()));
|
|
27
|
+
}
|
|
28
|
+
process(_ctx, arg) {
|
|
29
|
+
return flowr_rmarkdown_file_1.FlowrRMarkdownFile.from(arg);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.FlowrAnalyzerQmdFilePlugin = FlowrAnalyzerQmdFilePlugin;
|
|
33
|
+
//# sourceMappingURL=flowr-analyzer-qmd-file-plugin.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PathLike } from 'fs';
|
|
2
|
+
import { SemVer } from 'semver';
|
|
3
|
+
import type { FlowrAnalyzerContext } from '../../../context/flowr-analyzer-context';
|
|
4
|
+
import { type FlowrFileProvider } from '../../../context/flowr-file';
|
|
5
|
+
import { FlowrAnalyzerFilePlugin } from '../flowr-analyzer-file-plugin';
|
|
6
|
+
import { FlowrRMarkdownFile } from './flowr-rmarkdown-file';
|
|
7
|
+
/**
|
|
8
|
+
* The plugin provides support for R Markdown (`.rmd`) files
|
|
9
|
+
*/
|
|
10
|
+
export declare class FlowrAnalyzerRmdFilePlugin extends FlowrAnalyzerFilePlugin {
|
|
11
|
+
readonly name = "rmd-file-plugin";
|
|
12
|
+
readonly description = "Parses R Markdown files";
|
|
13
|
+
readonly version: SemVer;
|
|
14
|
+
private readonly pattern;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new instance of the R Markdown file plugin.
|
|
17
|
+
* @param filePattern - The pattern to identify R Markdown files, see {@link RmdPattern} for the default pattern.
|
|
18
|
+
*/
|
|
19
|
+
constructor(filePattern?: RegExp);
|
|
20
|
+
applies(file: PathLike): boolean;
|
|
21
|
+
protected process(_ctx: FlowrAnalyzerContext, arg: FlowrFileProvider<string>): FlowrRMarkdownFile;
|
|
22
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowrAnalyzerRmdFilePlugin = void 0;
|
|
4
|
+
const semver_1 = require("semver");
|
|
5
|
+
const flowr_analyzer_file_plugin_1 = require("../flowr-analyzer-file-plugin");
|
|
6
|
+
const flowr_rmarkdown_file_1 = require("./flowr-rmarkdown-file");
|
|
7
|
+
const built_in_source_1 = require("../../../../dataflow/internal/process/functions/call/built-in/built-in-source");
|
|
8
|
+
const RmdPattern = /\.rmd$/i;
|
|
9
|
+
/**
|
|
10
|
+
* The plugin provides support for R Markdown (`.rmd`) files
|
|
11
|
+
*/
|
|
12
|
+
class FlowrAnalyzerRmdFilePlugin extends flowr_analyzer_file_plugin_1.FlowrAnalyzerFilePlugin {
|
|
13
|
+
name = 'rmd-file-plugin';
|
|
14
|
+
description = 'Parses R Markdown files';
|
|
15
|
+
version = new semver_1.SemVer('0.1.0');
|
|
16
|
+
pattern;
|
|
17
|
+
/**
|
|
18
|
+
* Creates a new instance of the R Markdown file plugin.
|
|
19
|
+
* @param filePattern - The pattern to identify R Markdown files, see {@link RmdPattern} for the default pattern.
|
|
20
|
+
*/
|
|
21
|
+
constructor(filePattern = RmdPattern) {
|
|
22
|
+
super();
|
|
23
|
+
this.pattern = filePattern;
|
|
24
|
+
}
|
|
25
|
+
applies(file) {
|
|
26
|
+
return this.pattern.test((0, built_in_source_1.platformBasename)(file.toString()));
|
|
27
|
+
}
|
|
28
|
+
process(_ctx, arg) {
|
|
29
|
+
return flowr_rmarkdown_file_1.FlowrRMarkdownFile.from(arg);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.FlowrAnalyzerRmdFilePlugin = FlowrAnalyzerRmdFilePlugin;
|
|
33
|
+
//# sourceMappingURL=flowr-analyzer-rmd-file-plugin.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FlowrFileProvider } from '../../../context/flowr-file';
|
|
2
|
+
import { FlowrFile } from '../../../context/flowr-file';
|
|
3
|
+
/**
|
|
4
|
+
* This decorates a text file and parses its contents as a Jupyter file.
|
|
5
|
+
* Finnaly, it provides access to the single cells, and all cells fused together as one R file.
|
|
6
|
+
*/
|
|
7
|
+
export declare class FlowrJupyterFile extends FlowrFile<string> {
|
|
8
|
+
private readonly wrapped;
|
|
9
|
+
/**
|
|
10
|
+
* Prefer the static {@link FlowrRMarkdownFile.from} method
|
|
11
|
+
* @param file - the file to load as R Markdown
|
|
12
|
+
*/
|
|
13
|
+
constructor(file: FlowrFileProvider<string>);
|
|
14
|
+
/**
|
|
15
|
+
* Loads and parses the content of the wrapped file.
|
|
16
|
+
* @returns RmdInfo
|
|
17
|
+
*/
|
|
18
|
+
protected loadContent(): string;
|
|
19
|
+
static from(file: FlowrFileProvider<string> | FlowrJupyterFile): FlowrJupyterFile;
|
|
20
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowrJupyterFile = void 0;
|
|
4
|
+
const flowr_file_1 = require("../../../context/flowr-file");
|
|
5
|
+
/**
|
|
6
|
+
* This decorates a text file and parses its contents as a Jupyter file.
|
|
7
|
+
* Finnaly, it provides access to the single cells, and all cells fused together as one R file.
|
|
8
|
+
*/
|
|
9
|
+
class FlowrJupyterFile extends flowr_file_1.FlowrFile {
|
|
10
|
+
wrapped;
|
|
11
|
+
/**
|
|
12
|
+
* Prefer the static {@link FlowrRMarkdownFile.from} method
|
|
13
|
+
* @param file - the file to load as R Markdown
|
|
14
|
+
*/
|
|
15
|
+
constructor(file) {
|
|
16
|
+
super(file.path(), flowr_file_1.FileRole.Source);
|
|
17
|
+
this.wrapped = file;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Loads and parses the content of the wrapped file.
|
|
21
|
+
* @returns RmdInfo
|
|
22
|
+
*/
|
|
23
|
+
loadContent() {
|
|
24
|
+
return loadJupyter(this.wrapped.content());
|
|
25
|
+
}
|
|
26
|
+
static from(file) {
|
|
27
|
+
return file instanceof FlowrJupyterFile ? file : new FlowrJupyterFile(file);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.FlowrJupyterFile = FlowrJupyterFile;
|
|
31
|
+
function loadJupyter(content) {
|
|
32
|
+
const nb = JSON.parse(content);
|
|
33
|
+
return nb.cells.map(cell => {
|
|
34
|
+
if (cell.cell_type === 'code') {
|
|
35
|
+
return typeof cell.source === 'object' ? cell.source.join('') : cell.source;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return typeof cell.source === 'object' ? cell.source.map(s => `# ${s}`).join('') : `# ${cell.source}`;
|
|
39
|
+
}
|
|
40
|
+
}).join('\n');
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=flowr-jupyter-file.js.map
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { FlowrFileProvider } from '../../../context/flowr-file';
|
|
2
|
+
import { FlowrFile } from '../../../context/flowr-file';
|
|
3
|
+
import { type Node } from 'commonmark';
|
|
4
|
+
/**
|
|
5
|
+
* This decorates a text file and parses its contents as a R Markdown file.
|
|
6
|
+
* Finnaly, it provides access to the single cells, and all cells fused together as one R file.
|
|
7
|
+
*/
|
|
8
|
+
export declare class FlowrRMarkdownFile extends FlowrFile<string> {
|
|
9
|
+
private data?;
|
|
10
|
+
private readonly wrapped;
|
|
11
|
+
/**
|
|
12
|
+
* Prefer the static {@link FlowrRMarkdownFile.from} method
|
|
13
|
+
* @param file - the file to load as R Markdown
|
|
14
|
+
*/
|
|
15
|
+
constructor(file: FlowrFileProvider<string>);
|
|
16
|
+
get rmd(): RmdInfo;
|
|
17
|
+
/**
|
|
18
|
+
* Loads and parses the content of the wrapped file.
|
|
19
|
+
* @returns RmdInfo
|
|
20
|
+
*/
|
|
21
|
+
protected loadContent(): string;
|
|
22
|
+
static from(file: FlowrFileProvider<string> | FlowrRMarkdownFile): FlowrRMarkdownFile;
|
|
23
|
+
}
|
|
24
|
+
export interface CodeBlock {
|
|
25
|
+
options: string;
|
|
26
|
+
code: string;
|
|
27
|
+
}
|
|
28
|
+
export type CodeBlockEx = CodeBlock & {
|
|
29
|
+
startpos: {
|
|
30
|
+
line: number;
|
|
31
|
+
col: number;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export interface RmdInfo {
|
|
35
|
+
content: string;
|
|
36
|
+
blocks: CodeBlock[];
|
|
37
|
+
options: object;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Parse the contents of a RMarkdown file into complete code and blocks
|
|
41
|
+
* @param raw - the raw file content
|
|
42
|
+
* @returns Rmd Info
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseRMarkdownFile(raw: string): RmdInfo;
|
|
45
|
+
/**
|
|
46
|
+
* Checks whether a CommonMark node is an R code block
|
|
47
|
+
*/
|
|
48
|
+
export declare function isRCodeBlock(node: Node): node is Node & {
|
|
49
|
+
literal: string;
|
|
50
|
+
info: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Restores an Rmd file from code blocks, filling non-code lines with empty lines
|
|
54
|
+
*/
|
|
55
|
+
export declare function restoreBlocksWithoutMd(blocks: CodeBlockEx[], totalLines: number): string;
|
|
56
|
+
/**
|
|
57
|
+
* Parses the options of an R code block from its header and content
|
|
58
|
+
*/
|
|
59
|
+
export declare function parseCodeBlockOptions(header: string, content: string): string;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FlowrRMarkdownFile = void 0;
|
|
7
|
+
exports.parseRMarkdownFile = parseRMarkdownFile;
|
|
8
|
+
exports.isRCodeBlock = isRCodeBlock;
|
|
9
|
+
exports.restoreBlocksWithoutMd = restoreBlocksWithoutMd;
|
|
10
|
+
exports.parseCodeBlockOptions = parseCodeBlockOptions;
|
|
11
|
+
const flowr_file_1 = require("../../../context/flowr-file");
|
|
12
|
+
const assert_1 = require("../../../../util/assert");
|
|
13
|
+
const commonmark_1 = require("commonmark");
|
|
14
|
+
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
15
|
+
/**
|
|
16
|
+
* This decorates a text file and parses its contents as a R Markdown file.
|
|
17
|
+
* Finnaly, it provides access to the single cells, and all cells fused together as one R file.
|
|
18
|
+
*/
|
|
19
|
+
class FlowrRMarkdownFile extends flowr_file_1.FlowrFile {
|
|
20
|
+
data;
|
|
21
|
+
wrapped;
|
|
22
|
+
/**
|
|
23
|
+
* Prefer the static {@link FlowrRMarkdownFile.from} method
|
|
24
|
+
* @param file - the file to load as R Markdown
|
|
25
|
+
*/
|
|
26
|
+
constructor(file) {
|
|
27
|
+
super(file.path(), flowr_file_1.FileRole.Source);
|
|
28
|
+
this.wrapped = file;
|
|
29
|
+
}
|
|
30
|
+
get rmd() {
|
|
31
|
+
if (!this.data) {
|
|
32
|
+
this.loadContent();
|
|
33
|
+
}
|
|
34
|
+
(0, assert_1.guard)(this.data);
|
|
35
|
+
return this.data;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Loads and parses the content of the wrapped file.
|
|
39
|
+
* @returns RmdInfo
|
|
40
|
+
*/
|
|
41
|
+
loadContent() {
|
|
42
|
+
this.data = parseRMarkdownFile(this.wrapped.content());
|
|
43
|
+
return this.data.content;
|
|
44
|
+
}
|
|
45
|
+
static from(file) {
|
|
46
|
+
return file instanceof FlowrRMarkdownFile ? file : new FlowrRMarkdownFile(file);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.FlowrRMarkdownFile = FlowrRMarkdownFile;
|
|
50
|
+
/**
|
|
51
|
+
* Parse the contents of a RMarkdown file into complete code and blocks
|
|
52
|
+
* @param raw - the raw file content
|
|
53
|
+
* @returns Rmd Info
|
|
54
|
+
*/
|
|
55
|
+
function parseRMarkdownFile(raw) {
|
|
56
|
+
// Read and Parse Markdown
|
|
57
|
+
const parser = new commonmark_1.Parser();
|
|
58
|
+
const ast = parser.parse(raw);
|
|
59
|
+
// Parse Frontmatter
|
|
60
|
+
const frontmatter = (0, gray_matter_1.default)(raw);
|
|
61
|
+
// Parse Codeblocks
|
|
62
|
+
const walker = ast.walker();
|
|
63
|
+
const blocks = [];
|
|
64
|
+
let e;
|
|
65
|
+
while ((e = walker.next())) {
|
|
66
|
+
const node = e.node;
|
|
67
|
+
if (!isRCodeBlock(node)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
blocks.push({
|
|
71
|
+
code: node.literal,
|
|
72
|
+
options: parseCodeBlockOptions(node.info, node.literal),
|
|
73
|
+
startpos: { line: node.sourcepos[0][0] + 1, col: 0 }
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
content: restoreBlocksWithoutMd(blocks, countNewlines(raw)),
|
|
78
|
+
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
79
|
+
blocks: blocks.map(({ startpos, ...block }) => block),
|
|
80
|
+
options: frontmatter.data
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const RTagRegex = /{[rR](?:[\s,][^}]*)?}/;
|
|
84
|
+
/**
|
|
85
|
+
* Checks whether a CommonMark node is an R code block
|
|
86
|
+
*/
|
|
87
|
+
function isRCodeBlock(node) {
|
|
88
|
+
return node.type === 'code_block' && node.literal !== null && node.info !== null && RTagRegex.test(node.info);
|
|
89
|
+
}
|
|
90
|
+
const LineRegex = /\r\n|\r|\n/;
|
|
91
|
+
function countNewlines(str) {
|
|
92
|
+
return str.split(LineRegex).length - 1;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Restores an Rmd file from code blocks, filling non-code lines with empty lines
|
|
96
|
+
*/
|
|
97
|
+
function restoreBlocksWithoutMd(blocks, totalLines) {
|
|
98
|
+
let line = 1;
|
|
99
|
+
let output = '';
|
|
100
|
+
const goToLine = (n) => {
|
|
101
|
+
const diff = n - line;
|
|
102
|
+
(0, assert_1.guard)(diff >= 0);
|
|
103
|
+
line += diff;
|
|
104
|
+
output += '\n'.repeat(diff);
|
|
105
|
+
};
|
|
106
|
+
for (const block of blocks) {
|
|
107
|
+
goToLine(block.startpos.line);
|
|
108
|
+
output += block.code;
|
|
109
|
+
line += countNewlines(block.code);
|
|
110
|
+
}
|
|
111
|
+
// Add remainder of file
|
|
112
|
+
goToLine(totalLines + 1);
|
|
113
|
+
return output;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Parses the options of an R code block from its header and content
|
|
117
|
+
*/
|
|
118
|
+
function parseCodeBlockOptions(header, content) {
|
|
119
|
+
let opts = header.length === 3 // '{r}' => header.length=3 (no options in header)
|
|
120
|
+
? ''
|
|
121
|
+
: header.substring(3, header.length - 1).trim();
|
|
122
|
+
const lines = content.split('\n');
|
|
123
|
+
for (const line of lines) {
|
|
124
|
+
if (!line.trim().startsWith('#|')) {
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
const opt = line.substring(3);
|
|
128
|
+
opts += opts.length === 0 ? opt : `, ${opt}`;
|
|
129
|
+
}
|
|
130
|
+
return opts;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=flowr-rmarkdown-file.js.map
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowrAnalyzerPluginDefaults = FlowrAnalyzerPluginDefaults;
|
|
4
|
+
const flowr_analyzer_description_file_plugin_1 = require("./file-plugins/flowr-analyzer-description-file-plugin");
|
|
5
|
+
const flowr_analyzer_package_versions_description_file_plugin_1 = require("./package-version-plugins/flowr-analyzer-package-versions-description-file-plugin");
|
|
6
|
+
const flowr_analyzer_loading_order_description_file_plugin_1 = require("./loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin");
|
|
7
|
+
const flowr_analyzer_rmd_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-rmd-file-plugin");
|
|
8
|
+
const flowr_analyzer_qmd_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-qmd-file-plugin");
|
|
9
|
+
const flowr_analyzer_jupyter_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin");
|
|
10
|
+
/**
|
|
11
|
+
* Provides the default set of Flowr Analyzer plugins.
|
|
12
|
+
*/
|
|
13
|
+
function FlowrAnalyzerPluginDefaults() {
|
|
14
|
+
return [
|
|
15
|
+
new flowr_analyzer_description_file_plugin_1.FlowrAnalyzerDescriptionFilePlugin(),
|
|
16
|
+
new flowr_analyzer_package_versions_description_file_plugin_1.FlowrAnalyzerPackageVersionsDescriptionFilePlugin(),
|
|
17
|
+
new flowr_analyzer_loading_order_description_file_plugin_1.FlowrAnalyzerLoadingOrderDescriptionFilePlugin(),
|
|
18
|
+
new flowr_analyzer_rmd_file_plugin_1.FlowrAnalyzerRmdFilePlugin(),
|
|
19
|
+
new flowr_analyzer_qmd_file_plugin_1.FlowrAnalyzerQmdFilePlugin(),
|
|
20
|
+
new flowr_analyzer_jupyter_file_plugin_1.FlowrAnalyzerJupyterFilePlugin(),
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=flowr-analyzer-plugin-defaults.js.map
|
|
@@ -72,6 +72,8 @@ export interface FlowrAnalyzerPluginInterface<In = unknown, Out = In> {
|
|
|
72
72
|
* **Please do not create plugins directly based on this class, but use the classes referenced alongside the {@link PluginType} values!**
|
|
73
73
|
* For example, if you want to create a plugin that determines the loading order of files, extend {@link FlowrAnalyzerLoadingOrderPlugin} instead.
|
|
74
74
|
* These classes also provide sensible overrides of {@link FlowrAnalyzerPlugin.defaultPlugin} to be used when no plugin of this type is registered or triggered.
|
|
75
|
+
*
|
|
76
|
+
* For a collection of default plugins, see {@link FlowrAnalyzerPluginDefaults}.
|
|
75
77
|
*/
|
|
76
78
|
export declare abstract class FlowrAnalyzerPlugin<In = unknown, Out extends AsyncOrSync<unknown> = In> implements FlowrAnalyzerPluginInterface<In, Out> {
|
|
77
79
|
abstract readonly name: string;
|
|
@@ -52,6 +52,8 @@ const generalPluginLog = log_1.log.getSubLogger({ name: 'plugins' });
|
|
|
52
52
|
* **Please do not create plugins directly based on this class, but use the classes referenced alongside the {@link PluginType} values!**
|
|
53
53
|
* For example, if you want to create a plugin that determines the loading order of files, extend {@link FlowrAnalyzerLoadingOrderPlugin} instead.
|
|
54
54
|
* These classes also provide sensible overrides of {@link FlowrAnalyzerPlugin.defaultPlugin} to be used when no plugin of this type is registered or triggered.
|
|
55
|
+
*
|
|
56
|
+
* For a collection of default plugins, see {@link FlowrAnalyzerPluginDefaults}.
|
|
55
57
|
*/
|
|
56
58
|
class FlowrAnalyzerPlugin {
|
|
57
59
|
/**
|
|
@@ -15,7 +15,7 @@ class FlowrAnalyzerLoadingOrderDescriptionFilePlugin extends flowr_analyzer_load
|
|
|
15
15
|
description = 'This plugin determines loading order based on the Collate field in DESCRIPTION files.';
|
|
16
16
|
version = new semver_1.SemVer('0.1.0');
|
|
17
17
|
process(ctx) {
|
|
18
|
-
const descFiles = ctx.files.getFilesByRole(flowr_file_1.
|
|
18
|
+
const descFiles = ctx.files.getFilesByRole(flowr_file_1.FileRole.Description);
|
|
19
19
|
if (descFiles.length !== 1) {
|
|
20
20
|
flowr_analyzer_description_file_plugin_1.descriptionFileLog.warn(`Supporting only exactly one DESCRIPTION file, found ${descFiles.length}`);
|
|
21
21
|
return;
|
|
@@ -16,7 +16,7 @@ class FlowrAnalyzerPackageVersionsDescriptionFilePlugin extends flowr_analyzer_p
|
|
|
16
16
|
description = 'This plugin does...';
|
|
17
17
|
version = new semver_1.SemVer('0.1.0');
|
|
18
18
|
process(ctx) {
|
|
19
|
-
const descFiles = ctx.files.getFilesByRole(flowr_file_1.
|
|
19
|
+
const descFiles = ctx.files.getFilesByRole(flowr_file_1.FileRole.Description);
|
|
20
20
|
if (descFiles.length !== 1) {
|
|
21
21
|
flowr_analyzer_description_file_plugin_1.descriptionFileLog.warn(`Supporting only exactly one DESCRIPTION file, found ${descFiles.length}`);
|
|
22
22
|
return;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FlowrAnalyzerPlugin } from './flowr-analyzer-plugin';
|
|
2
|
+
import { FlowrAnalyzerDescriptionFilePlugin } from './file-plugins/flowr-analyzer-description-file-plugin';
|
|
3
|
+
import { FlowrAnalyzerPackageVersionsDescriptionFilePlugin } from './package-version-plugins/flowr-analyzer-package-versions-description-file-plugin';
|
|
4
|
+
import { FlowrAnalyzerLoadingOrderDescriptionFilePlugin } from './loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin';
|
|
5
|
+
import { FlowrAnalyzerRmdFilePlugin } from './file-plugins/notebooks/flowr-analyzer-rmd-file-plugin';
|
|
6
|
+
import { FlowrAnalyzerQmdFilePlugin } from './file-plugins/notebooks/flowr-analyzer-qmd-file-plugin';
|
|
7
|
+
import { FlowrAnalyzerJupyterFilePlugin } from './file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin';
|
|
8
|
+
/**
|
|
9
|
+
* The built-in Flowr Analyzer plugins that are always available.
|
|
10
|
+
*/
|
|
11
|
+
export declare const BuiltInPlugins: [["file:description", typeof FlowrAnalyzerDescriptionFilePlugin], ["versions:description", typeof FlowrAnalyzerPackageVersionsDescriptionFilePlugin], ["loading-order:description", typeof FlowrAnalyzerLoadingOrderDescriptionFilePlugin], ["file:rmd", typeof FlowrAnalyzerRmdFilePlugin], ["file:qmd", typeof FlowrAnalyzerQmdFilePlugin], ["file:ipynb", typeof FlowrAnalyzerJupyterFilePlugin]];
|
|
12
|
+
export type BuiltInFlowrPluginName = typeof BuiltInPlugins[number][0];
|
|
13
|
+
export type BuiltInFlowrPluginArgs<N extends BuiltInFlowrPluginName> = N extends typeof BuiltInPlugins[number][0] ? ConstructorParameters<Extract<typeof BuiltInPlugins[number], [N, PluginProducer]>[1]> : never;
|
|
14
|
+
type PluginProducer = new (...args: never[]) => FlowrAnalyzerPlugin;
|
|
15
|
+
/**
|
|
16
|
+
* Register a new Flowr Analyzer plugin for the registry,
|
|
17
|
+
* to be used by the {@link FlowrAnalyzerBuilder} and {@link FlowrAnalyzer}.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerPluginMaker(plugin: PluginProducer, name?: Exclude<string, BuiltInFlowrPluginName>): void;
|
|
20
|
+
export declare function getPlugin(name: BuiltInFlowrPluginName, args: BuiltInFlowrPluginArgs<typeof name>): FlowrAnalyzerPlugin;
|
|
21
|
+
export declare function getPlugin(name: string, args?: unknown[]): FlowrAnalyzerPlugin | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* The type used to register a plugin with the {@link FlowrAnalyzerBuilder}.
|
|
24
|
+
* @see {@link makePlugin}
|
|
25
|
+
*/
|
|
26
|
+
export type PluginToRegister<T extends BuiltInFlowrPluginName | string> = FlowrAnalyzerPlugin | T | string | (T extends BuiltInFlowrPluginName ? [
|
|
27
|
+
T,
|
|
28
|
+
BuiltInFlowrPluginArgs<T>
|
|
29
|
+
] : [string, unknown[]]);
|
|
30
|
+
/**
|
|
31
|
+
* Create a Flowr Analyzer plugin from a {@link PluginToRegister} specification.
|
|
32
|
+
*/
|
|
33
|
+
export declare function makePlugin<T extends BuiltInFlowrPluginName | string>(toRegister: PluginToRegister<T>): FlowrAnalyzerPlugin;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BuiltInPlugins = void 0;
|
|
4
|
+
exports.registerPluginMaker = registerPluginMaker;
|
|
5
|
+
exports.getPlugin = getPlugin;
|
|
6
|
+
exports.makePlugin = makePlugin;
|
|
7
|
+
const flowr_analyzer_description_file_plugin_1 = require("./file-plugins/flowr-analyzer-description-file-plugin");
|
|
8
|
+
const flowr_analyzer_package_versions_description_file_plugin_1 = require("./package-version-plugins/flowr-analyzer-package-versions-description-file-plugin");
|
|
9
|
+
const flowr_analyzer_loading_order_description_file_plugin_1 = require("./loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin");
|
|
10
|
+
const flowr_analyzer_rmd_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-rmd-file-plugin");
|
|
11
|
+
const flowr_analyzer_qmd_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-qmd-file-plugin");
|
|
12
|
+
const assert_1 = require("../../util/assert");
|
|
13
|
+
const flowr_analyzer_jupyter_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin");
|
|
14
|
+
/**
|
|
15
|
+
* The built-in Flowr Analyzer plugins that are always available.
|
|
16
|
+
*/
|
|
17
|
+
exports.BuiltInPlugins = [
|
|
18
|
+
['file:description', flowr_analyzer_description_file_plugin_1.FlowrAnalyzerDescriptionFilePlugin],
|
|
19
|
+
['versions:description', flowr_analyzer_package_versions_description_file_plugin_1.FlowrAnalyzerPackageVersionsDescriptionFilePlugin],
|
|
20
|
+
['loading-order:description', flowr_analyzer_loading_order_description_file_plugin_1.FlowrAnalyzerLoadingOrderDescriptionFilePlugin],
|
|
21
|
+
['file:rmd', flowr_analyzer_rmd_file_plugin_1.FlowrAnalyzerRmdFilePlugin],
|
|
22
|
+
['file:qmd', flowr_analyzer_qmd_file_plugin_1.FlowrAnalyzerQmdFilePlugin],
|
|
23
|
+
['file:ipynb', flowr_analyzer_jupyter_file_plugin_1.FlowrAnalyzerJupyterFilePlugin],
|
|
24
|
+
];
|
|
25
|
+
/**
|
|
26
|
+
* The registry of built-in and user-registered Flowr Analyzer plugins.
|
|
27
|
+
* Used by the {@link FlowrAnalyzerBuilder} and {@link FlowrAnalyzer} to instantiate plugins by name.
|
|
28
|
+
*/
|
|
29
|
+
const PluginRegistry = new Map(exports.BuiltInPlugins);
|
|
30
|
+
/**
|
|
31
|
+
* Register a new Flowr Analyzer plugin for the registry,
|
|
32
|
+
* to be used by the {@link FlowrAnalyzerBuilder} and {@link FlowrAnalyzer}.
|
|
33
|
+
*/
|
|
34
|
+
function registerPluginMaker(plugin, name = plugin.name) {
|
|
35
|
+
PluginRegistry.set(name, plugin);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Retrieve a registered Flowr Analyzer plugin by its name.
|
|
39
|
+
* @see {@link PluginToRegister}
|
|
40
|
+
*/
|
|
41
|
+
function getPlugin(name, args) {
|
|
42
|
+
const plugin = PluginRegistry.get(name);
|
|
43
|
+
return plugin ? new plugin(...args) : undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Create a Flowr Analyzer plugin from a {@link PluginToRegister} specification.
|
|
47
|
+
*/
|
|
48
|
+
function makePlugin(toRegister) {
|
|
49
|
+
if (toRegister instanceof Object && 'process' in toRegister) {
|
|
50
|
+
return toRegister;
|
|
51
|
+
}
|
|
52
|
+
if (Array.isArray(toRegister)) {
|
|
53
|
+
const [name, args] = toRegister;
|
|
54
|
+
const plugin = getPlugin(name, args);
|
|
55
|
+
(0, assert_1.guard)(plugin !== undefined, () => `Unknown Flowr Analyzer plugin: ${name.toString()}`);
|
|
56
|
+
return plugin;
|
|
57
|
+
}
|
|
58
|
+
const plugin = getPlugin(toRegister, []);
|
|
59
|
+
(0, assert_1.guard)(plugin !== undefined, () => `Unknown Flowr Analyzer plugin: ${toRegister.toString()}`);
|
|
60
|
+
return plugin;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=plugin-registry.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FlowrAnalyzerPlugin, PluginType } from '../flowr-analyzer-plugin';
|
|
2
2
|
import type { RParseRequest } from '../../../r-bridge/retriever';
|
|
3
3
|
import type { RProjectAnalysisRequest } from '../../context/flowr-analyzer-files-context';
|
|
4
|
-
import type
|
|
4
|
+
import { type FlowrFile } from '../../context/flowr-file';
|
|
5
5
|
/**
|
|
6
6
|
* This is the base class for all plugins that discover files in a project for analysis.
|
|
7
7
|
* These plugins interplay with the {@link FlowrAnalyzerFilesContext} to gather information about the files in the project.
|
|
@@ -19,6 +19,7 @@ class FlowrAnalyzerProjectDiscoveryPlugin extends flowr_analyzer_plugin_1.FlowrA
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
exports.FlowrAnalyzerProjectDiscoveryPlugin = FlowrAnalyzerProjectDiscoveryPlugin;
|
|
22
|
+
const discoverRSourcesRegex = /\.(r|rmd|ipynb|qmd)$/i;
|
|
22
23
|
/**
|
|
23
24
|
* This is the default dummy implementation of the {@link FlowrAnalyzerProjectDiscoveryPlugin}.
|
|
24
25
|
* It simply collects all files in the given folder and returns them as either {@link RParseRequest} (for R and Rmd files) or {@link FlowrTextFile} (for all other files).
|
|
@@ -27,11 +28,16 @@ class DefaultFlowrAnalyzerProjectDiscoveryPlugin extends FlowrAnalyzerProjectDis
|
|
|
27
28
|
name = 'default-project-discovery-plugin';
|
|
28
29
|
description = 'This is the default project discovery plugin that does nothing.';
|
|
29
30
|
version = new semver_1.SemVer('0.0.0');
|
|
31
|
+
supportedExtensions;
|
|
32
|
+
constructor(triggerOnExtensions = discoverRSourcesRegex) {
|
|
33
|
+
super();
|
|
34
|
+
this.supportedExtensions = triggerOnExtensions;
|
|
35
|
+
}
|
|
30
36
|
process(_context, args) {
|
|
31
37
|
const requests = [];
|
|
32
38
|
/* the dummy approach of collecting all files, group R and Rmd files, and be done with it */
|
|
33
39
|
for (const file of (0, files_1.getAllFilesSync)(args.content)) {
|
|
34
|
-
if (
|
|
40
|
+
if (this.supportedExtensions.test(file)) {
|
|
35
41
|
requests.push({ content: file, request: 'file' });
|
|
36
42
|
}
|
|
37
43
|
else {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReadonlyFlowrAnalysisProvider } from '../project/flowr-analyzer';
|
|
2
2
|
export interface BaseQueryFormat {
|
|
3
3
|
/** used to select the query type :) */
|
|
4
4
|
readonly type: string;
|
|
@@ -11,5 +11,5 @@ export interface BaseQueryResult {
|
|
|
11
11
|
readonly '.meta': BaseQueryMeta;
|
|
12
12
|
}
|
|
13
13
|
export interface BasicQueryData {
|
|
14
|
-
readonly analyzer:
|
|
14
|
+
readonly analyzer: ReadonlyFlowrAnalysisProvider;
|
|
15
15
|
}
|