@eagleoutice/flowr 2.6.2 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/README.md +36 -34
  2. package/abstract-interpretation/data-frame/absint-visitor.d.ts +1 -1
  3. package/abstract-interpretation/data-frame/absint-visitor.js +6 -6
  4. package/abstract-interpretation/data-frame/dataframe-domain.d.ts +4 -7
  5. package/abstract-interpretation/data-frame/dataframe-domain.js +5 -11
  6. package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +3 -1
  7. package/abstract-interpretation/data-frame/mappers/access-mapper.js +3 -2
  8. package/abstract-interpretation/data-frame/mappers/arguments.js +2 -2
  9. package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +3 -1
  10. package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +3 -2
  11. package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +7 -7
  12. package/abstract-interpretation/data-frame/mappers/function-mapper.js +28 -24
  13. package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +3 -1
  14. package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +3 -2
  15. package/abstract-interpretation/data-frame/semantics.js +54 -41
  16. package/abstract-interpretation/data-frame/shape-inference.d.ts +3 -3
  17. package/abstract-interpretation/data-frame/shape-inference.js +3 -3
  18. package/abstract-interpretation/domains/abstract-domain.d.ts +1 -0
  19. package/abstract-interpretation/domains/abstract-domain.js +3 -2
  20. package/abstract-interpretation/domains/bounded-set-domain.js +1 -1
  21. package/abstract-interpretation/domains/interval-domain.d.ts +2 -2
  22. package/abstract-interpretation/domains/interval-domain.js +3 -6
  23. package/abstract-interpretation/domains/lattice.d.ts +2 -0
  24. package/abstract-interpretation/domains/lattice.js +3 -1
  25. package/abstract-interpretation/domains/positive-interval-domain.d.ts +1 -1
  26. package/abstract-interpretation/domains/positive-interval-domain.js +1 -1
  27. package/abstract-interpretation/domains/satisfiable-domain.d.ts +2 -2
  28. package/abstract-interpretation/domains/satisfiable-domain.js +2 -2
  29. package/abstract-interpretation/domains/set-range-domain.d.ts +98 -0
  30. package/abstract-interpretation/domains/set-range-domain.js +400 -0
  31. package/abstract-interpretation/domains/set-upper-bound-domain.js +2 -2
  32. package/abstract-interpretation/domains/singleton-domain.js +2 -2
  33. package/abstract-interpretation/normalized-ast-fold.d.ts +1 -1
  34. package/benchmark/slicer.d.ts +3 -1
  35. package/benchmark/slicer.js +50 -27
  36. package/benchmark/stats/print.js +8 -5
  37. package/benchmark/stats/stats.d.ts +3 -2
  38. package/benchmark/summarizer/data.d.ts +11 -8
  39. package/benchmark/summarizer/first-phase/process.js +12 -9
  40. package/benchmark/summarizer/second-phase/graph.d.ts +3 -1
  41. package/benchmark/summarizer/second-phase/graph.js +3 -1
  42. package/benchmark/summarizer/second-phase/process.js +24 -18
  43. package/cli/export-quads-app.js +1 -1
  44. package/cli/repl/commands/repl-dataflow.js +2 -1
  45. package/cli/repl/commands/repl-parse.js +16 -4
  46. package/cli/repl/commands/repl-query.js +1 -1
  47. package/cli/repl/core.js +16 -13
  48. package/cli/repl/server/connection.js +2 -1
  49. package/cli/script-core/statistics-helper-core.js +2 -1
  50. package/cli/slicer-app.js +3 -4
  51. package/cli/wiki.d.ts +4 -0
  52. package/cli/wiki.js +165 -0
  53. package/config.d.ts +4 -0
  54. package/config.js +6 -0
  55. package/control-flow/cfg-dead-code.js +14 -3
  56. package/control-flow/cfg-simplification.d.ts +5 -2
  57. package/control-flow/cfg-simplification.js +3 -0
  58. package/control-flow/extract-cfg.d.ts +9 -3
  59. package/control-flow/extract-cfg.js +44 -4
  60. package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -2
  61. package/control-flow/simple-visitor.js +2 -2
  62. package/control-flow/useless-loop.d.ts +3 -3
  63. package/control-flow/useless-loop.js +16 -5
  64. package/core/pipeline-executor.d.ts +3 -6
  65. package/core/pipeline-executor.js +4 -7
  66. package/core/print/normalize-printer.d.ts +1 -1
  67. package/core/print/normalize-printer.js +2 -2
  68. package/core/steps/all/core/00-parse.d.ts +1 -1
  69. package/core/steps/all/core/00-parse.js +1 -1
  70. package/core/steps/all/core/10-normalize.d.ts +3 -9
  71. package/core/steps/all/core/10-normalize.js +1 -16
  72. package/core/steps/all/core/11-normalize-tree-sitter.d.ts +2 -3
  73. package/core/steps/all/core/11-normalize-tree-sitter.js +2 -3
  74. package/core/steps/all/core/20-dataflow.d.ts +3 -4
  75. package/core/steps/all/core/20-dataflow.js +2 -2
  76. package/core/steps/all/static-slicing/00-slice.d.ts +4 -2
  77. package/core/steps/all/static-slicing/00-slice.js +3 -2
  78. package/core/steps/all/static-slicing/10-reconstruct.d.ts +8 -0
  79. package/core/steps/all/static-slicing/10-reconstruct.js +4 -1
  80. package/core/steps/pipeline/default-pipelines.d.ts +94 -95
  81. package/core/steps/pipeline/default-pipelines.js +8 -8
  82. package/dataflow/cluster.js +2 -2
  83. package/dataflow/environments/append.d.ts +5 -0
  84. package/dataflow/environments/append.js +6 -20
  85. package/dataflow/environments/built-in.d.ts +2 -1
  86. package/dataflow/environments/clone.d.ts +1 -2
  87. package/dataflow/environments/clone.js +3 -17
  88. package/dataflow/environments/define.d.ts +7 -3
  89. package/dataflow/environments/define.js +9 -56
  90. package/dataflow/environments/diff.js +3 -3
  91. package/dataflow/environments/environment.d.ts +48 -28
  92. package/dataflow/environments/environment.js +187 -62
  93. package/dataflow/environments/overwrite.d.ts +1 -5
  94. package/dataflow/environments/overwrite.js +2 -61
  95. package/dataflow/environments/reference-to-maybe.d.ts +13 -0
  96. package/dataflow/environments/reference-to-maybe.js +54 -0
  97. package/dataflow/environments/resolve-by-name.d.ts +6 -1
  98. package/dataflow/environments/resolve-by-name.js +56 -4
  99. package/dataflow/environments/scoping.d.ts +8 -4
  100. package/dataflow/environments/scoping.js +13 -9
  101. package/dataflow/eval/resolve/alias-tracking.d.ts +10 -4
  102. package/dataflow/eval/resolve/alias-tracking.js +15 -13
  103. package/dataflow/eval/resolve/resolve-argument.d.ts +2 -1
  104. package/dataflow/eval/resolve/resolve-argument.js +10 -10
  105. package/dataflow/eval/resolve/resolve.d.ts +13 -11
  106. package/dataflow/eval/resolve/resolve.js +16 -15
  107. package/dataflow/eval/values/string/string-constants.d.ts +9 -3
  108. package/dataflow/eval/values/string/string-constants.js +9 -3
  109. package/dataflow/extractor.d.ts +2 -3
  110. package/dataflow/extractor.js +25 -28
  111. package/dataflow/fn/higher-order-function.d.ts +2 -1
  112. package/dataflow/fn/higher-order-function.js +4 -4
  113. package/dataflow/graph/dataflowgraph-builder.d.ts +9 -5
  114. package/dataflow/graph/dataflowgraph-builder.js +21 -11
  115. package/dataflow/graph/diff-dataflow-graph.js +2 -2
  116. package/dataflow/graph/graph.d.ts +13 -11
  117. package/dataflow/graph/graph.js +40 -24
  118. package/dataflow/graph/invert-dfg.d.ts +3 -2
  119. package/dataflow/graph/invert-dfg.js +3 -3
  120. package/dataflow/graph/resolve-graph.d.ts +2 -1
  121. package/dataflow/graph/resolve-graph.js +2 -2
  122. package/dataflow/graph/unknown-replacement.d.ts +4 -2
  123. package/dataflow/graph/unknown-replacement.js +4 -2
  124. package/dataflow/graph/vertex.d.ts +3 -3
  125. package/dataflow/graph/vertex.js +3 -3
  126. package/dataflow/info.d.ts +8 -1
  127. package/dataflow/info.js +21 -0
  128. package/dataflow/internal/linker.js +10 -11
  129. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +2 -2
  130. package/dataflow/internal/process/functions/call/argument/make-argument.js +2 -3
  131. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +7 -1
  132. package/dataflow/internal/process/functions/call/argument/unpack-argument.js +12 -3
  133. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +1 -1
  134. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +7 -7
  135. package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +2 -2
  136. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +3 -1
  137. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.js +6 -6
  138. package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +14 -14
  139. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +10 -8
  140. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +4 -4
  141. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +2 -1
  142. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +10 -14
  143. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +1 -1
  144. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +2 -2
  145. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +3 -1
  146. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +8 -6
  147. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +1 -1
  148. package/dataflow/internal/process/functions/call/built-in/built-in-list.js +2 -2
  149. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +4 -4
  150. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +6 -1
  151. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +7 -2
  152. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +5 -5
  153. package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +6 -4
  154. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +15 -10
  155. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +78 -75
  156. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -1
  157. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -1
  158. package/dataflow/internal/process/functions/call/built-in/built-in-vector.js +2 -2
  159. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +5 -5
  160. package/dataflow/internal/process/functions/call/common.d.ts +1 -1
  161. package/dataflow/internal/process/functions/call/common.js +6 -7
  162. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -1
  163. package/dataflow/internal/process/functions/call/default-call-handling.js +3 -1
  164. package/dataflow/internal/process/functions/call/known-call-handling.js +4 -4
  165. package/dataflow/internal/process/functions/call/named-call-handling.js +4 -4
  166. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +1 -1
  167. package/dataflow/internal/process/functions/process-argument.js +1 -1
  168. package/dataflow/internal/process/functions/process-parameter.js +4 -4
  169. package/dataflow/internal/process/process-symbol.js +1 -1
  170. package/dataflow/internal/process/process-value.d.ts +1 -1
  171. package/dataflow/internal/process/process-value.js +7 -7
  172. package/dataflow/origin/dfg-get-symbol-refs.d.ts +1 -1
  173. package/dataflow/origin/dfg-get-symbol-refs.js +1 -1
  174. package/dataflow/processor.d.ts +7 -16
  175. package/documentation/data/dfg/doc-data-dfg-util.d.ts +0 -2
  176. package/documentation/data/faq/faqs.js +27 -18
  177. package/documentation/data/faq/recommended-configs.d.ts +36 -0
  178. package/documentation/data/faq/recommended-configs.js +40 -0
  179. package/documentation/data/faq/wiki-faq-store.d.ts +1 -0
  180. package/documentation/data/faq/wiki-faq-store.js +10 -2
  181. package/documentation/data/server/doc-data-server-messages.js +1 -1
  182. package/documentation/doc-capabilities.d.ts +9 -0
  183. package/documentation/{print-capabilities-markdown.js → doc-capabilities.js} +18 -21
  184. package/documentation/doc-readme.d.ts +9 -0
  185. package/documentation/{print-readme.js → doc-readme.js} +31 -35
  186. package/documentation/doc-util/doc-benchmarks.d.ts +6 -4
  187. package/documentation/doc-util/doc-benchmarks.js +6 -4
  188. package/documentation/doc-util/doc-cfg.js +5 -8
  189. package/documentation/doc-util/doc-dfg.d.ts +7 -7
  190. package/documentation/doc-util/doc-dfg.js +15 -14
  191. package/documentation/doc-util/doc-escape.d.ts +6 -0
  192. package/documentation/doc-util/doc-escape.js +11 -0
  193. package/documentation/doc-util/doc-general.d.ts +22 -2
  194. package/documentation/doc-util/doc-general.js +22 -2
  195. package/documentation/doc-util/doc-normalized-ast.d.ts +10 -5
  196. package/documentation/doc-util/doc-normalized-ast.js +14 -10
  197. package/documentation/doc-util/doc-query.d.ts +12 -4
  198. package/documentation/doc-util/doc-query.js +18 -11
  199. package/documentation/doc-util/doc-search.d.ts +0 -30
  200. package/documentation/doc-util/doc-search.js +2 -73
  201. package/documentation/doc-util/doc-server-message.d.ts +5 -5
  202. package/documentation/doc-util/doc-server-message.js +4 -4
  203. package/documentation/doc-util/doc-types.d.ts +69 -32
  204. package/documentation/doc-util/doc-types.js +109 -62
  205. package/documentation/index.d.ts +9 -9
  206. package/documentation/index.js +9 -9
  207. package/documentation/issue-linting-rule.d.ts +9 -0
  208. package/documentation/{print-linter-issue.js → issue-linting-rule.js} +20 -23
  209. package/documentation/wiki-analyzer.d.ts +9 -0
  210. package/documentation/wiki-analyzer.js +425 -0
  211. package/documentation/wiki-cfg.d.ts +9 -0
  212. package/documentation/{print-cfg-wiki.js → wiki-cfg.js} +144 -160
  213. package/documentation/wiki-core.d.ts +14 -0
  214. package/documentation/{print-core-wiki.js → wiki-core.js} +164 -175
  215. package/documentation/wiki-dataflow-graph.d.ts +9 -0
  216. package/documentation/{print-dataflow-graph-wiki.js → wiki-dataflow-graph.js} +146 -177
  217. package/documentation/wiki-engine.d.ts +9 -0
  218. package/documentation/{print-engines-wiki.js → wiki-engine.js} +27 -42
  219. package/documentation/wiki-faq.d.ts +8 -0
  220. package/documentation/wiki-faq.js +21 -0
  221. package/documentation/wiki-interface.d.ts +9 -0
  222. package/documentation/{print-interface-wiki.js → wiki-interface.js} +59 -56
  223. package/documentation/wiki-linter.d.ts +9 -0
  224. package/documentation/{print-linter-wiki.js → wiki-linter.js} +52 -48
  225. package/documentation/wiki-linting-and-testing.d.ts +9 -0
  226. package/documentation/{print-linting-and-testing-wiki.js → wiki-linting-and-testing.js} +25 -32
  227. package/documentation/wiki-mk/doc-context.d.ts +186 -0
  228. package/documentation/wiki-mk/doc-context.js +84 -0
  229. package/documentation/wiki-mk/doc-maker.d.ts +95 -0
  230. package/documentation/wiki-mk/doc-maker.js +134 -0
  231. package/documentation/wiki-normalized-ast.d.ts +9 -0
  232. package/documentation/{print-normalized-ast-wiki.js → wiki-normalized-ast.js} +64 -47
  233. package/documentation/wiki-onboarding.d.ts +8 -0
  234. package/documentation/{print-onboarding-wiki.js → wiki-onboarding.js} +18 -15
  235. package/documentation/wiki-query.d.ts +9 -0
  236. package/documentation/{print-query-wiki.js → wiki-query.js} +62 -47
  237. package/documentation/wiki-search.d.ts +9 -0
  238. package/documentation/wiki-search.js +61 -0
  239. package/linter/linter-executor.js +3 -2
  240. package/linter/linter-format.d.ts +2 -2
  241. package/linter/linter-rules.d.ts +15 -19
  242. package/linter/rules/absolute-path.d.ts +1 -2
  243. package/linter/rules/absolute-path.js +5 -5
  244. package/linter/rules/dataframe-access-validation.d.ts +2 -2
  245. package/linter/rules/dataframe-access-validation.js +13 -9
  246. package/linter/rules/dead-code.d.ts +1 -1
  247. package/linter/rules/deprecated-functions.d.ts +1 -5
  248. package/linter/rules/file-path-validity.d.ts +1 -1
  249. package/linter/rules/file-path-validity.js +4 -4
  250. package/linter/rules/function-finder-util.d.ts +3 -7
  251. package/linter/rules/function-finder-util.js +1 -1
  252. package/linter/rules/naming-convention.d.ts +2 -2
  253. package/linter/rules/naming-convention.js +1 -1
  254. package/linter/rules/network-functions.d.ts +1 -1
  255. package/linter/rules/network-functions.js +1 -1
  256. package/linter/rules/seeded-randomness.d.ts +4 -3
  257. package/linter/rules/seeded-randomness.js +38 -18
  258. package/linter/rules/unused-definition.d.ts +1 -1
  259. package/linter/rules/useless-loop.d.ts +2 -2
  260. package/linter/rules/useless-loop.js +2 -2
  261. package/package.json +5 -17
  262. package/project/cache/flowr-analyzer-cache.d.ts +7 -10
  263. package/project/cache/flowr-analyzer-cache.js +17 -38
  264. package/project/cache/flowr-analyzer-controlflow-cache.d.ts +34 -0
  265. package/project/cache/flowr-analyzer-controlflow-cache.js +79 -0
  266. package/project/context/flowr-analyzer-context.d.ts +37 -5
  267. package/project/context/flowr-analyzer-context.js +51 -4
  268. package/project/context/flowr-analyzer-environment-context.d.ts +47 -0
  269. package/project/context/flowr-analyzer-environment-context.js +50 -0
  270. package/project/context/flowr-analyzer-files-context.d.ts +63 -13
  271. package/project/context/flowr-analyzer-files-context.js +110 -39
  272. package/project/context/flowr-file.d.ts +32 -10
  273. package/project/context/flowr-file.js +30 -9
  274. package/project/flowr-analyzer-builder.d.ts +22 -28
  275. package/project/flowr-analyzer-builder.js +32 -70
  276. package/project/flowr-analyzer.d.ts +55 -14
  277. package/project/flowr-analyzer.js +53 -8
  278. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +7 -1
  279. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.js +13 -5
  280. package/project/plugins/file-plugins/flowr-analyzer-file-plugin.d.ts +3 -3
  281. package/project/plugins/file-plugins/flowr-analyzer-file-plugin.js +11 -5
  282. package/project/plugins/file-plugins/flowr-description-file.d.ts +3 -3
  283. package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.d.ts +22 -0
  284. package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.js +33 -0
  285. package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.d.ts +22 -0
  286. package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.js +33 -0
  287. package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.d.ts +22 -0
  288. package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.js +33 -0
  289. package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.d.ts +20 -0
  290. package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.js +42 -0
  291. package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.d.ts +59 -0
  292. package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.js +132 -0
  293. package/project/plugins/file-plugins/notebooks/notebook.d.ts +0 -0
  294. package/project/plugins/file-plugins/notebooks/notebook.js +2 -0
  295. package/project/plugins/flowr-analyzer-plugin-defaults.d.ts +5 -0
  296. package/project/plugins/flowr-analyzer-plugin-defaults.js +23 -0
  297. package/project/plugins/flowr-analyzer-plugin.d.ts +2 -0
  298. package/project/plugins/flowr-analyzer-plugin.js +2 -0
  299. package/project/plugins/loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin.js +1 -1
  300. package/project/plugins/package-version-plugins/flowr-analyzer-package-versions-description-file-plugin.js +1 -1
  301. package/project/plugins/plugin-registry.d.ts +34 -0
  302. package/project/plugins/plugin-registry.js +62 -0
  303. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.js +7 -1
  304. package/queries/catalog/call-context-query/call-context-query-executor.js +5 -6
  305. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +5 -2
  306. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +25 -18
  307. package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
  308. package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +1 -1
  309. package/queries/catalog/control-flow-query/control-flow-query-format.js +3 -2
  310. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +1 -1
  311. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
  312. package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
  313. package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +1 -1
  314. package/queries/catalog/dependencies-query/dependencies-query-executor.js +5 -5
  315. package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +1 -1
  316. package/queries/catalog/dependencies-query/dependencies-query-format.js +1 -1
  317. package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +1 -1
  318. package/queries/catalog/df-shape-query/df-shape-query-executor.js +2 -2
  319. package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +6 -6
  320. package/queries/catalog/df-shape-query/df-shape-query-format.js +8 -7
  321. package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +2 -1
  322. package/queries/catalog/happens-before-query/happens-before-query-executor.js +2 -1
  323. package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
  324. package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
  325. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +1 -1
  326. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +4 -4
  327. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +1 -1
  328. package/queries/catalog/linter-query/linter-query-format.d.ts +1 -1
  329. package/queries/catalog/linter-query/linter-query-format.js +13 -2
  330. package/queries/catalog/location-map-query/location-map-query-executor.js +2 -1
  331. package/queries/catalog/location-map-query/location-map-query-format.d.ts +1 -1
  332. package/queries/catalog/location-map-query/location-map-query-format.js +1 -1
  333. package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
  334. package/queries/catalog/origin-query/origin-query-format.d.ts +1 -1
  335. package/queries/catalog/project-query/project-query-executor.js +3 -1
  336. package/queries/catalog/project-query/project-query-format.d.ts +1 -1
  337. package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +2 -2
  338. package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +3 -3
  339. package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +1 -1
  340. package/queries/catalog/search-query/search-query-format.d.ts +1 -1
  341. package/queries/catalog/static-slice-query/static-slice-query-executor.js +2 -2
  342. package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +1 -1
  343. package/queries/catalog/static-slice-query/static-slice-query-format.js +13 -1
  344. package/queries/query.d.ts +26 -18
  345. package/queries/query.js +21 -1
  346. package/r-bridge/lang-4.x/ast/model/collect.d.ts +2 -1
  347. package/r-bridge/lang-4.x/ast/model/collect.js +4 -0
  348. package/r-bridge/lang-4.x/ast/model/nodes/r-project.d.ts +29 -0
  349. package/r-bridge/lang-4.x/ast/model/nodes/r-project.js +15 -0
  350. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +5 -7
  351. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +24 -11
  352. package/r-bridge/lang-4.x/ast/model/type.d.ts +2 -0
  353. package/r-bridge/lang-4.x/ast/model/type.js +2 -0
  354. package/r-bridge/lang-4.x/ast/parser/json/format.js +1 -1
  355. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +9 -8
  356. package/r-bridge/lang-4.x/ast/parser/json/parser.js +11 -10
  357. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.d.ts +4 -3
  358. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.js +20 -11
  359. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +3 -3
  360. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +5 -4
  361. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +3 -2
  362. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +14 -5
  363. package/r-bridge/parser.d.ts +15 -5
  364. package/r-bridge/parser.js +27 -13
  365. package/r-bridge/retriever.d.ts +9 -15
  366. package/r-bridge/retriever.js +14 -5
  367. package/r-bridge/shell.d.ts +1 -1
  368. package/r-bridge/shell.js +1 -1
  369. package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
  370. package/reconstruct/auto-select/magic-comments.js +1 -1
  371. package/reconstruct/reconstruct.d.ts +17 -9
  372. package/reconstruct/reconstruct.js +19 -8
  373. package/search/flowr-search.d.ts +12 -0
  374. package/search/search-executor/search-enrichers.d.ts +9 -2
  375. package/search/search-executor/search-enrichers.js +1 -3
  376. package/search/search-executor/search-generators.d.ts +1 -1
  377. package/search/search-executor/search-generators.js +9 -4
  378. package/slicing/criterion/collect-all.d.ts +3 -2
  379. package/slicing/criterion/collect-all.js +1 -1
  380. package/slicing/criterion/parse.js +4 -4
  381. package/slicing/static/slice-call.d.ts +3 -2
  382. package/slicing/static/slice-call.js +4 -4
  383. package/slicing/static/static-slicer.d.ts +3 -1
  384. package/slicing/static/static-slicer.js +6 -7
  385. package/statistics/features/supported/assignments/assignments.js +1 -1
  386. package/statistics/features/supported/control-flow/control-flow.js +2 -2
  387. package/statistics/features/supported/data-access/data-access.js +1 -1
  388. package/statistics/features/supported/defined-functions/defined-functions.js +1 -1
  389. package/statistics/features/supported/expression-list/statistics-expression-list.js +1 -1
  390. package/statistics/features/supported/loops/loops.js +1 -1
  391. package/statistics/features/supported/used-functions/used-functions.js +2 -2
  392. package/statistics/features/supported/variables/variables.js +3 -2
  393. package/statistics/statistics.js +3 -2
  394. package/util/assert.d.ts +4 -0
  395. package/util/assert.js +4 -0
  396. package/util/containers.js +1 -1
  397. package/util/files.d.ts +1 -1
  398. package/util/files.js +1 -1
  399. package/util/mermaid/ast.d.ts +4 -3
  400. package/util/mermaid/ast.js +36 -8
  401. package/util/mermaid/cfg.js +1 -1
  402. package/util/mermaid/dfg.d.ts +1 -0
  403. package/util/mermaid/dfg.js +3 -3
  404. package/util/simple-df/dfg-view.d.ts +2 -1
  405. package/util/simple-df/dfg-view.js +2 -2
  406. package/util/version.js +1 -1
  407. package/dataflow/environments/remove.d.ts +0 -12
  408. package/dataflow/environments/remove.js +0 -52
  409. package/documentation/print-analyzer-wiki.d.ts +0 -1
  410. package/documentation/print-analyzer-wiki.js +0 -141
  411. package/documentation/print-capabilities-markdown.d.ts +0 -1
  412. package/documentation/print-cfg-wiki.d.ts +0 -1
  413. package/documentation/print-core-wiki.d.ts +0 -5
  414. package/documentation/print-dataflow-graph-wiki.d.ts +0 -1
  415. package/documentation/print-engines-wiki.d.ts +0 -1
  416. package/documentation/print-faq-wiki.d.ts +0 -1
  417. package/documentation/print-faq-wiki.js +0 -18
  418. package/documentation/print-interface-wiki.d.ts +0 -1
  419. package/documentation/print-linter-issue.d.ts +0 -1
  420. package/documentation/print-linter-wiki.d.ts +0 -1
  421. package/documentation/print-linting-and-testing-wiki.d.ts +0 -1
  422. package/documentation/print-normalized-ast-wiki.d.ts +0 -1
  423. package/documentation/print-onboarding-wiki.d.ts +0 -1
  424. package/documentation/print-query-wiki.d.ts +0 -1
  425. package/documentation/print-readme.d.ts +0 -1
  426. package/documentation/print-search-wiki.d.ts +0 -1
  427. package/documentation/print-search-wiki.js +0 -74
  428. package/util/formats/adapter-format.d.ts +0 -6
  429. package/util/formats/adapter-format.js +0 -3
  430. package/util/formats/adapter.d.ts +0 -27
  431. package/util/formats/adapter.js +0 -58
  432. package/util/formats/adapters/r-adapter.d.ts +0 -4
  433. package/util/formats/adapters/r-adapter.js +0 -7
  434. package/util/formats/adapters/rmd-adapter.d.ts +0 -35
  435. package/util/formats/adapters/rmd-adapter.js +0 -100
@@ -5,7 +5,7 @@ const shape_inference_1 = require("../../../abstract-interpretation/data-frame/s
5
5
  const parse_1 = require("../../../slicing/criterion/parse");
6
6
  const log_1 = require("../../../util/log");
7
7
  /**
8
- * Executes the given dataframe shape queries using the provided analyzer.
8
+ * Executes the given data frame shape queries using the provided analyzer.
9
9
  */
10
10
  async function executeDfShapeQuery({ analyzer }, queries) {
11
11
  if (queries.length !== 1 && queries.some(query => query.criterion === undefined)) {
@@ -16,7 +16,7 @@ async function executeDfShapeQuery({ analyzer }, queries) {
16
16
  const dfg = (await analyzer.dataflow()).graph;
17
17
  const cfg = await analyzer.controlflow();
18
18
  const start = Date.now();
19
- const domains = (0, shape_inference_1.inferDataFrameShapes)(cfg, dfg, ast, analyzer.flowrConfig);
19
+ const domains = (0, shape_inference_1.inferDataFrameShapes)(cfg, dfg, ast, analyzer.inspectContext());
20
20
  if (queries.length === 1 && queries[0].criterion === undefined) {
21
21
  return {
22
22
  '.meta': {
@@ -1,11 +1,11 @@
1
+ import Joi from 'joi';
1
2
  import { type DataFrameDomain, DataFrameStateDomain } from '../../../abstract-interpretation/data-frame/dataframe-domain';
3
+ import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
4
+ import type { FlowrConfigOptions } from '../../../config';
5
+ import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
2
6
  import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
3
7
  import type { ParsedQueryLine } from '../../query';
4
8
  import { executeDfShapeQuery } from './df-shape-query-executor';
5
- import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
6
- import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
7
- import type { FlowrConfigOptions } from '../../../config';
8
- import Joi from 'joi';
9
9
  /** Infer the shape of data frames using abstract interpretation. */
10
10
  export interface DfShapeQuery extends BaseQueryFormat {
11
11
  readonly type: 'df-shape';
@@ -14,10 +14,10 @@ export interface DfShapeQuery extends BaseQueryFormat {
14
14
  export interface DfShapeQueryResult extends BaseQueryResult {
15
15
  domains: DataFrameStateDomain | Map<SingleSlicingCriterion, DataFrameDomain | undefined>;
16
16
  }
17
- declare function dfShapeQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'df-shape'>;
17
+ declare function dfShapeQueryLineParser(_output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'df-shape'>;
18
18
  export declare const DfShapeQueryDefinition: {
19
19
  readonly executor: typeof executeDfShapeQuery;
20
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
20
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
21
21
  readonly jsonFormatter: (queryResults: BaseQueryResult) => object;
22
22
  readonly fromLine: typeof dfShapeQueryLineParser;
23
23
  readonly schema: Joi.ObjectSchema<any>;
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DfShapeQueryDefinition = void 0;
7
+ const joi_1 = __importDefault(require("joi"));
7
8
  const dataframe_domain_1 = require("../../../abstract-interpretation/data-frame/dataframe-domain");
9
+ const slice_query_parser_1 = require("../../../cli/repl/parser/slice-query-parser");
8
10
  const ansi_1 = require("../../../util/text/ansi");
9
11
  const time_1 = require("../../../util/text/time");
10
12
  const df_shape_query_executor_1 = require("./df-shape-query-executor");
11
- const slice_query_parser_1 = require("../../../cli/repl/parser/slice-query-parser");
12
- const joi_1 = __importDefault(require("joi"));
13
- function dfShapeQueryLineParser(output, line, _config) {
13
+ function dfShapeQueryLineParser(_output, line, _config) {
14
14
  const criterion = (0, slice_query_parser_1.sliceCriterionParser)(line[0]);
15
15
  return {
16
16
  query: {
@@ -35,10 +35,11 @@ exports.DfShapeQueryDefinition = {
35
35
  return true;
36
36
  },
37
37
  jsonFormatter: (queryResults) => {
38
- const out = queryResults;
39
- const domains = out.domains instanceof dataframe_domain_1.DataFrameStateDomain ? out.domains.value : out.domains;
40
- const json = Object.fromEntries(domains.entries().map(([key, domain]) => [key, domain?.toJson()]));
41
- return json;
38
+ const { domains, ...out } = queryResults;
39
+ const state = domains instanceof dataframe_domain_1.DataFrameStateDomain ? domains.value : domains;
40
+ const json = Object.fromEntries(state.entries().map(([key, domain]) => [key, domain?.toJson() ?? null]));
41
+ const result = { domains: json, ...out };
42
+ return result;
42
43
  },
43
44
  fromLine: dfShapeQueryLineParser,
44
45
  schema: joi_1.default.object({
@@ -1,6 +1,7 @@
1
1
  import type { BasicQueryData } from '../../base-query-format';
2
2
  import type { HappensBeforeQuery, HappensBeforeQueryResult } from './happens-before-query-format';
3
3
  /**
4
- *
4
+ * Execute happens-before queries on the given analyzer.
5
+ * This checks, whether for two given slicing criteria `a` and `b`, `a` happens before `b` in the control flow graph.
5
6
  */
6
7
  export declare function executeHappensBefore({ analyzer }: BasicQueryData, queries: readonly HappensBeforeQuery[]): Promise<HappensBeforeQueryResult>;
@@ -7,7 +7,8 @@ const extract_cfg_1 = require("../../../control-flow/extract-cfg");
7
7
  const happens_before_1 = require("../../../control-flow/happens-before");
8
8
  const parse_1 = require("../../../slicing/criterion/parse");
9
9
  /**
10
- *
10
+ * Execute happens-before queries on the given analyzer.
11
+ * This checks, whether for two given slicing criteria `a` and `b`, `a` happens before `b` in the control flow graph.
11
12
  */
12
13
  async function executeHappensBefore({ analyzer }, queries) {
13
14
  const start = Date.now();
@@ -13,7 +13,7 @@ export interface HappensBeforeQueryResult extends BaseQueryResult {
13
13
  }
14
14
  export declare const HappensBeforeQueryDefinition: {
15
15
  readonly executor: typeof executeHappensBefore;
16
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
16
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
17
17
  readonly schema: Joi.ObjectSchema<any>;
18
18
  readonly flattenInvolvedNodes: () => never[];
19
19
  };
@@ -10,7 +10,7 @@ export interface IdMapQueryResult extends BaseQueryResult {
10
10
  }
11
11
  export declare const IdMapQueryDefinition: {
12
12
  readonly executor: typeof executeIdMapQuery;
13
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
13
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
14
14
  readonly schema: Joi.ObjectSchema<any>;
15
15
  readonly flattenInvolvedNodes: () => never[];
16
16
  };
@@ -1,6 +1,6 @@
1
1
  import type { InspectHigherOrderQuery, InspectHigherOrderQueryResult } from './inspect-higher-order-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
3
  /**
4
- *
4
+ * Execute higher-order function inspection queries on the given analyzer.
5
5
  */
6
6
  export declare function executeHigherOrderQuery({ analyzer }: BasicQueryData, queries: readonly InspectHigherOrderQuery[]): Promise<InspectHigherOrderQueryResult>;
@@ -5,7 +5,7 @@ const parse_1 = require("../../../slicing/criterion/parse");
5
5
  const vertex_1 = require("../../../dataflow/graph/vertex");
6
6
  const higher_order_function_1 = require("../../../dataflow/fn/higher-order-function");
7
7
  /**
8
- *
8
+ * Execute higher-order function inspection queries on the given analyzer.
9
9
  */
10
10
  async function executeHigherOrderQuery({ analyzer }, queries) {
11
11
  const start = Date.now();
@@ -32,11 +32,11 @@ async function executeHigherOrderQuery({ analyzer }, queries) {
32
32
  }
33
33
  }
34
34
  const graph = (await analyzer.dataflow()).graph;
35
- const fns = graph.vertices(true)
36
- .filter(([, v]) => (0, vertex_1.isFunctionDefinitionVertex)(v) && (filterFor.size === 0 || filterFor.has(v.id)));
35
+ const fns = graph.verticesOfType(vertex_1.VertexType.FunctionDefinition)
36
+ .filter(([, v]) => filterFor.size === 0 || filterFor.has(v.id));
37
37
  const result = {};
38
38
  for (const [id,] of fns) {
39
- result[id] = (0, higher_order_function_1.isHigherOrder)(id, graph);
39
+ result[id] = (0, higher_order_function_1.isHigherOrder)(id, graph, analyzer.inspectContext());
40
40
  }
41
41
  return {
42
42
  '.meta': {
@@ -16,7 +16,7 @@ export interface InspectHigherOrderQueryResult extends BaseQueryResult {
16
16
  }
17
17
  export declare const InspectHigherOrderQueryDefinition: {
18
18
  readonly executor: typeof executeHigherOrderQuery;
19
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, processed: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
19
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, processed: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
20
20
  readonly schema: Joi.ObjectSchema<any>;
21
21
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
22
22
  };
@@ -27,7 +27,7 @@ declare function linterQueryLineParser(output: ReplOutput, line: readonly string
27
27
  declare function linterQueryCompleter(line: readonly string[], startingNewArg: boolean, _config: FlowrConfigOptions): CommandCompletions;
28
28
  export declare const LinterQueryDefinition: {
29
29
  readonly executor: typeof executeLinterQuery;
30
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
30
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
31
31
  readonly completer: typeof linterQueryCompleter;
32
32
  readonly fromLine: typeof linterQueryLineParser;
33
33
  readonly schema: Joi.ObjectSchema<any>;
@@ -12,6 +12,7 @@ const ansi_1 = require("../../../util/text/ansi");
12
12
  const time_1 = require("../../../util/text/time");
13
13
  const doc_code_1 = require("../../../documentation/doc-util/doc-code");
14
14
  const retriever_1 = require("../../../r-bridge/retriever");
15
+ const assert_1 = require("../../../util/assert");
15
16
  function rulesFromInput(output, rulesPart) {
16
17
  return rulesPart
17
18
  .reduce((acc, ruleName) => {
@@ -78,9 +79,18 @@ function linterQueryCompleter(line, startingNewArg, _config) {
78
79
  }
79
80
  exports.LinterQueryDefinition = {
80
81
  executor: linter_query_executor_1.executeLinterQuery,
81
- asciiSummarizer: (formatter, _analyzer, queryResults, result) => {
82
+ asciiSummarizer: (formatter, analyzer, queryResults, result) => {
82
83
  const out = queryResults;
83
84
  result.push(`Query: ${(0, ansi_1.bold)('linter', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`);
85
+ const allDidFail = Object.values(out.results).every(r => (0, linter_format_1.isLintingResultsError)(r));
86
+ if (allDidFail) {
87
+ result.push('All linting rules failed to execute.');
88
+ if (analyzer.inspectContext().files.loadingOrder.getUnorderedRequests().length === 0) {
89
+ result.push(formatter.format('No requests to lint for were found in the analysis.', { color: 1 /* Colors.Red */, effect: ansi_1.ColorEffect.Foreground, style: 1 /* FontStyles.Bold */ }));
90
+ result.push('If you consider this an error, please report a bug: ' + (0, assert_1.getGuardIssueUrl)('analyzer found no requests to lint for'));
91
+ }
92
+ return true;
93
+ }
84
94
  for (const [ruleName, results] of Object.entries(out.results)) {
85
95
  addLintingRuleResult(ruleName, results, result);
86
96
  }
@@ -101,7 +111,8 @@ function addLintingRuleResult(ruleName, results, result) {
101
111
  const rule = linter_rules_1.LintingRules[ruleName];
102
112
  result.push(` ╰ **${rule.info.name}** (${ruleName}):`);
103
113
  if ((0, linter_format_1.isLintingResultsError)(results)) {
104
- result.push(` ╰ Error during execution of Rule: ${results.error}`);
114
+ const error = results.error.includes('At least one request must be set') ? 'No requests to lint for were found in the analysis.' : 'Error during execution of rule: ' + results.error;
115
+ result.push(` ╰ ${error}`);
105
116
  return;
106
117
  }
107
118
  for (const certainty of [linter_format_1.LintingResultCertainty.Certain, linter_format_1.LintingResultCertainty.Uncertain]) {
@@ -39,7 +39,8 @@ async function executeLocationMapQuery({ analyzer }, queries) {
39
39
  };
40
40
  let count = 0;
41
41
  const inverseMap = new Map();
42
- for (const file of (await analyzer.dataflow()).graph.sourced) {
42
+ await analyzer.dataflow(); // ensure all files are considered
43
+ for (const file of analyzer.inspectContext().files.consideredFilesList()) {
43
44
  locationMap.files[count] = file;
44
45
  inverseMap.set(file, count);
45
46
  count++;
@@ -25,7 +25,7 @@ export interface LocationMapQueryResult extends BaseQueryResult {
25
25
  ids: Record<NodeId, [FileId, SourceRange]>;
26
26
  };
27
27
  }
28
- declare function locationMapLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'location-map'>;
28
+ declare function locationMapLineParser(_output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'location-map'>;
29
29
  export declare const LocationMapQueryDefinition: {
30
30
  readonly executor: typeof executeLocationMapQuery;
31
31
  readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) => true;
@@ -10,7 +10,7 @@ const time_1 = require("../../../util/text/time");
10
10
  const joi_1 = __importDefault(require("joi"));
11
11
  const query_print_1 = require("../../query-print");
12
12
  const slice_query_parser_1 = require("../../../cli/repl/parser/slice-query-parser");
13
- function locationMapLineParser(output, line, _config) {
13
+ function locationMapLineParser(_output, line, _config) {
14
14
  const criteria = (0, slice_query_parser_1.sliceCriteriaParser)(line[0]);
15
15
  return {
16
16
  query: {
@@ -13,7 +13,7 @@ export interface NormalizedAstQueryResult extends BaseQueryResult {
13
13
  }
14
14
  export declare const NormalizedAstQueryDefinition: {
15
15
  readonly executor: typeof executeNormalizedAstQuery;
16
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
16
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
17
17
  readonly schema: Joi.ObjectSchema<any>;
18
18
  readonly flattenInvolvedNodes: () => never[];
19
19
  };
@@ -18,7 +18,7 @@ export interface OriginQueryResult extends BaseQueryResult {
18
18
  declare function originQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'origin'>;
19
19
  export declare const OriginQueryDefinition: {
20
20
  readonly executor: typeof executeResolveValueQuery;
21
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
21
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
22
22
  readonly fromLine: typeof originQueryLineParser;
23
23
  readonly schema: Joi.ObjectSchema<any>;
24
24
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
@@ -9,12 +9,14 @@ async function executeProjectQuery({ analyzer }, queries) {
9
9
  if (queries.length !== 1) {
10
10
  log_1.log.warn('Project query expects only up to one query, but got', queries.length);
11
11
  }
12
+ // we need to know what is considered by the analyzer
13
+ await analyzer.dataflow();
12
14
  return {
13
15
  '.meta': {
14
16
  /* there is no sense in measuring a get */
15
17
  timing: 0
16
18
  },
17
- files: (await analyzer.dataflow()).graph.sourced
19
+ files: [...analyzer.inspectContext().files.consideredFilesList()]
18
20
  };
19
21
  }
20
22
  //# sourceMappingURL=project-query-executor.js.map
@@ -9,7 +9,7 @@ export interface ProjectQueryResult extends BaseQueryResult {
9
9
  }
10
10
  export declare const ProjectQueryDefinition: {
11
11
  readonly executor: typeof executeProjectQuery;
12
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
12
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
13
13
  readonly schema: Joi.ObjectSchema<any>;
14
14
  readonly flattenInvolvedNodes: () => never[];
15
15
  };
@@ -1,10 +1,10 @@
1
1
  import type { ResolveValueQuery, ResolveValueQueryResult } from './resolve-value-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
3
  /**
4
- *
4
+ * Naive fingerprint to filter out duplicate queries.
5
5
  */
6
6
  export declare function fingerPrintOfQuery(query: ResolveValueQuery): string;
7
7
  /**
8
- *
8
+ * Executes a resolve-value query.
9
9
  */
10
10
  export declare function executeResolveValueQuery({ analyzer }: BasicQueryData, queries: readonly ResolveValueQuery[]): Promise<ResolveValueQueryResult>;
@@ -6,13 +6,13 @@ const log_1 = require("../../../util/log");
6
6
  const parse_1 = require("../../../slicing/criterion/parse");
7
7
  const alias_tracking_1 = require("../../../dataflow/eval/resolve/alias-tracking");
8
8
  /**
9
- *
9
+ * Naive fingerprint to filter out duplicate queries.
10
10
  */
11
11
  function fingerPrintOfQuery(query) {
12
12
  return JSON.stringify(query);
13
13
  }
14
14
  /**
15
- *
15
+ * Executes a resolve-value query.
16
16
  */
17
17
  async function executeResolveValueQuery({ analyzer }, queries) {
18
18
  const start = Date.now();
@@ -26,7 +26,7 @@ async function executeResolveValueQuery({ analyzer }, queries) {
26
26
  }
27
27
  const values = query.criteria
28
28
  .map(criteria => (0, parse_1.slicingCriterionToId)(criteria, ast.idMap))
29
- .flatMap(ident => (0, alias_tracking_1.resolveIdToValue)(ident, { graph, full: true, idMap: ast.idMap, resolve: analyzer.flowrConfig.solver.variables }));
29
+ .flatMap(ident => (0, alias_tracking_1.resolveIdToValue)(ident, { graph, full: true, idMap: ast.idMap, resolve: analyzer.flowrConfig.solver.variables, ctx: analyzer.inspectContext() }));
30
30
  results[key] = {
31
31
  values: values
32
32
  };
@@ -19,7 +19,7 @@ export interface ResolveValueQueryResult extends BaseQueryResult {
19
19
  declare function resolveValueLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'resolve-value'>;
20
20
  export declare const ResolveValueQueryDefinition: {
21
21
  readonly executor: typeof executeResolveValueQuery;
22
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
22
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
23
23
  readonly fromLine: typeof resolveValueLineParser;
24
24
  readonly schema: Joi.ObjectSchema<any>;
25
25
  readonly flattenInvolvedNodes: () => never[];
@@ -15,7 +15,7 @@ export interface SearchQueryResult extends BaseQueryResult {
15
15
  }
16
16
  export declare const SearchQueryDefinition: {
17
17
  readonly executor: typeof executeSearch;
18
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
18
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
19
19
  readonly schema: Joi.ObjectSchema<any>;
20
20
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
21
21
  };
@@ -30,14 +30,14 @@ async function executeStaticSliceQuery({ analyzer }, queries) {
30
30
  }
31
31
  const { criteria, noReconstruction, noMagicComments } = query;
32
32
  const sliceStart = Date.now();
33
- const slice = (0, static_slicer_1.staticSlice)(await analyzer.dataflow(), await analyzer.normalize(), criteria, query.direction ?? _00_slice_1.SliceDirection.Backward, analyzer.flowrConfig.solver.slicer?.threshold);
33
+ const slice = (0, static_slicer_1.staticSlice)(analyzer.inspectContext(), await analyzer.dataflow(), await analyzer.normalize(), criteria, query.direction ?? _00_slice_1.SliceDirection.Backward, analyzer.flowrConfig.solver.slicer?.threshold);
34
34
  const sliceEnd = Date.now();
35
35
  if (noReconstruction) {
36
36
  results[key] = { slice: { ...slice, '.meta': { timing: sliceEnd - sliceStart } } };
37
37
  }
38
38
  else {
39
39
  const reconstructStart = Date.now();
40
- const reconstruct = (0, reconstruct_1.reconstructToCode)(await analyzer.normalize(), slice.result, noMagicComments ? auto_select_defaults_1.doNotAutoSelect : (0, magic_comments_1.makeMagicCommentHandler)(auto_select_defaults_1.doNotAutoSelect));
40
+ const reconstruct = (0, reconstruct_1.reconstructToCode)(await analyzer.normalize(), { nodes: slice.result }, noMagicComments ? auto_select_defaults_1.doNotAutoSelect : (0, magic_comments_1.makeMagicCommentHandler)(auto_select_defaults_1.doNotAutoSelect));
41
41
  const reconstructEnd = Date.now();
42
42
  results[key] = {
43
43
  slice: { ...slice, '.meta': { timing: sliceEnd - sliceStart } },
@@ -34,7 +34,7 @@ export interface StaticSliceQueryResult extends BaseQueryResult {
34
34
  declare function sliceQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'static-slice'>;
35
35
  export declare const StaticSliceQueryDefinition: {
36
36
  readonly executor: typeof executeStaticSliceQuery;
37
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
37
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
38
38
  readonly fromLine: typeof sliceQueryLineParser;
39
39
  readonly schema: Joi.ObjectSchema<any>;
40
40
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
@@ -30,6 +30,17 @@ exports.StaticSliceQueryDefinition = {
30
30
  executor: static_slice_query_executor_1.executeStaticSliceQuery,
31
31
  asciiSummarizer: (formatter, _analyzer, queryResults, result) => {
32
32
  const out = queryResults;
33
+ if (Object.keys(out.results).length === 1) {
34
+ // just print the single result without fingerprint
35
+ const [, obj] = Object.entries(out.results)[0];
36
+ if ('reconstruct' in obj) {
37
+ const code = Array.isArray(obj.reconstruct.code) ? obj.reconstruct.code : [obj.reconstruct.code];
38
+ if (code.length === 1) {
39
+ result.push(code[0]);
40
+ return true;
41
+ }
42
+ }
43
+ }
33
44
  result.push(`Query: ${(0, ansi_1.bold)('static-slice', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`);
34
45
  for (const [fingerprint, obj] of Object.entries(out.results)) {
35
46
  const { criteria, noMagicComments, noReconstruction } = JSON.parse(fingerprint);
@@ -42,7 +53,8 @@ exports.StaticSliceQueryDefinition = {
42
53
  }
43
54
  result.push(` ╰ Slice for {${criteria.join(', ')}} ${addons.join(', ')}`);
44
55
  if ('reconstruct' in obj) {
45
- result.push(' ╰ Code (newline as <code>&#92;n</code>): <code>' + obj.reconstruct.code.split('\n').join('\\n') + '</code>');
56
+ const code = Array.isArray(obj.reconstruct.code) ? obj.reconstruct.code : [obj.reconstruct.code];
57
+ result.push(' ╰ Code (newline as <code>&#92;n</code>): <code>' + code.flatMap(c => c.split('\n')).join('\\n') + '</code>');
46
58
  }
47
59
  else {
48
60
  result.push(` ╰ Id List: {${(0, query_print_1.summarizeIdsIfTooLong)(formatter, [...obj.slice.result])}}`);
@@ -51,6 +51,10 @@ export interface SupportedQuery<QueryType extends BaseQueryFormat['type'] = Base
51
51
  completer?: (splitLine: readonly string[], startingNewArg: boolean, config: FlowrConfigOptions) => CommandCompletions;
52
52
  /** optional query construction from an, e.g., repl line */
53
53
  fromLine?: (output: ReplOutput, splitLine: readonly string[], config: FlowrConfigOptions) => ParsedQueryLine<QueryType>;
54
+ /**
55
+ * Generates an ASCII summary of the query result to be printed in, e.g., the REPL.
56
+ * @returns whether a summary was produced (`true` if so, `false` if not, in this case a default/generic summary will be created)
57
+ */
54
58
  asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, resultStrings: string[], query: readonly Query[]) => AsyncOrSync<boolean>;
55
59
  jsonFormatter?: (queryResults: BaseQueryResult) => object;
56
60
  schema: Joi.ObjectSchema;
@@ -77,109 +81,109 @@ export declare const SupportedQueries: {
77
81
  };
78
82
  readonly 'control-flow': {
79
83
  readonly executor: typeof import("./catalog/control-flow-query/control-flow-query-executor").executeControlFlowQuery;
80
- readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
84
+ readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
81
85
  readonly schema: Joi.ObjectSchema<any>;
82
86
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
83
87
  };
84
88
  readonly dataflow: {
85
89
  readonly executor: typeof import("./catalog/dataflow-query/dataflow-query-executor").executeDataflowQuery;
86
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
90
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
87
91
  readonly schema: Joi.ObjectSchema<any>;
88
92
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
89
93
  };
90
94
  readonly 'dataflow-lens': {
91
95
  readonly executor: typeof import("./catalog/dataflow-lens-query/dataflow-lens-query-executor").executeDataflowLensQuery;
92
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
96
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
93
97
  readonly schema: Joi.ObjectSchema<any>;
94
98
  readonly flattenInvolvedNodes: () => never[];
95
99
  };
96
100
  readonly 'df-shape': {
97
101
  readonly executor: typeof import("./catalog/df-shape-query/df-shape-query-executor").executeDfShapeQuery;
98
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
102
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
99
103
  readonly jsonFormatter: (queryResults: BaseQueryResult) => object;
100
- readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"df-shape">;
104
+ readonly fromLine: (_output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"df-shape">;
101
105
  readonly schema: Joi.ObjectSchema<any>;
102
106
  readonly flattenInvolvedNodes: () => never[];
103
107
  };
104
108
  readonly 'id-map': {
105
109
  readonly executor: typeof import("./catalog/id-map-query/id-map-query-executor").executeIdMapQuery;
106
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
110
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
107
111
  readonly schema: Joi.ObjectSchema<any>;
108
112
  readonly flattenInvolvedNodes: () => never[];
109
113
  };
110
114
  readonly 'normalized-ast': {
111
115
  readonly executor: typeof import("./catalog/normalized-ast-query/normalized-ast-query-executor").executeNormalizedAstQuery;
112
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
116
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
113
117
  readonly schema: Joi.ObjectSchema<any>;
114
118
  readonly flattenInvolvedNodes: () => never[];
115
119
  };
116
120
  readonly 'dataflow-cluster': {
117
121
  readonly executor: typeof import("./catalog/cluster-query/cluster-query-executor").executeDataflowClusterQuery;
118
- readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
122
+ readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
119
123
  readonly schema: Joi.ObjectSchema<any>;
120
124
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
121
125
  };
122
126
  readonly 'static-slice': {
123
127
  readonly executor: typeof import("./catalog/static-slice-query/static-slice-query-executor").executeStaticSliceQuery;
124
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
128
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
125
129
  readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"static-slice">;
126
130
  readonly schema: Joi.ObjectSchema<any>;
127
131
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
128
132
  };
129
133
  readonly dependencies: {
130
134
  readonly executor: typeof import("./catalog/dependencies-query/dependencies-query-executor").executeDependenciesQuery;
131
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[], queries: readonly Query[]) => true;
135
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[], queries: readonly Query[]) => true;
132
136
  readonly schema: Joi.ObjectSchema<any>;
133
137
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult, query: readonly Query[]) => NodeId[];
134
138
  };
135
139
  readonly 'location-map': {
136
140
  readonly executor: typeof import("./catalog/location-map-query/location-map-query-executor").executeLocationMapQuery;
137
141
  readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) => true;
138
- readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"location-map">;
142
+ readonly fromLine: (_output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"location-map">;
139
143
  readonly schema: Joi.ObjectSchema<any>;
140
144
  readonly flattenInvolvedNodes: () => never[];
141
145
  };
142
146
  readonly search: {
143
147
  readonly executor: typeof import("./catalog/search-query/search-query-executor").executeSearch;
144
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
148
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
145
149
  readonly schema: Joi.ObjectSchema<any>;
146
150
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
147
151
  };
148
152
  readonly 'happens-before': {
149
153
  readonly executor: typeof import("./catalog/happens-before-query/happens-before-query-executor").executeHappensBefore;
150
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
154
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
151
155
  readonly schema: Joi.ObjectSchema<any>;
152
156
  readonly flattenInvolvedNodes: () => never[];
153
157
  };
154
158
  readonly 'inspect-higher-order': {
155
159
  readonly executor: typeof import("./catalog/inspect-higher-order-query/inspect-higher-order-query-executor").executeHigherOrderQuery;
156
- readonly asciiSummarizer: (formatter: OutputFormatter, processed: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
160
+ readonly asciiSummarizer: (formatter: OutputFormatter, processed: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
157
161
  readonly schema: Joi.ObjectSchema<any>;
158
162
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
159
163
  };
160
164
  readonly 'resolve-value': {
161
165
  readonly executor: typeof import("./catalog/resolve-value-query/resolve-value-query-executor").executeResolveValueQuery;
162
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
166
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
163
167
  readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"resolve-value">;
164
168
  readonly schema: Joi.ObjectSchema<any>;
165
169
  readonly flattenInvolvedNodes: () => never[];
166
170
  };
167
171
  readonly project: {
168
172
  readonly executor: typeof import("./catalog/project-query/project-query-executor").executeProjectQuery;
169
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
173
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
170
174
  readonly schema: Joi.ObjectSchema<any>;
171
175
  readonly flattenInvolvedNodes: () => never[];
172
176
  };
173
177
  readonly origin: {
174
178
  readonly executor: typeof import("./catalog/origin-query/origin-query-executor").executeResolveValueQuery;
175
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
179
+ readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
176
180
  readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"origin">;
177
181
  readonly schema: Joi.ObjectSchema<any>;
178
182
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
179
183
  };
180
184
  readonly linter: {
181
185
  readonly executor: typeof import("./catalog/linter-query/linter-query-executor").executeLinterQuery;
182
- readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
186
+ readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider<import("../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
183
187
  readonly completer: (line: readonly string[], startingNewArg: boolean, _config: FlowrConfigOptions) => CommandCompletions;
184
188
  readonly fromLine: (output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions) => ParsedQueryLine<"linter">;
185
189
  readonly schema: Joi.ObjectSchema<any>;
@@ -224,4 +228,8 @@ export declare function AnyQuerySchema(): Joi.AlternativesSchema<any>;
224
228
  * Produces a Joi schema representing an array of supported queries.
225
229
  */
226
230
  export declare function QueriesSchema(): Joi.ArraySchema<any[]>;
231
+ /**
232
+ * Wraps a function that executes a REPL query and, if it fails, checks whether there were any requests to analyze.
233
+ */
234
+ export declare function genericWrapReplFailIfNoRequest<T>(fn: () => Promise<T>, output: ReplOutput, analyzer: ReadonlyFlowrAnalysisProvider): Promise<T | undefined>;
227
235
  export {};