@eagleoutice/flowr 2.6.0 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. package/README.md +142 -45
  2. package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
  3. package/abstract-interpretation/data-frame/absint-visitor.d.ts +3 -4
  4. package/abstract-interpretation/data-frame/absint-visitor.js +16 -11
  5. package/abstract-interpretation/data-frame/dataframe-domain.d.ts +18 -12
  6. package/abstract-interpretation/data-frame/dataframe-domain.js +25 -13
  7. package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +0 -1
  8. package/abstract-interpretation/data-frame/mappers/access-mapper.js +0 -1
  9. package/abstract-interpretation/data-frame/mappers/arguments.d.ts +1 -10
  10. package/abstract-interpretation/data-frame/mappers/arguments.js +0 -7
  11. package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +0 -1
  12. package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +0 -1
  13. package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +4 -5
  14. package/abstract-interpretation/data-frame/mappers/function-mapper.js +3 -4
  15. package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +0 -1
  16. package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +0 -1
  17. package/abstract-interpretation/data-frame/resolve-args.d.ts +1 -1
  18. package/abstract-interpretation/data-frame/semantics.d.ts +3 -4
  19. package/abstract-interpretation/data-frame/semantics.js +171 -162
  20. package/abstract-interpretation/data-frame/shape-inference.d.ts +1 -4
  21. package/abstract-interpretation/data-frame/shape-inference.js +7 -9
  22. package/abstract-interpretation/domains/abstract-domain.d.ts +59 -18
  23. package/abstract-interpretation/domains/abstract-domain.js +74 -1
  24. package/abstract-interpretation/domains/bounded-set-domain.d.ts +37 -24
  25. package/abstract-interpretation/domains/bounded-set-domain.js +70 -47
  26. package/abstract-interpretation/domains/interval-domain.d.ts +33 -25
  27. package/abstract-interpretation/domains/interval-domain.js +109 -50
  28. package/abstract-interpretation/domains/lattice.d.ts +19 -11
  29. package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +34 -0
  30. package/abstract-interpretation/domains/mapped-abstract-domain.js +189 -0
  31. package/abstract-interpretation/domains/positive-interval-domain.d.ts +16 -12
  32. package/abstract-interpretation/domains/positive-interval-domain.js +20 -11
  33. package/abstract-interpretation/domains/product-domain.d.ts +18 -23
  34. package/abstract-interpretation/domains/product-domain.js +11 -19
  35. package/abstract-interpretation/domains/satisfiable-domain.d.ts +29 -0
  36. package/abstract-interpretation/domains/satisfiable-domain.js +24 -0
  37. package/abstract-interpretation/domains/set-upper-bound-domain.d.ts +54 -0
  38. package/abstract-interpretation/domains/set-upper-bound-domain.js +197 -0
  39. package/abstract-interpretation/domains/singleton-domain.d.ts +24 -19
  40. package/abstract-interpretation/domains/singleton-domain.js +52 -37
  41. package/abstract-interpretation/domains/state-abstract-domain.d.ts +8 -24
  42. package/abstract-interpretation/domains/state-abstract-domain.js +2 -167
  43. package/abstract-interpretation/normalized-ast-fold.d.ts +1 -7
  44. package/abstract-interpretation/normalized-ast-fold.js +0 -5
  45. package/benchmark/slicer.d.ts +3 -7
  46. package/benchmark/slicer.js +14 -19
  47. package/benchmark/stats/print.d.ts +6 -0
  48. package/benchmark/stats/print.js +6 -0
  49. package/benchmark/stats/size-of.d.ts +0 -1
  50. package/benchmark/stats/size-of.js +0 -1
  51. package/benchmark/stats/stats.d.ts +2 -2
  52. package/benchmark/stopwatch.d.ts +11 -13
  53. package/benchmark/stopwatch.js +11 -13
  54. package/benchmark/summarizer/first-phase/input.d.ts +6 -0
  55. package/benchmark/summarizer/first-phase/input.js +6 -0
  56. package/benchmark/summarizer/first-phase/process.d.ts +13 -1
  57. package/benchmark/summarizer/first-phase/process.js +12 -0
  58. package/benchmark/summarizer/second-phase/graph.d.ts +3 -0
  59. package/benchmark/summarizer/second-phase/graph.js +3 -0
  60. package/benchmark/summarizer/second-phase/process.d.ts +12 -0
  61. package/benchmark/summarizer/second-phase/process.js +12 -0
  62. package/benchmark/summarizer/summarizer.d.ts +1 -2
  63. package/cli/benchmark-app.js +0 -2
  64. package/cli/common/features.d.ts +7 -1
  65. package/cli/common/features.js +6 -0
  66. package/cli/common/script.d.ts +3 -1
  67. package/cli/common/script.js +3 -1
  68. package/cli/common/scripts-info.d.ts +3 -1
  69. package/cli/common/scripts-info.js +3 -0
  70. package/cli/flowr-main-options.d.ts +3 -0
  71. package/cli/flowr-main-options.js +3 -0
  72. package/cli/flowr.js +8 -4
  73. package/cli/repl/commands/repl-cfg.js +4 -4
  74. package/cli/repl/commands/repl-commands.d.ts +13 -0
  75. package/cli/repl/commands/repl-commands.js +15 -4
  76. package/cli/repl/commands/repl-dataflow.js +4 -4
  77. package/cli/repl/commands/repl-execute.d.ts +5 -1
  78. package/cli/repl/commands/repl-execute.js +12 -8
  79. package/cli/repl/commands/repl-main.d.ts +17 -14
  80. package/cli/repl/commands/repl-normalize.js +2 -2
  81. package/cli/repl/commands/repl-parse.js +4 -3
  82. package/cli/repl/commands/repl-query.js +18 -7
  83. package/cli/repl/commands/repl-quit.js +1 -1
  84. package/cli/repl/commands/repl-version.d.ts +1 -16
  85. package/cli/repl/commands/repl-version.js +2 -19
  86. package/cli/repl/core.d.ts +32 -14
  87. package/cli/repl/core.js +38 -35
  88. package/cli/repl/execute.d.ts +0 -2
  89. package/cli/repl/execute.js +0 -2
  90. package/cli/repl/parser/slice-query-parser.d.ts +14 -0
  91. package/cli/repl/parser/slice-query-parser.js +34 -0
  92. package/cli/repl/print-version.d.ts +6 -0
  93. package/cli/repl/print-version.js +8 -2
  94. package/cli/repl/server/compact.d.ts +8 -0
  95. package/cli/repl/server/compact.js +8 -0
  96. package/cli/repl/server/connection.d.ts +4 -3
  97. package/cli/repl/server/connection.js +9 -33
  98. package/cli/repl/server/messages/all-messages.d.ts +1 -3
  99. package/cli/repl/server/messages/all-messages.js +0 -1
  100. package/cli/repl/server/messages/message-analysis.d.ts +0 -2
  101. package/cli/repl/server/messages/message-hello.d.ts +1 -1
  102. package/cli/repl/server/messages/message-query.d.ts +1 -1
  103. package/cli/repl/server/messages/message-repl.d.ts +0 -1
  104. package/cli/repl/server/send.d.ts +6 -0
  105. package/cli/repl/server/send.js +6 -0
  106. package/cli/repl/server/server.d.ts +1 -1
  107. package/cli/repl/server/server.js +2 -2
  108. package/cli/repl/server/validate.d.ts +10 -1
  109. package/cli/repl/server/validate.js +9 -0
  110. package/cli/run-script.d.ts +1 -2
  111. package/cli/run-script.js +0 -1
  112. package/cli/script-core/statistics-core.d.ts +3 -0
  113. package/cli/script-core/statistics-core.js +3 -0
  114. package/cli/script-core/statistics-helper-core.d.ts +4 -1
  115. package/cli/script-core/statistics-helper-core.js +3 -0
  116. package/cli/script-core/summarizer-core.d.ts +3 -0
  117. package/cli/script-core/summarizer-core.js +3 -0
  118. package/cli/summarizer-app.d.ts +2 -3
  119. package/cli/summarizer-app.js +2 -3
  120. package/config.d.ts +17 -3
  121. package/config.js +15 -0
  122. package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
  123. package/control-flow/basic-cfg-guided-visitor.js +0 -1
  124. package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
  125. package/control-flow/control-flow-graph.d.ts +20 -12
  126. package/control-flow/control-flow-graph.js +16 -4
  127. package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
  128. package/control-flow/diff-cfg.d.ts +3 -5
  129. package/control-flow/diff-cfg.js +0 -1
  130. package/control-flow/extract-cfg.d.ts +3 -6
  131. package/control-flow/extract-cfg.js +0 -3
  132. package/control-flow/happens-before.d.ts +1 -1
  133. package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -31
  134. package/control-flow/semantic-cfg-guided-visitor.js +0 -28
  135. package/control-flow/simple-visitor.d.ts +1 -3
  136. package/control-flow/simple-visitor.js +0 -2
  137. package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
  138. package/control-flow/useless-loop.d.ts +0 -3
  139. package/control-flow/useless-loop.js +2 -5
  140. package/core/pipeline-executor.d.ts +8 -16
  141. package/core/pipeline-executor.js +9 -18
  142. package/core/print/dataflow-printer.d.ts +19 -0
  143. package/core/print/dataflow-printer.js +19 -0
  144. package/core/print/normalize-printer.d.ts +21 -1
  145. package/core/print/normalize-printer.js +20 -0
  146. package/core/print/parse-printer.d.ts +6 -1
  147. package/core/print/parse-printer.js +5 -0
  148. package/core/print/print.d.ts +0 -1
  149. package/core/print/print.js +0 -1
  150. package/core/print/slice-diff-ansi.d.ts +3 -0
  151. package/core/print/slice-diff-ansi.js +3 -0
  152. package/core/steps/all/core/00-parse.d.ts +1 -1
  153. package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
  154. package/core/steps/all/core/10-normalize.d.ts +3 -0
  155. package/core/steps/all/core/10-normalize.js +3 -0
  156. package/core/steps/all/core/11-normalize-tree-sitter.d.ts +4 -3
  157. package/core/steps/all/core/20-dataflow.d.ts +3 -1
  158. package/core/steps/pipeline/create-pipeline.d.ts +1 -1
  159. package/core/steps/pipeline/default-pipelines.d.ts +29 -13
  160. package/core/steps/pipeline/default-pipelines.js +0 -4
  161. package/core/steps/pipeline/pipeline.d.ts +1 -8
  162. package/core/steps/pipeline/pipeline.js +1 -3
  163. package/core/steps/pipeline-step.d.ts +0 -1
  164. package/core/steps/pipeline-step.js +0 -1
  165. package/dataflow/cluster.d.ts +3 -0
  166. package/dataflow/cluster.js +3 -0
  167. package/dataflow/environments/append.d.ts +1 -1
  168. package/dataflow/environments/built-in-config.d.ts +1 -5
  169. package/dataflow/environments/built-in-config.js +0 -1
  170. package/dataflow/environments/built-in.d.ts +10 -5
  171. package/dataflow/environments/built-in.js +6 -1
  172. package/dataflow/environments/clone.d.ts +1 -1
  173. package/dataflow/environments/default-builtin-config.d.ts +3 -0
  174. package/dataflow/environments/default-builtin-config.js +12 -1
  175. package/dataflow/environments/diff.d.ts +11 -2
  176. package/dataflow/environments/diff.js +9 -0
  177. package/dataflow/environments/environment.d.ts +3 -3
  178. package/dataflow/environments/environment.js +8 -6
  179. package/dataflow/environments/identifier.d.ts +0 -4
  180. package/dataflow/environments/identifier.js +0 -1
  181. package/dataflow/environments/overwrite.d.ts +4 -1
  182. package/dataflow/environments/overwrite.js +3 -0
  183. package/dataflow/environments/resolve-by-name.d.ts +4 -4
  184. package/dataflow/environments/resolve-by-name.js +3 -2
  185. package/dataflow/environments/scoping.d.ts +4 -1
  186. package/dataflow/environments/scoping.js +3 -0
  187. package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
  188. package/dataflow/eval/resolve/alias-tracking.js +13 -14
  189. package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
  190. package/dataflow/eval/resolve/resolve.d.ts +1 -7
  191. package/dataflow/eval/resolve/resolve.js +3 -5
  192. package/dataflow/eval/values/general.d.ts +1 -3
  193. package/dataflow/eval/values/general.js +0 -1
  194. package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
  195. package/dataflow/eval/values/intervals/interval-constants.js +6 -0
  196. package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
  197. package/dataflow/eval/values/logical/logical-constants.js +3 -0
  198. package/dataflow/eval/values/r-value.d.ts +16 -1
  199. package/dataflow/eval/values/r-value.js +14 -0
  200. package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
  201. package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
  202. package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
  203. package/dataflow/eval/values/sets/set-constants.js +6 -0
  204. package/dataflow/eval/values/string/string-constants.d.ts +10 -1
  205. package/dataflow/eval/values/string/string-constants.js +9 -0
  206. package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
  207. package/dataflow/extractor.d.ts +5 -2
  208. package/dataflow/extractor.js +7 -5
  209. package/dataflow/fn/higher-order-function.d.ts +9 -0
  210. package/dataflow/fn/higher-order-function.js +75 -0
  211. package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
  212. package/dataflow/graph/dataflowgraph-builder.js +6 -23
  213. package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
  214. package/dataflow/graph/diff-dataflow-graph.js +12 -1
  215. package/dataflow/graph/edge.d.ts +9 -0
  216. package/dataflow/graph/edge.js +9 -0
  217. package/dataflow/graph/graph.d.ts +6 -19
  218. package/dataflow/graph/graph.js +4 -15
  219. package/dataflow/graph/invert-dfg.d.ts +3 -0
  220. package/dataflow/graph/invert-dfg.js +3 -0
  221. package/dataflow/graph/quads.d.ts +1 -1
  222. package/dataflow/graph/unknown-replacement.d.ts +6 -0
  223. package/dataflow/graph/unknown-replacement.js +6 -0
  224. package/dataflow/graph/unknown-side-effect.d.ts +8 -0
  225. package/dataflow/graph/unknown-side-effect.js +8 -0
  226. package/dataflow/graph/vertex.d.ts +9 -9
  227. package/dataflow/graph/vertex.js +9 -1
  228. package/dataflow/info.d.ts +9 -10
  229. package/dataflow/info.js +6 -1
  230. package/dataflow/internal/linker.d.ts +25 -9
  231. package/dataflow/internal/linker.js +23 -7
  232. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
  233. package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -0
  234. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
  235. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
  236. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +3 -1
  237. package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
  238. package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +3 -0
  239. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
  240. package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
  241. package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +3 -0
  242. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
  243. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +3 -0
  244. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
  245. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +3 -0
  246. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
  247. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +6 -0
  248. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
  249. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
  250. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
  251. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +4 -0
  252. package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
  253. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
  254. package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
  255. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
  256. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +3 -0
  257. package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
  258. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
  259. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +5 -2
  260. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +3 -0
  261. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
  262. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +3 -1
  263. package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
  264. package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
  265. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +23 -6
  266. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +20 -1
  267. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -0
  268. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -0
  269. package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
  270. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
  271. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +3 -0
  272. package/dataflow/internal/process/functions/call/common.d.ts +11 -5
  273. package/dataflow/internal/process/functions/call/common.js +6 -0
  274. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -0
  275. package/dataflow/internal/process/functions/call/default-call-handling.js +3 -0
  276. package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
  277. package/dataflow/internal/process/functions/call/known-call-handling.js +7 -0
  278. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
  279. package/dataflow/internal/process/functions/call/named-call-handling.js +6 -0
  280. package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
  281. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
  282. package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
  283. package/dataflow/internal/process/functions/process-argument.js +6 -0
  284. package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
  285. package/dataflow/internal/process/functions/process-parameter.js +3 -0
  286. package/dataflow/internal/process/process-symbol.d.ts +3 -0
  287. package/dataflow/internal/process/process-symbol.js +3 -0
  288. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
  289. package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
  290. package/dataflow/internal/process/process-value.d.ts +3 -0
  291. package/dataflow/internal/process/process-value.js +3 -0
  292. package/dataflow/origin/dfg-get-origin.d.ts +0 -2
  293. package/dataflow/origin/dfg-get-symbol-refs.d.ts +5 -7
  294. package/dataflow/origin/dfg-get-symbol-refs.js +6 -8
  295. package/dataflow/processor.d.ts +0 -1
  296. package/dataflow/processor.js +0 -1
  297. package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -0
  298. package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
  299. package/documentation/data/faq/faqs.d.ts +5 -0
  300. package/documentation/data/faq/faqs.js +78 -0
  301. package/documentation/data/faq/wiki-faq-store.d.ts +18 -0
  302. package/documentation/data/faq/wiki-faq-store.js +75 -0
  303. package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
  304. package/documentation/data/server/doc-data-server-messages.js +4 -63
  305. package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
  306. package/documentation/doc-util/doc-auto-gen.js +6 -0
  307. package/documentation/doc-util/doc-benchmarks.d.ts +12 -0
  308. package/documentation/doc-util/doc-benchmarks.js +12 -0
  309. package/documentation/doc-util/doc-cfg.d.ts +7 -1
  310. package/documentation/doc-util/doc-cfg.js +9 -0
  311. package/documentation/doc-util/doc-cli-option.d.ts +9 -0
  312. package/documentation/doc-util/doc-cli-option.js +9 -0
  313. package/documentation/doc-util/doc-code.d.ts +24 -0
  314. package/documentation/doc-util/doc-code.js +24 -0
  315. package/documentation/doc-util/doc-dfg.d.ts +7 -1
  316. package/documentation/doc-util/doc-dfg.js +9 -0
  317. package/documentation/doc-util/doc-env.d.ts +3 -0
  318. package/documentation/doc-util/doc-env.js +3 -0
  319. package/documentation/doc-util/doc-escape.d.ts +0 -1
  320. package/documentation/doc-util/doc-escape.js +0 -1
  321. package/documentation/doc-util/doc-files.d.ts +11 -0
  322. package/documentation/doc-util/doc-files.js +15 -4
  323. package/documentation/doc-util/doc-general.d.ts +6 -0
  324. package/documentation/doc-util/doc-general.js +6 -0
  325. package/documentation/doc-util/doc-normalized-ast.d.ts +7 -1
  326. package/documentation/doc-util/doc-normalized-ast.js +6 -0
  327. package/documentation/doc-util/doc-query.d.ts +15 -0
  328. package/documentation/doc-util/doc-query.js +17 -2
  329. package/documentation/doc-util/doc-repl.d.ts +6 -0
  330. package/documentation/doc-util/doc-repl.js +11 -2
  331. package/documentation/doc-util/doc-search.d.ts +15 -0
  332. package/documentation/doc-util/doc-search.js +17 -2
  333. package/documentation/doc-util/doc-server-message.d.ts +13 -1
  334. package/documentation/doc-util/doc-server-message.js +13 -1
  335. package/documentation/doc-util/doc-structure.d.ts +9 -0
  336. package/documentation/doc-util/doc-structure.js +10 -1
  337. package/documentation/doc-util/doc-types.d.ts +42 -0
  338. package/documentation/doc-util/doc-types.js +42 -0
  339. package/documentation/print-analyzer-wiki.js +4 -0
  340. package/documentation/print-core-wiki.d.ts +3 -0
  341. package/documentation/print-core-wiki.js +5 -2
  342. package/documentation/print-dataflow-graph-wiki.js +7 -7
  343. package/documentation/print-faq-wiki.js +3 -75
  344. package/documentation/print-interface-wiki.js +1 -1
  345. package/documentation/print-onboarding-wiki.js +1 -1
  346. package/documentation/print-query-wiki.js +24 -34
  347. package/documentation/print-readme.js +106 -1
  348. package/engines.d.ts +1 -1
  349. package/linter/linter-executor.d.ts +6 -3
  350. package/linter/linter-executor.js +3 -0
  351. package/linter/linter-format.d.ts +8 -0
  352. package/linter/linter-format.js +8 -0
  353. package/linter/rules/absolute-path.d.ts +3 -4
  354. package/linter/rules/dataframe-access-validation.d.ts +3 -4
  355. package/linter/rules/dataframe-access-validation.js +9 -11
  356. package/linter/rules/dead-code.d.ts +1 -1
  357. package/linter/rules/deprecated-functions.d.ts +1 -1
  358. package/linter/rules/file-path-validity.d.ts +1 -2
  359. package/linter/rules/function-finder-util.d.ts +1 -2
  360. package/linter/rules/naming-convention.d.ts +13 -2
  361. package/linter/rules/naming-convention.js +13 -1
  362. package/linter/rules/network-functions.d.ts +1 -1
  363. package/linter/rules/seeded-randomness.d.ts +1 -2
  364. package/linter/rules/unused-definition.d.ts +2 -3
  365. package/linter/rules/useless-loop.d.ts +1 -2
  366. package/package.json +2 -2
  367. package/project/cache/flowr-analyzer-cache.d.ts +8 -14
  368. package/project/cache/flowr-analyzer-cache.js +21 -19
  369. package/project/cfg-kind.d.ts +17 -0
  370. package/project/cfg-kind.js +22 -0
  371. package/project/context/abstract-flowr-analyzer-context.d.ts +4 -0
  372. package/project/context/flowr-analyzer-context.d.ts +9 -6
  373. package/project/context/flowr-analyzer-context.js +11 -0
  374. package/project/context/flowr-analyzer-dependencies-context.d.ts +1 -1
  375. package/project/context/flowr-analyzer-dependencies-context.js +4 -0
  376. package/project/context/flowr-analyzer-files-context.d.ts +3 -4
  377. package/project/context/flowr-analyzer-files-context.js +4 -0
  378. package/project/context/flowr-analyzer-loading-order-context.d.ts +1 -0
  379. package/project/context/flowr-analyzer-loading-order-context.js +6 -0
  380. package/project/context/flowr-file.d.ts +0 -1
  381. package/project/flowr-analyzer-builder.d.ts +1 -3
  382. package/project/flowr-analyzer-builder.js +5 -6
  383. package/project/flowr-analyzer.d.ts +42 -32
  384. package/project/flowr-analyzer.js +14 -8
  385. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +1 -1
  386. package/project/plugins/file-plugins/flowr-description-file.d.ts +1 -3
  387. package/project/plugins/file-plugins/flowr-description-file.js +0 -1
  388. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
  389. package/queries/base-query-format.d.ts +2 -2
  390. package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
  391. package/queries/catalog/call-context-query/call-context-query-executor.js +5 -1
  392. package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
  393. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +11 -2
  394. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +9 -0
  395. package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
  396. package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
  397. package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
  398. package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
  399. package/queries/catalog/config-query/config-query-executor.js +3 -0
  400. package/queries/catalog/config-query/config-query-format.d.ts +6 -3
  401. package/queries/catalog/config-query/config-query-format.js +13 -16
  402. package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
  403. package/queries/catalog/control-flow-query/control-flow-query-executor.js +5 -1
  404. package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
  405. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
  406. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
  407. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
  408. package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
  409. package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
  410. package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
  411. package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
  412. package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
  413. package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
  414. package/queries/catalog/dependencies-query/dependencies-query-format.js +4 -1
  415. package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
  416. package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
  417. package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
  418. package/queries/catalog/df-shape-query/df-shape-query-format.js +24 -5
  419. package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +3 -0
  420. package/queries/catalog/happens-before-query/happens-before-query-executor.js +3 -0
  421. package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
  422. package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
  423. package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
  424. package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
  425. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +6 -0
  426. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +48 -0
  427. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +22 -0
  428. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.js +32 -0
  429. package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
  430. package/queries/catalog/linter-query/linter-query-executor.js +4 -0
  431. package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
  432. package/queries/catalog/linter-query/linter-query-format.js +67 -0
  433. package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
  434. package/queries/catalog/location-map-query/location-map-query-executor.js +5 -1
  435. package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
  436. package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
  437. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
  438. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
  439. package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
  440. package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
  441. package/queries/catalog/origin-query/origin-query-executor.js +6 -0
  442. package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
  443. package/queries/catalog/origin-query/origin-query-format.js +17 -1
  444. package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
  445. package/queries/catalog/project-query/project-query-executor.js +3 -0
  446. package/queries/catalog/project-query/project-query-format.d.ts +1 -1
  447. package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
  448. package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
  449. package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
  450. package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
  451. package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
  452. package/queries/catalog/search-query/search-query-executor.js +3 -0
  453. package/queries/catalog/search-query/search-query-format.d.ts +1 -1
  454. package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
  455. package/queries/catalog/static-slice-query/static-slice-query-executor.js +9 -0
  456. package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
  457. package/queries/catalog/static-slice-query/static-slice-query-format.js +17 -0
  458. package/queries/query-print.d.ts +20 -4
  459. package/queries/query-print.js +18 -2
  460. package/queries/query.d.ts +91 -53
  461. package/queries/query.js +37 -23
  462. package/queries/virtual-query/virtual-queries.d.ts +1 -2
  463. package/r-bridge/data/get.d.ts +6 -0
  464. package/r-bridge/data/get.js +6 -0
  465. package/r-bridge/lang-4.x/ast/model/collect.d.ts +0 -1
  466. package/r-bridge/lang-4.x/ast/model/collect.js +0 -1
  467. package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
  468. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
  469. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
  470. package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
  471. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
  472. package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
  473. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
  474. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
  475. package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
  476. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +6 -7
  477. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +6 -6
  478. package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
  479. package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
  480. package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
  481. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
  482. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
  483. package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
  484. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
  485. package/r-bridge/lang-4.x/ast/model/type.d.ts +4 -5
  486. package/r-bridge/lang-4.x/ast/model/type.js +4 -5
  487. package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
  488. package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
  489. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +4 -5
  490. package/r-bridge/lang-4.x/ast/parser/json/parser.js +0 -1
  491. package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
  492. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
  493. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
  494. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
  495. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
  496. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
  497. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
  498. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
  499. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
  500. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
  501. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
  502. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
  503. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
  504. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
  505. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
  506. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
  507. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
  508. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
  509. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
  510. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
  511. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
  512. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
  513. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
  514. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
  515. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
  516. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
  517. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
  518. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
  519. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
  520. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
  521. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
  522. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
  523. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
  524. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
  525. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
  526. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
  527. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
  528. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
  529. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
  530. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
  531. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
  532. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
  533. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
  534. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
  535. package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
  536. package/r-bridge/lang-4.x/convert-values.js +12 -1
  537. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
  538. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +17 -0
  539. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +13 -1
  540. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +48 -19
  541. package/r-bridge/parser.d.ts +30 -2
  542. package/r-bridge/retriever.d.ts +16 -1
  543. package/r-bridge/retriever.js +15 -0
  544. package/r-bridge/shell-executor.d.ts +3 -3
  545. package/r-bridge/shell-executor.js +6 -1
  546. package/r-bridge/shell.d.ts +24 -23
  547. package/r-bridge/shell.js +37 -31
  548. package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
  549. package/reconstruct/auto-select/magic-comments.d.ts +1 -2
  550. package/reconstruct/auto-select/magic-comments.js +1 -2
  551. package/reconstruct/reconstruct.d.ts +1 -3
  552. package/reconstruct/reconstruct.js +0 -2
  553. package/search/flowr-search-builder.d.ts +12 -5
  554. package/search/flowr-search-builder.js +7 -2
  555. package/search/flowr-search-executor.d.ts +3 -3
  556. package/search/flowr-search-filters.d.ts +14 -1
  557. package/search/flowr-search-filters.js +13 -0
  558. package/search/flowr-search-printer.d.ts +6 -0
  559. package/search/flowr-search-printer.js +6 -0
  560. package/search/flowr-search-traverse.d.ts +1 -1
  561. package/search/flowr-search.d.ts +3 -3
  562. package/search/search-executor/search-enrichers.d.ts +9 -6
  563. package/search/search-executor/search-enrichers.js +5 -1
  564. package/search/search-executor/search-generators.d.ts +19 -10
  565. package/search/search-executor/search-generators.js +49 -2
  566. package/search/search-executor/search-mappers.d.ts +8 -5
  567. package/search/search-executor/search-mappers.js +3 -0
  568. package/search/search-executor/search-transformer.d.ts +19 -16
  569. package/search/search-executor/search-transformer.js +3 -0
  570. package/slicing/criterion/collect-all.d.ts +10 -10
  571. package/slicing/criterion/parse.d.ts +4 -2
  572. package/slicing/criterion/parse.js +4 -2
  573. package/slicing/static/fingerprint.d.ts +9 -1
  574. package/slicing/static/fingerprint.js +8 -0
  575. package/slicing/static/slice-call.d.ts +2 -2
  576. package/slicing/static/static-slicer.d.ts +8 -4
  577. package/slicing/static/static-slicer.js +5 -1
  578. package/slicing/static/visiting-queue.d.ts +1 -1
  579. package/statistics/features/common-syntax-probability.d.ts +10 -1
  580. package/statistics/features/common-syntax-probability.js +9 -0
  581. package/statistics/features/feature.d.ts +0 -4
  582. package/statistics/features/feature.js +0 -1
  583. package/statistics/features/post-processing.d.ts +6 -0
  584. package/statistics/features/post-processing.js +6 -0
  585. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  586. package/statistics/features/supported/assignments/post-process.js +3 -0
  587. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  588. package/statistics/features/supported/comments/post-process.js +3 -0
  589. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  590. package/statistics/features/supported/control-flow/post-process.js +3 -0
  591. package/statistics/features/supported/data-access/data-access.d.ts +1 -1
  592. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  593. package/statistics/features/supported/data-access/post-process.js +3 -0
  594. package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
  595. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  596. package/statistics/features/supported/expression-list/post-process.js +3 -0
  597. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  598. package/statistics/features/supported/loops/post-process.js +3 -0
  599. package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
  600. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  601. package/statistics/features/supported/used-packages/post-process.js +3 -0
  602. package/statistics/features/supported/values/post-process.d.ts +3 -0
  603. package/statistics/features/supported/values/post-process.js +3 -0
  604. package/statistics/features/supported/variables/post-process.d.ts +7 -1
  605. package/statistics/features/supported/variables/post-process.js +6 -0
  606. package/statistics/meta-statistics.d.ts +8 -9
  607. package/statistics/output/file-provider.d.ts +5 -6
  608. package/statistics/output/file-provider.js +5 -6
  609. package/statistics/output/print-stats.d.ts +13 -1
  610. package/statistics/output/print-stats.js +12 -0
  611. package/statistics/output/statistics-file.d.ts +1 -2
  612. package/statistics/output/statistics-file.js +0 -1
  613. package/statistics/statistics.d.ts +3 -4
  614. package/statistics/statistics.js +1 -2
  615. package/statistics/summarizer/auto-detect.d.ts +3 -0
  616. package/statistics/summarizer/auto-detect.js +3 -0
  617. package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
  618. package/statistics/summarizer/post-process/clusterer.js +0 -2
  619. package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
  620. package/statistics/summarizer/post-process/file-based-count.js +0 -1
  621. package/statistics/summarizer/post-process/histogram.d.ts +0 -2
  622. package/statistics/summarizer/post-process/histogram.js +0 -2
  623. package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
  624. package/statistics/summarizer/post-process/post-process-output.js +0 -3
  625. package/statistics/summarizer/second-phase/process.d.ts +5 -3
  626. package/statistics/summarizer/second-phase/process.js +3 -1
  627. package/statistics/summarizer/summarizer.d.ts +1 -2
  628. package/util/assert.d.ts +52 -2
  629. package/util/assert.js +52 -2
  630. package/util/collections/arrays.d.ts +10 -5
  631. package/util/collections/arrays.js +10 -5
  632. package/util/collections/defaultmap.d.ts +11 -11
  633. package/util/collections/defaultmap.js +11 -11
  634. package/util/containers.d.ts +2 -7
  635. package/util/containers.js +0 -5
  636. package/util/diff-graph.d.ts +0 -1
  637. package/util/diff-graph.js +0 -1
  638. package/util/diff.d.ts +3 -1
  639. package/util/diff.js +3 -1
  640. package/util/files.d.ts +11 -11
  641. package/util/files.js +10 -10
  642. package/util/formats/adapter.d.ts +9 -0
  643. package/util/formats/adapter.js +9 -0
  644. package/util/formats/adapters/rmd-adapter.d.ts +10 -1
  645. package/util/formats/adapters/rmd-adapter.js +10 -1
  646. package/util/html-hover-over.d.ts +5 -0
  647. package/util/html-hover-over.js +5 -0
  648. package/util/json.d.ts +13 -0
  649. package/util/json.js +13 -0
  650. package/util/log.d.ts +2 -2
  651. package/util/log.js +2 -2
  652. package/util/mermaid/ast.d.ts +3 -0
  653. package/util/mermaid/ast.js +3 -0
  654. package/util/mermaid/cfg.d.ts +1 -1
  655. package/util/mermaid/dfg.d.ts +12 -4
  656. package/util/mermaid/dfg.js +9 -1
  657. package/util/mermaid/mermaid.d.ts +6 -1
  658. package/util/mermaid/mermaid.js +6 -1
  659. package/util/numbers.d.ts +7 -0
  660. package/util/numbers.js +7 -0
  661. package/util/objects.d.ts +0 -2
  662. package/util/os.d.ts +3 -0
  663. package/util/os.js +3 -0
  664. package/util/parallel.d.ts +4 -4
  665. package/util/parallel.js +4 -4
  666. package/util/prefix.d.ts +0 -1
  667. package/util/prefix.js +0 -1
  668. package/util/quads.d.ts +14 -17
  669. package/util/quads.js +3 -5
  670. package/util/r-value.d.ts +11 -2
  671. package/util/r-value.js +23 -0
  672. package/util/random.d.ts +3 -0
  673. package/util/random.js +3 -0
  674. package/util/range.d.ts +9 -3
  675. package/util/range.js +15 -2
  676. package/util/schema.d.ts +14 -1
  677. package/util/schema.js +15 -2
  678. package/util/simple-df/dfg-view.d.ts +4 -1
  679. package/util/simple-df/dfg-view.js +4 -1
  680. package/util/summarizer.d.ts +9 -1
  681. package/util/summarizer.js +9 -0
  682. package/util/text/ansi.d.ts +3 -0
  683. package/util/text/ansi.js +3 -0
  684. package/util/text/args.d.ts +2 -4
  685. package/util/text/args.js +7 -5
  686. package/util/text/text.d.ts +4 -0
  687. package/util/text/text.js +4 -0
  688. package/util/text/time.d.ts +0 -1
  689. package/util/text/time.js +0 -1
  690. package/util/version.d.ts +26 -0
  691. package/util/version.js +37 -1
  692. package/abstract-interpretation/data-frame/domain.d.ts +0 -107
  693. package/abstract-interpretation/data-frame/domain.js +0 -315
  694. package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
  695. package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
  696. package/cli/repl/commands/repl-lineage.d.ts +0 -15
  697. package/cli/repl/commands/repl-lineage.js +0 -67
  698. package/cli/repl/server/messages/message-lineage.d.ts +0 -17
  699. package/cli/repl/server/messages/message-lineage.js +0 -25
  700. package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
  701. package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
  702. package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
  703. package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
@@ -1,2 +1,10 @@
1
+ /**
2
+ * Compacts an object into a UTF-16 compressed string.
3
+ * @see {@link uncompact}
4
+ */
1
5
  export declare function compact(obj: unknown): string;
6
+ /**
7
+ * Uncompacts a UTF-16 compressed string into an object.
8
+ * @see {@link compact}
9
+ */
2
10
  export declare function uncompact(buf: string): unknown;
@@ -4,9 +4,17 @@ exports.compact = compact;
4
4
  exports.uncompact = uncompact;
5
5
  const json_1 = require("../../../util/json");
6
6
  const lz_string_1 = require("lz-string");
7
+ /**
8
+ * Compacts an object into a UTF-16 compressed string.
9
+ * @see {@link uncompact}
10
+ */
7
11
  function compact(obj) {
8
12
  return (0, lz_string_1.compressToUTF16)(JSON.stringify(obj, json_1.jsonReplacer));
9
13
  }
14
+ /**
15
+ * Uncompacts a UTF-16 compressed string into an object.
16
+ * @see {@link compact}
17
+ */
10
18
  function uncompact(buf) {
11
19
  return JSON.parse((0, lz_string_1.decompressFromUTF16)(buf));
12
20
  }
@@ -1,6 +1,5 @@
1
1
  import type { Socket } from './net';
2
- import type { TREE_SITTER_DATAFLOW_PIPELINE } from '../../../core/steps/pipeline/default-pipelines';
3
- import { DEFAULT_SLICING_PIPELINE } from '../../../core/steps/pipeline/default-pipelines';
2
+ import { type TREE_SITTER_DATAFLOW_PIPELINE, DEFAULT_SLICING_PIPELINE } from '../../../core/steps/pipeline/default-pipelines';
4
3
  import type { PipelineOutput } from '../../../core/steps/pipeline/pipeline';
5
4
  import type { DeepPartial } from 'ts-essentials';
6
5
  import type { KnownParser, ParseStepOutput } from '../../../r-bridge/parser';
@@ -28,7 +27,9 @@ export declare class FlowRServerConnection {
28
27
  private createAnalyzerForRequest;
29
28
  private handleSliceRequest;
30
29
  private handleRepl;
31
- private handleLineageRequest;
32
30
  private handleQueryRequest;
33
31
  }
32
+ /**
33
+ * Sanitizes analysis results by removing any potentially sensitive information like id maps.
34
+ */
34
35
  export declare function sanitizeAnalysisResults(parse: ParseStepOutput<string | Tree>, normalize: NormalizedAst, dataflow: DataflowInformation): DeepPartial<PipelineOutput<typeof DEFAULT_SLICING_PIPELINE | typeof TREE_SITTER_DATAFLOW_PIPELINE>>;
@@ -56,8 +56,6 @@ const default_pipelines_1 = require("../../../core/steps/pipeline/default-pipeli
56
56
  const graph_1 = require("../../../dataflow/graph/graph");
57
57
  const tmp = __importStar(require("tmp"));
58
58
  const fs_1 = __importDefault(require("fs"));
59
- const message_lineage_1 = require("./messages/message-lineage");
60
- const repl_lineage_1 = require("../commands/repl-lineage");
61
59
  const message_query_1 = require("./messages/message-query");
62
60
  const compact_1 = require("./compact");
63
61
  const _00_slice_1 = require("../../../core/steps/all/static-slicing/00-slice");
@@ -116,9 +114,6 @@ class FlowRServerConnection {
116
114
  case 'request-repl-execution':
117
115
  this.handleRepl(request.message);
118
116
  break;
119
- case 'request-lineage':
120
- void this.handleLineageRequest(request.message);
121
- break;
122
117
  case 'request-query':
123
118
  this.handleQueryRequest(request.message);
124
119
  break;
@@ -287,43 +282,21 @@ class FlowRServerConnection {
287
282
  stream
288
283
  });
289
284
  };
290
- void (0, core_1.replProcessAnswer)(this.config, {
285
+ const analyzer = new flowr_analyzer_builder_1.FlowrAnalyzerBuilder()
286
+ .setConfig(this.config)
287
+ .setParser(this.parser)
288
+ .buildSync();
289
+ void (0, core_1.replProcessAnswer)(analyzer, {
291
290
  formatter: request.ansi ? ansi_1.ansiFormatter : ansi_1.voidFormatter,
292
291
  stdout: msg => out('stdout', msg),
293
292
  stderr: msg => out('stderr', msg)
294
- }, request.expression, this.parser, this.allowRSessionAccess).then(() => {
293
+ }, request.expression, this.allowRSessionAccess).then(() => {
295
294
  (0, send_1.sendMessage)(this.socket, {
296
295
  type: 'end-repl-execution',
297
296
  id: request.id
298
297
  });
299
298
  });
300
299
  }
301
- async handleLineageRequest(base) {
302
- const requestResult = (0, validate_1.validateMessage)(base, message_lineage_1.requestLineageMessage);
303
- if (requestResult.type === 'error') {
304
- (0, validate_1.answerForValidationError)(this.socket, requestResult, base.id);
305
- return;
306
- }
307
- const request = requestResult.message;
308
- this.logger.info(`[${this.name}] Received lineage request for criterion ${request.criterion}`);
309
- const fileInformation = this.fileMap.get(request.filetoken);
310
- if (!fileInformation) {
311
- (0, send_1.sendMessage)(this.socket, {
312
- id: request.id,
313
- type: 'error',
314
- fatal: false,
315
- reason: `The file token ${request.filetoken} has never been analyzed.`
316
- });
317
- return;
318
- }
319
- const analyzer = fileInformation.analyzer;
320
- const lineageIds = (0, repl_lineage_1.getLineage)(request.criterion, (await analyzer.dataflow()).graph, (await analyzer.normalize()).idMap);
321
- (0, send_1.sendMessage)(this.socket, {
322
- type: 'response-lineage',
323
- id: request.id,
324
- lineage: [...lineageIds]
325
- });
326
- }
327
300
  handleQueryRequest(base) {
328
301
  const requestResult = (0, validate_1.validateMessage)(base, message_query_1.requestQueryMessage);
329
302
  if (requestResult.type === 'error') {
@@ -360,6 +333,9 @@ class FlowRServerConnection {
360
333
  }
361
334
  }
362
335
  exports.FlowRServerConnection = FlowRServerConnection;
336
+ /**
337
+ * Sanitizes analysis results by removing any potentially sensitive information like id maps.
338
+ */
363
339
  function sanitizeAnalysisResults(parse, normalize, dataflow) {
364
340
  return {
365
341
  parse: parse,
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Provides the capability of connecting to the repl of flowr via messages.
3
- *
4
3
  * @module
5
4
  */
6
5
  import * as Joi from 'joi';
@@ -9,7 +8,6 @@ import type { FileAnalysisRequestMessage, FileAnalysisResponseMessageJson } from
9
8
  import type { ExecuteEndMessage, ExecuteIntermediateResponseMessage, ExecuteRequestMessage } from './message-repl';
10
9
  import type { SliceRequestMessage, SliceResponseMessage } from './message-slice';
11
10
  import type { FlowrErrorMessage } from './message-error';
12
- import type { LineageRequestMessage, LineageResponseMessage } from './message-lineage';
13
11
  import type { QueryRequestMessage, QueryResponseMessage } from './message-query';
14
12
  /**
15
13
  * If you send a message it must *not* contain a newline but the message must be terminated by a newline.
@@ -34,4 +32,4 @@ export declare const baseMessage: MessageDefinition<IdMessageBase>;
34
32
  /**
35
33
  * This is the main message type that should be used to represent a message in *flowR*
36
34
  */
37
- export type FlowrMessage = FlowrHelloResponseMessage | FileAnalysisRequestMessage | FileAnalysisResponseMessageJson | ExecuteRequestMessage | ExecuteIntermediateResponseMessage | ExecuteEndMessage | SliceRequestMessage | SliceResponseMessage | LineageRequestMessage | LineageResponseMessage | QueryRequestMessage | QueryResponseMessage | FlowrErrorMessage;
35
+ export type FlowrMessage = FlowrHelloResponseMessage | FileAnalysisRequestMessage | FileAnalysisResponseMessageJson | ExecuteRequestMessage | ExecuteIntermediateResponseMessage | ExecuteEndMessage | SliceRequestMessage | SliceResponseMessage | QueryRequestMessage | QueryResponseMessage | FlowrErrorMessage;
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.baseMessage = void 0;
37
37
  /**
38
38
  * Provides the capability of connecting to the repl of flowr via messages.
39
- *
40
39
  * @module
41
40
  */
42
41
  const Joi = __importStar(require("joi"));
@@ -42,9 +42,7 @@ export declare const requestAnalysisMessage: MessageDefinition<FileAnalysisReque
42
42
  *
43
43
  * The `idMap` of the normalization step (see {@link NormalizedAst}) is not serialized as it would essentially
44
44
  * repeat the complete normalized AST, you have to re-create it yourself if you require it.
45
- *
46
45
  * @note The serialization of maps and sets is controlled by the {@link jsonReplacer} as part of {@link sendMessage}.
47
- *
48
46
  * @see {@link FileAnalysisResponseMessageNQuads}
49
47
  * @see {@link FileAnalysisResponseMessageCompact}
50
48
  */
@@ -1,5 +1,5 @@
1
- import type { VersionInformation } from '../../commands/repl-version';
2
1
  import type { IdMessageBase, MessageDefinition } from './all-messages';
2
+ import type { VersionInformation } from '../../../../util/version';
3
3
  /**
4
4
  * The hello message is automatically sent by the sever upon connection.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  import type { IdMessageBase, MessageDefinition } from './all-messages';
2
- import type { Queries, QueryResults, SupportedQueryTypes } from '../../../../queries/query';
2
+ import { type Queries, type QueryResults, type SupportedQueryTypes } from '../../../../queries/query';
3
3
  export interface QueryRequestMessage extends IdMessageBase {
4
4
  type: 'request-query';
5
5
  /** The {@link FileAnalysisRequestMessage#filetoken} of the file/data */
@@ -3,7 +3,6 @@ import type { IdMessageBase, MessageDefinition } from './all-messages';
3
3
  * Request the execution of the given expression as a REPL statement.
4
4
  * We strongly recommend that you make use of a unique {@link IdMessageBase#id}
5
5
  * in case the message responses happen in parallel.
6
- *
7
6
  * @see ExecuteIntermediateResponseMessage
8
7
  * @see ExecuteEndMessage
9
8
  */
@@ -1,4 +1,10 @@
1
1
  import type { IdMessageBase } from './messages/all-messages';
2
2
  import type { Socket } from './net';
3
+ /**
4
+ * Produce a new name for an unnamed socket connection
5
+ */
3
6
  export declare function getUnnamedSocketName(c: Socket): string;
7
+ /**
8
+ * Sends a message to the given socket
9
+ */
4
10
  export declare function sendMessage<T extends IdMessageBase>(c: Socket, message: T): void;
@@ -3,9 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getUnnamedSocketName = getUnnamedSocketName;
4
4
  exports.sendMessage = sendMessage;
5
5
  const json_1 = require("../../../util/json");
6
+ /**
7
+ * Produce a new name for an unnamed socket connection
8
+ */
6
9
  function getUnnamedSocketName(c) {
7
10
  return `${c.remoteAddress ?? '?'}@${c.remotePort ?? '?'}`;
8
11
  }
12
+ /**
13
+ * Sends a message to the given socket
14
+ */
9
15
  function sendMessage(c, message) {
10
16
  return (0, json_1.superBigJsonStringify)(message, '\n', msg => {
11
17
  c.write(msg);
@@ -1,4 +1,4 @@
1
- import type { Server } from './net';
1
+ import { type Server } from './net';
2
2
  import { FlowrLogger } from '../../../util/log';
3
3
  import type { FlowrConfigOptions, KnownEngines } from '../../../config';
4
4
  export declare const serverLog: FlowrLogger;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FlowRServer = exports.serverLog = void 0;
4
- const repl_version_1 = require("../commands/repl-version");
5
4
  const connection_1 = require("./connection");
6
5
  const send_1 = require("./send");
7
6
  const net_1 = require("./net");
8
7
  const log_1 = require("../../../util/log");
8
+ const version_1 = require("../../../util/version");
9
9
  // we detach from the main logger so that it can have its own switch
10
10
  exports.serverLog = new log_1.FlowrLogger({ name: 'server' });
11
11
  /**
@@ -32,7 +32,7 @@ class FlowRServer {
32
32
  this.config = config;
33
33
  }
34
34
  async start(port) {
35
- this.versionInformation = await (0, repl_version_1.retrieveVersionInformation)(this.engines[this.defaultEngine]);
35
+ this.versionInformation = await (0, version_1.retrieveVersionInformation)(this.engines[this.defaultEngine]);
36
36
  this.server.start(port);
37
37
  exports.serverLog.info(`Server listening on port ${port}`);
38
38
  }
@@ -1,5 +1,5 @@
1
1
  import type * as Joi from 'joi';
2
- import type { FlowrMessage, IdMessageBase, MessageDefinition } from './messages/all-messages';
2
+ import { type FlowrMessage, type IdMessageBase, type MessageDefinition } from './messages/all-messages';
3
3
  import type { Socket } from './net';
4
4
  export interface ValidationErrorResult {
5
5
  type: 'error';
@@ -10,6 +10,15 @@ export interface SuccessValidationResult<T extends IdMessageBase> {
10
10
  message: T;
11
11
  }
12
12
  export type ValidationResult<T extends IdMessageBase> = SuccessValidationResult<T> | ValidationErrorResult;
13
+ /**
14
+ * Check that the serialized input is a valid base message.
15
+ */
13
16
  export declare function validateBaseMessageFormat(input: string): ValidationResult<IdMessageBase>;
17
+ /**
18
+ * Validates that the given input matches the given message definition.
19
+ */
14
20
  export declare function validateMessage<T extends FlowrMessage | IdMessageBase>(input: IdMessageBase, def: MessageDefinition<T>): ValidationResult<T>;
21
+ /**
22
+ * Sends an error message to the given client indicating a validation error.
23
+ */
15
24
  export declare function answerForValidationError(client: Socket, result: ValidationErrorResult, id?: string): void;
@@ -5,6 +5,9 @@ exports.validateMessage = validateMessage;
5
5
  exports.answerForValidationError = answerForValidationError;
6
6
  const send_1 = require("./send");
7
7
  const all_messages_1 = require("./messages/all-messages");
8
+ /**
9
+ * Check that the serialized input is a valid base message.
10
+ */
8
11
  function validateBaseMessageFormat(input) {
9
12
  try {
10
13
  return validateMessage(JSON.parse(input), all_messages_1.baseMessage);
@@ -13,6 +16,9 @@ function validateBaseMessageFormat(input) {
13
16
  return { type: 'error', reason: e };
14
17
  }
15
18
  }
19
+ /**
20
+ * Validates that the given input matches the given message definition.
21
+ */
16
22
  function validateMessage(input, def) {
17
23
  try {
18
24
  const result = def.schema.validate(input);
@@ -22,6 +28,9 @@ function validateMessage(input, def) {
22
28
  return { type: 'error', reason: e };
23
29
  }
24
30
  }
31
+ /**
32
+ * Sends an error message to the given client indicating a validation error.
33
+ */
25
34
  function answerForValidationError(client, result, id) {
26
35
  (0, send_1.sendMessage)(client, {
27
36
  type: 'error',
@@ -1,8 +1,7 @@
1
- import type { StdioProcessor } from './repl/execute';
1
+ import { type StdioProcessor } from './repl/execute';
2
2
  import { scripts } from './common/scripts-info';
3
3
  /**
4
4
  * Path-safe helper of {@link waitOnScript} for other flowR scripts.
5
- *
6
5
  * @see waitOnScript
7
6
  */
8
7
  export declare function runScript(name: keyof typeof scripts, args: readonly string[], io?: StdioProcessor, exitOnError?: boolean): Promise<void>;
package/cli/run-script.js CHANGED
@@ -9,7 +9,6 @@ const scripts_info_1 = require("./common/scripts-info");
9
9
  const path_1 = __importDefault(require("path"));
10
10
  /**
11
11
  * Path-safe helper of {@link waitOnScript} for other flowR scripts.
12
- *
13
12
  * @see waitOnScript
14
13
  */
15
14
  async function runScript(name, args, io, exitOnError = false) {
@@ -1,3 +1,6 @@
1
1
  import type { StatsCliOptions } from '../statistics-app';
2
2
  import type { FlowrConfigOptions } from '../../config';
3
+ /**
4
+ * The core function for the 'flowr stats' script.
5
+ */
3
6
  export declare function flowrScriptGetStats(options: StatsCliOptions, config: FlowrConfigOptions): Promise<void>;
@@ -57,6 +57,9 @@ async function collectFileArguments(options, verboseAdd, dumpJson, features) {
57
57
  console.log(`Total: ${counter} files (${skipped} skipped with archive existing)`);
58
58
  return files;
59
59
  }
60
+ /**
61
+ * The core function for the 'flowr stats' script.
62
+ */
60
63
  async function flowrScriptGetStats(options, config) {
61
64
  if (options.input.length === 0) {
62
65
  console.error('No input files given. Nothing to do. See \'--help\' if this is an error.');
@@ -1,3 +1,6 @@
1
1
  import type { StatsHelperCliOptions } from '../statistics-helper-app';
2
- import type { FlowrConfigOptions } from '../../config';
2
+ import { type FlowrConfigOptions } from '../../config';
3
+ /**
4
+ * Get statistics for a single file
5
+ */
3
6
  export declare function getStatsForSingleFile(options: StatsHelperCliOptions, config: FlowrConfigOptions): Promise<void>;
@@ -36,6 +36,9 @@ function compressFolder(folder, target) {
36
36
  console.error('Error during compression:', e);
37
37
  });
38
38
  }
39
+ /**
40
+ * Get statistics for a single file
41
+ */
39
42
  async function getStatsForSingleFile(options, config) {
40
43
  if (options['no-ansi']) {
41
44
  log_1.log.info('disabling ansi colors');
@@ -1,2 +1,5 @@
1
1
  import type { SummarizerCliOptions } from '../summarizer-app';
2
+ /**
3
+ * The core function for the 'flowr summarize' script.
4
+ */
2
5
  export declare function flowrScriptSummarizer(options: SummarizerCliOptions): Promise<void>;
@@ -39,6 +39,9 @@ async function retrieveSummarizer(options, outputBase) {
39
39
  process.exit(1);
40
40
  }
41
41
  }
42
+ /**
43
+ * The core function for the 'flowr summarize' script.
44
+ */
42
45
  async function flowrScriptSummarizer(options) {
43
46
  const outputBase = (options.output ?? options.input).replace(/\.json$|\/$/, '-summary');
44
47
  console.log(`Writing outputs to base ${outputBase}`);
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * The summarizer intends to post-process and summarize the results of
3
- * * the benchmark tool, and
4
- * * the statistics extraction.
5
- *
3
+ * the benchmark tool, and
4
+ * the statistics extraction.
6
5
  * @module
7
6
  */
8
7
  export interface SummarizerCliOptions {
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  /**
3
3
  * The summarizer intends to post-process and summarize the results of
4
- * * the benchmark tool, and
5
- * * the statistics extraction.
6
- *
4
+ * the benchmark tool, and
5
+ * the statistics extraction.
7
6
  * @module
8
7
  */
9
8
  Object.defineProperty(exports, "__esModule", { value: true });
package/config.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { MergeableRecord } from './util/objects';
1
+ import { type MergeableRecord } from './util/objects';
2
2
  import Joi from 'joi';
3
3
  import type { BuiltInDefinitions } from './dataflow/environments/built-in-config';
4
4
  import type { KnownParser } from './r-bridge/parser';
@@ -59,10 +59,9 @@ export interface FlowrLaxSourcingOptions extends MergeableRecord {
59
59
  */
60
60
  readonly repeatedSourceLimit?: number;
61
61
  /**
62
- * sometimes files may have a different name in the source call (e.g., due to later replacements),
62
+ * sometimes files may have a different name in the source call (e.g., due to later replacements),
63
63
  * with this setting you can provide a list of replacements to apply for each sourced file.
64
64
  * Every replacement consists of a record that maps a regex to a replacement string.
65
- *
66
65
  * @example
67
66
  * ```ts
68
67
  * [
@@ -205,14 +204,29 @@ export type KnownEngines = {
205
204
  };
206
205
  export declare const defaultConfigOptions: FlowrConfigOptions;
207
206
  export declare const flowrConfigFileSchema: Joi.ObjectSchema<any>;
207
+ /**
208
+ * Parses the given JSON string as a flowR config file.
209
+ */
208
210
  export declare function parseConfig(jsonString: string): FlowrConfigOptions | undefined;
209
211
  /**
210
212
  * Creates a new flowr config that has the updated values.
211
213
  */
212
214
  export declare function amendConfig(config: FlowrConfigOptions, amendmentFunc: (config: DeepWritable<FlowrConfigOptions>) => FlowrConfigOptions | void): FlowrConfigOptions;
215
+ /**
216
+ * Clones the given flowr config object.
217
+ */
213
218
  export declare function cloneConfig(config: FlowrConfigOptions): FlowrConfigOptions;
219
+ /**
220
+ * Loads the flowr config from the given file or the default locations.
221
+ */
214
222
  export declare function getConfig(configFile?: string, configWorkingDirectory?: string): FlowrConfigOptions;
223
+ /**
224
+ * Gets the configuration for the given engine type from the config.
225
+ */
215
226
  export declare function getEngineConfig<T extends EngineConfig['type']>(config: FlowrConfigOptions, engine: T): EngineConfig & {
216
227
  type: T;
217
228
  } | undefined;
229
+ /**
230
+ * Checks whether the given count is over the pointer analysis threshold configured in the config.
231
+ */
218
232
  export declare function isOverPointerAnalysisThreshold(config: FlowrConfigOptions, count: number): boolean;
package/config.js CHANGED
@@ -142,6 +142,9 @@ exports.flowrConfigFileSchema = joi_1.default.object({
142
142
  }).description('The configuration of the shape inference for data frames.')
143
143
  }).description('The configuration options for abstract interpretation.')
144
144
  }).description('The configuration file format for flowR.');
145
+ /**
146
+ * Parses the given JSON string as a flowR config file.
147
+ */
145
148
  function parseConfig(jsonString) {
146
149
  try {
147
150
  const parsed = JSON.parse(jsonString);
@@ -168,9 +171,15 @@ function amendConfig(config, amendmentFunc) {
168
171
  amendmentFunc(newConfig);
169
172
  return newConfig;
170
173
  }
174
+ /**
175
+ * Clones the given flowr config object.
176
+ */
171
177
  function cloneConfig(config) {
172
178
  return JSON.parse(JSON.stringify(config));
173
179
  }
180
+ /**
181
+ * Loads the flowr config from the given file or the default locations.
182
+ */
174
183
  function getConfig(configFile, configWorkingDirectory = process.cwd()) {
175
184
  try {
176
185
  return loadConfigFromFile(configFile, configWorkingDirectory);
@@ -180,6 +189,9 @@ function getConfig(configFile, configWorkingDirectory = process.cwd()) {
180
189
  return exports.defaultConfigOptions;
181
190
  }
182
191
  }
192
+ /**
193
+ * Gets the configuration for the given engine type from the config.
194
+ */
183
195
  function getEngineConfig(config, engine) {
184
196
  const engines = config.engines;
185
197
  if (!engines.length) {
@@ -198,6 +210,9 @@ function getPointerAnalysisThreshold(config) {
198
210
  return pointerTracking ? 'unlimited' : 'disabled';
199
211
  }
200
212
  }
213
+ /**
214
+ * Checks whether the given count is over the pointer analysis threshold configured in the config.
215
+ */
201
216
  function isOverPointerAnalysisThreshold(config, count) {
202
217
  const threshold = getPointerAnalysisThreshold(config);
203
218
  return threshold !== 'unlimited' && (threshold === 'disabled' || count > threshold);
@@ -1,4 +1,4 @@
1
- import type { CfgBasicBlockVertex, CfgEndMarkerVertex, CfgExpressionVertex, CfgSimpleVertex, CfgStatementVertex, ControlFlowInformation } from './control-flow-graph';
1
+ import { type CfgBasicBlockVertex, type CfgEndMarkerVertex, type CfgExpressionVertex, type CfgSimpleVertex, type CfgStatementVertex, type ControlFlowInformation } from './control-flow-graph';
2
2
  import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
3
3
  export interface BasicCfgGuidedVisitorConfiguration<ControlFlow extends ControlFlowInformation = ControlFlowInformation> {
4
4
  readonly controlFlow: ControlFlow;
@@ -17,7 +17,6 @@ export declare class BasicCfgGuidedVisitor<ControlFlow extends ControlFlowInform
17
17
  constructor(config: Config);
18
18
  /**
19
19
  * call this function to indicate that a node is to be considered visited.
20
- *
21
20
  * @returns `true` if the node was not visited before, `false` otherwise
22
21
  */
23
22
  protected visitNode(node: NodeId): boolean;
@@ -19,7 +19,6 @@ class BasicCfgGuidedVisitor {
19
19
  }
20
20
  /**
21
21
  * call this function to indicate that a node is to be considered visited.
22
- *
23
22
  * @returns `true` if the node was not visited before, `false` otherwise
24
23
  */
25
24
  visitNode(node) {
@@ -1,4 +1,4 @@
1
- import type { ControlFlowInformation } from './control-flow-graph';
1
+ import { type ControlFlowInformation } from './control-flow-graph';
2
2
  /**
3
3
  * Take a control flow information of a graph without any basic blocks and convert it to a graph with basic blocks.
4
4
  */