@qrvey/formula-lang 0.10.0 → 0.11.1

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 (136) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/constants/index.d.ts +2 -1
  3. package/dist/cjs/constants/index.js +1 -0
  4. package/dist/cjs/constants/index.js.map +1 -1
  5. package/dist/cjs/constants/interfaces.d.ts +18 -8
  6. package/dist/cjs/errors/analyzer/index.js +1 -1
  7. package/dist/cjs/errors/analyzer/index.js.map +1 -1
  8. package/dist/cjs/errors/definitions.d.ts +8 -1
  9. package/dist/cjs/errors/definitions.js +17 -2
  10. package/dist/cjs/errors/definitions.js.map +1 -1
  11. package/dist/cjs/errors/dictionary.d.ts +3 -1
  12. package/dist/cjs/errors/dictionary.js +10 -0
  13. package/dist/cjs/errors/dictionary.js.map +1 -1
  14. package/dist/cjs/errors/index.d.ts +1 -0
  15. package/dist/cjs/errors/index.js +1 -0
  16. package/dist/cjs/errors/index.js.map +1 -1
  17. package/dist/cjs/errors/mismatch.d.ts +33 -0
  18. package/dist/cjs/errors/mismatch.js +67 -0
  19. package/dist/cjs/errors/mismatch.js.map +1 -0
  20. package/dist/cjs/functions/abs.js +0 -2
  21. package/dist/cjs/functions/abs.js.map +1 -1
  22. package/dist/cjs/functions/datedif.js +7 -7
  23. package/dist/cjs/functions/datedif.js.map +1 -1
  24. package/dist/cjs/functions/day.js +0 -2
  25. package/dist/cjs/functions/day.js.map +1 -1
  26. package/dist/cjs/functions/hour.js +0 -2
  27. package/dist/cjs/functions/hour.js.map +1 -1
  28. package/dist/cjs/functions/if.js +4 -9
  29. package/dist/cjs/functions/if.js.map +1 -1
  30. package/dist/cjs/functions/ifs.js +3 -8
  31. package/dist/cjs/functions/ifs.js.map +1 -1
  32. package/dist/cjs/functions/isNull.js +3 -10
  33. package/dist/cjs/functions/isNull.js.map +1 -1
  34. package/dist/cjs/functions/mid.js +0 -4
  35. package/dist/cjs/functions/mid.js.map +1 -1
  36. package/dist/cjs/functions/minute.js +0 -2
  37. package/dist/cjs/functions/minute.js.map +1 -1
  38. package/dist/cjs/functions/month.js +0 -2
  39. package/dist/cjs/functions/month.js.map +1 -1
  40. package/dist/cjs/functions/second.js +0 -2
  41. package/dist/cjs/functions/second.js.map +1 -1
  42. package/dist/cjs/functions/year.js +0 -2
  43. package/dist/cjs/functions/year.js.map +1 -1
  44. package/dist/cjs/grammar/generated/qformula.lang.d.ts +2 -9
  45. package/dist/cjs/grammar/generated/qformula.lang.js +50 -27
  46. package/dist/cjs/grammar/generated/qformula.lang.js.map +1 -1
  47. package/dist/cjs/grammar/generated/qformula.lang.terms.d.ts +4 -3
  48. package/dist/cjs/grammar/generated/qformula.lang.terms.js +2 -2
  49. package/dist/cjs/grammar/generated/qformula.lang.terms.js.map +1 -1
  50. package/dist/cjs/grammar/tokens.d.ts +2 -0
  51. package/dist/cjs/grammar/tokens.js +26 -0
  52. package/dist/cjs/grammar/tokens.js.map +1 -0
  53. package/dist/cjs/index.d.ts +1 -1
  54. package/dist/cjs/index.js +2 -2
  55. package/dist/cjs/index.js.map +1 -1
  56. package/dist/cjs/parser/formula-parser.d.ts +2 -1
  57. package/dist/cjs/parser/formula-parser.js +11 -12
  58. package/dist/cjs/parser/formula-parser.js.map +1 -1
  59. package/dist/cjs/parser/json-parser.js +48 -19
  60. package/dist/cjs/parser/json-parser.js.map +1 -1
  61. package/dist/cjs/transpiler/columnTranspilation.d.ts +1 -1
  62. package/dist/cjs/transpiler/columnTranspilation.js +14 -3
  63. package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
  64. package/dist/cjs/transpiler/index.js +93 -14
  65. package/dist/cjs/transpiler/index.js.map +1 -1
  66. package/dist/cjs/transpiler/validateFuncStructure.d.ts +1 -1
  67. package/dist/cjs/transpiler/validateFuncStructure.js +60 -8
  68. package/dist/cjs/transpiler/validateFuncStructure.js.map +1 -1
  69. package/dist/module/constants/index.d.ts +2 -1
  70. package/dist/module/constants/index.js +1 -0
  71. package/dist/module/constants/index.js.map +1 -1
  72. package/dist/module/constants/interfaces.d.ts +18 -8
  73. package/dist/module/errors/analyzer/index.js +1 -1
  74. package/dist/module/errors/analyzer/index.js.map +1 -1
  75. package/dist/module/errors/definitions.d.ts +8 -1
  76. package/dist/module/errors/definitions.js +15 -1
  77. package/dist/module/errors/definitions.js.map +1 -1
  78. package/dist/module/errors/dictionary.d.ts +3 -1
  79. package/dist/module/errors/dictionary.js +10 -0
  80. package/dist/module/errors/dictionary.js.map +1 -1
  81. package/dist/module/errors/index.d.ts +1 -0
  82. package/dist/module/errors/index.js +1 -0
  83. package/dist/module/errors/index.js.map +1 -1
  84. package/dist/module/errors/mismatch.d.ts +33 -0
  85. package/dist/module/errors/mismatch.js +62 -0
  86. package/dist/module/errors/mismatch.js.map +1 -0
  87. package/dist/module/functions/abs.js +0 -2
  88. package/dist/module/functions/abs.js.map +1 -1
  89. package/dist/module/functions/datedif.js +7 -7
  90. package/dist/module/functions/datedif.js.map +1 -1
  91. package/dist/module/functions/day.js +0 -2
  92. package/dist/module/functions/day.js.map +1 -1
  93. package/dist/module/functions/hour.js +0 -2
  94. package/dist/module/functions/hour.js.map +1 -1
  95. package/dist/module/functions/if.js +4 -9
  96. package/dist/module/functions/if.js.map +1 -1
  97. package/dist/module/functions/ifs.js +3 -8
  98. package/dist/module/functions/ifs.js.map +1 -1
  99. package/dist/module/functions/isNull.js +3 -10
  100. package/dist/module/functions/isNull.js.map +1 -1
  101. package/dist/module/functions/mid.js +0 -4
  102. package/dist/module/functions/mid.js.map +1 -1
  103. package/dist/module/functions/minute.js +0 -2
  104. package/dist/module/functions/minute.js.map +1 -1
  105. package/dist/module/functions/month.js +0 -2
  106. package/dist/module/functions/month.js.map +1 -1
  107. package/dist/module/functions/second.js +0 -2
  108. package/dist/module/functions/second.js.map +1 -1
  109. package/dist/module/functions/year.js +0 -2
  110. package/dist/module/functions/year.js.map +1 -1
  111. package/dist/module/grammar/generated/qformula.lang.d.ts +2 -9
  112. package/dist/module/grammar/generated/qformula.lang.js +50 -27
  113. package/dist/module/grammar/generated/qformula.lang.js.map +1 -1
  114. package/dist/module/grammar/generated/qformula.lang.terms.d.ts +4 -3
  115. package/dist/module/grammar/generated/qformula.lang.terms.js +1 -1
  116. package/dist/module/grammar/generated/qformula.lang.terms.js.map +1 -1
  117. package/dist/module/grammar/tokens.d.ts +2 -0
  118. package/dist/module/grammar/tokens.js +23 -0
  119. package/dist/module/grammar/tokens.js.map +1 -0
  120. package/dist/module/index.d.ts +1 -1
  121. package/dist/module/index.js +1 -1
  122. package/dist/module/index.js.map +1 -1
  123. package/dist/module/parser/formula-parser.d.ts +2 -1
  124. package/dist/module/parser/formula-parser.js +9 -11
  125. package/dist/module/parser/formula-parser.js.map +1 -1
  126. package/dist/module/parser/json-parser.js +50 -21
  127. package/dist/module/parser/json-parser.js.map +1 -1
  128. package/dist/module/transpiler/columnTranspilation.d.ts +1 -1
  129. package/dist/module/transpiler/columnTranspilation.js +14 -3
  130. package/dist/module/transpiler/columnTranspilation.js.map +1 -1
  131. package/dist/module/transpiler/index.js +93 -14
  132. package/dist/module/transpiler/index.js.map +1 -1
  133. package/dist/module/transpiler/validateFuncStructure.d.ts +1 -1
  134. package/dist/module/transpiler/validateFuncStructure.js +60 -8
  135. package/dist/module/transpiler/validateFuncStructure.js.map +1 -1
  136. package/package.json +1 -1
@@ -2,36 +2,41 @@ import { ENGINES, AST_TYPES, RESPONSE_LEVEL, AST_PRIMITIVES, Primitive } from '.
2
2
  import { BaseError } from '../errors';
3
3
  interface FunctionElementDefinition {
4
4
  identifier: string;
5
- name: string;
6
5
  }
7
6
  export interface FunctionDefinition extends FunctionElementDefinition {
8
7
  recursiveStartIn?: number;
9
8
  transpiler: EnginesFunction;
10
9
  parameters?: Array<FunctionParameters>;
11
10
  primitiveResult: Primitive | ((args: CommonAST[]) => Primitive);
11
+ maxPrimitiveValues?: number;
12
12
  }
13
13
  export type EnginesFunction = {
14
14
  [key in ENGINES]: Function;
15
15
  };
16
16
  export interface FunctionParameters extends FunctionElementDefinition {
17
17
  optional: boolean;
18
+ generic?: boolean;
18
19
  validator: Array<ValidatorFunctionParameter>;
19
20
  }
20
21
  export interface ProcessNodeResult {
21
22
  value: any;
22
- dataType?: Primitive;
23
- type: FunctionCallAST['type'];
23
+ type: AST_TYPES;
24
+ dataType: Primitive;
25
+ node: CommonAST;
24
26
  }
25
27
  interface ValidatorFunctionParameter {
26
- (value: any, dataType: Primitive | undefined, argument: ProcessNodeResult): ValidatorResponse;
28
+ (value: any, dataType: Primitive | undefined, argument: ProcessNodeResult): ValidationParameterResponse;
27
29
  }
28
30
  export interface ValidatorResponse {
29
31
  valid: boolean;
30
32
  code?: string;
31
- level?: RESPONSE_LEVEL;
33
+ source?: RESPONSE_LEVEL;
32
34
  message?: string;
33
35
  info?: any;
34
36
  }
37
+ export interface ValidationParameterResponse extends ValidatorResponse {
38
+ customExpectedType?: string;
39
+ }
35
40
  export interface TranspilationResponse {
36
41
  valid: boolean;
37
42
  expression?: string;
@@ -45,10 +50,12 @@ interface TranspilationDetails {
45
50
  export interface FunctionList {
46
51
  [identifier: string]: FunctionDefinition;
47
52
  }
48
- export interface CommonAST {
49
- type: AST_TYPES;
53
+ export interface ProgramPosition {
50
54
  from: number;
51
55
  to: number;
56
+ }
57
+ export interface CommonAST extends ProgramPosition {
58
+ type: AST_TYPES;
52
59
  primitive: Primitive;
53
60
  }
54
61
  export interface ProgramAST extends CommonAST {
@@ -63,6 +70,8 @@ export interface ProgramAST extends CommonAST {
63
70
  }
64
71
  export interface UnaryExpressionAST extends CommonAST {
65
72
  operator: string;
73
+ operatorNode?: ProgramPosition;
74
+ validOperators: string[];
66
75
  right: CommonAST;
67
76
  }
68
77
  export interface BinaryExpressionAST extends UnaryExpressionAST {
@@ -73,7 +82,8 @@ export interface FunctionCallAST extends CommonAST {
73
82
  arguments: Array<CommonAST>;
74
83
  parenthesisStart: boolean;
75
84
  parenthesisEnd: boolean;
76
- formulaText: string;
85
+ functionText: string;
86
+ functionIdentifier: ProgramPosition;
77
87
  }
78
88
  export type ValueASTType = string | boolean | number | CommonAST[] | null | Date;
79
89
  export interface CommonValueAST extends CommonAST {
@@ -13,7 +13,7 @@ export function errorAnalyzer(engine, errorObj) {
13
13
  };
14
14
  const { errorList, messageList } = info[engine](errorObj);
15
15
  const currentError = analyzer(messageList, errorList);
16
- return Object.assign({ valid: false, level: RESPONSE_LEVEL.runtime, info: errorObj }, currentError);
16
+ return Object.assign({ valid: false, source: RESPONSE_LEVEL.runtime, info: errorObj }, currentError);
17
17
  }
18
18
  function analyzer(messageList, errorList) {
19
19
  let result = ERROR_DICTIONARY.unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAmB,gBAAgB,EAAc,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,UAAU,aAAa,CACzB,MAAe,EACf,QAAiB;IAEjB,MAAM,IAAI,GAAoB;QAC1B,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa;QACtC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS;QAC9B,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ;QAC5B,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU;KACnC,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,uBACI,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,cAAc,CAAC,OAAO,EAC7B,IAAI,EAAE,QAAQ,IACX,YAAY,EACjB;AACN,CAAC;AAED,SAAS,QAAQ,CACb,WAA0B,EAC1B,SAA2B;IAE3B,IAAI,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACtC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/errors/analyzer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAmB,gBAAgB,EAAc,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,UAAU,aAAa,CACzB,MAAe,EACf,QAAiB;IAEjB,MAAM,IAAI,GAAoB;QAC1B,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa;QACtC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS;QAC9B,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ;QAC5B,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU;KACnC,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtD,uBACI,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,CAAC,OAAO,EAC9B,IAAI,EAAE,QAAQ,IACX,YAAY,EACjB;AACN,CAAC;AAED,SAAS,QAAQ,CACb,WAA0B,EAC1B,SAA2B;IAE3B,IAAI,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACtC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1,4 +1,5 @@
1
- import { CommonAST, FunctionCallAST, FunctionParameters, UnknownAST, ValidatorResponse } from '../constants/interfaces';
1
+ import { BinaryExpressionAST, CommonAST, FunctionCallAST, FunctionParameters, UnaryExpressionAST, UnknownAST, ValidatorResponse } from '../constants/interfaces';
2
+ import { Primitive } from '../constants';
2
3
  export declare class BaseError extends Error {
3
4
  code: string;
4
5
  message: string;
@@ -32,6 +33,12 @@ export declare class NotAllowedExpressionError extends BaseError {
32
33
  node: CommonAST;
33
34
  constructor(node: CommonAST);
34
35
  }
36
+ export declare class NotAllowedOperationError extends BaseError {
37
+ node: UnaryExpressionAST | BinaryExpressionAST;
38
+ constructor(node: UnaryExpressionAST | BinaryExpressionAST);
39
+ get leftPrimitive(): Primitive | undefined;
40
+ get rightPrimitive(): Primitive | undefined;
41
+ }
35
42
  export declare class TooManyArgumentsError extends BaseError {
36
43
  node: FunctionCallAST;
37
44
  constructor(node: FunctionCallAST);
@@ -41,7 +41,7 @@ export class MissingArgumentError extends BaseError {
41
41
  this.argumentIndex = argumentIndex;
42
42
  }
43
43
  toString() {
44
- return `${this.code}: ${this.message} ${this.parameter.name}`;
44
+ return `${this.code}: ${this.message} ${this.parameter.identifier}`;
45
45
  }
46
46
  }
47
47
  export class MissingParenthesisError extends BaseError {
@@ -62,6 +62,20 @@ export class NotAllowedExpressionError extends BaseError {
62
62
  this.node = node;
63
63
  }
64
64
  }
65
+ export class NotAllowedOperationError extends BaseError {
66
+ constructor(node) {
67
+ super(ERROR_DICTIONARY[ERROR_LIST.notAllowedOperation].code, ERROR_DICTIONARY[ERROR_LIST.notAllowedOperation].message, node);
68
+ this.node = node;
69
+ }
70
+ get leftPrimitive() {
71
+ var _a;
72
+ return (_a = this.node.left) === null || _a === void 0 ? void 0 : _a.primitive;
73
+ }
74
+ get rightPrimitive() {
75
+ var _a;
76
+ return (_a = this.node.right) === null || _a === void 0 ? void 0 : _a.primitive;
77
+ }
78
+ }
65
79
  export class TooManyArgumentsError extends BaseError {
66
80
  constructor(node) {
67
81
  super(ERROR_DICTIONARY[ERROR_LIST.tooManyArguments].code, ERROR_DICTIONARY[ERROR_LIST.tooManyArguments].message, node);
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":"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"}
@@ -15,13 +15,15 @@ export declare enum ERROR_LIST {
15
15
  unknownExpression = "unknownExpression",
16
16
  unknownToken = "unknownToken",
17
17
  notAllowedExpression = "notAllowedExpression",
18
+ notAllowedOperation = "notAllowedOperation",
18
19
  outOfRange = "outOfRange",
19
20
  invalidCastNumber = "invalidCastNumber",
20
21
  inferredPrimitive = "inferredPrimitive",
21
22
  booleanExpression = "booleanExpression",
22
23
  missingColumnExpression = "missingColumnExpression",
23
24
  noColumnExpression = "noColumnExpression",
24
- argumentsDataType = "argumentsDataType"
25
+ argumentsDataType = "argumentsDataType",
26
+ functionArgumentsMismatch = "functionArgumentsMismatch"
25
27
  }
26
28
  type ErrorsType = {
27
29
  [key in ERROR_LIST]: ErrorDictionary;
@@ -16,6 +16,7 @@ export var ERROR_LIST;
16
16
  ERROR_LIST["unknownExpression"] = "unknownExpression";
17
17
  ERROR_LIST["unknownToken"] = "unknownToken";
18
18
  ERROR_LIST["notAllowedExpression"] = "notAllowedExpression";
19
+ ERROR_LIST["notAllowedOperation"] = "notAllowedOperation";
19
20
  ERROR_LIST["outOfRange"] = "outOfRange";
20
21
  ERROR_LIST["invalidCastNumber"] = "invalidCastNumber";
21
22
  ERROR_LIST["inferredPrimitive"] = "inferredPrimitive";
@@ -23,6 +24,7 @@ export var ERROR_LIST;
23
24
  ERROR_LIST["missingColumnExpression"] = "missingColumnExpression";
24
25
  ERROR_LIST["noColumnExpression"] = "noColumnExpression";
25
26
  ERROR_LIST["argumentsDataType"] = "argumentsDataType";
27
+ ERROR_LIST["functionArgumentsMismatch"] = "functionArgumentsMismatch";
26
28
  })(ERROR_LIST || (ERROR_LIST = {}));
27
29
  export const ERROR_DICTIONARY = {
28
30
  [ERROR_LIST.arguments]: {
@@ -89,6 +91,10 @@ export const ERROR_DICTIONARY = {
89
91
  message: 'Expression not allowed',
90
92
  code: 'NOT_ALLOWED_EXPRESSION',
91
93
  },
94
+ [ERROR_LIST.notAllowedOperation]: {
95
+ message: 'Operation not allowed',
96
+ code: 'NOT_ALLOWED_OPERATION',
97
+ },
92
98
  [ERROR_LIST.outOfRange]: {
93
99
  message: 'Expression out of range',
94
100
  code: 'OUT_OF_RANGE',
@@ -117,5 +123,9 @@ export const ERROR_DICTIONARY = {
117
123
  message: 'Arguments should have the same data type.',
118
124
  code: 'ARGUMENTS_DATATYPE_ERROR',
119
125
  },
126
+ [ERROR_LIST.functionArgumentsMismatch]: {
127
+ message: 'Function arguments mismatch.',
128
+ code: 'FUNCTION_ARGUMENTS_MISMATCH',
129
+ },
120
130
  };
121
131
  //# sourceMappingURL=dictionary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/errors/dictionary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../../src/errors/dictionary.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './definitions';
2
2
  export * from './analyzer';
3
+ export * from './mismatch';
@@ -1,3 +1,4 @@
1
1
  export * from './definitions';
2
2
  export * from './analyzer';
3
+ export * from './mismatch'; // TODO improve -> Need move it?
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC,CAAC,gCAAgC"}
@@ -0,0 +1,33 @@
1
+ import { AST_PRIMITIVES, AST_TYPES, Primitive } from '../constants';
2
+ import { CommonAST, FunctionDefinition, FunctionParameters, ProcessNodeResult, ValidatorResponse } from '../constants/interfaces';
3
+ import { BaseError } from './definitions';
4
+ interface MissmatchDetail {
5
+ primitive: Primitive | AST_TYPES | string;
6
+ from?: number;
7
+ to?: number;
8
+ optional?: boolean;
9
+ }
10
+ interface MissmatchExpected extends MissmatchDetail {
11
+ custom?: boolean;
12
+ generic?: boolean;
13
+ }
14
+ interface Mismatch {
15
+ node: CommonAST | undefined;
16
+ validator: ValidatorResponse;
17
+ parameter?: FunctionParameters;
18
+ expected: Array<MissmatchExpected>;
19
+ received: Array<MissmatchDetail>;
20
+ }
21
+ export declare class FunctionArgumentsMismatch extends BaseError implements Mismatch {
22
+ constructor(mismatch: Mismatch);
23
+ validator: ValidatorResponse;
24
+ parameter: FunctionParameters | undefined;
25
+ expected: Array<MissmatchExpected>;
26
+ received: Array<MissmatchDetail>;
27
+ node: CommonAST | undefined;
28
+ }
29
+ export declare function validateParameters(definition: FunctionDefinition, args: Array<ProcessNodeResult>, genericType?: AST_PRIMITIVES | AST_TYPES | string): {
30
+ expected: Array<MissmatchExpected>;
31
+ received: Array<MissmatchDetail>;
32
+ };
33
+ export {};
@@ -0,0 +1,62 @@
1
+ import { AST_PRIMITIVES, AST_TYPES } from '../constants';
2
+ import { BaseError } from './definitions';
3
+ import { ERROR_DICTIONARY, ERROR_LIST } from './dictionary';
4
+ export class FunctionArgumentsMismatch extends BaseError {
5
+ constructor(mismatch) {
6
+ super(ERROR_DICTIONARY[ERROR_LIST.functionArgumentsMismatch].code, ERROR_DICTIONARY[ERROR_LIST.functionArgumentsMismatch].message, mismatch.node);
7
+ Object.assign(this, mismatch); // Expose mismatch params to `this` class
8
+ }
9
+ }
10
+ export function validateParameters(definition, args, genericType) {
11
+ const received = args.map((arg) => {
12
+ const { from, to, primitive } = arg.node;
13
+ return { from, to, primitive };
14
+ });
15
+ const parameters = definition.parameters || [];
16
+ const expected = [];
17
+ let parameterCount = 0;
18
+ while (parameterCount < parameters.length) {
19
+ const param = parameters[parameterCount];
20
+ const expectedPrimitive = transformParamInMissmatchExpected(param, genericType);
21
+ expected.push(expectedPrimitive);
22
+ parameterCount++;
23
+ const parameterListCompleted = parameterCount === parameters.length;
24
+ const hasMoreArguments = expected.length < received.length;
25
+ const isRecursive = typeof (definition === null || definition === void 0 ? void 0 : definition.recursiveStartIn) === 'number';
26
+ if (parameterListCompleted && isRecursive && hasMoreArguments) {
27
+ parameterCount = definition.recursiveStartIn;
28
+ }
29
+ }
30
+ return { expected, received };
31
+ }
32
+ function transformParamInMissmatchExpected(param, genericType) {
33
+ const result = { optional: param.optional };
34
+ let primitive = getExpectedPrimitiveFromParam(param);
35
+ if (primitive === AST_PRIMITIVES.UNKNOWN && genericType) {
36
+ primitive = genericType;
37
+ }
38
+ return Object.assign(Object.assign(Object.assign({}, result), { primitive }), (param.generic && { generic: param.generic }));
39
+ }
40
+ function getExpectedPrimitiveFromParam(param) {
41
+ if (param.validator.length === 0) {
42
+ return AST_PRIMITIVES.UNKNOWN;
43
+ }
44
+ const primitiveArray = param.validator.map((validator) => {
45
+ const name = validator.name;
46
+ return mapParamValidator(name);
47
+ });
48
+ return primitiveArray[0];
49
+ }
50
+ function mapParamValidator(name) {
51
+ var _a;
52
+ return (_a = FUNCTION_PRIMITIVE_MAPPER[name]) !== null && _a !== void 0 ? _a : AST_PRIMITIVES.UNKNOWN;
53
+ }
54
+ const FUNCTION_PRIMITIVE_MAPPER = {
55
+ isStringParam: AST_PRIMITIVES.STRING,
56
+ isNumberParam: AST_PRIMITIVES.NUMBER,
57
+ isDateParam: AST_PRIMITIVES.DATE,
58
+ isBooleanExpression: AST_PRIMITIVES.BOOLEAN,
59
+ isAColumn: AST_TYPES.column,
60
+ customValidatorYMD: AST_PRIMITIVES.STRING,
61
+ };
62
+ //# sourceMappingURL=mismatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mismatch.js","sourceRoot":"","sources":["../../../src/errors/mismatch.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,9 @@ import { isNumberParam } from '../utils';
5
5
  */
6
6
  export const ABS = {
7
7
  identifier: 'ABS',
8
- name: 'ABS',
9
8
  parameters: [
10
9
  {
11
10
  identifier: 'VALUE',
12
- name: 'value',
13
11
  optional: false,
14
12
  validator: [isNumberParam],
15
13
  },
@@ -1 +1 @@
1
- {"version":3,"file":"abs.js","sourceRoot":"","sources":["../../../src/functions/abs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,YAAY,KAAK,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,OAAO,KAAK,GAAG,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"abs.js","sourceRoot":"","sources":["../../../src/functions/abs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,YAAY,KAAK,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,OAAO,KAAK,GAAG,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -8,23 +8,19 @@ import { isDateParam, isStringParam, removeQuotes } from '../utils';
8
8
  */
9
9
  export const DATEDIF = {
10
10
  identifier: 'DATEDIF',
11
- name: 'DATEDIF',
12
11
  parameters: [
13
12
  {
14
13
  identifier: 'START_DATE',
15
- name: 'start_date',
16
14
  optional: false,
17
15
  validator: [isDateParam],
18
16
  },
19
17
  {
20
18
  identifier: 'END_DATE',
21
- name: 'end_date',
22
19
  optional: false,
23
20
  validator: [isDateParam],
24
21
  },
25
22
  {
26
23
  identifier: 'UNIT',
27
- name: 'unit',
28
24
  optional: false,
29
25
  validator: [isStringParam, customValidatorYMD],
30
26
  },
@@ -37,11 +33,15 @@ export const DATEDIF = {
37
33
  },
38
34
  primitiveResult: AST_PRIMITIVES.NUMBER,
39
35
  };
36
+ const YMD_UNIT_LIST = ['Y', 'M', 'D'];
40
37
  function customValidatorYMD(param) {
41
38
  param = removeQuotes(param);
42
- const valid = ['Y', 'M', 'D'].includes(param);
43
- if (!valid)
44
- return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.customDateDifParams]);
39
+ const valid = YMD_UNIT_LIST.includes(param);
40
+ if (!valid) {
41
+ const customExpectedType = YMD_UNIT_LIST.join('|');
42
+ return Object.assign({ valid,
43
+ customExpectedType }, ERROR_DICTIONARY[ERROR_LIST.customDateDifParams]);
44
+ }
45
45
  return { valid };
46
46
  }
47
47
  function elasticsearch(start, end, unit) {
@@ -1 +1 @@
1
- {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE,SAAS;IACf,UAAU,EAAE;QACR;YACI,UAAU,EAAE,YAAY;YACxB,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;SACjD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAU;IAClC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QACN,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAG;IAC1E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAClB,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IACjE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAChE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CACf,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;SACjD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtC,SAAS,kBAAkB,CAAC,KAAU;IAClC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,uBACI,KAAK;YACL,kBAAkB,IACf,gBAAgB,CAAC,UAAU,CAAC,mBAAmB,CAAC,EACrD;KACL;IACD,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAClB,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IACjE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAChE,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CACf,KAAa,EACb,GAAW,EACX,IAAsB;IAEtB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAqB,CAAC;IAC9C,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -6,11 +6,9 @@ import { AST_PRIMITIVES } from '../constants';
6
6
  */
7
7
  export const DAY = {
8
8
  identifier: 'DAY',
9
- name: 'DAY',
10
9
  parameters: [
11
10
  {
12
11
  identifier: 'DATE',
13
- name: 'date',
14
12
  optional: false,
15
13
  validator: [isDateParam],
16
14
  },
@@ -1 +1 @@
1
- {"version":3,"file":"day.js","sourceRoot":"","sources":["../../../src/functions/day.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,oBAAoB,KAAK,GAAG,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"day.js","sourceRoot":"","sources":["../../../src/functions/day.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,oBAAoB,KAAK,GAAG,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -6,11 +6,9 @@ import { AST_PRIMITIVES } from '../constants';
6
6
  */
7
7
  export const HOUR = {
8
8
  identifier: 'HOUR',
9
- name: 'HOUR',
10
9
  parameters: [
11
10
  {
12
11
  identifier: 'DATE',
13
- name: 'date',
14
12
  optional: false,
15
13
  validator: [isDateParam],
16
14
  },
@@ -1 +1 @@
1
- {"version":3,"file":"hour.js","sourceRoot":"","sources":["../../../src/functions/hour.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,qBAAqB,KAAK,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"hour.js","sourceRoot":"","sources":["../../../src/functions/hour.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,GAAG,CAAC,KAAa;IACtB,OAAO,qBAAqB,KAAK,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -1,30 +1,27 @@
1
1
  import { AST_PRIMITIVES } from '../constants';
2
2
  import { isBooleanExpression } from '../utils/isBooleanExpression';
3
3
  import { inferPrimitive } from '../utils/primitiveFunctions';
4
- import { InferredPrimitiveError } from '../errors';
5
4
  /**
6
5
  * `IF` Returns one value if a logical expression is TRUE and another if it is FALSE.
7
6
  */
8
7
  export const IF = {
9
8
  identifier: 'IF',
10
- name: 'IF',
11
9
  parameters: [
12
10
  {
13
11
  identifier: 'LOGICAL_EXPRESSION',
14
- name: 'logical_expression',
15
12
  optional: false,
16
13
  validator: [isBooleanExpression],
17
14
  },
18
15
  {
19
16
  identifier: 'VALUE_IF_TRUE',
20
- name: 'VALUE_IF_TRUE',
21
17
  optional: false,
18
+ generic: true,
22
19
  validator: [],
23
20
  },
24
21
  {
25
22
  identifier: 'VALUE_IF_FALSE',
26
- name: 'VALUE_IF_FALSE',
27
23
  optional: false,
24
+ generic: true,
28
25
  validator: [],
29
26
  },
30
27
  ],
@@ -34,16 +31,14 @@ export const IF = {
34
31
  redshift,
35
32
  postgresql,
36
33
  },
34
+ maxPrimitiveValues: 1,
37
35
  primitiveResult(args) {
38
36
  var _a, _b, _c, _d;
39
37
  const truePrimitive = (_b = (_a = args === null || args === void 0 ? void 0 : args[1]) === null || _a === void 0 ? void 0 : _a.primitive) !== null && _b !== void 0 ? _b : AST_PRIMITIVES.UNKNOWN;
40
38
  const falsePrimitive = (_d = (_c = args === null || args === void 0 ? void 0 : args[2]) === null || _c === void 0 ? void 0 : _c.primitive) !== null && _d !== void 0 ? _d : null;
41
39
  if (!falsePrimitive)
42
40
  return truePrimitive;
43
- const inferred = inferPrimitive(truePrimitive, falsePrimitive);
44
- if (Array.isArray(inferred))
45
- throw new InferredPrimitiveError(args[args.length - 1]);
46
- return inferred;
41
+ return inferPrimitive(truePrimitive, falsePrimitive);
47
42
  },
48
43
  };
49
44
  function elasticsearch(logicalExpression, valueIfTrue, valueIfFalse) {
@@ -1 +1 @@
1
- {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAuB;IAClC,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,IAAI;IACV,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;SAChB;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;SAChB;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,eAAe,CAAC,IAAiB;;QAC7B,MAAM,aAAa,GAAG,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,0CAAE,SAAS,mCAAI,cAAc,CAAC,OAAO,CAAC;QACrE,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,0CAAE,SAAS,mCAAI,IAAI,CAAC;QACpD,IAAI,CAAC,cAAc;YAAE,OAAO,aAAa,CAAC;QAC1C,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvB,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAClB,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,IAAI,iBAAiB,MAAM,WAAW,MAAM,YAAY,GAAG,CAAC;AACvE,CAAC;AAED,SAAS,SAAS,CACd,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,OAAO,iBAAiB,KAAK,WAAW,KAAK,YAAY,GAAG,CAAC;AACxE,CAAC;AAED,SAAS,GAAG,CACR,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO;;WAEA,iBAAiB,SAAS,WAAW;WACrC,YAAY;KAClB,CAAC,IAAI,EAAE,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CACb,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CACf,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAuB;IAClC,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE;SAChB;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,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,GAAG,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,0CAAE,SAAS,mCAAI,cAAc,CAAC,OAAO,CAAC;QACrE,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,0CAAE,SAAS,mCAAI,IAAI,CAAC;QACpD,IAAI,CAAC,cAAc;YAAE,OAAO,aAAa,CAAC;QAC1C,OAAO,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACzD,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAClB,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,IAAI,iBAAiB,MAAM,WAAW,MAAM,YAAY,GAAG,CAAC;AACvE,CAAC;AAED,SAAS,SAAS,CACd,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,OAAO,iBAAiB,KAAK,WAAW,KAAK,YAAY,GAAG,CAAC;AACxE,CAAC;AAED,SAAS,GAAG,CACR,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO;;WAEA,iBAAiB,SAAS,WAAW;WACrC,YAAY;KAClB,CAAC,IAAI,EAAE,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CACb,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CACf,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { isBooleanExpression } from '../utils/isBooleanExpression';
2
2
  import { inferPrimitive } from '../utils/primitiveFunctions';
3
- import { InferredPrimitiveError } from '../errors';
4
3
  /**
5
4
  * `IFS` Returns one value if a logical expression is TRUE
6
5
  * when is False another logical expression have to be set with their returned value
@@ -8,19 +7,17 @@ import { InferredPrimitiveError } from '../errors';
8
7
  */
9
8
  export const IFS = {
10
9
  identifier: 'IFS',
11
- name: 'IFS',
12
10
  recursiveStartIn: 0,
13
11
  parameters: [
14
12
  {
15
13
  identifier: 'LOGICAL_EXPRESSION',
16
- name: 'logical_expression',
17
14
  optional: false,
18
15
  validator: [isBooleanExpression],
19
16
  },
20
17
  {
21
18
  identifier: 'VALUE_IF_TRUE',
22
- name: 'VALUE_IF_TRUE',
23
19
  optional: false,
20
+ generic: true,
24
21
  validator: [],
25
22
  },
26
23
  ],
@@ -30,6 +27,7 @@ export const IFS = {
30
27
  redshift,
31
28
  postgresql,
32
29
  },
30
+ maxPrimitiveValues: 1,
33
31
  primitiveResult(args) {
34
32
  const primitiveArgs = [];
35
33
  args.forEach((value, index) => {
@@ -37,10 +35,7 @@ export const IFS = {
37
35
  primitiveArgs.push(value.primitive);
38
36
  }
39
37
  });
40
- const inferred = inferPrimitive(...primitiveArgs);
41
- if (Array.isArray(inferred))
42
- throw new InferredPrimitiveError(args[args.length - 1]);
43
- return inferred;
38
+ return inferPrimitive(...primitiveArgs);
44
39
  },
45
40
  };
46
41
  function elasticsearch(...args) {
@@ -1 +1 @@
1
- {"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;SAChB;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;KACb;IACD,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,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvB,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC;IACpB,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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"}