@qrvey/formula-lang 0.11.5 → 1.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 (132) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/cjs/constants/interfaces.d.ts +4 -1
  3. package/dist/cjs/errors/dictionary.d.ts +2 -2
  4. package/dist/cjs/errors/dictionary.js +5 -5
  5. package/dist/cjs/errors/dictionary.js.map +1 -1
  6. package/dist/cjs/functions/and.d.ts +5 -0
  7. package/dist/cjs/functions/and.js +52 -0
  8. package/dist/cjs/functions/and.js.map +1 -0
  9. package/dist/cjs/functions/concatenate.d.ts +5 -0
  10. package/dist/cjs/functions/concatenate.js +53 -0
  11. package/dist/cjs/functions/concatenate.js.map +1 -0
  12. package/dist/cjs/functions/dateadd.d.ts +5 -0
  13. package/dist/cjs/functions/dateadd.js +89 -0
  14. package/dist/cjs/functions/dateadd.js.map +1 -0
  15. package/dist/cjs/functions/datedif.js +2 -13
  16. package/dist/cjs/functions/datedif.js.map +1 -1
  17. package/dist/cjs/functions/dayofweek.d.ts +5 -0
  18. package/dist/cjs/functions/dayofweek.js +88 -0
  19. package/dist/cjs/functions/dayofweek.js.map +1 -0
  20. package/dist/cjs/functions/if.js +5 -5
  21. package/dist/cjs/functions/if.js.map +1 -1
  22. package/dist/cjs/functions/index.js +22 -0
  23. package/dist/cjs/functions/index.js.map +1 -1
  24. package/dist/cjs/functions/isNull.js +5 -9
  25. package/dist/cjs/functions/isNull.js.map +1 -1
  26. package/dist/cjs/functions/left.d.ts +5 -0
  27. package/dist/cjs/functions/left.js +54 -0
  28. package/dist/cjs/functions/left.js.map +1 -0
  29. package/dist/cjs/functions/lower.d.ts +5 -0
  30. package/dist/cjs/functions/lower.js +41 -0
  31. package/dist/cjs/functions/lower.js.map +1 -0
  32. package/dist/cjs/functions/mid.js +2 -33
  33. package/dist/cjs/functions/mid.js.map +1 -1
  34. package/dist/cjs/functions/or.d.ts +5 -0
  35. package/dist/cjs/functions/or.js +52 -0
  36. package/dist/cjs/functions/or.js.map +1 -0
  37. package/dist/cjs/functions/proper.d.ts +5 -0
  38. package/dist/cjs/functions/proper.js +38 -0
  39. package/dist/cjs/functions/proper.js.map +1 -0
  40. package/dist/cjs/functions/right.d.ts +5 -0
  41. package/dist/cjs/functions/right.js +55 -0
  42. package/dist/cjs/functions/right.js.map +1 -0
  43. package/dist/cjs/functions/trim.d.ts +5 -0
  44. package/dist/cjs/functions/trim.js +41 -0
  45. package/dist/cjs/functions/trim.js.map +1 -0
  46. package/dist/cjs/functions/upper.d.ts +5 -0
  47. package/dist/cjs/functions/upper.js +41 -0
  48. package/dist/cjs/functions/upper.js.map +1 -0
  49. package/dist/cjs/transpiler/index.js +4 -2
  50. package/dist/cjs/transpiler/index.js.map +1 -1
  51. package/dist/cjs/utils/elasticsearch/index.js +4 -0
  52. package/dist/cjs/utils/elasticsearch/index.js.map +1 -1
  53. package/dist/cjs/utils/elasticsearch/scripts.d.ts +1 -0
  54. package/dist/cjs/utils/elasticsearch/scripts.js +20 -1
  55. package/dist/cjs/utils/elasticsearch/scripts.js.map +1 -1
  56. package/dist/cjs/utils/escapeCharacters.d.ts +2 -0
  57. package/dist/cjs/utils/escapeCharacters.js +39 -0
  58. package/dist/cjs/utils/escapeCharacters.js.map +1 -0
  59. package/dist/cjs/utils/greaterThanZero.d.ts +3 -0
  60. package/dist/cjs/utils/greaterThanZero.js +38 -0
  61. package/dist/cjs/utils/greaterThanZero.js.map +1 -0
  62. package/dist/cjs/utils/index.js +1 -1
  63. package/dist/cjs/utils/index.js.map +1 -1
  64. package/dist/cjs/utils/isAnAllowedValue.d.ts +2 -0
  65. package/dist/cjs/utils/isAnAllowedValue.js +20 -0
  66. package/dist/cjs/utils/isAnAllowedValue.js.map +1 -0
  67. package/dist/module/constants/interfaces.d.ts +4 -1
  68. package/dist/module/errors/dictionary.d.ts +2 -2
  69. package/dist/module/errors/dictionary.js +5 -5
  70. package/dist/module/errors/dictionary.js.map +1 -1
  71. package/dist/module/functions/and.d.ts +5 -0
  72. package/dist/module/functions/and.js +49 -0
  73. package/dist/module/functions/and.js.map +1 -0
  74. package/dist/module/functions/concatenate.d.ts +5 -0
  75. package/dist/module/functions/concatenate.js +50 -0
  76. package/dist/module/functions/concatenate.js.map +1 -0
  77. package/dist/module/functions/dateadd.d.ts +5 -0
  78. package/dist/module/functions/dateadd.js +86 -0
  79. package/dist/module/functions/dateadd.js.map +1 -0
  80. package/dist/module/functions/datedif.js +2 -13
  81. package/dist/module/functions/datedif.js.map +1 -1
  82. package/dist/module/functions/dayofweek.d.ts +5 -0
  83. package/dist/module/functions/dayofweek.js +85 -0
  84. package/dist/module/functions/dayofweek.js.map +1 -0
  85. package/dist/module/functions/if.js +5 -5
  86. package/dist/module/functions/if.js.map +1 -1
  87. package/dist/module/functions/index.js +22 -0
  88. package/dist/module/functions/index.js.map +1 -1
  89. package/dist/module/functions/isNull.js +5 -9
  90. package/dist/module/functions/isNull.js.map +1 -1
  91. package/dist/module/functions/left.d.ts +5 -0
  92. package/dist/module/functions/left.js +51 -0
  93. package/dist/module/functions/left.js.map +1 -0
  94. package/dist/module/functions/lower.d.ts +5 -0
  95. package/dist/module/functions/lower.js +38 -0
  96. package/dist/module/functions/lower.js.map +1 -0
  97. package/dist/module/functions/mid.js +2 -33
  98. package/dist/module/functions/mid.js.map +1 -1
  99. package/dist/module/functions/or.d.ts +5 -0
  100. package/dist/module/functions/or.js +49 -0
  101. package/dist/module/functions/or.js.map +1 -0
  102. package/dist/module/functions/proper.d.ts +5 -0
  103. package/dist/module/functions/proper.js +35 -0
  104. package/dist/module/functions/proper.js.map +1 -0
  105. package/dist/module/functions/right.d.ts +5 -0
  106. package/dist/module/functions/right.js +52 -0
  107. package/dist/module/functions/right.js.map +1 -0
  108. package/dist/module/functions/trim.d.ts +5 -0
  109. package/dist/module/functions/trim.js +38 -0
  110. package/dist/module/functions/trim.js.map +1 -0
  111. package/dist/module/functions/upper.d.ts +5 -0
  112. package/dist/module/functions/upper.js +38 -0
  113. package/dist/module/functions/upper.js.map +1 -0
  114. package/dist/module/transpiler/index.js +4 -2
  115. package/dist/module/transpiler/index.js.map +1 -1
  116. package/dist/module/utils/elasticsearch/index.js +5 -1
  117. package/dist/module/utils/elasticsearch/index.js.map +1 -1
  118. package/dist/module/utils/elasticsearch/scripts.d.ts +1 -0
  119. package/dist/module/utils/elasticsearch/scripts.js +19 -0
  120. package/dist/module/utils/elasticsearch/scripts.js.map +1 -1
  121. package/dist/module/utils/escapeCharacters.d.ts +2 -0
  122. package/dist/module/utils/escapeCharacters.js +35 -0
  123. package/dist/module/utils/escapeCharacters.js.map +1 -0
  124. package/dist/module/utils/greaterThanZero.d.ts +3 -0
  125. package/dist/module/utils/greaterThanZero.js +34 -0
  126. package/dist/module/utils/greaterThanZero.js.map +1 -0
  127. package/dist/module/utils/index.js +1 -1
  128. package/dist/module/utils/index.js.map +1 -1
  129. package/dist/module/utils/isAnAllowedValue.d.ts +2 -0
  130. package/dist/module/utils/isAnAllowedValue.js +16 -0
  131. package/dist/module/utils/isAnAllowedValue.js.map +1 -0
  132. package/package.json +1 -1
@@ -12,3 +12,4 @@ export declare const secondScript: (value: any) => string;
12
12
  export declare function dateDif(start: any, end: any, unit: DateDifUnitParam): string;
13
13
  export declare const getValueScript = "def GET_VALUE(def c){return (c.empty ? null : c.value)}";
14
14
  export declare const isNullScript = "def IS_NULL_SCRIPT(def value, def replacement) { return value ?: replacement; }";
15
+ export declare const properScript = "String PROPER_STRING(String input) {\n if (input == null) return null;\n def str = input.toLowerCase();\n def builder = new StringBuilder(str);\n \n def chartLists = [\" \", \"!\", \"\\\"\", \"#\", \"$\", \"%\", \"&\", \"'\", \"(\", \")\", \"*\", \"+\", \",\", \"-\", \".\", \"/\", \":\", \";\", \"<\", \"=\", \">\", \"?\", \"@\", \"[\", \"\\\\\", \"]\", \"^\", \"_\", \"`\", \"{\", \"|\", \"}\", \"~\"];\n \n boolean flag = true;\n \n for(int i = 0; i < builder.length(); i++) {\n String ch = builder.charAt(i).toString();\n if (flag) { \n builder.replace(i, i + 1, ch.toUpperCase());\n flag = false;\n }\n flag = chartLists.contains(ch);\n }\n return builder.toString();\n }";
@@ -61,4 +61,23 @@ export function dateDif(start, end, unit) {
61
61
  }
62
62
  export const getValueScript = `def GET_VALUE(def c){return (c.empty ? null : c.value)}`;
63
63
  export const isNullScript = `def IS_NULL_SCRIPT(def value, def replacement) { return value ?: replacement; }`;
64
+ export const properScript = `String PROPER_STRING(String input) {
65
+ if (input == null) return null;
66
+ def str = input.toLowerCase();
67
+ def builder = new StringBuilder(str);
68
+
69
+ def chartLists = [" ", "!", "\\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "?", "@", "[", "\\\\", "]", "^", "_", "\`", "{", "|", "}", "~"];
70
+
71
+ boolean flag = true;
72
+
73
+ for(int i = 0; i < builder.length(); i++) {
74
+ String ch = builder.charAt(i).toString();
75
+ if (flag) {
76
+ builder.replace(i, i + 1, ch.toUpperCase());
77
+ flag = false;
78
+ }
79
+ flag = chartLists.contains(ch);
80
+ }
81
+ return builder.toString();
82
+ }`;
64
83
  //# 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"}
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;AAC9G,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;IAkBxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ENGINES } from '../constants';
2
+ export declare const escapeCharacters: (inputString: string, engine: ENGINES) => string;
@@ -0,0 +1,35 @@
1
+ import { ENGINES } from '../constants';
2
+ export const escapeCharacters = (inputString, engine) => {
3
+ let value = inputString.replace(
4
+ // eslint-disable-next-line no-control-regex
5
+ /[\0\x08\x09\x1a\n\r"'\\%]/g, (char) => {
6
+ switch (char) {
7
+ case '\0':
8
+ return '\\\\0';
9
+ case '\x08':
10
+ return '\\\\b';
11
+ case '\x09':
12
+ return '\\\\t';
13
+ case '\x1a':
14
+ return '\\\\z';
15
+ case '\n':
16
+ return '\\\\n';
17
+ case '\r':
18
+ return '\\\\r';
19
+ case '"':
20
+ case "'":
21
+ case '\\':
22
+ case '%':
23
+ // prepends a backslash to backslash, percent, and double/single quotes
24
+ return '\\' + char;
25
+ default:
26
+ return '';
27
+ }
28
+ });
29
+ value = `'${value}'`;
30
+ if (engine === ENGINES.POSTGRESQL) {
31
+ return `E${value}`;
32
+ }
33
+ return value;
34
+ };
35
+ //# sourceMappingURL=escapeCharacters.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
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;
@@ -0,0 +1,34 @@
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
@@ -0,0 +1 @@
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"}
@@ -7,5 +7,5 @@ export * from './getMonthMaxDayAllowed';
7
7
  export * from './getNodeValue';
8
8
  export * from './getVariableType';
9
9
  export * from './isLongLiteralNumber';
10
- export const removeQuotes = (str) => str.replace(/'/g, '');
10
+ export const removeQuotes = (str) => str.replace(/^E?'|'$/g, '');
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ValidatorResponse } from '../constants/interfaces';
2
+ export declare function isAnAllowedValue(allowValues: string[]): (param: any) => ValidatorResponse;
@@ -0,0 +1,16 @@
1
+ import { ERROR_LIST, ERROR_DICTIONARY } from '../errors/dictionary';
2
+ import { removeQuotes } from '../utils';
3
+ export function isAnAllowedValue(allowValues) {
4
+ return (param) => {
5
+ param = removeQuotes(param);
6
+ const valid = allowValues.includes(param);
7
+ if (!valid) {
8
+ const msgError = ERROR_DICTIONARY[ERROR_LIST.invalidAllowValue];
9
+ return Object.assign(Object.assign({ valid }, msgError), { message: `${msgError.message} "${allowValues.join('", "')}"`, info: {
10
+ allowedValues: allowValues,
11
+ } });
12
+ }
13
+ return { valid };
14
+ };
15
+ }
16
+ //# sourceMappingURL=isAnAllowedValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAnAllowedValue.js","sourceRoot":"","sources":["../../../src/utils/isAnAllowedValue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,UAAU,gBAAgB,CAAC,WAAqB;IAClD,OAAO,CAAC,KAAU,EAAqB,EAAE;QACrC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YAChE,qCACI,KAAK,IACF,QAAQ,KACX,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAC5D,IAAI,EAAE;oBACF,aAAa,EAAE,WAAW;iBAC7B,IACH;SACL;QACD,OAAO,EAAE,KAAK,EAAE,CAAC;IACrB,CAAC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/formula-lang",
3
- "version": "0.11.5",
3
+ "version": "1.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",