@qrvey/formula-lang 0.11.2 → 0.11.4

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 (90) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/constants/interfaces.d.ts +15 -6
  3. package/dist/cjs/errors/definitions.d.ts +19 -17
  4. package/dist/cjs/errors/definitions.js +31 -26
  5. package/dist/cjs/errors/definitions.js.map +1 -1
  6. package/dist/cjs/errors/dictionary.d.ts +1 -4
  7. package/dist/cjs/errors/dictionary.js +4 -19
  8. package/dist/cjs/errors/dictionary.js.map +1 -1
  9. package/dist/cjs/errors/mismatch.d.ts +12 -11
  10. package/dist/cjs/errors/mismatch.js +33 -15
  11. package/dist/cjs/errors/mismatch.js.map +1 -1
  12. package/dist/cjs/functions/datedif.js +3 -3
  13. package/dist/cjs/functions/datedif.js.map +1 -1
  14. package/dist/cjs/functions/if.js +26 -3
  15. package/dist/cjs/functions/if.js.map +1 -1
  16. package/dist/cjs/functions/ifs.js +35 -9
  17. package/dist/cjs/functions/ifs.js.map +1 -1
  18. package/dist/cjs/functions/isNull.js +56 -4
  19. package/dist/cjs/functions/isNull.js.map +1 -1
  20. package/dist/cjs/functions/mid.js +34 -2
  21. package/dist/cjs/functions/mid.js.map +1 -1
  22. package/dist/cjs/transpiler/validateFuncStructure.d.ts +1 -1
  23. package/dist/cjs/transpiler/validateFuncStructure.js +54 -58
  24. package/dist/cjs/transpiler/validateFuncStructure.js.map +1 -1
  25. package/dist/cjs/utils/isAColumn.d.ts +2 -3
  26. package/dist/cjs/utils/isAColumn.js +2 -6
  27. package/dist/cjs/utils/isAColumn.js.map +1 -1
  28. package/dist/cjs/utils/isALiteral.d.ts +2 -0
  29. package/dist/cjs/utils/isALiteral.js +9 -0
  30. package/dist/cjs/utils/isALiteral.js.map +1 -0
  31. package/dist/cjs/utils/isBooleanExpression.d.ts +1 -1
  32. package/dist/cjs/utils/isBooleanExpression.js +9 -5
  33. package/dist/cjs/utils/isBooleanExpression.js.map +1 -1
  34. package/dist/cjs/utils/isDateParam.js +8 -2
  35. package/dist/cjs/utils/isDateParam.js.map +1 -1
  36. package/dist/cjs/utils/isNumberParam.js +8 -2
  37. package/dist/cjs/utils/isNumberParam.js.map +1 -1
  38. package/dist/cjs/utils/isStringParam.js +8 -2
  39. package/dist/cjs/utils/isStringParam.js.map +1 -1
  40. package/dist/cjs/utils/primitiveFunctions.d.ts +1 -0
  41. package/dist/cjs/utils/primitiveFunctions.js +5 -1
  42. package/dist/cjs/utils/primitiveFunctions.js.map +1 -1
  43. package/dist/module/constants/interfaces.d.ts +15 -6
  44. package/dist/module/errors/definitions.d.ts +19 -17
  45. package/dist/module/errors/definitions.js +27 -22
  46. package/dist/module/errors/definitions.js.map +1 -1
  47. package/dist/module/errors/dictionary.d.ts +1 -4
  48. package/dist/module/errors/dictionary.js +4 -19
  49. package/dist/module/errors/dictionary.js.map +1 -1
  50. package/dist/module/errors/mismatch.d.ts +12 -11
  51. package/dist/module/errors/mismatch.js +35 -17
  52. package/dist/module/errors/mismatch.js.map +1 -1
  53. package/dist/module/functions/datedif.js +3 -3
  54. package/dist/module/functions/datedif.js.map +1 -1
  55. package/dist/module/functions/if.js +27 -4
  56. package/dist/module/functions/if.js.map +1 -1
  57. package/dist/module/functions/ifs.js +36 -10
  58. package/dist/module/functions/ifs.js.map +1 -1
  59. package/dist/module/functions/isNull.js +57 -5
  60. package/dist/module/functions/isNull.js.map +1 -1
  61. package/dist/module/functions/mid.js +35 -3
  62. package/dist/module/functions/mid.js.map +1 -1
  63. package/dist/module/transpiler/validateFuncStructure.d.ts +1 -1
  64. package/dist/module/transpiler/validateFuncStructure.js +55 -59
  65. package/dist/module/transpiler/validateFuncStructure.js.map +1 -1
  66. package/dist/module/utils/isAColumn.d.ts +2 -3
  67. package/dist/module/utils/isAColumn.js +2 -6
  68. package/dist/module/utils/isAColumn.js.map +1 -1
  69. package/dist/module/utils/isALiteral.d.ts +2 -0
  70. package/dist/module/utils/isALiteral.js +5 -0
  71. package/dist/module/utils/isALiteral.js.map +1 -0
  72. package/dist/module/utils/isBooleanExpression.d.ts +1 -1
  73. package/dist/module/utils/isBooleanExpression.js +9 -5
  74. package/dist/module/utils/isBooleanExpression.js.map +1 -1
  75. package/dist/module/utils/isDateParam.js +8 -2
  76. package/dist/module/utils/isDateParam.js.map +1 -1
  77. package/dist/module/utils/isNumberParam.js +8 -2
  78. package/dist/module/utils/isNumberParam.js.map +1 -1
  79. package/dist/module/utils/isStringParam.js +8 -2
  80. package/dist/module/utils/isStringParam.js.map +1 -1
  81. package/dist/module/utils/primitiveFunctions.d.ts +1 -0
  82. package/dist/module/utils/primitiveFunctions.js +3 -0
  83. package/dist/module/utils/primitiveFunctions.js.map +1 -1
  84. package/package.json +1 -1
  85. package/dist/cjs/utils/isNotAColumn.d.ts +0 -3
  86. package/dist/cjs/utils/isNotAColumn.js +0 -13
  87. package/dist/cjs/utils/isNotAColumn.js.map +0 -1
  88. package/dist/module/utils/isNotAColumn.d.ts +0 -3
  89. package/dist/module/utils/isNotAColumn.js +0 -9
  90. package/dist/module/utils/isNotAColumn.js.map +0 -1
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IFS = void 0;
4
+ const constants_1 = require("../constants");
5
+ const dictionary_1 = require("../errors/dictionary");
4
6
  const isBooleanExpression_1 = require("../utils/isBooleanExpression");
5
7
  const primitiveFunctions_1 = require("../utils/primitiveFunctions");
6
8
  /**
@@ -21,7 +23,7 @@ exports.IFS = {
21
23
  identifier: 'VALUE_IF_TRUE',
22
24
  optional: false,
23
25
  generic: true,
24
- validator: [],
26
+ validator: [sameRecursivePrimitiveType],
25
27
  },
26
28
  ],
27
29
  transpiler: {
@@ -30,17 +32,41 @@ exports.IFS = {
30
32
  redshift,
31
33
  postgresql,
32
34
  },
33
- maxPrimitiveValues: 1,
34
35
  primitiveResult(args) {
35
- const primitiveArgs = [];
36
- args.forEach((value, index) => {
37
- if (index % 2 === 1) {
38
- primitiveArgs.push(value.primitive);
39
- }
40
- });
41
- return (0, primitiveFunctions_1.inferPrimitive)(...primitiveArgs);
36
+ return calculateIfsPrimitive(args);
42
37
  },
43
38
  };
39
+ function sameRecursivePrimitiveType(_param, _dataType, context) {
40
+ const args = context.fnNode.arguments;
41
+ const firstArgsPrimitive = calculateFirstIFSPrimitive(args);
42
+ const ifsPrimitive = calculateIfsPrimitive(args);
43
+ const valid = (0, primitiveFunctions_1.isSinglePrimitive)(ifsPrimitive);
44
+ if (!valid)
45
+ return Object.assign(Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.inferredPrimitive]), { mismatchData: {
46
+ primitive: firstArgsPrimitive,
47
+ } });
48
+ return {
49
+ valid,
50
+ mismatchData: {
51
+ primitive: ifsPrimitive,
52
+ },
53
+ };
54
+ }
55
+ function calculateIfsPrimitive(args) {
56
+ const primitiveArgs = [];
57
+ args.forEach((value, index) => {
58
+ if (index % 2 === 1) {
59
+ primitiveArgs.push(value.primitive);
60
+ }
61
+ });
62
+ return (0, primitiveFunctions_1.inferPrimitive)(...primitiveArgs);
63
+ }
64
+ function calculateFirstIFSPrimitive(args) {
65
+ var _a, _b;
66
+ return ((_b = (_a = args.find((arg, index) => index % 2 === 1 &&
67
+ (0, primitiveFunctions_1.isSinglePrimitive)(arg.primitive) &&
68
+ arg.primitive !== constants_1.AST_PRIMITIVES.UNKNOWN)) === null || _a === void 0 ? void 0 : _a.primitive) !== null && _b !== void 0 ? _b : constants_1.AST_PRIMITIVES.UNKNOWN);
69
+ }
44
70
  function elasticsearch(...args) {
45
71
  const _args = [...args];
46
72
  const logicalExpression = _args.shift();
@@ -1 +1 @@
1
- {"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AACnE,oEAA6D;AAE7D;;;;GAIG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,yCAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE;SAChB;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,kBAAkB,EAAE,CAAC;IACrB,eAAe,CAAC,IAAiB;QAC7B,MAAM,aAAa,GAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAgB,EAAE,KAAa,EAAE,EAAE;YAC7C,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;gBACjB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACvC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAA,mCAAc,EAAC,GAAG,aAAa,CAAC,CAAC;IAC5C,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,GAAG,IAAW;IACjC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAElC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,IAAI,iBAAiB,MAAM,WAAW,UAAU,CAAC;KAC3D;SAAM;QACH,OAAO,IAAI,iBAAiB,MAAM,WAAW,MAAM,aAAa,CAC5D,GAAG,KAAK,CACX,GAAG,CAAC;KACR;AACL,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,IAAW;IAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAElC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,OAAO,iBAAiB,KAAK,WAAW,SAAS,CAAC;KAC5D;SAAM;QACH,OAAO,OAAO,iBAAiB,KAAK,WAAW,KAAK,SAAS,CACzD,GAAG,KAAK,CACX,GAAG,CAAC;KACR;AACL,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,IAAW;IACvB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO;;mBAEI,iBAAiB,SAAS,WAAW;;aAE3C,CAAC,IAAI,EAAE,CAAC;KAChB;SAAM;QACH,OAAO;;mBAEI,iBAAiB,SAAS,WAAW;mBACrC,GAAG,CAAC,GAAG,KAAK,CAAC;aACnB,CAAC,IAAI,EAAE,CAAC;KAChB;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,GAAG,IAAW;IAC5B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ISNULL = void 0;
4
+ const constants_1 = require("../constants");
5
+ const dictionary_1 = require("../errors/dictionary");
4
6
  const isAColumn_1 = require("../utils/isAColumn");
5
- const isNotAColumn_1 = require("../utils/isNotAColumn");
7
+ const isALiteral_1 = require("../utils/isALiteral");
6
8
  const primitiveFunctions_1 = require("../utils/primitiveFunctions");
7
9
  /**
8
10
  * `ISNULL` Returns the replacement if the value is a null
@@ -13,13 +15,13 @@ exports.ISNULL = {
13
15
  {
14
16
  identifier: 'VALUE',
15
17
  optional: false,
16
- validator: [isAColumn_1.isAColumn],
18
+ validator: [samePrimitiveTypeCol],
17
19
  },
18
20
  {
19
21
  identifier: 'REPLACEMENT',
20
22
  optional: false,
21
23
  generic: true,
22
- validator: [isNotAColumn_1.isNotAColumn],
24
+ validator: [samePrimitiveTypeNonCol],
23
25
  },
24
26
  ],
25
27
  transpiler: {
@@ -28,11 +30,61 @@ exports.ISNULL = {
28
30
  redshift,
29
31
  postgresql,
30
32
  },
31
- maxPrimitiveValues: 1,
32
33
  primitiveResult(args) {
33
34
  return (0, primitiveFunctions_1.inferPrimitive)(...(args || []).map((arg) => arg.primitive));
34
35
  },
35
36
  };
37
+ function samePrimitiveTypeCol(param, dataType, context) {
38
+ const isColumn = (0, isAColumn_1.isAColumn)(context);
39
+ const baseResult = samePrimitiveType(param, dataType, context);
40
+ const valid = isColumn && baseResult.valid;
41
+ const primitive = baseResult.mismatchData
42
+ ? baseResult.mismatchData.primitive
43
+ : constants_1.AST_PRIMITIVES.UNKNOWN;
44
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
45
+ type: constants_1.AST_TYPES.column,
46
+ primitive,
47
+ } }), (!isColumn && Object.assign({}, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingColumnExpression]))), { valid });
48
+ }
49
+ function samePrimitiveTypeNonCol(param, dataType, context) {
50
+ const isLiteral = (0, isALiteral_1.isALiteral)(context);
51
+ const baseResult = samePrimitiveType(param, dataType, context);
52
+ const valid = isLiteral && baseResult.valid;
53
+ const primitive = baseResult.mismatchData
54
+ ? baseResult.mismatchData.primitive
55
+ : constants_1.AST_PRIMITIVES.UNKNOWN;
56
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
57
+ type: constants_1.AST_TYPES.literal,
58
+ primitive,
59
+ } }), (!isLiteral && Object.assign({}, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.noColumnExpression]))), { valid });
60
+ }
61
+ function samePrimitiveType(_param, _dataType, context) {
62
+ const firstPrimitive = primitiveArgIndex(context, 0);
63
+ const secondPrimitive = primitiveArgIndex(context, 1);
64
+ const ifPrimitive = calculateIsNullPrimitive(firstPrimitive, secondPrimitive);
65
+ const valid = firstPrimitive === secondPrimitive;
66
+ const baseResult = {
67
+ valid,
68
+ mismatchData: {
69
+ primitive: ifPrimitive,
70
+ },
71
+ };
72
+ if (!valid)
73
+ return Object.assign(Object.assign({}, baseResult), dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.inferredPrimitive]);
74
+ return baseResult;
75
+ }
76
+ function primitiveArgIndex(context, index) {
77
+ var _a, _b;
78
+ const basePrimitive = (_b = (_a = context.fnNode.arguments) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.primitive;
79
+ return (0, primitiveFunctions_1.isSinglePrimitive)(basePrimitive)
80
+ ? basePrimitive
81
+ : constants_1.AST_PRIMITIVES.UNKNOWN;
82
+ }
83
+ function calculateIsNullPrimitive(firstPrimitive, secondPrimitive) {
84
+ if (firstPrimitive && firstPrimitive !== constants_1.AST_PRIMITIVES.UNKNOWN)
85
+ return firstPrimitive;
86
+ return secondPrimitive !== null && secondPrimitive !== void 0 ? secondPrimitive : constants_1.AST_PRIMITIVES.UNKNOWN;
87
+ }
36
88
  function elasticsearch(value, replacement) {
37
89
  return `IS_NULL_SCRIPT(${value}, ${replacement})`;
38
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":";;;AACA,kDAA+C;AAC/C,wDAAqD;AACrD,oEAA6D;AAE7D;;GAEG;AACU,QAAA,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAS,CAAC;SACzB;QACD;YACI,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,2BAAY,CAAC;SAC5B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,kBAAkB,EAAE,CAAC;IACrB,eAAe,CAAC,IAAiB;QAC7B,OAAO,IAAA,mCAAc,EAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACvE,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa,EAAE,WAAmB;IACrD,OAAO,kBAAkB,KAAK,KAAK,WAAW,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,WAAmB;IAC3C,OAAO,YAAY,KAAK,KAAK,WAAW,GAAG,CAAC;AAChD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,WAAmB;IACjD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,WAAmB;IAChD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,WAAmB;IAClD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MID = void 0;
4
4
  const constants_1 = require("../constants");
5
+ const dictionary_1 = require("../errors/dictionary");
5
6
  const utils_1 = require("../utils");
6
7
  /**
7
8
  * `MID` Returns a segment of a string.
@@ -21,8 +22,8 @@ exports.MID = {
21
22
  },
22
23
  {
23
24
  identifier: 'EXTRACT_LENGTH',
24
- optional: true,
25
- validator: [utils_1.isNumberParam],
25
+ optional: false,
26
+ validator: [utils_1.isNumberParam, greaterThanZero],
26
27
  },
27
28
  ],
28
29
  transpiler: {
@@ -33,6 +34,37 @@ exports.MID = {
33
34
  },
34
35
  primitiveResult: constants_1.AST_PRIMITIVES.STRING,
35
36
  };
37
+ function greaterThanZero(param, _dataType, context) {
38
+ return greaterThanReference(param, context.argument, 0);
39
+ }
40
+ function greaterThanReference(param, arg, compareReference) {
41
+ const numericValue = getNumericValueFromArgument(param, arg);
42
+ const valid = typeof numericValue !== 'number' ||
43
+ compareValueWithReference(numericValue, compareReference);
44
+ if (!valid)
45
+ return Object.assign(Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.greaterThan]), { info: {
46
+ greaterThan: compareReference,
47
+ } });
48
+ return { valid };
49
+ }
50
+ function getNumericValueFromArgument(param, argument) {
51
+ if (typeof param === 'number')
52
+ return param;
53
+ const isUnaryExpression = argument.type === constants_1.AST_TYPES.unaryExpression;
54
+ if (isUnaryExpression) {
55
+ const unaryExp = argument.node;
56
+ const isNegative = unaryExp.operator === '-';
57
+ const isNumber = unaryExp.right.type === constants_1.AST_TYPES.literal &&
58
+ unaryExp.right.dataType === constants_1.AST_PRIMITIVES.NUMBER;
59
+ if (isNumber)
60
+ return (unaryExp.right.value *
61
+ (isNegative ? -1 : 1));
62
+ }
63
+ return param;
64
+ }
65
+ function compareValueWithReference(value, reference) {
66
+ return value >= reference;
67
+ }
36
68
  function elasticsearch(current, start, length) {
37
69
  const optional = length ? `, ${length}` : '';
38
70
  return `${constants_1.ELASTICSEARCH_SCRIPT_NAMES.subString}(${current}, ${start}${optional})`;
@@ -1 +1 @@
1
- {"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":";;;AAAA,4CAA0E;AAE1E,oCAAwD;AAExD;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,GAAG,sCAA0B,CAAC,SAAS,IAAI,OAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,CAAC;AACtF,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,aAAa,OAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,CAAC;AACxD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC7D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":";;;AAAA,4CAKsB;AAStB,qDAAoE;AACpE,oCAAwD;AAExD;;GAEG;AACU,QAAA,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAa,EAAE,eAAe,CAAC;SAC9C;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,0BAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,eAAe,CACpB,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,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;IACtE,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;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,GAAG,sCAA0B,CAAC,SAAS,IAAI,OAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,CAAC;AACtF,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,OAAO,aAAa,OAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,CAAC;AACxD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC7D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import { FunctionCallAST, FunctionDefinition, ProcessNodeResult } from '../constants/interfaces';
2
- export declare function validateFuncStructure(definition: FunctionDefinition, args: Array<ProcessNodeResult>, node: FunctionCallAST): boolean;
2
+ export declare function validateFuncStructure(definition: FunctionDefinition, args: Array<ProcessNodeResult>, node: FunctionCallAST): void;
@@ -5,27 +5,8 @@ const isNull_1 = require("../utils/isNull");
5
5
  const errors_1 = require("../errors");
6
6
  const dictionary_1 = require("../errors/dictionary");
7
7
  const constants_1 = require("../constants");
8
- const primitiveFunctions_1 = require("../utils/primitiveFunctions");
9
8
  function validateFuncStructure(definition, args, node) {
10
- var _a;
11
- const commonArgs = args.map((arg) => arg.node);
12
- const primitive = (0, primitiveFunctions_1.getFunctionPrimitive)(definition, commonArgs);
13
- const singlePrimitive = Array.isArray(primitive) ? undefined : primitive;
14
- if (!(0, isNull_1.isNull)(definition.maxPrimitiveValues)) {
15
- const isPrimitiveAllowed = typeof primitive === 'string' ||
16
- (Array.isArray(primitive) &&
17
- primitive.length === definition.maxPrimitiveValues);
18
- if (!isPrimitiveAllowed) {
19
- const validator = Object.assign({ valid: false, source: constants_1.RESPONSE_LEVEL.function }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.inferredPrimitive]);
20
- const { expected, received } = (0, errors_1.validateParameters)(definition, args, singlePrimitive);
21
- throw new errors_1.FunctionArgumentsMismatch({
22
- node,
23
- validator,
24
- expected,
25
- received,
26
- });
27
- }
28
- }
9
+ var _a, _b;
29
10
  let parameterIndex = 0;
30
11
  let argumentIndex = 0;
31
12
  const parameters = definition.parameters || [];
@@ -33,6 +14,9 @@ function validateFuncStructure(definition, args, node) {
33
14
  parameterIndex += 1;
34
15
  argumentIndex += 1;
35
16
  };
17
+ const execValidators = [];
18
+ let invalidValidator = false;
19
+ let hasMissmatch = false;
36
20
  while (parameterIndex < parameters.length) {
37
21
  const parameter = parameters[parameterIndex];
38
22
  const { value, dataType } = (_a = args[argumentIndex]) !== null && _a !== void 0 ? _a : {};
@@ -41,55 +25,67 @@ function validateFuncStructure(definition, args, node) {
41
25
  continue;
42
26
  }
43
27
  if ((0, isNull_1.isNull)(value) && !parameter.optional) {
44
- const validator = Object.assign({ valid: false, source: constants_1.RESPONSE_LEVEL.function }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingArg]);
45
- const { expected, received } = (0, errors_1.validateParameters)(definition, args, singlePrimitive);
46
- throw new errors_1.FunctionArgumentsMismatch({
47
- node,
48
- parameter,
49
- validator,
50
- expected,
51
- received,
52
- });
28
+ invalidValidator = true;
29
+ hasMissmatch = true;
30
+ execValidators.push(Object.assign(Object.assign({ valid: false, source: constants_1.RESPONSE_LEVEL.function }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingArg]), { parameter,
31
+ argumentIndex }));
53
32
  }
54
- parameter.validator.forEach((validatorFunction) => {
55
- var _a;
56
- const validator = validatorFunction(value, dataType, (_a = args[argumentIndex]) !== null && _a !== void 0 ? _a : {});
33
+ const validatorContext = {
34
+ fnNode: node,
35
+ argument: (_b = args[argumentIndex]) !== null && _b !== void 0 ? _b : {},
36
+ };
37
+ for (const validatorFunction of parameter.validator) {
38
+ const validator = validatorFunction(value, dataType, validatorContext);
39
+ execValidators.push(Object.assign(Object.assign({}, validator), { parameter,
40
+ argumentIndex }));
57
41
  if (!validator.valid) {
58
- const { expected, received } = (0, errors_1.validateParameters)(definition, args, singlePrimitive);
59
- const customExpectedType = validator.customExpectedType;
60
- if (customExpectedType && expected[parameterIndex]) {
61
- expected[parameterIndex].custom = true;
62
- expected[parameterIndex].primitive = customExpectedType;
63
- }
64
- validator.source = constants_1.RESPONSE_LEVEL.function;
65
- throw new errors_1.FunctionArgumentsMismatch({
66
- node,
67
- parameter,
68
- validator,
69
- expected,
70
- received,
71
- });
42
+ if (validator.mismatchData && !hasMissmatch)
43
+ hasMissmatch = true;
44
+ if (!invalidValidator)
45
+ invalidValidator = true;
46
+ break;
72
47
  }
73
- });
48
+ }
74
49
  incrementCounter();
75
- const hasMoreArguments = parameterIndex === parameters.length &&
76
- argumentIndex !== args.length;
50
+ const parameterListCompleted = parameterIndex === parameters.length;
51
+ const hasMoreArguments = argumentIndex < args.length;
77
52
  const isRecursive = typeof (definition === null || definition === void 0 ? void 0 : definition.recursiveStartIn) === 'number';
78
- if (hasMoreArguments && isRecursive) {
53
+ if (parameterListCompleted && hasMoreArguments && isRecursive) {
79
54
  parameterIndex = definition.recursiveStartIn;
80
55
  }
81
56
  }
57
+ if (invalidValidator) {
58
+ if (hasMissmatch) {
59
+ throwFunctionMismatch(definition, args, node, {
60
+ validators: execValidators,
61
+ });
62
+ }
63
+ else {
64
+ const failedValidator = execValidators.find((val) => !val.valid);
65
+ if (failedValidator)
66
+ throwArgumentError(node, failedValidator);
67
+ }
68
+ }
82
69
  if (argumentIndex < args.length) {
83
- const validator = Object.assign({ valid: false, source: constants_1.RESPONSE_LEVEL.function }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.tooManyArguments]);
84
- const { expected, received } = (0, errors_1.validateParameters)(definition, args, singlePrimitive);
85
- throw new errors_1.FunctionArgumentsMismatch({
86
- node,
87
- validator,
88
- expected,
89
- received,
70
+ throwFunctionMismatch(definition, args, node, {
71
+ error: dictionary_1.ERROR_LIST.tooManyArguments,
90
72
  });
91
73
  }
92
- return true;
93
74
  }
94
75
  exports.validateFuncStructure = validateFuncStructure;
76
+ function throwFunctionMismatch(definition, args, node, validatorInfo, parameter) {
77
+ var _a;
78
+ const baseValidator = Object.assign({ valid: false, source: constants_1.RESPONSE_LEVEL.function }, dictionary_1.ERROR_DICTIONARY[(_a = validatorInfo.error) !== null && _a !== void 0 ? _a : dictionary_1.ERROR_LIST.unknown]);
79
+ const { expected, received, validator } = (0, errors_1.validateParameters)(definition, args, validatorInfo.validators);
80
+ throw new errors_1.FunctionArgumentsMismatch({
81
+ node,
82
+ parameter,
83
+ validator: validator || baseValidator,
84
+ expected,
85
+ received,
86
+ });
87
+ }
88
+ function throwArgumentError(node, validator) {
89
+ throw new errors_1.ArgumentValidatorError(node, validator);
90
+ }
95
91
  //# sourceMappingURL=validateFuncStructure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateFuncStructure.js","sourceRoot":"","sources":["../../../src/transpiler/validateFuncStructure.ts"],"names":[],"mappings":";;;AAMA,4CAAyC;AAEzC,sCAA0E;AAC1E,qDAAoE;AACpE,4CAA8C;AAC9C,oEAAmE;AAEnE,SAAgB,qBAAqB,CACjC,UAA8B,EAC9B,IAA8B,EAC9B,IAAqB;;IAErB,MAAM,UAAU,GAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAA,yCAAoB,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,CAAC,IAAA,eAAM,EAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;QACxC,MAAM,kBAAkB,GACpB,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACrB,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,EAAE;YACrB,MAAM,SAAS,mBACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,0BAAc,CAAC,QAAQ,IAC5B,6BAAgB,CAAC,uBAAU,CAAC,iBAAiB,CAAC,CACpD,CAAC;YACF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAkB,EAC7C,UAAU,EACV,IAAI,EACJ,eAAe,CAClB,CAAC;YACF,MAAM,IAAI,kCAAyB,CAAC;gBAChC,IAAI;gBACJ,SAAS;gBACT,QAAQ;gBACR,QAAQ;aACX,CAAC,CAAC;SACN;KACJ;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;IAC/C,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC1B,cAAc,IAAI,CAAC,CAAC;QACpB,aAAa,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IACF,OAAO,cAAc,GAAG,UAAU,CAAC,MAAM,EAAE;QACvC,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,mCAAI,EAAE,CAAC;QAEtD,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE;YACrC,gBAAgB,EAAE,CAAC;YACnB,SAAS;SACZ;QACD,IAAI,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YACtC,MAAM,SAAS,mBACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,0BAAc,CAAC,QAAQ,IAC5B,6BAAgB,CAAC,uBAAU,CAAC,UAAU,CAAC,CAC7C,CAAC;YACF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAkB,EAC7C,UAAU,EACV,IAAI,EACJ,eAAe,CAClB,CAAC;YACF,MAAM,IAAI,kCAAyB,CAAC;gBAChC,IAAI;gBACJ,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,QAAQ;aACX,CAAC,CAAC;SACN;QAED,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;;YAC9C,MAAM,SAAS,GAAG,iBAAiB,CAC/B,KAAK,EACL,QAAQ,EACR,MAAA,IAAI,CAAC,aAAa,CAAC,mCAAI,EAAE,CAC5B,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;gBAClB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAkB,EAC7C,UAAU,EACV,IAAI,EACJ,eAAe,CAClB,CAAC;gBAEF,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;gBACxD,IAAI,kBAAkB,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE;oBAChD,QAAQ,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBACvC,QAAQ,CAAC,cAAc,CAAC,CAAC,SAAS,GAAG,kBAAkB,CAAC;iBAC3D;gBACD,SAAS,CAAC,MAAM,GAAG,0BAAc,CAAC,QAAQ,CAAC;gBAC3C,MAAM,IAAI,kCAAyB,CAAC;oBAChC,IAAI;oBACJ,SAAS;oBACT,SAAS;oBACT,QAAQ;oBACR,QAAQ;iBACX,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QAEH,gBAAgB,EAAE,CAAC;QACnB,MAAM,gBAAgB,GAClB,cAAc,KAAK,UAAU,CAAC,MAAM;YACpC,aAAa,KAAK,IAAI,CAAC,MAAM,CAAC;QAClC,MAAM,WAAW,GAAG,OAAO,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,gBAAgB,CAAA,KAAK,QAAQ,CAAC;QACrE,IAAI,gBAAgB,IAAI,WAAW,EAAE;YACjC,cAAc,GAAG,UAAU,CAAC,gBAA0B,CAAC;SAC1D;KACJ;IAED,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE;QAC7B,MAAM,SAAS,mBACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,0BAAc,CAAC,QAAQ,IAC5B,6BAAgB,CAAC,uBAAU,CAAC,gBAAgB,CAAC,CACnD,CAAC;QACF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAkB,EAC7C,UAAU,EACV,IAAI,EACJ,eAAe,CAClB,CAAC;QACF,MAAM,IAAI,kCAAyB,CAAC;YAChC,IAAI;YACJ,SAAS;YACT,QAAQ;YACR,QAAQ;SACX,CAAC,CAAC;KACN;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AA9HD,sDA8HC"}
1
+ {"version":3,"file":"validateFuncStructure.js","sourceRoot":"","sources":["../../../src/transpiler/validateFuncStructure.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- import { Primitive } from '../constants';
2
- import { ProcessNodeResult, ValidatorResponse } from '../constants/interfaces';
3
- export declare function isAColumn(_param: any, _dataType: Primitive | undefined, argument: ProcessNodeResult): ValidatorResponse;
1
+ import { ValidatorParameterContext } from '../constants/interfaces';
2
+ export declare function isAColumn(context: ValidatorParameterContext): boolean;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isAColumn = void 0;
4
- const dictionary_1 = require("../errors/dictionary");
5
4
  const constants_1 = require("../constants");
6
- function isAColumn(_param, _dataType, argument) {
7
- const valid = argument.type === constants_1.AST_TYPES.column;
8
- if (!valid)
9
- return Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingColumnExpression]);
10
- return { valid };
5
+ function isAColumn(context) {
6
+ return context.argument.type === constants_1.AST_TYPES.column;
11
7
  }
12
8
  exports.isAColumn = isAColumn;
13
9
  //# sourceMappingURL=isAColumn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isAColumn.js","sourceRoot":"","sources":["../../../src/utils/isAColumn.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AACpE,4CAAoD;AAGpD,SAAgB,SAAS,CACrB,MAAW,EACX,SAAgC,EAChC,QAA2B;IAE3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,KAAK,qBAAS,CAAC,MAAM,CAAC;IACjD,IAAI,CAAC,KAAK;QACN,uBACI,KAAK,IACF,6BAAgB,CAAC,uBAAU,CAAC,uBAAuB,CAAC,EACzD;IACN,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAZD,8BAYC"}
1
+ {"version":3,"file":"isAColumn.js","sourceRoot":"","sources":["../../../src/utils/isAColumn.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAGzC,SAAgB,SAAS,CAAC,OAAkC;IACxD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,qBAAS,CAAC,MAAM,CAAC;AACtD,CAAC;AAFD,8BAEC"}
@@ -0,0 +1,2 @@
1
+ import { ValidatorParameterContext } from '../constants/interfaces';
2
+ export declare function isALiteral(context: ValidatorParameterContext): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isALiteral = void 0;
4
+ const constants_1 = require("../constants");
5
+ function isALiteral(context) {
6
+ return context.argument.type === constants_1.AST_TYPES.literal;
7
+ }
8
+ exports.isALiteral = isALiteral;
9
+ //# sourceMappingURL=isALiteral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isALiteral.js","sourceRoot":"","sources":["../../../src/utils/isALiteral.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAGzC,SAAgB,UAAU,CAAC,OAAkC;IACzD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,qBAAS,CAAC,OAAO,CAAC;AACvD,CAAC;AAFD,gCAEC"}
@@ -1,3 +1,3 @@
1
1
  import { Primitive } from '../constants';
2
2
  import { ValidatorResponse } from '../constants/interfaces';
3
- export declare function isBooleanExpression(param: any, dataType: Primitive | undefined): ValidatorResponse;
3
+ export declare function isBooleanExpression(_param: any, dataType: Primitive | undefined): ValidatorResponse;
@@ -3,14 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isBooleanExpression = void 0;
4
4
  const constants_1 = require("../constants");
5
5
  const dictionary_1 = require("../errors/dictionary");
6
- function isBooleanExpression(param, dataType) {
6
+ function isBooleanExpression(_param, dataType) {
7
7
  const valid = dataType === constants_1.AST_PRIMITIVES.BOOLEAN;
8
- if (!valid) {
9
- return Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.booleanExpression]);
10
- }
11
- return {
8
+ const baseResponse = {
12
9
  valid,
10
+ mismatchData: {
11
+ primitive: constants_1.AST_PRIMITIVES.BOOLEAN,
12
+ },
13
13
  };
14
+ if (!valid) {
15
+ return Object.assign(Object.assign({}, baseResponse), dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.booleanExpression]);
16
+ }
17
+ return baseResponse;
14
18
  }
15
19
  exports.isBooleanExpression = isBooleanExpression;
16
20
  //# sourceMappingURL=isBooleanExpression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isBooleanExpression.js","sourceRoot":"","sources":["../../../src/utils/isBooleanExpression.ts"],"names":[],"mappings":";;;AAAA,4CAAyD;AAEzD,qDAAoE;AAEpE,SAAgB,mBAAmB,CAC/B,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,0BAAc,CAAC,OAAO,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE;QACR,uBACI,KAAK,IACF,6BAAgB,CAAC,uBAAU,CAAC,iBAAiB,CAAC,EACnD;KACL;IACD,OAAO;QACH,KAAK;KACR,CAAC;AACN,CAAC;AAdD,kDAcC"}
1
+ {"version":3,"file":"isBooleanExpression.js","sourceRoot":"","sources":["../../../src/utils/isBooleanExpression.ts"],"names":[],"mappings":";;;AAAA,4CAAyD;AAEzD,qDAAoE;AAEpE,SAAgB,mBAAmB,CAC/B,MAAW,EACX,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,0BAAc,CAAC,OAAO,CAAC;IAClD,MAAM,YAAY,GAAG;QACjB,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,0BAAc,CAAC,OAAO;SACpC;KACJ,CAAC;IACF,IAAI,CAAC,KAAK,EAAE;QACR,uCACO,YAAY,GACZ,6BAAgB,CAAC,uBAAU,CAAC,iBAAiB,CAAC,EACnD;KACL;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAlBD,kDAkBC"}
@@ -5,9 +5,15 @@ const dictionary_1 = require("../errors/dictionary");
5
5
  const constants_1 = require("../constants");
6
6
  function isDateParam(_param, dataType) {
7
7
  const valid = dataType === constants_1.AST_PRIMITIVES.DATE;
8
+ const baseResponse = {
9
+ valid,
10
+ mismatchData: {
11
+ primitive: constants_1.AST_PRIMITIVES.DATE,
12
+ },
13
+ };
8
14
  if (!valid)
9
- return Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingDate]);
10
- return { valid };
15
+ return Object.assign(Object.assign({}, baseResponse), dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingDate]);
16
+ return baseResponse;
11
17
  }
12
18
  exports.isDateParam = isDateParam;
13
19
  //# sourceMappingURL=isDateParam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isDateParam.js","sourceRoot":"","sources":["../../../src/utils/isDateParam.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AACpE,4CAAyD;AAGzD,SAAgB,WAAW,CACvB,MAAW,EACX,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,0BAAc,CAAC,IAAI,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,6BAAgB,CAAC,uBAAU,CAAC,WAAW,CAAC,EAAG;IAC1E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAPD,kCAOC"}
1
+ {"version":3,"file":"isDateParam.js","sourceRoot":"","sources":["../../../src/utils/isDateParam.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AACpE,4CAAyD;AAGzD,SAAgB,WAAW,CACvB,MAAW,EACX,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,0BAAc,CAAC,IAAI,CAAC;IAC/C,MAAM,YAAY,GAAG;QACjB,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,0BAAc,CAAC,IAAI;SACjC;KACJ,CAAC;IACF,IAAI,CAAC,KAAK;QACN,uCAAY,YAAY,GAAK,6BAAgB,CAAC,uBAAU,CAAC,WAAW,CAAC,EAAG;IAC5E,OAAO,YAAY,CAAC;AACxB,CAAC;AAdD,kCAcC"}
@@ -6,9 +6,15 @@ const constants_1 = require("../constants");
6
6
  function isNumberParam(param, dataType) {
7
7
  const valid = typeof param === constants_1.AST_PRIMITIVES.NUMBER ||
8
8
  dataType === constants_1.AST_PRIMITIVES.NUMBER;
9
+ const baseResponse = {
10
+ valid,
11
+ mismatchData: {
12
+ primitive: constants_1.AST_PRIMITIVES.NUMBER,
13
+ },
14
+ };
9
15
  if (!valid)
10
- return Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingNumber]);
11
- return { valid };
16
+ return Object.assign(Object.assign({}, baseResponse), dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingNumber]);
17
+ return baseResponse;
12
18
  }
13
19
  exports.isNumberParam = isNumberParam;
14
20
  //# sourceMappingURL=isNumberParam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isNumberParam.js","sourceRoot":"","sources":["../../../src/utils/isNumberParam.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AACpE,4CAAyD;AAGzD,SAAgB,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,OAAO,KAAK,KAAK,0BAAc,CAAC,MAAM;QACtC,QAAQ,KAAK,0BAAc,CAAC,MAAM,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,6BAAgB,CAAC,uBAAU,CAAC,aAAa,CAAC,EAAG;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AATD,sCASC"}
1
+ {"version":3,"file":"isNumberParam.js","sourceRoot":"","sources":["../../../src/utils/isNumberParam.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AACpE,4CAAyD;AAGzD,SAAgB,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,OAAO,KAAK,KAAK,0BAAc,CAAC,MAAM;QACtC,QAAQ,KAAK,0BAAc,CAAC,MAAM,CAAC;IACvC,MAAM,YAAY,GAAG;QACjB,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,0BAAc,CAAC,MAAM;SACnC;KACJ,CAAC;IACF,IAAI,CAAC,KAAK;QACN,uCACO,YAAY,GACZ,6BAAgB,CAAC,uBAAU,CAAC,aAAa,CAAC,EAC/C;IACN,OAAO,YAAY,CAAC;AACxB,CAAC;AAnBD,sCAmBC"}
@@ -6,9 +6,15 @@ const constants_1 = require("../constants");
6
6
  function isStringParam(param, dataType) {
7
7
  const valid = dataType === constants_1.AST_PRIMITIVES.STRING ||
8
8
  (dataType === undefined && typeof param === constants_1.AST_PRIMITIVES.STRING);
9
+ const baseResponse = {
10
+ valid,
11
+ mismatchData: {
12
+ primitive: constants_1.AST_PRIMITIVES.STRING,
13
+ },
14
+ };
9
15
  if (!valid)
10
- return Object.assign({ valid }, dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingString]);
11
- return { valid };
16
+ return Object.assign(Object.assign({}, baseResponse), dictionary_1.ERROR_DICTIONARY[dictionary_1.ERROR_LIST.missingString]);
17
+ return baseResponse;
12
18
  }
13
19
  exports.isStringParam = isStringParam;
14
20
  //# sourceMappingURL=isStringParam.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isStringParam.js","sourceRoot":"","sources":["../../../src/utils/isStringParam.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AACpE,4CAAyD;AAGzD,SAAgB,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,QAAQ,KAAK,0BAAc,CAAC,MAAM;QAClC,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,0BAAc,CAAC,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,6BAAgB,CAAC,uBAAU,CAAC,aAAa,CAAC,EAAG;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AATD,sCASC"}
1
+ {"version":3,"file":"isStringParam.js","sourceRoot":"","sources":["../../../src/utils/isStringParam.ts"],"names":[],"mappings":";;;AAAA,qDAAoE;AACpE,4CAAyD;AAGzD,SAAgB,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,QAAQ,KAAK,0BAAc,CAAC,MAAM;QAClC,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,0BAAc,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG;QACjB,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,0BAAc,CAAC,MAAM;SACnC;KACJ,CAAC;IACF,IAAI,CAAC,KAAK;QACN,uCACO,YAAY,GACZ,6BAAgB,CAAC,uBAAU,CAAC,aAAa,CAAC,EAC/C;IACN,OAAO,YAAY,CAAC;AACxB,CAAC;AAnBD,sCAmBC"}
@@ -3,3 +3,4 @@ import { CommonAST, FunctionDefinition } from '../constants/interfaces';
3
3
  export declare function primitiveIsIncluded(primitive: Primitive, ...allowedPrimitives: AST_PRIMITIVES[]): boolean;
4
4
  export declare function getFunctionPrimitive(definition: FunctionDefinition, args: CommonAST[]): Primitive;
5
5
  export declare function inferPrimitive(...primitives: Primitive[]): Primitive;
6
+ export declare function isSinglePrimitive(primitive: Primitive): primitive is AST_PRIMITIVES;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inferPrimitive = exports.getFunctionPrimitive = exports.primitiveIsIncluded = void 0;
3
+ exports.isSinglePrimitive = exports.inferPrimitive = exports.getFunctionPrimitive = exports.primitiveIsIncluded = void 0;
4
4
  const constants_1 = require("../constants");
5
5
  function primitiveIsIncluded(primitive, ...allowedPrimitives) {
6
6
  const primitives = Array.isArray(primitive) ? primitive : [primitive];
@@ -36,4 +36,8 @@ function inferPrimitive(...primitives) {
36
36
  : flattedPrimitives;
37
37
  }
38
38
  exports.inferPrimitive = inferPrimitive;
39
+ function isSinglePrimitive(primitive) {
40
+ return !Array.isArray(primitive);
41
+ }
42
+ exports.isSinglePrimitive = isSinglePrimitive;
39
43
  //# sourceMappingURL=primitiveFunctions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitiveFunctions.js","sourceRoot":"","sources":["../../../src/utils/primitiveFunctions.ts"],"names":[],"mappings":";;;AAAA,4CAAyD;AAGzD,SAAgB,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;AAND,kDAMC;AAED,SAAgB,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;AARD,oDAQC;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,SAAgB,cAAc,CAAC,GAAG,UAAuB;IACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC;IACxD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,0BAAc,CAAC,OAAO,CAAC;IAClE,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,iBAAiB,CAAC;AAC5B,CAAC;AAND,wCAMC"}
1
+ {"version":3,"file":"primitiveFunctions.js","sourceRoot":"","sources":["../../../src/utils/primitiveFunctions.ts"],"names":[],"mappings":";;;AAAA,4CAAyD;AAGzD,SAAgB,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;AAND,kDAMC;AAED,SAAgB,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;AARD,oDAQC;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,SAAgB,cAAc,CAAC,GAAG,UAAuB;IACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC;IACxD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,0BAAc,CAAC,OAAO,CAAC;IAClE,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,iBAAiB,CAAC;AAC5B,CAAC;AAND,wCAMC;AAED,SAAgB,iBAAiB,CAC7B,SAAoB;IAEpB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAJD,8CAIC"}