@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
@@ -0,0 +1,56 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isNumberParam } from '../utils';
3
+ import { isBetweenInclusiveRange } from '../utils/isBetweenInclusiveRange';
4
+ import { isInteger } from '../utils/isInteger';
5
+ /**
6
+ * `ROUNDUP` Rounds a number up to a specified number of digits.
7
+ */
8
+ export const ROUNDUP = {
9
+ identifier: 'ROUNDUP',
10
+ parameters: [
11
+ {
12
+ identifier: 'NUM_1',
13
+ optional: false,
14
+ expectedPrimitive: AST_PRIMITIVES.NUMBER,
15
+ validator: [isNumberParam],
16
+ },
17
+ {
18
+ identifier: 'DIGITS',
19
+ optional: false,
20
+ expectedPrimitive: AST_PRIMITIVES.NUMBER,
21
+ validator: [
22
+ isNumberParam,
23
+ isBetweenInclusiveRange(0, 10),
24
+ isInteger,
25
+ ],
26
+ },
27
+ ],
28
+ transpiler: {
29
+ elasticsearch,
30
+ snowflake,
31
+ redshift,
32
+ postgresql,
33
+ },
34
+ primitiveResult: AST_PRIMITIVES.NUMBER,
35
+ };
36
+ function elasticsearch(value, digits) {
37
+ return `ROUNDUP(${value}, ROUNDDOWN(${digits}, 0))`;
38
+ }
39
+ function SQL(value, digits) {
40
+ return `((CASE
41
+ WHEN ${value} IS NULL OR ${digits} IS NULL THEN NULL
42
+ WHEN ${digits} > 10 THEN CEIL(ABS(${value}) * POWER(10, 10)) / POWER(10, 10)
43
+ WHEN ${digits} < 0 THEN CEIL(ABS(${value}))
44
+ ELSE CEIL(ABS(${value}) * POWER(10, TRUNC(${digits})::INTEGER)) / POWER(10, TRUNC(${digits})::INTEGER)
45
+ END) * (CASE WHEN ${value} < 0 THEN -1 ELSE 1 END))`;
46
+ }
47
+ function snowflake(value, digits) {
48
+ return SQL(value, digits);
49
+ }
50
+ function redshift(value, digits) {
51
+ return SQL(value, digits);
52
+ }
53
+ function postgresql(value, digits) {
54
+ return SQL(value, digits);
55
+ }
56
+ //# sourceMappingURL=roundup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roundup.js","sourceRoot":"","sources":["../../../src/functions/roundup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE;gBACP,aAAa;gBACb,uBAAuB,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC9B,SAAS;aACZ;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa,EAAE,MAAc;IAChD,OAAO,WAAW,KAAK,eAAe,MAAM,OAAO,CAAC;AACxD,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,MAAc;IACtC,OAAO;eACI,KAAK,eAAe,MAAM;eAC1B,MAAM,uBAAuB,KAAK;eAClC,MAAM,sBAAsB,KAAK;wBACxB,KAAK,uBAAuB,MAAM,kCAAkC,MAAM;wBAC1E,KAAK,2BAA2B,CAAC;AACzD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,MAAc;IAC5C,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,MAAc;IAC3C,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,MAAc;IAC7C,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -6,12 +6,11 @@ import { AST_PRIMITIVES } from '../constants';
6
6
  */
7
7
  export const SECOND = {
8
8
  identifier: 'SECOND',
9
- name: 'SECOND',
10
9
  parameters: [
11
10
  {
12
11
  identifier: 'DATE',
13
- name: 'date',
14
12
  optional: false,
13
+ expectedPrimitive: AST_PRIMITIVES.DATE,
15
14
  validator: [isDateParam],
16
15
  },
17
16
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"second.js","sourceRoot":"","sources":["../../../src/functions/second.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,uBAAuB,KAAK,GAAG,CAAC;AAC3C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"second.js","sourceRoot":"","sources":["../../../src/functions/second.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,IAAI;YACtC,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,uBAAuB,KAAK,GAAG,CAAC;AAC3C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `SQRT` Returns the positive square root of a positive number.
4
+ */
5
+ export declare const SQRT: FunctionDefinition;
@@ -0,0 +1,43 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isNumberParam } from '../utils';
3
+ import { greaterThanOrEqualToReference } from '../utils/greaterThanOrEqualToReference';
4
+ /**
5
+ * `SQRT` Returns the positive square root of a positive number.
6
+ */
7
+ export const SQRT = {
8
+ identifier: 'SQRT',
9
+ parameters: [
10
+ {
11
+ identifier: 'VALUE',
12
+ optional: false,
13
+ expectedPrimitive: AST_PRIMITIVES.NUMBER,
14
+ validator: [isNumberParam, greaterThanOrEqualToReference(0)],
15
+ },
16
+ ],
17
+ transpiler: {
18
+ elasticsearch,
19
+ snowflake,
20
+ redshift,
21
+ postgresql,
22
+ },
23
+ primitiveResult: AST_PRIMITIVES.NUMBER,
24
+ };
25
+ function elasticsearch(value) {
26
+ return `SQRT(${value})`;
27
+ }
28
+ function sql(value) {
29
+ return `(CASE
30
+ WHEN ${value} < 0 THEN null
31
+ ELSE SQRT(${value})
32
+ END)`;
33
+ }
34
+ function snowflake(value) {
35
+ return sql(value);
36
+ }
37
+ function redshift(value) {
38
+ return sql(value);
39
+ }
40
+ function postgresql(value) {
41
+ return sql(value);
42
+ }
43
+ //# sourceMappingURL=sqrt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqrt.js","sourceRoot":"","sources":["../../../src/functions/sqrt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC;SAC/D;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AACF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,QAAQ,KAAK,GAAG,CAAC;AAC5B,CAAC;AACD,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO;gBACK,KAAK;oBACD,KAAK;SAChB,CAAC;AACV,CAAC;AACD,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AACD,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AACD,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `TRIM` Remove leading and trailing spaces
4
+ */
5
+ export declare const TRIM: FunctionDefinition;
@@ -0,0 +1,39 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isStringParam } from '../utils';
3
+ /**
4
+ * `TRIM` Remove leading and trailing spaces
5
+ */
6
+ export const TRIM = {
7
+ identifier: 'TRIM',
8
+ parameters: [
9
+ {
10
+ identifier: 'STRING',
11
+ optional: false,
12
+ expectedPrimitive: AST_PRIMITIVES.STRING,
13
+ validator: [isStringParam],
14
+ },
15
+ ],
16
+ transpiler: {
17
+ elasticsearch,
18
+ snowflake,
19
+ redshift,
20
+ postgresql,
21
+ },
22
+ primitiveResult: AST_PRIMITIVES.STRING,
23
+ };
24
+ function elasticsearch(arg) {
25
+ return `${arg}.replaceAll(/^ +| +$/, (a) -> '')`; // TRIM function exists in ES but remove tabs also
26
+ }
27
+ function sql(arg) {
28
+ return `TRIM(${arg})`;
29
+ }
30
+ function snowflake(arg) {
31
+ return sql(arg);
32
+ }
33
+ function redshift(arg) {
34
+ return sql(arg);
35
+ }
36
+ function postgresql(arg) {
37
+ return sql(arg);
38
+ }
39
+ //# sourceMappingURL=trim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trim.js","sourceRoot":"","sources":["../../../src/functions/trim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,GAAW;IAC9B,OAAO,GAAG,GAAG,mCAAmC,CAAC,CAAC,kDAAkD;AACxG,CAAC;AAED,SAAS,GAAG,CAAC,GAAW;IACpB,OAAO,QAAQ,GAAG,GAAG,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC1B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IACzB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { FunctionDefinition } from '../constants/interfaces';
2
+ /**
3
+ * `UPPER` Returns the string give it in upper case.
4
+ */
5
+ export declare const UPPER: FunctionDefinition;
@@ -0,0 +1,39 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { isStringParam } from '../utils';
3
+ /**
4
+ * `UPPER` Returns the string give it in upper case.
5
+ */
6
+ export const UPPER = {
7
+ identifier: 'UPPER',
8
+ parameters: [
9
+ {
10
+ identifier: 'STRING',
11
+ optional: false,
12
+ expectedPrimitive: AST_PRIMITIVES.STRING,
13
+ validator: [isStringParam],
14
+ },
15
+ ],
16
+ transpiler: {
17
+ elasticsearch,
18
+ snowflake,
19
+ redshift,
20
+ postgresql,
21
+ },
22
+ primitiveResult: AST_PRIMITIVES.STRING,
23
+ };
24
+ function elasticsearch(current) {
25
+ return `${current}.toUpperCase()`;
26
+ }
27
+ function SQL(current) {
28
+ return `UPPER(${current})`;
29
+ }
30
+ function snowflake(current) {
31
+ return SQL(current);
32
+ }
33
+ function redshift(current) {
34
+ return SQL(current);
35
+ }
36
+ function postgresql(current) {
37
+ return SQL(current);
38
+ }
39
+ //# sourceMappingURL=upper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upper.js","sourceRoot":"","sources":["../../../src/functions/upper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,GAAG,OAAO,gBAAgB,CAAC;AACtC,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IACxB,OAAO,SAAS,OAAO,GAAG,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
@@ -6,12 +6,11 @@ import { AST_PRIMITIVES } from '../constants';
6
6
  */
7
7
  export const YEAR = {
8
8
  identifier: 'YEAR',
9
- name: 'YEAR',
10
9
  parameters: [
11
10
  {
12
11
  identifier: 'DATE',
13
- name: 'date',
14
12
  optional: false,
13
+ expectedPrimitive: AST_PRIMITIVES.DATE,
15
14
  validator: [isDateParam],
16
15
  },
17
16
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"year.js","sourceRoot":"","sources":["../../../src/functions/year.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,qBAAqB,KAAK,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"year.js","sourceRoot":"","sources":["../../../src/functions/year.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,IAAI;YACtC,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,qBAAqB,KAAK,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -1,13 +1,6 @@
1
1
  export function QFormula(): LanguageSupport;
2
- export namespace QFormulaHighlightConfig {
3
- const parser: LRParser;
4
- namespace languageData {
5
- namespace commentTokens {
6
- const line: string;
7
- }
8
- }
9
- }
10
2
  export const QFormulaLang: LRLanguage;
3
+ export const QFormulaParser: LRParser;
11
4
  import { LanguageSupport } from "@codemirror/language";
12
- import { LRParser } from "@lezer/lr";
13
5
  import { LRLanguage } from "@codemirror/language";
6
+ import { LRParser } from "@lezer/lr";
@@ -1,49 +1,74 @@
1
- import { LRParser } from '@lezer/lr';
1
+ import { ExternalTokenizer, LRParser } from '@lezer/lr';
2
2
  import { LRLanguage, LanguageSupport } from '@codemirror/language';
3
3
  import { styleTags, tags } from '@lezer/highlight';
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
- const spec_identifier = { __proto__: null, true: 14, false: 14 };
5
+ const noOprt = 25;
6
+ const space = [
7
+ 9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,
8
+ 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288,
9
+ ];
10
+ const operators = [43, 45, 42, 47, 60, 61, 62];
11
+ const parenteses = [41, 40];
12
+ const comma = 44;
13
+ const noOperator = new ExternalTokenizer((input, stack) => {
14
+ const { next } = input;
15
+ if (space.indexOf(next) > -1 ||
16
+ parenteses.indexOf(next) > -1 ||
17
+ next === comma)
18
+ return;
19
+ if (operators.indexOf(next) === -1 &&
20
+ next != -1 &&
21
+ !stack.context &&
22
+ stack.canShift(noOprt)) {
23
+ input.acceptToken(noOprt);
24
+ }
25
+ }, { contextual: true });
26
+ // This file was generated by lezer-generator. You probably shouldn't edit it.
27
+ const spec_identifier = { __proto__: null, true: 16, false: 16 };
6
28
  const parser = LRParser.deserialize({
7
29
  version: 14,
8
- states: "%QO]QPOOOOQO'#C_'#C_OOQO'#Cf'#CfOwQPO'#CeO|QQO'#CiO]QPO'#CjQ!RQPOOO]QPO'#CqOOQO'#C^'#C^O!dQPO,59PO!kQPO,59TOOQO,59U,59UO]QPO,59WO]QPO,59WO]QPO,59WO]QPO,59WO!pQPO,59]O!wQPO'#CyOOQO'#Ch'#ChO#RQPO1G.kOOQO1G.o1G.oOOQO1G.r1G.rO#oQPO1G.rO#vQPO1G.rO#}QPO1G.rOOQO1G.w1G.wO]QPO'#CrO$iQPO,59eOOQO7+$V7+$VO$qQPO,59^OOQO-E6p-E6p",
9
- stateData: "%V~OiOSjOSkOS~OSPOTPOUPOVPOZVO_TOlQOpSO~OZXO~OqYO~O_]Oa[Ob[Oc^Od_O~OWmP~P]OodO~OWiO~P!ROnjOWmX~P!ROWlO~Oa[Ob[Oc`id`ig`iW`in`i~O_`i~P#WO_]O~P#WO_]Oa[Ob[Oc^Od`ig`iW`in`i~OnjOWma~OWfanfa~P!ROTUijiklka~",
10
- goto: "#OnPPo![PPPPP![!gP!r![![P![PPPP![!uPPPPPP!{QUOQZTQ`VQaXQe[Qf]Qg^Qh_RmjcWOTVX[]^_jcROTVX[]^_jRcXQkaRnkRbX",
11
- nodeNames: "⚠ Program Expression Value Number Date String Boolean ParenthesisEnd Function FunctionIdentifier ParenthesisStart FunctionArguments Variable UnaryExpression ArithOp BinaryExpression ArithOp ArithOp LogicOp LogicOp ParenthesizedExpression",
12
- maxTerm: 33,
30
+ states: "%^O]QQOOOOQP'#C`'#C`OOQO'#Cg'#CgOwQQO'#CfO|QSO'#CjO]QQO'#CkQ!RQROOO]QQO'#CrOOQP'#C_'#C_O!gQQO,59QO!nQQO,59UOOQP,59V,59VO]QQO,59XO]QQO,59XO]QQO,59XO]QQO,59XO]QQO,59XO!sQRO,59^O!zQRO'#CzOOQO'#Ci'#CiO#UQQO1G.lOOQP1G.p1G.pOOQP1G.s1G.sO#uQRO1G.sO#|QRO1G.sO$oQRO1G.sO$vQRO1G.sOOQP1G.x1G.xO]QQO'#CsO$}QQO,59fOOQP7+$W7+$WO%VQRO,59_OOQO-E6q-E6q",
31
+ stateData: "%k~OkOSlOSPOS~OTPOUPOVPOWPO[VO`TOmQOqSO~O[XO~OrYO~O`]Ob[Oc[Od^Oe_Oi`O~OXnP~P]OpeO~OXkO~P!ROolOXnX~P!ROXnO~Ob[Oc[OdaieaihaiiaiXaioai~O`ai~P#ZO`]O~P#ZO`]Ob[Oc[Od^OhaiiaiXaioai~Oeai~P$TOe_O~P$TOolOXna~OXgaoga~P!ROUVklkPmPb~",
32
+ goto: "#UoPPPp!`PPPPP!`!lP!x!`!`P!`PPPP!`!{PPPPPP#RQUOQZTQaVQbXQf[Qg]Qh^Qi_Qj`RoleWOTVX[]^_`leROTVX[]^_`lRdXQmbRpmRcX",
33
+ nodeNames: "⚠ LineComment Program Expression Value Number Date String Boolean ParenthesisEnd Function FunctionIdentifier ParenthesisStart FunctionArguments Variable UnaryExpression ArithOp BinaryExpression ArithOp ArithOp LogicOp LogicOp ParenthesizedExpression",
34
+ maxTerm: 34,
13
35
  nodeProps: [
14
- ["openedBy", 8, "ParenthesisStart"],
15
- ["closedBy", 11, "ParenthesisEnd"]
36
+ ["openedBy", 9, "ParenthesisStart"],
37
+ ["closedBy", 12, "ParenthesisEnd"]
16
38
  ],
17
- skippedNodes: [0],
39
+ skippedNodes: [0, 1],
18
40
  repeatNodeCount: 1,
19
- tokenData: "=T~RpXY#VYZ#zZ[#V]^#zpq#Vrs$Pxy7kyz7pz{7u{|7z|}9S}!O7z!O!P9X!P!Q:a!Q![;Q!^!_;n!_!`<O!`!a<T!c!}<]!}#O<y#P#Q=O#R#S8h#T#o<]$f$g#V#BY#BZ#V$IS$I_#V$I|$I}#z$I}$JO#z$JT$JU#V$KV$KW#V&FU&FV#V?HT?HU#V~#[Yi~XY#VZ[#Vpq#V$f$g#V#BY#BZ#V$IS$I_#V$JT$JU#V$KV$KW#V&FU&FV#V?HT?HU#V~$POj~~$SZOr$urs%_s!Q$u!Q!R&c!R!S6r!S![6S![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~$xVOr$urs%_s#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~%dOU~~%gRO;'S$u;'S;=`%p;=`O$u~%sWOr$urs%_s#O$u#O#P%d#P;'S$u;'S;=`&];=`<%l$u<%lO$u~&`P;=`<%l$u~&fYOr$urs%_s!P$u!P!Q'U!Q![6S![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~'X]Or$urs%_s!Q$u!Q!R(Q!R!S(Q!S!T(Q!T!U(Q!U![5d![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~(TYOr$urs%_s!P$u!P!Q(s!Q![5d![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~(vXOr$urs%_s!Q$u!Q![)c![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~)fXOr$urs%_s!Q$u!Q![*R![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~*UXOr$urs%_s!Q$u!Q![*q![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~*tXOr$urs%_s!Q$u!Q![+a![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~+dkOX$uX^-X^p$upq-Xqr$urs4gs#O$u#O#P%d#P#y$u#y#z-X#z$f$u$f$g-X$g#BY$u#BY#BZ-X#BZ$IS$u$IS$I_-X$I_$I|$u$I|$JO-X$JO$JT$u$JT$JU-X$JU$KV$u$KV$KW-X$KW&FU$u&FU&FV-X&FV;'S$u;'S;=`&]<%lO$u~-[pOX$uX^-X^p$upq-Xqr$urs%_s!Q$u!Q!R/`!R!S/`!S!T4n!T![0R![#O$u#O#P%d#P#y$u#y#z-X#z$f$u$f$g-X$g#BY$u#BY#BZ-X#BZ$IS$u$IS$I_-X$I_$I|$u$I|$JO-X$JO$JT$u$JT$JU-X$JU$KV$u$KV$KW-X$KW&FU$u&FU&FV-X&FV;'S$u;'S;=`&]<%lO$u~/cYOr$urs%_s!Q$u!Q![0R![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~0UXOr$urs%_s![$u![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~0tXOr$urs%_s!Q$u!Q!W1a!W#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~1dXOr$urs%_s!Q$u!Q![2P![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~2SXOr$urs%_s![$u![!]2o!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~2rXOr$urs%_s!Q$u!Q!W3_!W#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~3bXOr$urs%_s!Q$u!Q![3}![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~4QVOr$urs4gs#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~4nOT~U~~4qZOr$urs%_s!Q$u!Q!U0R!U![$u![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~5gXOr$urs%_s!P$u!P!Q(s!Q#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~6VXOr$urs%_s!P$u!P!Q'U!Q#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~6u[Or$urs%_s!P$u!P!Q'U!Q!R6S!R!S6S!S!T6S!T#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~7pOZ~~7uOW~~7zOb~R8RV_PqQ{|8h}!O8h!O!P8h!Q![8h!c!}8h#R#S8h#T#o8hQ8mVqQ{|8h}!O8h!O!P8h!Q![8h!c!}8h#R#S8h#T#o8h~9XOn~R9^VqQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S8h#T#o8hR9zVSPqQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S9s#T#o8h~:fPa~!P!Q:i~:nSk~OY:iZ;'S:i;'S;=`:z<%lO:i~:}P;=`<%l:iR;XVSPqQ{|8h}!O8h!O!P9s!Q![;Q!c!}8h#R#S;Q#T#o8h~;sQc~!_!`;y!`!a;y~<OOc~~<TOd~~<YPc~!_!`;yR<dVqQlP{|8h}!O8h!O!P8h!Q![<]!c!}<]#R#S<]#T#o<]~=OOp~~=TOo~",
20
- tokenizers: [0, 1],
21
- topRules: { "Program": [0, 1] },
22
- specialized: [{ term: 28, get: value => spec_identifier[value] || -1 }],
23
- tokenPrec: 181
41
+ tokenData: "=T~RpXY#VYZ#zZ[#V]^#zpq#Vrs$Pxy7kyz7pz{7u{|7z|}9S}!O7z!O!P9X!P!Q:a!Q![;Q!^!_;n!_!`<O!`!a<T!c!}<]!}#O<y#P#Q=O#R#S8h#T#o<]$f$g#V#BY#BZ#V$IS$I_#V$I|$I}#z$I}$JO#z$JT$JU#V$KV$KW#V&FU&FV#V?HT?HU#V~#[Yk~XY#VZ[#Vpq#V$f$g#V#BY#BZ#V$IS$I_#V$JT$JU#V$KV$KW#V&FU&FV#V?HT?HU#V~$POl~~$SZOr$urs%_s!Q$u!Q!R&c!R!S6r!S![6S![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~$xVOr$urs%_s#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~%dOV~~%gRO;'S$u;'S;=`%p;=`O$u~%sWOr$urs%_s#O$u#O#P%d#P;'S$u;'S;=`&];=`<%l$u<%lO$u~&`P;=`<%l$u~&fYOr$urs%_s!P$u!P!Q'U!Q![6S![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~'X]Or$urs%_s!Q$u!Q!R(Q!R!S(Q!S!T(Q!T!U(Q!U![5d![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~(TYOr$urs%_s!P$u!P!Q(s!Q![5d![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~(vXOr$urs%_s!Q$u!Q![)c![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~)fXOr$urs%_s!Q$u!Q![*R![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~*UXOr$urs%_s!Q$u!Q![*q![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~*tXOr$urs%_s!Q$u!Q![+a![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~+dkOX$uX^-X^p$upq-Xqr$urs4gs#O$u#O#P%d#P#y$u#y#z-X#z$f$u$f$g-X$g#BY$u#BY#BZ-X#BZ$IS$u$IS$I_-X$I_$I|$u$I|$JO-X$JO$JT$u$JT$JU-X$JU$KV$u$KV$KW-X$KW&FU$u&FU&FV-X&FV;'S$u;'S;=`&]<%lO$u~-[pOX$uX^-X^p$upq-Xqr$urs%_s!Q$u!Q!R/`!R!S/`!S!T4n!T![0R![#O$u#O#P%d#P#y$u#y#z-X#z$f$u$f$g-X$g#BY$u#BY#BZ-X#BZ$IS$u$IS$I_-X$I_$I|$u$I|$JO-X$JO$JT$u$JT$JU-X$JU$KV$u$KV$KW-X$KW&FU$u&FU&FV-X&FV;'S$u;'S;=`&]<%lO$u~/cYOr$urs%_s!Q$u!Q![0R![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~0UXOr$urs%_s![$u![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~0tXOr$urs%_s!Q$u!Q!W1a!W#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~1dXOr$urs%_s!Q$u!Q![2P![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~2SXOr$urs%_s![$u![!]2o!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~2rXOr$urs%_s!Q$u!Q!W3_!W#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~3bXOr$urs%_s!Q$u!Q![3}![#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~4QVOr$urs4gs#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~4nOU~V~~4qZOr$urs%_s!Q$u!Q!U0R!U![$u![!]0q!]#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~5gXOr$urs%_s!P$u!P!Q(s!Q#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~6VXOr$urs%_s!P$u!P!Q'U!Q#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~6u[Or$urs%_s!P$u!P!Q'U!Q!R6S!R!S6S!S!T6S!T#O$u#O#P%d#P;'S$u;'S;=`&]<%lO$u~7pO[~~7uOX~~7zOc~R8RV`PrQ{|8h}!O8h!O!P8h!Q![8h!c!}8h#R#S8h#T#o8hQ8mVrQ{|8h}!O8h!O!P8h!Q![8h!c!}8h#R#S8h#T#o8h~9XOo~R9^VrQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S8h#T#o8hR9zVTPrQ{|8h}!O8h!O!P8h!Q![9s!c!}8h#R#S9s#T#o8h~:fPb~!P!Q:i~:nSP~OY:iZ;'S:i;'S;=`:z<%lO:i~:}P;=`<%l:iR;XVTPrQ{|8h}!O8h!O!P9s!Q![;Q!c!}8h#R#S;Q#T#o8h~;sQd~!_!`;y!`!a<O~<OOd~~<TOe~~<YPd~!_!`;yR<dVrQmP{|8h}!O8h!O!P8h!Q![<]!c!}<]#R#S<]#T#o<]~=OOq~~=TOp~",
42
+ tokenizers: [noOperator, 0, 1],
43
+ topRules: { "Program": [0, 2] },
44
+ specialized: [{ term: 29, get: value => spec_identifier[value] || -1 }],
45
+ tokenPrec: 201
46
+ });
47
+ const QFormulaParser = parser.configure({
48
+ props: [
49
+ styleTags({
50
+ Boolean: tags.bool,
51
+ String: tags.string,
52
+ Date: tags.string,
53
+ Number: tags.number,
54
+ Variable: tags.variableName,
55
+ LineComment: tags.lineComment,
56
+ FunctionIdentifier: tags.keyword,
57
+ ParenthesisStart: tags.paren,
58
+ ParenthesisEnd: tags.paren,
59
+ LogicOp: tags.operator,
60
+ ArithOp: tags.operator,
61
+ }),
62
+ ],
24
63
  });
25
- const QFormulaHighlightConfig = {
26
- parser: parser.configure({
27
- props: [
28
- styleTags({
29
- Boolean: tags.bool,
30
- String: tags.string,
31
- Date: tags.string,
32
- Number: tags.number,
33
- Variable: tags.keyword,
34
- LineComment: tags.lineComment,
35
- FunctionIdentifier: tags.lineComment,
36
- '( )': tags.paren,
37
- }),
38
- ],
39
- }),
64
+ const QFormulaLang = LRLanguage.define({
65
+ parser: QFormulaParser,
40
66
  languageData: {
41
67
  commentTokens: { line: '//' },
42
68
  },
43
- };
44
- const QFormulaLang = LRLanguage.define(QFormulaHighlightConfig);
69
+ });
45
70
  function QFormula() {
46
71
  return new LanguageSupport(QFormulaLang);
47
72
  }
48
- export { QFormula, QFormulaHighlightConfig, QFormulaLang };
73
+ export { QFormula, QFormulaLang, QFormulaParser };
49
74
  //# sourceMappingURL=qformula.lang.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"qformula.lang.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8EAA8E;AAC9E,MAAM,eAAe,GAAG,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAC,CAAC;AAC3D,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;IAClC,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,8TAA8T;IACtU,SAAS,EAAE,wMAAwM;IACnN,IAAI,EAAE,0GAA0G;IAChH,SAAS,EAAE,+OAA+O;IAC1P,OAAO,EAAE,EAAE;IACX,SAAS,EAAE;QACT,CAAC,UAAU,EAAE,CAAC,EAAC,kBAAkB,CAAC;QAClC,CAAC,UAAU,EAAE,EAAE,EAAC,gBAAgB,CAAC;KAClC;IACD,YAAY,EAAE,CAAC,CAAC,CAAC;IACjB,eAAe,EAAE,CAAC;IAClB,SAAS,EAAE,w2EAAw2E;IACn3E,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClB,QAAQ,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC;IAC3B,WAAW,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC;IACrE,SAAS,EAAE,GAAG;CACf,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC;QACrB,KAAK,EAAE;YACH,SAAS,CAAC;gBACN,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,kBAAkB,EAAE,IAAI,CAAC,WAAW;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;aACpB,CAAC;SACL;KACJ,CAAC;IACF,YAAY,EAAE;QACV,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KAChC;CACJ,CAAC;AACF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAChE,SAAS,QAAQ;IACb,OAAO,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"qformula.lang.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.js"],"names":[],"mappings":"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"}
@@ -1,19 +1,20 @@
1
- export const spaces: 25;
2
- export const newline: 26;
3
- export const lineComment: 27;
4
- export const Program: 1;
5
- export const Expression: 2;
6
- export const Value: 3;
7
- export const Number: 4;
8
- export const Date: 5;
9
- export const String: 6;
10
- export const ParenthesisEnd: 8;
11
- export const Function: 9;
12
- export const FunctionIdentifier: 10;
13
- export const ParenthesisStart: 11;
14
- export const FunctionArguments: 12;
15
- export const Variable: 13;
16
- export const UnaryExpression: 14;
17
- export const BinaryExpression: 16;
18
- export const divide: 17;
19
- export const ParenthesizedExpression: 21;
1
+ export const noOprt: 25;
2
+ export const spaces: 27;
3
+ export const newline: 28;
4
+ export const lineComment: 1;
5
+ export const Program: 2;
6
+ export const Expression: 3;
7
+ export const Value: 4;
8
+ export const Number: 5;
9
+ export const Date: 6;
10
+ export const String: 7;
11
+ export const ParenthesisEnd: 9;
12
+ export const Function: 10;
13
+ export const FunctionIdentifier: 11;
14
+ export const ParenthesisStart: 12;
15
+ export const FunctionArguments: 13;
16
+ export const Variable: 14;
17
+ export const UnaryExpression: 15;
18
+ export const BinaryExpression: 17;
19
+ export const divide: 18;
20
+ export const ParenthesizedExpression: 22;
@@ -1,3 +1,3 @@
1
1
  // This file was generated by lezer-generator. You probably shouldn't edit it.
2
- export const spaces = 25, newline = 26, lineComment = 27, Program = 1, Expression = 2, Value = 3, Number = 4, Date = 5, String = 6, ParenthesisEnd = 8, Function = 9, FunctionIdentifier = 10, ParenthesisStart = 11, FunctionArguments = 12, Variable = 13, UnaryExpression = 14, BinaryExpression = 16, divide = 17, ParenthesizedExpression = 21;
2
+ export const noOprt = 25, spaces = 27, newline = 28, lineComment = 1, Program = 2, Expression = 3, Value = 4, Number = 5, Date = 6, String = 7, ParenthesisEnd = 9, Function = 10, FunctionIdentifier = 11, ParenthesisStart = 12, FunctionArguments = 13, Variable = 14, UnaryExpression = 15, BinaryExpression = 17, divide = 18, ParenthesizedExpression = 22;
3
3
  //# sourceMappingURL=qformula.lang.terms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"qformula.lang.terms.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.terms.js"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MACL,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,CAAC,EACX,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,EACV,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,EACV,cAAc,GAAG,CAAC,EAClB,QAAQ,GAAG,CAAC,EACZ,kBAAkB,GAAG,EAAE,EACvB,gBAAgB,GAAG,EAAE,EACrB,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,EAAE,EACb,eAAe,GAAG,EAAE,EACpB,gBAAgB,GAAG,EAAE,EACrB,MAAM,GAAG,EAAE,EACX,uBAAuB,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"qformula.lang.terms.js","sourceRoot":"","sources":["../../../../src/grammar/generated/qformula.lang.terms.js"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MACL,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,CAAC,EACf,OAAO,GAAG,CAAC,EACX,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,EACV,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,EACV,cAAc,GAAG,CAAC,EAClB,QAAQ,GAAG,EAAE,EACb,kBAAkB,GAAG,EAAE,EACvB,gBAAgB,GAAG,EAAE,EACrB,iBAAiB,GAAG,EAAE,EACtB,QAAQ,GAAG,EAAE,EACb,eAAe,GAAG,EAAE,EACpB,gBAAgB,GAAG,EAAE,EACrB,MAAM,GAAG,EAAE,EACX,uBAAuB,GAAG,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { ExternalTokenizer } from '@lezer/lr';
2
+ export declare const noOperator: ExternalTokenizer;
@@ -0,0 +1,23 @@
1
+ import { ExternalTokenizer } from '@lezer/lr';
2
+ import { noOprt } from './generated/qformula.lang.terms';
3
+ const space = [
4
+ 9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,
5
+ 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288,
6
+ ];
7
+ const operators = [43, 45, 42, 47, 60, 61, 62];
8
+ const parenteses = [41, 40];
9
+ const comma = 44;
10
+ export const noOperator = new ExternalTokenizer((input, stack) => {
11
+ const { next } = input;
12
+ if (space.indexOf(next) > -1 ||
13
+ parenteses.indexOf(next) > -1 ||
14
+ next === comma)
15
+ return;
16
+ if (operators.indexOf(next) === -1 &&
17
+ next != -1 &&
18
+ !stack.context &&
19
+ stack.canShift(noOprt)) {
20
+ input.acceptToken(noOprt);
21
+ }
22
+ }, { contextual: true });
23
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/grammar/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,MAAM,KAAK,GAAG;IACV,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;CAC9D,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/C,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5B,MAAM,KAAK,GAAG,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAC3C,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IACb,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IACI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK;QAEd,OAAO;IACX,IACI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,CAAC;QACV,CAAC,KAAK,CAAC,OAAO;QACd,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxB;QACE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;KAC7B;AACL,CAAC,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACvB,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import { ENGINES } from './constants/index';
2
2
  import { FormulaContext, TranspilationResponse } from './constants/interfaces';
3
- export { QFormula as FormulaHighlight, QFormulaLang as FormulaLang, QFormulaHighlightConfig as FormulaHightConfig, } from './grammar/qformula.grammar';
3
+ export { QFormula as FormulaHighlight, QFormulaLang as FormulaLang, QFormulaParser as FormulaParser, } from './grammar/qformula.grammar';
4
4
  export { calculateAST } from './parser/json-parser';
5
5
  export { ENGINES, AST_PRIMITIVES } from './constants/index';
6
6
  export { FUNCTION_LIST, getFunctionDetail } from './functions/index';
7
7
  export { TranspileAST } from './transpiler/index';
8
8
  export { ProgramAST, TranspilationResponse, FormulaContext, } from './constants/interfaces';
9
9
  export { BaseError, errorAnalyzer } from './errors';
10
+ export { cleanInvalidItemsInContext } from './utils';
11
+ export { getPrimitiveAsValue } from './utils/primitiveFunctions';
10
12
  export declare function Transpile(program: string, engine: ENGINES, context?: FormulaContext): TranspilationResponse | undefined;
@@ -1,12 +1,14 @@
1
1
  import { QFormulaLang } from './grammar/qformula.grammar';
2
2
  import { calculateAST } from './parser/json-parser';
3
3
  import { TranspileAST } from './transpiler/index';
4
- export { QFormula as FormulaHighlight, QFormulaLang as FormulaLang, QFormulaHighlightConfig as FormulaHightConfig, } from './grammar/qformula.grammar';
4
+ export { QFormula as FormulaHighlight, QFormulaLang as FormulaLang, QFormulaParser as FormulaParser, } from './grammar/qformula.grammar';
5
5
  export { calculateAST } from './parser/json-parser';
6
6
  export { ENGINES, AST_PRIMITIVES } from './constants/index';
7
7
  export { FUNCTION_LIST, getFunctionDetail } from './functions/index';
8
8
  export { TranspileAST } from './transpiler/index';
9
9
  export { BaseError, errorAnalyzer } from './errors';
10
+ export { cleanInvalidItemsInContext } from './utils';
11
+ export { getPrimitiveAsValue } from './utils/primitiveFunctions';
10
12
  export function Transpile(program, engine, context) {
11
13
  const parser = QFormulaLang.parser;
12
14
  const tree = parser.parse(program);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACH,QAAQ,IAAI,gBAAgB,EAC5B,YAAY,IAAI,WAAW,EAC3B,uBAAuB,IAAI,kBAAkB,GAChD,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,UAAU,SAAS,CACrB,OAAe,EACf,MAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO;IAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACH,QAAQ,IAAI,gBAAgB,EAC5B,YAAY,IAAI,WAAW,EAC3B,cAAc,IAAI,aAAa,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,UAAU,SAAS,CACrB,OAAe,EACf,MAAe,EACf,OAAwB;IAExB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO;IAC1B,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { SyntaxNode } from '@lezer/common';
2
- import { FormulaContext, FormulaInference, FunctionCallAST } from '../constants/interfaces';
2
+ import { FormulaContext, FormulaInference, FunctionCallAST, ProgramPosition } from '../constants/interfaces';
3
3
  import { TransformNodeFNType } from './interfaces';
4
4
  export declare function transformFunctionExpression(program: string, node: SyntaxNode, inference: FormulaInference, context: FormulaContext | undefined, transformNodeFunction: TransformNodeFNType): FunctionCallAST;
5
+ export declare function createPositionASTFromSyntaxNode({ from, to, }: SyntaxNode): ProgramPosition;
@@ -11,6 +11,7 @@ export function transformFunctionExpression(program, node, inference, context, t
11
11
  const parenthesisStart = node.getChild('ParenthesisStart');
12
12
  const parenthesisEnd = node.getChild('ParenthesisEnd');
13
13
  const args = getFunctionArguments(node, parenthesisStart, program, inference, context, transformNodeFunction);
14
+ const functionIdentifier = createPositionASTFromSyntaxNode(fnIdentifier);
14
15
  const baseNode = {
15
16
  type: AST_TYPES.functionCall,
16
17
  name: getNodeValue(program, fnIdentifier),
@@ -19,22 +20,16 @@ export function transformFunctionExpression(program, node, inference, context, t
19
20
  to: node.to,
20
21
  parenthesisStart: !!parenthesisStart,
21
22
  parenthesisEnd: !!parenthesisEnd,
22
- formulaText: fnString,
23
+ functionText: fnString,
24
+ functionIdentifier,
23
25
  };
24
26
  const functionExists = FUNCTION_LIST.includes(fnName);
25
27
  const functionDetail = functionExists
26
28
  ? getFunctionDetail(fnName)
27
29
  : undefined;
28
- let primitive;
29
- try {
30
- primitive = functionDetail
31
- ? getFunctionPrimitive(functionDetail, baseNode.arguments)
32
- : AST_PRIMITIVES.UNKNOWN;
33
- }
34
- catch (error) {
35
- primitive = AST_PRIMITIVES.UNKNOWN;
36
- inference.errorList.push(error);
37
- }
30
+ const primitive = functionDetail
31
+ ? getFunctionPrimitive(functionDetail, baseNode.arguments)
32
+ : AST_PRIMITIVES.UNKNOWN;
38
33
  const resultNode = Object.assign(Object.assign({}, baseNode), { primitive });
39
34
  if (functionExists && (!parenthesisStart || !parenthesisEnd)) {
40
35
  inference.errorList.push(new MissingParenthesisError(Object.assign(Object.assign({}, resultNode), { from: !parenthesisStart ? resultNode.from : resultNode.to })));
@@ -89,4 +84,7 @@ function createCommonASTFromNode(program, node, inference, context, transformNod
89
84
  }
90
85
  return transformNodeFunction(program, node, inference, context);
91
86
  }
87
+ export function createPositionASTFromSyntaxNode({ from, to, }) {
88
+ return { from, to };
89
+ }
92
90
  //# sourceMappingURL=formula-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formula-parser.js","sourceRoot":"","sources":["../../../src/parser/formula-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formula-parser.js","sourceRoot":"","sources":["../../../src/parser/formula-parser.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGpD,MAAM,UAAU,2BAA2B,CACvC,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAmC,EACnC,qBAA0C;IAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAe,CAAC;IACvE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAEvD,MAAM,IAAI,GAAG,oBAAoB,CAC7B,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,OAAO,EACP,qBAAqB,CACxB,CAAC;IACF,MAAM,kBAAkB,GAAG,+BAA+B,CAAC,YAAY,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAuC;QACjD,IAAI,EAAE,SAAS,CAAC,YAAY;QAC5B,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC;QACzC,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,YAAY,EAAE,QAAQ;QACtB,kBAAkB;KACrB,CAAC;IACF,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,cAAc;QACjC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC3B,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,SAAS,GAAG,cAAc;QAC5B,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC;QAC1D,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IAE7B,MAAM,UAAU,mCAAQ,QAAQ,KAAE,SAAS,GAAE,CAAC;IAC9C,IAAI,cAAc,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,cAAc,CAAC,EAAE;QAC1D,SAAS,CAAC,SAAS,CAAC,IAAI,CACpB,IAAI,uBAAuB,iCACpB,UAAU,KACb,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,IAC3D,CACL,CAAC;KACL;IACD,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,oBAAoB,CACzB,MAAkB,EAClB,gBAAmC,EACnC,OAAe,EACf,SAA2B,EAC3B,OAAmC,EACnC,qBAA0C;IAE1C,MAAM,aAAa,GAAgB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAElD,IAAI,gBAAgB,EAAE;QAClB,aAAa,CAAC,IAAI,CACd,GAAG,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAClE,CAAC;KACL;IACD,aAAa,CAAC,IAAI,CACd,GAAG,wBAAwB,CACvB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,OAAO,EACP,qBAAqB,CACxB,CACJ,CAAC;IAEF,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,wBAAwB,CAC7B,IAAuB,EACvB,MAAkB,EAClB,OAAe,EACf,SAA2B,EAC3B,OAAmC,EACnC,qBAA0C;IAE1C,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAiB,EAAE,EAAE;QACxD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YACvD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC7C,MAAM,OAAO,GAAG,uBAAuB,CACnC,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,qBAAqB,CACxB,CAAC;YACF,IAAI,OAAO;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC;SAChB;IACL,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,yBAAyB,CAC9B,MAAkB,EAClB,OAAe,EACf,gBAA4B;IAE5B,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAiB,EAAE,EAAE;QAC9D,IAAI,WAAW,CAAC,IAAI,KAAK,mBAAmB,EAAE;YAC1C,OAAO,KAAK,CAAC,CAAC,sCAAsC;SACvD;QACD,IACI,WAAW,CAAC,IAAI,CAAC,OAAO;YACxB,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,GAAG;YAC1C,WAAW,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAC1C;YACE,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC;YACjD,UAAU,CAAC,IAAI,CACX,kBAAkB,CAAC;gBACf,IAAI,EAAE,cAAc;gBACpB,EAAE,EAAE,WAAW,CAAC,IAAI;aACvB,CAAC,CACL,CAAC;SACL;IACL,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,uBAAuB,CAC5B,OAAe,EACf,IAAgB,EAChB,SAA2B,EAC3B,OAAmC,EACnC,qBAA0C;IAE1C,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACnB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACnC;IACD,OAAO,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,EAC5C,IAAI,EACJ,EAAE,GACO;IACT,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACxB,CAAC"}