@sisense/sdk-data 2.18.1 → 2.20.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 (36) hide show
  1. package/dist/cjs/dimensional-model/attributes.js +5 -2
  2. package/dist/cjs/dimensional-model/base.d.ts +29 -0
  3. package/dist/cjs/dimensional-model/base.js +39 -1
  4. package/dist/cjs/dimensional-model/dimensions/dimensions.js +2 -1
  5. package/dist/cjs/dimensional-model/filters/filter-relations.js +3 -1
  6. package/dist/cjs/dimensional-model/filters/utils/condition-filter-util.js +2 -0
  7. package/dist/cjs/dimensional-model/filters/utils/filter-from-jaql-util.js +2 -0
  8. package/dist/cjs/dimensional-model/measures/factory.d.ts +3 -1
  9. package/dist/cjs/dimensional-model/measures/factory.js +4 -2
  10. package/dist/cjs/dimensional-model/measures/measures.js +9 -5
  11. package/dist/cjs/dimensional-model/types.d.ts +1 -0
  12. package/dist/cjs/translation/resources/en.d.ts +1 -2
  13. package/dist/cjs/translation/resources/en.js +8 -9
  14. package/dist/cjs/translation/resources/index.d.ts +2 -4
  15. package/dist/cjs/translation/resources/uk.js +7 -8
  16. package/dist/cjs/utils.d.ts +11 -0
  17. package/dist/cjs/utils.js +28 -2
  18. package/dist/dimensional-model/attributes.js +6 -3
  19. package/dist/dimensional-model/base.d.ts +29 -0
  20. package/dist/dimensional-model/base.js +36 -0
  21. package/dist/dimensional-model/dimensions/dimensions.js +4 -3
  22. package/dist/dimensional-model/filters/filter-relations.js +3 -1
  23. package/dist/dimensional-model/filters/utils/condition-filter-util.js +2 -0
  24. package/dist/dimensional-model/filters/utils/filter-from-jaql-util.js +2 -0
  25. package/dist/dimensional-model/measures/factory.d.ts +3 -1
  26. package/dist/dimensional-model/measures/factory.js +4 -2
  27. package/dist/dimensional-model/measures/measures.js +9 -5
  28. package/dist/dimensional-model/types.d.ts +1 -0
  29. package/dist/translation/resources/en.d.ts +1 -2
  30. package/dist/translation/resources/en.js +8 -9
  31. package/dist/translation/resources/index.d.ts +2 -4
  32. package/dist/translation/resources/uk.js +7 -8
  33. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
  34. package/dist/utils.d.ts +11 -0
  35. package/dist/utils.js +26 -1
  36. package/package.json +2 -2
package/dist/utils.d.ts CHANGED
@@ -184,3 +184,14 @@ export declare function createDimensionalElementFromJaql(jaql: Jaql, datetimeFor
184
184
  * @internal
185
185
  */
186
186
  export declare function getGranularityFromJaql(jaql: BaseJaql | FilterJaql | FilterJaqlInternal | RankingFilterJaql | MetadataItemJaql): string | undefined;
187
+ /**
188
+ * Translates Fusion FormulaJaql structures to CSDK CalculatedMeasure array.
189
+ *
190
+ * This is a pure Node.js function that converts Fusion structures to CSDK structures.
191
+ *
192
+ * @param formulas - Array of Fusion FormulaJaql structures
193
+ * @returns Array of CSDK CalculatedMeasure objects
194
+ * @throws Error if any formula cannot be converted (includes formula title in error message)
195
+ * @internal
196
+ */
197
+ export declare function translateSharedFormulas(formulas: FormulaJaql[]): CalculatedMeasure[];
package/dist/utils.js CHANGED
@@ -353,7 +353,7 @@ export const createCalculatedMeasureHelper = (jaql) => {
353
353
  }
354
354
  return jaqlContextValue && createDimensionalElementFromJaql(jaqlContextValue);
355
355
  });
356
- const measure = measureFactory.customFormula(jaql.title, jaql.formula, context);
356
+ const measure = measureFactory.customFormula(jaql.title, jaql.formula, context, undefined, jaql.description);
357
357
  // Apply sort if present in the JAQL
358
358
  if (jaql.sort) {
359
359
  const sortEnum = convertSort(jaql.sort);
@@ -415,3 +415,28 @@ export function getGranularityFromJaql(jaql) {
415
415
  ? DimensionalLevelAttribute.translateJaqlToGranularity(jaql)
416
416
  : undefined;
417
417
  }
418
+ /**
419
+ * Translates Fusion FormulaJaql structures to CSDK CalculatedMeasure array.
420
+ *
421
+ * This is a pure Node.js function that converts Fusion structures to CSDK structures.
422
+ *
423
+ * @param formulas - Array of Fusion FormulaJaql structures
424
+ * @returns Array of CSDK CalculatedMeasure objects
425
+ * @throws Error if any formula cannot be converted (includes formula title in error message)
426
+ * @internal
427
+ */
428
+ export function translateSharedFormulas(formulas) {
429
+ return formulas.map((formula) => {
430
+ try {
431
+ const result = createDimensionalElementFromJaql(formula);
432
+ if (!('expression' in result && 'context' in result)) {
433
+ throw new Error(`Expected CalculatedMeasure but got ${result.__serializable || 'unknown type'}`);
434
+ }
435
+ return result;
436
+ }
437
+ catch (error) {
438
+ const msg = error instanceof Error ? error.message : 'Unknown error';
439
+ throw new Error(`Failed to translate shared formula "${formula.title}": ${msg}`);
440
+ }
441
+ });
442
+ }
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "Sisense",
12
12
  "Compose SDK"
13
13
  ],
14
- "version": "2.18.1",
14
+ "version": "2.20.0",
15
15
  "type": "module",
16
16
  "main": "./dist/cjs/index.js",
17
17
  "module": "./dist/index.js",
@@ -27,7 +27,7 @@
27
27
  "author": "Sisense",
28
28
  "license": "SEE LICENSE IN LICENSE.md",
29
29
  "dependencies": {
30
- "@sisense/sdk-common": "2.18.1",
30
+ "@sisense/sdk-common": "2.20.0",
31
31
  "guid-typescript": "^1.0.9",
32
32
  "hash-it": "^6.0.0",
33
33
  "lodash-es": "^4.17.21",