@eagleoutice/flowr 2.6.1 → 2.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (808) hide show
  1. package/README.md +142 -39
  2. package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
  3. package/abstract-interpretation/data-frame/absint-visitor.d.ts +2 -3
  4. package/abstract-interpretation/data-frame/absint-visitor.js +17 -12
  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 +9 -10
  14. package/abstract-interpretation/data-frame/mappers/function-mapper.js +21 -18
  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 +179 -162
  20. package/abstract-interpretation/data-frame/shape-inference.d.ts +4 -7
  21. package/abstract-interpretation/data-frame/shape-inference.js +10 -12
  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 +2 -8
  44. package/abstract-interpretation/normalized-ast-fold.js +0 -5
  45. package/benchmark/slicer.d.ts +4 -7
  46. package/benchmark/slicer.js +27 -31
  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 +13 -1
  58. package/benchmark/summarizer/second-phase/graph.d.ts +5 -0
  59. package/benchmark/summarizer/second-phase/graph.js +5 -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/export-quads-app.js +1 -1
  71. package/cli/flowr-main-options.d.ts +3 -0
  72. package/cli/flowr-main-options.js +3 -0
  73. package/cli/repl/commands/repl-commands.d.ts +13 -0
  74. package/cli/repl/commands/repl-commands.js +13 -2
  75. package/cli/repl/commands/repl-dataflow.js +2 -1
  76. package/cli/repl/commands/repl-execute.d.ts +4 -0
  77. package/cli/repl/commands/repl-execute.js +6 -2
  78. package/cli/repl/commands/repl-main.d.ts +15 -9
  79. package/cli/repl/commands/repl-parse.js +18 -6
  80. package/cli/repl/commands/repl-query.js +16 -5
  81. package/cli/repl/core.d.ts +24 -6
  82. package/cli/repl/core.js +42 -30
  83. package/cli/repl/execute.d.ts +0 -2
  84. package/cli/repl/execute.js +0 -2
  85. package/cli/repl/parser/slice-query-parser.d.ts +14 -0
  86. package/cli/repl/parser/slice-query-parser.js +34 -0
  87. package/cli/repl/print-version.d.ts +6 -0
  88. package/cli/repl/print-version.js +6 -0
  89. package/cli/repl/server/compact.d.ts +8 -0
  90. package/cli/repl/server/compact.js +8 -0
  91. package/cli/repl/server/connection.d.ts +4 -3
  92. package/cli/repl/server/connection.js +5 -32
  93. package/cli/repl/server/messages/all-messages.d.ts +1 -3
  94. package/cli/repl/server/messages/all-messages.js +0 -1
  95. package/cli/repl/server/messages/message-analysis.d.ts +0 -2
  96. package/cli/repl/server/messages/message-query.d.ts +1 -1
  97. package/cli/repl/server/messages/message-repl.d.ts +0 -1
  98. package/cli/repl/server/send.d.ts +6 -0
  99. package/cli/repl/server/send.js +6 -0
  100. package/cli/repl/server/server.d.ts +1 -1
  101. package/cli/repl/server/validate.d.ts +10 -1
  102. package/cli/repl/server/validate.js +9 -0
  103. package/cli/run-script.d.ts +1 -2
  104. package/cli/run-script.js +0 -1
  105. package/cli/script-core/statistics-core.d.ts +3 -0
  106. package/cli/script-core/statistics-core.js +3 -0
  107. package/cli/script-core/statistics-helper-core.d.ts +4 -1
  108. package/cli/script-core/statistics-helper-core.js +5 -1
  109. package/cli/script-core/summarizer-core.d.ts +3 -0
  110. package/cli/script-core/summarizer-core.js +3 -0
  111. package/cli/slicer-app.js +3 -4
  112. package/cli/summarizer-app.d.ts +2 -3
  113. package/cli/summarizer-app.js +2 -3
  114. package/cli/wiki.d.ts +4 -0
  115. package/cli/wiki.js +165 -0
  116. package/config.d.ts +21 -3
  117. package/config.js +21 -0
  118. package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
  119. package/control-flow/basic-cfg-guided-visitor.js +0 -1
  120. package/control-flow/cfg-dead-code.js +13 -3
  121. package/control-flow/cfg-simplification.d.ts +5 -2
  122. package/control-flow/cfg-simplification.js +3 -0
  123. package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
  124. package/control-flow/control-flow-graph.d.ts +20 -12
  125. package/control-flow/control-flow-graph.js +16 -4
  126. package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
  127. package/control-flow/diff-cfg.d.ts +3 -5
  128. package/control-flow/diff-cfg.js +0 -1
  129. package/control-flow/extract-cfg.d.ts +12 -9
  130. package/control-flow/extract-cfg.js +44 -7
  131. package/control-flow/happens-before.d.ts +1 -1
  132. package/control-flow/semantic-cfg-guided-visitor.d.ts +4 -33
  133. package/control-flow/semantic-cfg-guided-visitor.js +0 -28
  134. package/control-flow/simple-visitor.d.ts +1 -3
  135. package/control-flow/simple-visitor.js +2 -4
  136. package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
  137. package/control-flow/useless-loop.d.ts +3 -6
  138. package/control-flow/useless-loop.js +16 -10
  139. package/core/pipeline-executor.d.ts +11 -22
  140. package/core/pipeline-executor.js +13 -25
  141. package/core/print/dataflow-printer.d.ts +19 -0
  142. package/core/print/dataflow-printer.js +19 -0
  143. package/core/print/normalize-printer.d.ts +21 -1
  144. package/core/print/normalize-printer.js +21 -1
  145. package/core/print/parse-printer.d.ts +6 -1
  146. package/core/print/parse-printer.js +5 -0
  147. package/core/print/print.d.ts +0 -1
  148. package/core/print/print.js +0 -1
  149. package/core/print/slice-diff-ansi.d.ts +3 -0
  150. package/core/print/slice-diff-ansi.js +3 -0
  151. package/core/steps/all/core/00-parse.d.ts +2 -2
  152. package/core/steps/all/core/00-parse.js +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 -6
  155. package/core/steps/all/core/10-normalize.js +1 -13
  156. package/core/steps/all/core/11-normalize-tree-sitter.d.ts +5 -5
  157. package/core/steps/all/core/11-normalize-tree-sitter.js +2 -3
  158. package/core/steps/all/core/20-dataflow.d.ts +3 -4
  159. package/core/steps/all/core/20-dataflow.js +2 -2
  160. package/core/steps/all/static-slicing/00-slice.d.ts +1 -2
  161. package/core/steps/all/static-slicing/00-slice.js +1 -1
  162. package/core/steps/all/static-slicing/10-reconstruct.d.ts +8 -0
  163. package/core/steps/all/static-slicing/10-reconstruct.js +4 -1
  164. package/core/steps/pipeline/create-pipeline.d.ts +1 -1
  165. package/core/steps/pipeline/default-pipelines.d.ts +94 -95
  166. package/core/steps/pipeline/default-pipelines.js +8 -12
  167. package/core/steps/pipeline/pipeline.d.ts +1 -8
  168. package/core/steps/pipeline/pipeline.js +1 -3
  169. package/core/steps/pipeline-step.d.ts +0 -1
  170. package/core/steps/pipeline-step.js +0 -1
  171. package/dataflow/cluster.d.ts +3 -0
  172. package/dataflow/cluster.js +3 -0
  173. package/dataflow/environments/append.d.ts +1 -1
  174. package/dataflow/environments/built-in-config.d.ts +1 -5
  175. package/dataflow/environments/built-in-config.js +0 -1
  176. package/dataflow/environments/built-in.d.ts +10 -5
  177. package/dataflow/environments/built-in.js +6 -1
  178. package/dataflow/environments/clone.d.ts +1 -2
  179. package/dataflow/environments/clone.js +12 -2
  180. package/dataflow/environments/default-builtin-config.d.ts +3 -0
  181. package/dataflow/environments/default-builtin-config.js +4 -1
  182. package/dataflow/environments/diff.d.ts +11 -2
  183. package/dataflow/environments/diff.js +11 -2
  184. package/dataflow/environments/environment.d.ts +3 -3
  185. package/dataflow/environments/environment.js +8 -6
  186. package/dataflow/environments/identifier.d.ts +0 -4
  187. package/dataflow/environments/identifier.js +0 -1
  188. package/dataflow/environments/overwrite.d.ts +1 -2
  189. package/dataflow/environments/overwrite.js +3 -16
  190. package/dataflow/environments/resolve-by-name.d.ts +4 -4
  191. package/dataflow/environments/resolve-by-name.js +3 -2
  192. package/dataflow/environments/scoping.d.ts +9 -2
  193. package/dataflow/environments/scoping.js +8 -1
  194. package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
  195. package/dataflow/eval/resolve/alias-tracking.js +11 -14
  196. package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
  197. package/dataflow/eval/resolve/resolve-argument.js +2 -2
  198. package/dataflow/eval/resolve/resolve.d.ts +1 -7
  199. package/dataflow/eval/resolve/resolve.js +0 -5
  200. package/dataflow/eval/values/general.d.ts +1 -3
  201. package/dataflow/eval/values/general.js +0 -1
  202. package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
  203. package/dataflow/eval/values/intervals/interval-constants.js +6 -0
  204. package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
  205. package/dataflow/eval/values/logical/logical-constants.js +3 -0
  206. package/dataflow/eval/values/r-value.d.ts +12 -0
  207. package/dataflow/eval/values/r-value.js +12 -0
  208. package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
  209. package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
  210. package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
  211. package/dataflow/eval/values/sets/set-constants.js +6 -0
  212. package/dataflow/eval/values/string/string-constants.d.ts +16 -1
  213. package/dataflow/eval/values/string/string-constants.js +15 -0
  214. package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
  215. package/dataflow/extractor.d.ts +3 -4
  216. package/dataflow/extractor.js +25 -22
  217. package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
  218. package/dataflow/graph/dataflowgraph-builder.js +6 -23
  219. package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
  220. package/dataflow/graph/diff-dataflow-graph.js +12 -1
  221. package/dataflow/graph/edge.d.ts +9 -0
  222. package/dataflow/graph/edge.js +9 -0
  223. package/dataflow/graph/graph.d.ts +9 -28
  224. package/dataflow/graph/graph.js +4 -28
  225. package/dataflow/graph/invert-dfg.d.ts +3 -0
  226. package/dataflow/graph/invert-dfg.js +3 -0
  227. package/dataflow/graph/quads.d.ts +1 -1
  228. package/dataflow/graph/unknown-replacement.d.ts +8 -0
  229. package/dataflow/graph/unknown-replacement.js +8 -0
  230. package/dataflow/graph/unknown-side-effect.d.ts +8 -0
  231. package/dataflow/graph/unknown-side-effect.js +8 -0
  232. package/dataflow/graph/vertex.d.ts +9 -9
  233. package/dataflow/graph/vertex.js +9 -1
  234. package/dataflow/info.d.ts +16 -10
  235. package/dataflow/info.js +27 -1
  236. package/dataflow/internal/linker.d.ts +25 -9
  237. package/dataflow/internal/linker.js +30 -11
  238. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
  239. package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -1
  240. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
  241. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
  242. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +6 -4
  243. package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
  244. package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +4 -1
  245. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
  246. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.js +4 -4
  247. package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
  248. package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +9 -6
  249. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
  250. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +4 -1
  251. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
  252. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +4 -1
  253. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
  254. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +7 -1
  255. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
  256. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
  257. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
  258. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +5 -1
  259. package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
  260. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
  261. package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
  262. package/dataflow/internal/process/functions/call/built-in/built-in-list.js +2 -2
  263. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
  264. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +6 -3
  265. package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
  266. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
  267. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +10 -2
  268. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +8 -0
  269. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
  270. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +5 -3
  271. package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
  272. package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
  273. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +34 -12
  274. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +90 -68
  275. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +5 -0
  276. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +5 -0
  277. package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
  278. package/dataflow/internal/process/functions/call/built-in/built-in-vector.js +2 -2
  279. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
  280. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +4 -1
  281. package/dataflow/internal/process/functions/call/common.d.ts +11 -5
  282. package/dataflow/internal/process/functions/call/common.js +9 -3
  283. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +5 -0
  284. package/dataflow/internal/process/functions/call/default-call-handling.js +5 -0
  285. package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
  286. package/dataflow/internal/process/functions/call/known-call-handling.js +10 -3
  287. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
  288. package/dataflow/internal/process/functions/call/named-call-handling.js +10 -4
  289. package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
  290. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
  291. package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
  292. package/dataflow/internal/process/functions/process-argument.js +6 -0
  293. package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
  294. package/dataflow/internal/process/functions/process-parameter.js +7 -4
  295. package/dataflow/internal/process/process-symbol.d.ts +3 -0
  296. package/dataflow/internal/process/process-symbol.js +3 -0
  297. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
  298. package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
  299. package/dataflow/internal/process/process-value.d.ts +3 -0
  300. package/dataflow/internal/process/process-value.js +3 -0
  301. package/dataflow/origin/dfg-get-origin.d.ts +0 -2
  302. package/dataflow/origin/dfg-get-symbol-refs.d.ts +6 -8
  303. package/dataflow/origin/dfg-get-symbol-refs.js +7 -9
  304. package/dataflow/processor.d.ts +6 -12
  305. package/dataflow/processor.js +0 -1
  306. package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -2
  307. package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
  308. package/documentation/data/faq/faqs.d.ts +5 -0
  309. package/documentation/data/faq/faqs.js +87 -0
  310. package/documentation/data/faq/recommended-configs.d.ts +36 -0
  311. package/documentation/data/faq/recommended-configs.js +40 -0
  312. package/documentation/data/faq/wiki-faq-store.d.ts +19 -0
  313. package/documentation/data/faq/wiki-faq-store.js +83 -0
  314. package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
  315. package/documentation/data/server/doc-data-server-messages.js +5 -64
  316. package/documentation/doc-capabilities.d.ts +9 -0
  317. package/documentation/{print-capabilities-markdown.js → doc-capabilities.js} +18 -21
  318. package/documentation/doc-readme.d.ts +9 -0
  319. package/documentation/{print-readme.js → doc-readme.js} +136 -35
  320. package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
  321. package/documentation/doc-util/doc-auto-gen.js +6 -0
  322. package/documentation/doc-util/doc-benchmarks.d.ts +14 -0
  323. package/documentation/doc-util/doc-benchmarks.js +14 -0
  324. package/documentation/doc-util/doc-cfg.d.ts +7 -1
  325. package/documentation/doc-util/doc-cfg.js +14 -8
  326. package/documentation/doc-util/doc-cli-option.d.ts +9 -0
  327. package/documentation/doc-util/doc-cli-option.js +9 -0
  328. package/documentation/doc-util/doc-code.d.ts +24 -0
  329. package/documentation/doc-util/doc-code.js +24 -0
  330. package/documentation/doc-util/doc-dfg.d.ts +12 -6
  331. package/documentation/doc-util/doc-dfg.js +19 -10
  332. package/documentation/doc-util/doc-env.d.ts +3 -0
  333. package/documentation/doc-util/doc-env.js +3 -0
  334. package/documentation/doc-util/doc-escape.d.ts +6 -1
  335. package/documentation/doc-util/doc-escape.js +11 -1
  336. package/documentation/doc-util/doc-files.d.ts +11 -0
  337. package/documentation/doc-util/doc-files.js +15 -4
  338. package/documentation/doc-util/doc-general.d.ts +26 -0
  339. package/documentation/doc-util/doc-general.js +26 -0
  340. package/documentation/doc-util/doc-normalized-ast.d.ts +14 -3
  341. package/documentation/doc-util/doc-normalized-ast.js +16 -7
  342. package/documentation/doc-util/doc-query.d.ts +26 -3
  343. package/documentation/doc-util/doc-query.js +34 -12
  344. package/documentation/doc-util/doc-repl.d.ts +6 -0
  345. package/documentation/doc-util/doc-repl.js +6 -0
  346. package/documentation/doc-util/doc-search.d.ts +3 -18
  347. package/documentation/doc-util/doc-search.js +6 -62
  348. package/documentation/doc-util/doc-server-message.d.ts +18 -6
  349. package/documentation/doc-util/doc-server-message.js +17 -5
  350. package/documentation/doc-util/doc-structure.d.ts +9 -0
  351. package/documentation/doc-util/doc-structure.js +10 -1
  352. package/documentation/doc-util/doc-types.d.ts +90 -11
  353. package/documentation/doc-util/doc-types.js +128 -39
  354. package/documentation/index.d.ts +9 -9
  355. package/documentation/index.js +9 -9
  356. package/documentation/issue-linting-rule.d.ts +9 -0
  357. package/documentation/{print-linter-issue.js → issue-linting-rule.js} +20 -23
  358. package/documentation/wiki-analyzer.d.ts +9 -0
  359. package/documentation/wiki-analyzer.js +412 -0
  360. package/documentation/wiki-cfg.d.ts +9 -0
  361. package/documentation/{print-cfg-wiki.js → wiki-cfg.js} +144 -160
  362. package/documentation/wiki-core.d.ts +14 -0
  363. package/documentation/{print-core-wiki.js → wiki-core.js} +167 -175
  364. package/documentation/wiki-dataflow-graph.d.ts +9 -0
  365. package/documentation/{print-dataflow-graph-wiki.js → wiki-dataflow-graph.js} +145 -175
  366. package/documentation/wiki-engine.d.ts +9 -0
  367. package/documentation/{print-engines-wiki.js → wiki-engine.js} +27 -42
  368. package/documentation/wiki-faq.d.ts +8 -0
  369. package/documentation/wiki-faq.js +22 -0
  370. package/documentation/wiki-interface.d.ts +9 -0
  371. package/documentation/{print-interface-wiki.js → wiki-interface.js} +60 -57
  372. package/documentation/wiki-linter.d.ts +9 -0
  373. package/documentation/{print-linter-wiki.js → wiki-linter.js} +52 -48
  374. package/documentation/wiki-linting-and-testing.d.ts +9 -0
  375. package/documentation/{print-linting-and-testing-wiki.js → wiki-linting-and-testing.js} +25 -32
  376. package/documentation/wiki-mk/doc-context.d.ts +186 -0
  377. package/documentation/wiki-mk/doc-context.js +84 -0
  378. package/documentation/wiki-mk/doc-maker.d.ts +95 -0
  379. package/documentation/wiki-mk/doc-maker.js +133 -0
  380. package/documentation/wiki-normalized-ast.d.ts +9 -0
  381. package/documentation/{print-normalized-ast-wiki.js → wiki-normalized-ast.js} +64 -47
  382. package/documentation/wiki-onboarding.d.ts +8 -0
  383. package/documentation/{print-onboarding-wiki.js → wiki-onboarding.js} +18 -15
  384. package/documentation/wiki-query.d.ts +9 -0
  385. package/documentation/{print-query-wiki.js → wiki-query.js} +65 -80
  386. package/documentation/wiki-search.d.ts +9 -0
  387. package/documentation/wiki-search.js +61 -0
  388. package/engines.d.ts +1 -1
  389. package/linter/linter-executor.d.ts +6 -3
  390. package/linter/linter-executor.js +6 -2
  391. package/linter/linter-format.d.ts +10 -2
  392. package/linter/linter-format.js +8 -0
  393. package/linter/linter-rules.d.ts +13 -17
  394. package/linter/rules/absolute-path.d.ts +4 -6
  395. package/linter/rules/absolute-path.js +2 -2
  396. package/linter/rules/dataframe-access-validation.d.ts +4 -5
  397. package/linter/rules/dataframe-access-validation.js +21 -19
  398. package/linter/rules/dead-code.d.ts +2 -2
  399. package/linter/rules/deprecated-functions.d.ts +2 -6
  400. package/linter/rules/file-path-validity.d.ts +2 -3
  401. package/linter/rules/file-path-validity.js +4 -4
  402. package/linter/rules/function-finder-util.d.ts +2 -7
  403. package/linter/rules/naming-convention.d.ts +15 -4
  404. package/linter/rules/naming-convention.js +14 -2
  405. package/linter/rules/network-functions.d.ts +2 -2
  406. package/linter/rules/network-functions.js +1 -1
  407. package/linter/rules/seeded-randomness.d.ts +4 -4
  408. package/linter/rules/seeded-randomness.js +33 -13
  409. package/linter/rules/unused-definition.d.ts +3 -4
  410. package/linter/rules/useless-loop.d.ts +3 -4
  411. package/linter/rules/useless-loop.js +2 -2
  412. package/package.json +7 -18
  413. package/project/cache/flowr-analyzer-cache.d.ts +9 -19
  414. package/project/cache/flowr-analyzer-cache.js +17 -44
  415. package/project/cache/flowr-analyzer-controlflow-cache.d.ts +34 -0
  416. package/project/cache/flowr-analyzer-controlflow-cache.js +79 -0
  417. package/project/context/flowr-analyzer-context.d.ts +31 -9
  418. package/project/context/flowr-analyzer-context.js +48 -4
  419. package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
  420. package/project/context/flowr-analyzer-files-context.d.ts +63 -15
  421. package/project/context/flowr-analyzer-files-context.js +110 -39
  422. package/project/context/flowr-file.d.ts +32 -11
  423. package/project/context/flowr-file.js +30 -9
  424. package/project/flowr-analyzer-builder.d.ts +23 -31
  425. package/project/flowr-analyzer-builder.js +35 -74
  426. package/project/flowr-analyzer.d.ts +79 -29
  427. package/project/flowr-analyzer.js +59 -15
  428. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +8 -2
  429. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.js +13 -5
  430. package/project/plugins/file-plugins/flowr-analyzer-file-plugin.d.ts +3 -3
  431. package/project/plugins/file-plugins/flowr-analyzer-file-plugin.js +11 -5
  432. package/project/plugins/file-plugins/flowr-description-file.d.ts +3 -5
  433. package/project/plugins/file-plugins/flowr-description-file.js +0 -1
  434. package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.d.ts +22 -0
  435. package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.js +33 -0
  436. package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.d.ts +22 -0
  437. package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.js +33 -0
  438. package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.d.ts +22 -0
  439. package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.js +33 -0
  440. package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.d.ts +20 -0
  441. package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.js +42 -0
  442. package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.d.ts +59 -0
  443. package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.js +132 -0
  444. package/project/plugins/file-plugins/notebooks/notebook.d.ts +0 -0
  445. package/project/plugins/file-plugins/notebooks/notebook.js +2 -0
  446. package/project/plugins/flowr-analyzer-plugin-defaults.d.ts +5 -0
  447. package/project/plugins/flowr-analyzer-plugin-defaults.js +23 -0
  448. package/project/plugins/flowr-analyzer-plugin.d.ts +2 -0
  449. package/project/plugins/flowr-analyzer-plugin.js +2 -0
  450. package/project/plugins/loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin.js +1 -1
  451. package/project/plugins/package-version-plugins/flowr-analyzer-package-versions-description-file-plugin.js +1 -1
  452. package/project/plugins/plugin-registry.d.ts +34 -0
  453. package/project/plugins/plugin-registry.js +62 -0
  454. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
  455. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.js +7 -1
  456. package/queries/base-query-format.d.ts +2 -2
  457. package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
  458. package/queries/catalog/call-context-query/call-context-query-executor.js +7 -2
  459. package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
  460. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +16 -4
  461. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +34 -18
  462. package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
  463. package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
  464. package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
  465. package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
  466. package/queries/catalog/config-query/config-query-executor.js +3 -0
  467. package/queries/catalog/config-query/config-query-format.d.ts +5 -2
  468. package/queries/catalog/config-query/config-query-format.js +13 -16
  469. package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
  470. package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
  471. package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
  472. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
  473. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
  474. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
  475. package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
  476. package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
  477. package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
  478. package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
  479. package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
  480. package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
  481. package/queries/catalog/dependencies-query/dependencies-query-format.js +5 -2
  482. package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
  483. package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
  484. package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
  485. package/queries/catalog/df-shape-query/df-shape-query-format.js +25 -5
  486. package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +4 -0
  487. package/queries/catalog/happens-before-query/happens-before-query-executor.js +4 -0
  488. package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
  489. package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
  490. package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
  491. package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
  492. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
  493. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
  494. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
  495. package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
  496. package/queries/catalog/linter-query/linter-query-executor.js +4 -0
  497. package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
  498. package/queries/catalog/linter-query/linter-query-format.js +80 -2
  499. package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
  500. package/queries/catalog/location-map-query/location-map-query-executor.js +7 -2
  501. package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
  502. package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
  503. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
  504. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
  505. package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
  506. package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
  507. package/queries/catalog/origin-query/origin-query-executor.js +6 -0
  508. package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
  509. package/queries/catalog/origin-query/origin-query-format.js +17 -1
  510. package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
  511. package/queries/catalog/project-query/project-query-executor.js +6 -1
  512. package/queries/catalog/project-query/project-query-format.d.ts +1 -1
  513. package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
  514. package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
  515. package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
  516. package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
  517. package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
  518. package/queries/catalog/search-query/search-query-executor.js +3 -0
  519. package/queries/catalog/search-query/search-query-format.d.ts +1 -1
  520. package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
  521. package/queries/catalog/static-slice-query/static-slice-query-executor.js +10 -1
  522. package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
  523. package/queries/catalog/static-slice-query/static-slice-query-format.js +30 -1
  524. package/queries/query-print.d.ts +20 -4
  525. package/queries/query-print.js +18 -2
  526. package/queries/query.d.ts +93 -55
  527. package/queries/query.js +55 -23
  528. package/queries/virtual-query/virtual-queries.d.ts +1 -2
  529. package/r-bridge/data/get.d.ts +6 -0
  530. package/r-bridge/data/get.js +6 -0
  531. package/r-bridge/lang-4.x/ast/model/collect.d.ts +2 -2
  532. package/r-bridge/lang-4.x/ast/model/collect.js +4 -1
  533. package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
  534. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
  535. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
  536. package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
  537. package/r-bridge/lang-4.x/ast/model/nodes/r-project.d.ts +29 -0
  538. package/r-bridge/lang-4.x/ast/model/nodes/r-project.js +15 -0
  539. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
  540. package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
  541. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
  542. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
  543. package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
  544. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +11 -14
  545. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +30 -17
  546. package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
  547. package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
  548. package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
  549. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
  550. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
  551. package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
  552. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
  553. package/r-bridge/lang-4.x/ast/model/type.d.ts +6 -5
  554. package/r-bridge/lang-4.x/ast/model/type.js +6 -5
  555. package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
  556. package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
  557. package/r-bridge/lang-4.x/ast/parser/json/format.js +1 -1
  558. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +12 -12
  559. package/r-bridge/lang-4.x/ast/parser/json/parser.js +11 -11
  560. package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
  561. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
  562. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
  563. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
  564. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
  565. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
  566. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
  567. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
  568. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
  569. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
  570. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
  571. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
  572. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
  573. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
  574. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
  575. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
  576. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
  577. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
  578. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
  579. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
  580. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
  581. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
  582. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
  583. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
  584. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
  585. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
  586. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
  587. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
  588. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
  589. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
  590. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
  591. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
  592. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
  593. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
  594. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.d.ts +4 -3
  595. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.js +20 -11
  596. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
  597. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
  598. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
  599. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
  600. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
  601. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
  602. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
  603. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
  604. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
  605. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
  606. package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
  607. package/r-bridge/lang-4.x/convert-values.js +12 -1
  608. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
  609. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +18 -0
  610. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +15 -2
  611. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +62 -24
  612. package/r-bridge/parser.d.ts +43 -12
  613. package/r-bridge/parser.js +27 -13
  614. package/r-bridge/retriever.d.ts +25 -16
  615. package/r-bridge/retriever.js +29 -5
  616. package/r-bridge/shell-executor.d.ts +3 -3
  617. package/r-bridge/shell-executor.js +6 -1
  618. package/r-bridge/shell.d.ts +24 -23
  619. package/r-bridge/shell.js +37 -31
  620. package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -2
  621. package/reconstruct/auto-select/magic-comments.d.ts +1 -2
  622. package/reconstruct/auto-select/magic-comments.js +2 -3
  623. package/reconstruct/reconstruct.d.ts +18 -12
  624. package/reconstruct/reconstruct.js +19 -10
  625. package/search/flowr-search-builder.d.ts +12 -5
  626. package/search/flowr-search-builder.js +7 -2
  627. package/search/flowr-search-executor.d.ts +3 -3
  628. package/search/flowr-search-filters.d.ts +14 -1
  629. package/search/flowr-search-filters.js +13 -0
  630. package/search/flowr-search-printer.d.ts +6 -0
  631. package/search/flowr-search-printer.js +6 -0
  632. package/search/flowr-search-traverse.d.ts +1 -1
  633. package/search/flowr-search.d.ts +15 -3
  634. package/search/search-executor/search-enrichers.d.ts +16 -6
  635. package/search/search-executor/search-enrichers.js +4 -3
  636. package/search/search-executor/search-generators.d.ts +19 -10
  637. package/search/search-executor/search-generators.js +57 -5
  638. package/search/search-executor/search-mappers.d.ts +8 -5
  639. package/search/search-executor/search-mappers.js +3 -0
  640. package/search/search-executor/search-transformer.d.ts +19 -16
  641. package/search/search-executor/search-transformer.js +3 -0
  642. package/slicing/criterion/collect-all.d.ts +13 -12
  643. package/slicing/criterion/collect-all.js +1 -1
  644. package/slicing/criterion/parse.d.ts +4 -2
  645. package/slicing/criterion/parse.js +8 -6
  646. package/slicing/static/fingerprint.d.ts +9 -1
  647. package/slicing/static/fingerprint.js +8 -0
  648. package/slicing/static/slice-call.d.ts +2 -2
  649. package/slicing/static/static-slicer.d.ts +8 -4
  650. package/slicing/static/static-slicer.js +5 -1
  651. package/slicing/static/visiting-queue.d.ts +1 -1
  652. package/statistics/features/common-syntax-probability.d.ts +10 -1
  653. package/statistics/features/common-syntax-probability.js +9 -0
  654. package/statistics/features/feature.d.ts +0 -4
  655. package/statistics/features/feature.js +0 -1
  656. package/statistics/features/post-processing.d.ts +6 -0
  657. package/statistics/features/post-processing.js +6 -0
  658. package/statistics/features/supported/assignments/assignments.js +1 -1
  659. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  660. package/statistics/features/supported/assignments/post-process.js +3 -0
  661. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  662. package/statistics/features/supported/comments/post-process.js +3 -0
  663. package/statistics/features/supported/control-flow/control-flow.js +1 -1
  664. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  665. package/statistics/features/supported/control-flow/post-process.js +3 -0
  666. package/statistics/features/supported/data-access/data-access.d.ts +1 -1
  667. package/statistics/features/supported/data-access/data-access.js +1 -1
  668. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  669. package/statistics/features/supported/data-access/post-process.js +3 -0
  670. package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
  671. package/statistics/features/supported/defined-functions/defined-functions.js +1 -1
  672. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  673. package/statistics/features/supported/expression-list/post-process.js +3 -0
  674. package/statistics/features/supported/expression-list/statistics-expression-list.js +1 -1
  675. package/statistics/features/supported/loops/loops.js +1 -1
  676. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  677. package/statistics/features/supported/loops/post-process.js +3 -0
  678. package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
  679. package/statistics/features/supported/used-functions/used-functions.js +1 -1
  680. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  681. package/statistics/features/supported/used-packages/post-process.js +3 -0
  682. package/statistics/features/supported/values/post-process.d.ts +3 -0
  683. package/statistics/features/supported/values/post-process.js +3 -0
  684. package/statistics/features/supported/variables/post-process.d.ts +7 -1
  685. package/statistics/features/supported/variables/post-process.js +6 -0
  686. package/statistics/features/supported/variables/variables.js +1 -1
  687. package/statistics/meta-statistics.d.ts +8 -9
  688. package/statistics/output/file-provider.d.ts +5 -6
  689. package/statistics/output/file-provider.js +5 -6
  690. package/statistics/output/print-stats.d.ts +13 -1
  691. package/statistics/output/print-stats.js +12 -0
  692. package/statistics/output/statistics-file.d.ts +1 -2
  693. package/statistics/output/statistics-file.js +0 -1
  694. package/statistics/statistics.d.ts +3 -4
  695. package/statistics/statistics.js +4 -4
  696. package/statistics/summarizer/auto-detect.d.ts +3 -0
  697. package/statistics/summarizer/auto-detect.js +3 -0
  698. package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
  699. package/statistics/summarizer/post-process/clusterer.js +0 -2
  700. package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
  701. package/statistics/summarizer/post-process/file-based-count.js +0 -1
  702. package/statistics/summarizer/post-process/histogram.d.ts +0 -2
  703. package/statistics/summarizer/post-process/histogram.js +0 -2
  704. package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
  705. package/statistics/summarizer/post-process/post-process-output.js +0 -3
  706. package/statistics/summarizer/second-phase/process.d.ts +5 -3
  707. package/statistics/summarizer/second-phase/process.js +3 -1
  708. package/statistics/summarizer/summarizer.d.ts +1 -2
  709. package/util/assert.d.ts +56 -2
  710. package/util/assert.js +56 -2
  711. package/util/collections/arrays.d.ts +10 -5
  712. package/util/collections/arrays.js +10 -5
  713. package/util/collections/defaultmap.d.ts +11 -11
  714. package/util/collections/defaultmap.js +11 -11
  715. package/util/containers.d.ts +2 -7
  716. package/util/containers.js +0 -5
  717. package/util/diff-graph.d.ts +0 -1
  718. package/util/diff-graph.js +0 -1
  719. package/util/diff.d.ts +3 -1
  720. package/util/diff.js +3 -1
  721. package/util/files.d.ts +12 -12
  722. package/util/files.js +11 -11
  723. package/util/html-hover-over.d.ts +5 -0
  724. package/util/html-hover-over.js +5 -0
  725. package/util/json.d.ts +13 -0
  726. package/util/json.js +13 -0
  727. package/util/log.d.ts +2 -2
  728. package/util/log.js +2 -2
  729. package/util/mermaid/ast.d.ts +7 -3
  730. package/util/mermaid/ast.js +39 -8
  731. package/util/mermaid/cfg.d.ts +1 -1
  732. package/util/mermaid/cfg.js +1 -1
  733. package/util/mermaid/dfg.d.ts +12 -4
  734. package/util/mermaid/dfg.js +9 -1
  735. package/util/mermaid/mermaid.d.ts +6 -1
  736. package/util/mermaid/mermaid.js +6 -1
  737. package/util/numbers.d.ts +7 -0
  738. package/util/numbers.js +7 -0
  739. package/util/objects.d.ts +0 -2
  740. package/util/os.d.ts +3 -0
  741. package/util/os.js +3 -0
  742. package/util/parallel.d.ts +4 -4
  743. package/util/parallel.js +4 -4
  744. package/util/prefix.d.ts +0 -1
  745. package/util/prefix.js +0 -1
  746. package/util/quads.d.ts +14 -17
  747. package/util/quads.js +3 -5
  748. package/util/r-value.d.ts +10 -1
  749. package/util/r-value.js +21 -0
  750. package/util/random.d.ts +3 -0
  751. package/util/random.js +3 -0
  752. package/util/range.d.ts +9 -3
  753. package/util/range.js +15 -2
  754. package/util/schema.d.ts +14 -1
  755. package/util/schema.js +15 -2
  756. package/util/simple-df/dfg-view.d.ts +4 -1
  757. package/util/simple-df/dfg-view.js +4 -1
  758. package/util/summarizer.d.ts +9 -1
  759. package/util/summarizer.js +9 -0
  760. package/util/text/ansi.d.ts +3 -0
  761. package/util/text/ansi.js +3 -0
  762. package/util/text/args.d.ts +2 -4
  763. package/util/text/args.js +7 -5
  764. package/util/text/text.d.ts +4 -0
  765. package/util/text/text.js +4 -0
  766. package/util/text/time.d.ts +0 -1
  767. package/util/text/time.js +0 -1
  768. package/util/version.d.ts +12 -3
  769. package/util/version.js +12 -3
  770. package/abstract-interpretation/data-frame/domain.d.ts +0 -107
  771. package/abstract-interpretation/data-frame/domain.js +0 -315
  772. package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
  773. package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
  774. package/cli/repl/commands/repl-lineage.d.ts +0 -15
  775. package/cli/repl/commands/repl-lineage.js +0 -66
  776. package/cli/repl/server/messages/message-lineage.d.ts +0 -17
  777. package/cli/repl/server/messages/message-lineage.js +0 -25
  778. package/documentation/print-analyzer-wiki.d.ts +0 -1
  779. package/documentation/print-analyzer-wiki.js +0 -137
  780. package/documentation/print-capabilities-markdown.d.ts +0 -1
  781. package/documentation/print-cfg-wiki.d.ts +0 -1
  782. package/documentation/print-core-wiki.d.ts +0 -2
  783. package/documentation/print-dataflow-graph-wiki.d.ts +0 -1
  784. package/documentation/print-engines-wiki.d.ts +0 -1
  785. package/documentation/print-faq-wiki.d.ts +0 -1
  786. package/documentation/print-faq-wiki.js +0 -90
  787. package/documentation/print-interface-wiki.d.ts +0 -1
  788. package/documentation/print-linter-issue.d.ts +0 -1
  789. package/documentation/print-linter-wiki.d.ts +0 -1
  790. package/documentation/print-linting-and-testing-wiki.d.ts +0 -1
  791. package/documentation/print-normalized-ast-wiki.d.ts +0 -1
  792. package/documentation/print-onboarding-wiki.d.ts +0 -1
  793. package/documentation/print-query-wiki.d.ts +0 -1
  794. package/documentation/print-readme.d.ts +0 -1
  795. package/documentation/print-search-wiki.d.ts +0 -1
  796. package/documentation/print-search-wiki.js +0 -74
  797. package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
  798. package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
  799. package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
  800. package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
  801. package/util/formats/adapter-format.d.ts +0 -6
  802. package/util/formats/adapter-format.js +0 -3
  803. package/util/formats/adapter.d.ts +0 -18
  804. package/util/formats/adapter.js +0 -49
  805. package/util/formats/adapters/r-adapter.d.ts +0 -4
  806. package/util/formats/adapters/r-adapter.js +0 -7
  807. package/util/formats/adapters/rmd-adapter.d.ts +0 -26
  808. package/util/formats/adapters/rmd-adapter.js +0 -91
@@ -45,7 +45,7 @@ function retrieveAllCallsites(input, node, recursiveCalls) {
45
45
  function visitDefinitions(info, input) {
46
46
  const definitionStack = [];
47
47
  const allDefinitions = [];
48
- (0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
48
+ (0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
49
49
  if (node.type !== type_1.RType.FunctionDefinition) {
50
50
  return;
51
51
  }
@@ -1,3 +1,6 @@
1
1
  import type { FeatureStatisticsWithMeta } from '../../feature';
2
2
  import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
@@ -8,6 +8,9 @@ const post_processing_1 = require("../../post-processing");
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const summarizer_1 = require("../../../../util/summarizer");
11
+ /**
12
+ *
13
+ */
11
14
  function postProcess(featureRoot, info, outputPath, config) {
12
15
  const collected = {};
13
16
  const deepestNestingOut = fs_1.default.createWriteStream(path_1.default.join(outputPath, 'deepest-nesting-per-file.csv'));
@@ -11,7 +11,7 @@ const initialExpressionListInfo = {
11
11
  function visitLists(info, input) {
12
12
  let nest = -1; // we start with nesting 0
13
13
  let total = 0;
14
- (0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
14
+ (0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
15
15
  if (node.type === type_1.RType.ExpressionList) {
16
16
  nest++;
17
17
  total++;
@@ -25,7 +25,7 @@ const isImplicitLoop = /[lsvmt]?apply/;
25
25
  function visitLoops(info, input) {
26
26
  // holds number of loops and their nesting depths
27
27
  const loopStack = [];
28
- (0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
28
+ (0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
29
29
  switch (node.type) {
30
30
  case type_1.RType.Next:
31
31
  info.nextStatements++;
@@ -1,3 +1,6 @@
1
1
  import type { FeatureStatisticsWithMeta } from '../../feature';
2
2
  import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
@@ -10,6 +10,9 @@ const path_1 = __importDefault(require("path"));
10
10
  const fs_1 = __importDefault(require("fs"));
11
11
  const numbers_1 = require("../../../../util/numbers");
12
12
  const summarizer_1 = require("../../../../util/summarizer");
13
+ /**
14
+ *
15
+ */
13
16
  function postProcess(featureRoot, info, outputPath, config) {
14
17
  const collected = {
15
18
  forLoops: (0, common_syntax_probability_1.emptyCommonSyntaxTypeCounts)(() => []),
@@ -1,6 +1,6 @@
1
1
  import type { Feature } from '../../feature';
2
2
  import type { Writable } from 'ts-essentials';
3
- import type { CommonSyntaxTypeCounts } from '../../common-syntax-probability';
3
+ import { type CommonSyntaxTypeCounts } from '../../common-syntax-probability';
4
4
  declare const initialFunctionUsageInfo: {
5
5
  allFunctionCalls: number;
6
6
  args: Record<number, bigint | CommonSyntaxTypeCounts>;
@@ -50,7 +50,7 @@ function classifyArguments(args, existing) {
50
50
  function visitCalls(info, input) {
51
51
  const calls = [];
52
52
  const allCalls = [];
53
- (0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
53
+ (0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
54
54
  if (node.type !== type_1.RType.FunctionCall) {
55
55
  return;
56
56
  }
@@ -1,3 +1,6 @@
1
1
  import type { FeatureStatisticsWithMeta } from '../../feature';
2
2
  import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
@@ -12,6 +12,9 @@ const summarizer_1 = require("../../../../util/summarizer");
12
12
  const files_1 = require("../../../../util/files");
13
13
  const strings_1 = require("../../../../util/text/strings");
14
14
  const arrays_1 = require("../../../../util/collections/arrays");
15
+ /**
16
+ *
17
+ */
15
18
  function postProcess(featureRoot, info, outputPath, config) {
16
19
  const collected = {};
17
20
  for (const [filepath, data] of info.entries()) {
@@ -1,3 +1,6 @@
1
1
  import type { FeatureStatisticsWithMeta } from '../../feature';
2
2
  import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
@@ -11,6 +11,9 @@ const summarizer_1 = require("../../../../util/summarizer");
11
11
  const time_1 = require("../../../../util/text/time");
12
12
  const files_1 = require("../../../../util/files");
13
13
  const arrays_1 = require("../../../../util/collections/arrays");
14
+ /**
15
+ *
16
+ */
14
17
  function postProcess(featureRoot, info, outputPath, config) {
15
18
  const collected = {};
16
19
  for (const [filepath, data] of info.entries()) {
@@ -1,9 +1,15 @@
1
1
  import type { FeatureStatisticsWithMeta } from '../../feature';
2
- import type { SummarizedWithProject } from '../../post-processing';
2
+ import { type SummarizedWithProject } from '../../post-processing';
3
3
  import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
4
+ /**
5
+ *
6
+ */
4
7
  export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
5
8
  type VariableInfoMap = Map<string, SummarizedWithProject & {
6
9
  linePercentageInFile: number[][];
7
10
  }>;
11
+ /**
12
+ *
13
+ */
8
14
  export declare function writeVariableInfoToCsv(outputPath: string, filename: `${string}.csv`, data: VariableInfoMap): void;
9
15
  export {};
@@ -58,6 +58,9 @@ function collectInformation(info, config) {
58
58
  }
59
59
  return collected;
60
60
  }
61
+ /**
62
+ *
63
+ */
61
64
  function postProcess(featureRoot, info, outputPath, config) {
62
65
  const collected = collectInformation(info, config);
63
66
  writeVariableCountsToCsv(outputPath, collected);
@@ -65,6 +68,9 @@ function postProcess(featureRoot, info, outputPath, config) {
65
68
  collectDefinedVariables(featureRoot, info, config, outputPath);
66
69
  collectRedefinedVariables(featureRoot, info, config, outputPath);
67
70
  }
71
+ /**
72
+ *
73
+ */
68
74
  function writeVariableInfoToCsv(outputPath, filename, data) {
69
75
  const out = fs_1.default.createWriteStream(path_1.default.join(outputPath, filename));
70
76
  out.write(`variable,unique-projects,unique-files,${(0, summarizer_1.summarizedMeasurement2CsvHeader)('count')},${(0, summarizer_1.summarizedMeasurement2CsvHeader)('line-frac')}\n`);
@@ -15,7 +15,7 @@ const initialVariableInfo = {
15
15
  unknownVariables: 0
16
16
  };
17
17
  function visitVariables(info, input) {
18
- (0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
18
+ (0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
19
19
  if (node.type !== type_1.RType.Symbol || (0, r_symbol_1.isSpecialSymbol)(node)) {
20
20
  return;
21
21
  }
@@ -1,26 +1,25 @@
1
1
  import type { RParseRequestFromFile, RParseRequestFromText } from '../r-bridge/retriever';
2
2
  /**
3
3
  * Statistics on skipped files, the time required, and more.
4
- *
5
4
  * @see extractUsageStatistics
6
5
  * @see initialMetaStatistics
7
6
  */
8
7
  export interface MetaStatistics {
9
8
  /**
10
- * The number of requests that were parsed successfully
11
- */
9
+ * The number of requests that were parsed successfully
10
+ */
12
11
  successfulParsed: number;
13
12
  /**
14
- * The processing time for each request
15
- */
13
+ * The processing time for each request
14
+ */
16
15
  processingTimeMs: number[];
17
16
  /**
18
- * All failed requests (e.g., if they can not be converted to XML)
19
- */
17
+ * All failed requests (e.g., if they can not be converted to XML)
18
+ */
20
19
  failedRequests: (RParseRequestFromText | RParseRequestFromFile)[];
21
20
  /**
22
- * Number of lines with each individual line length consumed for each request
23
- */
21
+ * Number of lines with each individual line length consumed for each request
22
+ */
24
23
  lines: number[][];
25
24
  /**
26
25
  * The number of nodes in the normalized AST
@@ -7,7 +7,6 @@ export declare class DummyAppendProvider implements StatisticAppendProvider {
7
7
  private readonly map;
8
8
  /**
9
9
  * If you pass a map the dummy will log all append calls to the map, using the feature name and the appendage type as keys
10
- *
11
10
  * @param map - The map to log to
12
11
  */
13
12
  constructor(map?: DummyAppendMemoryMap | undefined);
@@ -25,13 +24,13 @@ export declare class StatisticFileProvider implements StatisticAppendProvider {
25
24
  private readonly connections;
26
25
  constructor(statisticsDirectory: string | undefined);
27
26
  /**
28
- * @param name - the name of the feature {@link Feature#name}
29
- * @param fn - the name of the feature-aspect to record
30
- */
27
+ * @param name - the name of the feature {@link Feature#name}
28
+ * @param fn - the name of the feature-aspect to record
29
+ */
31
30
  private statisticsFile;
32
31
  /**
33
- * Append the given content to the information for a feature of the given name and function.
34
- */
32
+ * Append the given content to the information for a feature of the given name and function.
33
+ */
35
34
  append(name: string, fn: AppendFnType, content: string): void;
36
35
  private getHandle;
37
36
  }
@@ -12,7 +12,6 @@ class DummyAppendProvider {
12
12
  map;
13
13
  /**
14
14
  * If you pass a map the dummy will log all append calls to the map, using the feature name and the appendage type as keys
15
- *
16
15
  * @param map - The map to log to
17
16
  */
18
17
  constructor(map = undefined) {
@@ -63,15 +62,15 @@ class StatisticFileProvider {
63
62
  });
64
63
  }
65
64
  /**
66
- * @param name - the name of the feature {@link Feature#name}
67
- * @param fn - the name of the feature-aspect to record
68
- */
65
+ * @param name - the name of the feature {@link Feature#name}
66
+ * @param fn - the name of the feature-aspect to record
67
+ */
69
68
  statisticsFile(name, fn) {
70
69
  return path_1.default.join(this.statisticsDirectory, name, `${fn}${exports.defaultStatisticsFileSuffix}`);
71
70
  }
72
71
  /**
73
- * Append the given content to the information for a feature of the given name and function.
74
- */
72
+ * Append the given content to the information for a feature of the given name and function.
73
+ */
75
74
  append(name, fn, content) {
76
75
  const descriptor = this.getHandle(name, String(fn));
77
76
  fs_1.default.appendFileSync(descriptor, content + '\n', 'utf8');
@@ -1,5 +1,5 @@
1
1
  import type { MetaStatistics } from '../meta-statistics';
2
- import type { FeatureKey, FeatureStatistics } from '../features/feature';
2
+ import { type FeatureKey, type FeatureStatistics } from '../features/feature';
3
3
  interface MinMaxAvgMedian {
4
4
  sum: number;
5
5
  min: number;
@@ -7,11 +7,23 @@ interface MinMaxAvgMedian {
7
7
  avg: number;
8
8
  median: number;
9
9
  }
10
+ /**
11
+ * Calculates the min, max, average and median of the given data set.
12
+ */
10
13
  export declare function minMaxAvgAndMedian(data: number[]): MinMaxAvgMedian;
14
+ /**
15
+ * Formats the given statistics as a string.
16
+ */
11
17
  export declare function statsString(data: MinMaxAvgMedian, suffix?: string): string;
18
+ /**
19
+ * Prints the given feature statistics to the console.
20
+ */
12
21
  export declare function printFeatureStatistics(statistics: {
13
22
  features: FeatureStatistics;
14
23
  meta: MetaStatistics;
15
24
  }, features?: 'all' | Set<FeatureKey>): void;
25
+ /**
26
+ * Prints a single feature statistics entry to the console.
27
+ */
16
28
  export declare function printFeatureStatisticsEntry(info: Record<string, unknown>): void;
17
29
  export {};
@@ -8,6 +8,9 @@ const ansi_1 = require("../../util/text/ansi");
8
8
  const json_1 = require("../../util/json");
9
9
  const feature_1 = require("../features/feature");
10
10
  const arrays_1 = require("../../util/collections/arrays");
11
+ /**
12
+ * Calculates the min, max, average and median of the given data set.
13
+ */
11
14
  function minMaxAvgAndMedian(data) {
12
15
  data = data.sort((a, b) => a - b);
13
16
  const sum = (0, arrays_1.arraySum)(data);
@@ -22,9 +25,15 @@ function minMaxAvgAndMedian(data) {
22
25
  function formatStatNumber(num) {
23
26
  return num === undefined ? '<?>' : Number(num.toFixed(3)).toLocaleString();
24
27
  }
28
+ /**
29
+ * Formats the given statistics as a string.
30
+ */
25
31
  function statsString(data, suffix = '') {
26
32
  return `[${formatStatNumber(data.min)}${suffix} .. ${formatStatNumber(data.max)}${suffix}] (avg: ${formatStatNumber(data.avg)}${suffix}, median: ${formatStatNumber(data.median)}${suffix})`;
27
33
  }
34
+ /**
35
+ * Prints the given feature statistics to the console.
36
+ */
28
37
  function printFeatureStatistics(statistics, features = 'all') {
29
38
  for (const feature of Object.keys(statistics.features)) {
30
39
  if (features !== 'all' && !features.has(feature)) {
@@ -48,6 +57,9 @@ function printFeatureStatistics(statistics, features = 'all') {
48
57
  `);
49
58
  }
50
59
  const pad = 3;
60
+ /**
61
+ * Prints a single feature statistics entry to the console.
62
+ */
51
63
  function printFeatureStatisticsEntry(info) {
52
64
  let longestKey = 0;
53
65
  let longestValue = 0;
@@ -1,4 +1,4 @@
1
- import type { DummyAppendMemoryMap, StatisticAppendProvider } from './file-provider';
1
+ import { type DummyAppendMemoryMap, type StatisticAppendProvider } from './file-provider';
2
2
  /**
3
3
  * Requires source information to be attached on parsing!
4
4
  * <p>
@@ -13,7 +13,6 @@ export declare let statisticsFileProvider: StatisticAppendProvider;
13
13
  export declare function initFileProvider(outputDirectory: string): void;
14
14
  /**
15
15
  * Either ignore the statistics or write them to a given map (e.g., for testing).
16
- *
17
16
  * @param map - The map to write to, will not persist calls if no map is given
18
17
  */
19
18
  export declare function initDummyFileProvider(map?: DummyAppendMemoryMap): void;
@@ -32,7 +32,6 @@ function initFileProvider(outputDirectory) {
32
32
  }
33
33
  /**
34
34
  * Either ignore the statistics or write them to a given map (e.g., for testing).
35
- *
36
35
  * @param map - The map to write to, will not persist calls if no map is given
37
36
  */
38
37
  function initDummyFileProvider(map) {
@@ -1,9 +1,9 @@
1
- import type { MetaStatistics } from './meta-statistics';
1
+ import { type MetaStatistics } from './meta-statistics';
2
2
  import type { RParseRequestFromFile, RParseRequestFromText } from '../r-bridge/retriever';
3
3
  import type { PipelineOutput } from '../core/steps/pipeline/pipeline';
4
4
  import { DEFAULT_DATAFLOW_PIPELINE } from '../core/steps/pipeline/default-pipelines';
5
5
  import type { RShell } from '../r-bridge/shell';
6
- import type { FeatureSelection, FeatureStatistics } from './features/feature';
6
+ import { type FeatureSelection, type FeatureStatistics } from './features/feature';
7
7
  import type { FlowrConfigOptions } from '../config';
8
8
  /**
9
9
  * By default, {@link extractUsageStatistics} requires a generator, but sometimes you already know all the files
@@ -13,13 +13,12 @@ export declare function staticRequests(...requests: (RParseRequestFromText | RPa
13
13
  type DataflowResult = PipelineOutput<typeof DEFAULT_DATAFLOW_PIPELINE>;
14
14
  /**
15
15
  * Extract all wanted statistic information from a set of requests using the presented R session.
16
- *
17
16
  * @param shell - The R session to use
18
17
  * @param config - The flowr config
19
18
  * @param onRequest - A callback that is called at the beginning of each request, this may be used to debug the requests.
20
19
  * @param features - The features to extract (see {@link allFeatureNames}).
21
20
  * @param requests - The requests to extract the features from. May generate them on demand (e.g., by traversing a folder).
22
- * If your request is statically known, you can use {@link staticRequests} to create this generator.
21
+ * If your request is statically known, you can use {@link staticRequests} to create this generator.
23
22
  * @param rootPath - The root path to the project, this is used to relativize the file paths in the statistics.
24
23
  */
25
24
  export declare function extractUsageStatistics<T extends RParseRequestFromText | RParseRequestFromFile>(shell: RShell, config: FlowrConfigOptions, onRequest: (request: T) => void, features: FeatureSelection, requests: AsyncGenerator<T>, rootPath?: string): Promise<{
@@ -14,6 +14,7 @@ const pipeline_executor_1 = require("../core/pipeline-executor");
14
14
  const default_pipelines_1 = require("../core/steps/pipeline/default-pipelines");
15
15
  const feature_1 = require("./features/feature");
16
16
  const convert_values_1 = require("../r-bridge/lang-4.x/convert-values");
17
+ const flowr_analyzer_context_1 = require("../project/context/flowr-analyzer-context");
17
18
  /**
18
19
  * By default, {@link extractUsageStatistics} requires a generator, but sometimes you already know all the files
19
20
  * that you want to process. This function simply reps your requests as a generator.
@@ -28,13 +29,12 @@ function staticRequests(...requests) {
28
29
  }
29
30
  /**
30
31
  * Extract all wanted statistic information from a set of requests using the presented R session.
31
- *
32
32
  * @param shell - The R session to use
33
33
  * @param config - The flowr config
34
34
  * @param onRequest - A callback that is called at the beginning of each request, this may be used to debug the requests.
35
35
  * @param features - The features to extract (see {@link allFeatureNames}).
36
36
  * @param requests - The requests to extract the features from. May generate them on demand (e.g., by traversing a folder).
37
- * If your request is statically known, you can use {@link staticRequests} to create this generator.
37
+ * If your request is statically known, you can use {@link staticRequests} to create this generator.
38
38
  * @param rootPath - The root path to the project, this is used to relativize the file paths in the statistics.
39
39
  */
40
40
  async function extractUsageStatistics(shell, config, onRequest, features, requests, rootPath) {
@@ -83,8 +83,8 @@ function processMetaOnSuccessful(meta, request) {
83
83
  const parser = new xmldom_1.DOMParser();
84
84
  async function extractSingle(result, shell, request, features, suffixFilePath, config) {
85
85
  const slicerOutput = await new pipeline_executor_1.PipelineExecutor(default_pipelines_1.DEFAULT_DATAFLOW_PIPELINE, {
86
- request, parser: shell
87
- }, config).allRemainingSteps();
86
+ context: (0, flowr_analyzer_context_1.contextFromInput)(request, config), parser: shell
87
+ }).allRemainingSteps();
88
88
  // retrieve parsed xml through (legacy) xmlparsedata
89
89
  const suffix = request.request === 'file' ? ', encoding="utf-8"' : '';
90
90
  shell.sendCommands(`try(flowr_parsed<-parse(${request.request}=${JSON.stringify(request.content)},keep.source=TRUE${suffix}),silent=FALSE)`, 'try(flowr_output<-xmlparsedata::xml_parse_data(flowr_parsed,includeText=TRUE,pretty=FALSE),silent=FALSE)');
@@ -1,2 +1,5 @@
1
1
  import { SummarizerType } from '../../util/summarizer';
2
+ /**
3
+ * Auto-detects the summarization type based on the input path.
4
+ */
2
5
  export declare function detectSummarizationType(inputPath: string): Promise<SummarizerType>;
@@ -7,6 +7,9 @@ exports.detectSummarizationType = detectSummarizationType;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const summarizer_1 = require("./summarizer");
9
9
  const log_1 = require("../../util/log");
10
+ /**
11
+ * Auto-detects the summarization type based on the input path.
12
+ */
10
13
  async function detectSummarizationType(inputPath) {
11
14
  if (fs_1.default.statSync(inputPath).isFile()) {
12
15
  log_1.log.info(`Detected benchmark summarization with single file ${inputPath}`);
@@ -11,14 +11,13 @@ export interface ClusterReport extends MergeableRecord {
11
11
  /** Maps each context encountered (i.e., every file that contains something associated with the feature) to a unique id, used in the {@link ClusterReport#valueInfoMap|valueInfoMap}. */
12
12
  contextIdMap: ClusterContextIdMap;
13
13
  /**
14
- * Counts which contexts contained which values of a feature.
15
- * For example, that `<-` occurred in files with ids `[12, 42, 19, 19]` (i.e., the context with the id 19 contained it twice).
16
- */
14
+ * Counts which contexts contained which values of a feature.
15
+ * For example, that `<-` occurred in files with ids `[12, 42, 19, 19]` (i.e., the context with the id 19 contained it twice).
16
+ */
17
17
  valueInfoMap: ClusterValueInfoMap;
18
18
  }
19
19
  /**
20
20
  * Takes a statistics file like `statistics-out/top-2023-01-01-00-00-00/Assignments/assignmentOperator.txt` and clusters the values by context
21
- *
22
21
  * @param filepath - Filepath of the statistics file
23
22
  * @param contextIdMap - The id map to use, can use an existing one to reuse ids for same contexts spreading over multiple input files.
24
23
  * `undefined` is used for unknown contexts. This map allows us to reference contexts with a way shorter identifier (vs. the full file path).
@@ -7,7 +7,6 @@ exports.clusterStatisticsOutput = clusterStatisticsOutput;
7
7
  /**
8
8
  * Reading the given file line by line and expecting constructs of {@link StatisticsOutputFormat},
9
9
  * this module is responsible for identifying interesting groups of same data.
10
- *
11
10
  * @module
12
11
  */
13
12
  const n_readlines_1 = __importDefault(require("n-readlines"));
@@ -15,7 +14,6 @@ const defaultmap_1 = require("../../../util/collections/defaultmap");
15
14
  const decorate_1 = require("../../../r-bridge/lang-4.x/ast/model/processing/decorate");
16
15
  /**
17
16
  * Takes a statistics file like `statistics-out/top-2023-01-01-00-00-00/Assignments/assignmentOperator.txt` and clusters the values by context
18
- *
19
17
  * @param filepath - Filepath of the statistics file
20
18
  * @param contextIdMap - The id map to use, can use an existing one to reuse ids for same contexts spreading over multiple input files.
21
19
  * `undefined` is used for unknown contexts. This map allows us to reference contexts with a way shorter identifier (vs. the full file path).
@@ -7,7 +7,6 @@ export interface FileBasedTable {
7
7
  * The purpose of this function is to reformat {@link ClusterReport} in way that lists file-based contributions.
8
8
  * E.g., "the file with id 12 contained the assignment with `<-` 3 times".
9
9
  * Feature Values are listed in the header.
10
- *
11
10
  * @param report - the report to reformat
12
11
  */
13
12
  export declare function fileBasedCount(report: ClusterReport): FileBasedTable;
@@ -10,7 +10,6 @@ const fs_1 = __importDefault(require("fs"));
10
10
  * The purpose of this function is to reformat {@link ClusterReport} in way that lists file-based contributions.
11
11
  * E.g., "the file with id 12 contained the assignment with `<-` 3 times".
12
12
  * Feature Values are listed in the header.
13
- *
14
13
  * @param report - the report to reformat
15
14
  */
16
15
  function fileBasedCount(report) {
@@ -28,7 +28,6 @@ export interface Histogram {
28
28
  *
29
29
  * Let's suppose you want histograms for the Assignments feature.
30
30
  * By default, for each clustered value, a histogram is produced (can be configured by `filter`).
31
- *
32
31
  * @param report - The report to collect histogram information from
33
32
  * @param binSize - Size of each bin (see {@link histogramFromNumbers} for details on why we do not specify the bin-count)
34
33
  * @param relateValuesToNumberOfLines - If true, each value (like `<-` appeared in file 'x' exactly `N` times) will be divided by the number of lines in the file 'x'.
@@ -52,7 +51,6 @@ export declare function histogramFromNumbers(name: string, binSize: number, valu
52
51
  * - `from` - The exclusive lower bound of the bin
53
52
  * - `to` - The inclusive upper bound of the bin
54
53
  * - a column with the name of each histogram, containing its count of values in the corresponding bin
55
- *
56
54
  * @param histograms - The histogram to convert (assumed to have the same ranges and bins)
57
55
  * @param countAsDensity - If true, the count is divided by the total number of values (individually for each histogram, similar to pgfplots `hist/density` option)
58
56
  */
@@ -17,7 +17,6 @@ const arrays_1 = require("../../../util/collections/arrays");
17
17
  *
18
18
  * Let's suppose you want histograms for the Assignments feature.
19
19
  * By default, for each clustered value, a histogram is produced (can be configured by `filter`).
20
- *
21
20
  * @param report - The report to collect histogram information from
22
21
  * @param binSize - Size of each bin (see {@link histogramFromNumbers} for details on why we do not specify the bin-count)
23
22
  * @param relateValuesToNumberOfLines - If true, each value (like `<-` appeared in file 'x' exactly `N` times) will be divided by the number of lines in the file 'x'.
@@ -72,7 +71,6 @@ function histogramFromNumbers(name, binSize, values) {
72
71
  * - `from` - The exclusive lower bound of the bin
73
72
  * - `to` - The inclusive upper bound of the bin
74
73
  * - a column with the name of each histogram, containing its count of values in the corresponding bin
75
- *
76
74
  * @param histograms - The histogram to convert (assumed to have the same ranges and bins)
77
75
  * @param countAsDensity - If true, the count is divided by the total number of values (individually for each histogram, similar to pgfplots `hist/density` option)
78
76
  */
@@ -1,11 +1,9 @@
1
- import type { ClusterReport } from './clusterer';
2
- import type { FeatureSelection } from '../../features/feature';
1
+ import { type ClusterReport } from './clusterer';
2
+ import { type FeatureSelection } from '../../features/feature';
3
3
  /**
4
4
  * Post process the collections in a given folder, reducing them in a memory preserving way.
5
- *
6
5
  * @param filepath - Path to the root file of the data collection like `statistics-out/top-2023-01-01-00-00-00/`
7
6
  * @param features - Collection of features to post process, expects corresponding folders to exist
8
- *
9
7
  * @returns non-aggregated reports for each sub-key of each feature
10
8
  */
11
9
  export declare function postProcessFeatureFolder(filepath: string, features: FeatureSelection): ClusterReport[];
@@ -17,10 +17,8 @@ const file_provider_1 = require("../../output/file-provider");
17
17
  const arrays_1 = require("../../../util/collections/arrays");
18
18
  /**
19
19
  * Post process the collections in a given folder, reducing them in a memory preserving way.
20
- *
21
20
  * @param filepath - Path to the root file of the data collection like `statistics-out/top-2023-01-01-00-00-00/`
22
21
  * @param features - Collection of features to post process, expects corresponding folders to exist
23
- *
24
22
  * @returns non-aggregated reports for each sub-key of each feature
25
23
  */
26
24
  function postProcessFeatureFolder(filepath, features) {
@@ -39,7 +37,6 @@ function postProcessFeatureFolder(filepath, features) {
39
37
  }
40
38
  /**
41
39
  * Process a single feature folder like `Assignments/`
42
- *
43
40
  * @param filepath - Same as the input to {@link postProcessFeatureFolder}
44
41
  * @param feature - The (single) feature to process
45
42
  */
@@ -1,10 +1,12 @@
1
1
  import type { StatisticsSummarizerConfiguration } from '../summarizer';
2
- import type { CommonSummarizerConfiguration } from '../../../util/summarizer';
3
- import type { FeatureStatisticsWithMeta } from '../../features/feature';
2
+ import { type CommonSummarizerConfiguration } from '../../../util/summarizer';
3
+ import { type FeatureStatisticsWithMeta } from '../../features/feature';
4
+ /**
5
+ *
6
+ */
4
7
  export declare function postProcessFeatures(config: StatisticsSummarizerConfiguration, filepath: string, outputPath: string, logger: (message: string) => void, metaFeatureInformation: Map<string, FeatureStatisticsWithMeta>): void;
5
8
  /**
6
9
  * Post process the collections in a given folder, retrieving the final summaries.
7
- *
8
10
  * @param logger - The logger to use for outputs
9
11
  * @param filepath - Path to the root file of the data collection (contains all the archives)
10
12
  * @param config - Configuration of the summarizer
@@ -13,6 +13,9 @@ const arrays_1 = require("../../../util/collections/arrays");
13
13
  const files_1 = require("../../../util/files");
14
14
  const assert_1 = require("../../../util/assert");
15
15
  const feature_1 = require("../../features/feature");
16
+ /**
17
+ *
18
+ */
16
19
  function postProcessFeatures(config, filepath, outputPath, logger, metaFeatureInformation) {
17
20
  for (const featureName of config.featuresToUse) {
18
21
  const featureInfo = feature_1.ALL_FEATURES[featureName];
@@ -66,7 +69,6 @@ function postProcessMeta(config, filepath, outputPath, logger, metaFeatureInform
66
69
  }
67
70
  /**
68
71
  * Post process the collections in a given folder, retrieving the final summaries.
69
- *
70
72
  * @param logger - The logger to use for outputs
71
73
  * @param filepath - Path to the root file of the data collection (contains all the archives)
72
74
  * @param config - Configuration of the summarizer
@@ -1,5 +1,4 @@
1
- import type { CommonSummarizerConfiguration } from '../../util/summarizer';
2
- import { Summarizer } from '../../util/summarizer';
1
+ import { type CommonSummarizerConfiguration, Summarizer } from '../../util/summarizer';
3
2
  import type { FeatureSelection } from '../features/feature';
4
3
  export interface StatisticsSummarizerConfiguration extends CommonSummarizerConfiguration {
5
4
  /**