@qrvey/formula-lang 2.0.0-post-mvp → 2.0.0

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 (441) hide show
  1. package/CHANGELOG.md +210 -0
  2. package/README.md +32 -0
  3. package/dist/cjs/constants/index.d.ts +9 -2
  4. package/dist/cjs/constants/index.js +12 -1
  5. package/dist/cjs/constants/index.js.map +1 -1
  6. package/dist/cjs/constants/interfaces.d.ts +44 -14
  7. package/dist/cjs/errors/analyzer/index.js +1 -1
  8. package/dist/cjs/errors/analyzer/index.js.map +1 -1
  9. package/dist/cjs/errors/definitions.d.ts +27 -15
  10. package/dist/cjs/errors/definitions.js +47 -21
  11. package/dist/cjs/errors/definitions.js.map +1 -1
  12. package/dist/cjs/errors/dictionary.d.ts +6 -5
  13. package/dist/cjs/errors/dictionary.js +27 -22
  14. package/dist/cjs/errors/dictionary.js.map +1 -1
  15. package/dist/cjs/errors/index.d.ts +1 -0
  16. package/dist/cjs/errors/index.js +1 -0
  17. package/dist/cjs/errors/index.js.map +1 -1
  18. package/dist/cjs/errors/mismatch.d.ts +31 -0
  19. package/dist/cjs/errors/mismatch.js +77 -0
  20. package/dist/cjs/errors/mismatch.js.map +1 -0
  21. package/dist/cjs/functions/abs.js +1 -2
  22. package/dist/cjs/functions/abs.js.map +1 -1
  23. package/dist/cjs/functions/and.d.ts +5 -0
  24. package/dist/cjs/functions/and.js +55 -0
  25. package/dist/cjs/functions/and.js.map +1 -0
  26. package/dist/cjs/functions/concatenate.d.ts +5 -0
  27. package/dist/cjs/functions/concatenate.js +56 -0
  28. package/dist/cjs/functions/concatenate.js.map +1 -0
  29. package/dist/cjs/functions/dateadd.d.ts +5 -0
  30. package/dist/cjs/functions/dateadd.js +114 -0
  31. package/dist/cjs/functions/dateadd.js.map +1 -0
  32. package/dist/cjs/functions/datedif.js +9 -15
  33. package/dist/cjs/functions/datedif.js.map +1 -1
  34. package/dist/cjs/functions/datesubtract.d.ts +5 -0
  35. package/dist/cjs/functions/datesubtract.js +114 -0
  36. package/dist/cjs/functions/datesubtract.js.map +1 -0
  37. package/dist/cjs/functions/day.js +1 -2
  38. package/dist/cjs/functions/day.js.map +1 -1
  39. package/dist/cjs/functions/dayofweek.d.ts +5 -0
  40. package/dist/cjs/functions/dayofweek.js +90 -0
  41. package/dist/cjs/functions/dayofweek.js.map +1 -0
  42. package/dist/cjs/functions/even.d.ts +5 -0
  43. package/dist/cjs/functions/even.js +46 -0
  44. package/dist/cjs/functions/even.js.map +1 -0
  45. package/dist/cjs/functions/exp.d.ts +5 -0
  46. package/dist/cjs/functions/exp.js +42 -0
  47. package/dist/cjs/functions/exp.js.map +1 -0
  48. package/dist/cjs/functions/hour.js +1 -2
  49. package/dist/cjs/functions/hour.js.map +1 -1
  50. package/dist/cjs/functions/if.js +32 -13
  51. package/dist/cjs/functions/if.js.map +1 -1
  52. package/dist/cjs/functions/ifs.js +37 -15
  53. package/dist/cjs/functions/ifs.js.map +1 -1
  54. package/dist/cjs/functions/include.d.ts +5 -0
  55. package/dist/cjs/functions/include.js +48 -0
  56. package/dist/cjs/functions/include.js.map +1 -0
  57. package/dist/cjs/functions/index.js +54 -0
  58. package/dist/cjs/functions/index.js.map +1 -1
  59. package/dist/cjs/functions/isNull.js +53 -12
  60. package/dist/cjs/functions/isNull.js.map +1 -1
  61. package/dist/cjs/functions/left.d.ts +5 -0
  62. package/dist/cjs/functions/left.js +62 -0
  63. package/dist/cjs/functions/left.js.map +1 -0
  64. package/dist/cjs/functions/length.d.ts +5 -0
  65. package/dist/cjs/functions/length.js +45 -0
  66. package/dist/cjs/functions/length.js.map +1 -0
  67. package/dist/cjs/functions/log.d.ts +5 -0
  68. package/dist/cjs/functions/log.js +59 -0
  69. package/dist/cjs/functions/log.js.map +1 -0
  70. package/dist/cjs/functions/lower.d.ts +5 -0
  71. package/dist/cjs/functions/lower.js +42 -0
  72. package/dist/cjs/functions/lower.js.map +1 -0
  73. package/dist/cjs/functions/max.d.ts +5 -0
  74. package/dist/cjs/functions/max.js +60 -0
  75. package/dist/cjs/functions/max.js.map +1 -0
  76. package/dist/cjs/functions/mid.js +32 -13
  77. package/dist/cjs/functions/mid.js.map +1 -1
  78. package/dist/cjs/functions/min.d.ts +5 -0
  79. package/dist/cjs/functions/min.js +60 -0
  80. package/dist/cjs/functions/min.js.map +1 -0
  81. package/dist/cjs/functions/minute.js +1 -2
  82. package/dist/cjs/functions/minute.js.map +1 -1
  83. package/dist/cjs/functions/month.js +1 -2
  84. package/dist/cjs/functions/month.js.map +1 -1
  85. package/dist/cjs/functions/odd.d.ts +5 -0
  86. package/dist/cjs/functions/odd.js +46 -0
  87. package/dist/cjs/functions/odd.js.map +1 -0
  88. package/dist/cjs/functions/or.d.ts +5 -0
  89. package/dist/cjs/functions/or.js +55 -0
  90. package/dist/cjs/functions/or.js.map +1 -0
  91. package/dist/cjs/functions/power.d.ts +5 -0
  92. package/dist/cjs/functions/power.js +53 -0
  93. package/dist/cjs/functions/power.js.map +1 -0
  94. package/dist/cjs/functions/proper.d.ts +5 -0
  95. package/dist/cjs/functions/proper.js +39 -0
  96. package/dist/cjs/functions/proper.js.map +1 -0
  97. package/dist/cjs/functions/random.d.ts +5 -0
  98. package/dist/cjs/functions/random.js +34 -0
  99. package/dist/cjs/functions/random.js.map +1 -0
  100. package/dist/cjs/functions/replace.d.ts +5 -0
  101. package/dist/cjs/functions/replace.js +54 -0
  102. package/dist/cjs/functions/replace.js.map +1 -0
  103. package/dist/cjs/functions/right.d.ts +5 -0
  104. package/dist/cjs/functions/right.js +63 -0
  105. package/dist/cjs/functions/right.js.map +1 -0
  106. package/dist/cjs/functions/round.d.ts +5 -0
  107. package/dist/cjs/functions/round.js +59 -0
  108. package/dist/cjs/functions/round.js.map +1 -0
  109. package/dist/cjs/functions/rounddown.d.ts +5 -0
  110. package/dist/cjs/functions/rounddown.js +59 -0
  111. package/dist/cjs/functions/rounddown.js.map +1 -0
  112. package/dist/cjs/functions/roundup.d.ts +5 -0
  113. package/dist/cjs/functions/roundup.js +59 -0
  114. package/dist/cjs/functions/roundup.js.map +1 -0
  115. package/dist/cjs/functions/second.js +1 -2
  116. package/dist/cjs/functions/second.js.map +1 -1
  117. package/dist/cjs/functions/sqrt.d.ts +5 -0
  118. package/dist/cjs/functions/sqrt.js +46 -0
  119. package/dist/cjs/functions/sqrt.js.map +1 -0
  120. package/dist/cjs/functions/trim.d.ts +5 -0
  121. package/dist/cjs/functions/trim.js +42 -0
  122. package/dist/cjs/functions/trim.js.map +1 -0
  123. package/dist/cjs/functions/upper.d.ts +5 -0
  124. package/dist/cjs/functions/upper.js +42 -0
  125. package/dist/cjs/functions/upper.js.map +1 -0
  126. package/dist/cjs/functions/year.js +1 -2
  127. package/dist/cjs/functions/year.js.map +1 -1
  128. package/dist/cjs/grammar/generated/qformula.lang.d.ts +2 -9
  129. package/dist/cjs/grammar/generated/qformula.lang.js +58 -33
  130. package/dist/cjs/grammar/generated/qformula.lang.js.map +1 -1
  131. package/dist/cjs/grammar/generated/qformula.lang.terms.d.ts +20 -19
  132. package/dist/cjs/grammar/generated/qformula.lang.terms.js +2 -2
  133. package/dist/cjs/grammar/generated/qformula.lang.terms.js.map +1 -1
  134. package/dist/cjs/grammar/tokens.d.ts +2 -0
  135. package/dist/cjs/grammar/tokens.js +26 -0
  136. package/dist/cjs/grammar/tokens.js.map +1 -0
  137. package/dist/cjs/index.d.ts +3 -1
  138. package/dist/cjs/index.js +6 -2
  139. package/dist/cjs/index.js.map +1 -1
  140. package/dist/cjs/parser/formula-parser.d.ts +2 -1
  141. package/dist/cjs/parser/formula-parser.js +11 -12
  142. package/dist/cjs/parser/formula-parser.js.map +1 -1
  143. package/dist/cjs/parser/json-parser.js +73 -27
  144. package/dist/cjs/parser/json-parser.js.map +1 -1
  145. package/dist/cjs/transpiler/columnTranspilation.d.ts +1 -1
  146. package/dist/cjs/transpiler/columnTranspilation.js +22 -4
  147. package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
  148. package/dist/cjs/transpiler/index.js +104 -17
  149. package/dist/cjs/transpiler/index.js.map +1 -1
  150. package/dist/cjs/transpiler/validateFuncStructure.d.ts +1 -1
  151. package/dist/cjs/transpiler/validateFuncStructure.js +65 -17
  152. package/dist/cjs/transpiler/validateFuncStructure.js.map +1 -1
  153. package/dist/cjs/utils/addDecimalPointIfNeeded.d.ts +3 -0
  154. package/dist/cjs/utils/addDecimalPointIfNeeded.js +19 -0
  155. package/dist/cjs/utils/addDecimalPointIfNeeded.js.map +1 -0
  156. package/dist/cjs/utils/cleanInvalidItemsInContext.d.ts +3 -0
  157. package/dist/cjs/utils/cleanInvalidItemsInContext.js +28 -0
  158. package/dist/cjs/utils/cleanInvalidItemsInContext.js.map +1 -0
  159. package/dist/cjs/utils/elasticsearch/index.js +33 -0
  160. package/dist/cjs/utils/elasticsearch/index.js.map +1 -1
  161. package/dist/cjs/utils/elasticsearch/scripts.d.ts +16 -1
  162. package/dist/cjs/utils/elasticsearch/scripts.js +150 -12
  163. package/dist/cjs/utils/elasticsearch/scripts.js.map +1 -1
  164. package/dist/cjs/utils/escapeCharacters.d.ts +2 -0
  165. package/dist/cjs/utils/escapeCharacters.js +41 -0
  166. package/dist/cjs/utils/escapeCharacters.js.map +1 -0
  167. package/dist/cjs/utils/getNumericValueFromArgument.d.ts +3 -0
  168. package/dist/cjs/utils/getNumericValueFromArgument.js +32 -0
  169. package/dist/cjs/utils/getNumericValueFromArgument.js.map +1 -0
  170. package/dist/cjs/utils/getValidDataTypeParam.d.ts +3 -0
  171. package/dist/cjs/utils/getValidDataTypeParam.js +10 -0
  172. package/dist/cjs/utils/getValidDataTypeParam.js.map +1 -0
  173. package/dist/cjs/utils/getVariableType.js +2 -0
  174. package/dist/cjs/utils/getVariableType.js.map +1 -1
  175. package/dist/cjs/utils/greaterThanOrEqualToReference.d.ts +3 -0
  176. package/dist/cjs/utils/greaterThanOrEqualToReference.js +20 -0
  177. package/dist/cjs/utils/greaterThanOrEqualToReference.js.map +1 -0
  178. package/dist/cjs/utils/greaterThanReference.d.ts +3 -0
  179. package/dist/cjs/utils/greaterThanReference.js +19 -0
  180. package/dist/cjs/utils/greaterThanReference.js.map +1 -0
  181. package/dist/cjs/utils/index.d.ts +1 -0
  182. package/dist/cjs/utils/index.js +2 -1
  183. package/dist/cjs/utils/index.js.map +1 -1
  184. package/dist/cjs/utils/isAColumn.d.ts +2 -3
  185. package/dist/cjs/utils/isAColumn.js +2 -6
  186. package/dist/cjs/utils/isAColumn.js.map +1 -1
  187. package/dist/cjs/utils/isALiteral.d.ts +2 -0
  188. package/dist/cjs/utils/isALiteral.js +9 -0
  189. package/dist/cjs/utils/isALiteral.js.map +1 -0
  190. package/dist/cjs/utils/isAValidPower.d.ts +3 -0
  191. package/dist/cjs/utils/isAValidPower.js +21 -0
  192. package/dist/cjs/utils/isAValidPower.js.map +1 -0
  193. package/dist/cjs/utils/isAnAllowedValue.d.ts +2 -0
  194. package/dist/cjs/utils/isAnAllowedValue.js +20 -0
  195. package/dist/cjs/utils/isAnAllowedValue.js.map +1 -0
  196. package/dist/cjs/utils/isBetweenInclusiveRange.d.ts +3 -0
  197. package/dist/cjs/utils/isBetweenInclusiveRange.js +21 -0
  198. package/dist/cjs/utils/isBetweenInclusiveRange.js.map +1 -0
  199. package/dist/cjs/utils/isBooleanExpression.d.ts +1 -1
  200. package/dist/cjs/utils/isBooleanExpression.js +9 -5
  201. package/dist/cjs/utils/isBooleanExpression.js.map +1 -1
  202. package/dist/cjs/utils/isDateParam.js +8 -2
  203. package/dist/cjs/utils/isDateParam.js.map +1 -1
  204. package/dist/cjs/utils/isInteger.d.ts +3 -0
  205. package/dist/cjs/utils/isInteger.js +25 -0
  206. package/dist/cjs/utils/isInteger.js.map +1 -0
  207. package/dist/cjs/utils/isLongLiteralNumber.js +2 -1
  208. package/dist/cjs/utils/isLongLiteralNumber.js.map +1 -1
  209. package/dist/cjs/utils/isNumberParam.js +8 -2
  210. package/dist/cjs/utils/isNumberParam.js.map +1 -1
  211. package/dist/cjs/utils/isSameAndValidRecursiveDataType.d.ts +3 -0
  212. package/dist/cjs/utils/isSameAndValidRecursiveDataType.js +32 -0
  213. package/dist/cjs/utils/isSameAndValidRecursiveDataType.js.map +1 -0
  214. package/dist/cjs/utils/isStringParam.js +8 -2
  215. package/dist/cjs/utils/isStringParam.js.map +1 -1
  216. package/dist/cjs/utils/primitiveFunctions.d.ts +4 -0
  217. package/dist/cjs/utils/primitiveFunctions.js +11 -1
  218. package/dist/cjs/utils/primitiveFunctions.js.map +1 -1
  219. package/dist/module/constants/index.d.ts +9 -2
  220. package/dist/module/constants/index.js +11 -0
  221. package/dist/module/constants/index.js.map +1 -1
  222. package/dist/module/constants/interfaces.d.ts +44 -14
  223. package/dist/module/errors/analyzer/index.js +1 -1
  224. package/dist/module/errors/analyzer/index.js.map +1 -1
  225. package/dist/module/errors/definitions.d.ts +27 -15
  226. package/dist/module/errors/definitions.js +41 -17
  227. package/dist/module/errors/definitions.js.map +1 -1
  228. package/dist/module/errors/dictionary.d.ts +6 -5
  229. package/dist/module/errors/dictionary.js +27 -22
  230. package/dist/module/errors/dictionary.js.map +1 -1
  231. package/dist/module/errors/index.d.ts +1 -0
  232. package/dist/module/errors/index.js +1 -0
  233. package/dist/module/errors/index.js.map +1 -1
  234. package/dist/module/errors/mismatch.d.ts +31 -0
  235. package/dist/module/errors/mismatch.js +72 -0
  236. package/dist/module/errors/mismatch.js.map +1 -0
  237. package/dist/module/functions/abs.js +1 -2
  238. package/dist/module/functions/abs.js.map +1 -1
  239. package/dist/module/functions/and.d.ts +5 -0
  240. package/dist/module/functions/and.js +52 -0
  241. package/dist/module/functions/and.js.map +1 -0
  242. package/dist/module/functions/concatenate.d.ts +5 -0
  243. package/dist/module/functions/concatenate.js +53 -0
  244. package/dist/module/functions/concatenate.js.map +1 -0
  245. package/dist/module/functions/dateadd.d.ts +5 -0
  246. package/dist/module/functions/dateadd.js +111 -0
  247. package/dist/module/functions/dateadd.js.map +1 -0
  248. package/dist/module/functions/datedif.js +9 -15
  249. package/dist/module/functions/datedif.js.map +1 -1
  250. package/dist/module/functions/datesubtract.d.ts +5 -0
  251. package/dist/module/functions/datesubtract.js +111 -0
  252. package/dist/module/functions/datesubtract.js.map +1 -0
  253. package/dist/module/functions/day.js +1 -2
  254. package/dist/module/functions/day.js.map +1 -1
  255. package/dist/module/functions/dayofweek.d.ts +5 -0
  256. package/dist/module/functions/dayofweek.js +87 -0
  257. package/dist/module/functions/dayofweek.js.map +1 -0
  258. package/dist/module/functions/even.d.ts +5 -0
  259. package/dist/module/functions/even.js +43 -0
  260. package/dist/module/functions/even.js.map +1 -0
  261. package/dist/module/functions/exp.d.ts +5 -0
  262. package/dist/module/functions/exp.js +39 -0
  263. package/dist/module/functions/exp.js.map +1 -0
  264. package/dist/module/functions/hour.js +1 -2
  265. package/dist/module/functions/hour.js.map +1 -1
  266. package/dist/module/functions/if.js +33 -14
  267. package/dist/module/functions/if.js.map +1 -1
  268. package/dist/module/functions/ifs.js +38 -16
  269. package/dist/module/functions/ifs.js.map +1 -1
  270. package/dist/module/functions/include.d.ts +5 -0
  271. package/dist/module/functions/include.js +45 -0
  272. package/dist/module/functions/include.js.map +1 -0
  273. package/dist/module/functions/index.js +54 -0
  274. package/dist/module/functions/index.js.map +1 -1
  275. package/dist/module/functions/isNull.js +55 -14
  276. package/dist/module/functions/isNull.js.map +1 -1
  277. package/dist/module/functions/left.d.ts +5 -0
  278. package/dist/module/functions/left.js +59 -0
  279. package/dist/module/functions/left.js.map +1 -0
  280. package/dist/module/functions/length.d.ts +5 -0
  281. package/dist/module/functions/length.js +42 -0
  282. package/dist/module/functions/length.js.map +1 -0
  283. package/dist/module/functions/log.d.ts +5 -0
  284. package/dist/module/functions/log.js +56 -0
  285. package/dist/module/functions/log.js.map +1 -0
  286. package/dist/module/functions/lower.d.ts +5 -0
  287. package/dist/module/functions/lower.js +39 -0
  288. package/dist/module/functions/lower.js.map +1 -0
  289. package/dist/module/functions/max.d.ts +5 -0
  290. package/dist/module/functions/max.js +57 -0
  291. package/dist/module/functions/max.js.map +1 -0
  292. package/dist/module/functions/mid.js +32 -13
  293. package/dist/module/functions/mid.js.map +1 -1
  294. package/dist/module/functions/min.d.ts +5 -0
  295. package/dist/module/functions/min.js +57 -0
  296. package/dist/module/functions/min.js.map +1 -0
  297. package/dist/module/functions/minute.js +1 -2
  298. package/dist/module/functions/minute.js.map +1 -1
  299. package/dist/module/functions/month.js +1 -2
  300. package/dist/module/functions/month.js.map +1 -1
  301. package/dist/module/functions/odd.d.ts +5 -0
  302. package/dist/module/functions/odd.js +43 -0
  303. package/dist/module/functions/odd.js.map +1 -0
  304. package/dist/module/functions/or.d.ts +5 -0
  305. package/dist/module/functions/or.js +52 -0
  306. package/dist/module/functions/or.js.map +1 -0
  307. package/dist/module/functions/power.d.ts +5 -0
  308. package/dist/module/functions/power.js +50 -0
  309. package/dist/module/functions/power.js.map +1 -0
  310. package/dist/module/functions/proper.d.ts +5 -0
  311. package/dist/module/functions/proper.js +36 -0
  312. package/dist/module/functions/proper.js.map +1 -0
  313. package/dist/module/functions/random.d.ts +5 -0
  314. package/dist/module/functions/random.js +31 -0
  315. package/dist/module/functions/random.js.map +1 -0
  316. package/dist/module/functions/replace.d.ts +5 -0
  317. package/dist/module/functions/replace.js +51 -0
  318. package/dist/module/functions/replace.js.map +1 -0
  319. package/dist/module/functions/right.d.ts +5 -0
  320. package/dist/module/functions/right.js +60 -0
  321. package/dist/module/functions/right.js.map +1 -0
  322. package/dist/module/functions/round.d.ts +5 -0
  323. package/dist/module/functions/round.js +56 -0
  324. package/dist/module/functions/round.js.map +1 -0
  325. package/dist/module/functions/rounddown.d.ts +5 -0
  326. package/dist/module/functions/rounddown.js +56 -0
  327. package/dist/module/functions/rounddown.js.map +1 -0
  328. package/dist/module/functions/roundup.d.ts +5 -0
  329. package/dist/module/functions/roundup.js +56 -0
  330. package/dist/module/functions/roundup.js.map +1 -0
  331. package/dist/module/functions/second.js +1 -2
  332. package/dist/module/functions/second.js.map +1 -1
  333. package/dist/module/functions/sqrt.d.ts +5 -0
  334. package/dist/module/functions/sqrt.js +43 -0
  335. package/dist/module/functions/sqrt.js.map +1 -0
  336. package/dist/module/functions/trim.d.ts +5 -0
  337. package/dist/module/functions/trim.js +39 -0
  338. package/dist/module/functions/trim.js.map +1 -0
  339. package/dist/module/functions/upper.d.ts +5 -0
  340. package/dist/module/functions/upper.js +39 -0
  341. package/dist/module/functions/upper.js.map +1 -0
  342. package/dist/module/functions/year.js +1 -2
  343. package/dist/module/functions/year.js.map +1 -1
  344. package/dist/module/grammar/generated/qformula.lang.d.ts +2 -9
  345. package/dist/module/grammar/generated/qformula.lang.js +58 -33
  346. package/dist/module/grammar/generated/qformula.lang.js.map +1 -1
  347. package/dist/module/grammar/generated/qformula.lang.terms.d.ts +20 -19
  348. package/dist/module/grammar/generated/qformula.lang.terms.js +1 -1
  349. package/dist/module/grammar/generated/qformula.lang.terms.js.map +1 -1
  350. package/dist/module/grammar/tokens.d.ts +2 -0
  351. package/dist/module/grammar/tokens.js +23 -0
  352. package/dist/module/grammar/tokens.js.map +1 -0
  353. package/dist/module/index.d.ts +3 -1
  354. package/dist/module/index.js +3 -1
  355. package/dist/module/index.js.map +1 -1
  356. package/dist/module/parser/formula-parser.d.ts +2 -1
  357. package/dist/module/parser/formula-parser.js +9 -11
  358. package/dist/module/parser/formula-parser.js.map +1 -1
  359. package/dist/module/parser/json-parser.js +75 -29
  360. package/dist/module/parser/json-parser.js.map +1 -1
  361. package/dist/module/transpiler/columnTranspilation.d.ts +1 -1
  362. package/dist/module/transpiler/columnTranspilation.js +22 -4
  363. package/dist/module/transpiler/columnTranspilation.js.map +1 -1
  364. package/dist/module/transpiler/index.js +104 -17
  365. package/dist/module/transpiler/index.js.map +1 -1
  366. package/dist/module/transpiler/validateFuncStructure.d.ts +1 -1
  367. package/dist/module/transpiler/validateFuncStructure.js +65 -17
  368. package/dist/module/transpiler/validateFuncStructure.js.map +1 -1
  369. package/dist/module/utils/addDecimalPointIfNeeded.d.ts +3 -0
  370. package/dist/module/utils/addDecimalPointIfNeeded.js +15 -0
  371. package/dist/module/utils/addDecimalPointIfNeeded.js.map +1 -0
  372. package/dist/module/utils/cleanInvalidItemsInContext.d.ts +3 -0
  373. package/dist/module/utils/cleanInvalidItemsInContext.js +24 -0
  374. package/dist/module/utils/cleanInvalidItemsInContext.js.map +1 -0
  375. package/dist/module/utils/elasticsearch/index.js +34 -1
  376. package/dist/module/utils/elasticsearch/index.js.map +1 -1
  377. package/dist/module/utils/elasticsearch/scripts.d.ts +16 -1
  378. package/dist/module/utils/elasticsearch/scripts.js +149 -11
  379. package/dist/module/utils/elasticsearch/scripts.js.map +1 -1
  380. package/dist/module/utils/escapeCharacters.d.ts +2 -0
  381. package/dist/module/utils/escapeCharacters.js +37 -0
  382. package/dist/module/utils/escapeCharacters.js.map +1 -0
  383. package/dist/module/utils/getNumericValueFromArgument.d.ts +3 -0
  384. package/dist/module/utils/getNumericValueFromArgument.js +27 -0
  385. package/dist/module/utils/getNumericValueFromArgument.js.map +1 -0
  386. package/dist/module/utils/getValidDataTypeParam.d.ts +3 -0
  387. package/dist/module/utils/getValidDataTypeParam.js +6 -0
  388. package/dist/module/utils/getValidDataTypeParam.js.map +1 -0
  389. package/dist/module/utils/getVariableType.js +2 -0
  390. package/dist/module/utils/getVariableType.js.map +1 -1
  391. package/dist/module/utils/greaterThanOrEqualToReference.d.ts +3 -0
  392. package/dist/module/utils/greaterThanOrEqualToReference.js +16 -0
  393. package/dist/module/utils/greaterThanOrEqualToReference.js.map +1 -0
  394. package/dist/module/utils/greaterThanReference.d.ts +3 -0
  395. package/dist/module/utils/greaterThanReference.js +15 -0
  396. package/dist/module/utils/greaterThanReference.js.map +1 -0
  397. package/dist/module/utils/index.d.ts +1 -0
  398. package/dist/module/utils/index.js +2 -1
  399. package/dist/module/utils/index.js.map +1 -1
  400. package/dist/module/utils/isAColumn.d.ts +2 -3
  401. package/dist/module/utils/isAColumn.js +2 -6
  402. package/dist/module/utils/isAColumn.js.map +1 -1
  403. package/dist/module/utils/isALiteral.d.ts +2 -0
  404. package/dist/module/utils/isALiteral.js +5 -0
  405. package/dist/module/utils/isALiteral.js.map +1 -0
  406. package/dist/module/utils/isAValidPower.d.ts +3 -0
  407. package/dist/module/utils/isAValidPower.js +17 -0
  408. package/dist/module/utils/isAValidPower.js.map +1 -0
  409. package/dist/module/utils/isAnAllowedValue.d.ts +2 -0
  410. package/dist/module/utils/isAnAllowedValue.js +16 -0
  411. package/dist/module/utils/isAnAllowedValue.js.map +1 -0
  412. package/dist/module/utils/isBetweenInclusiveRange.d.ts +3 -0
  413. package/dist/module/utils/isBetweenInclusiveRange.js +17 -0
  414. package/dist/module/utils/isBetweenInclusiveRange.js.map +1 -0
  415. package/dist/module/utils/isBooleanExpression.d.ts +1 -1
  416. package/dist/module/utils/isBooleanExpression.js +9 -5
  417. package/dist/module/utils/isBooleanExpression.js.map +1 -1
  418. package/dist/module/utils/isDateParam.js +8 -2
  419. package/dist/module/utils/isDateParam.js.map +1 -1
  420. package/dist/module/utils/isInteger.d.ts +3 -0
  421. package/dist/module/utils/isInteger.js +21 -0
  422. package/dist/module/utils/isInteger.js.map +1 -0
  423. package/dist/module/utils/isLongLiteralNumber.js +2 -1
  424. package/dist/module/utils/isLongLiteralNumber.js.map +1 -1
  425. package/dist/module/utils/isNumberParam.js +8 -2
  426. package/dist/module/utils/isNumberParam.js.map +1 -1
  427. package/dist/module/utils/isSameAndValidRecursiveDataType.d.ts +3 -0
  428. package/dist/module/utils/isSameAndValidRecursiveDataType.js +28 -0
  429. package/dist/module/utils/isSameAndValidRecursiveDataType.js.map +1 -0
  430. package/dist/module/utils/isStringParam.js +8 -2
  431. package/dist/module/utils/isStringParam.js.map +1 -1
  432. package/dist/module/utils/primitiveFunctions.d.ts +4 -0
  433. package/dist/module/utils/primitiveFunctions.js +8 -0
  434. package/dist/module/utils/primitiveFunctions.js.map +1 -1
  435. package/package.json +1 -1
  436. package/dist/cjs/utils/isNotAColumn.d.ts +0 -3
  437. package/dist/cjs/utils/isNotAColumn.js +0 -13
  438. package/dist/cjs/utils/isNotAColumn.js.map +0 -1
  439. package/dist/module/utils/isNotAColumn.d.ts +0 -3
  440. package/dist/module/utils/isNotAColumn.js +0 -9
  441. package/dist/module/utils/isNotAColumn.js.map +0 -1
@@ -1,14 +1,16 @@
1
1
  import { AST_PRIMITIVES, AST_TYPES } from '../constants';
2
2
  import { getNodeValue, getMonthMaxDayAllowed, isValidDate, getVariableType, getVariableContext, } from '../utils';
3
3
  import { calculateNodeSyntaxErrors } from './syntax-errors';
4
- import { MissingParenthesisError, NotAllowedExpressionError } from '../errors';
4
+ import { MissingParenthesisError, NotAllowedOperationError, CircularDependencyError, } from '../errors';
5
5
  import { primitiveIsIncluded } from '../utils/primitiveFunctions';
6
- import { transformFunctionExpression } from './formula-parser';
6
+ import { createPositionASTFromSyntaxNode, transformFunctionExpression, } from './formula-parser';
7
+ import { QFormulaLang } from '../grammar/qformula.grammar';
7
8
  const PARSER_VERSION = '0.0.0';
8
9
  const LANG_NAME = 'QrveyLang';
9
10
  export function calculateAST(program, tree, context) {
10
11
  var _a;
11
- const startNode = tree.topNode;
12
+ const cursor = tree.cursor();
13
+ const startNode = cursor.node;
12
14
  if (!startNode)
13
15
  return;
14
16
  const syntaxErrors = calculateNodeSyntaxErrors(program, startNode);
@@ -18,7 +20,7 @@ export function calculateAST(program, tree, context) {
18
20
  formulaFunctions: [],
19
21
  flatBody: [],
20
22
  };
21
- const body = transformNode(program, startNode, inference, context);
23
+ const body = transformNode(program, startNode, inference, context, cursor);
22
24
  const { errorList: errors, formulaVariables: variables, formulaFunctions, flatBody, } = inference;
23
25
  return {
24
26
  type: AST_TYPES.program,
@@ -35,7 +37,8 @@ export function calculateAST(program, tree, context) {
35
37
  primitive: (_a = body === null || body === void 0 ? void 0 : body.primitive) !== null && _a !== void 0 ? _a : AST_PRIMITIVES.UNKNOWN,
36
38
  };
37
39
  }
38
- function transformNode(program, node, inference, context) {
40
+ function transformNode(program, refNode, inference, context, cursor) {
41
+ const node = refNode !== null && refNode !== void 0 ? refNode : cursor === null || cursor === void 0 ? void 0 : cursor.node;
39
42
  if (!node)
40
43
  return undefined;
41
44
  let resultNode;
@@ -68,17 +71,41 @@ function transformNode(program, node, inference, context) {
68
71
  resultNode = transformVariableValue(program, node, inference, context);
69
72
  break;
70
73
  default:
71
- return node.firstChild
72
- ? transformNode(program, node.firstChild, inference, context)
74
+ return (cursor === null || cursor === void 0 ? void 0 : cursor.next()) || node.firstChild
75
+ ? transformNode(program, node.firstChild, inference, context, cursor)
73
76
  : undefined;
74
77
  }
75
78
  if (resultNode !== undefined)
76
79
  inference.flatBody.push(resultNode);
77
80
  return resultNode;
78
81
  }
79
- const VALID_STRING_DATE_BINARY_OPERATORS = ['=', '<>'];
80
- function isValidStringDateBinaryOperation(logicOperator) {
81
- return VALID_STRING_DATE_BINARY_OPERATORS.includes(logicOperator);
82
+ const VALID_OPERATIONS_BY_TYPE = {
83
+ [AST_PRIMITIVES.NUMBER]: [
84
+ '+',
85
+ '-',
86
+ '*',
87
+ '/',
88
+ '<',
89
+ '<=',
90
+ '>',
91
+ '>=',
92
+ '=',
93
+ '<>',
94
+ ],
95
+ [AST_PRIMITIVES.STRING]: ['=', '<>'],
96
+ [AST_PRIMITIVES.DATE]: ['=', '<>'],
97
+ [AST_PRIMITIVES.BOOLEAN]: [],
98
+ [AST_PRIMITIVES.UNKNOWN]: [],
99
+ };
100
+ function operatorIsValidForOperation(operator, leftPrimitive, rightPrimitive) {
101
+ const allowedOperators = calculateValidOperatorsByType(leftPrimitive, rightPrimitive);
102
+ return allowedOperators.includes(operator);
103
+ }
104
+ function calculateValidOperatorsByType(leftPrimitive, rightPrimitive) {
105
+ if (leftPrimitive === rightPrimitive && !Array.isArray(leftPrimitive)) {
106
+ return VALID_OPERATIONS_BY_TYPE[leftPrimitive];
107
+ }
108
+ return [];
82
109
  }
83
110
  function calculateBinaryElements(program, node, left, right) {
84
111
  const leftPrimitive = left === null || left === void 0 ? void 0 : left.primitive;
@@ -87,23 +114,17 @@ function calculateBinaryElements(program, node, left, right) {
87
114
  const arithOperator = node.getChild('ArithOp');
88
115
  const leftIsAValidNumber = leftPrimitive === AST_PRIMITIVES.NUMBER;
89
116
  const rightIsAValidNumber = rightPrimitive === AST_PRIMITIVES.NUMBER;
90
- const leftIsAValidString = leftPrimitive === AST_PRIMITIVES.STRING;
91
- const rightIsAValidString = rightPrimitive === AST_PRIMITIVES.STRING;
92
- const leftIsAValidDate = leftPrimitive === AST_PRIMITIVES.DATE;
93
- const rightIsAValidDate = rightPrimitive === AST_PRIMITIVES.DATE;
94
117
  const operatorNode = (logicOperator !== null && logicOperator !== void 0 ? logicOperator : arithOperator);
95
118
  const operator = getNodeValue(program, operatorNode);
119
+ const operatorPosition = !operatorNode
120
+ ? undefined
121
+ : createPositionASTFromSyntaxNode(operatorNode);
122
+ const validOperators = calculateValidOperatorsByType(leftPrimitive, rightPrimitive);
96
123
  // primitive is number if arithOperator is not null and both left and right are numbers
97
124
  // primitive is boolean if logicOperator is not null and both left and right are booleans
98
125
  let primitive = AST_PRIMITIVES.UNKNOWN;
99
126
  if (logicOperator) {
100
- if ((leftPrimitive === rightPrimitive &&
101
- !leftIsAValidString &&
102
- !leftIsAValidDate) ||
103
- (((leftIsAValidString && rightIsAValidString) ||
104
- (leftIsAValidDate && rightIsAValidDate)) &&
105
- // string and date operation only with allowed operators
106
- isValidStringDateBinaryOperation(operator))) {
127
+ if (operatorIsValidForOperation(operator, leftPrimitive, rightPrimitive)) {
107
128
  primitive = AST_PRIMITIVES.BOOLEAN;
108
129
  }
109
130
  }
@@ -118,25 +139,29 @@ function calculateBinaryElements(program, node, left, right) {
118
139
  return {
119
140
  primitive,
120
141
  operator,
142
+ operatorNode: operatorPosition,
121
143
  hasInvalidError,
144
+ validOperators,
122
145
  };
123
146
  }
124
147
  function transformBinaryExpression(program, node, inference, context) {
125
148
  const [leftNode, rightNode] = node.getChildren('Expression');
126
149
  const left = transformNode(program, leftNode, inference, context);
127
150
  const right = transformNode(program, rightNode, inference, context);
128
- const { primitive, operator, hasInvalidError } = calculateBinaryElements(program, node, left, right);
151
+ const { primitive, operator, operatorNode, hasInvalidError, validOperators, } = calculateBinaryElements(program, node, left, right);
129
152
  const binaryAST = {
130
153
  operator,
154
+ operatorNode,
131
155
  type: AST_TYPES.binaryExpression,
132
156
  left,
133
157
  right,
134
158
  from: node.from,
135
159
  to: node.to,
136
160
  primitive,
161
+ validOperators,
137
162
  };
138
163
  if (hasInvalidError) {
139
- inference.errorList.push(new NotAllowedExpressionError(binaryAST));
164
+ inference.errorList.push(new NotAllowedOperationError(binaryAST));
140
165
  }
141
166
  return binaryAST;
142
167
  }
@@ -147,16 +172,19 @@ function transformUnaryExpression(program, node, inference, context) {
147
172
  const primitive = primitiveIsIncluded(right === null || right === void 0 ? void 0 : right.primitive, AST_PRIMITIVES.NUMBER, AST_PRIMITIVES.BOOLEAN)
148
173
  ? right.primitive
149
174
  : AST_PRIMITIVES.UNKNOWN;
175
+ const validOperators = (right === null || right === void 0 ? void 0 : right.primitive) === AST_PRIMITIVES.NUMBER ? ['+', '-'] : [];
150
176
  const unaryAST = {
151
177
  operator: getNodeValue(program, operator),
178
+ operatorNode: createPositionASTFromSyntaxNode(operator),
152
179
  type: AST_TYPES.unaryExpression,
153
180
  right,
154
181
  from: node.from,
155
182
  to: node.to,
156
183
  primitive,
184
+ validOperators,
157
185
  };
158
186
  if (!rightNode) {
159
- inference.errorList.push(new NotAllowedExpressionError(unaryAST));
187
+ inference.errorList.push(new NotAllowedOperationError(unaryAST));
160
188
  }
161
189
  return unaryAST;
162
190
  }
@@ -167,10 +195,14 @@ function transformParenthesizedExpression(program, node, inference, context) {
167
195
  const parenthesisEnd = node.getChild('ParenthesisEnd');
168
196
  const resultNode = transformNode(program, expressionNode, inference, context);
169
197
  if (!parenthesisStart || !parenthesisEnd) {
198
+ const [from, to] = [
199
+ !parenthesisStart ? node.from : parenthesisStart.from,
200
+ !parenthesisStart ? node.to : parenthesisStart.to,
201
+ ];
170
202
  inference.errorList.push(new MissingParenthesisError({
171
203
  type: AST_TYPES.parenthesisExpression,
172
- from: !parenthesisStart ? node.from : node.to,
173
- to: node.to,
204
+ from,
205
+ to,
174
206
  primitive: (_a = resultNode === null || resultNode === void 0 ? void 0 : resultNode.primitive) !== null && _a !== void 0 ? _a : AST_PRIMITIVES.UNKNOWN,
175
207
  }));
176
208
  }
@@ -226,11 +258,11 @@ function transformBooleanValue(program, node) {
226
258
  return createLiteralValue(node, AST_PRIMITIVES.BOOLEAN, value);
227
259
  }
228
260
  function transformVariableValue(program, node, inference, context) {
229
- var _a;
261
+ var _a, _b;
230
262
  let variableValue = getNodeValue(program, node).slice(1, -1);
231
263
  const variableContext = getVariableContext(variableValue, context);
232
264
  const variableType = getVariableType(variableContext);
233
- if (variableType === 'Token')
265
+ if (variableType === AST_TYPES.token)
234
266
  variableValue = `{{${variableValue}}}`;
235
267
  const variableExistInInference = inference.formulaVariables
236
268
  .map((v) => v.id)
@@ -241,7 +273,7 @@ function transformVariableValue(program, node, inference, context) {
241
273
  label: variableValue,
242
274
  type: AST_PRIMITIVES.STRING,
243
275
  });
244
- return {
276
+ const baseResult = {
245
277
  type: variableType,
246
278
  value: variableValue,
247
279
  context: variableContext,
@@ -249,5 +281,19 @@ function transformVariableValue(program, node, inference, context) {
249
281
  to: node.to,
250
282
  primitive: (_a = variableContext === null || variableContext === void 0 ? void 0 : variableContext.type) !== null && _a !== void 0 ? _a : AST_PRIMITIVES.UNKNOWN,
251
283
  };
284
+ //IF externalFormula AND NOT sampleData, due to sampleData will replace the externalFormulas into a Literal (in Transpiler)
285
+ if (variableType === AST_TYPES.externalFormula && !(context === null || context === void 0 ? void 0 : context.useSampleData)) {
286
+ const isCircularDependency = (context === null || context === void 0 ? void 0 : context.currentFormulaId) &&
287
+ (context === null || context === void 0 ? void 0 : context.currentFormulaId) === variableValue;
288
+ if (isCircularDependency)
289
+ throw new CircularDependencyError();
290
+ const parser = QFormulaLang.parser;
291
+ const externalFunctionProgram = (_b = variableContext === null || variableContext === void 0 ? void 0 : variableContext.replacement) !== null && _b !== void 0 ? _b : '';
292
+ const tree = parser.parse(externalFunctionProgram);
293
+ const ast = calculateAST(externalFunctionProgram, tree, context);
294
+ const formulaBody = ast === null || ast === void 0 ? void 0 : ast.body;
295
+ return Object.assign(Object.assign({ isExternalFormula: true }, baseResult), formulaBody);
296
+ }
297
+ return baseResult;
252
298
  }
253
299
  //# sourceMappingURL=json-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/parser/json-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-parser.js","sourceRoot":"","sources":["../../../src/parser/json-parser.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { ENGINES } from '../constants';
2
2
  import { ProcessNodeResult, VariableAST, FormulaContext } from '../constants/interfaces';
3
- export declare function columnTranspilation(engine: ENGINES, { value, context }: VariableAST, globalContext?: FormulaContext): ProcessNodeResult;
3
+ export declare function columnTranspilation(engine: ENGINES, expression: VariableAST, globalContext?: FormulaContext): ProcessNodeResult;
@@ -1,7 +1,13 @@
1
1
  import { ELASTICSEARCH_SCRIPT_NAMES, AST_PRIMITIVES, AST_TYPES, ENGINES, } from '../constants';
2
- export function columnTranspilation(engine, { value, context }, globalContext) {
2
+ export function columnTranspilation(engine, expression, globalContext) {
3
+ const { value, context } = expression;
3
4
  if (!context || !context.replacement)
4
- return { value, type: AST_TYPES.column };
5
+ return {
6
+ value,
7
+ type: AST_TYPES.column,
8
+ dataType: AST_PRIMITIVES.UNKNOWN,
9
+ node: expression,
10
+ };
5
11
  const columnForEngine = {
6
12
  [ENGINES.ELASTICSEARCH]: elasticsearch,
7
13
  [ENGINES.SNOWFLAKE]: sql,
@@ -9,7 +15,12 @@ export function columnTranspilation(engine, { value, context }, globalContext) {
9
15
  [ENGINES.POSTGRESQL]: sql,
10
16
  };
11
17
  const result = columnForEngine[engine](context, globalContext);
12
- return { value: result, dataType: context.type, type: AST_TYPES.column };
18
+ return {
19
+ value: result,
20
+ dataType: context.type,
21
+ type: AST_TYPES.column,
22
+ node: expression,
23
+ };
13
24
  }
14
25
  function elasticsearch(context, globalContext) {
15
26
  const value = `GET_VALUE(doc['${context.replacement}'])`;
@@ -17,9 +28,16 @@ function elasticsearch(context, globalContext) {
17
28
  const offset = globalContext === null || globalContext === void 0 ? void 0 : globalContext.timezone.offset;
18
29
  return `${ELASTICSEARCH_SCRIPT_NAMES.setTimezone}(${value}, '${offset}')`;
19
30
  }
31
+ else if ((context === null || context === void 0 ? void 0 : context.type) === AST_PRIMITIVES.NUMBER) {
32
+ return `(double) ${value}`;
33
+ }
20
34
  return value;
21
35
  }
22
36
  function sql(context) {
23
- return `"${context.replacement}"`;
37
+ const value = `"${context.replacement}"`;
38
+ if ((context === null || context === void 0 ? void 0 : context.type) === AST_PRIMITIVES.NUMBER) {
39
+ return `${value}::FLOAT8`;
40
+ }
41
+ return value;
24
42
  }
25
43
  //# sourceMappingURL=columnTranspilation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnTranspilation.js","sourceRoot":"","sources":["../../../src/transpiler/columnTranspilation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,cAAc,EACd,SAAS,EACT,OAAO,GACV,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,mBAAmB,CAC/B,MAAe,EACf,EAAE,KAAK,EAAE,OAAO,EAAe,EAC/B,aAA8B;IAE9B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG;QACpB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa;QACtC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG;QACxB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG;QACvB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG;KAC5B,CAAC;IACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAClB,OAAkC,EAClC,aAA8B;IAE9B,MAAM,KAAK,GAAG,kBAAkB,OAAO,CAAC,WAAW,KAAK,CAAC;IACzD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,cAAc,CAAC,IAAI,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAA,EAAE;QAClE,MAAM,MAAM,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAC,MAAM,CAAC;QAC9C,OAAO,GAAG,0BAA0B,CAAC,WAAW,IAAI,KAAK,MAAM,MAAM,IAAI,CAAC;KAC7E;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,GAAG,CAAC,OAAkC;IAC3C,OAAO,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"columnTranspilation.js","sourceRoot":"","sources":["../../../src/transpiler/columnTranspilation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,0BAA0B,EAC1B,cAAc,EACd,SAAS,EACT,OAAO,GACV,MAAM,cAAc,CAAC;AAQtB,MAAM,UAAU,mBAAmB,CAC/B,MAAe,EACf,UAAuB,EACvB,aAA8B;IAE9B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IACtC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW;QAChC,OAAO;YACH,KAAK;YACL,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,QAAQ,EAAE,cAAc,CAAC,OAAO;YAChC,IAAI,EAAE,UAAU;SACnB,CAAC;IACN,MAAM,eAAe,GAAG;QACpB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa;QACtC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG;QACxB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG;QACvB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG;KAC5B,CAAC;IACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/D,OAAO;QACH,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,IAAI,EAAE,SAAS,CAAC,MAAM;QACtB,IAAI,EAAE,UAAU;KACnB,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAClB,OAAkC,EAClC,aAA8B;IAE9B,MAAM,KAAK,GAAG,kBAAkB,OAAO,CAAC,WAAW,KAAK,CAAC;IACzD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,cAAc,CAAC,IAAI,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAA,EAAE;QAClE,MAAM,MAAM,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAC,MAAM,CAAC;QAC9C,OAAO,GAAG,0BAA0B,CAAC,WAAW,IAAI,KAAK,MAAM,MAAM,IAAI,CAAC;KAC7E;SAAM,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,cAAc,CAAC,MAAM,EAAE;QAChD,OAAO,YAAY,KAAK,EAAE,CAAC;KAC9B;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,GAAG,CAAC,OAAkC;IAC3C,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC;IACzC,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,cAAc,CAAC,MAAM,EAAE;QACzC,OAAO,GAAG,KAAK,UAAU,CAAC;KAC7B;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -7,6 +7,9 @@ import { columnTranspilation } from './columnTranspilation';
7
7
  import { unshiftCustomFunctions } from './unshiftCustomFunctions';
8
8
  import { FormulaErrorList } from './formulaErrorList';
9
9
  import { getValueScript } from '../utils/elasticsearch/scripts';
10
+ import { ERROR_DICTIONARY } from '../errors/dictionary';
11
+ import { escapeCharacters } from '../utils/escapeCharacters';
12
+ import { addDecimalPointIfNeeded } from '../utils/addDecimalPointIfNeeded';
10
13
  export class Transpiler {
11
14
  constructor(ast, engine, globalContext) {
12
15
  this.ast = ast;
@@ -42,12 +45,18 @@ export class Transpiler {
42
45
  [AST_TYPES.column]: ((_a = this.globalContext) === null || _a === void 0 ? void 0 : _a.useSampleData)
43
46
  ? this.conversionFromColumnToLiteral
44
47
  : this.column,
48
+ [AST_TYPES.externalFormula]: this.conversionFromColumnToLiteral,
45
49
  [AST_TYPES.unaryExpression]: this.unaryExpression,
46
50
  [AST_TYPES.binaryExpression]: this.binaryExpression,
47
51
  [AST_TYPES.functionCall]: this.functionCall,
48
52
  };
49
53
  if (!nodes[type])
50
- return { value: null, type, dataType: AST_PRIMITIVES.UNKNOWN };
54
+ return {
55
+ value: null,
56
+ type,
57
+ dataType: AST_PRIMITIVES.UNKNOWN,
58
+ node: expression,
59
+ };
51
60
  return nodes[type].call(this, expression);
52
61
  }
53
62
  catch (error) {
@@ -56,6 +65,7 @@ export class Transpiler {
56
65
  value: '',
57
66
  type: AST_TYPES.unknown,
58
67
  dataType: AST_PRIMITIVES.UNKNOWN,
68
+ node: expression,
59
69
  };
60
70
  }
61
71
  }
@@ -76,35 +86,62 @@ export class Transpiler {
76
86
  }
77
87
  return columnTranspilation(this.engine, data, this.globalContext);
78
88
  }
79
- literal({ value, dataType, type }) {
89
+ literal(expression) {
90
+ const { dataType, type } = expression;
91
+ let { value } = expression;
80
92
  if (value === 'null')
81
- return { value, dataType, type };
93
+ return { value, dataType, type, node: expression };
82
94
  if (dataType === AST_PRIMITIVES.DATE)
83
95
  value = customDateCast(this.engine)(value);
84
- if (dataType === AST_PRIMITIVES.STRING)
85
- value = `'${value}'`;
96
+ if (dataType === AST_PRIMITIVES.STRING) {
97
+ value = escapeCharacters(value, this.engine);
98
+ }
86
99
  const isElasticsearchNumber = this.engine === ENGINES.ELASTICSEARCH &&
87
100
  dataType === AST_PRIMITIVES.NUMBER;
88
- if (isElasticsearchNumber && isLongNumber(value))
101
+ if (isElasticsearchNumber && isLongNumber(value)) {
89
102
  value = `${value}L`;
90
- return { value, dataType, type };
103
+ }
104
+ else {
105
+ value = addDecimalPointIfNeeded(value, this.engine);
106
+ }
107
+ return { value, dataType, type, node: expression };
91
108
  }
92
109
  unaryExpression(expression) {
93
110
  if (!expression.right)
94
- return { value: '', type: expression.type };
111
+ return {
112
+ value: '',
113
+ type: expression.type,
114
+ dataType: AST_PRIMITIVES.STRING,
115
+ node: expression,
116
+ };
95
117
  const { value: rightResult } = this.processNode(expression.right);
96
118
  const value = `(${expression.operator} ${rightResult})`;
97
- return { value, dataType: expression.primitive, type: expression.type };
119
+ return {
120
+ value,
121
+ dataType: expression.primitive,
122
+ type: expression.type,
123
+ node: expression,
124
+ };
98
125
  }
99
126
  binaryExpression(expression) {
100
127
  var _a, _b;
101
128
  const { left, operator, right, type } = expression;
102
129
  if (!left || !right)
103
- return { value: '', type };
130
+ return {
131
+ value: '',
132
+ type,
133
+ dataType: AST_PRIMITIVES.STRING,
134
+ node: expression,
135
+ };
104
136
  const { value: leftResult } = this.processNode(left);
105
137
  const { value: rightResult } = this.processNode(right);
106
138
  const value = `(${leftResult} ${(_b = (_a = CustomOperators[this.engine]) === null || _a === void 0 ? void 0 : _a[operator]) !== null && _b !== void 0 ? _b : operator} ${rightResult})`;
107
- return { value, dataType: expression.primitive, type };
139
+ return {
140
+ value,
141
+ dataType: expression.primitive,
142
+ type,
143
+ node: expression,
144
+ };
108
145
  }
109
146
  functionCall(node) {
110
147
  const { name, arguments: args } = node;
@@ -116,21 +153,71 @@ export class Transpiler {
116
153
  this.customFunctionList.add(customFunction);
117
154
  const parameters = args.map((param) => this.processNode(param));
118
155
  const value = this.executer(func, parameters, node);
119
- return { value, dataType: node.primitive, type: node.type };
156
+ return { value, dataType: node.primitive, type: node.type, node };
120
157
  }
121
158
  executer(func, args, node) {
122
- validateFuncStructure(node, func, args);
159
+ validateFuncStructure(func, args, node);
123
160
  args = args.map((item) => item.value);
124
161
  return func.transpiler[this.engine](...args);
125
162
  }
126
163
  }
127
164
  export function TranspileAST(ast, engine, context) {
128
- var _a, _b, _c, _d, _e;
165
+ var _a, _b;
129
166
  const hasSyntaxErrors = ((_b = (_a = ast.errors) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0;
130
167
  const transpiler = new Transpiler(ast, engine, context);
131
168
  const transpileResult = transpiler.get();
132
- return Object.assign(Object.assign({}, transpileResult), { valid: transpileResult.valid && !hasSyntaxErrors, errors: transpileResult.errors || (ast.errors && ((_c = ast.errors) === null || _c === void 0 ? void 0 : _c.length) > 0)
133
- ? [...((_d = transpileResult.errors) !== null && _d !== void 0 ? _d : []), ...((_e = ast.errors) !== null && _e !== void 0 ? _e : [])]
134
- : undefined });
169
+ const errors = postTranspileErrors(transpileResult.errors, ast.errors);
170
+ return Object.assign(Object.assign({}, transpileResult), { valid: transpileResult.valid && !hasSyntaxErrors, errors });
171
+ }
172
+ function postTranspileErrors(transpiledErrors, astErrors) {
173
+ const baseErrors = joinErrors(transpiledErrors, astErrors);
174
+ if (!baseErrors)
175
+ return undefined;
176
+ const postProcessedErrors = postProcessErrors(baseErrors);
177
+ const errors = removeOverlappingErrors(postProcessedErrors);
178
+ return errors;
179
+ }
180
+ function joinErrors(transpiledErrors, astErrors) {
181
+ return transpiledErrors || (astErrors && (astErrors === null || astErrors === void 0 ? void 0 : astErrors.length) > 0)
182
+ ? [...(transpiledErrors !== null && transpiledErrors !== void 0 ? transpiledErrors : []), ...(astErrors !== null && astErrors !== void 0 ? astErrors : [])]
183
+ : undefined;
184
+ }
185
+ function postProcessErrors(errors) {
186
+ const resultErrors = [];
187
+ errors.forEach((error) => {
188
+ var _a;
189
+ if (!error.node)
190
+ return; // clean those errors without node
191
+ if (((_a = error.node) === null || _a === void 0 ? void 0 : _a.type) === AST_TYPES.functionCall &&
192
+ error.node.functionIdentifier) {
193
+ const functionIdentifier = error.node
194
+ .functionIdentifier;
195
+ error.node.from = functionIdentifier.from;
196
+ error.node.to = functionIdentifier.to;
197
+ }
198
+ else if (error.code === ERROR_DICTIONARY.notAllowedOperation.code) {
199
+ const nodePosition = error.node
200
+ .operatorNode;
201
+ if (nodePosition) {
202
+ error.node.from = nodePosition.from;
203
+ error.node.to = nodePosition.to;
204
+ }
205
+ }
206
+ resultErrors.push(error);
207
+ });
208
+ return resultErrors;
209
+ }
210
+ function removeOverlappingErrors(baseErrors) {
211
+ const errors = [];
212
+ for (const baseError of baseErrors) {
213
+ const existError = errors.some((error) => error.node &&
214
+ baseError.node &&
215
+ error.node.from >= baseError.node.from &&
216
+ error.node.to <= baseError.node.to);
217
+ if (!existError) {
218
+ errors.push(baseError);
219
+ }
220
+ }
221
+ return errors;
135
222
  }
136
223
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transpiler/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transpiler/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { FunctionCallAST, FunctionDefinition, ProcessNodeResult } from '../constants/interfaces';
2
- export declare function validateFuncStructure(node: FunctionCallAST, definition: FunctionDefinition, args: Array<ProcessNodeResult>): boolean;
2
+ export declare function validateFuncStructure(definition: FunctionDefinition, args: Array<ProcessNodeResult>, node: FunctionCallAST): void;