@eagleoutice/flowr 2.6.1 → 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 (681) hide show
  1. package/README.md +131 -30
  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 +15 -10
  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/repl/commands/repl-commands.d.ts +13 -0
  73. package/cli/repl/commands/repl-commands.js +13 -2
  74. package/cli/repl/commands/repl-execute.d.ts +4 -0
  75. package/cli/repl/commands/repl-execute.js +6 -2
  76. package/cli/repl/commands/repl-main.d.ts +15 -9
  77. package/cli/repl/commands/repl-parse.js +2 -2
  78. package/cli/repl/commands/repl-query.js +16 -5
  79. package/cli/repl/core.d.ts +24 -6
  80. package/cli/repl/core.js +28 -19
  81. package/cli/repl/execute.d.ts +0 -2
  82. package/cli/repl/execute.js +0 -2
  83. package/cli/repl/parser/slice-query-parser.d.ts +14 -0
  84. package/cli/repl/parser/slice-query-parser.js +34 -0
  85. package/cli/repl/print-version.d.ts +6 -0
  86. package/cli/repl/print-version.js +6 -0
  87. package/cli/repl/server/compact.d.ts +8 -0
  88. package/cli/repl/server/compact.js +8 -0
  89. package/cli/repl/server/connection.d.ts +4 -3
  90. package/cli/repl/server/connection.js +3 -31
  91. package/cli/repl/server/messages/all-messages.d.ts +1 -3
  92. package/cli/repl/server/messages/all-messages.js +0 -1
  93. package/cli/repl/server/messages/message-analysis.d.ts +0 -2
  94. package/cli/repl/server/messages/message-query.d.ts +1 -1
  95. package/cli/repl/server/messages/message-repl.d.ts +0 -1
  96. package/cli/repl/server/send.d.ts +6 -0
  97. package/cli/repl/server/send.js +6 -0
  98. package/cli/repl/server/server.d.ts +1 -1
  99. package/cli/repl/server/validate.d.ts +10 -1
  100. package/cli/repl/server/validate.js +9 -0
  101. package/cli/run-script.d.ts +1 -2
  102. package/cli/run-script.js +0 -1
  103. package/cli/script-core/statistics-core.d.ts +3 -0
  104. package/cli/script-core/statistics-core.js +3 -0
  105. package/cli/script-core/statistics-helper-core.d.ts +4 -1
  106. package/cli/script-core/statistics-helper-core.js +3 -0
  107. package/cli/script-core/summarizer-core.d.ts +3 -0
  108. package/cli/script-core/summarizer-core.js +3 -0
  109. package/cli/summarizer-app.d.ts +2 -3
  110. package/cli/summarizer-app.js +2 -3
  111. package/config.d.ts +17 -3
  112. package/config.js +15 -0
  113. package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
  114. package/control-flow/basic-cfg-guided-visitor.js +0 -1
  115. package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
  116. package/control-flow/control-flow-graph.d.ts +20 -12
  117. package/control-flow/control-flow-graph.js +16 -4
  118. package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
  119. package/control-flow/diff-cfg.d.ts +3 -5
  120. package/control-flow/diff-cfg.js +0 -1
  121. package/control-flow/extract-cfg.d.ts +3 -6
  122. package/control-flow/extract-cfg.js +0 -3
  123. package/control-flow/happens-before.d.ts +1 -1
  124. package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -31
  125. package/control-flow/semantic-cfg-guided-visitor.js +0 -28
  126. package/control-flow/simple-visitor.d.ts +1 -3
  127. package/control-flow/simple-visitor.js +0 -2
  128. package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
  129. package/control-flow/useless-loop.d.ts +0 -3
  130. package/control-flow/useless-loop.js +2 -5
  131. package/core/pipeline-executor.d.ts +8 -16
  132. package/core/pipeline-executor.js +9 -18
  133. package/core/print/dataflow-printer.d.ts +19 -0
  134. package/core/print/dataflow-printer.js +19 -0
  135. package/core/print/normalize-printer.d.ts +21 -1
  136. package/core/print/normalize-printer.js +20 -0
  137. package/core/print/parse-printer.d.ts +6 -1
  138. package/core/print/parse-printer.js +5 -0
  139. package/core/print/print.d.ts +0 -1
  140. package/core/print/print.js +0 -1
  141. package/core/print/slice-diff-ansi.d.ts +3 -0
  142. package/core/print/slice-diff-ansi.js +3 -0
  143. package/core/steps/all/core/00-parse.d.ts +1 -1
  144. package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
  145. package/core/steps/all/core/10-normalize.d.ts +3 -0
  146. package/core/steps/all/core/10-normalize.js +3 -0
  147. package/core/steps/all/core/11-normalize-tree-sitter.d.ts +4 -3
  148. package/core/steps/pipeline/create-pipeline.d.ts +1 -1
  149. package/core/steps/pipeline/default-pipelines.d.ts +47 -47
  150. package/core/steps/pipeline/default-pipelines.js +0 -4
  151. package/core/steps/pipeline/pipeline.d.ts +1 -8
  152. package/core/steps/pipeline/pipeline.js +1 -3
  153. package/core/steps/pipeline-step.d.ts +0 -1
  154. package/core/steps/pipeline-step.js +0 -1
  155. package/dataflow/cluster.d.ts +3 -0
  156. package/dataflow/cluster.js +3 -0
  157. package/dataflow/environments/append.d.ts +1 -1
  158. package/dataflow/environments/built-in-config.d.ts +1 -5
  159. package/dataflow/environments/built-in-config.js +0 -1
  160. package/dataflow/environments/built-in.d.ts +10 -5
  161. package/dataflow/environments/built-in.js +6 -1
  162. package/dataflow/environments/clone.d.ts +1 -1
  163. package/dataflow/environments/default-builtin-config.d.ts +3 -0
  164. package/dataflow/environments/default-builtin-config.js +4 -1
  165. package/dataflow/environments/diff.d.ts +11 -2
  166. package/dataflow/environments/diff.js +9 -0
  167. package/dataflow/environments/environment.d.ts +3 -3
  168. package/dataflow/environments/environment.js +8 -6
  169. package/dataflow/environments/identifier.d.ts +0 -4
  170. package/dataflow/environments/identifier.js +0 -1
  171. package/dataflow/environments/overwrite.d.ts +4 -1
  172. package/dataflow/environments/overwrite.js +3 -0
  173. package/dataflow/environments/resolve-by-name.d.ts +4 -4
  174. package/dataflow/environments/resolve-by-name.js +3 -2
  175. package/dataflow/environments/scoping.d.ts +4 -1
  176. package/dataflow/environments/scoping.js +3 -0
  177. package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
  178. package/dataflow/eval/resolve/alias-tracking.js +11 -14
  179. package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
  180. package/dataflow/eval/resolve/resolve.d.ts +1 -7
  181. package/dataflow/eval/resolve/resolve.js +0 -5
  182. package/dataflow/eval/values/general.d.ts +1 -3
  183. package/dataflow/eval/values/general.js +0 -1
  184. package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
  185. package/dataflow/eval/values/intervals/interval-constants.js +6 -0
  186. package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
  187. package/dataflow/eval/values/logical/logical-constants.js +3 -0
  188. package/dataflow/eval/values/r-value.d.ts +12 -0
  189. package/dataflow/eval/values/r-value.js +12 -0
  190. package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
  191. package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
  192. package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
  193. package/dataflow/eval/values/sets/set-constants.js +6 -0
  194. package/dataflow/eval/values/string/string-constants.d.ts +10 -1
  195. package/dataflow/eval/values/string/string-constants.js +9 -0
  196. package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
  197. package/dataflow/extractor.d.ts +1 -1
  198. package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
  199. package/dataflow/graph/dataflowgraph-builder.js +6 -23
  200. package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
  201. package/dataflow/graph/diff-dataflow-graph.js +12 -1
  202. package/dataflow/graph/edge.d.ts +9 -0
  203. package/dataflow/graph/edge.js +9 -0
  204. package/dataflow/graph/graph.d.ts +6 -19
  205. package/dataflow/graph/graph.js +4 -15
  206. package/dataflow/graph/invert-dfg.d.ts +3 -0
  207. package/dataflow/graph/invert-dfg.js +3 -0
  208. package/dataflow/graph/quads.d.ts +1 -1
  209. package/dataflow/graph/unknown-replacement.d.ts +6 -0
  210. package/dataflow/graph/unknown-replacement.js +6 -0
  211. package/dataflow/graph/unknown-side-effect.d.ts +8 -0
  212. package/dataflow/graph/unknown-side-effect.js +8 -0
  213. package/dataflow/graph/vertex.d.ts +9 -9
  214. package/dataflow/graph/vertex.js +9 -1
  215. package/dataflow/info.d.ts +9 -10
  216. package/dataflow/info.js +6 -1
  217. package/dataflow/internal/linker.d.ts +25 -9
  218. package/dataflow/internal/linker.js +23 -7
  219. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
  220. package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -0
  221. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
  222. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
  223. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +3 -1
  224. package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
  225. package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +3 -0
  226. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
  227. package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
  228. package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +3 -0
  229. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
  230. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +3 -0
  231. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
  232. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +3 -0
  233. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
  234. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +6 -0
  235. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
  236. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
  237. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
  238. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +4 -0
  239. package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
  240. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
  241. package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
  242. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
  243. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +3 -0
  244. package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
  245. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
  246. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +5 -2
  247. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +3 -0
  248. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
  249. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +3 -1
  250. package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
  251. package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
  252. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +23 -6
  253. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +20 -1
  254. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -0
  255. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -0
  256. package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
  257. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
  258. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +3 -0
  259. package/dataflow/internal/process/functions/call/common.d.ts +11 -5
  260. package/dataflow/internal/process/functions/call/common.js +6 -0
  261. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -0
  262. package/dataflow/internal/process/functions/call/default-call-handling.js +3 -0
  263. package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
  264. package/dataflow/internal/process/functions/call/known-call-handling.js +7 -0
  265. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
  266. package/dataflow/internal/process/functions/call/named-call-handling.js +6 -0
  267. package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
  268. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
  269. package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
  270. package/dataflow/internal/process/functions/process-argument.js +6 -0
  271. package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
  272. package/dataflow/internal/process/functions/process-parameter.js +3 -0
  273. package/dataflow/internal/process/process-symbol.d.ts +3 -0
  274. package/dataflow/internal/process/process-symbol.js +3 -0
  275. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
  276. package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
  277. package/dataflow/internal/process/process-value.d.ts +3 -0
  278. package/dataflow/internal/process/process-value.js +3 -0
  279. package/dataflow/origin/dfg-get-origin.d.ts +0 -2
  280. package/dataflow/origin/dfg-get-symbol-refs.d.ts +5 -7
  281. package/dataflow/origin/dfg-get-symbol-refs.js +6 -8
  282. package/dataflow/processor.d.ts +0 -1
  283. package/dataflow/processor.js +0 -1
  284. package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -0
  285. package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
  286. package/documentation/data/faq/faqs.d.ts +5 -0
  287. package/documentation/data/faq/faqs.js +78 -0
  288. package/documentation/data/faq/wiki-faq-store.d.ts +18 -0
  289. package/documentation/data/faq/wiki-faq-store.js +75 -0
  290. package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
  291. package/documentation/data/server/doc-data-server-messages.js +4 -63
  292. package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
  293. package/documentation/doc-util/doc-auto-gen.js +6 -0
  294. package/documentation/doc-util/doc-benchmarks.d.ts +12 -0
  295. package/documentation/doc-util/doc-benchmarks.js +12 -0
  296. package/documentation/doc-util/doc-cfg.d.ts +7 -1
  297. package/documentation/doc-util/doc-cfg.js +9 -0
  298. package/documentation/doc-util/doc-cli-option.d.ts +9 -0
  299. package/documentation/doc-util/doc-cli-option.js +9 -0
  300. package/documentation/doc-util/doc-code.d.ts +24 -0
  301. package/documentation/doc-util/doc-code.js +24 -0
  302. package/documentation/doc-util/doc-dfg.d.ts +7 -1
  303. package/documentation/doc-util/doc-dfg.js +9 -0
  304. package/documentation/doc-util/doc-env.d.ts +3 -0
  305. package/documentation/doc-util/doc-env.js +3 -0
  306. package/documentation/doc-util/doc-escape.d.ts +0 -1
  307. package/documentation/doc-util/doc-escape.js +0 -1
  308. package/documentation/doc-util/doc-files.d.ts +11 -0
  309. package/documentation/doc-util/doc-files.js +15 -4
  310. package/documentation/doc-util/doc-general.d.ts +6 -0
  311. package/documentation/doc-util/doc-general.js +6 -0
  312. package/documentation/doc-util/doc-normalized-ast.d.ts +7 -1
  313. package/documentation/doc-util/doc-normalized-ast.js +6 -0
  314. package/documentation/doc-util/doc-query.d.ts +15 -0
  315. package/documentation/doc-util/doc-query.js +17 -2
  316. package/documentation/doc-util/doc-repl.d.ts +6 -0
  317. package/documentation/doc-util/doc-repl.js +6 -0
  318. package/documentation/doc-util/doc-search.d.ts +15 -0
  319. package/documentation/doc-util/doc-search.js +17 -2
  320. package/documentation/doc-util/doc-server-message.d.ts +13 -1
  321. package/documentation/doc-util/doc-server-message.js +13 -1
  322. package/documentation/doc-util/doc-structure.d.ts +9 -0
  323. package/documentation/doc-util/doc-structure.js +10 -1
  324. package/documentation/doc-util/doc-types.d.ts +42 -0
  325. package/documentation/doc-util/doc-types.js +42 -0
  326. package/documentation/print-analyzer-wiki.js +4 -0
  327. package/documentation/print-core-wiki.d.ts +3 -0
  328. package/documentation/print-core-wiki.js +5 -2
  329. package/documentation/print-dataflow-graph-wiki.js +5 -5
  330. package/documentation/print-faq-wiki.js +3 -75
  331. package/documentation/print-interface-wiki.js +1 -1
  332. package/documentation/print-onboarding-wiki.js +1 -1
  333. package/documentation/print-query-wiki.js +4 -34
  334. package/documentation/print-readme.js +105 -0
  335. package/engines.d.ts +1 -1
  336. package/linter/linter-executor.d.ts +6 -3
  337. package/linter/linter-executor.js +3 -0
  338. package/linter/linter-format.d.ts +8 -0
  339. package/linter/linter-format.js +8 -0
  340. package/linter/rules/absolute-path.d.ts +3 -4
  341. package/linter/rules/dataframe-access-validation.d.ts +3 -4
  342. package/linter/rules/dataframe-access-validation.js +9 -11
  343. package/linter/rules/dead-code.d.ts +1 -1
  344. package/linter/rules/deprecated-functions.d.ts +1 -1
  345. package/linter/rules/file-path-validity.d.ts +1 -2
  346. package/linter/rules/function-finder-util.d.ts +1 -2
  347. package/linter/rules/naming-convention.d.ts +13 -2
  348. package/linter/rules/naming-convention.js +13 -1
  349. package/linter/rules/network-functions.d.ts +1 -1
  350. package/linter/rules/seeded-randomness.d.ts +1 -2
  351. package/linter/rules/unused-definition.d.ts +2 -3
  352. package/linter/rules/useless-loop.d.ts +1 -2
  353. package/package.json +2 -2
  354. package/project/cache/flowr-analyzer-cache.d.ts +2 -9
  355. package/project/cache/flowr-analyzer-cache.js +0 -6
  356. package/project/context/flowr-analyzer-context.d.ts +3 -6
  357. package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
  358. package/project/context/flowr-analyzer-files-context.d.ts +2 -4
  359. package/project/context/flowr-file.d.ts +0 -1
  360. package/project/flowr-analyzer-builder.d.ts +1 -3
  361. package/project/flowr-analyzer-builder.js +5 -6
  362. package/project/flowr-analyzer.d.ts +34 -25
  363. package/project/flowr-analyzer.js +10 -11
  364. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +1 -1
  365. package/project/plugins/file-plugins/flowr-description-file.d.ts +1 -3
  366. package/project/plugins/file-plugins/flowr-description-file.js +0 -1
  367. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
  368. package/queries/base-query-format.d.ts +2 -2
  369. package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
  370. package/queries/catalog/call-context-query/call-context-query-executor.js +3 -0
  371. package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
  372. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +11 -2
  373. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +9 -0
  374. package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
  375. package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
  376. package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
  377. package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
  378. package/queries/catalog/config-query/config-query-executor.js +3 -0
  379. package/queries/catalog/config-query/config-query-format.d.ts +5 -2
  380. package/queries/catalog/config-query/config-query-format.js +13 -16
  381. package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
  382. package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
  383. package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
  384. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
  385. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
  386. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
  387. package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
  388. package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
  389. package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
  390. package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
  391. package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
  392. package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
  393. package/queries/catalog/dependencies-query/dependencies-query-format.js +4 -1
  394. package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
  395. package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
  396. package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
  397. package/queries/catalog/df-shape-query/df-shape-query-format.js +24 -5
  398. package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +3 -0
  399. package/queries/catalog/happens-before-query/happens-before-query-executor.js +3 -0
  400. package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
  401. package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
  402. package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
  403. package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
  404. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
  405. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
  406. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
  407. package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
  408. package/queries/catalog/linter-query/linter-query-executor.js +4 -0
  409. package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
  410. package/queries/catalog/linter-query/linter-query-format.js +67 -0
  411. package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
  412. package/queries/catalog/location-map-query/location-map-query-executor.js +5 -1
  413. package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
  414. package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
  415. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
  416. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
  417. package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
  418. package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
  419. package/queries/catalog/origin-query/origin-query-executor.js +6 -0
  420. package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
  421. package/queries/catalog/origin-query/origin-query-format.js +17 -1
  422. package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
  423. package/queries/catalog/project-query/project-query-executor.js +3 -0
  424. package/queries/catalog/project-query/project-query-format.d.ts +1 -1
  425. package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
  426. package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
  427. package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
  428. package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
  429. package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
  430. package/queries/catalog/search-query/search-query-executor.js +3 -0
  431. package/queries/catalog/search-query/search-query-format.d.ts +1 -1
  432. package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
  433. package/queries/catalog/static-slice-query/static-slice-query-executor.js +9 -0
  434. package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
  435. package/queries/catalog/static-slice-query/static-slice-query-format.js +17 -0
  436. package/queries/query-print.d.ts +20 -4
  437. package/queries/query-print.js +18 -2
  438. package/queries/query.d.ts +85 -55
  439. package/queries/query.js +35 -23
  440. package/queries/virtual-query/virtual-queries.d.ts +1 -2
  441. package/r-bridge/data/get.d.ts +6 -0
  442. package/r-bridge/data/get.js +6 -0
  443. package/r-bridge/lang-4.x/ast/model/collect.d.ts +0 -1
  444. package/r-bridge/lang-4.x/ast/model/collect.js +0 -1
  445. package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
  446. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
  447. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
  448. package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
  449. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
  450. package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
  451. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
  452. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
  453. package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
  454. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +6 -7
  455. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +6 -6
  456. package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
  457. package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
  458. package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
  459. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
  460. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
  461. package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
  462. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
  463. package/r-bridge/lang-4.x/ast/model/type.d.ts +4 -5
  464. package/r-bridge/lang-4.x/ast/model/type.js +4 -5
  465. package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
  466. package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
  467. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +4 -5
  468. package/r-bridge/lang-4.x/ast/parser/json/parser.js +0 -1
  469. package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
  470. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
  471. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
  472. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
  473. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
  474. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
  475. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
  476. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
  477. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
  478. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
  479. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
  480. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
  481. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
  482. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
  483. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
  484. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
  485. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
  486. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
  487. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
  488. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
  489. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
  490. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
  491. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
  492. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
  493. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
  494. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
  495. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
  496. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
  497. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
  498. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
  499. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
  500. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
  501. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
  502. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
  503. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
  504. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
  505. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
  506. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
  507. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
  508. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
  509. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
  510. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
  511. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
  512. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
  513. package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
  514. package/r-bridge/lang-4.x/convert-values.js +12 -1
  515. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
  516. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +17 -0
  517. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +13 -1
  518. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +48 -19
  519. package/r-bridge/parser.d.ts +28 -7
  520. package/r-bridge/retriever.d.ts +16 -1
  521. package/r-bridge/retriever.js +15 -0
  522. package/r-bridge/shell-executor.d.ts +3 -3
  523. package/r-bridge/shell-executor.js +6 -1
  524. package/r-bridge/shell.d.ts +24 -23
  525. package/r-bridge/shell.js +37 -31
  526. package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
  527. package/reconstruct/auto-select/magic-comments.d.ts +1 -2
  528. package/reconstruct/auto-select/magic-comments.js +1 -2
  529. package/reconstruct/reconstruct.d.ts +1 -3
  530. package/reconstruct/reconstruct.js +0 -2
  531. package/search/flowr-search-builder.d.ts +12 -5
  532. package/search/flowr-search-builder.js +7 -2
  533. package/search/flowr-search-executor.d.ts +3 -3
  534. package/search/flowr-search-filters.d.ts +14 -1
  535. package/search/flowr-search-filters.js +13 -0
  536. package/search/flowr-search-printer.d.ts +6 -0
  537. package/search/flowr-search-printer.js +6 -0
  538. package/search/flowr-search-traverse.d.ts +1 -1
  539. package/search/flowr-search.d.ts +3 -3
  540. package/search/search-executor/search-enrichers.d.ts +9 -6
  541. package/search/search-executor/search-enrichers.js +3 -0
  542. package/search/search-executor/search-generators.d.ts +19 -10
  543. package/search/search-executor/search-generators.js +49 -2
  544. package/search/search-executor/search-mappers.d.ts +8 -5
  545. package/search/search-executor/search-mappers.js +3 -0
  546. package/search/search-executor/search-transformer.d.ts +19 -16
  547. package/search/search-executor/search-transformer.js +3 -0
  548. package/slicing/criterion/collect-all.d.ts +10 -10
  549. package/slicing/criterion/parse.d.ts +4 -2
  550. package/slicing/criterion/parse.js +4 -2
  551. package/slicing/static/fingerprint.d.ts +9 -1
  552. package/slicing/static/fingerprint.js +8 -0
  553. package/slicing/static/slice-call.d.ts +2 -2
  554. package/slicing/static/static-slicer.d.ts +8 -4
  555. package/slicing/static/static-slicer.js +5 -1
  556. package/slicing/static/visiting-queue.d.ts +1 -1
  557. package/statistics/features/common-syntax-probability.d.ts +10 -1
  558. package/statistics/features/common-syntax-probability.js +9 -0
  559. package/statistics/features/feature.d.ts +0 -4
  560. package/statistics/features/feature.js +0 -1
  561. package/statistics/features/post-processing.d.ts +6 -0
  562. package/statistics/features/post-processing.js +6 -0
  563. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  564. package/statistics/features/supported/assignments/post-process.js +3 -0
  565. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  566. package/statistics/features/supported/comments/post-process.js +3 -0
  567. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  568. package/statistics/features/supported/control-flow/post-process.js +3 -0
  569. package/statistics/features/supported/data-access/data-access.d.ts +1 -1
  570. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  571. package/statistics/features/supported/data-access/post-process.js +3 -0
  572. package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
  573. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  574. package/statistics/features/supported/expression-list/post-process.js +3 -0
  575. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  576. package/statistics/features/supported/loops/post-process.js +3 -0
  577. package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
  578. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  579. package/statistics/features/supported/used-packages/post-process.js +3 -0
  580. package/statistics/features/supported/values/post-process.d.ts +3 -0
  581. package/statistics/features/supported/values/post-process.js +3 -0
  582. package/statistics/features/supported/variables/post-process.d.ts +7 -1
  583. package/statistics/features/supported/variables/post-process.js +6 -0
  584. package/statistics/meta-statistics.d.ts +8 -9
  585. package/statistics/output/file-provider.d.ts +5 -6
  586. package/statistics/output/file-provider.js +5 -6
  587. package/statistics/output/print-stats.d.ts +13 -1
  588. package/statistics/output/print-stats.js +12 -0
  589. package/statistics/output/statistics-file.d.ts +1 -2
  590. package/statistics/output/statistics-file.js +0 -1
  591. package/statistics/statistics.d.ts +3 -4
  592. package/statistics/statistics.js +1 -2
  593. package/statistics/summarizer/auto-detect.d.ts +3 -0
  594. package/statistics/summarizer/auto-detect.js +3 -0
  595. package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
  596. package/statistics/summarizer/post-process/clusterer.js +0 -2
  597. package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
  598. package/statistics/summarizer/post-process/file-based-count.js +0 -1
  599. package/statistics/summarizer/post-process/histogram.d.ts +0 -2
  600. package/statistics/summarizer/post-process/histogram.js +0 -2
  601. package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
  602. package/statistics/summarizer/post-process/post-process-output.js +0 -3
  603. package/statistics/summarizer/second-phase/process.d.ts +5 -3
  604. package/statistics/summarizer/second-phase/process.js +3 -1
  605. package/statistics/summarizer/summarizer.d.ts +1 -2
  606. package/util/assert.d.ts +52 -2
  607. package/util/assert.js +52 -2
  608. package/util/collections/arrays.d.ts +10 -5
  609. package/util/collections/arrays.js +10 -5
  610. package/util/collections/defaultmap.d.ts +11 -11
  611. package/util/collections/defaultmap.js +11 -11
  612. package/util/containers.d.ts +2 -7
  613. package/util/containers.js +0 -5
  614. package/util/diff-graph.d.ts +0 -1
  615. package/util/diff-graph.js +0 -1
  616. package/util/diff.d.ts +3 -1
  617. package/util/diff.js +3 -1
  618. package/util/files.d.ts +11 -11
  619. package/util/files.js +10 -10
  620. package/util/formats/adapter.d.ts +9 -0
  621. package/util/formats/adapter.js +9 -0
  622. package/util/formats/adapters/rmd-adapter.d.ts +10 -1
  623. package/util/formats/adapters/rmd-adapter.js +10 -1
  624. package/util/html-hover-over.d.ts +5 -0
  625. package/util/html-hover-over.js +5 -0
  626. package/util/json.d.ts +13 -0
  627. package/util/json.js +13 -0
  628. package/util/log.d.ts +2 -2
  629. package/util/log.js +2 -2
  630. package/util/mermaid/ast.d.ts +3 -0
  631. package/util/mermaid/ast.js +3 -0
  632. package/util/mermaid/cfg.d.ts +1 -1
  633. package/util/mermaid/dfg.d.ts +12 -4
  634. package/util/mermaid/dfg.js +9 -1
  635. package/util/mermaid/mermaid.d.ts +6 -1
  636. package/util/mermaid/mermaid.js +6 -1
  637. package/util/numbers.d.ts +7 -0
  638. package/util/numbers.js +7 -0
  639. package/util/objects.d.ts +0 -2
  640. package/util/os.d.ts +3 -0
  641. package/util/os.js +3 -0
  642. package/util/parallel.d.ts +4 -4
  643. package/util/parallel.js +4 -4
  644. package/util/prefix.d.ts +0 -1
  645. package/util/prefix.js +0 -1
  646. package/util/quads.d.ts +14 -17
  647. package/util/quads.js +3 -5
  648. package/util/r-value.d.ts +10 -1
  649. package/util/r-value.js +21 -0
  650. package/util/random.d.ts +3 -0
  651. package/util/random.js +3 -0
  652. package/util/range.d.ts +9 -3
  653. package/util/range.js +15 -2
  654. package/util/schema.d.ts +14 -1
  655. package/util/schema.js +15 -2
  656. package/util/simple-df/dfg-view.d.ts +4 -1
  657. package/util/simple-df/dfg-view.js +4 -1
  658. package/util/summarizer.d.ts +9 -1
  659. package/util/summarizer.js +9 -0
  660. package/util/text/ansi.d.ts +3 -0
  661. package/util/text/ansi.js +3 -0
  662. package/util/text/args.d.ts +2 -4
  663. package/util/text/args.js +7 -5
  664. package/util/text/text.d.ts +4 -0
  665. package/util/text/text.js +4 -0
  666. package/util/text/time.d.ts +0 -1
  667. package/util/text/time.js +0 -1
  668. package/util/version.d.ts +12 -3
  669. package/util/version.js +12 -3
  670. package/abstract-interpretation/data-frame/domain.d.ts +0 -107
  671. package/abstract-interpretation/data-frame/domain.js +0 -315
  672. package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
  673. package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
  674. package/cli/repl/commands/repl-lineage.d.ts +0 -15
  675. package/cli/repl/commands/repl-lineage.js +0 -66
  676. package/cli/repl/server/messages/message-lineage.d.ts +0 -17
  677. package/cli/repl/server/messages/message-lineage.js +0 -25
  678. package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
  679. package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
  680. package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
  681. package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
@@ -1,21 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SingletonDomain = void 0;
4
+ const logic_1 = require("../../util/logic");
4
5
  const abstract_domain_1 = require("./abstract-domain");
5
6
  const lattice_1 = require("./lattice");
6
7
  /**
7
- * The singleton abstract domain as single possible value.
8
+ * The singleton abstract domain as a single possible value.
8
9
  * The Bottom element is defined as {@link Bottom} symbol and the Top element is defined as {@link Top} symbol.
9
10
  * @template T - Type of the value in the abstract domain
10
11
  * @template Value - Type of the constraint in the abstract domain (Top, Bottom, or an actual value)
11
12
  */
12
- class SingletonDomain {
13
- _value;
14
- constructor(value) {
15
- this._value = value;
16
- }
17
- get value() {
18
- return this._value;
13
+ class SingletonDomain extends abstract_domain_1.AbstractDomain {
14
+ create(value) {
15
+ return new SingletonDomain(value);
19
16
  }
20
17
  static top() {
21
18
  return new SingletonDomain(lattice_1.Top);
@@ -44,35 +41,35 @@ class SingletonDomain {
44
41
  leq(other) {
45
42
  return this.value === lattice_1.Bottom || other.value === lattice_1.Top || (this.isValue() && other.isValue() && this.value <= other.value);
46
43
  }
47
- join(...values) {
48
- const result = new SingletonDomain(this.value);
49
- for (const other of values) {
50
- if (result.value === lattice_1.Bottom) {
51
- result._value = other.value;
52
- }
53
- else if (other.value === lattice_1.Bottom) {
54
- result._value = result.value;
55
- }
56
- else if (result.value !== other.value) {
57
- result._value = lattice_1.Top;
58
- }
59
- }
60
- return result;
61
- }
62
- meet(...values) {
63
- const result = new SingletonDomain(this.value);
64
- for (const other of values) {
65
- if (result.value === lattice_1.Top) {
66
- result._value = other.value;
67
- }
68
- else if (other.value === lattice_1.Top) {
69
- result._value = result.value;
70
- }
71
- else if (result.value !== other.value) {
72
- result._value = lattice_1.Bottom;
73
- }
74
- }
75
- return result;
44
+ join(other) {
45
+ const otherValue = other instanceof SingletonDomain ? other.value : other;
46
+ if (this.value === lattice_1.Bottom) {
47
+ return this.create(otherValue);
48
+ }
49
+ else if (otherValue === lattice_1.Bottom) {
50
+ return this.create(this.value);
51
+ }
52
+ else if (this.value !== otherValue) {
53
+ return this.top();
54
+ }
55
+ else {
56
+ return this.create(this.value);
57
+ }
58
+ }
59
+ meet(other) {
60
+ const otherValue = other instanceof SingletonDomain ? other.value : other;
61
+ if (this.value === lattice_1.Top) {
62
+ return this.create(otherValue);
63
+ }
64
+ else if (otherValue === lattice_1.Top) {
65
+ return this.create(this.value);
66
+ }
67
+ else if (this.value !== otherValue) {
68
+ return this.bottom();
69
+ }
70
+ else {
71
+ return this.create(this.value);
72
+ }
76
73
  }
77
74
  widen(other) {
78
75
  return this.join(other); // Using join for widening as the lattice is finite
@@ -92,6 +89,24 @@ class SingletonDomain {
92
89
  abstract(concrete) {
93
90
  return SingletonDomain.abstract(concrete);
94
91
  }
92
+ satisfies(value) {
93
+ if (this.isValue() && this.value === value) {
94
+ return logic_1.Ternary.Always;
95
+ }
96
+ else if (this.isTop()) {
97
+ return logic_1.Ternary.Maybe;
98
+ }
99
+ return logic_1.Ternary.Never;
100
+ }
101
+ toJson() {
102
+ if (this.value === lattice_1.Top) {
103
+ return lattice_1.Top.description;
104
+ }
105
+ else if (this.value === lattice_1.Bottom) {
106
+ return lattice_1.Bottom.description;
107
+ }
108
+ return this.value;
109
+ }
95
110
  toString() {
96
111
  if (this.value === lattice_1.Top) {
97
112
  return '⊤';
@@ -1,32 +1,16 @@
1
1
  import type { NodeId } from '../../r-bridge/lang-4.x/ast/model/processing/node-id';
2
- import type { AbstractDomain, ConcreteDomain } from './abstract-domain';
3
- import { Top } from './lattice';
4
- /** The type of the abstract state for a abstract domain mapping AST node IDs to abstract values of an abstract domain */
5
- export type AbstractState<Domain extends AbstractDomain<unknown, unknown, unknown, unknown>> = Map<NodeId, Domain>;
6
- /** The type of the concrete state for the concrete domain of an abstract domain mapping AST node IDs to a concrete value in the concrete domain */
7
- export type ConcreteState<Domain extends AbstractDomain<unknown, unknown, unknown, unknown>> = ReadonlyMap<NodeId, ConcreteDomain<Domain>>;
2
+ import type { AnyAbstractDomain } from './abstract-domain';
3
+ import { MappedAbstractDomain } from './mapped-abstract-domain';
8
4
  /**
9
5
  * A state abstract domain as mapping of AST node IDs of a program to abstract values of an abstract domain.
10
6
  * The Bottom element is defined as empty mapping and the Top element is defined as mapping every existing mapped AST node ID to Top.
11
7
  * @template Domain - Type of the abstract domain to map the AST node IDs to
12
8
  * @see {@link NodeId} for the node IDs of the AST nodes
13
9
  */
14
- export declare class StateAbstractDomain<Domain extends AbstractDomain<unknown, unknown, unknown, unknown>> implements AbstractDomain<ConcreteState<Domain>, AbstractState<Domain>, AbstractState<Domain>, AbstractState<Domain>> {
15
- private _value;
16
- constructor(value: AbstractState<Domain>);
17
- get value(): AbstractState<Domain>;
18
- bottom(): StateAbstractDomain<Domain>;
19
- top(): StateAbstractDomain<Domain>;
20
- equals(other: StateAbstractDomain<Domain>): boolean;
21
- leq(other: StateAbstractDomain<Domain>): boolean;
22
- join(...values: StateAbstractDomain<Domain>[]): StateAbstractDomain<Domain>;
23
- meet(...values: StateAbstractDomain<Domain>[]): StateAbstractDomain<Domain>;
24
- widen(other: StateAbstractDomain<Domain>): StateAbstractDomain<Domain>;
25
- narrow(other: StateAbstractDomain<Domain>): StateAbstractDomain<Domain>;
26
- concretize(limit?: number): ReadonlySet<ConcreteState<Domain>> | typeof Top;
27
- abstract(concrete: ReadonlySet<ConcreteState<Domain>> | typeof Top): StateAbstractDomain<Domain>;
28
- toString(): string;
29
- isTop(): this is StateAbstractDomain<Domain>;
30
- isBottom(): this is StateAbstractDomain<Domain>;
31
- isValue(): this is StateAbstractDomain<Domain>;
10
+ export declare abstract class StateAbstractDomain<Domain extends AnyAbstractDomain> extends MappedAbstractDomain<NodeId, Domain> {
32
11
  }
12
+ /**
13
+ * The type of the value abstract domain of a state abstract domain (i.e. the abstract domain a state abstract domain maps to).
14
+ * @template StateDomain - The state abstract domain to get the value abstract domain type for
15
+ */
16
+ export type ValueAbstractDomain<StateDomain extends StateAbstractDomain<AnyAbstractDomain>> = StateDomain extends StateAbstractDomain<infer Domain> ? Domain : never;
@@ -1,179 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StateAbstractDomain = void 0;
4
- const abstract_domain_1 = require("./abstract-domain");
5
- const lattice_1 = require("./lattice");
4
+ const mapped_abstract_domain_1 = require("./mapped-abstract-domain");
6
5
  /**
7
6
  * A state abstract domain as mapping of AST node IDs of a program to abstract values of an abstract domain.
8
7
  * The Bottom element is defined as empty mapping and the Top element is defined as mapping every existing mapped AST node ID to Top.
9
8
  * @template Domain - Type of the abstract domain to map the AST node IDs to
10
9
  * @see {@link NodeId} for the node IDs of the AST nodes
11
10
  */
12
- class StateAbstractDomain {
13
- _value;
14
- constructor(value) {
15
- this._value = new Map(value);
16
- }
17
- get value() {
18
- return this._value;
19
- }
20
- bottom() {
21
- return new StateAbstractDomain(new Map());
22
- }
23
- top() {
24
- const result = new StateAbstractDomain(this.value);
25
- for (const [key, value] of result.value) {
26
- result._value.set(key, value.top());
27
- }
28
- return result;
29
- }
30
- equals(other) {
31
- if (this.value === other.value) {
32
- return true;
33
- }
34
- else if (this.value.size !== other.value.size) {
35
- return false;
36
- }
37
- for (const [nodeId, value] of this.value) {
38
- const otherValue = other.value.get(nodeId);
39
- if (otherValue === undefined || !value.equals(otherValue)) {
40
- return false;
41
- }
42
- }
43
- return true;
44
- }
45
- leq(other) {
46
- if (this.value === other.value) {
47
- return true;
48
- }
49
- for (const [nodeId, value] of this.value) {
50
- const otherValue = other.value.get(nodeId);
51
- if (otherValue === undefined || !value.leq(otherValue)) {
52
- return false;
53
- }
54
- }
55
- return true;
56
- }
57
- join(...values) {
58
- const result = new StateAbstractDomain(this.value);
59
- for (const other of values) {
60
- for (const [nodeId, value] of other.value) {
61
- const currValue = result.value.get(nodeId);
62
- if (currValue === undefined) {
63
- result.value.set(nodeId, value);
64
- }
65
- else {
66
- result.value.set(nodeId, currValue.join(value));
67
- }
68
- }
69
- }
70
- return result;
71
- }
72
- meet(...values) {
73
- const result = new StateAbstractDomain(this.value);
74
- for (const other of values) {
75
- for (const [nodeId] of result.value) {
76
- if (!other.value.has(nodeId)) {
77
- result.value.delete(nodeId);
78
- }
79
- }
80
- for (const [nodeId, value] of other.value) {
81
- const currValue = result.value.get(nodeId);
82
- if (currValue !== undefined) {
83
- result.value.set(nodeId, currValue.meet(value));
84
- }
85
- }
86
- }
87
- return result;
88
- }
89
- widen(other) {
90
- const result = new StateAbstractDomain(this.value);
91
- for (const [nodeId, value] of other.value) {
92
- const currValue = result.value.get(nodeId);
93
- if (currValue === undefined) {
94
- result.value.set(nodeId, value);
95
- }
96
- else {
97
- result.value.set(nodeId, currValue.widen(value));
98
- }
99
- }
100
- return result;
101
- }
102
- narrow(other) {
103
- const result = new StateAbstractDomain(this.value);
104
- for (const [nodeId] of this.value) {
105
- if (!other.value.has(nodeId)) {
106
- result.value.delete(nodeId);
107
- }
108
- }
109
- for (const [nodeId, value] of other.value) {
110
- const currValue = result.value.get(nodeId);
111
- if (currValue !== undefined) {
112
- result.value.set(nodeId, currValue.narrow(value));
113
- }
114
- }
115
- return result;
116
- }
117
- concretize(limit = abstract_domain_1.DEFAULT_INFERENCE_LIMIT) {
118
- if (this.value.values().some(value => value.isBottom())) {
119
- return new Set();
120
- }
121
- let states = new Set([new Map()]);
122
- for (const [nodeId, value] of this.value) {
123
- const concreteValues = value.concretize(limit);
124
- if (concreteValues === lattice_1.Top) {
125
- return lattice_1.Top;
126
- }
127
- const newStates = new Set();
128
- for (const state of states) {
129
- for (const concrete of concreteValues) {
130
- if (newStates.size > limit) {
131
- return lattice_1.Top;
132
- }
133
- const map = new Map(state);
134
- map.set(nodeId, concrete);
135
- newStates.add(map);
136
- }
137
- }
138
- states = newStates;
139
- }
140
- return states;
141
- }
142
- abstract(concrete) {
143
- const entry = [...this.value.values()][0];
144
- if (concrete === lattice_1.Top || entry === undefined) {
145
- return new StateAbstractDomain(new Map());
146
- }
147
- const mappings = new Map();
148
- for (const state of concrete) {
149
- for (const [nodeId, value] of state) {
150
- const mapping = mappings.get(nodeId);
151
- if (mapping === undefined) {
152
- mappings.set(nodeId, new Set([value]));
153
- }
154
- else {
155
- mapping.add(value);
156
- }
157
- }
158
- }
159
- const result = new Map();
160
- for (const [nodeId, values] of mappings) {
161
- result.set(nodeId, entry.abstract(values));
162
- }
163
- return new StateAbstractDomain(result);
164
- }
165
- toString() {
166
- return '(' + this.value.entries().toArray().map(([key, value]) => `${key} -> ${value.toString()}`).join(', ') + ')';
167
- }
168
- isTop() {
169
- return this.value.values().every(value => value.isTop());
170
- }
171
- isBottom() {
172
- return this.value.size === 0;
173
- }
174
- isValue() {
175
- return true;
176
- }
11
+ class StateAbstractDomain extends mapped_abstract_domain_1.MappedAbstractDomain {
177
12
  }
178
13
  exports.StateAbstractDomain = StateAbstractDomain;
179
14
  //# sourceMappingURL=state-abstract-domain.js.map
@@ -1,7 +1,6 @@
1
1
  import type { NoInfo, RNode } from '../r-bridge/lang-4.x/ast/model/model';
2
2
  import type { RExpressionList } from '../r-bridge/lang-4.x/ast/model/nodes/r-expression-list';
3
- import type { RFunctionCall } from '../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
4
- import { EmptyArgument } from '../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
3
+ import { type RFunctionCall, EmptyArgument } from '../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
5
4
  import type { RFunctionDefinition } from '../r-bridge/lang-4.x/ast/model/nodes/r-function-definition';
6
5
  import { RType } from '../r-bridge/lang-4.x/ast/model/type';
7
6
  import type { RForLoop } from '../r-bridge/lang-4.x/ast/model/nodes/r-for-loop';
@@ -48,10 +47,8 @@ export type EntryExitVisitor<Info> = ((node: RNode<Info>) => void) | undefined;
48
47
  * You can control the value passing (`Returns` generic)
49
48
  * by providing sensible Monoid behavior overwriting the {@link DefaultNormalizedAstFold#concat|concat} method
50
49
  * and supplying the empty value in the constructor.
51
- *
52
50
  * @note By providing `entry` and `exit` you can use this as an extension to the simpler {@link visitAst} function but without
53
51
  * the early termination within the visitors (for this, you can overwrite the respective `fold*` methods).
54
- *
55
52
  * @example First you want to create your own fold:
56
53
  *
57
54
  * ```ts
@@ -84,15 +81,12 @@ export declare class DefaultNormalizedAstFold<Returns = void, Info = NoInfo> imp
84
81
  constructor(empty: Returns, enter?: EntryExitVisitor<Info>, exit?: EntryExitVisitor<Info>);
85
82
  /**
86
83
  * Monoid::concat
87
- *
88
- *
89
84
  * @see {@link https://en.wikipedia.org/wiki/Monoid}
90
85
  * @see {@link DefaultNormalizedAstFold#concatAll|concatAll}
91
86
  */
92
87
  protected concat(_a: Returns, _b: Returns): Returns;
93
88
  /**
94
89
  * overwrite this method, if you have a faster way to concat multiple nodes
95
- *
96
90
  * @see {@link DefaultNormalizedAstFold#concatAll|concatAll}
97
91
  */
98
92
  protected concatAll(nodes: readonly Returns[]): Returns;
@@ -9,10 +9,8 @@ const type_1 = require("../r-bridge/lang-4.x/ast/model/type");
9
9
  * You can control the value passing (`Returns` generic)
10
10
  * by providing sensible Monoid behavior overwriting the {@link DefaultNormalizedAstFold#concat|concat} method
11
11
  * and supplying the empty value in the constructor.
12
- *
13
12
  * @note By providing `entry` and `exit` you can use this as an extension to the simpler {@link visitAst} function but without
14
13
  * the early termination within the visitors (for this, you can overwrite the respective `fold*` methods).
15
- *
16
14
  * @example First you want to create your own fold:
17
15
  *
18
16
  * ```ts
@@ -49,8 +47,6 @@ class DefaultNormalizedAstFold {
49
47
  }
50
48
  /**
51
49
  * Monoid::concat
52
- *
53
- *
54
50
  * @see {@link https://en.wikipedia.org/wiki/Monoid}
55
51
  * @see {@link DefaultNormalizedAstFold#concatAll|concatAll}
56
52
  */
@@ -59,7 +55,6 @@ class DefaultNormalizedAstFold {
59
55
  }
60
56
  /**
61
57
  * overwrite this method, if you have a faster way to concat multiple nodes
62
- *
63
58
  * @see {@link DefaultNormalizedAstFold#concatAll|concatAll}
64
59
  */
65
60
  concatAll(nodes) {
@@ -9,11 +9,11 @@ import type { ReconstructionResult } from '../reconstruct/reconstruct';
9
9
  import type { PerSliceStats, SlicerStats, SlicerStatsDfShape } from './stats/stats';
10
10
  import type { NormalizedAst } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
11
11
  import type { SlicingCriteria } from '../slicing/criterion/parse';
12
- import type { RParseRequestFromFile, RParseRequestFromText } from '../r-bridge/retriever';
13
- import type { SlicingCriteriaFilter } from '../slicing/criterion/collect-all';
12
+ import { type RParseRequestFromFile, type RParseRequestFromText } from '../r-bridge/retriever';
13
+ import { type SlicingCriteriaFilter } from '../slicing/criterion/collect-all';
14
14
  import type { AutoSelectPredicate } from '../reconstruct/auto-select/auto-select-defaults';
15
15
  import type { KnownParserName } from '../r-bridge/parser';
16
- import type { FlowrConfigOptions } from '../config';
16
+ import { type FlowrConfigOptions } from '../config';
17
17
  /**
18
18
  * The logger to be used for benchmarking as a global object.
19
19
  */
@@ -93,7 +93,6 @@ export declare class BenchmarkSlicer {
93
93
  /**
94
94
  * Slice for the given {@link SlicingCriteria}.
95
95
  * @see SingleSlicingCriterion
96
- *
97
96
  * @returns The per slice stats retrieved for this slicing criteria
98
97
  */
99
98
  slice(...slicingCriteria: SlicingCriteria): Promise<BenchmarkSingleSliceStats>;
@@ -103,7 +102,6 @@ export declare class BenchmarkSlicer {
103
102
  extractCFG(): void;
104
103
  /**
105
104
  * Infer the shape of data frames using abstract interpretation with {@link inferDataFrameShapes}
106
- *
107
105
  * @returns The statistics of the data frame shape inference
108
106
  */
109
107
  inferDataFrameShapes(): SlicerStatsDfShape;
@@ -118,9 +116,7 @@ export declare class BenchmarkSlicer {
118
116
  * See {@link collectAllSlicingCriteria} for details.
119
117
  * <p>
120
118
  * the `report` function will be called *before* each *individual* slice is performed.
121
- *
122
119
  * @returns The number of slices that were produced
123
- *
124
120
  * @see collectAllSlicingCriteria
125
121
  * @see SlicingCriteriaFilter
126
122
  */
@@ -27,7 +27,6 @@ const arrays_1 = require("../util/collections/arrays");
27
27
  const config_1 = require("../config");
28
28
  const extract_cfg_1 = require("../control-flow/extract-cfg");
29
29
  const absint_info_1 = require("../abstract-interpretation/data-frame/absint-info");
30
- const domain_1 = require("../abstract-interpretation/data-frame/domain");
31
30
  const shape_inference_1 = require("../abstract-interpretation/data-frame/shape-inference");
32
31
  const fs_1 = __importDefault(require("fs"));
33
32
  /**
@@ -222,7 +221,6 @@ class BenchmarkSlicer {
222
221
  /**
223
222
  * Slice for the given {@link SlicingCriteria}.
224
223
  * @see SingleSlicingCriterion
225
- *
226
224
  * @returns The per slice stats retrieved for this slicing criteria
227
225
  */
228
226
  async slice(...slicingCriteria) {
@@ -281,7 +279,6 @@ class BenchmarkSlicer {
281
279
  }
282
280
  /**
283
281
  * Infer the shape of data frames using abstract interpretation with {@link inferDataFrameShapes}
284
- *
285
282
  * @returns The statistics of the data frame shape inference
286
283
  */
287
284
  inferDataFrameShapes() {
@@ -309,12 +306,12 @@ class BenchmarkSlicer {
309
306
  perNodeStats: new Map()
310
307
  };
311
308
  const result = this.measureSimpleStep('infer data frame shapes', () => (0, shape_inference_1.inferDataFrameShapes)(cfinfo, dfg, ast, config));
312
- stats.numberOfResultConstraints = result.size;
313
- for (const value of result.values()) {
314
- if ((0, domain_1.equalDataFrameDomain)(value, domain_1.DataFrameTop)) {
309
+ stats.numberOfResultConstraints = result.value.size;
310
+ for (const value of result.value.values()) {
311
+ if (value.isTop()) {
315
312
  stats.numberOfResultingTop++;
316
313
  }
317
- else if ((0, domain_1.equalDataFrameDomain)(value, domain_1.DataFrameBottom)) {
314
+ else if (value.isBottom()) {
318
315
  stats.numberOfResultingBottom++;
319
316
  }
320
317
  else {
@@ -334,17 +331,17 @@ class BenchmarkSlicer {
334
331
  return;
335
332
  }
336
333
  const nodeStats = {
337
- numberOfEntries: node.info.dataFrame?.domain?.size ?? 0
334
+ numberOfEntries: node.info.dataFrame?.domain?.value.size ?? 0
338
335
  };
339
336
  if (expression !== undefined) {
340
337
  nodeStats.mappedOperations = expression.operations.map(op => op.operation);
341
338
  stats.numberOfOperationNodes++;
342
339
  if (value !== undefined) {
343
- nodeStats.inferredColNames = value.colnames === domain_1.ColNamesTop ? 'top' : value.colnames.length;
340
+ nodeStats.inferredColNames = value.colnames.isValue() ? value.colnames.value.size : value.colnames.isTop() ? 'top' : 'bottom';
344
341
  nodeStats.inferredColCount = this.getInferredSize(value.cols);
345
342
  nodeStats.inferredRowCount = this.getInferredSize(value.rows);
346
- nodeStats.approxRangeColCount = value.cols === domain_1.IntervalBottom ? 0 : value.cols[1] - value.cols[0];
347
- nodeStats.approxRangeRowCount = value.rows === domain_1.IntervalBottom ? 0 : value.rows[1] - value.rows[0];
343
+ nodeStats.approxRangeColCount = value.cols.isValue() ? value.cols.value[1] - value.cols.value[0] : 0;
344
+ nodeStats.approxRangeRowCount = value.rows.isValue() ? value.rows.value[1] - value.rows.value[0] : 0;
348
345
  }
349
346
  }
350
347
  if (value !== undefined) {
@@ -362,16 +359,16 @@ class BenchmarkSlicer {
362
359
  return stats;
363
360
  }
364
361
  getInferredSize(value) {
365
- if ((0, domain_1.equalInterval)(value, domain_1.IntervalTop)) {
362
+ if (value.isTop()) {
366
363
  return 'top';
367
364
  }
368
- else if (value === domain_1.IntervalBottom) {
369
- return 'bottom';
370
- }
371
- else if (!isFinite(value[1])) {
365
+ else if (value.isValue() && !isFinite(value.value[1])) {
372
366
  return 'infinite';
373
367
  }
374
- return Math.floor((value[0] + value[1]) / 2);
368
+ else if (value.isValue()) {
369
+ return Math.floor((value.value[0] + value.value[1]) / 2);
370
+ }
371
+ return 'bottom';
375
372
  }
376
373
  /** Bridging the gap between the new internal and the old names for the benchmarking */
377
374
  async measureCommonStep(expectedStep, keyToMeasure) {
@@ -410,9 +407,7 @@ class BenchmarkSlicer {
410
407
  * See {@link collectAllSlicingCriteria} for details.
411
408
  * <p>
412
409
  * the `report` function will be called *before* each *individual* slice is performed.
413
- *
414
410
  * @returns The number of slices that were produced
415
- *
416
411
  * @see collectAllSlicingCriteria
417
412
  * @see SlicingCriteriaFilter
418
413
  */
@@ -1,8 +1,14 @@
1
1
  import type { SummarizedSlicerStats, UltimateSlicerStats } from '../summarizer/data';
2
+ /**
3
+ * Formats the given nanoseconds into a human-readable string.
4
+ */
2
5
  export declare function formatNanoseconds(nanoseconds: bigint | number): string;
3
6
  /**
4
7
  * Converts the given stats to a human-readable string.
5
8
  * You may have to {@link summarizeSlicerStats | summarize} the stats first.
6
9
  */
7
10
  export declare function stats2string(stats: SummarizedSlicerStats): string;
11
+ /**
12
+ * Converts reduction stats to a human-readable string.
13
+ */
8
14
  export declare function ultimateStats2String(stats: UltimateSlicerStats): string;
@@ -8,6 +8,9 @@ const padSize = 15;
8
8
  function pad(string) {
9
9
  return String(string).padStart(padSize, ' ');
10
10
  }
11
+ /**
12
+ * Formats the given nanoseconds into a human-readable string.
13
+ */
11
14
  function formatNanoseconds(nanoseconds) {
12
15
  if (nanoseconds < 0) {
13
16
  return '??';
@@ -186,6 +189,9 @@ Dataframe shape inference:
186
189
  }
187
190
  return result;
188
191
  }
192
+ /**
193
+ * Converts reduction stats to a human-readable string.
194
+ */
189
195
  function ultimateStats2String(stats) {
190
196
  let result = `
191
197
  Summarized: ${stats.totalRequests} requests and ${stats.totalSlices} slices
@@ -3,7 +3,6 @@ import type { DataflowGraph } from '../../dataflow/graph/graph';
3
3
  export declare function getSizeOfDfGraph(df: DataflowGraph): number;
4
4
  /**
5
5
  * Calculates the size of an array in bytes.
6
- *
7
6
  * @param array - The array to calculate the size of.
8
7
  * @returns The size of the array in bytes.
9
8
  */
@@ -70,7 +70,6 @@ function getSizeOfDfGraph(df) {
70
70
  }
71
71
  /**
72
72
  * Calculates the size of an array in bytes.
73
- *
74
73
  * @param array - The array to calculate the size of.
75
74
  * @returns The size of the array in bytes.
76
75
  */
@@ -60,7 +60,7 @@ export interface SlicerStatsDfShape<T = number> {
60
60
  export interface PerNodeStatsDfShape<T = number> {
61
61
  numberOfEntries: T;
62
62
  mappedOperations?: DataFrameOperationName[];
63
- inferredColNames?: T | 'top';
63
+ inferredColNames?: T | 'bottom' | 'top';
64
64
  inferredColCount?: T | 'bottom' | 'infinite' | 'top';
65
65
  inferredRowCount?: T | 'bottom' | 'infinite' | 'top';
66
66
  /** difference between upper and lower bound of interval domain (to estimate approximation) */
@@ -70,7 +70,7 @@ export interface PerNodeStatsDfShape<T = number> {
70
70
  /**
71
71
  * Please note, that these measurement can be negative as there is no guarantee that the memory usage will increase
72
72
  * due to, e.g., garbage collection.
73
- */
73
+ */
74
74
  export interface BenchmarkMemoryMeasurement<T = number> extends MergeableRecord {
75
75
  heap: T;
76
76
  rss: T;
@@ -10,26 +10,24 @@ export interface IStoppableStopwatch {
10
10
  export declare class Measurements<T> {
11
11
  private measurements;
12
12
  /**
13
- * Start a timer for the given key, and guards that this is the first time this key is started.
14
- * Call {@link IStoppableStopwatch#stop} on the returned stopwatch to stop the timer.
15
- */
13
+ * Start a timer for the given key, and guards that this is the first time this key is started.
14
+ * Call {@link IStoppableStopwatch#stop} on the returned stopwatch to stop the timer.
15
+ */
16
16
  start(key: T): IStoppableStopwatch;
17
17
  /**
18
- * Automatically call {@link Measurements#start | start} and the corresponding stop to measure the execution time of the given function.
19
- * @see {@link measureAsync}
20
- */
18
+ * Automatically call {@link Measurements#start | start} and the corresponding stop to measure the execution time of the given function.
19
+ * @see {@link measureAsync}
20
+ */
21
21
  measure<Out>(key: T, fn: () => Out): Out;
22
22
  /**
23
- * Similar to {@link measure}, but await the promise as part of the measurement
24
- *
23
+ * Similar to {@link measure}, but await the promise as part of the measurement
25
24
  * @param key - The key to write the resulting measurement to
26
25
  * @param fn - The function to measure
27
- *
28
- * @see measure
29
- */
26
+ * @see measure
27
+ */
30
28
  measureAsync<Out>(key: T, fn: () => Promise<Out>): Promise<Out>;
31
29
  /**
32
- * Retrieve all measure-results, requires that all stop-watches that have been started have also been stopped.
33
- */
30
+ * Retrieve all measure-results, requires that all stop-watches that have been started have also been stopped.
31
+ */
34
32
  get(): Map<T, bigint>;
35
33
  }