@qrvey/formula-lang 0.3.0 → 0.4.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 (126) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/__tests__/integration/__mocks__/context.ts +23 -0
  3. package/__tests__/integration/__mocks__/elasticsearchScripts.ts +11 -4
  4. package/__tests__/integration/__mocks__/sqlScripts.ts +3 -2
  5. package/__tests__/integration/elasticsearch.test.ts +17 -3
  6. package/__tests__/integration/expression.test.ts +34 -0
  7. package/__tests__/integration/redshift.test.ts +15 -0
  8. package/__tests__/integration/sonwflake.test.ts +15 -0
  9. package/dist/constants/interfaces.d.ts +8 -8
  10. package/dist/transpiler/columnTranspilation.d.ts +3 -0
  11. package/dist/transpiler/columnTranspilation.js +19 -0
  12. package/dist/transpiler/columnTranspilation.js.map +1 -0
  13. package/dist/transpiler/index.d.ts +3 -2
  14. package/dist/transpiler/index.js +6 -1
  15. package/dist/transpiler/index.js.map +1 -1
  16. package/dist/utils/getVariableType.d.ts +3 -3
  17. package/dist/utils/getVariableType.js.map +1 -1
  18. package/package.json +1 -1
  19. package/pkg/dist/constants/index.d.ts +0 -42
  20. package/pkg/dist/constants/index.js +0 -86
  21. package/pkg/dist/constants/index.js.map +0 -1
  22. package/pkg/dist/constants/interfaces.d.ts +0 -62
  23. package/pkg/dist/constants/interfaces.js +0 -2
  24. package/pkg/dist/constants/interfaces.js.map +0 -1
  25. package/pkg/dist/errors/definitions.d.ts +0 -26
  26. package/pkg/dist/errors/definitions.js +0 -42
  27. package/pkg/dist/errors/definitions.js.map +0 -1
  28. package/pkg/dist/errors/elasticsearch.d.ts +0 -24
  29. package/pkg/dist/errors/elasticsearch.js +0 -27
  30. package/pkg/dist/errors/elasticsearch.js.map +0 -1
  31. package/pkg/dist/errors/engineErrors.d.ts +0 -2
  32. package/pkg/dist/errors/engineErrors.js +0 -21
  33. package/pkg/dist/errors/engineErrors.js.map +0 -1
  34. package/pkg/dist/errors/index.d.ts +0 -2
  35. package/pkg/dist/errors/index.js +0 -5
  36. package/pkg/dist/errors/index.js.map +0 -1
  37. package/pkg/dist/errors/snowflake.d.ts +0 -15
  38. package/pkg/dist/errors/snowflake.js +0 -17
  39. package/pkg/dist/errors/snowflake.js.map +0 -1
  40. package/pkg/dist/functions/abs.d.ts +0 -5
  41. package/pkg/dist/functions/abs.js +0 -35
  42. package/pkg/dist/functions/abs.js.map +0 -1
  43. package/pkg/dist/functions/datedif.d.ts +0 -5
  44. package/pkg/dist/functions/datedif.js +0 -58
  45. package/pkg/dist/functions/datedif.js.map +0 -1
  46. package/pkg/dist/functions/day.d.ts +0 -5
  47. package/pkg/dist/functions/day.js +0 -36
  48. package/pkg/dist/functions/day.js.map +0 -1
  49. package/pkg/dist/functions/hour.d.ts +0 -5
  50. package/pkg/dist/functions/hour.js +0 -36
  51. package/pkg/dist/functions/hour.js.map +0 -1
  52. package/pkg/dist/functions/if.d.ts +0 -5
  53. package/pkg/dist/functions/if.js +0 -49
  54. package/pkg/dist/functions/if.js.map +0 -1
  55. package/pkg/dist/functions/ifs.d.ts +0 -5
  56. package/pkg/dist/functions/ifs.js +0 -71
  57. package/pkg/dist/functions/ifs.js.map +0 -1
  58. package/pkg/dist/functions/index.d.ts +0 -4
  59. package/pkg/dist/functions/index.js +0 -29
  60. package/pkg/dist/functions/index.js.map +0 -1
  61. package/pkg/dist/functions/mid.d.ts +0 -5
  62. package/pkg/dist/functions/mid.js +0 -51
  63. package/pkg/dist/functions/mid.js.map +0 -1
  64. package/pkg/dist/functions/minute.d.ts +0 -5
  65. package/pkg/dist/functions/minute.js +0 -36
  66. package/pkg/dist/functions/minute.js.map +0 -1
  67. package/pkg/dist/functions/month.d.ts +0 -5
  68. package/pkg/dist/functions/month.js +0 -36
  69. package/pkg/dist/functions/month.js.map +0 -1
  70. package/pkg/dist/functions/second.d.ts +0 -5
  71. package/pkg/dist/functions/second.js +0 -36
  72. package/pkg/dist/functions/second.js.map +0 -1
  73. package/pkg/dist/functions/year.d.ts +0 -5
  74. package/pkg/dist/functions/year.js +0 -36
  75. package/pkg/dist/functions/year.js.map +0 -1
  76. package/pkg/dist/grammar/generated/qformula.lang.js +0 -43
  77. package/pkg/dist/grammar/generated/qformula.lang.js.map +0 -1
  78. package/pkg/dist/grammar/qformula.grammar.d.ts +0 -1
  79. package/pkg/dist/grammar/qformula.grammar.js +0 -2
  80. package/pkg/dist/grammar/qformula.grammar.js.map +0 -1
  81. package/pkg/dist/index.js +0 -29
  82. package/pkg/dist/index.js.map +0 -1
  83. package/pkg/dist/parser/json-parser.js +0 -139
  84. package/pkg/dist/parser/json-parser.js.map +0 -1
  85. package/pkg/dist/transpiler/index.d.ts +0 -17
  86. package/pkg/dist/transpiler/index.js +0 -82
  87. package/pkg/dist/transpiler/index.js.map +0 -1
  88. package/pkg/dist/transpiler/validateFuncStructure.d.ts +0 -2
  89. package/pkg/dist/transpiler/validateFuncStructure.js +0 -35
  90. package/pkg/dist/transpiler/validateFuncStructure.js.map +0 -1
  91. package/pkg/dist/utils/customFunctions.d.ts +0 -2
  92. package/pkg/dist/utils/customFunctions.js +0 -11
  93. package/pkg/dist/utils/customFunctions.js.map +0 -1
  94. package/pkg/dist/utils/elasticsearch/index.d.ts +0 -1
  95. package/pkg/dist/utils/elasticsearch/index.js +0 -15
  96. package/pkg/dist/utils/elasticsearch/index.js.map +0 -1
  97. package/pkg/dist/utils/elasticsearch/scripts.d.ts +0 -9
  98. package/pkg/dist/utils/elasticsearch/scripts.js +0 -33
  99. package/pkg/dist/utils/elasticsearch/scripts.js.map +0 -1
  100. package/pkg/dist/utils/getMonthMaxDayAllowed.d.ts +0 -7
  101. package/pkg/dist/utils/getMonthMaxDayAllowed.js +0 -22
  102. package/pkg/dist/utils/getMonthMaxDayAllowed.js.map +0 -1
  103. package/pkg/dist/utils/getNodeValue.d.ts +0 -2
  104. package/pkg/dist/utils/getNodeValue.js +0 -9
  105. package/pkg/dist/utils/getNodeValue.js.map +0 -1
  106. package/pkg/dist/utils/index.d.ts +0 -8
  107. package/pkg/dist/utils/index.js +0 -9
  108. package/pkg/dist/utils/index.js.map +0 -1
  109. package/pkg/dist/utils/isDateParam.d.ts +0 -2
  110. package/pkg/dist/utils/isDateParam.js +0 -10
  111. package/pkg/dist/utils/isDateParam.js.map +0 -1
  112. package/pkg/dist/utils/isNumberParam.d.ts +0 -2
  113. package/pkg/dist/utils/isNumberParam.js +0 -8
  114. package/pkg/dist/utils/isNumberParam.js.map +0 -1
  115. package/pkg/dist/utils/isPositiveNumberParam.d.ts +0 -2
  116. package/pkg/dist/utils/isPositiveNumberParam.js +0 -8
  117. package/pkg/dist/utils/isPositiveNumberParam.js.map +0 -1
  118. package/pkg/dist/utils/isStringParam.d.ts +0 -2
  119. package/pkg/dist/utils/isStringParam.js +0 -8
  120. package/pkg/dist/utils/isStringParam.js.map +0 -1
  121. package/pkg/dist/utils/isValidDate.d.ts +0 -1
  122. package/pkg/dist/utils/isValidDate.js +0 -4
  123. package/pkg/dist/utils/isValidDate.js.map +0 -1
  124. package/pkg/dist/utils/sql/scripts.d.ts +0 -2
  125. package/pkg/dist/utils/sql/scripts.js +0 -39
  126. package/pkg/dist/utils/sql/scripts.js.map +0 -1
@@ -1,42 +0,0 @@
1
- import { ERROR_DICTIONARY, ERROR_LIST } from '../constants';
2
- export class BaseError extends Error {
3
- constructor(code, message, node) {
4
- super(message);
5
- this.code = code;
6
- this.node = node;
7
- }
8
- toString() {
9
- var _a;
10
- return `${this.code}: ${this.message} ${(_a = this.node) === null || _a === void 0 ? void 0 : _a.name}`;
11
- }
12
- }
13
- export class GenericError extends BaseError {
14
- constructor(message = ERROR_DICTIONARY[ERROR_LIST.unknown].message) {
15
- super(ERROR_DICTIONARY[ERROR_LIST.unknown].code, message);
16
- }
17
- }
18
- export class UnknownFunctionError extends BaseError {
19
- constructor(node) {
20
- super(ERROR_DICTIONARY[ERROR_LIST.unknownFunction].code, ERROR_DICTIONARY[ERROR_LIST.unknownFunction].message, node);
21
- this.node = node;
22
- }
23
- }
24
- export class MissingArgumentError extends BaseError {
25
- constructor(node) {
26
- super(ERROR_DICTIONARY[ERROR_LIST.missingArg].code, ERROR_DICTIONARY[ERROR_LIST.missingArg].message, node);
27
- this.node = node;
28
- }
29
- }
30
- export class TooManyArgumentsError extends BaseError {
31
- constructor(node) {
32
- super(ERROR_DICTIONARY[ERROR_LIST.tooManyArguments].code, ERROR_DICTIONARY[ERROR_LIST.tooManyArguments].message, node);
33
- this.node = node;
34
- }
35
- }
36
- export class InvalidArgumentError extends BaseError {
37
- constructor(node, validatorResponse) {
38
- super((validatorResponse === null || validatorResponse === void 0 ? void 0 : validatorResponse.code) || '', (validatorResponse === null || validatorResponse === void 0 ? void 0 : validatorResponse.message) || '', node);
39
- this.node = node;
40
- }
41
- }
42
- //# sourceMappingURL=definitions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../../src/errors/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG5D,MAAM,OAAO,SAAU,SAAQ,KAAK;IAIhC,YAAY,IAAY,EAAE,OAAe,EAAE,IAAsB;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,QAAQ;;QACJ,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;CACJ;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IACvC,YAAY,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO;QAC9D,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,YAAmB,IAAqB;QACpC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,EACjD,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,OAAO,EACpD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAAiB;IAMxC,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,YAAmB,IAAqB;QACpC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,EAC5C,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,EAC/C,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAAiB;IAMxC,CAAC;CACJ;AACD,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IAChD,YAAmB,IAAqB;QACpC,KAAK,CACD,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAClD,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,OAAO,EACrD,IAAI,CACP,CAAC;QALa,SAAI,GAAJ,IAAI,CAAiB;IAMxC,CAAC;CACJ;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,YACW,IAAqB,EAC5B,iBAAoC;QAEpC,KAAK,CACD,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,KAAI,EAAE,EAC7B,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,OAAO,KAAI,EAAE,EAChC,IAAI,CACP,CAAC;QAPK,SAAI,GAAJ,IAAI,CAAiB;IAQhC,CAAC;CACJ"}
@@ -1,24 +0,0 @@
1
- import { ERROR_LIST } from '../constants';
2
- export declare const errorRegex: ({
3
- unknownFunction: {
4
- regex: RegExp;
5
- value: ERROR_LIST;
6
- };
7
- missingArguments: {
8
- regex: RegExp;
9
- value: ERROR_LIST;
10
- };
11
- } | {
12
- arguments: {
13
- regex: RegExp;
14
- value: ERROR_LIST;
15
- };
16
- state: {
17
- regex: RegExp;
18
- value: ERROR_LIST;
19
- };
20
- null_pointer: {
21
- regex: RegExp;
22
- value: ERROR_LIST;
23
- };
24
- })[];
@@ -1,27 +0,0 @@
1
- import { ERROR_LIST } from '../constants';
2
- const reasonsRegex = {
3
- unknownFunction: {
4
- regex: /Unknown call \[.*\] with/,
5
- value: ERROR_LIST.unknownFunction,
6
- },
7
- missingArguments: {
8
- regex: /static method \[.*\] not found/,
9
- value: ERROR_LIST.arguments,
10
- },
11
- };
12
- const typesRegex = {
13
- arguments: {
14
- regex: /illegal_argument_exception/,
15
- value: ERROR_LIST.arguments,
16
- },
17
- state: {
18
- regex: /illegal_state_exception/,
19
- value: ERROR_LIST.nulls,
20
- },
21
- null_pointer: {
22
- regex: /null_pointer_exception/,
23
- value: ERROR_LIST.nulls,
24
- },
25
- };
26
- export const errorRegex = [reasonsRegex, typesRegex];
27
- //# sourceMappingURL=elasticsearch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elasticsearch.js","sourceRoot":"","sources":["../../../src/errors/elasticsearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,YAAY,GAAG;IACjB,eAAe,EAAE;QACb,KAAK,EAAE,0BAA0B;QACjC,KAAK,EAAE,UAAU,CAAC,eAAe;KACpC;IACD,gBAAgB,EAAE;QACd,KAAK,EAAE,gCAAgC;QACvC,KAAK,EAAE,UAAU,CAAC,SAAS;KAC9B;CACJ,CAAC;AAEF,MAAM,UAAU,GAAG;IACf,SAAS,EAAE;QACP,KAAK,EAAE,4BAA4B;QACnC,KAAK,EAAE,UAAU,CAAC,SAAS;KAC9B;IACD,KAAK,EAAE;QACH,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,UAAU,CAAC,KAAK;KAC1B;IACD,YAAY,EAAE;QACV,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;KAC1B;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { ValidatorResponse } from '../constants/interfaces';
2
- export declare function engineErrors(messages: Array<string>, regexs: Array<object>): ValidatorResponse;
@@ -1,21 +0,0 @@
1
- import { ERROR_LIST, ERROR_DICTIONARY } from '../constants';
2
- export function engineErrors(messages, regexs) {
3
- const loopParams = (obj, str) => {
4
- for (const key in obj) {
5
- const regex = new RegExp(obj[key].regex, 'g');
6
- if (regex.test(str)) {
7
- return obj[key].value;
8
- }
9
- }
10
- };
11
- let value;
12
- messages.forEach((message) => {
13
- regexs.forEach((regex) => {
14
- value = loopParams(regex, message);
15
- });
16
- });
17
- if (!value)
18
- value = ERROR_LIST.unknown;
19
- return Object.assign({ valid: false }, ERROR_DICTIONARY[value]);
20
- }
21
- //# sourceMappingURL=engineErrors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"engineErrors.js","sourceRoot":"","sources":["../../../src/errors/engineErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAG5D,MAAM,UAAU,YAAY,CACxB,QAAuB,EACvB,MAAqB;IAErB,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,GAAW,EAAE,EAAE;QACzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;YACnB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACjB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;aACzB;SACJ;IACL,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC;IACV,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACzB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;IACvC,uBAAS,KAAK,EAAE,KAAK,IAAK,gBAAgB,CAAC,KAAK,CAAC,EAAG;AACxD,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './definitions';
2
- export * from './engineErrors';
@@ -1,5 +0,0 @@
1
- export * from './definitions';
2
- //export * from './elasticsearch';
3
- export * from './engineErrors';
4
- //export * from './snowflake';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,kCAAkC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,8BAA8B"}
@@ -1,15 +0,0 @@
1
- import { ERROR_LIST } from '../constants';
2
- export declare const errorRegex: {
3
- missingArguments: {
4
- regex: RegExp;
5
- value: ERROR_LIST;
6
- };
7
- floatingPoint: {
8
- regex: RegExp;
9
- value: ERROR_LIST;
10
- };
11
- unknownFunction: {
12
- regex: RegExp;
13
- value: ERROR_LIST;
14
- };
15
- }[];
@@ -1,17 +0,0 @@
1
- import { ERROR_LIST } from '../constants';
2
- const reasonsRegex = {
3
- missingArguments: {
4
- regex: /not enough arguments for function/,
5
- value: ERROR_LIST.arguments,
6
- },
7
- floatingPoint: {
8
- regex: /Invalid floating point operation/,
9
- value: ERROR_LIST.floatingPoint,
10
- },
11
- unknownFunction: {
12
- regex: /Unknown function/,
13
- value: ERROR_LIST.unknownFunction,
14
- },
15
- };
16
- export const errorRegex = [reasonsRegex];
17
- //# sourceMappingURL=snowflake.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snowflake.js","sourceRoot":"","sources":["../../../src/errors/snowflake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,YAAY,GAAG;IACjB,gBAAgB,EAAE;QACd,KAAK,EAAE,mCAAmC;QAC1C,KAAK,EAAE,UAAU,CAAC,SAAS;KAC9B;IACD,aAAa,EAAE;QACX,KAAK,EAAE,kCAAkC;QACzC,KAAK,EAAE,UAAU,CAAC,aAAa;KAClC;IACD,eAAe,EAAE;QACb,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,UAAU,CAAC,eAAe;KACpC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { FunctionDefinition } from '../constants/interfaces';
2
- /**
3
- * `ABS` Returns the absolute value of a number.
4
- */
5
- export declare const ABS: FunctionDefinition;
@@ -1,35 +0,0 @@
1
- import { isNumberParam } from '../utils';
2
- /**
3
- * `ABS` Returns the absolute value of a number.
4
- */
5
- export const ABS = {
6
- identifier: 'ABS',
7
- name: 'ABS',
8
- parameters: [
9
- {
10
- identifier: 'VALUE',
11
- name: 'value',
12
- type: 'Number',
13
- optional: false,
14
- validator: [isNumberParam],
15
- },
16
- ],
17
- transpiler: {
18
- elasticsearch,
19
- snowflake,
20
- redshift,
21
- },
22
- };
23
- function elasticsearch(value) {
24
- return `Math.abs(${value})`;
25
- }
26
- function SQL(value) {
27
- return `ABS(${value})`;
28
- }
29
- function snowflake(value) {
30
- return SQL(value);
31
- }
32
- function redshift(value) {
33
- return SQL(value);
34
- }
35
- //# sourceMappingURL=abs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abs.js","sourceRoot":"","sources":["../../../src/functions/abs.ts"],"names":[],"mappings":"AACA,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,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;CACJ,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"}
@@ -1,5 +0,0 @@
1
- import { FunctionDefinition } from '../constants/interfaces';
2
- /**
3
- * Returns the number of the DATEDIF in a Date.
4
- */
5
- export declare const DATEDIF: FunctionDefinition;
@@ -1,58 +0,0 @@
1
- import { ERROR_LIST, ERROR_DICTIONARY } from '../constants';
2
- import { dateDif as ESdateDif } from '../utils/elasticsearch/scripts';
3
- import { dateDif as SQLdateDif } from '../utils/sql/scripts';
4
- import { isDateParam, isStringParam } from '../utils';
5
- /**
6
- * Returns the number of the DATEDIF in a Date.
7
- */
8
- export const DATEDIF = {
9
- identifier: 'DATEDIF',
10
- name: 'DATEDIF',
11
- parameters: [
12
- {
13
- identifier: 'START_DATE',
14
- name: 'start_date',
15
- type: 'Date',
16
- optional: false,
17
- validator: [isDateParam],
18
- },
19
- {
20
- identifier: 'END_DATE',
21
- name: 'end_date',
22
- type: 'Date',
23
- optional: false,
24
- validator: [isDateParam],
25
- },
26
- {
27
- identifier: 'UNIT',
28
- name: 'unit',
29
- type: 'String',
30
- optional: false,
31
- validator: [isStringParam, customValidatorYMD],
32
- },
33
- ],
34
- transpiler: {
35
- elasticsearch,
36
- snowflake,
37
- redshift,
38
- },
39
- };
40
- function customValidatorYMD(param) {
41
- const valid = ['Y', 'M', 'D'].includes(param);
42
- if (!valid)
43
- return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.customDateDifParams]);
44
- return { valid };
45
- }
46
- function elasticsearch(start, end, unit) {
47
- return ESdateDif(start, end, unit);
48
- }
49
- function SQL(start, end, unit) {
50
- return SQLdateDif(start, end, unit);
51
- }
52
- function snowflake(start, end, unit) {
53
- return SQL(start, end, unit);
54
- }
55
- function redshift(start, end, unit) {
56
- return SQL(start, end, unit);
57
- }
58
- //# sourceMappingURL=datedif.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datedif.js","sourceRoot":"","sources":["../../../src/functions/datedif.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtD;;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,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;QACD;YACI,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;SACjD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;CACJ,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAU;IAClC,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,OAAO,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,IAAsB;IAC3D,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"}
@@ -1,5 +0,0 @@
1
- import { FunctionDefinition } from '../constants/interfaces';
2
- /**
3
- * Returns the number of the DAY in a Date.
4
- */
5
- export declare const DAY: FunctionDefinition;
@@ -1,36 +0,0 @@
1
- import { dayScript } from '../utils/elasticsearch/scripts';
2
- import { isDateParam } from '../utils';
3
- /**
4
- * Returns the number of the DAY in a Date.
5
- */
6
- export const DAY = {
7
- identifier: 'DAY',
8
- name: 'DAY',
9
- parameters: [
10
- {
11
- identifier: 'DATE',
12
- name: 'date',
13
- type: 'Date',
14
- optional: false,
15
- validator: [isDateParam],
16
- },
17
- ],
18
- transpiler: {
19
- elasticsearch,
20
- snowflake,
21
- redshift,
22
- },
23
- };
24
- function elasticsearch(value) {
25
- return dayScript(value);
26
- }
27
- function SQL(value) {
28
- return `DATE_PART('day', ${value})`;
29
- }
30
- function snowflake(value) {
31
- return SQL(value);
32
- }
33
- function redshift(value) {
34
- return SQL(value);
35
- }
36
- //# sourceMappingURL=day.js.map
@@ -1 +0,0 @@
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;AAEvC;;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,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;CACJ,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"}
@@ -1,5 +0,0 @@
1
- import { FunctionDefinition } from '../constants/interfaces';
2
- /**
3
- * Returns the number of the HOUR in a Date.
4
- */
5
- export declare const HOUR: FunctionDefinition;
@@ -1,36 +0,0 @@
1
- import { hourScript } from '../utils/elasticsearch/scripts';
2
- import { isDateParam } from '../utils';
3
- /**
4
- * Returns the number of the HOUR in a Date.
5
- */
6
- export const HOUR = {
7
- identifier: 'HOUR',
8
- name: 'HOUR',
9
- parameters: [
10
- {
11
- identifier: 'DATE',
12
- name: 'date',
13
- type: 'Date',
14
- optional: false,
15
- validator: [isDateParam],
16
- },
17
- ],
18
- transpiler: {
19
- elasticsearch,
20
- snowflake,
21
- redshift,
22
- },
23
- };
24
- function elasticsearch(value) {
25
- return hourScript(value);
26
- }
27
- function SQL(value) {
28
- return `DATE_PART('hour', ${value})`;
29
- }
30
- function snowflake(value) {
31
- return SQL(value);
32
- }
33
- function redshift(value) {
34
- return SQL(value);
35
- }
36
- //# sourceMappingURL=hour.js.map
@@ -1 +0,0 @@
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;AAEvC;;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,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;CACJ,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"}
@@ -1,5 +0,0 @@
1
- import { FunctionDefinition } from '../constants/interfaces';
2
- /**
3
- * `IF` Returns one value if a logical expression is TRUE and another if it is FALSE.
4
- */
5
- export declare const IF: FunctionDefinition;
@@ -1,49 +0,0 @@
1
- /**
2
- * `IF` Returns one value if a logical expression is TRUE and another if it is FALSE.
3
- */
4
- export const IF = {
5
- identifier: 'IF',
6
- name: 'IF',
7
- parameters: [
8
- {
9
- identifier: 'LOGICAL_EXPRESSION',
10
- name: 'logical_expression',
11
- type: 'BinaryExpression',
12
- optional: false,
13
- validator: [],
14
- },
15
- {
16
- identifier: 'VALUE_IF_TRUE',
17
- name: 'VALUE_IF_TRUE',
18
- type: 'Literal',
19
- optional: false,
20
- validator: [],
21
- },
22
- {
23
- identifier: 'VALUE_IF_FALSE',
24
- name: 'VALUE_IF_FALSE',
25
- type: 'Literal',
26
- optional: true,
27
- validator: [],
28
- },
29
- ],
30
- transpiler: {
31
- elasticsearch,
32
- snowflake,
33
- redshift,
34
- },
35
- };
36
- function elasticsearch(logicalExpression, valueIfTrue, valueIfFalse) {
37
- return `(${logicalExpression} ? ${valueIfTrue} : ${valueIfFalse !== null && valueIfFalse !== void 0 ? valueIfFalse : 'false'})`;
38
- }
39
- function snowflake(logicalExpression, valueIfTrue, valueIfFalse) {
40
- return `IFF(${logicalExpression}, ${valueIfTrue}, ${valueIfFalse !== null && valueIfFalse !== void 0 ? valueIfFalse : 'FALSE'})`;
41
- }
42
- function redshift(logicalExpression, valueIfTrue, valueIfFalse) {
43
- return `
44
- (CASE
45
- WHEN ${logicalExpression} THEN ${valueIfTrue}
46
- ELSE ${valueIfFalse !== null && valueIfFalse !== void 0 ? valueIfFalse : 'FALSE'}
47
- END)`.trim();
48
- }
49
- //# sourceMappingURL=if.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"AAEA;;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,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;SAChB;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;SAChB;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;SAChB;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;CACJ,CAAC;AAEF,SAAS,aAAa,CAClB,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,IAAI,iBAAiB,MAAM,WAAW,MACzC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,OACpB,GAAG,CAAC;AACR,CAAC;AAED,SAAS,SAAS,CACd,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,OAAO,iBAAiB,KAAK,WAAW,KAC3C,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,OACpB,GAAG,CAAC;AACR,CAAC;AAED,SAAS,QAAQ,CACb,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO;;WAEA,iBAAiB,SAAS,WAAW;WACrC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,OAAO;KAC7B,CAAC,IAAI,EAAE,CAAC;AACb,CAAC"}
@@ -1,5 +0,0 @@
1
- import { FunctionDefinition } from '../constants/interfaces';
2
- /**
3
- * `IF` Returns one value if a logical expression is TRUE and another if it is FALSE.
4
- */
5
- export declare const IFS: FunctionDefinition;
@@ -1,71 +0,0 @@
1
- /**
2
- * `IF` Returns one value if a logical expression is TRUE and another if it is FALSE.
3
- */
4
- export const IFS = {
5
- identifier: 'IFS',
6
- name: 'IFS',
7
- recursiveStartIn: 0,
8
- parameters: [
9
- {
10
- identifier: 'LOGICAL_EXPRESSION',
11
- name: 'logical_expression',
12
- type: 'BinaryExpression',
13
- optional: false,
14
- validator: [],
15
- },
16
- {
17
- identifier: 'VALUE_IF_TRUE',
18
- name: 'VALUE_IF_TRUE',
19
- type: 'Literal',
20
- optional: false,
21
- validator: [],
22
- },
23
- ],
24
- transpiler: {
25
- elasticsearch,
26
- snowflake,
27
- redshift,
28
- },
29
- };
30
- function elasticsearch(...args) {
31
- const _args = [...args];
32
- const logicalExpression = _args.shift();
33
- const valueIfTrue = _args.shift();
34
- if (_args.length === 0) {
35
- return `(${logicalExpression} ? ${valueIfTrue} : null)`;
36
- }
37
- else {
38
- return `(${logicalExpression} ? ${valueIfTrue} : ${elasticsearch(..._args)})`;
39
- }
40
- }
41
- function snowflake(...args) {
42
- const _args = [...args];
43
- const logicalExpression = _args.shift();
44
- const valueIfTrue = _args.shift();
45
- if (_args.length === 0) {
46
- return `IFF(${logicalExpression}, ${valueIfTrue}, NULL)`;
47
- }
48
- else {
49
- return `IFF(${logicalExpression}, ${valueIfTrue}, ${snowflake(..._args)})`;
50
- }
51
- }
52
- function redshift(...args) {
53
- const _args = [...args];
54
- const logicalExpression = _args.shift();
55
- const valueIfTrue = _args.shift();
56
- if (_args.length === 0) {
57
- return `
58
- (CASE
59
- WHEN ${logicalExpression} THEN ${valueIfTrue}
60
- ELSE NULL
61
- END)`.trim();
62
- }
63
- else {
64
- return `
65
- (CASE
66
- WHEN ${logicalExpression} THEN ${valueIfTrue}
67
- ELSE ${redshift(..._args)}
68
- END)`.trim();
69
- }
70
- }
71
- //# sourceMappingURL=ifs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"AAEA;;GAEG;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,IAAI,EAAE,kBAAkB;YACxB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;SAChB;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE;SAChB;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;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,QAAQ,CAAC,GAAG,IAAW;IAC5B,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,QAAQ,CAAC,GAAG,KAAK,CAAC;aACxB,CAAC,IAAI,EAAE,CAAC;KAChB;AACL,CAAC"}
@@ -1,4 +0,0 @@
1
- import { FunctionDefinition, FunctionList } from '../constants/interfaces';
2
- export declare const functionList: FunctionList;
3
- export declare const FUNCTION_LIST: string[];
4
- export declare function getFunctionDetail(functionName: string): FunctionDefinition | undefined;
@@ -1,29 +0,0 @@
1
- import { MID } from './mid';
2
- import { ABS } from './abs';
3
- import { DATEDIF } from './datedif';
4
- import { DAY } from './day';
5
- import { MONTH } from './month';
6
- import { YEAR } from './year';
7
- import { HOUR } from './hour';
8
- import { MINUTE } from './minute';
9
- import { SECOND } from './second';
10
- import { IF } from './if';
11
- import { IFS } from './ifs';
12
- export const functionList = {
13
- MID,
14
- ABS,
15
- DATEDIF,
16
- DAY,
17
- MONTH,
18
- YEAR,
19
- HOUR,
20
- MINUTE,
21
- SECOND,
22
- IF,
23
- IFS,
24
- };
25
- export const FUNCTION_LIST = Object.keys(functionList);
26
- export function getFunctionDetail(functionName) {
27
- return functionList[functionName];
28
- }
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,CAAC,MAAM,YAAY,GAAiB;IACtC,GAAG;IACH,GAAG;IACH,OAAO;IACP,GAAG;IACH,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,EAAE;IACF,GAAG;CACN,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEvD,MAAM,UAAU,iBAAiB,CAC7B,YAAoB;IAEpB,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { FunctionDefinition } from '../constants/interfaces';
2
- /**
3
- * `MID` Returns a segment of a string.
4
- */
5
- export declare const MID: FunctionDefinition;
@@ -1,51 +0,0 @@
1
- import { isNumberParam, isPositiveNumberParam, isStringParam } from '../utils';
2
- /**
3
- * `MID` Returns a segment of a string.
4
- */
5
- export const MID = {
6
- identifier: 'MID',
7
- name: 'MID',
8
- parameters: [
9
- {
10
- identifier: 'CURRENT',
11
- name: 'current',
12
- type: 'String',
13
- optional: false,
14
- validator: [isStringParam],
15
- },
16
- {
17
- identifier: 'STARTING_AT',
18
- name: 'starting_at',
19
- type: 'Number',
20
- optional: false,
21
- validator: [isPositiveNumberParam],
22
- },
23
- {
24
- identifier: 'EXTRACT_LENGTH',
25
- name: 'extract_length',
26
- type: 'Number',
27
- optional: true,
28
- validator: [isNumberParam],
29
- },
30
- ],
31
- transpiler: {
32
- elasticsearch,
33
- snowflake,
34
- redshift,
35
- },
36
- };
37
- function elasticsearch(current, start, length) {
38
- const optional = length ? `, ${length}` : '';
39
- return `${current}.substring(${start}${optional})`;
40
- }
41
- function SQL(current, start, length) {
42
- const optional = length ? `, ${length}` : '';
43
- return `SUBSTRING(${current}, ${start}${optional})`;
44
- }
45
- function snowflake(current, start, length) {
46
- return SQL(current, start, length);
47
- }
48
- function redshift(current, start, length) {
49
- return SQL(current, start, length);
50
- }
51
- //# sourceMappingURL=mid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,qBAAqB,CAAC;SACrC;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;KACX;CACJ,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,OAAO,cAAc,KAAK,GAAG,QAAQ,GAAG,CAAC;AACvD,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"}