@gooddata/sdk-maql-language-server 0.0.0-stage → 11.65.0-alpha.11

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 (314) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +118 -2
  3. package/esm/completions/complete.d.ts +12 -0
  4. package/esm/completions/complete.d.ts.map +1 -0
  5. package/esm/completions/complete.js +316 -0
  6. package/esm/completions/descriptions.d.ts +42 -0
  7. package/esm/completions/descriptions.d.ts.map +1 -0
  8. package/esm/completions/descriptions.js +289 -0
  9. package/esm/completions/findContext.d.ts +19 -0
  10. package/esm/completions/findContext.d.ts.map +1 -0
  11. package/esm/completions/findContext.js +171 -0
  12. package/esm/completions/functionDescriptions.d.ts +3 -0
  13. package/esm/completions/functionDescriptions.d.ts.map +1 -0
  14. package/esm/completions/functionDescriptions.js +98 -0
  15. package/esm/completions/sort.d.ts +4 -0
  16. package/esm/completions/sort.d.ts.map +1 -0
  17. package/esm/completions/sort.js +88 -0
  18. package/esm/constants.d.ts +21 -0
  19. package/esm/constants.d.ts.map +1 -0
  20. package/esm/constants.js +22 -0
  21. package/esm/dateElementFormat.d.ts +9 -0
  22. package/esm/dateElementFormat.d.ts.map +1 -0
  23. package/esm/dateElementFormat.js +60 -0
  24. package/esm/decorations.d.ts +46 -0
  25. package/esm/decorations.d.ts.map +1 -0
  26. package/esm/decorations.js +42 -0
  27. package/esm/diagnostics.d.ts +12 -0
  28. package/esm/diagnostics.d.ts.map +1 -0
  29. package/esm/diagnostics.js +259 -0
  30. package/esm/docs/en/docs/create-metrics/maql/aggregation/approximate_count.d.ts +2 -0
  31. package/esm/docs/en/docs/create-metrics/maql/aggregation/approximate_count.d.ts.map +1 -0
  32. package/esm/docs/en/docs/create-metrics/maql/aggregation/approximate_count.js +61 -0
  33. package/esm/docs/en/docs/create-metrics/maql/aggregation/avg.d.ts +2 -0
  34. package/esm/docs/en/docs/create-metrics/maql/aggregation/avg.d.ts.map +1 -0
  35. package/esm/docs/en/docs/create-metrics/maql/aggregation/avg.js +19 -0
  36. package/esm/docs/en/docs/create-metrics/maql/aggregation/count.d.ts +2 -0
  37. package/esm/docs/en/docs/create-metrics/maql/aggregation/count.d.ts.map +1 -0
  38. package/esm/docs/en/docs/create-metrics/maql/aggregation/count.js +72 -0
  39. package/esm/docs/en/docs/create-metrics/maql/aggregation/first.d.ts +2 -0
  40. package/esm/docs/en/docs/create-metrics/maql/aggregation/first.d.ts.map +1 -0
  41. package/esm/docs/en/docs/create-metrics/maql/aggregation/first.js +41 -0
  42. package/esm/docs/en/docs/create-metrics/maql/aggregation/last.d.ts +2 -0
  43. package/esm/docs/en/docs/create-metrics/maql/aggregation/last.d.ts.map +1 -0
  44. package/esm/docs/en/docs/create-metrics/maql/aggregation/last.js +69 -0
  45. package/esm/docs/en/docs/create-metrics/maql/aggregation/max.d.ts +2 -0
  46. package/esm/docs/en/docs/create-metrics/maql/aggregation/max.d.ts.map +1 -0
  47. package/esm/docs/en/docs/create-metrics/maql/aggregation/max.js +61 -0
  48. package/esm/docs/en/docs/create-metrics/maql/aggregation/median.d.ts +2 -0
  49. package/esm/docs/en/docs/create-metrics/maql/aggregation/median.d.ts.map +1 -0
  50. package/esm/docs/en/docs/create-metrics/maql/aggregation/median.js +25 -0
  51. package/esm/docs/en/docs/create-metrics/maql/aggregation/min.d.ts +2 -0
  52. package/esm/docs/en/docs/create-metrics/maql/aggregation/min.d.ts.map +1 -0
  53. package/esm/docs/en/docs/create-metrics/maql/aggregation/min.js +63 -0
  54. package/esm/docs/en/docs/create-metrics/maql/aggregation/sum.d.ts +2 -0
  55. package/esm/docs/en/docs/create-metrics/maql/aggregation/sum.d.ts.map +1 -0
  56. package/esm/docs/en/docs/create-metrics/maql/aggregation/sum.js +20 -0
  57. package/esm/docs/en/docs/create-metrics/maql/conditionals/case.d.ts +2 -0
  58. package/esm/docs/en/docs/create-metrics/maql/conditionals/case.d.ts.map +1 -0
  59. package/esm/docs/en/docs/create-metrics/maql/conditionals/case.js +73 -0
  60. package/esm/docs/en/docs/create-metrics/maql/conditionals/if-then-else.d.ts +2 -0
  61. package/esm/docs/en/docs/create-metrics/maql/conditionals/if-then-else.d.ts.map +1 -0
  62. package/esm/docs/en/docs/create-metrics/maql/conditionals/if-then-else.js +29 -0
  63. package/esm/docs/en/docs/create-metrics/maql/conditionals/ifnull.d.ts +2 -0
  64. package/esm/docs/en/docs/create-metrics/maql/conditionals/ifnull.d.ts.map +1 -0
  65. package/esm/docs/en/docs/create-metrics/maql/conditionals/ifnull.js +96 -0
  66. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-ranking-filters.d.ts +2 -0
  67. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-ranking-filters.d.ts.map +1 -0
  68. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-ranking-filters.js +71 -0
  69. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-having-clause.d.ts +2 -0
  70. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-having-clause.d.ts.map +1 -0
  71. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-having-clause.js +65 -0
  72. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-like-clause.d.ts +2 -0
  73. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-like-clause.d.ts.map +1 -0
  74. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-like-clause.js +36 -0
  75. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-where-clause.d.ts +2 -0
  76. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-where-clause.d.ts.map +1 -0
  77. package/esm/docs/en/docs/create-metrics/maql/filters/filtering-with-the-where-clause.js +36 -0
  78. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions-except-for-attribute.d.ts +2 -0
  79. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions-except-for-attribute.d.ts.map +1 -0
  80. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions-except-for-attribute.js +21 -0
  81. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions.d.ts +2 -0
  82. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions.d.ts.map +1 -0
  83. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all-in-all-other-dimensions.js +27 -0
  84. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all.d.ts +2 -0
  85. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all.d.ts.map +1 -0
  86. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-all.js +64 -0
  87. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-attribute-all-in-all-other-dimensions.d.ts +2 -0
  88. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-attribute-all-in-all-other-dimensions.d.ts.map +1 -0
  89. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by-attribute-all-in-all-other-dimensions.js +22 -0
  90. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by.d.ts +2 -0
  91. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by.d.ts.map +1 -0
  92. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-attribute-filters/by.js +85 -0
  93. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-except.d.ts +2 -0
  94. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-except.d.ts.map +1 -0
  95. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-except.js +37 -0
  96. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-filter.d.ts +2 -0
  97. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-filter.d.ts.map +1 -0
  98. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/with-parent-filter.js +42 -0
  99. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-except.d.ts +2 -0
  100. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-except.d.ts.map +1 -0
  101. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-except.js +94 -0
  102. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-filter.d.ts +2 -0
  103. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-filter.d.ts.map +1 -0
  104. package/esm/docs/en/docs/create-metrics/maql/filters/overriding-parent/without-parent-filter.js +33 -0
  105. package/esm/docs/en/docs/create-metrics/maql/for-each.d.ts +2 -0
  106. package/esm/docs/en/docs/create-metrics/maql/for-each.d.ts.map +1 -0
  107. package/esm/docs/en/docs/create-metrics/maql/for-each.js +17 -0
  108. package/esm/docs/en/docs/create-metrics/maql/logical-operators/and.d.ts +2 -0
  109. package/esm/docs/en/docs/create-metrics/maql/logical-operators/and.d.ts.map +1 -0
  110. package/esm/docs/en/docs/create-metrics/maql/logical-operators/and.js +37 -0
  111. package/esm/docs/en/docs/create-metrics/maql/logical-operators/not.d.ts +2 -0
  112. package/esm/docs/en/docs/create-metrics/maql/logical-operators/not.d.ts.map +1 -0
  113. package/esm/docs/en/docs/create-metrics/maql/logical-operators/not.js +12 -0
  114. package/esm/docs/en/docs/create-metrics/maql/logical-operators/or.d.ts +2 -0
  115. package/esm/docs/en/docs/create-metrics/maql/logical-operators/or.d.ts.map +1 -0
  116. package/esm/docs/en/docs/create-metrics/maql/logical-operators/or.js +22 -0
  117. package/esm/docs/en/docs/create-metrics/maql/maql-and-multidimensionality.d.ts +2 -0
  118. package/esm/docs/en/docs/create-metrics/maql/maql-and-multidimensionality.d.ts.map +1 -0
  119. package/esm/docs/en/docs/create-metrics/maql/maql-and-multidimensionality.js +59 -0
  120. package/esm/docs/en/docs/create-metrics/maql/math/abs.d.ts +2 -0
  121. package/esm/docs/en/docs/create-metrics/maql/math/abs.d.ts.map +1 -0
  122. package/esm/docs/en/docs/create-metrics/maql/math/abs.js +23 -0
  123. package/esm/docs/en/docs/create-metrics/maql/math/arithmetic-operations.d.ts +2 -0
  124. package/esm/docs/en/docs/create-metrics/maql/math/arithmetic-operations.d.ts.map +1 -0
  125. package/esm/docs/en/docs/create-metrics/maql/math/arithmetic-operations.js +29 -0
  126. package/esm/docs/en/docs/create-metrics/maql/math/ceiling.d.ts +2 -0
  127. package/esm/docs/en/docs/create-metrics/maql/math/ceiling.d.ts.map +1 -0
  128. package/esm/docs/en/docs/create-metrics/maql/math/ceiling.js +21 -0
  129. package/esm/docs/en/docs/create-metrics/maql/math/exp.d.ts +2 -0
  130. package/esm/docs/en/docs/create-metrics/maql/math/exp.d.ts.map +1 -0
  131. package/esm/docs/en/docs/create-metrics/maql/math/exp.js +27 -0
  132. package/esm/docs/en/docs/create-metrics/maql/math/floor.d.ts +2 -0
  133. package/esm/docs/en/docs/create-metrics/maql/math/floor.d.ts.map +1 -0
  134. package/esm/docs/en/docs/create-metrics/maql/math/floor.js +21 -0
  135. package/esm/docs/en/docs/create-metrics/maql/math/greatest.d.ts +2 -0
  136. package/esm/docs/en/docs/create-metrics/maql/math/greatest.d.ts.map +1 -0
  137. package/esm/docs/en/docs/create-metrics/maql/math/greatest.js +13 -0
  138. package/esm/docs/en/docs/create-metrics/maql/math/least.d.ts +2 -0
  139. package/esm/docs/en/docs/create-metrics/maql/math/least.d.ts.map +1 -0
  140. package/esm/docs/en/docs/create-metrics/maql/math/least.js +13 -0
  141. package/esm/docs/en/docs/create-metrics/maql/math/ln.d.ts +2 -0
  142. package/esm/docs/en/docs/create-metrics/maql/math/ln.d.ts.map +1 -0
  143. package/esm/docs/en/docs/create-metrics/maql/math/ln.js +33 -0
  144. package/esm/docs/en/docs/create-metrics/maql/math/log.d.ts +2 -0
  145. package/esm/docs/en/docs/create-metrics/maql/math/log.d.ts.map +1 -0
  146. package/esm/docs/en/docs/create-metrics/maql/math/log.js +29 -0
  147. package/esm/docs/en/docs/create-metrics/maql/math/power.d.ts +2 -0
  148. package/esm/docs/en/docs/create-metrics/maql/math/power.d.ts.map +1 -0
  149. package/esm/docs/en/docs/create-metrics/maql/math/power.js +33 -0
  150. package/esm/docs/en/docs/create-metrics/maql/math/round.d.ts +2 -0
  151. package/esm/docs/en/docs/create-metrics/maql/math/round.d.ts.map +1 -0
  152. package/esm/docs/en/docs/create-metrics/maql/math/round.js +34 -0
  153. package/esm/docs/en/docs/create-metrics/maql/math/sign.d.ts +2 -0
  154. package/esm/docs/en/docs/create-metrics/maql/math/sign.d.ts.map +1 -0
  155. package/esm/docs/en/docs/create-metrics/maql/math/sign.js +30 -0
  156. package/esm/docs/en/docs/create-metrics/maql/math/sqrt.d.ts +2 -0
  157. package/esm/docs/en/docs/create-metrics/maql/math/sqrt.d.ts.map +1 -0
  158. package/esm/docs/en/docs/create-metrics/maql/math/sqrt.js +32 -0
  159. package/esm/docs/en/docs/create-metrics/maql/math/trunc.d.ts +2 -0
  160. package/esm/docs/en/docs/create-metrics/maql/math/trunc.d.ts.map +1 -0
  161. package/esm/docs/en/docs/create-metrics/maql/math/trunc.js +36 -0
  162. package/esm/docs/en/docs/create-metrics/maql/ranking/percentile.d.ts +2 -0
  163. package/esm/docs/en/docs/create-metrics/maql/ranking/percentile.d.ts.map +1 -0
  164. package/esm/docs/en/docs/create-metrics/maql/ranking/percentile.js +57 -0
  165. package/esm/docs/en/docs/create-metrics/maql/ranking/rank-variations.d.ts +2 -0
  166. package/esm/docs/en/docs/create-metrics/maql/ranking/rank-variations.d.ts.map +1 -0
  167. package/esm/docs/en/docs/create-metrics/maql/ranking/rank-variations.js +90 -0
  168. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-in.d.ts +2 -0
  169. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-in.d.ts.map +1 -0
  170. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-in.js +53 -0
  171. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-of.d.ts +2 -0
  172. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-of.d.ts.map +1 -0
  173. package/esm/docs/en/docs/create-metrics/maql/ranking/where-top-or-bottom-of.js +29 -0
  174. package/esm/docs/en/docs/create-metrics/maql/ranking/within-clause.d.ts +2 -0
  175. package/esm/docs/en/docs/create-metrics/maql/ranking/within-clause.d.ts.map +1 -0
  176. package/esm/docs/en/docs/create-metrics/maql/ranking/within-clause.js +101 -0
  177. package/esm/docs/en/docs/create-metrics/maql/relational-operators.d.ts +2 -0
  178. package/esm/docs/en/docs/create-metrics/maql/relational-operators.d.ts.map +1 -0
  179. package/esm/docs/en/docs/create-metrics/maql/relational-operators.js +50 -0
  180. package/esm/docs/en/docs/create-metrics/maql/runing-totals/rolling-window.d.ts +2 -0
  181. package/esm/docs/en/docs/create-metrics/maql/runing-totals/rolling-window.d.ts.map +1 -0
  182. package/esm/docs/en/docs/create-metrics/maql/runing-totals/rolling-window.js +71 -0
  183. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-total-statistical-functions.d.ts +2 -0
  184. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-total-statistical-functions.d.ts.map +1 -0
  185. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-total-statistical-functions.js +54 -0
  186. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-totals-for-core-functions.d.ts +2 -0
  187. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-totals-for-core-functions.d.ts.map +1 -0
  188. package/esm/docs/en/docs/create-metrics/maql/runing-totals/running-totals-for-core-functions.js +37 -0
  189. package/esm/docs/en/docs/create-metrics/maql/statistic/correl.d.ts +2 -0
  190. package/esm/docs/en/docs/create-metrics/maql/statistic/correl.d.ts.map +1 -0
  191. package/esm/docs/en/docs/create-metrics/maql/statistic/correl.js +47 -0
  192. package/esm/docs/en/docs/create-metrics/maql/statistic/covariance-functions.d.ts +2 -0
  193. package/esm/docs/en/docs/create-metrics/maql/statistic/covariance-functions.d.ts.map +1 -0
  194. package/esm/docs/en/docs/create-metrics/maql/statistic/covariance-functions.js +46 -0
  195. package/esm/docs/en/docs/create-metrics/maql/statistic/forecast.d.ts +2 -0
  196. package/esm/docs/en/docs/create-metrics/maql/statistic/forecast.d.ts.map +1 -0
  197. package/esm/docs/en/docs/create-metrics/maql/statistic/forecast.js +74 -0
  198. package/esm/docs/en/docs/create-metrics/maql/statistic/least-squares-functions.d.ts +2 -0
  199. package/esm/docs/en/docs/create-metrics/maql/statistic/least-squares-functions.d.ts.map +1 -0
  200. package/esm/docs/en/docs/create-metrics/maql/statistic/least-squares-functions.js +44 -0
  201. package/esm/docs/en/docs/create-metrics/maql/statistic/standard-deviation-functions.d.ts +2 -0
  202. package/esm/docs/en/docs/create-metrics/maql/statistic/standard-deviation-functions.d.ts.map +1 -0
  203. package/esm/docs/en/docs/create-metrics/maql/statistic/standard-deviation-functions.js +88 -0
  204. package/esm/docs/en/docs/create-metrics/maql/statistic/variance-functions.d.ts +2 -0
  205. package/esm/docs/en/docs/create-metrics/maql/statistic/variance-functions.d.ts.map +1 -0
  206. package/esm/docs/en/docs/create-metrics/maql/statistic/variance-functions.js +54 -0
  207. package/esm/docs/en/docs/create-metrics/maql/time/for-each.d.ts +2 -0
  208. package/esm/docs/en/docs/create-metrics/maql/time/for-each.d.ts.map +1 -0
  209. package/esm/docs/en/docs/create-metrics/maql/time/for-each.js +96 -0
  210. package/esm/docs/en/docs/create-metrics/maql/time/for-next-period.d.ts +2 -0
  211. package/esm/docs/en/docs/create-metrics/maql/time/for-next-period.d.ts.map +1 -0
  212. package/esm/docs/en/docs/create-metrics/maql/time/for-next-period.js +38 -0
  213. package/esm/docs/en/docs/create-metrics/maql/time/for-next.d.ts +2 -0
  214. package/esm/docs/en/docs/create-metrics/maql/time/for-next.d.ts.map +1 -0
  215. package/esm/docs/en/docs/create-metrics/maql/time/for-next.js +27 -0
  216. package/esm/docs/en/docs/create-metrics/maql/time/for-previous-period.d.ts +2 -0
  217. package/esm/docs/en/docs/create-metrics/maql/time/for-previous-period.d.ts.map +1 -0
  218. package/esm/docs/en/docs/create-metrics/maql/time/for-previous-period.js +26 -0
  219. package/esm/docs/en/docs/create-metrics/maql/time/for-previous.d.ts +2 -0
  220. package/esm/docs/en/docs/create-metrics/maql/time/for-previous.d.ts.map +1 -0
  221. package/esm/docs/en/docs/create-metrics/maql/time/for-previous.js +30 -0
  222. package/esm/docs/en/docs/create-metrics/maql/time/functions-for-referring-to-past-time-periods.d.ts +2 -0
  223. package/esm/docs/en/docs/create-metrics/maql/time/functions-for-referring-to-past-time-periods.d.ts.map +1 -0
  224. package/esm/docs/en/docs/create-metrics/maql/time/functions-for-referring-to-past-time-periods.js +36 -0
  225. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-add.d.ts +2 -0
  226. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-add.d.ts.map +1 -0
  227. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-add.js +53 -0
  228. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-diff.d.ts +2 -0
  229. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-diff.d.ts.map +1 -0
  230. package/esm/docs/en/docs/create-metrics/maql/time-arithmetics/datetime-diff.js +55 -0
  231. package/esm/docs/en/docs/create-metrics/maql/time-macros.d.ts +2 -0
  232. package/esm/docs/en/docs/create-metrics/maql/time-macros.d.ts.map +1 -0
  233. package/esm/docs/en/docs/create-metrics/maql/time-macros.js +79 -0
  234. package/esm/docs/index.d.ts +82 -0
  235. package/esm/docs/index.d.ts.map +1 -0
  236. package/esm/docs/index.js +143 -0
  237. package/esm/findObjects.d.ts +13 -0
  238. package/esm/findObjects.d.ts.map +1 -0
  239. package/esm/findObjects.js +73 -0
  240. package/esm/format.d.ts +4 -0
  241. package/esm/format.d.ts.map +1 -0
  242. package/esm/format.js +569 -0
  243. package/esm/highlight/convert.d.ts +3 -0
  244. package/esm/highlight/convert.d.ts.map +1 -0
  245. package/esm/highlight/convert.js +12 -0
  246. package/esm/highlight/semanticsHighlight.d.ts +47 -0
  247. package/esm/highlight/semanticsHighlight.d.ts.map +1 -0
  248. package/esm/highlight/semanticsHighlight.js +345 -0
  249. package/esm/highlight/utils.d.ts +3 -0
  250. package/esm/highlight/utils.d.ts.map +1 -0
  251. package/esm/highlight/utils.js +14 -0
  252. package/esm/hover.d.ts +23 -0
  253. package/esm/hover.d.ts.map +1 -0
  254. package/esm/hover.js +60 -0
  255. package/esm/index.d.ts +11 -0
  256. package/esm/index.d.ts.map +1 -0
  257. package/esm/index.js +9 -0
  258. package/esm/labelElements.d.ts +22 -0
  259. package/esm/labelElements.d.ts.map +1 -0
  260. package/esm/labelElements.js +224 -0
  261. package/esm/maqlLanguageService.d.ts +56 -0
  262. package/esm/maqlLanguageService.d.ts.map +1 -0
  263. package/esm/maqlLanguageService.js +104 -0
  264. package/esm/maqlObjectTypes.d.ts +17 -0
  265. package/esm/maqlObjectTypes.d.ts.map +1 -0
  266. package/esm/maqlObjectTypes.js +30 -0
  267. package/esm/maqlServer.d.ts +4 -0
  268. package/esm/maqlServer.d.ts.map +1 -0
  269. package/esm/maqlServer.js +78 -0
  270. package/esm/metadata/model.d.ts +162 -0
  271. package/esm/metadata/model.d.ts.map +1 -0
  272. package/esm/metadata/model.js +143 -0
  273. package/esm/metadata/parameters.d.ts +16 -0
  274. package/esm/metadata/parameters.d.ts.map +1 -0
  275. package/esm/metadata/parameters.js +37 -0
  276. package/esm/metadata/types.d.ts +16 -0
  277. package/esm/metadata/types.d.ts.map +1 -0
  278. package/esm/metadata/types.js +2 -0
  279. package/esm/metadataService.d.ts +56 -0
  280. package/esm/metadataService.d.ts.map +1 -0
  281. package/esm/metadataService.js +159 -0
  282. package/esm/node/main.d.ts +2 -0
  283. package/esm/node/main.d.ts.map +1 -0
  284. package/esm/node/main.js +18 -0
  285. package/esm/parameterConstraints.d.ts +5 -0
  286. package/esm/parameterConstraints.d.ts.map +1 -0
  287. package/esm/parameterConstraints.js +197 -0
  288. package/esm/parseMaql.d.ts +43 -0
  289. package/esm/parseMaql.d.ts.map +1 -0
  290. package/esm/parseMaql.js +96 -0
  291. package/esm/renderParameters.d.ts +41 -0
  292. package/esm/renderParameters.d.ts.map +1 -0
  293. package/esm/renderParameters.js +76 -0
  294. package/esm/sdk-maql-language-server.d.ts +496 -0
  295. package/esm/tests/metadata.test.helpers.d.ts +8 -0
  296. package/esm/tests/metadata.test.helpers.d.ts.map +1 -0
  297. package/esm/tests/metadata.test.helpers.js +468 -0
  298. package/esm/tokenRanges.d.ts +36 -0
  299. package/esm/tokenRanges.d.ts.map +1 -0
  300. package/esm/tokenRanges.js +55 -0
  301. package/esm/tsdoc-metadata.json +11 -0
  302. package/esm/types/hierarchy.d.ts +37 -0
  303. package/esm/types/hierarchy.d.ts.map +1 -0
  304. package/esm/types/hierarchy.js +165 -0
  305. package/esm/types/signatures.d.ts +40 -0
  306. package/esm/types/signatures.d.ts.map +1 -0
  307. package/esm/types/signatures.js +141 -0
  308. package/esm/types/typeChecking.d.ts +54 -0
  309. package/esm/types/typeChecking.d.ts.map +1 -0
  310. package/esm/types/typeChecking.js +295 -0
  311. package/esm/types/typeModel.d.ts +18 -0
  312. package/esm/types/typeModel.d.ts.map +1 -0
  313. package/esm/types/typeModel.js +84 -0
  314. package/package.json +83 -3
@@ -0,0 +1,165 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ export var MaqlType;
3
+ (function (MaqlType) {
4
+ /** Top type (supertype of all types) */
5
+ MaqlType[MaqlType["ANY"] = 0] = "ANY";
6
+ /** Abstract granularity type */
7
+ MaqlType[MaqlType["GRANULARITY"] = 1] = "GRANULARITY";
8
+ MaqlType[MaqlType["PERIODICAL_GRANULARITY"] = 2] = "PERIODICAL_GRANULARITY";
9
+ MaqlType[MaqlType["CHRONOLOGICAL_GRANULARITY"] = 3] = "CHRONOLOGICAL_GRANULARITY";
10
+ /** Abstract numeric type - facts, numbers, null */
11
+ MaqlType[MaqlType["NUMERIC"] = 4] = "NUMERIC";
12
+ /** Abstract string type - labels, strings, null */
13
+ MaqlType[MaqlType["STRING"] = 5] = "STRING";
14
+ /** Abstract date type - date labels, date strings, null */
15
+ MaqlType[MaqlType["DATE"] = 6] = "DATE";
16
+ /** Intersection of string and date, can be used as both */
17
+ MaqlType[MaqlType["STRING_AND_DATE"] = 7] = "STRING_AND_DATE";
18
+ MaqlType[MaqlType["NUMERIC_LITERAL"] = 8] = "NUMERIC_LITERAL";
19
+ MaqlType[MaqlType["INTEGER_LITERAL"] = 9] = "INTEGER_LITERAL";
20
+ MaqlType[MaqlType["STRING_LITERAL"] = 10] = "STRING_LITERAL";
21
+ MaqlType[MaqlType["NULL_LITERAL"] = 11] = "NULL_LITERAL";
22
+ MaqlType[MaqlType["DATASET"] = 12] = "DATASET";
23
+ MaqlType[MaqlType["BOOLEAN"] = 13] = "BOOLEAN";
24
+ /** Unit type - used for statements */
25
+ MaqlType[MaqlType["UNIT"] = 14] = "UNIT";
26
+ /** Bottom type (subtype of all types) - used for unresolvable nodes */
27
+ MaqlType[MaqlType["ALL"] = 15] = "ALL";
28
+ })(MaqlType || (MaqlType = {}));
29
+ /**
30
+ * Types representing values, such as numbers, texts, timestamps etc.
31
+ */
32
+ export const abstractValueTypes = [MaqlType.NUMERIC, MaqlType.STRING, MaqlType.DATE];
33
+ /**
34
+ * Direct supertypes of a type. `MaqlType.ANY` is always implicitly a supertype.
35
+ * All types are implicitly supertypes of `MaqlType.ALL`
36
+ */
37
+ const supertypes = {
38
+ [MaqlType.ANY]: [],
39
+ [MaqlType.GRANULARITY]: [],
40
+ [MaqlType.NUMERIC]: [],
41
+ [MaqlType.STRING]: [],
42
+ [MaqlType.DATE]: [],
43
+ [MaqlType.STRING_AND_DATE]: [MaqlType.STRING, MaqlType.DATE],
44
+ [MaqlType.DATASET]: [],
45
+ [MaqlType.PERIODICAL_GRANULARITY]: [MaqlType.GRANULARITY],
46
+ [MaqlType.CHRONOLOGICAL_GRANULARITY]: [MaqlType.GRANULARITY],
47
+ [MaqlType.NUMERIC_LITERAL]: [MaqlType.NUMERIC],
48
+ [MaqlType.INTEGER_LITERAL]: [MaqlType.NUMERIC_LITERAL],
49
+ [MaqlType.STRING_LITERAL]: [MaqlType.STRING_AND_DATE],
50
+ [MaqlType.NULL_LITERAL]: [MaqlType.NUMERIC, MaqlType.STRING_AND_DATE],
51
+ [MaqlType.BOOLEAN]: [],
52
+ [MaqlType.UNIT]: [],
53
+ [MaqlType.ALL]: [],
54
+ };
55
+ /**
56
+ * MAQL types placed in a tree structure, where a child node is a subtype of the parent
57
+ */
58
+ const typeHierarchy = constructTypeHierarchy();
59
+ function constructTypeHierarchy() {
60
+ const typeMap = new Map();
61
+ Object.entries(supertypes).forEach(([type, supers]) => {
62
+ const maqlType = parseInt(type);
63
+ // do not use MaqlType.ALL and MaqlType.ANY in hierarchy, as they have special-case handling
64
+ if (supers.length === 0 && maqlType !== MaqlType.ANY && maqlType !== MaqlType.ALL) {
65
+ const children = typeMap.get(MaqlType.ANY) ?? [];
66
+ children.push(maqlType);
67
+ typeMap.set(MaqlType.ANY, children);
68
+ }
69
+ else {
70
+ supers.forEach((sup) => {
71
+ const children = typeMap.get(sup) ?? [];
72
+ children.push(maqlType);
73
+ typeMap.set(sup, children);
74
+ });
75
+ }
76
+ });
77
+ return typeHierarchyNode(MaqlType.ANY, typeMap);
78
+ }
79
+ function typeHierarchyNode(type, typeMap, depth = 0) {
80
+ const childTypes = typeMap.get(type) ?? [];
81
+ return {
82
+ type,
83
+ children: childTypes.map((childType) => typeHierarchyNode(childType, typeMap, depth + 1)),
84
+ depth,
85
+ };
86
+ }
87
+ const hierarchyPath = walk(typeHierarchy);
88
+ /**
89
+ * Depth-first walk of the type hierarchy, which stores the path to the `path` argument. Includes repeated visits.
90
+ */
91
+ function walk(node, path = []) {
92
+ path.push(node);
93
+ for (const child of node.children) {
94
+ walk(child, path);
95
+ path.push(node);
96
+ }
97
+ return path;
98
+ }
99
+ function handleSpecialCases(t1, t2) {
100
+ if (t1 === MaqlType.ANY || t2 === MaqlType.ANY) {
101
+ return MaqlType.ANY;
102
+ }
103
+ if (t1 === t2 || t2 === MaqlType.ALL) {
104
+ return t1;
105
+ }
106
+ if (t1 === MaqlType.ALL) {
107
+ return t2;
108
+ }
109
+ return null;
110
+ }
111
+ function updateRangesAccumulator(acc, node, idx) {
112
+ const isNewRange = acc.type !== undefined && node.type !== acc.type;
113
+ if (isNewRange) {
114
+ acc.ranges.push([acc.index ?? 0, idx]);
115
+ }
116
+ acc.type = node.type;
117
+ acc.index = idx;
118
+ }
119
+ // find the ranges between the occurrences of the types `t1` and `t2` on a DFS walk on the type hierarchy
120
+ function findRangesBetweenTypes(t1, t2) {
121
+ const isTargetType = (type) => type === t1 || type === t2;
122
+ return hierarchyPath.reduce((acc, node, idx) => {
123
+ if (isTargetType(node.type)) {
124
+ updateRangesAccumulator(acc, node, idx);
125
+ }
126
+ return acc;
127
+ }, { ranges: [] }).ranges;
128
+ }
129
+ // for each range find a node in the hierarchy with the lowest depth - the roots of subtrees
130
+ function findSubtreeRoots(ranges) {
131
+ return ranges.map(([start, end]) => {
132
+ // get the slice of the path between the two indexes
133
+ const pathRange = hierarchyPath.slice(start, end + 1);
134
+ return pathRange.reduce((min, next) => (next.depth < min.depth ? next : min));
135
+ });
136
+ }
137
+ // choose the deepest node from the roots - the lowest root that is ancestor to both `t1` and `t2`
138
+ function findDeepestNode(nodes) {
139
+ return nodes.reduce((max, next) => (next.depth > max.depth ? next : max));
140
+ }
141
+ /**
142
+ * Solves the lowest common ancestor (LCA) problem on the MAQL type hierarchy tree for the types `t1` and `t2`
143
+ * Complexity: O(n*b) where n = number of types, b = branching factor (average number of subtypes per type)
144
+ */
145
+ export function lowestCommonAncestor(t1, t2) {
146
+ const specialCase = handleSpecialCases(t1, t2);
147
+ if (specialCase !== null) {
148
+ return specialCase;
149
+ }
150
+ const ranges = findRangesBetweenTypes(t1, t2);
151
+ const subtreeRoots = findSubtreeRoots(ranges);
152
+ const deepestAncestor = findDeepestNode(subtreeRoots);
153
+ return deepestAncestor.type;
154
+ }
155
+ export function isSubtype(type, supertype) {
156
+ if (type === MaqlType.ALL) {
157
+ // special case - MaqlType.ALL is implicitly subtype of every type
158
+ return true;
159
+ }
160
+ return withSupertypes(type).includes(supertype);
161
+ }
162
+ function withSupertypes(type) {
163
+ const sups = supertypes[type].flatMap((supertype) => withSupertypes(supertype)) ?? [];
164
+ return [type, ...(sups.length > 0 ? sups : [MaqlType.ANY])];
165
+ }
@@ -0,0 +1,40 @@
1
+ import { type AstType, type FunctionAstType, type FunctionDefinition } from "@gooddata/maql-antlr4ts";
2
+ import { MaqlType } from "./hierarchy.js";
3
+ export interface IMaqlCallParameter {
4
+ type: MaqlType;
5
+ }
6
+ export declare enum CallNotation {
7
+ FUNCTION = 0,
8
+ PREFIX = 1,
9
+ INFIX = 2,
10
+ POSTFIX = 3
11
+ }
12
+ /**
13
+ * All necessary information to infer which function or operator should be used
14
+ */
15
+ export declare class MaqlCallSignature {
16
+ readonly parameters: IMaqlCallParameter[];
17
+ readonly notation: CallNotation;
18
+ readonly name: string;
19
+ constructor(name: string, parameters: IMaqlCallParameter[], notation: CallNotation);
20
+ toString(): string;
21
+ }
22
+ /**
23
+ * Function or operator call definition, including its return parameter
24
+ */
25
+ export declare class MaqlCallDefinition extends MaqlCallSignature {
26
+ readonly returns: IMaqlCallParameter;
27
+ readonly vararg: boolean;
28
+ constructor(name: string, parameters: IMaqlCallParameter[], returns: IMaqlCallParameter, notation: CallNotation, vararg: boolean);
29
+ static create(name: string, returnType: MaqlType, parameterTypes: MaqlType[], notation?: CallNotation, vararg?: boolean): MaqlCallDefinition;
30
+ toString(): string;
31
+ }
32
+ /**
33
+ * Returns MAQL function definitions of the given `astType` with `name` or empty array if none exist.
34
+ * @param astType -
35
+ * @param name -
36
+ */
37
+ export declare function findFunctionDefinitions(astType: FunctionAstType, name: string): MaqlCallDefinition[];
38
+ export declare function transformFunctionDefinition(definition: FunctionDefinition, name: string): MaqlCallDefinition;
39
+ export declare function getCustomDefinitions(astType: AstType): MaqlCallDefinition[];
40
+ //# sourceMappingURL=signatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../src/types/signatures.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAK1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED,oBAAY,YAAY;IACpB,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,KAAK,IAAA;IACL,OAAO,IAAA;CACV;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAKtB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE;IACzC,QAAQ,CAAC,QAAQ,EAAE,YAAY;IALnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YACI,IAAI,EAAE,MAAM,EACH,UAAU,EAAE,kBAAkB,EAAE,EAChC,QAAQ,EAAE,YAAY,EAGlC;IAED,QAAQ,IAAI,MAAM,CAcjB;CACJ;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IAIjD,QAAQ,CAAC,OAAO,EAAE,kBAAkB;IAEpC,QAAQ,CAAC,MAAM,EAAE,OAAO;IAL5B,YACI,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,kBAAkB,EAAE,EACvB,OAAO,EAAE,kBAAkB,EACpC,QAAQ,EAAE,YAAY,EACb,MAAM,EAAE,OAAO,EAG3B;IAED,MAAM,CAAC,MAAM,CACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,QAAQ,EACpB,cAAc,EAAE,QAAQ,EAAE,EAC1B,QAAQ,eAAwB,EAChC,MAAM,UAAQ,GACf,kBAAkB,CAQpB;IAEQ,QAAQ,IAAI,MAAM,CAI1B;CACJ;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE,CASpG;AAED,wBAAgB,2BAA2B,CACvC,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,MAAM,GACb,kBAAkB,CAQpB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,EAAE,CA2E3E"}
@@ -0,0 +1,141 @@
1
+ // (C) 2021-2026 GoodData Corporation
2
+ import { functionDefinitions, isMaqlFunctionName, } from "@gooddata/maql-antlr4ts";
3
+ import { MaqlType } from "./hierarchy.js";
4
+ export var CallNotation;
5
+ (function (CallNotation) {
6
+ CallNotation[CallNotation["FUNCTION"] = 0] = "FUNCTION";
7
+ CallNotation[CallNotation["PREFIX"] = 1] = "PREFIX";
8
+ CallNotation[CallNotation["INFIX"] = 2] = "INFIX";
9
+ CallNotation[CallNotation["POSTFIX"] = 3] = "POSTFIX";
10
+ })(CallNotation || (CallNotation = {}));
11
+ /**
12
+ * All necessary information to infer which function or operator should be used
13
+ */
14
+ export class MaqlCallSignature {
15
+ parameters;
16
+ notation;
17
+ name;
18
+ constructor(name, parameters, notation) {
19
+ this.parameters = parameters;
20
+ this.notation = notation;
21
+ this.name = name.toUpperCase();
22
+ }
23
+ toString() {
24
+ const paramTypes = this.parameters.map((param) => MaqlType[param.type]);
25
+ switch (this.notation) {
26
+ case CallNotation.FUNCTION:
27
+ return `${this.name}(${paramTypes.join(", ")})`;
28
+ case CallNotation.PREFIX:
29
+ return `${this.name} ${paramTypes.join(" ")}`;
30
+ case CallNotation.INFIX:
31
+ return paramTypes.length > 1
32
+ ? paramTypes.join(` ${this.name} `)
33
+ : `${this.name} ${paramTypes[0]}`;
34
+ case CallNotation.POSTFIX:
35
+ return `${paramTypes.join(" ")} ${this.name}`;
36
+ }
37
+ }
38
+ }
39
+ /**
40
+ * Function or operator call definition, including its return parameter
41
+ */
42
+ export class MaqlCallDefinition extends MaqlCallSignature {
43
+ returns;
44
+ vararg;
45
+ constructor(name, parameters, returns, notation, vararg) {
46
+ super(name, parameters, notation);
47
+ this.returns = returns;
48
+ this.vararg = vararg;
49
+ }
50
+ static create(name, returnType, parameterTypes, notation = CallNotation.FUNCTION, vararg = false) {
51
+ return new MaqlCallDefinition(name, parameterTypes.map((type) => ({ type })), { type: returnType }, notation, vararg);
52
+ }
53
+ toString() {
54
+ const returnType = MaqlType[this.returns.type];
55
+ const signature = super.toString();
56
+ return `${signature} -> ${returnType}`;
57
+ }
58
+ }
59
+ /**
60
+ * Returns MAQL function definitions of the given `astType` with `name` or empty array if none exist.
61
+ * @param astType -
62
+ * @param name -
63
+ */
64
+ export function findFunctionDefinitions(astType, name) {
65
+ const funcName = name.toUpperCase();
66
+ if (!isMaqlFunctionName(funcName, astType)) {
67
+ return [];
68
+ }
69
+ const astDefs = functionDefinitions[astType];
70
+ const funcDefs = astDefs[funcName] ?? [];
71
+ return funcDefs.map((def) => transformFunctionDefinition(def, funcName));
72
+ }
73
+ export function transformFunctionDefinition(definition, name) {
74
+ return new MaqlCallDefinition(name, definition.operands.map((param) => transformParameter(param)), transformParameter(definition.returns), CallNotation.FUNCTION, definition.vararg ?? false);
75
+ }
76
+ export function getCustomDefinitions(astType) {
77
+ switch (astType) {
78
+ case "+":
79
+ case "-":
80
+ case "*":
81
+ case "/":
82
+ return [
83
+ MaqlCallDefinition.create(astType, MaqlType.NUMERIC, [MaqlType.NUMERIC, MaqlType.NUMERIC], CallNotation.INFIX),
84
+ ];
85
+ case "not":
86
+ return [
87
+ MaqlCallDefinition.create(astType, MaqlType.BOOLEAN, [MaqlType.BOOLEAN], CallNotation.PREFIX),
88
+ ];
89
+ case "and":
90
+ case "or":
91
+ return [
92
+ MaqlCallDefinition.create(astType, MaqlType.BOOLEAN, [MaqlType.BOOLEAN, MaqlType.BOOLEAN], CallNotation.INFIX),
93
+ ];
94
+ case "=":
95
+ case "<>":
96
+ case ">=":
97
+ case "<=":
98
+ case "<":
99
+ case ">":
100
+ return [
101
+ MaqlCallDefinition.create(astType, MaqlType.BOOLEAN, [MaqlType.NUMERIC, MaqlType.NUMERIC], CallNotation.INFIX),
102
+ MaqlCallDefinition.create(astType, MaqlType.BOOLEAN, [MaqlType.STRING, MaqlType.STRING], CallNotation.INFIX),
103
+ MaqlCallDefinition.create(astType, MaqlType.BOOLEAN, [MaqlType.DATE, MaqlType.DATE], CallNotation.INFIX),
104
+ ];
105
+ case "like":
106
+ case "ilike":
107
+ case "not like":
108
+ case "not ilike":
109
+ return [
110
+ MaqlCallDefinition.create(astType, MaqlType.BOOLEAN, [MaqlType.STRING, MaqlType.STRING_LITERAL], CallNotation.INFIX),
111
+ MaqlCallDefinition.create(astType, MaqlType.BOOLEAN, [MaqlType.DATE, MaqlType.STRING_LITERAL], CallNotation.INFIX),
112
+ ];
113
+ default:
114
+ return [];
115
+ }
116
+ }
117
+ function transformParameter(parameter) {
118
+ return {
119
+ type: toMaqlType(parameter.type),
120
+ };
121
+ }
122
+ function toMaqlType(type) {
123
+ switch (type) {
124
+ case "NUMERIC":
125
+ return MaqlType.NUMERIC;
126
+ case "STRING":
127
+ return MaqlType.STRING;
128
+ case "DATE":
129
+ return MaqlType.DATE;
130
+ case "DATASET":
131
+ return MaqlType.DATASET;
132
+ case "GRANULARITY_LITERAL":
133
+ return MaqlType.GRANULARITY;
134
+ case "CHRONOLOGICAL_GRANULARITY_LITERAL":
135
+ return MaqlType.CHRONOLOGICAL_GRANULARITY;
136
+ case "NUMERIC_LITERAL":
137
+ return MaqlType.NUMERIC_LITERAL;
138
+ case "INTEGER_LITERAL":
139
+ return MaqlType.INTEGER_LITERAL;
140
+ }
141
+ }
@@ -0,0 +1,54 @@
1
+ import { AbstractAstVisitor, type AstNode, type BooleanLiteralNode, type CaseNode, type ConditionalNode, type EmptyNode, type ExpressionNode, type FilterNode, type FunctionNode, type GranularityNode, type IRange, type IdentifierNode, type LastFirstValueFunctionNode, type ListNode, type NullLiteralNode, type NumberLiteralNode, type OperatorNode, type OrderByElementNode, type RankFunctionNode, type RankingFilterNode, type RunningFunctionNode, type SelectNode, type StringLiteralNode } from "@gooddata/maql-antlr4ts";
2
+ import { MaqlType } from "./hierarchy.js";
3
+ import { type TypeModel } from "./typeModel.js";
4
+ export interface ITypeConstraintsViolation {
5
+ readonly message: string;
6
+ readonly range?: IRange;
7
+ }
8
+ export declare class TypedAstNode {
9
+ readonly type: MaqlType;
10
+ readonly node: AstNode | null;
11
+ constructor(type: MaqlType, node: AstNode | null);
12
+ }
13
+ export declare class AstTypeChecker extends AbstractAstVisitor<TypedAstNode> {
14
+ readonly model: TypeModel;
15
+ constructor(model: TypeModel);
16
+ readonly typeConstraintsViolations: ITypeConstraintsViolation[];
17
+ defaultResult(): TypedAstNode;
18
+ protected mergeResultWithParent(parentNode: AstNode, result: TypedAstNode): TypedAstNode;
19
+ visitEmptyNode(node: EmptyNode): TypedAstNode;
20
+ visitSelectNode(node: SelectNode): TypedAstNode;
21
+ visitExpressionNode(node: ExpressionNode): TypedAstNode;
22
+ visitOperatorNode(node: OperatorNode): TypedAstNode;
23
+ private checkUnaryMinusOperator;
24
+ private checkBetween;
25
+ private checkIn;
26
+ visitListNode(node: ListNode): TypedAstNode;
27
+ visitFunctionNode(node: FunctionNode): TypedAstNode;
28
+ /**
29
+ * Checks functions and operators that have defined signatures.
30
+ */
31
+ private checkBySignature;
32
+ private findValidDefinitions;
33
+ visitRunningFunctionNode(node: RunningFunctionNode): TypedAstNode;
34
+ visitRankFunctionNode(node: RankFunctionNode): TypedAstNode;
35
+ visitLastFirstValueFunctionNode(node: LastFirstValueFunctionNode): TypedAstNode;
36
+ visitOrderByElement(node: OrderByElementNode): TypedAstNode;
37
+ visitRankingFilterNode(node: RankingFilterNode): TypedAstNode;
38
+ visitCaseNode(node: CaseNode): TypedAstNode;
39
+ visitConditionalNode(node: ConditionalNode): TypedAstNode;
40
+ visitIdentifierNode(node: IdentifierNode): TypedAstNode;
41
+ visitBooleanLiteralNode(node: BooleanLiteralNode): TypedAstNode;
42
+ visitNumberLiteralNode(node: NumberLiteralNode): TypedAstNode;
43
+ visitStringLiteralNode(node: StringLiteralNode): TypedAstNode;
44
+ visitNullLiteralNode(node: NullLiteralNode): TypedAstNode;
45
+ visitGranularityNode(node: GranularityNode): TypedAstNode;
46
+ visitFilterNode(node: FilterNode): TypedAstNode;
47
+ private findCompatibleSupertype;
48
+ private checkOperandCount;
49
+ private checkType;
50
+ private logIncompatibleSubtype;
51
+ private logUnexpectedOperandCount;
52
+ private logViolation;
53
+ }
54
+ //# sourceMappingURL=typeChecking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeChecking.d.ts","sourceRoot":"","sources":["../../src/types/typeChecking.ts"],"names":[],"mappings":"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"}