@qrvey/formula-lang 0.7.0 → 0.8.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 (118) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/constants/index.d.ts +12 -0
  3. package/dist/cjs/constants/index.js +14 -1
  4. package/dist/cjs/constants/index.js.map +1 -1
  5. package/dist/cjs/constants/interfaces.d.ts +18 -5
  6. package/dist/cjs/errors/analyzer/elasticsearch.js +13 -3
  7. package/dist/cjs/errors/analyzer/elasticsearch.js.map +1 -1
  8. package/dist/cjs/errors/analyzer/index.js +2 -1
  9. package/dist/cjs/errors/analyzer/index.js.map +1 -1
  10. package/dist/cjs/errors/dictionary.d.ts +2 -1
  11. package/dist/cjs/errors/dictionary.js +5 -0
  12. package/dist/cjs/errors/dictionary.js.map +1 -1
  13. package/dist/cjs/functions/abs.js +3 -1
  14. package/dist/cjs/functions/abs.js.map +1 -1
  15. package/dist/cjs/functions/datedif.js +5 -3
  16. package/dist/cjs/functions/datedif.js.map +1 -1
  17. package/dist/cjs/functions/day.js +3 -1
  18. package/dist/cjs/functions/day.js.map +1 -1
  19. package/dist/cjs/functions/hour.js +3 -1
  20. package/dist/cjs/functions/hour.js.map +1 -1
  21. package/dist/cjs/functions/if.js +8 -0
  22. package/dist/cjs/functions/if.js.map +1 -1
  23. package/dist/cjs/functions/ifs.js +10 -0
  24. package/dist/cjs/functions/ifs.js.map +1 -1
  25. package/dist/cjs/functions/mid.js +5 -3
  26. package/dist/cjs/functions/mid.js.map +1 -1
  27. package/dist/cjs/functions/minute.js +3 -1
  28. package/dist/cjs/functions/minute.js.map +1 -1
  29. package/dist/cjs/functions/month.js +3 -1
  30. package/dist/cjs/functions/month.js.map +1 -1
  31. package/dist/cjs/functions/second.js +3 -1
  32. package/dist/cjs/functions/second.js.map +1 -1
  33. package/dist/cjs/functions/year.js +3 -1
  34. package/dist/cjs/functions/year.js.map +1 -1
  35. package/dist/cjs/grammar/generated/qformula.lang.js +10 -10
  36. package/dist/cjs/grammar/generated/qformula.lang.js.map +1 -1
  37. package/dist/cjs/index.d.ts +1 -1
  38. package/dist/cjs/index.js +2 -1
  39. package/dist/cjs/index.js.map +1 -1
  40. package/dist/cjs/parser/json-parser.js +65 -37
  41. package/dist/cjs/parser/json-parser.js.map +1 -1
  42. package/dist/cjs/parser/syntax-errors.js +1 -0
  43. package/dist/cjs/parser/syntax-errors.js.map +1 -1
  44. package/dist/cjs/transpiler/columnTranspilation.js +1 -1
  45. package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
  46. package/dist/cjs/transpiler/index.js +15 -8
  47. package/dist/cjs/transpiler/index.js.map +1 -1
  48. package/dist/cjs/utils/isDateParam.d.ts +2 -1
  49. package/dist/cjs/utils/isDateParam.js +2 -1
  50. package/dist/cjs/utils/isDateParam.js.map +1 -1
  51. package/dist/cjs/utils/isNumberParam.d.ts +2 -1
  52. package/dist/cjs/utils/isNumberParam.js +3 -1
  53. package/dist/cjs/utils/isNumberParam.js.map +1 -1
  54. package/dist/cjs/utils/isStringParam.d.ts +2 -1
  55. package/dist/cjs/utils/isStringParam.js +3 -2
  56. package/dist/cjs/utils/isStringParam.js.map +1 -1
  57. package/dist/cjs/utils/primitiveFunctions.d.ts +5 -0
  58. package/dist/cjs/utils/primitiveFunctions.js +39 -0
  59. package/dist/cjs/utils/primitiveFunctions.js.map +1 -0
  60. package/dist/module/constants/index.d.ts +12 -0
  61. package/dist/module/constants/index.js +13 -0
  62. package/dist/module/constants/index.js.map +1 -1
  63. package/dist/module/constants/interfaces.d.ts +18 -5
  64. package/dist/module/errors/analyzer/elasticsearch.js +13 -3
  65. package/dist/module/errors/analyzer/elasticsearch.js.map +1 -1
  66. package/dist/module/errors/analyzer/index.js +2 -1
  67. package/dist/module/errors/analyzer/index.js.map +1 -1
  68. package/dist/module/errors/dictionary.d.ts +2 -1
  69. package/dist/module/errors/dictionary.js +5 -0
  70. package/dist/module/errors/dictionary.js.map +1 -1
  71. package/dist/module/functions/abs.js +3 -1
  72. package/dist/module/functions/abs.js.map +1 -1
  73. package/dist/module/functions/datedif.js +5 -3
  74. package/dist/module/functions/datedif.js.map +1 -1
  75. package/dist/module/functions/day.js +3 -1
  76. package/dist/module/functions/day.js.map +1 -1
  77. package/dist/module/functions/hour.js +3 -1
  78. package/dist/module/functions/hour.js.map +1 -1
  79. package/dist/module/functions/if.js +8 -0
  80. package/dist/module/functions/if.js.map +1 -1
  81. package/dist/module/functions/ifs.js +10 -0
  82. package/dist/module/functions/ifs.js.map +1 -1
  83. package/dist/module/functions/mid.js +5 -3
  84. package/dist/module/functions/mid.js.map +1 -1
  85. package/dist/module/functions/minute.js +3 -1
  86. package/dist/module/functions/minute.js.map +1 -1
  87. package/dist/module/functions/month.js +3 -1
  88. package/dist/module/functions/month.js.map +1 -1
  89. package/dist/module/functions/second.js +3 -1
  90. package/dist/module/functions/second.js.map +1 -1
  91. package/dist/module/functions/year.js +3 -1
  92. package/dist/module/functions/year.js.map +1 -1
  93. package/dist/module/grammar/generated/qformula.lang.js +10 -10
  94. package/dist/module/grammar/generated/qformula.lang.js.map +1 -1
  95. package/dist/module/index.d.ts +1 -1
  96. package/dist/module/index.js +1 -1
  97. package/dist/module/index.js.map +1 -1
  98. package/dist/module/parser/json-parser.js +68 -40
  99. package/dist/module/parser/json-parser.js.map +1 -1
  100. package/dist/module/parser/syntax-errors.js +2 -1
  101. package/dist/module/parser/syntax-errors.js.map +1 -1
  102. package/dist/module/transpiler/columnTranspilation.js +2 -2
  103. package/dist/module/transpiler/columnTranspilation.js.map +1 -1
  104. package/dist/module/transpiler/index.js +16 -9
  105. package/dist/module/transpiler/index.js.map +1 -1
  106. package/dist/module/utils/isDateParam.d.ts +2 -1
  107. package/dist/module/utils/isDateParam.js +2 -1
  108. package/dist/module/utils/isDateParam.js.map +1 -1
  109. package/dist/module/utils/isNumberParam.d.ts +2 -1
  110. package/dist/module/utils/isNumberParam.js +3 -1
  111. package/dist/module/utils/isNumberParam.js.map +1 -1
  112. package/dist/module/utils/isStringParam.d.ts +2 -1
  113. package/dist/module/utils/isStringParam.js +3 -2
  114. package/dist/module/utils/isStringParam.js.map +1 -1
  115. package/dist/module/utils/primitiveFunctions.d.ts +5 -0
  116. package/dist/module/utils/primitiveFunctions.js +33 -0
  117. package/dist/module/utils/primitiveFunctions.js.map +1 -0
  118. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"isDateParam.js","sourceRoot":"","sources":["../../../src/utils/isDateParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,UAAU,WAAW,CACvB,MAAW,EACX,QAA4B;IAE5B,MAAM,KAAK,GAAG,QAAQ,KAAK,MAAM,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAG;IAC1E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"isDateParam.js","sourceRoot":"","sources":["../../../src/utils/isDateParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,UAAU,WAAW,CACvB,MAAW,EACX,QAA+B;IAE/B,MAAM,KAAK,GAAG,QAAQ,KAAK,cAAc,CAAC,IAAI,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAG;IAC1E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { ValidatorResponse } from '../constants/interfaces';
2
- export declare function isNumberParam(param: any, dataType: string | undefined): ValidatorResponse;
2
+ import { Primitive } from '../constants';
3
+ export declare function isNumberParam(param: any, dataType: Primitive | undefined): ValidatorResponse;
@@ -1,6 +1,8 @@
1
1
  import { ERROR_LIST, ERROR_DICTIONARY } from '../errors/dictionary';
2
+ import { AST_PRIMITIVES } from '../constants';
2
3
  export function isNumberParam(param, dataType) {
3
- const valid = typeof param === 'number' || dataType === 'number';
4
+ const valid = typeof param === AST_PRIMITIVES.NUMBER ||
5
+ dataType === AST_PRIMITIVES.NUMBER;
4
6
  if (!valid)
5
7
  return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.missingNumber]);
6
8
  return { valid };
@@ -1 +1 @@
1
- {"version":3,"file":"isNumberParam.js","sourceRoot":"","sources":["../../../src/utils/isNumberParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA4B;IAE5B,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC;IACjE,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAG;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"isNumberParam.js","sourceRoot":"","sources":["../../../src/utils/isNumberParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,OAAO,KAAK,KAAK,cAAc,CAAC,MAAM;QACtC,QAAQ,KAAK,cAAc,CAAC,MAAM,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAG;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { ValidatorResponse } from '../constants/interfaces';
2
- export declare function isStringParam(param: any, dataType: string | undefined): ValidatorResponse;
2
+ import { Primitive } from '../constants';
3
+ export declare function isStringParam(param: any, dataType: Primitive | undefined): ValidatorResponse;
@@ -1,7 +1,8 @@
1
1
  import { ERROR_LIST, ERROR_DICTIONARY } from '../errors/dictionary';
2
+ import { AST_PRIMITIVES } from '../constants';
2
3
  export function isStringParam(param, dataType) {
3
- const valid = dataType === 'string' ||
4
- (dataType === undefined && typeof param === 'string');
4
+ const valid = dataType === AST_PRIMITIVES.STRING ||
5
+ (dataType === undefined && typeof param === AST_PRIMITIVES.STRING);
5
6
  if (!valid)
6
7
  return Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.missingString]);
7
8
  return { valid };
@@ -1 +1 @@
1
- {"version":3,"file":"isStringParam.js","sourceRoot":"","sources":["../../../src/utils/isStringParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA4B;IAE5B,MAAM,KAAK,GACP,QAAQ,KAAK,QAAQ;QACrB,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAG;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"isStringParam.js","sourceRoot":"","sources":["../../../src/utils/isStringParam.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,UAAU,aAAa,CACzB,KAAU,EACV,QAA+B;IAE/B,MAAM,KAAK,GACP,QAAQ,KAAK,cAAc,CAAC,MAAM;QAClC,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK;QAAE,uBAAS,KAAK,IAAK,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAG;IAC5E,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { AST_PRIMITIVES, Primitive } from '../constants';
2
+ import { CommonAST, FunctionDefinition } from '../constants/interfaces';
3
+ export declare function primitiveIsIncluded(primitive: Primitive, ...allowedPrimitives: AST_PRIMITIVES[]): boolean;
4
+ export declare function getFunctionPrimitive(definition: FunctionDefinition, args: CommonAST[]): Primitive;
5
+ export declare function inferPrimitive(...primitives: Primitive[]): Primitive;
@@ -0,0 +1,33 @@
1
+ import { AST_PRIMITIVES } from '../constants';
2
+ export function primitiveIsIncluded(primitive, ...allowedPrimitives) {
3
+ const primitives = Array.isArray(primitive) ? primitive : [primitive];
4
+ return primitives.some((pr) => allowedPrimitives.includes(pr));
5
+ }
6
+ export function getFunctionPrimitive(definition, args) {
7
+ if (typeof definition.primitiveResult !== 'function')
8
+ return definition.primitiveResult;
9
+ return definition.primitiveResult.apply(definition, [args]);
10
+ }
11
+ function flatPrimitives(...primitives) {
12
+ const resultPrimitives = [];
13
+ if (!primitives)
14
+ return resultPrimitives;
15
+ primitives.forEach((pr) => {
16
+ const pushElements = Array.isArray(pr) ? pr : [pr];
17
+ pushElements.forEach((pe) => {
18
+ const existInResult = resultPrimitives.includes(pe);
19
+ if (!existInResult)
20
+ resultPrimitives.push(pe);
21
+ });
22
+ });
23
+ return resultPrimitives;
24
+ }
25
+ export function inferPrimitive(...primitives) {
26
+ const flattedPrimitives = flatPrimitives(...primitives);
27
+ if (flattedPrimitives.length === 0)
28
+ return AST_PRIMITIVES.UNKNOWN;
29
+ return flattedPrimitives.length === 1
30
+ ? flattedPrimitives[0]
31
+ : flattedPrimitives;
32
+ }
33
+ //# sourceMappingURL=primitiveFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitiveFunctions.js","sourceRoot":"","sources":["../../../src/utils/primitiveFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAGzD,MAAM,UAAU,mBAAmB,CAC/B,SAAoB,EACpB,GAAG,iBAAmC;IAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,UAA8B,EAC9B,IAAiB;IAEjB,IAAI,OAAO,UAAU,CAAC,eAAe,KAAK,UAAU;QAChD,OAAO,UAAU,CAAC,eAAe,CAAC;IAEtC,OAAO,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,GAAG,UAAuB;IAC9C,MAAM,gBAAgB,GAAqB,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO,gBAAgB,CAAC;IACzC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACxB,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa;gBAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAG,UAAuB;IACrD,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC;IACxD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IAClE,OAAO,iBAAiB,CAAC,MAAM,KAAK,CAAC;QACjC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtB,CAAC,CAAC,iBAAiB,CAAC;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/formula-lang",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "QFormula support for qrvey projects",
5
5
  "types": "dist/module/index.d.ts",
6
6
  "main": "dist/module/index.js",
@@ -21,6 +21,7 @@
21
21
  "debug:local": "npm-run-all --parallel build:watch debug:watch debug:serve",
22
22
  "debug:copy-index": "mkdir -p dist && cp src/index.html dist/",
23
23
  "prepublishOnly": "npm run build",
24
+ "publish:internal": "npm publish --tag internal",
24
25
  "start": "npm run debug:copy-index && npm run debug:bundle && npm run debug:local",
25
26
  "cm": "cz",
26
27
  "prepare-lang": "rollup -c --bundleConfigAsCjs",