@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,20 +1,37 @@
1
1
  import * as readline from 'readline';
2
- import type { ReplOutput } from './commands/repl-main';
2
+ import { type ReplOutput } from './commands/repl-main';
3
3
  import type { MergeableRecord } from '../../util/objects';
4
4
  import type { FlowrConfigOptions } from '../../config';
5
5
  import type { FlowrAnalyzer } from '../../project/flowr-analyzer';
6
+ /**
7
+ * Completion suggestions for a specific REPL command
8
+ */
9
+ export interface CommandCompletions {
10
+ /** The possible completions for the current argument */
11
+ readonly completions: string[];
12
+ /**
13
+ * The current argument fragment being completed, if any.
14
+ * This is relevant if an argument is composed of multiple parts (e.g. comma-separated lists).
15
+ */
16
+ readonly argumentPart?: string;
17
+ }
6
18
  /**
7
19
  * Used by the repl to provide automatic completions for a given (partial) input line
8
20
  */
9
21
  export declare function replCompleter(line: string, config: FlowrConfigOptions): [string[], string];
22
+ /**
23
+ * Produces default readline options for the flowR REPL
24
+ */
10
25
  export declare function makeDefaultReplReadline(config: FlowrConfigOptions): readline.ReadLineOptions;
26
+ /**
27
+ * Handles a string input for the REPL, returning the parsed string and any remaining input.
28
+ */
11
29
  export declare function handleString(code: string): {
12
- input: string | undefined;
30
+ rCode: string | undefined;
13
31
  remaining: never[];
14
32
  };
15
33
  /**
16
34
  * This function interprets the given `expr` as a REPL command (see {@link repl} for more on the semantics).
17
- *
18
35
  * @param analyzer - The flowR analyzer to use.
19
36
  * @param output - Defines two methods that every function in the repl uses to output its data.
20
37
  * @param expr - The expression to process.
@@ -31,7 +48,7 @@ export interface FlowrReplOptions extends MergeableRecord {
31
48
  readonly analyzer: FlowrAnalyzer;
32
49
  /**
33
50
  * A potentially customized readline interface to be used for the repl to *read* from the user, we write the output with the {@link ReplOutput | `output` } interface.
34
- * If you want to provide a custom one but use the same `completer`, refer to {@link replCompleter}.
51
+ * If you want to provide a custom one but use the same `completer`, refer to {@link replCompleter}.
35
52
  */
36
53
  readonly rl?: readline.Interface;
37
54
  /** Defines two methods that every function in the repl uses to output its data. */
@@ -47,11 +64,12 @@ export interface FlowrReplOptions extends MergeableRecord {
47
64
  * The repl allows for two kinds of inputs:
48
65
  * - Starting with a colon `:`, indicating a command (probe `:help`, and refer to {@link commands}) </li>
49
66
  * - Starting with anything else, indicating default R code to be directly executed. If you kill the underlying shell, that is on you! </li>
50
- *
51
67
  * @param options - The options for the repl. See {@link FlowrReplOptions} for more information.
52
68
  *
53
69
  * For the execution, this function makes use of {@link replProcessAnswer}.
54
- *
55
70
  */
56
71
  export declare function repl({ analyzer, rl, output, historyFile, allowRSessionAccess }: FlowrReplOptions): Promise<void>;
72
+ /**
73
+ * Loads the REPL history from the given file.
74
+ */
57
75
  export declare function loadReplHistory(historyFile: string): string[] | undefined;
package/cli/repl/core.js CHANGED
@@ -44,7 +44,6 @@ exports.repl = repl;
44
44
  exports.loadReplHistory = loadReplHistory;
45
45
  /**
46
46
  * Basically a helper file to allow the main 'flowr' script (located in the source root) to provide its repl
47
- *
48
47
  * @module
49
48
  */
50
49
  const prompt_1 = require("./prompt");
@@ -60,6 +59,7 @@ const retriever_1 = require("../../r-bridge/retriever");
60
59
  const repl_main_1 = require("./commands/repl-main");
61
60
  const log_1 = require("../../util/log");
62
61
  const query_1 = require("../../queries/query");
62
+ const strings_1 = require("../../util/text/strings");
63
63
  let _replCompleterKeywords = undefined;
64
64
  function replCompleterKeywords() {
65
65
  if (_replCompleterKeywords === undefined) {
@@ -79,44 +79,50 @@ function replCompleter(line, config) {
79
79
  if (splitLine.length > 1 || startingNewArg) {
80
80
  const commandNameColon = replCompleterKeywords().find(k => splitLine[0] === k);
81
81
  if (commandNameColon) {
82
- const completions = [];
82
+ let completions = [];
83
+ let currentArg = startingNewArg ? '' : splitLine[splitLine.length - 1];
83
84
  const commandName = commandNameColon.slice(1);
84
85
  const cmd = (0, repl_commands_1.getCommand)(commandName);
85
86
  if (cmd?.script === true) {
86
87
  // autocomplete script arguments
87
88
  const options = scripts_info_1.scripts[commandName].options;
88
- completions.push(...(0, scripts_info_1.getValidOptionsForCompletion)(options, splitLine).map(o => `${o} `));
89
+ completions = completions.concat((0, scripts_info_1.getValidOptionsForCompletion)(options, splitLine).map(o => `${o} `));
89
90
  }
90
91
  else if (commandName.startsWith('query')) {
91
- completions.push(...replQueryCompleter(splitLine, config));
92
+ const { completions: queryCompletions, argumentPart: splitArg } = replQueryCompleter(splitLine, startingNewArg, config);
93
+ if (splitArg !== undefined) {
94
+ currentArg = splitArg;
95
+ }
96
+ completions = completions.concat(queryCompletions);
92
97
  }
93
98
  else {
94
99
  // autocomplete command arguments (specifically, autocomplete the file:// protocol)
95
100
  completions.push(retriever_1.fileProtocol);
96
101
  }
97
- const currentArg = startingNewArg ? '' : splitLine[splitLine.length - 1];
98
102
  return [completions.filter(a => a.startsWith(currentArg)), currentArg];
99
103
  }
100
104
  }
101
105
  // if no command is already typed, just return all commands that match
102
106
  return [replCompleterKeywords().filter(k => k.startsWith(line)).map(k => `${k} `), line];
103
107
  }
104
- function replQueryCompleter(splitLine, config) {
108
+ function replQueryCompleter(splitLine, startingNewArg, config) {
105
109
  const nonEmpty = splitLine.slice(1).map(s => s.trim()).filter(s => s.length > 0);
106
110
  const queryShorts = Object.keys(query_1.SupportedQueries).map(q => `@${q}`).concat(['help']);
107
- let candidates = [];
108
- if (nonEmpty.length == 0 || (nonEmpty.length == 1 && queryShorts.some(q => q.startsWith(nonEmpty[0]) && nonEmpty[0] !== q))) {
109
- candidates = candidates.concat(queryShorts.map(q => `${q} `));
111
+ if (nonEmpty.length == 0 || (nonEmpty.length == 1 && queryShorts.some(q => q.startsWith(nonEmpty[0]) && nonEmpty[0] !== q && !startingNewArg))) {
112
+ return { completions: queryShorts.map(q => `${q} `) };
110
113
  }
111
114
  else {
112
115
  const q = nonEmpty[0].slice(1);
113
116
  const queryElement = query_1.SupportedQueries[q];
114
117
  if (queryElement?.completer) {
115
- candidates = candidates.concat(queryElement.completer(nonEmpty.slice(1), config));
118
+ return queryElement.completer(nonEmpty.slice(1), startingNewArg, config);
116
119
  }
117
120
  }
118
- return candidates;
121
+ return { completions: [] };
119
122
  }
123
+ /**
124
+ * Produces default readline options for the flowR REPL
125
+ */
120
126
  function makeDefaultReplReadline(config) {
121
127
  return {
122
128
  input: process.stdin,
@@ -128,9 +134,12 @@ function makeDefaultReplReadline(config) {
128
134
  completer: (c) => replCompleter(c, config)
129
135
  };
130
136
  }
137
+ /**
138
+ * Handles a string input for the REPL, returning the parsed string and any remaining input.
139
+ */
131
140
  function handleString(code) {
132
141
  return {
133
- input: code.length == 0 ? undefined : code.startsWith('"') ? JSON.parse(code) : code,
142
+ rCode: code.length == 0 ? undefined : (0, strings_1.startAndEndsWith)(code, '"') ? JSON.parse(code) : code,
134
143
  remaining: []
135
144
  };
136
145
  }
@@ -144,9 +153,9 @@ async function replProcessStatement(output, statement, analyzer, allowRSessionAc
144
153
  const remainingLine = statement.slice(command.length + 2).trim();
145
154
  if (processor.isCodeCommand) {
146
155
  const args = processor.argsParser(remainingLine);
147
- if (args.input) {
156
+ if (args.rCode) {
148
157
  analyzer.reset();
149
- analyzer.context().addRequest((0, retriever_1.requestFromInput)(args.input));
158
+ analyzer.addRequest((0, retriever_1.requestFromInput)(args.rCode));
150
159
  }
151
160
  await processor.fn({ output, analyzer, remainingArgs: args.remaining });
152
161
  }
@@ -171,16 +180,15 @@ async function replProcessStatement(output, statement, analyzer, allowRSessionAc
171
180
  }
172
181
  /**
173
182
  * This function interprets the given `expr` as a REPL command (see {@link repl} for more on the semantics).
174
- *
175
183
  * @param analyzer - The flowR analyzer to use.
176
184
  * @param output - Defines two methods that every function in the repl uses to output its data.
177
185
  * @param expr - The expression to process.
178
186
  * @param allowRSessionAccess - If true, allows the execution of arbitrary R code.
179
187
  */
180
188
  async function replProcessAnswer(analyzer, output, expr, allowRSessionAccess) {
181
- const statements = (0, args_1.splitAtEscapeSensitive)(expr, false, ';');
189
+ const statements = (0, args_1.splitAtEscapeSensitive)(expr, false, /^;\s*:/);
182
190
  for (const statement of statements) {
183
- await replProcessStatement(output, statement, analyzer, allowRSessionAccess);
191
+ await replProcessStatement(output, statement.trim(), analyzer, allowRSessionAccess);
184
192
  }
185
193
  }
186
194
  /**
@@ -189,11 +197,9 @@ async function replProcessAnswer(analyzer, output, expr, allowRSessionAccess) {
189
197
  * The repl allows for two kinds of inputs:
190
198
  * - Starting with a colon `:`, indicating a command (probe `:help`, and refer to {@link commands}) </li>
191
199
  * - Starting with anything else, indicating default R code to be directly executed. If you kill the underlying shell, that is on you! </li>
192
- *
193
200
  * @param options - The options for the repl. See {@link FlowrReplOptions} for more information.
194
201
  *
195
202
  * For the execution, this function makes use of {@link replProcessAnswer}.
196
- *
197
203
  */
198
204
  async function repl({ analyzer, rl = readline.createInterface(makeDefaultReplReadline(analyzer.flowrConfig)), output = repl_main_1.standardReplOutput, historyFile = defaultHistoryFile, allowRSessionAccess = false }) {
199
205
  if (historyFile) {
@@ -212,6 +218,9 @@ async function repl({ analyzer, rl = readline.createInterface(makeDefaultReplRea
212
218
  });
213
219
  }
214
220
  }
221
+ /**
222
+ * Loads the REPL history from the given file.
223
+ */
215
224
  function loadReplHistory(historyFile) {
216
225
  try {
217
226
  if (!fs_1.default.existsSync(historyFile)) {
@@ -3,7 +3,6 @@ type Stdio = [stdin: Writable | null, stdout: Readable | null, stderr: Readable
3
3
  export type StdioProcessor = (stdio: Stdio) => void;
4
4
  /**
5
5
  * Simply captures the output of the script executed by {@link waitOnScript}.
6
- *
7
6
  * @param stdio - The standard io tuple provided by {@link waitOnScript}
8
7
  * @param onStdOutLine - The callback is executed each time we receive a new line from the standard output channel.
9
8
  * @param onStdErrLine - The callback is executed each time we receive a new line from the standard error channel.
@@ -11,7 +10,6 @@ export type StdioProcessor = (stdio: Stdio) => void;
11
10
  export declare function stdioCaptureProcessor(stdio: Stdio, onStdOutLine: (msg: string) => void, onStdErrLine: (msg: string) => void): void;
12
11
  /**
13
12
  * Run the given module with the presented arguments, and wait for it to exit.
14
- *
15
13
  * @param module - The (flowR) module that you want to use for the fork.
16
14
  * It is probably best to use {@link __dirname} so you can specify the module relative to your
17
15
  * current one.
@@ -11,7 +11,6 @@ const assert_1 = require("../../util/assert");
11
11
  const log_1 = require("../../util/log");
12
12
  /**
13
13
  * Simply captures the output of the script executed by {@link waitOnScript}.
14
- *
15
14
  * @param stdio - The standard io tuple provided by {@link waitOnScript}
16
15
  * @param onStdOutLine - The callback is executed each time we receive a new line from the standard output channel.
17
16
  * @param onStdErrLine - The callback is executed each time we receive a new line from the standard error channel.
@@ -32,7 +31,6 @@ function stdioCaptureProcessor(stdio, onStdOutLine, onStdErrLine) {
32
31
  }
33
32
  /**
34
33
  * Run the given module with the presented arguments, and wait for it to exit.
35
- *
36
34
  * @param module - The (flowR) module that you want to use for the fork.
37
35
  * It is probably best to use {@link __dirname} so you can specify the module relative to your
38
36
  * current one.
@@ -0,0 +1,14 @@
1
+ import { SliceDirection } from '../../../core/steps/all/static-slicing/00-slice';
2
+ import type { SingleSlicingCriterion, SlicingCriteria } from '../../../slicing/criterion/parse';
3
+ /**
4
+ * Checks whether the given argument represents a slicing direction with an `f` suffix.
5
+ */
6
+ export declare function sliceDirectionParser(argument: string): SliceDirection;
7
+ /**
8
+ * Parses a single slicing criterion from the given argument.
9
+ */
10
+ export declare function sliceCriterionParser(argument: string | undefined): SingleSlicingCriterion | undefined;
11
+ /**
12
+ * Parses multiple slicing criteria from the given argument.
13
+ */
14
+ export declare function sliceCriteriaParser(argument: string | undefined): SlicingCriteria | undefined;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sliceDirectionParser = sliceDirectionParser;
4
+ exports.sliceCriterionParser = sliceCriterionParser;
5
+ exports.sliceCriteriaParser = sliceCriteriaParser;
6
+ const _00_slice_1 = require("../../../core/steps/all/static-slicing/00-slice");
7
+ /**
8
+ * Checks whether the given argument represents a slicing direction with an `f` suffix.
9
+ */
10
+ function sliceDirectionParser(argument) {
11
+ const endBracket = argument.indexOf(')');
12
+ return argument[endBracket + 1] === 'f' ? _00_slice_1.SliceDirection.Forward : _00_slice_1.SliceDirection.Backward;
13
+ }
14
+ /**
15
+ * Parses a single slicing criterion from the given argument.
16
+ */
17
+ function sliceCriterionParser(argument) {
18
+ if (argument?.startsWith('(') && argument.includes(')')) {
19
+ const endBracket = argument.indexOf(')');
20
+ return argument.slice(1, endBracket);
21
+ }
22
+ }
23
+ /**
24
+ * Parses multiple slicing criteria from the given argument.
25
+ */
26
+ function sliceCriteriaParser(argument) {
27
+ if (argument?.startsWith('(') && argument.includes(')')) {
28
+ const endBracket = argument.indexOf(')');
29
+ const criteriaPart = argument.slice(1, endBracket);
30
+ const criteria = criteriaPart.split(';');
31
+ return criteria;
32
+ }
33
+ }
34
+ //# sourceMappingURL=slice-query-parser.js.map
@@ -1,3 +1,9 @@
1
1
  import type { KnownParser } from '../../r-bridge/parser';
2
+ /**
3
+ * Returns a version string for the REPL including flowR and R version.
4
+ */
2
5
  export declare function versionReplString(parser: KnownParser): Promise<string>;
6
+ /**
7
+ * Prints the version information for the REPL including flowR and R version.
8
+ */
3
9
  export declare function printVersionRepl(parser: KnownParser): Promise<void>;
@@ -3,12 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.versionReplString = versionReplString;
4
4
  exports.printVersionRepl = printVersionRepl;
5
5
  const version_1 = require("../../util/version");
6
+ /**
7
+ * Returns a version string for the REPL including flowR and R version.
8
+ */
6
9
  async function versionReplString(parser) {
7
10
  const version = await (0, version_1.retrieveVersionInformation)(parser);
8
11
  const rVersion = version.r === 'none' ? '' : version.r === 'unknown' ? ', R version unknown' : `, R v${version.r}`;
9
12
  const treeSitterVer = parser.name === 'tree-sitter' ? `, R grammar v${parser.treeSitterVersion()}` : '';
10
13
  return `flowR repl using flowR v${version.flowr}${rVersion}${treeSitterVer} (${version.engine} engine)`;
11
14
  }
15
+ /**
16
+ * Prints the version information for the REPL including flowR and R version.
17
+ */
12
18
  async function printVersionRepl(parser) {
13
19
  console.log(await versionReplString(parser));
14
20
  }
@@ -1,2 +1,10 @@
1
+ /**
2
+ * Compacts an object into a UTF-16 compressed string.
3
+ * @see {@link uncompact}
4
+ */
1
5
  export declare function compact(obj: unknown): string;
6
+ /**
7
+ * Uncompacts a UTF-16 compressed string into an object.
8
+ * @see {@link compact}
9
+ */
2
10
  export declare function uncompact(buf: string): unknown;
@@ -4,9 +4,17 @@ exports.compact = compact;
4
4
  exports.uncompact = uncompact;
5
5
  const json_1 = require("../../../util/json");
6
6
  const lz_string_1 = require("lz-string");
7
+ /**
8
+ * Compacts an object into a UTF-16 compressed string.
9
+ * @see {@link uncompact}
10
+ */
7
11
  function compact(obj) {
8
12
  return (0, lz_string_1.compressToUTF16)(JSON.stringify(obj, json_1.jsonReplacer));
9
13
  }
14
+ /**
15
+ * Uncompacts a UTF-16 compressed string into an object.
16
+ * @see {@link compact}
17
+ */
10
18
  function uncompact(buf) {
11
19
  return JSON.parse((0, lz_string_1.decompressFromUTF16)(buf));
12
20
  }
@@ -1,6 +1,5 @@
1
1
  import type { Socket } from './net';
2
- import type { TREE_SITTER_DATAFLOW_PIPELINE } from '../../../core/steps/pipeline/default-pipelines';
3
- import { DEFAULT_SLICING_PIPELINE } from '../../../core/steps/pipeline/default-pipelines';
2
+ import { type TREE_SITTER_DATAFLOW_PIPELINE, DEFAULT_SLICING_PIPELINE } from '../../../core/steps/pipeline/default-pipelines';
4
3
  import type { PipelineOutput } from '../../../core/steps/pipeline/pipeline';
5
4
  import type { DeepPartial } from 'ts-essentials';
6
5
  import type { KnownParser, ParseStepOutput } from '../../../r-bridge/parser';
@@ -28,7 +27,9 @@ export declare class FlowRServerConnection {
28
27
  private createAnalyzerForRequest;
29
28
  private handleSliceRequest;
30
29
  private handleRepl;
31
- private handleLineageRequest;
32
30
  private handleQueryRequest;
33
31
  }
32
+ /**
33
+ * Sanitizes analysis results by removing any potentially sensitive information like id maps.
34
+ */
34
35
  export declare function sanitizeAnalysisResults(parse: ParseStepOutput<string | Tree>, normalize: NormalizedAst, dataflow: DataflowInformation): DeepPartial<PipelineOutput<typeof DEFAULT_SLICING_PIPELINE | typeof TREE_SITTER_DATAFLOW_PIPELINE>>;
@@ -56,8 +56,6 @@ const default_pipelines_1 = require("../../../core/steps/pipeline/default-pipeli
56
56
  const graph_1 = require("../../../dataflow/graph/graph");
57
57
  const tmp = __importStar(require("tmp"));
58
58
  const fs_1 = __importDefault(require("fs"));
59
- const message_lineage_1 = require("./messages/message-lineage");
60
- const repl_lineage_1 = require("../commands/repl-lineage");
61
59
  const message_query_1 = require("./messages/message-query");
62
60
  const compact_1 = require("./compact");
63
61
  const _00_slice_1 = require("../../../core/steps/all/static-slicing/00-slice");
@@ -116,9 +114,6 @@ class FlowRServerConnection {
116
114
  case 'request-repl-execution':
117
115
  this.handleRepl(request.message);
118
116
  break;
119
- case 'request-lineage':
120
- void this.handleLineageRequest(request.message);
121
- break;
122
117
  case 'request-query':
123
118
  this.handleQueryRequest(request.message);
124
119
  break;
@@ -302,32 +297,6 @@ class FlowRServerConnection {
302
297
  });
303
298
  });
304
299
  }
305
- async handleLineageRequest(base) {
306
- const requestResult = (0, validate_1.validateMessage)(base, message_lineage_1.requestLineageMessage);
307
- if (requestResult.type === 'error') {
308
- (0, validate_1.answerForValidationError)(this.socket, requestResult, base.id);
309
- return;
310
- }
311
- const request = requestResult.message;
312
- this.logger.info(`[${this.name}] Received lineage request for criterion ${request.criterion}`);
313
- const fileInformation = this.fileMap.get(request.filetoken);
314
- if (!fileInformation) {
315
- (0, send_1.sendMessage)(this.socket, {
316
- id: request.id,
317
- type: 'error',
318
- fatal: false,
319
- reason: `The file token ${request.filetoken} has never been analyzed.`
320
- });
321
- return;
322
- }
323
- const analyzer = fileInformation.analyzer;
324
- const lineageIds = (0, repl_lineage_1.getLineage)(request.criterion, (await analyzer.dataflow()).graph, (await analyzer.normalize()).idMap);
325
- (0, send_1.sendMessage)(this.socket, {
326
- type: 'response-lineage',
327
- id: request.id,
328
- lineage: [...lineageIds]
329
- });
330
- }
331
300
  handleQueryRequest(base) {
332
301
  const requestResult = (0, validate_1.validateMessage)(base, message_query_1.requestQueryMessage);
333
302
  if (requestResult.type === 'error') {
@@ -364,6 +333,9 @@ class FlowRServerConnection {
364
333
  }
365
334
  }
366
335
  exports.FlowRServerConnection = FlowRServerConnection;
336
+ /**
337
+ * Sanitizes analysis results by removing any potentially sensitive information like id maps.
338
+ */
367
339
  function sanitizeAnalysisResults(parse, normalize, dataflow) {
368
340
  return {
369
341
  parse: parse,
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Provides the capability of connecting to the repl of flowr via messages.
3
- *
4
3
  * @module
5
4
  */
6
5
  import * as Joi from 'joi';
@@ -9,7 +8,6 @@ import type { FileAnalysisRequestMessage, FileAnalysisResponseMessageJson } from
9
8
  import type { ExecuteEndMessage, ExecuteIntermediateResponseMessage, ExecuteRequestMessage } from './message-repl';
10
9
  import type { SliceRequestMessage, SliceResponseMessage } from './message-slice';
11
10
  import type { FlowrErrorMessage } from './message-error';
12
- import type { LineageRequestMessage, LineageResponseMessage } from './message-lineage';
13
11
  import type { QueryRequestMessage, QueryResponseMessage } from './message-query';
14
12
  /**
15
13
  * If you send a message it must *not* contain a newline but the message must be terminated by a newline.
@@ -34,4 +32,4 @@ export declare const baseMessage: MessageDefinition<IdMessageBase>;
34
32
  /**
35
33
  * This is the main message type that should be used to represent a message in *flowR*
36
34
  */
37
- export type FlowrMessage = FlowrHelloResponseMessage | FileAnalysisRequestMessage | FileAnalysisResponseMessageJson | ExecuteRequestMessage | ExecuteIntermediateResponseMessage | ExecuteEndMessage | SliceRequestMessage | SliceResponseMessage | LineageRequestMessage | LineageResponseMessage | QueryRequestMessage | QueryResponseMessage | FlowrErrorMessage;
35
+ export type FlowrMessage = FlowrHelloResponseMessage | FileAnalysisRequestMessage | FileAnalysisResponseMessageJson | ExecuteRequestMessage | ExecuteIntermediateResponseMessage | ExecuteEndMessage | SliceRequestMessage | SliceResponseMessage | QueryRequestMessage | QueryResponseMessage | FlowrErrorMessage;
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.baseMessage = void 0;
37
37
  /**
38
38
  * Provides the capability of connecting to the repl of flowr via messages.
39
- *
40
39
  * @module
41
40
  */
42
41
  const Joi = __importStar(require("joi"));
@@ -42,9 +42,7 @@ export declare const requestAnalysisMessage: MessageDefinition<FileAnalysisReque
42
42
  *
43
43
  * The `idMap` of the normalization step (see {@link NormalizedAst}) is not serialized as it would essentially
44
44
  * repeat the complete normalized AST, you have to re-create it yourself if you require it.
45
- *
46
45
  * @note The serialization of maps and sets is controlled by the {@link jsonReplacer} as part of {@link sendMessage}.
47
- *
48
46
  * @see {@link FileAnalysisResponseMessageNQuads}
49
47
  * @see {@link FileAnalysisResponseMessageCompact}
50
48
  */
@@ -1,5 +1,5 @@
1
1
  import type { IdMessageBase, MessageDefinition } from './all-messages';
2
- import type { Queries, QueryResults, SupportedQueryTypes } from '../../../../queries/query';
2
+ import { type Queries, type QueryResults, type SupportedQueryTypes } from '../../../../queries/query';
3
3
  export interface QueryRequestMessage extends IdMessageBase {
4
4
  type: 'request-query';
5
5
  /** The {@link FileAnalysisRequestMessage#filetoken} of the file/data */
@@ -3,7 +3,6 @@ import type { IdMessageBase, MessageDefinition } from './all-messages';
3
3
  * Request the execution of the given expression as a REPL statement.
4
4
  * We strongly recommend that you make use of a unique {@link IdMessageBase#id}
5
5
  * in case the message responses happen in parallel.
6
- *
7
6
  * @see ExecuteIntermediateResponseMessage
8
7
  * @see ExecuteEndMessage
9
8
  */
@@ -1,4 +1,10 @@
1
1
  import type { IdMessageBase } from './messages/all-messages';
2
2
  import type { Socket } from './net';
3
+ /**
4
+ * Produce a new name for an unnamed socket connection
5
+ */
3
6
  export declare function getUnnamedSocketName(c: Socket): string;
7
+ /**
8
+ * Sends a message to the given socket
9
+ */
4
10
  export declare function sendMessage<T extends IdMessageBase>(c: Socket, message: T): void;
@@ -3,9 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getUnnamedSocketName = getUnnamedSocketName;
4
4
  exports.sendMessage = sendMessage;
5
5
  const json_1 = require("../../../util/json");
6
+ /**
7
+ * Produce a new name for an unnamed socket connection
8
+ */
6
9
  function getUnnamedSocketName(c) {
7
10
  return `${c.remoteAddress ?? '?'}@${c.remotePort ?? '?'}`;
8
11
  }
12
+ /**
13
+ * Sends a message to the given socket
14
+ */
9
15
  function sendMessage(c, message) {
10
16
  return (0, json_1.superBigJsonStringify)(message, '\n', msg => {
11
17
  c.write(msg);
@@ -1,4 +1,4 @@
1
- import type { Server } from './net';
1
+ import { type Server } from './net';
2
2
  import { FlowrLogger } from '../../../util/log';
3
3
  import type { FlowrConfigOptions, KnownEngines } from '../../../config';
4
4
  export declare const serverLog: FlowrLogger;
@@ -1,5 +1,5 @@
1
1
  import type * as Joi from 'joi';
2
- import type { FlowrMessage, IdMessageBase, MessageDefinition } from './messages/all-messages';
2
+ import { type FlowrMessage, type IdMessageBase, type MessageDefinition } from './messages/all-messages';
3
3
  import type { Socket } from './net';
4
4
  export interface ValidationErrorResult {
5
5
  type: 'error';
@@ -10,6 +10,15 @@ export interface SuccessValidationResult<T extends IdMessageBase> {
10
10
  message: T;
11
11
  }
12
12
  export type ValidationResult<T extends IdMessageBase> = SuccessValidationResult<T> | ValidationErrorResult;
13
+ /**
14
+ * Check that the serialized input is a valid base message.
15
+ */
13
16
  export declare function validateBaseMessageFormat(input: string): ValidationResult<IdMessageBase>;
17
+ /**
18
+ * Validates that the given input matches the given message definition.
19
+ */
14
20
  export declare function validateMessage<T extends FlowrMessage | IdMessageBase>(input: IdMessageBase, def: MessageDefinition<T>): ValidationResult<T>;
21
+ /**
22
+ * Sends an error message to the given client indicating a validation error.
23
+ */
15
24
  export declare function answerForValidationError(client: Socket, result: ValidationErrorResult, id?: string): void;
@@ -5,6 +5,9 @@ exports.validateMessage = validateMessage;
5
5
  exports.answerForValidationError = answerForValidationError;
6
6
  const send_1 = require("./send");
7
7
  const all_messages_1 = require("./messages/all-messages");
8
+ /**
9
+ * Check that the serialized input is a valid base message.
10
+ */
8
11
  function validateBaseMessageFormat(input) {
9
12
  try {
10
13
  return validateMessage(JSON.parse(input), all_messages_1.baseMessage);
@@ -13,6 +16,9 @@ function validateBaseMessageFormat(input) {
13
16
  return { type: 'error', reason: e };
14
17
  }
15
18
  }
19
+ /**
20
+ * Validates that the given input matches the given message definition.
21
+ */
16
22
  function validateMessage(input, def) {
17
23
  try {
18
24
  const result = def.schema.validate(input);
@@ -22,6 +28,9 @@ function validateMessage(input, def) {
22
28
  return { type: 'error', reason: e };
23
29
  }
24
30
  }
31
+ /**
32
+ * Sends an error message to the given client indicating a validation error.
33
+ */
25
34
  function answerForValidationError(client, result, id) {
26
35
  (0, send_1.sendMessage)(client, {
27
36
  type: 'error',
@@ -1,8 +1,7 @@
1
- import type { StdioProcessor } from './repl/execute';
1
+ import { type StdioProcessor } from './repl/execute';
2
2
  import { scripts } from './common/scripts-info';
3
3
  /**
4
4
  * Path-safe helper of {@link waitOnScript} for other flowR scripts.
5
- *
6
5
  * @see waitOnScript
7
6
  */
8
7
  export declare function runScript(name: keyof typeof scripts, args: readonly string[], io?: StdioProcessor, exitOnError?: boolean): Promise<void>;
package/cli/run-script.js CHANGED
@@ -9,7 +9,6 @@ const scripts_info_1 = require("./common/scripts-info");
9
9
  const path_1 = __importDefault(require("path"));
10
10
  /**
11
11
  * Path-safe helper of {@link waitOnScript} for other flowR scripts.
12
- *
13
12
  * @see waitOnScript
14
13
  */
15
14
  async function runScript(name, args, io, exitOnError = false) {
@@ -1,3 +1,6 @@
1
1
  import type { StatsCliOptions } from '../statistics-app';
2
2
  import type { FlowrConfigOptions } from '../../config';
3
+ /**
4
+ * The core function for the 'flowr stats' script.
5
+ */
3
6
  export declare function flowrScriptGetStats(options: StatsCliOptions, config: FlowrConfigOptions): Promise<void>;
@@ -57,6 +57,9 @@ async function collectFileArguments(options, verboseAdd, dumpJson, features) {
57
57
  console.log(`Total: ${counter} files (${skipped} skipped with archive existing)`);
58
58
  return files;
59
59
  }
60
+ /**
61
+ * The core function for the 'flowr stats' script.
62
+ */
60
63
  async function flowrScriptGetStats(options, config) {
61
64
  if (options.input.length === 0) {
62
65
  console.error('No input files given. Nothing to do. See \'--help\' if this is an error.');
@@ -1,3 +1,6 @@
1
1
  import type { StatsHelperCliOptions } from '../statistics-helper-app';
2
- import type { FlowrConfigOptions } from '../../config';
2
+ import { type FlowrConfigOptions } from '../../config';
3
+ /**
4
+ * Get statistics for a single file
5
+ */
3
6
  export declare function getStatsForSingleFile(options: StatsHelperCliOptions, config: FlowrConfigOptions): Promise<void>;
@@ -36,6 +36,9 @@ function compressFolder(folder, target) {
36
36
  console.error('Error during compression:', e);
37
37
  });
38
38
  }
39
+ /**
40
+ * Get statistics for a single file
41
+ */
39
42
  async function getStatsForSingleFile(options, config) {
40
43
  if (options['no-ansi']) {
41
44
  log_1.log.info('disabling ansi colors');