@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,164 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetBoundedSetDomain = void 0;
4
- const set_1 = require("../../util/collections/set");
5
- const abstract_domain_1 = require("./abstract-domain");
6
- const lattice_1 = require("./lattice");
7
- /**
8
- * The set bounded set abstract domain as sets capturing possible values of the concrete set bounded by a `limit` for the maximum number of inferred values.
9
- * The Bottom element is defined as the{@link Bottom} and the Top element is defined as {@link Top} symbol.
10
- * @template T - Type of the values in the abstract domain
11
- * @template Value - Type of the constraint in the abstract domain (Top, Bottom, or an actual value)
12
- */
13
- class SetBoundedSetDomain {
14
- limit;
15
- _value;
16
- constructor(value, limit = abstract_domain_1.DEFAULT_INFERENCE_LIMIT) {
17
- if (value !== lattice_1.Top && value !== lattice_1.Bottom) {
18
- this._value = (value.size > limit ? lattice_1.Top : new Set(value));
19
- }
20
- else {
21
- this._value = value;
22
- }
23
- this.limit = limit;
24
- }
25
- get value() {
26
- return this._value;
27
- }
28
- static top(limit) {
29
- return new SetBoundedSetDomain(lattice_1.Top, limit);
30
- }
31
- static bottom(limit) {
32
- return new SetBoundedSetDomain(lattice_1.Bottom, limit);
33
- }
34
- static abstract(concrete, limit) {
35
- if (concrete === lattice_1.Top) {
36
- return SetBoundedSetDomain.top(limit);
37
- }
38
- else if (concrete.size === 0) {
39
- return SetBoundedSetDomain.bottom(limit);
40
- }
41
- return new SetBoundedSetDomain(concrete.values().reduce((result, set) => result.union(set)), limit);
42
- }
43
- top() {
44
- return SetBoundedSetDomain.top(this.limit);
45
- }
46
- bottom() {
47
- return SetBoundedSetDomain.bottom(this.limit);
48
- }
49
- equals(other) {
50
- return this.value === other.value || (this.isValue() && other.isValue() && (0, set_1.setEquals)(this.value, other.value));
51
- }
52
- leq(other) {
53
- return this.value === lattice_1.Bottom || other.value === lattice_1.Top || (this.isValue() && other.isValue() && this.value.isSubsetOf(other.value));
54
- }
55
- join(...values) {
56
- const result = new SetBoundedSetDomain(this.value, this.limit);
57
- for (const other of values) {
58
- if (result.value === lattice_1.Top || other.value === lattice_1.Top) {
59
- result._value = lattice_1.Top;
60
- }
61
- else if (result.value === lattice_1.Bottom) {
62
- result._value = other.value;
63
- }
64
- else if (other.value === lattice_1.Bottom) {
65
- result._value = result.value;
66
- }
67
- else {
68
- const join = result.value.union(other.value);
69
- result._value = join.size > this.limit ? lattice_1.Top : join;
70
- }
71
- }
72
- return result;
73
- }
74
- meet(...values) {
75
- const result = new SetBoundedSetDomain(this.value, this.limit);
76
- for (const other of values) {
77
- if (result.value === lattice_1.Bottom || other.value === lattice_1.Bottom) {
78
- result._value = lattice_1.Bottom;
79
- }
80
- else if (result.value === lattice_1.Top) {
81
- result._value = other.value;
82
- }
83
- else if (other.value === lattice_1.Top) {
84
- result._value = result.value;
85
- }
86
- else {
87
- result._value = result.value.intersection(other.value);
88
- }
89
- }
90
- return result;
91
- }
92
- /**
93
- * Subtracts another abstract value from the current abstract value by removing all elements of the other abstract value from the current abstract value.
94
- */
95
- subtract(other) {
96
- if (this.value === lattice_1.Top) {
97
- return this.top();
98
- }
99
- else if (this.value === lattice_1.Bottom) {
100
- return this.bottom();
101
- }
102
- else if (other.value === lattice_1.Top || other.value === lattice_1.Bottom) {
103
- return new SetBoundedSetDomain(this.value, this.limit);
104
- }
105
- else {
106
- return new SetBoundedSetDomain(this.value.difference(other.value), this.limit);
107
- }
108
- }
109
- widen(other) {
110
- if (this.value === lattice_1.Bottom) {
111
- return new SetBoundedSetDomain(other.value, this.limit);
112
- }
113
- else if (other.value === lattice_1.Bottom) {
114
- return new SetBoundedSetDomain(this.value, this.limit);
115
- }
116
- return other.leq(this) ? new SetBoundedSetDomain(this.value, this.limit) : this.top();
117
- }
118
- narrow(other) {
119
- if (this.value === lattice_1.Bottom || other.value === lattice_1.Bottom) {
120
- return this.bottom();
121
- }
122
- return this.isTop() ? other : this;
123
- }
124
- concretize(limit = abstract_domain_1.DEFAULT_INFERENCE_LIMIT) {
125
- if (this.value === lattice_1.Bottom) {
126
- return new Set();
127
- }
128
- else if (this.value === lattice_1.Top || 2 ** (this.value.size) > limit) {
129
- return lattice_1.Top;
130
- }
131
- const subsets = [new Set()];
132
- for (const element of this.value.values()) {
133
- const newSubsets = subsets.map(subset => new Set([...subset, element]));
134
- for (const subset of newSubsets) {
135
- subsets.push(subset);
136
- }
137
- }
138
- return new Set(subsets);
139
- }
140
- abstract(concrete) {
141
- return SetBoundedSetDomain.abstract(concrete, this.limit);
142
- }
143
- toString() {
144
- if (this.value === lattice_1.Top) {
145
- return '⊤';
146
- }
147
- else if (this.value === lattice_1.Bottom) {
148
- return '⊥';
149
- }
150
- const string = this.value.values().map(abstract_domain_1.domainElementToString).toArray().join(', ');
151
- return `{${string}}`;
152
- }
153
- isTop() {
154
- return this.value === lattice_1.Top;
155
- }
156
- isBottom() {
157
- return this.value == lattice_1.Bottom;
158
- }
159
- isValue() {
160
- return this.value !== lattice_1.Top && this.value !== lattice_1.Bottom;
161
- }
162
- }
163
- exports.SetBoundedSetDomain = SetBoundedSetDomain;
164
- //# sourceMappingURL=set-bounded-set-domain.js.map
@@ -1,15 +0,0 @@
1
- import type { ReplCommand } from './repl-main';
2
- import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
3
- import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
4
- import type { DataflowGraph } from '../../../dataflow/graph/graph';
5
- import type { AstIdMap } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
6
- /**
7
- * Get the lineage of a node in the dataflow graph
8
- *
9
- * @param criterion - The criterion to get the lineage of
10
- * @param graph - The dataflow graph to search in
11
- * @param idMap - The ID map to use for resolving the criterion (will default to that shipped with the dfgraph)
12
- * @returns The lineage of the node represented as a set of node ids
13
- */
14
- export declare function getLineage(criterion: SingleSlicingCriterion, graph: DataflowGraph, idMap?: AstIdMap): Set<NodeId>;
15
- export declare const lineageCommand: ReplCommand;
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lineageCommand = void 0;
4
- exports.getLineage = getLineage;
5
- const default_pipelines_1 = require("../../../core/steps/pipeline/default-pipelines");
6
- const retriever_1 = require("../../../r-bridge/retriever");
7
- const parse_1 = require("../../../slicing/criterion/parse");
8
- const edge_1 = require("../../../dataflow/graph/edge");
9
- const assert_1 = require("../../../util/assert");
10
- function splitAt(str, idx) {
11
- return [str.slice(0, idx), str.slice(idx)];
12
- }
13
- async function getDfg(config, parser, remainingLine) {
14
- return await (0, default_pipelines_1.createDataflowPipeline)(parser, {
15
- request: (0, retriever_1.requestFromInput)(remainingLine.trim())
16
- }, config).allRemainingSteps();
17
- }
18
- function filterRelevantEdges(edge) {
19
- return (0, edge_1.edgeIncludesType)(edge_1.EdgeType.DefinedBy | edge_1.EdgeType.DefinedByOnCall | edge_1.EdgeType.Returns | edge_1.EdgeType.Reads, edge.types);
20
- }
21
- function pushRelevantEdges(queue, outgoingEdges) {
22
- queue.push(...[...outgoingEdges].filter(([_, edge]) => filterRelevantEdges(edge)));
23
- }
24
- /**
25
- * Get the lineage of a node in the dataflow graph
26
- *
27
- * @param criterion - The criterion to get the lineage of
28
- * @param graph - The dataflow graph to search in
29
- * @param idMap - The ID map to use for resolving the criterion (will default to that shipped with the dfgraph)
30
- * @returns The lineage of the node represented as a set of node ids
31
- */
32
- function getLineage(criterion, graph, idMap) {
33
- idMap ??= graph.idMap;
34
- (0, assert_1.guard)(idMap !== undefined, 'The ID map is required to get the lineage of a node');
35
- const src = graph.get((0, parse_1.slicingCriterionToId)(criterion, idMap));
36
- (0, assert_1.guard)(src !== undefined, 'The ID pointed to by the criterion does not exist in the dataflow graph');
37
- const [vertex, outgoingEdges] = src;
38
- const result = new Set([vertex.id]);
39
- const edgeQueue = [];
40
- pushRelevantEdges(edgeQueue, outgoingEdges);
41
- while (edgeQueue.length > 0) {
42
- const [target] = edgeQueue.shift();
43
- if (result.has(target)) {
44
- continue;
45
- }
46
- result.add(target);
47
- const outgoingEdges = graph.outgoingEdges(target);
48
- if (outgoingEdges !== undefined) {
49
- pushRelevantEdges(edgeQueue, outgoingEdges);
50
- }
51
- }
52
- return result;
53
- }
54
- exports.lineageCommand = {
55
- description: 'Get the lineage of an R object',
56
- usesAnalyzer: false,
57
- usageExample: ':lineage',
58
- aliases: ['lin'],
59
- script: false,
60
- fn: async ({ output, parser, remainingLine, config }) => {
61
- const [criterion, rest] = splitAt(remainingLine, remainingLine.indexOf(' '));
62
- const { dataflow: dfg } = await getDfg(config, parser, rest);
63
- const lineageIds = getLineage(criterion, dfg.graph);
64
- output.stdout([...lineageIds].join('\n'));
65
- }
66
- };
67
- //# sourceMappingURL=repl-lineage.js.map
@@ -1,17 +0,0 @@
1
- import type { SingleSlicingCriterion } from '../../../../slicing/criterion/parse';
2
- import type { IdMessageBase, MessageDefinition } from './all-messages';
3
- import type { NodeId } from '../../../../r-bridge/lang-4.x/ast/model/processing/node-id';
4
- export interface LineageRequestMessage extends IdMessageBase {
5
- type: 'request-lineage';
6
- /** The {@link FileAnalysisRequestMessage#filetoken} of the file/data */
7
- filetoken: string;
8
- /** The criterion to start the lineage from */
9
- criterion: SingleSlicingCriterion;
10
- }
11
- export declare const requestLineageMessage: MessageDefinition<LineageRequestMessage>;
12
- export interface LineageResponseMessage extends IdMessageBase {
13
- type: 'response-lineage';
14
- /** The lineage of the given criterion. With this being the representation of a set, there is no guarantee about order. */
15
- lineage: NodeId[];
16
- }
17
- export declare const responseLineageMessage: MessageDefinition<LineageResponseMessage>;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.responseLineageMessage = exports.requestLineageMessage = void 0;
7
- const joi_1 = __importDefault(require("joi"));
8
- exports.requestLineageMessage = {
9
- type: 'request-lineage',
10
- schema: joi_1.default.object({
11
- type: joi_1.default.string().valid('request-lineage').required().description('The type of the message.'),
12
- id: joi_1.default.string().optional().description('If you give the id, the response will be sent to the client with the same id.'),
13
- filetoken: joi_1.default.string().required().description('The filetoken of the file/data retrieved from the analysis request.'),
14
- criterion: joi_1.default.string().required().description('The criterion to start the lineage from.')
15
- })
16
- };
17
- exports.responseLineageMessage = {
18
- type: 'response-lineage',
19
- schema: joi_1.default.object({
20
- type: joi_1.default.string().valid('response-lineage').required(),
21
- id: joi_1.default.string().optional().description('The id of the message, will be the same for the request.'),
22
- lineage: joi_1.default.array().items(joi_1.default.string()).required().description('The lineage of the given criterion.')
23
- })
24
- };
25
- //# sourceMappingURL=message-lineage.js.map
@@ -1,3 +0,0 @@
1
- import type { LineageQuery, LineageQueryResult } from './lineage-query-format';
2
- import type { BasicQueryData } from '../../base-query-format';
3
- export declare function executeLineageQuery({ analyzer }: BasicQueryData, queries: readonly LineageQuery[]): Promise<LineageQueryResult>;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.executeLineageQuery = executeLineageQuery;
4
- const log_1 = require("../../../util/log");
5
- const repl_lineage_1 = require("../../../cli/repl/commands/repl-lineage");
6
- async function executeLineageQuery({ analyzer }, queries) {
7
- const start = Date.now();
8
- const result = {};
9
- for (const { criterion } of queries) {
10
- if (result[criterion]) {
11
- log_1.log.warn('Duplicate criterion in lineage query:', criterion);
12
- }
13
- result[criterion] = (0, repl_lineage_1.getLineage)(criterion, (await analyzer.dataflow()).graph, (await analyzer.normalize()).idMap);
14
- }
15
- return {
16
- '.meta': {
17
- timing: Date.now() - start
18
- },
19
- lineages: result
20
- };
21
- }
22
- //# sourceMappingURL=lineage-query-executor.js.map
@@ -1,22 +0,0 @@
1
- import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
2
- import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
3
- import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
4
- import Joi from 'joi';
5
- import { executeLineageQuery } from './lineage-query-executor';
6
- /**
7
- * Calculates the lineage of the given criterion.
8
- */
9
- export interface LineageQuery extends BaseQueryFormat {
10
- readonly type: 'lineage';
11
- readonly criterion: SingleSlicingCriterion;
12
- }
13
- export interface LineageQueryResult extends BaseQueryResult {
14
- /** Maps each criterion to the found lineage, duplicates are ignored. */
15
- readonly lineages: Record<SingleSlicingCriterion, Set<NodeId>>;
16
- }
17
- export declare const LineageQueryDefinition: {
18
- readonly executor: typeof executeLineageQuery;
19
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
20
- readonly schema: Joi.ObjectSchema<any>;
21
- readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
22
- };
@@ -1,31 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.LineageQueryDefinition = void 0;
7
- const ansi_1 = require("../../../util/text/ansi");
8
- const time_1 = require("../../../util/text/time");
9
- const joi_1 = __importDefault(require("joi"));
10
- const lineage_query_executor_1 = require("./lineage-query-executor");
11
- const query_print_1 = require("../../query-print");
12
- exports.LineageQueryDefinition = {
13
- executor: lineage_query_executor_1.executeLineageQuery,
14
- asciiSummarizer: (formatter, _analyzer, queryResults, result) => {
15
- const out = queryResults;
16
- result.push(`Query: ${(0, ansi_1.bold)('lineage', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`);
17
- for (const [criteria, lineage] of Object.entries(out.lineages)) {
18
- result.push(` ╰ ${criteria}: {${(0, query_print_1.summarizeIdsIfTooLong)(formatter, [...lineage])}}`);
19
- }
20
- return true;
21
- },
22
- schema: joi_1.default.object({
23
- type: joi_1.default.string().valid('lineage').required().description('The type of the query.'),
24
- criterion: joi_1.default.string().required().description('The slicing criterion of the node to get the lineage of.')
25
- }).description('Lineage query used to find the lineage of a node in the dataflow graph'),
26
- flattenInvolvedNodes: (queryResults) => {
27
- const out = queryResults;
28
- return Object.values(out.lineages).flatMap(lineage => [...lineage]);
29
- }
30
- };
31
- //# sourceMappingURL=lineage-query-format.js.map