@qrvey/formula-lang 1.1.0 → 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 (319) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +32 -0
  3. package/dist/cjs/constants/index.d.ts +5 -0
  4. package/dist/cjs/constants/index.js +10 -1
  5. package/dist/cjs/constants/index.js.map +1 -1
  6. package/dist/cjs/constants/interfaces.d.ts +6 -3
  7. package/dist/cjs/errors/dictionary.d.ts +2 -1
  8. package/dist/cjs/errors/dictionary.js +9 -4
  9. package/dist/cjs/errors/dictionary.js.map +1 -1
  10. package/dist/cjs/errors/mismatch.d.ts +2 -5
  11. package/dist/cjs/errors/mismatch.js +10 -18
  12. package/dist/cjs/errors/mismatch.js.map +1 -1
  13. package/dist/cjs/functions/abs.js +1 -0
  14. package/dist/cjs/functions/abs.js.map +1 -1
  15. package/dist/cjs/functions/and.js +3 -0
  16. package/dist/cjs/functions/and.js.map +1 -1
  17. package/dist/cjs/functions/concatenate.js +4 -1
  18. package/dist/cjs/functions/concatenate.js.map +1 -1
  19. package/dist/cjs/functions/dateadd.js +33 -25
  20. package/dist/cjs/functions/dateadd.js.map +1 -1
  21. package/dist/cjs/functions/datedif.js +7 -2
  22. package/dist/cjs/functions/datedif.js.map +1 -1
  23. package/dist/cjs/functions/datesubtract.d.ts +5 -0
  24. package/dist/cjs/functions/datesubtract.js +114 -0
  25. package/dist/cjs/functions/datesubtract.js.map +1 -0
  26. package/dist/cjs/functions/day.js +1 -0
  27. package/dist/cjs/functions/day.js.map +1 -1
  28. package/dist/cjs/functions/dayofweek.js +2 -0
  29. package/dist/cjs/functions/dayofweek.js.map +1 -1
  30. package/dist/cjs/functions/even.d.ts +5 -0
  31. package/dist/cjs/functions/even.js +46 -0
  32. package/dist/cjs/functions/even.js.map +1 -0
  33. package/dist/cjs/functions/exp.d.ts +5 -0
  34. package/dist/cjs/functions/exp.js +42 -0
  35. package/dist/cjs/functions/exp.js.map +1 -0
  36. package/dist/cjs/functions/hour.js +1 -0
  37. package/dist/cjs/functions/hour.js.map +1 -1
  38. package/dist/cjs/functions/if.js +1 -0
  39. package/dist/cjs/functions/if.js.map +1 -1
  40. package/dist/cjs/functions/ifs.js +1 -0
  41. package/dist/cjs/functions/ifs.js.map +1 -1
  42. package/dist/cjs/functions/include.d.ts +5 -0
  43. package/dist/cjs/functions/include.js +48 -0
  44. package/dist/cjs/functions/include.js.map +1 -0
  45. package/dist/cjs/functions/index.js +32 -0
  46. package/dist/cjs/functions/index.js.map +1 -1
  47. package/dist/cjs/functions/left.js +12 -4
  48. package/dist/cjs/functions/left.js.map +1 -1
  49. package/dist/cjs/functions/length.d.ts +5 -0
  50. package/dist/cjs/functions/length.js +45 -0
  51. package/dist/cjs/functions/length.js.map +1 -0
  52. package/dist/cjs/functions/log.d.ts +5 -0
  53. package/dist/cjs/functions/log.js +59 -0
  54. package/dist/cjs/functions/log.js.map +1 -0
  55. package/dist/cjs/functions/lower.js +1 -0
  56. package/dist/cjs/functions/lower.js.map +1 -1
  57. package/dist/cjs/functions/max.d.ts +5 -0
  58. package/dist/cjs/functions/max.js +60 -0
  59. package/dist/cjs/functions/max.js.map +1 -0
  60. package/dist/cjs/functions/mid.js +22 -10
  61. package/dist/cjs/functions/mid.js.map +1 -1
  62. package/dist/cjs/functions/min.d.ts +5 -0
  63. package/dist/cjs/functions/min.js +60 -0
  64. package/dist/cjs/functions/min.js.map +1 -0
  65. package/dist/cjs/functions/minute.js +1 -0
  66. package/dist/cjs/functions/minute.js.map +1 -1
  67. package/dist/cjs/functions/month.js +1 -0
  68. package/dist/cjs/functions/month.js.map +1 -1
  69. package/dist/cjs/functions/odd.d.ts +5 -0
  70. package/dist/cjs/functions/odd.js +46 -0
  71. package/dist/cjs/functions/odd.js.map +1 -0
  72. package/dist/cjs/functions/or.js +3 -0
  73. package/dist/cjs/functions/or.js.map +1 -1
  74. package/dist/cjs/functions/power.d.ts +5 -0
  75. package/dist/cjs/functions/power.js +53 -0
  76. package/dist/cjs/functions/power.js.map +1 -0
  77. package/dist/cjs/functions/proper.js +1 -0
  78. package/dist/cjs/functions/proper.js.map +1 -1
  79. package/dist/cjs/functions/random.d.ts +5 -0
  80. package/dist/cjs/functions/random.js +34 -0
  81. package/dist/cjs/functions/random.js.map +1 -0
  82. package/dist/cjs/functions/replace.d.ts +5 -0
  83. package/dist/cjs/functions/replace.js +54 -0
  84. package/dist/cjs/functions/replace.js.map +1 -0
  85. package/dist/cjs/functions/right.js +12 -4
  86. package/dist/cjs/functions/right.js.map +1 -1
  87. package/dist/cjs/functions/round.d.ts +5 -0
  88. package/dist/cjs/functions/round.js +59 -0
  89. package/dist/cjs/functions/round.js.map +1 -0
  90. package/dist/cjs/functions/rounddown.d.ts +5 -0
  91. package/dist/cjs/functions/rounddown.js +59 -0
  92. package/dist/cjs/functions/rounddown.js.map +1 -0
  93. package/dist/cjs/functions/roundup.d.ts +5 -0
  94. package/dist/cjs/functions/roundup.js +59 -0
  95. package/dist/cjs/functions/roundup.js.map +1 -0
  96. package/dist/cjs/functions/second.js +1 -0
  97. package/dist/cjs/functions/second.js.map +1 -1
  98. package/dist/cjs/functions/sqrt.d.ts +5 -0
  99. package/dist/cjs/functions/sqrt.js +46 -0
  100. package/dist/cjs/functions/sqrt.js.map +1 -0
  101. package/dist/cjs/functions/trim.js +1 -0
  102. package/dist/cjs/functions/trim.js.map +1 -1
  103. package/dist/cjs/functions/upper.js +1 -0
  104. package/dist/cjs/functions/upper.js.map +1 -1
  105. package/dist/cjs/functions/year.js +1 -0
  106. package/dist/cjs/functions/year.js.map +1 -1
  107. package/dist/cjs/index.d.ts +1 -0
  108. package/dist/cjs/index.js +3 -1
  109. package/dist/cjs/index.js.map +1 -1
  110. package/dist/cjs/parser/json-parser.js +2 -1
  111. package/dist/cjs/parser/json-parser.js.map +1 -1
  112. package/dist/cjs/transpiler/columnTranspilation.js +8 -1
  113. package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
  114. package/dist/cjs/transpiler/index.js +7 -1
  115. package/dist/cjs/transpiler/index.js.map +1 -1
  116. package/dist/cjs/utils/addDecimalPointIfNeeded.d.ts +3 -0
  117. package/dist/cjs/utils/addDecimalPointIfNeeded.js +19 -0
  118. package/dist/cjs/utils/addDecimalPointIfNeeded.js.map +1 -0
  119. package/dist/cjs/utils/cleanInvalidItemsInContext.d.ts +1 -1
  120. package/dist/cjs/utils/cleanInvalidItemsInContext.js +2 -1
  121. package/dist/cjs/utils/cleanInvalidItemsInContext.js.map +1 -1
  122. package/dist/cjs/utils/elasticsearch/index.js +29 -0
  123. package/dist/cjs/utils/elasticsearch/index.js.map +1 -1
  124. package/dist/cjs/utils/elasticsearch/scripts.d.ts +15 -1
  125. package/dist/cjs/utils/elasticsearch/scripts.js +131 -17
  126. package/dist/cjs/utils/elasticsearch/scripts.js.map +1 -1
  127. package/dist/cjs/utils/escapeCharacters.js +2 -0
  128. package/dist/cjs/utils/escapeCharacters.js.map +1 -1
  129. package/dist/cjs/utils/getNumericValueFromArgument.d.ts +3 -0
  130. package/dist/cjs/utils/getNumericValueFromArgument.js +32 -0
  131. package/dist/cjs/utils/getNumericValueFromArgument.js.map +1 -0
  132. package/dist/cjs/utils/getValidDataTypeParam.d.ts +3 -0
  133. package/dist/cjs/utils/getValidDataTypeParam.js +10 -0
  134. package/dist/cjs/utils/getValidDataTypeParam.js.map +1 -0
  135. package/dist/cjs/utils/greaterThanOrEqualToReference.d.ts +3 -0
  136. package/dist/cjs/utils/greaterThanOrEqualToReference.js +20 -0
  137. package/dist/cjs/utils/greaterThanOrEqualToReference.js.map +1 -0
  138. package/dist/cjs/utils/greaterThanReference.d.ts +3 -0
  139. package/dist/cjs/utils/greaterThanReference.js +19 -0
  140. package/dist/cjs/utils/greaterThanReference.js.map +1 -0
  141. package/dist/cjs/utils/isAValidPower.d.ts +3 -0
  142. package/dist/cjs/utils/isAValidPower.js +21 -0
  143. package/dist/cjs/utils/isAValidPower.js.map +1 -0
  144. package/dist/cjs/utils/isBetweenInclusiveRange.d.ts +3 -0
  145. package/dist/cjs/utils/isBetweenInclusiveRange.js +21 -0
  146. package/dist/cjs/utils/isBetweenInclusiveRange.js.map +1 -0
  147. package/dist/cjs/utils/isInteger.d.ts +3 -0
  148. package/dist/cjs/utils/isInteger.js +25 -0
  149. package/dist/cjs/utils/isInteger.js.map +1 -0
  150. package/dist/cjs/utils/isLongLiteralNumber.js +2 -1
  151. package/dist/cjs/utils/isLongLiteralNumber.js.map +1 -1
  152. package/dist/cjs/utils/isSameAndValidRecursiveDataType.d.ts +3 -0
  153. package/dist/cjs/utils/isSameAndValidRecursiveDataType.js +32 -0
  154. package/dist/cjs/utils/isSameAndValidRecursiveDataType.js.map +1 -0
  155. package/dist/cjs/utils/primitiveFunctions.d.ts +3 -0
  156. package/dist/cjs/utils/primitiveFunctions.js +7 -1
  157. package/dist/cjs/utils/primitiveFunctions.js.map +1 -1
  158. package/dist/module/constants/index.d.ts +5 -0
  159. package/dist/module/constants/index.js +9 -0
  160. package/dist/module/constants/index.js.map +1 -1
  161. package/dist/module/constants/interfaces.d.ts +6 -3
  162. package/dist/module/errors/dictionary.d.ts +2 -1
  163. package/dist/module/errors/dictionary.js +9 -4
  164. package/dist/module/errors/dictionary.js.map +1 -1
  165. package/dist/module/errors/mismatch.d.ts +2 -5
  166. package/dist/module/errors/mismatch.js +10 -18
  167. package/dist/module/errors/mismatch.js.map +1 -1
  168. package/dist/module/functions/abs.js +1 -0
  169. package/dist/module/functions/abs.js.map +1 -1
  170. package/dist/module/functions/and.js +3 -0
  171. package/dist/module/functions/and.js.map +1 -1
  172. package/dist/module/functions/concatenate.js +4 -1
  173. package/dist/module/functions/concatenate.js.map +1 -1
  174. package/dist/module/functions/dateadd.js +33 -25
  175. package/dist/module/functions/dateadd.js.map +1 -1
  176. package/dist/module/functions/datedif.js +7 -2
  177. package/dist/module/functions/datedif.js.map +1 -1
  178. package/dist/module/functions/datesubtract.d.ts +5 -0
  179. package/dist/module/functions/datesubtract.js +111 -0
  180. package/dist/module/functions/datesubtract.js.map +1 -0
  181. package/dist/module/functions/day.js +1 -0
  182. package/dist/module/functions/day.js.map +1 -1
  183. package/dist/module/functions/dayofweek.js +2 -0
  184. package/dist/module/functions/dayofweek.js.map +1 -1
  185. package/dist/module/functions/even.d.ts +5 -0
  186. package/dist/module/functions/even.js +43 -0
  187. package/dist/module/functions/even.js.map +1 -0
  188. package/dist/module/functions/exp.d.ts +5 -0
  189. package/dist/module/functions/exp.js +39 -0
  190. package/dist/module/functions/exp.js.map +1 -0
  191. package/dist/module/functions/hour.js +1 -0
  192. package/dist/module/functions/hour.js.map +1 -1
  193. package/dist/module/functions/if.js +1 -0
  194. package/dist/module/functions/if.js.map +1 -1
  195. package/dist/module/functions/ifs.js +1 -0
  196. package/dist/module/functions/ifs.js.map +1 -1
  197. package/dist/module/functions/include.d.ts +5 -0
  198. package/dist/module/functions/include.js +45 -0
  199. package/dist/module/functions/include.js.map +1 -0
  200. package/dist/module/functions/index.js +32 -0
  201. package/dist/module/functions/index.js.map +1 -1
  202. package/dist/module/functions/left.js +12 -4
  203. package/dist/module/functions/left.js.map +1 -1
  204. package/dist/module/functions/length.d.ts +5 -0
  205. package/dist/module/functions/length.js +42 -0
  206. package/dist/module/functions/length.js.map +1 -0
  207. package/dist/module/functions/log.d.ts +5 -0
  208. package/dist/module/functions/log.js +56 -0
  209. package/dist/module/functions/log.js.map +1 -0
  210. package/dist/module/functions/lower.js +1 -0
  211. package/dist/module/functions/lower.js.map +1 -1
  212. package/dist/module/functions/max.d.ts +5 -0
  213. package/dist/module/functions/max.js +57 -0
  214. package/dist/module/functions/max.js.map +1 -0
  215. package/dist/module/functions/mid.js +22 -10
  216. package/dist/module/functions/mid.js.map +1 -1
  217. package/dist/module/functions/min.d.ts +5 -0
  218. package/dist/module/functions/min.js +57 -0
  219. package/dist/module/functions/min.js.map +1 -0
  220. package/dist/module/functions/minute.js +1 -0
  221. package/dist/module/functions/minute.js.map +1 -1
  222. package/dist/module/functions/month.js +1 -0
  223. package/dist/module/functions/month.js.map +1 -1
  224. package/dist/module/functions/odd.d.ts +5 -0
  225. package/dist/module/functions/odd.js +43 -0
  226. package/dist/module/functions/odd.js.map +1 -0
  227. package/dist/module/functions/or.js +3 -0
  228. package/dist/module/functions/or.js.map +1 -1
  229. package/dist/module/functions/power.d.ts +5 -0
  230. package/dist/module/functions/power.js +50 -0
  231. package/dist/module/functions/power.js.map +1 -0
  232. package/dist/module/functions/proper.js +1 -0
  233. package/dist/module/functions/proper.js.map +1 -1
  234. package/dist/module/functions/random.d.ts +5 -0
  235. package/dist/module/functions/random.js +31 -0
  236. package/dist/module/functions/random.js.map +1 -0
  237. package/dist/module/functions/replace.d.ts +5 -0
  238. package/dist/module/functions/replace.js +51 -0
  239. package/dist/module/functions/replace.js.map +1 -0
  240. package/dist/module/functions/right.js +12 -4
  241. package/dist/module/functions/right.js.map +1 -1
  242. package/dist/module/functions/round.d.ts +5 -0
  243. package/dist/module/functions/round.js +56 -0
  244. package/dist/module/functions/round.js.map +1 -0
  245. package/dist/module/functions/rounddown.d.ts +5 -0
  246. package/dist/module/functions/rounddown.js +56 -0
  247. package/dist/module/functions/rounddown.js.map +1 -0
  248. package/dist/module/functions/roundup.d.ts +5 -0
  249. package/dist/module/functions/roundup.js +56 -0
  250. package/dist/module/functions/roundup.js.map +1 -0
  251. package/dist/module/functions/second.js +1 -0
  252. package/dist/module/functions/second.js.map +1 -1
  253. package/dist/module/functions/sqrt.d.ts +5 -0
  254. package/dist/module/functions/sqrt.js +43 -0
  255. package/dist/module/functions/sqrt.js.map +1 -0
  256. package/dist/module/functions/trim.js +1 -0
  257. package/dist/module/functions/trim.js.map +1 -1
  258. package/dist/module/functions/upper.js +1 -0
  259. package/dist/module/functions/upper.js.map +1 -1
  260. package/dist/module/functions/year.js +1 -0
  261. package/dist/module/functions/year.js.map +1 -1
  262. package/dist/module/index.d.ts +1 -0
  263. package/dist/module/index.js +1 -0
  264. package/dist/module/index.js.map +1 -1
  265. package/dist/module/parser/json-parser.js +2 -1
  266. package/dist/module/parser/json-parser.js.map +1 -1
  267. package/dist/module/transpiler/columnTranspilation.js +8 -1
  268. package/dist/module/transpiler/columnTranspilation.js.map +1 -1
  269. package/dist/module/transpiler/index.js +7 -1
  270. package/dist/module/transpiler/index.js.map +1 -1
  271. package/dist/module/utils/addDecimalPointIfNeeded.d.ts +3 -0
  272. package/dist/module/utils/addDecimalPointIfNeeded.js +15 -0
  273. package/dist/module/utils/addDecimalPointIfNeeded.js.map +1 -0
  274. package/dist/module/utils/cleanInvalidItemsInContext.d.ts +1 -1
  275. package/dist/module/utils/cleanInvalidItemsInContext.js +2 -1
  276. package/dist/module/utils/cleanInvalidItemsInContext.js.map +1 -1
  277. package/dist/module/utils/elasticsearch/index.js +30 -1
  278. package/dist/module/utils/elasticsearch/index.js.map +1 -1
  279. package/dist/module/utils/elasticsearch/scripts.d.ts +15 -1
  280. package/dist/module/utils/elasticsearch/scripts.js +130 -16
  281. package/dist/module/utils/elasticsearch/scripts.js.map +1 -1
  282. package/dist/module/utils/escapeCharacters.js +2 -0
  283. package/dist/module/utils/escapeCharacters.js.map +1 -1
  284. package/dist/module/utils/getNumericValueFromArgument.d.ts +3 -0
  285. package/dist/module/utils/getNumericValueFromArgument.js +27 -0
  286. package/dist/module/utils/getNumericValueFromArgument.js.map +1 -0
  287. package/dist/module/utils/getValidDataTypeParam.d.ts +3 -0
  288. package/dist/module/utils/getValidDataTypeParam.js +6 -0
  289. package/dist/module/utils/getValidDataTypeParam.js.map +1 -0
  290. package/dist/module/utils/greaterThanOrEqualToReference.d.ts +3 -0
  291. package/dist/module/utils/greaterThanOrEqualToReference.js +16 -0
  292. package/dist/module/utils/greaterThanOrEqualToReference.js.map +1 -0
  293. package/dist/module/utils/greaterThanReference.d.ts +3 -0
  294. package/dist/module/utils/greaterThanReference.js +15 -0
  295. package/dist/module/utils/greaterThanReference.js.map +1 -0
  296. package/dist/module/utils/isAValidPower.d.ts +3 -0
  297. package/dist/module/utils/isAValidPower.js +17 -0
  298. package/dist/module/utils/isAValidPower.js.map +1 -0
  299. package/dist/module/utils/isBetweenInclusiveRange.d.ts +3 -0
  300. package/dist/module/utils/isBetweenInclusiveRange.js +17 -0
  301. package/dist/module/utils/isBetweenInclusiveRange.js.map +1 -0
  302. package/dist/module/utils/isInteger.d.ts +3 -0
  303. package/dist/module/utils/isInteger.js +21 -0
  304. package/dist/module/utils/isInteger.js.map +1 -0
  305. package/dist/module/utils/isLongLiteralNumber.js +2 -1
  306. package/dist/module/utils/isLongLiteralNumber.js.map +1 -1
  307. package/dist/module/utils/isSameAndValidRecursiveDataType.d.ts +3 -0
  308. package/dist/module/utils/isSameAndValidRecursiveDataType.js +28 -0
  309. package/dist/module/utils/isSameAndValidRecursiveDataType.js.map +1 -0
  310. package/dist/module/utils/primitiveFunctions.d.ts +3 -0
  311. package/dist/module/utils/primitiveFunctions.js +5 -0
  312. package/dist/module/utils/primitiveFunctions.js.map +1 -1
  313. package/package.json +1 -1
  314. package/dist/cjs/utils/greaterThanZero.d.ts +0 -3
  315. package/dist/cjs/utils/greaterThanZero.js +0 -38
  316. package/dist/cjs/utils/greaterThanZero.js.map +0 -1
  317. package/dist/module/utils/greaterThanZero.d.ts +0 -3
  318. package/dist/module/utils/greaterThanZero.js +0 -34
  319. package/dist/module/utils/greaterThanZero.js.map +0 -1
@@ -25,22 +25,6 @@ String ${SCRIPT_NAMES.dateFormat}(def date_value, String format) {
25
25
  return DateTimeFormatter.ofPattern(format).format(date_value)
26
26
  }
27
27
  `;
28
- export const subStringScript = `
29
- String ${SCRIPT_NAMES.subString}(String text, int start, int end) {
30
- int first = 0;
31
- if (end < 0 || (start * -1 > text.length())) return "";
32
- if (start < 0) {
33
- first = (int) Math.max(text.length() + start, 0);
34
- } else if (start == 0) {
35
- first = 0;
36
- } else {
37
- first = (int) Math.min(start - 1, text.length())
38
- }
39
-
40
- int last = (int) Math.min(first + end, text.length());
41
- return text.substring(first, last);
42
- }
43
- `;
44
28
  function dateFormatToInt(value, format) {
45
29
  return `Integer.parseInt(${SCRIPT_NAMES.dateFormat}(${value}, '${format}'))`;
46
30
  }
@@ -80,4 +64,134 @@ export const properScript = `String PROPER_STRING(String input) {
80
64
  }
81
65
  return builder.toString();
82
66
  }`;
67
+ export const greatestScript = `def GREATEST(def numbers) {
68
+ def max;
69
+ if (numbers[0] instanceof ZonedDateTime) {
70
+ max = numbers[0];
71
+ if (max === null) return null;
72
+ for (int i = 1; i < numbers.length; i++) {
73
+ if (numbers[i] === null) return null;
74
+ def current = numbers[i];
75
+ if (current.isAfter(max)) {
76
+ max = current;
77
+ }
78
+ }
79
+ return max;
80
+ } else {
81
+ max = numbers[0];
82
+ if (max === null) return null;
83
+ for (int i = 1; i < numbers.length; i++) {
84
+ if (numbers[i] === null) return null;
85
+ if (numbers[i] > max) {
86
+ max = numbers[i];
87
+ }
88
+ }
89
+ return max;
90
+ }
91
+ }`;
92
+ export const leastScript = `def LEAST(def numbers) {
93
+ def min;
94
+ if (numbers[0] instanceof ZonedDateTime) {
95
+ min = numbers[0];
96
+ if (min === null) return null;
97
+ for (int i = 1; i < numbers.length; i++) {
98
+ if (numbers[i] === null) return null;
99
+ def current = numbers[i];
100
+ if (current.isBefore(min)) {
101
+ min = current;
102
+ }
103
+ }
104
+ return min;
105
+ } else {
106
+ min = numbers[0];
107
+ if (min === null) return null;
108
+ for (int i = 1; i < numbers.length; i++) {
109
+ if (numbers[i] === null) return null;
110
+ if (numbers[i] < min) {
111
+ min = numbers[i];
112
+ }
113
+ }
114
+ return min;
115
+ }
116
+ }`;
117
+ export const lengthScript = `def LENGTH(def str){return str != null ? str.length() : 0}`;
118
+ export const sqrtScript = `def SQRT(def num){return num == null || num < 0 ? null : Math.sqrt(num) }`;
119
+ export const expScript = `def EXP(def num){return num != null ? Math.exp(num) : null}`;
120
+ export const replaceScript = `def REPLACE(def str, def target, def replacement) {
121
+ if (str == null || target == null || replacement == null) return null;
122
+ if (target == '') return str;
123
+ return str.replace(target, replacement);
124
+ }`;
125
+ export const includeScript = `def INCLUDE(def str, def targetSearch) { if (str == null || targetSearch == null) return null; return str.contains(targetSearch);}`;
126
+ export const evenScript = `def EVEN(def value) {
127
+ if (value == null) return null;
128
+ def _value = Math.abs(value);
129
+ def sign = value < 0 ? -1 : 1;
130
+ return ((long) Math.ceil(_value / 2.0) * 2) * sign;
131
+ }`;
132
+ export const logScript = `def LOG(def base, def value) {
133
+ if (base == null || value == null) return null;
134
+ if (base <= 1 || value <= 0) return null;
135
+ return (Math.log(value) / Math.log(base));
136
+ }`;
137
+ export const oddScript = `def ODD(def value) {
138
+ if (value == null) return null;
139
+ def _value = Math.abs(value);
140
+ def sign = value < 0 ? -1 : 1;
141
+ return ((long) Math.ceil((_value + 1)/ 2.0) * 2 - 1) * sign;
142
+ }`;
143
+ export const powerScript = `def POWER(def value, def numberToRaise) {
144
+ if (value == null || numberToRaise == null) return null;
145
+ if (value == 0 && numberToRaise < 0) return null;
146
+ return Math.pow(value, numberToRaise);
147
+ }`;
148
+ export const roundDownScript = `def ROUNDDOWN(def value, def places) {
149
+ if (value == null || places == null) return null;
150
+ if (places > 10) places = 10;
151
+ if (places < 0) places = 0;
152
+ def _value = Math.abs(value);
153
+ def sign = value < 0 ? -1 : 1;
154
+ def scale = Math.pow(10, places);
155
+ return (Math.floor(_value * scale) / scale) * sign;
156
+ }`;
157
+ export const roundScript = `${roundDownScript}
158
+ def ROUND(def value, def places) {
159
+ if (value == null || places == null) return null;
160
+ if (places > 10) places = 10;
161
+ if (places < 0) places = 0;
162
+ def _value = Math.abs(value);
163
+ def sign = value < 0 ? -1 : 1;
164
+ def scale = Math.pow(10, places);
165
+ return (Math.round(_value * scale) / scale) * sign;
166
+ }`;
167
+ export const roundUpScript = `${roundDownScript}
168
+ def ROUNDUP(def value, def places) {
169
+ if (value == null || places == null) return null;
170
+ if (places > 10) places = 10;
171
+ if (places < 0) places = 0;
172
+ def _value = Math.abs(value);
173
+ def sign = value < 0 ? -1 : 1;
174
+ def scale = Math.pow(10, places);
175
+ return (Math.ceil(_value * scale) / scale) * sign;
176
+ }`;
177
+ export const subStringScript = `${roundDownScript}
178
+ String ${SCRIPT_NAMES.subString}(def text, def start, def end) {
179
+ if (text == null || start == null || end == null) return null;
180
+ text = (String) text;
181
+ start = ROUNDDOWN(start, 0);
182
+ end = ROUNDDOWN(end, 0);
183
+ int first = 0;
184
+ if (end < 0 || (start * -1 > text.length())) return "";
185
+ if (start < 0) {
186
+ first = (int) Math.max(text.length() + start, 0);
187
+ } else if (start == 0) {
188
+ first = 0;
189
+ } else {
190
+ first = (int) Math.min(start - 1, text.length())
191
+ }
192
+
193
+ int last = (int) Math.min(first + end, text.length());
194
+ return text.substring(first, last);
195
+ }
196
+ `;
83
197
  //# sourceMappingURL=scripts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../../src/utils/elasticsearch/scripts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE7E,MAAM,UAAU,MAAM,CAAC,KAAa;IAChC,OAAO,wBAAwB,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;MACjC,YAAY,CAAC,WAAW;;;;;;;;;;;CAW7B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;SACvB,YAAY,CAAC,UAAU;;;;;;;;CAQ/B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;SACtB,YAAY,CAAC,SAAS;;;;;;;;;;;;;;CAc9B,CAAC;AAEF,SAAS,eAAe,CAAC,KAAU,EAAE,MAAc;IAC/C,OAAO,oBAAoB,YAAY,CAAC,UAAU,IAAI,KAAK,MAAM,MAAM,KAAK,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEzE,MAAM,UAAU,OAAO,CAAC,KAAU,EAAE,GAAQ,EAAE,IAAsB;IAChE,MAAM,KAAK,GAAG;QACV,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,MAAM;KACZ,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,cAAc,WAAW,YAAY,KAAK,KAAK,GAAG,GAAG,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,yDAAyD,CAAC;AAExF,MAAM,CAAC,MAAM,YAAY,GAAG,iFAAiF,CAAC;AAE9G,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;IAkBxB,CAAC"}
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../../../src/utils/elasticsearch/scripts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE7E,MAAM,UAAU,MAAM,CAAC,KAAa;IAChC,OAAO,wBAAwB,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;MACjC,YAAY,CAAC,WAAW;;;;;;;;;;;CAW7B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;SACvB,YAAY,CAAC,UAAU;;;;;;;;CAQ/B,CAAC;AAEF,SAAS,eAAe,CAAC,KAAU,EAAE,MAAc;IAC/C,OAAO,oBAAoB,YAAY,CAAC,UAAU,IAAI,KAAK,MAAM,MAAM,KAAK,CAAC;AACjF,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEzE,MAAM,UAAU,OAAO,CAAC,KAAU,EAAE,GAAQ,EAAE,IAAsB;IAChE,MAAM,KAAK,GAAG;QACV,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,MAAM;KACZ,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,cAAc,WAAW,YAAY,KAAK,KAAK,GAAG,GAAG,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,yDAAyD,CAAC;AAExF,MAAM,CAAC,MAAM,YAAY,GAAG,iFAAiF,CAAC;AAE9G,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;IAkBxB,CAAC;AAEL,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;EAwB5B,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;EAwBzB,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,4DAA4D,CAAC;AAEzF,MAAM,CAAC,MAAM,UAAU,GAAG,2EAA2E,CAAC;AAEtG,MAAM,CAAC,MAAM,SAAS,GAAG,6DAA6D,CAAC;AAEvF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;EAI3B,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,oIAAoI,CAAC;AAElK,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;EAKxB,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;EAIvB,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;EAKvB,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;EAIzB,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;EAQ7B,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,eAAe;;;;;;;;;EAS3C,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,eAAe;;;;;;;;;EAS7C,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,eAAe;SACxC,YAAY,CAAC,SAAS;;;;;;;;;;;;;;;;;;CAkB9B,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { ENGINES } from '../constants';
2
2
  export const escapeCharacters = (inputString, engine) => {
3
+ if (typeof inputString === 'number')
4
+ return inputString; // In the context if pass a number instead, return.
3
5
  let value = inputString.replace(
4
6
  // eslint-disable-next-line no-control-regex
5
7
  /[\0\x08\x09\x1a\n\r"'\\%]/g, (char) => {
@@ -1 +1 @@
1
- {"version":3,"file":"escapeCharacters.js","sourceRoot":"","sources":["../../../src/utils/escapeCharacters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,WAAmB,EACnB,MAAe,EACT,EAAE;IACR,IAAI,KAAK,GAAW,WAAW,CAAC,OAAO;IACnC,4CAA4C;IAC5C,4BAA4B,EAC5B,CAAC,IAAY,EAAE,EAAE;QACb,QAAQ,IAAI,EAAE;YACV,KAAK,IAAI;gBACL,OAAO,OAAO,CAAC;YACnB,KAAK,MAAM;gBACP,OAAO,OAAO,CAAC;YACnB,KAAK,MAAM;gBACP,OAAO,OAAO,CAAC;YACnB,KAAK,MAAM;gBACP,OAAO,OAAO,CAAC;YACnB,KAAK,IAAI;gBACL,OAAO,OAAO,CAAC;YACnB,KAAK,IAAI;gBACL,OAAO,OAAO,CAAC;YACnB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,IAAI,CAAC;YACV,KAAK,GAAG;gBACJ,uEAAuE;gBACvE,OAAO,IAAI,GAAG,IAAI,CAAC;YACvB;gBACI,OAAO,EAAE,CAAC;SACjB;IACL,CAAC,CACJ,CAAC;IACF,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC;IACrB,IAAI,MAAM,KAAK,OAAO,CAAC,UAAU,EAAE;QAC/B,OAAO,IAAI,KAAK,EAAE,CAAC;KACtB;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"escapeCharacters.js","sourceRoot":"","sources":["../../../src/utils/escapeCharacters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,WAAmB,EACnB,MAAe,EACT,EAAE;IACR,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAC,CAAC,mDAAmD;IAC5G,IAAI,KAAK,GAAW,WAAW,CAAC,OAAO;IACnC,4CAA4C;IAC5C,4BAA4B,EAC5B,CAAC,IAAY,EAAE,EAAE;QACb,QAAQ,IAAI,EAAE;YACV,KAAK,IAAI;gBACL,OAAO,OAAO,CAAC;YACnB,KAAK,MAAM;gBACP,OAAO,OAAO,CAAC;YACnB,KAAK,MAAM;gBACP,OAAO,OAAO,CAAC;YACnB,KAAK,MAAM;gBACP,OAAO,OAAO,CAAC;YACnB,KAAK,IAAI;gBACL,OAAO,OAAO,CAAC;YACnB,KAAK,IAAI;gBACL,OAAO,OAAO,CAAC;YACnB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,IAAI,CAAC;YACV,KAAK,GAAG;gBACJ,uEAAuE;gBACvE,OAAO,IAAI,GAAG,IAAI,CAAC;YACvB;gBACI,OAAO,EAAE,CAAC;SACjB;IACL,CAAC,CACJ,CAAC;IACF,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC;IACrB,IAAI,MAAM,KAAK,OAAO,CAAC,UAAU,EAAE;QAC/B,OAAO,IAAI,KAAK,EAAE,CAAC;KACtB;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CommonValueAST, ProcessNodeResult } from '../constants/interfaces';
2
+ export declare function getNumberFromLiteral(value: string, argument: ProcessNodeResult | CommonValueAST): number | null;
3
+ export declare function getNumericValueFromArgument(param: string | number, argument: ProcessNodeResult | CommonValueAST): string | number;
@@ -0,0 +1,27 @@
1
+ import { AST_PRIMITIVES, AST_TYPES } from '../constants';
2
+ export function getNumberFromLiteral(value, argument) {
3
+ if (argument.type === AST_TYPES.literal &&
4
+ (argument.dataType === AST_PRIMITIVES.NUMBER ||
5
+ argument.primitive === AST_PRIMITIVES.NUMBER)) {
6
+ const _value = value.replace('L', '');
7
+ return Number(_value);
8
+ }
9
+ return null;
10
+ }
11
+ export function getNumericValueFromArgument(param, argument) {
12
+ var _a;
13
+ const numberValue = getNumberFromLiteral(String(param), argument);
14
+ if (numberValue !== null)
15
+ return numberValue;
16
+ const isUnaryExpression = argument.type === AST_TYPES.unaryExpression; // Negative numbers arrive as unary expression
17
+ if (isUnaryExpression) {
18
+ const unaryExp = ('node' in argument ? argument.node : argument);
19
+ const isNegative = unaryExp.operator === '-';
20
+ const isNumber = unaryExp.right.type === AST_TYPES.literal &&
21
+ unaryExp.right.dataType === AST_PRIMITIVES.NUMBER;
22
+ if (isNumber)
23
+ return (((_a = getNumberFromLiteral(String(unaryExp.right.value), unaryExp.right)) !== null && _a !== void 0 ? _a : 0) * (isNegative ? -1 : 1));
24
+ }
25
+ return param;
26
+ }
27
+ //# sourceMappingURL=getNumericValueFromArgument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNumericValueFromArgument.js","sourceRoot":"","sources":["../../../src/utils/getNumericValueFromArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzD,MAAM,UAAU,oBAAoB,CAChC,KAAa,EACb,QAA4C;IAE5C,IACI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO;QACnC,CAAE,QAA8B,CAAC,QAAQ,KAAK,cAAc,CAAC,MAAM;YAC9D,QAA2B,CAAC,SAAS,KAAK,cAAc,CAAC,MAAM,CAAC,EACvE;QACE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;KACzB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACvC,KAAsB,EACtB,QAA4C;;IAE5C,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAC7C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,CAAC,CAAC,8CAA8C;IACrH,IAAI,iBAAiB,EAAE;QACnB,MAAM,QAAQ,GAAG,CACb,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAC1B,CAAC;QACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,KAAK,GAAG,CAAC;QAC7C,MAAM,QAAQ,GACV,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO;YACxC,QAAQ,CAAC,KAAoB,CAAC,QAAQ,KAAK,cAAc,CAAC,MAAM,CAAC;QAEtE,IAAI,QAAQ;YACR,OAAO,CACH,CAAC,MAAA,oBAAoB,CACjB,MAAM,CAAE,QAAQ,CAAC,KAAoB,CAAC,KAAK,CAAC,EAC5C,QAAQ,CAAC,KAAuB,CACnC,mCAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC;KACT;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { CommonAST } from '../constants/interfaces';
3
+ export declare function getValidDataTypeParam(args: CommonAST[], validDataTypes: AST_PRIMITIVES[]): AST_PRIMITIVES;
@@ -0,0 +1,6 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ export function getValidDataTypeParam(args, validDataTypes) {
3
+ var _a;
4
+ return (((_a = args.find((_arg) => validDataTypes.includes(_arg.primitive))) === null || _a === void 0 ? void 0 : _a.primitive) || AST_PRIMITIVES.UNKNOWN);
5
+ }
6
+ //# sourceMappingURL=getValidDataTypeParam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getValidDataTypeParam.js","sourceRoot":"","sources":["../../../src/utils/getValidDataTypeParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,UAAU,qBAAqB,CACjC,IAAiB,EACjB,cAAgC;;IAEhC,OAAO,CACH,CAAC,MAAA,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChB,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAA2B,CAAC,CAC5D,0CAAE,SAA4B,KAAI,cAAc,CAAC,OAAO,CAC5D,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Primitive } from '../constants';
2
+ import { ValidatorParameterContext, ValidatorResponse } from '../constants/interfaces';
3
+ export declare function greaterThanOrEqualToReference(compareReference: number): (param: any, _dataType: Primitive | undefined, context: ValidatorParameterContext) => ValidatorResponse;
@@ -0,0 +1,16 @@
1
+ import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
2
+ import { getNumericValueFromArgument } from './getNumericValueFromArgument';
3
+ export function greaterThanOrEqualToReference(compareReference) {
4
+ return (param, _dataType, context) => {
5
+ const arg = context.argument;
6
+ const numericValue = getNumericValueFromArgument(param, arg);
7
+ const valid = typeof numericValue !== 'number' ||
8
+ numericValue >= compareReference;
9
+ if (valid)
10
+ return { valid };
11
+ return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.matchRange]), { info: {
12
+ greaterThanOrEqualTo: compareReference,
13
+ } });
14
+ };
15
+ }
16
+ //# sourceMappingURL=greaterThanOrEqualToReference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"greaterThanOrEqualToReference.js","sourceRoot":"","sources":["../../../src/utils/greaterThanOrEqualToReference.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,UAAU,6BAA6B,CAAC,gBAAwB;IAClE,OAAO,CACH,KAAU,EACV,SAAgC,EAChC,OAAkC,EACjB,EAAE;QACnB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7B,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,KAAK,GACP,OAAO,YAAY,KAAK,QAAQ;YAChC,YAAY,IAAI,gBAAgB,CAAC;QACrC,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,qCACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,KAC1C,IAAI,EAAE;gBACF,oBAAoB,EAAE,gBAAgB;aACzC,IACH;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Primitive } from '../constants';
2
+ import { ValidatorParameterContext, ValidatorResponse } from '../constants/interfaces';
3
+ export declare function greaterThanReference(compareReference: number): (param: any, _dataType: Primitive | undefined, context: ValidatorParameterContext) => ValidatorResponse;
@@ -0,0 +1,15 @@
1
+ import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
2
+ import { getNumericValueFromArgument } from './getNumericValueFromArgument';
3
+ export function greaterThanReference(compareReference) {
4
+ return (param, _dataType, context) => {
5
+ const arg = context.argument;
6
+ const numericValue = getNumericValueFromArgument(param, arg);
7
+ const valid = typeof numericValue !== 'number' || numericValue > compareReference;
8
+ if (valid)
9
+ return { valid };
10
+ return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.matchRange]), { info: {
11
+ greaterThan: compareReference,
12
+ } });
13
+ };
14
+ }
15
+ //# sourceMappingURL=greaterThanReference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"greaterThanReference.js","sourceRoot":"","sources":["../../../src/utils/greaterThanReference.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,UAAU,oBAAoB,CAAC,gBAAwB;IACzD,OAAO,CACH,KAAU,EACV,SAAgC,EAChC,OAAkC,EACjB,EAAE;QACnB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7B,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,KAAK,GACP,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,GAAG,gBAAgB,CAAC;QACxE,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,qCACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,KAC1C,IAAI,EAAE;gBACF,WAAW,EAAE,gBAAgB;aAChC,IACH;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Primitive } from '../constants';
2
+ import { ValidatorParameterContext, ValidatorResponse } from '../constants/interfaces';
3
+ export declare function isAValidPower(param: any, dataType: Primitive | undefined, context: ValidatorParameterContext): ValidatorResponse;
@@ -0,0 +1,17 @@
1
+ import { AST_TYPES } from '../constants';
2
+ import { getNumericValueFromArgument } from './getNumericValueFromArgument';
3
+ import { greaterThanOrEqualToReference } from './greaterThanOrEqualToReference';
4
+ export function isAValidPower(param, dataType, context) {
5
+ const first_argument = context.fnNode.arguments[0];
6
+ const validArgumentTypes = [AST_TYPES.unaryExpression, AST_TYPES.literal];
7
+ const isNotAValidArgumentType = !validArgumentTypes.includes(first_argument.type);
8
+ if (isNotAValidArgumentType)
9
+ return { valid: true };
10
+ const number_1 = getNumericValueFromArgument(first_argument.value, first_argument);
11
+ if (typeof number_1 !== 'number')
12
+ return { valid: true };
13
+ if (number_1 == 0)
14
+ return greaterThanOrEqualToReference(0)(param, dataType, context);
15
+ return { valid: true };
16
+ }
17
+ //# sourceMappingURL=isAValidPower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAValidPower.js","sourceRoot":"","sources":["../../../src/utils/isAValidPower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AAMpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA+B,EAC/B,OAAkC;IAElC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAmB,CAAC;IACrE,MAAM,kBAAkB,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,uBAAuB,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CACxD,cAAc,CAAC,IAAI,CACtB,CAAC;IACF,IAAI,uBAAuB;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAEpD,MAAM,QAAQ,GAAG,2BAA2B,CACxC,cAAc,CAAC,KAAwB,EACvC,cAAc,CACjB,CAAC;IAEF,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAEzD,IAAI,QAAQ,IAAI,CAAC;QACb,OAAO,6BAA6B,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Primitive } from '../constants';
2
+ import { ValidatorParameterContext, ValidatorResponse } from '../constants/interfaces';
3
+ export declare function isBetweenInclusiveRange(number1: number, number2: number): (param: any, _dataType: Primitive | undefined, context: ValidatorParameterContext) => ValidatorResponse;
@@ -0,0 +1,17 @@
1
+ import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
2
+ import { getNumericValueFromArgument } from './getNumericValueFromArgument';
3
+ export function isBetweenInclusiveRange(number1, number2) {
4
+ return (param, _dataType, context) => {
5
+ const arg = context.argument;
6
+ const numericValue = getNumericValueFromArgument(param, arg);
7
+ const valid = typeof numericValue !== 'number' ||
8
+ (numericValue >= number1 && numericValue <= number2);
9
+ if (valid)
10
+ return { valid };
11
+ return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.matchRange]), { info: {
12
+ greaterThanOrEqualTo: number1,
13
+ lessThanOrEqualTo: number2,
14
+ } });
15
+ };
16
+ }
17
+ //# sourceMappingURL=isBetweenInclusiveRange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBetweenInclusiveRange.js","sourceRoot":"","sources":["../../../src/utils/isBetweenInclusiveRange.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,OAAe;IACpE,OAAO,CACH,KAAU,EACV,SAAgC,EAChC,OAAkC,EACjB,EAAE;QACnB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7B,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,KAAK,GACP,OAAO,YAAY,KAAK,QAAQ;YAChC,CAAC,YAAY,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,qCACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,KAC1C,IAAI,EAAE;gBACF,oBAAoB,EAAE,OAAO;gBAC7B,iBAAiB,EAAE,OAAO;aAC7B,IACH;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Primitive } from '../constants';
2
+ import { ValidatorResponse, ValidatorParameterContext } from '../constants/interfaces';
3
+ export declare function isInteger(param: any, _dataType: Primitive | undefined, context: ValidatorParameterContext): ValidatorResponse;
@@ -0,0 +1,21 @@
1
+ import { ERROR_LIST, ERROR_DICTIONARY } from '../errors/dictionary';
2
+ import { AST_PRIMITIVES, AST_TYPES, CUSTOM_PRIMITIVE, } from '../constants';
3
+ import { getNumberFromLiteral } from './getNumericValueFromArgument';
4
+ export function isInteger(param, _dataType, context) {
5
+ const isLiteral = context.argument.type === AST_TYPES.literal;
6
+ if (!isLiteral)
7
+ return { valid: true };
8
+ const numberValue = getNumberFromLiteral(String(param), context.argument);
9
+ const valid = numberValue !== null && Number.isInteger(numberValue);
10
+ const baseResponse = {
11
+ valid,
12
+ };
13
+ if (!valid)
14
+ return Object.assign(Object.assign(Object.assign({}, baseResponse), ERROR_DICTIONARY[ERROR_LIST.integerNumber]), { mismatchData: {
15
+ primitive: AST_PRIMITIVES.NUMBER,
16
+ customPrimitive: CUSTOM_PRIMITIVE.INTEGER,
17
+ customReceived: CUSTOM_PRIMITIVE.DECIMAL,
18
+ } });
19
+ return baseResponse;
20
+ }
21
+ //# sourceMappingURL=isInteger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isInteger.js","sourceRoot":"","sources":["../../../src/utils/isInteger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACH,cAAc,EACd,SAAS,EACT,gBAAgB,GAEnB,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,UAAU,SAAS,CACrB,KAAU,EACV,SAAgC,EAChC,OAAkC;IAElC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,CAAC;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAEvC,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,WAAW,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG;QACjB,KAAK;KACR,CAAC;IACF,IAAI,CAAC,KAAK;QACN,qDACO,YAAY,GACZ,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,KAC7C,YAAY,EAAE;gBACV,SAAS,EAAE,cAAc,CAAC,MAAM;gBAChC,eAAe,EAAE,gBAAgB,CAAC,OAAO;gBACzC,cAAc,EAAE,gBAAgB,CAAC,OAAO;aAC3C,IACH;IACN,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -2,6 +2,7 @@ export function isLongNumber(value) {
2
2
  //Documentation: https://www.elastic.co/guide/en/elasticsearch/reference/current/number.html
3
3
  const maxIntNumber = 2 ** 31 - 1;
4
4
  const minIntNumber = (-2) ** 31;
5
- return value >= maxIntNumber || value <= minIntNumber;
5
+ return (Number.isInteger(value) &&
6
+ (value >= maxIntNumber || value <= minIntNumber));
6
7
  }
7
8
  //# sourceMappingURL=isLongLiteralNumber.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isLongLiteralNumber.js","sourceRoot":"","sources":["../../../src/utils/isLongLiteralNumber.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,4FAA4F;IAC5F,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"isLongLiteralNumber.js","sourceRoot":"","sources":["../../../src/utils/isLongLiteralNumber.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,4FAA4F;IAC5F,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,CACH,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACvB,CAAC,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,CAAC,CACnD,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AST_PRIMITIVES, Primitive } from '../constants';
2
+ import { ValidatorParameterContext, ValidatorResponse } from '../constants/interfaces';
3
+ export declare function isSameAndValidRecursiveDataType(validDataTypes: AST_PRIMITIVES[]): (_param: any, _dataType: Primitive | undefined, context: ValidatorParameterContext) => ValidatorResponse;
@@ -0,0 +1,28 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
3
+ import { getValidDataTypeParam } from '../utils/getValidDataTypeParam';
4
+ import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
5
+ export function isSameAndValidRecursiveDataType(validDataTypes) {
6
+ return (_param, _dataType, context) => {
7
+ const args = context.fnNode.arguments;
8
+ const dataTypePrimitive = getValidDataTypeParam(args, validDataTypes);
9
+ const isValidDataTypePrimitive = dataTypePrimitive !== AST_PRIMITIVES.UNKNOWN;
10
+ const expectedDataTypePrimitive = isValidDataTypePrimitive
11
+ ? dataTypePrimitive
12
+ : validDataTypes;
13
+ const valid = isValidDataTypePrimitive &&
14
+ isSinglePrimitive(inferPrimitive(...args.map((_arg) => _arg.primitive)));
15
+ if (valid) {
16
+ return {
17
+ valid,
18
+ mismatchData: {
19
+ primitive: expectedDataTypePrimitive,
20
+ },
21
+ };
22
+ }
23
+ return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]), { mismatchData: {
24
+ primitive: expectedDataTypePrimitive,
25
+ } });
26
+ };
27
+ }
28
+ //# sourceMappingURL=isSameAndValidRecursiveDataType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isSameAndValidRecursiveDataType.js","sourceRoot":"","sources":["../../../src/utils/isSameAndValidRecursiveDataType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAKzD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhF,MAAM,UAAU,+BAA+B,CAC3C,cAAgC;IAEhC,OAAO,CACH,MAAW,EACX,SAAgC,EAChC,OAAkC,EACjB,EAAE;QACnB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QACtC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACtE,MAAM,wBAAwB,GAC1B,iBAAiB,KAAK,cAAc,CAAC,OAAO,CAAC;QACjD,MAAM,yBAAyB,GAAG,wBAAwB;YACtD,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,cAAc,CAAC;QACrB,MAAM,KAAK,GACP,wBAAwB;YACxB,iBAAiB,CACb,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CACxD,CAAC;QACN,IAAI,KAAK,EAAE;YACP,OAAO;gBACH,KAAK;gBACL,YAAY,EAAE;oBACV,SAAS,EAAE,yBAAyB;iBACvC;aACJ,CAAC;SACL;QACD,qCACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,KACjD,YAAY,EAAE;gBACV,SAAS,EAAE,yBAAyB;aACvC,IACH;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -4,3 +4,6 @@ export declare function primitiveIsIncluded(primitive: Primitive, ...allowedPrim
4
4
  export declare function getFunctionPrimitive(definition: FunctionDefinition, args: CommonAST[]): Primitive;
5
5
  export declare function inferPrimitive(...primitives: Primitive[]): Primitive;
6
6
  export declare function isSinglePrimitive(primitive: Primitive): primitive is AST_PRIMITIVES;
7
+ export declare function getPrimitiveAsValue(primitive: Primitive, options?: {
8
+ separator: string;
9
+ }): string;
@@ -33,4 +33,9 @@ export function inferPrimitive(...primitives) {
33
33
  export function isSinglePrimitive(primitive) {
34
34
  return !Array.isArray(primitive);
35
35
  }
36
+ export function getPrimitiveAsValue(primitive, options = { separator: '/' }) {
37
+ if (!Array.isArray(primitive))
38
+ return primitive;
39
+ return primitive.join(options.separator);
40
+ }
36
41
  //# sourceMappingURL=primitiveFunctions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitiveFunctions.js","sourceRoot":"","sources":["../../../src/utils/primitiveFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,mBAAmB,CAC/B,SAAoB,EACpB,GAAG,iBAAmC;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,UAA8B,EAC9B,IAAiB;IAEjB,IAAI,OAAO,UAAU,CAAC,eAAe,KAAK,UAAU;QAChD,OAAO,UAAU,CAAC,eAAe,CAAC;IAEtC,OAAO,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,GAAG,UAAuB;IAC9C,MAAM,gBAAgB,GAAqB,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO,gBAAgB,CAAC;IACzC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACxB,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa;gBAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAG,UAAuB;IACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC;IACxD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IAClE,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,iBAAiB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,SAAoB;IAEpB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"primitiveFunctions.js","sourceRoot":"","sources":["../../../src/utils/primitiveFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,mBAAmB,CAC/B,SAAoB,EACpB,GAAG,iBAAmC;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,UAA8B,EAC9B,IAAiB;IAEjB,IAAI,OAAO,UAAU,CAAC,eAAe,KAAK,UAAU;QAChD,OAAO,UAAU,CAAC,eAAe,CAAC;IAEtC,OAAO,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,GAAG,UAAuB;IAC9C,MAAM,gBAAgB,GAAqB,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO,gBAAgB,CAAC;IACzC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACxB,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa;gBAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAG,UAAuB;IACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC;IACxD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IAClE,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,iBAAiB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,SAAoB;IAEpB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,SAAoB,EACpB,OAAO,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;IAE5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/formula-lang",
3
- "version": "1.1.0",
3
+ "version": "2.0.0",
4
4
  "description": "QFormula support for qrvey projects",
5
5
  "types": "dist/module/index.d.ts",
6
6
  "main": "dist/module/index.js",
@@ -1,3 +0,0 @@
1
- import { Primitive } from '../constants';
2
- import { ValidatorParameterContext, ValidatorResponse } from '../constants/interfaces';
3
- export declare function greaterThanZero(param: any, _dataType: Primitive | undefined, context: ValidatorParameterContext): ValidatorResponse;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.greaterThanZero = void 0;
4
- const constants_1 = require("../constants");
5
- const dictionary_1 = require("../errors/dictionary");
6
- function greaterThanZero(param, _dataType, context) {
7
- return greaterThanReference(param, context.argument, 0);
8
- }
9
- exports.greaterThanZero = greaterThanZero;
10
- function greaterThanReference(param, arg, compareReference) {
11
- const numericValue = getNumericValueFromArgument(param, arg);
12
- const valid = typeof numericValue !== 'number' ||
13
- compareValueWithReference(numericValue, compareReference);
14
- if (!valid)
15
- return Object.assign(Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.greaterThan]), { info: {
16
- greaterThan: compareReference,
17
- } });
18
- return { valid };
19
- }
20
- function getNumericValueFromArgument(param, argument) {
21
- if (typeof param === 'number')
22
- return param;
23
- const isUnaryExpression = argument.type === constants_1.AST_TYPES.unaryExpression; // Negative numbers arrive as unary expression
24
- if (isUnaryExpression) {
25
- const unaryExp = argument.node;
26
- const isNegative = unaryExp.operator === '-';
27
- const isNumber = unaryExp.right.type === constants_1.AST_TYPES.literal &&
28
- unaryExp.right.dataType === constants_1.AST_PRIMITIVES.NUMBER;
29
- if (isNumber)
30
- return (unaryExp.right.value *
31
- (isNegative ? -1 : 1));
32
- }
33
- return param;
34
- }
35
- function compareValueWithReference(value, reference) {
36
- return value >= reference;
37
- }
38
- //# sourceMappingURL=greaterThanZero.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"greaterThanZero.js","sourceRoot":"","sources":["../../../src/utils/greaterThanZero.ts"],"names":[],"mappings":";;;AAAA,4CAAoE;AAQpE,qDAAoE;AAEpE,SAAgB,eAAe,CAC3B,KAAU,EACV,SAAgC,EAChC,OAAkC;IAElC,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAND,0CAMC;AAED,SAAS,oBAAoB,CACzB,KAAsB,EACtB,GAAsB,EACtB,gBAAwB;IAExB,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,KAAK,GACP,OAAO,YAAY,KAAK,QAAQ;QAChC,yBAAyB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK;QACN,qCACI,KAAK,IACF,6BAAgB,CAAC,uBAAU,CAAC,WAAW,CAAC,KAC3C,IAAI,EAAE;gBACF,WAAW,EAAE,gBAAgB;aAChC,IACH;IACN,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,2BAA2B,CAChC,KAAsB,EACtB,QAA2B;IAE3B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,KAAK,qBAAS,CAAC,eAAe,CAAC,CAAC,8CAA8C;IACrH,IAAI,iBAAiB,EAAE;QACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAA0B,CAAC;QACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,KAAK,GAAG,CAAC;QAC7C,MAAM,QAAQ,GACV,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,OAAO;YACxC,QAAQ,CAAC,KAAoB,CAAC,QAAQ,KAAK,0BAAc,CAAC,MAAM,CAAC;QAEtE,IAAI,QAAQ;YACR,OAAO,CACD,QAAQ,CAAC,KAAoB,CAAC,KAAgB;gBAChD,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;KACT;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa,EAAE,SAAiB;IAC/D,OAAO,KAAK,IAAI,SAAS,CAAC;AAC9B,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Primitive } from '../constants';
2
- import { ValidatorParameterContext, ValidatorResponse } from '../constants/interfaces';
3
- export declare function greaterThanZero(param: any, _dataType: Primitive | undefined, context: ValidatorParameterContext): ValidatorResponse;
@@ -1,34 +0,0 @@
1
- import { AST_PRIMITIVES, AST_TYPES } from '../constants';
2
- import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
3
- export function greaterThanZero(param, _dataType, context) {
4
- return greaterThanReference(param, context.argument, 0);
5
- }
6
- function greaterThanReference(param, arg, compareReference) {
7
- const numericValue = getNumericValueFromArgument(param, arg);
8
- const valid = typeof numericValue !== 'number' ||
9
- compareValueWithReference(numericValue, compareReference);
10
- if (!valid)
11
- return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.greaterThan]), { info: {
12
- greaterThan: compareReference,
13
- } });
14
- return { valid };
15
- }
16
- function getNumericValueFromArgument(param, argument) {
17
- if (typeof param === 'number')
18
- return param;
19
- const isUnaryExpression = argument.type === AST_TYPES.unaryExpression; // Negative numbers arrive as unary expression
20
- if (isUnaryExpression) {
21
- const unaryExp = argument.node;
22
- const isNegative = unaryExp.operator === '-';
23
- const isNumber = unaryExp.right.type === AST_TYPES.literal &&
24
- unaryExp.right.dataType === AST_PRIMITIVES.NUMBER;
25
- if (isNumber)
26
- return (unaryExp.right.value *
27
- (isNegative ? -1 : 1));
28
- }
29
- return param;
30
- }
31
- function compareValueWithReference(value, reference) {
32
- return value >= reference;
33
- }
34
- //# sourceMappingURL=greaterThanZero.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"greaterThanZero.js","sourceRoot":"","sources":["../../../src/utils/greaterThanZero.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AAQpE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEpE,MAAM,UAAU,eAAe,CAC3B,KAAU,EACV,SAAgC,EAChC,OAAkC;IAElC,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CACzB,KAAsB,EACtB,GAAsB,EACtB,gBAAwB;IAExB,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,KAAK,GACP,OAAO,YAAY,KAAK,QAAQ;QAChC,yBAAyB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK;QACN,qCACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,KAC3C,IAAI,EAAE;gBACF,WAAW,EAAE,gBAAgB;aAChC,IACH;IACN,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,2BAA2B,CAChC,KAAsB,EACtB,QAA2B;IAE3B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,CAAC,CAAC,8CAA8C;IACrH,IAAI,iBAAiB,EAAE;QACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAA0B,CAAC;QACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,KAAK,GAAG,CAAC;QAC7C,MAAM,QAAQ,GACV,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO;YACxC,QAAQ,CAAC,KAAoB,CAAC,QAAQ,KAAK,cAAc,CAAC,MAAM,CAAC;QAEtE,IAAI,QAAQ;YACR,OAAO,CACD,QAAQ,CAAC,KAAoB,CAAC,KAAgB;gBAChD,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;KACT;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa,EAAE,SAAiB;IAC/D,OAAO,KAAK,IAAI,SAAS,CAAC;AAC9B,CAAC"}