@sisense/sdk-data 2.5.0 → 2.6.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 (30) hide show
  1. package/dist/cjs/dimensional-model/attributes.d.ts +17 -1
  2. package/dist/cjs/dimensional-model/attributes.js +23 -3
  3. package/dist/cjs/dimensional-model/base.d.ts +5 -1
  4. package/dist/cjs/dimensional-model/base.js +6 -2
  5. package/dist/cjs/dimensional-model/dimensions/dimensions.d.ts +17 -1
  6. package/dist/cjs/dimensional-model/dimensions/dimensions.js +24 -12
  7. package/dist/cjs/dimensional-model/filters/filters.d.ts +52 -0
  8. package/dist/cjs/dimensional-model/filters/filters.js +68 -31
  9. package/dist/cjs/dimensional-model/interfaces.d.ts +4 -0
  10. package/dist/cjs/dimensional-model/jaql-element.d.ts +9 -1
  11. package/dist/cjs/dimensional-model/jaql-element.js +12 -2
  12. package/dist/cjs/dimensional-model/measures/measures.d.ts +30 -2
  13. package/dist/cjs/dimensional-model/measures/measures.js +50 -16
  14. package/dist/cjs/dimensional-model/types.js +4 -2
  15. package/dist/dimensional-model/attributes.d.ts +17 -1
  16. package/dist/dimensional-model/attributes.js +21 -3
  17. package/dist/dimensional-model/base.d.ts +5 -1
  18. package/dist/dimensional-model/base.js +6 -2
  19. package/dist/dimensional-model/dimensions/dimensions.d.ts +17 -1
  20. package/dist/dimensional-model/dimensions/dimensions.js +22 -12
  21. package/dist/dimensional-model/filters/filters.d.ts +52 -0
  22. package/dist/dimensional-model/filters/filters.js +69 -32
  23. package/dist/dimensional-model/interfaces.d.ts +4 -0
  24. package/dist/dimensional-model/jaql-element.d.ts +9 -1
  25. package/dist/dimensional-model/jaql-element.js +10 -1
  26. package/dist/dimensional-model/measures/measures.d.ts +30 -2
  27. package/dist/dimensional-model/measures/measures.js +47 -16
  28. package/dist/dimensional-model/types.js +4 -2
  29. package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -1
  30. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  import { DimensionalElement } from './base.js';
2
2
  import { Attribute, LevelAttribute } from './interfaces.js';
3
- import { DateLevel, JaqlDataSource, JSONObject, Sort } from './types.js';
3
+ import { AnyObject, DateLevel, JaqlDataSource, JSONObject, Sort } from './types.js';
4
4
  /**
5
5
  * @internal
6
6
  */
@@ -9,6 +9,10 @@ export declare const jaqlSimpleColumnType: (datatype: string) => string;
9
9
  * @internal
10
10
  */
11
11
  export declare class DimensionalAttribute extends DimensionalElement implements Attribute {
12
+ /**
13
+ * @internal
14
+ */
15
+ readonly __serializable: string;
12
16
  readonly expression: string;
13
17
  readonly panel: string;
14
18
  protected _sort: Sort;
@@ -41,10 +45,18 @@ export declare class DimensionalAttribute extends DimensionalElement implements
41
45
  */
42
46
  serialize(): JSONObject;
43
47
  }
48
+ /**
49
+ * @internal
50
+ */
51
+ export declare const isDimensionalAttribute: (v: AnyObject) => v is DimensionalAttribute;
44
52
  /**
45
53
  * @internal
46
54
  */
47
55
  export declare class DimensionalLevelAttribute extends DimensionalAttribute implements LevelAttribute {
56
+ /**
57
+ * @internal
58
+ */
59
+ readonly __serializable: string;
48
60
  private _format;
49
61
  readonly granularity: string;
50
62
  readonly panel: string;
@@ -115,6 +127,10 @@ export declare class DimensionalLevelAttribute extends DimensionalAttribute impl
115
127
  static translateJaqlToGranularity(json: any): string;
116
128
  static getDefaultFormatForGranularity(granularity: string): string;
117
129
  }
130
+ /**
131
+ * @internal
132
+ */
133
+ export declare const isDimensionalLevelAttribute: (v: AnyObject) => v is DimensionalLevelAttribute;
118
134
  /**
119
135
  * Creates an Attribute instance from the given JSON object.
120
136
  * If the JSON object contains a granularity property, a {@link LevelAttribute} instance is created.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeAttributeName = exports.createLevel = exports.createAttribute = exports.DimensionalLevelAttribute = exports.DimensionalAttribute = exports.jaqlSimpleColumnType = void 0;
3
+ exports.normalizeAttributeName = exports.createLevel = exports.createAttribute = exports.isDimensionalLevelAttribute = exports.DimensionalLevelAttribute = exports.isDimensionalAttribute = exports.DimensionalAttribute = exports.jaqlSimpleColumnType = void 0;
4
4
  /* eslint-disable max-params */
5
5
  /* eslint-disable no-underscore-dangle */
6
6
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
@@ -23,6 +23,10 @@ exports.jaqlSimpleColumnType = jaqlSimpleColumnType;
23
23
  class DimensionalAttribute extends base_js_1.DimensionalElement {
24
24
  constructor(name, expression, type, desc, sort, dataSource, composeCode, panel) {
25
25
  super(name, type || types_js_1.MetadataTypes.Attribute, desc, dataSource, composeCode);
26
+ /**
27
+ * @internal
28
+ */
29
+ this.__serializable = 'DimensionalAttribute';
26
30
  this._sort = types_js_1.Sort.None;
27
31
  this.expression = expression;
28
32
  // if composeCode is not explicitly set by the caller, extract it from expression
@@ -85,7 +89,6 @@ class DimensionalAttribute extends base_js_1.DimensionalElement {
85
89
  */
86
90
  serialize() {
87
91
  const result = super.serialize();
88
- result.__serializable = 'DimensionalAttribute';
89
92
  result.expression = this.expression;
90
93
  if (this.getSort() !== types_js_1.Sort.None) {
91
94
  result.sort = this.getSort();
@@ -94,12 +97,23 @@ class DimensionalAttribute extends base_js_1.DimensionalElement {
94
97
  }
95
98
  }
96
99
  exports.DimensionalAttribute = DimensionalAttribute;
100
+ /**
101
+ * @internal
102
+ */
103
+ const isDimensionalAttribute = (v) => {
104
+ return Boolean(v && v.__serializable === 'DimensionalAttribute');
105
+ };
106
+ exports.isDimensionalAttribute = isDimensionalAttribute;
97
107
  /**
98
108
  * @internal
99
109
  */
100
110
  class DimensionalLevelAttribute extends DimensionalAttribute {
101
111
  constructor(name, expression, granularity, format, desc, sort, dataSource, composeCode, panel) {
102
112
  super(name, expression, types_js_1.MetadataTypes.DateLevel, desc, sort, dataSource, composeCode);
113
+ /**
114
+ * @internal
115
+ */
116
+ this.__serializable = 'DimensionalLevelAttribute';
103
117
  this._format = format;
104
118
  this.granularity = granularity;
105
119
  // if composeCode is not explicitly set by the caller, extract it from expression and granularity
@@ -172,7 +186,6 @@ class DimensionalLevelAttribute extends DimensionalAttribute {
172
186
  */
173
187
  serialize() {
174
188
  const result = super.serialize();
175
- result.__serializable = 'DimensionalLevelAttribute';
176
189
  result.granularity = this.granularity;
177
190
  if (this.getFormat() !== undefined) {
178
191
  result.format = this.getFormat();
@@ -353,6 +366,13 @@ class DimensionalLevelAttribute extends DimensionalAttribute {
353
366
  }
354
367
  }
355
368
  exports.DimensionalLevelAttribute = DimensionalLevelAttribute;
369
+ /**
370
+ * @internal
371
+ */
372
+ const isDimensionalLevelAttribute = (v) => {
373
+ return Boolean(v && v.__serializable === 'DimensionalLevelAttribute');
374
+ };
375
+ exports.isDimensionalLevelAttribute = isDimensionalLevelAttribute;
356
376
  /**
357
377
  * Creates an Attribute instance from the given JSON object.
358
378
  * If the JSON object contains a granularity property, a {@link LevelAttribute} instance is created.
@@ -4,6 +4,10 @@ import { JaqlDataSource, JSONObject } from './types.js';
4
4
  * @internal
5
5
  */
6
6
  export declare abstract class DimensionalElement implements Element {
7
+ /**
8
+ * @internal
9
+ */
10
+ readonly __serializable: string;
7
11
  /**
8
12
  * @internal
9
13
  */
@@ -52,7 +56,7 @@ export declare abstract class DimensionalElement implements Element {
52
56
  toString(): string;
53
57
  }
54
58
  /**
55
- * @param name
59
+ * @param name - The name to normalize
56
60
  * @internal
57
61
  */
58
62
  export declare function normalizeName(name: string): string;
@@ -6,6 +6,10 @@ exports.normalizeName = exports.DimensionalElement = void 0;
6
6
  */
7
7
  class DimensionalElement {
8
8
  constructor(name, type, desc, dataSource, composeCode) {
9
+ /**
10
+ * @internal
11
+ */
12
+ this.__serializable = 'DimensionalElement';
9
13
  this._name = name;
10
14
  this.type = type;
11
15
  this.description = desc || '';
@@ -41,7 +45,7 @@ class DimensionalElement {
41
45
  description: this.description,
42
46
  dataSource: this.dataSource,
43
47
  composeCode: this.composeCode,
44
- __serializable: 'DimensionalElement',
48
+ __serializable: this.__serializable,
45
49
  };
46
50
  }
47
51
  toJSON() {
@@ -56,7 +60,7 @@ class DimensionalElement {
56
60
  }
57
61
  exports.DimensionalElement = DimensionalElement;
58
62
  /**
59
- * @param name
63
+ * @param name - The name to normalize
60
64
  * @internal
61
65
  */
62
66
  function normalizeName(name) {
@@ -1,12 +1,16 @@
1
1
  import { DimensionalElement } from '../base.js';
2
2
  import { Attribute, DateDimension, Dimension, LevelAttribute } from '../interfaces.js';
3
- import { JaqlDataSource, JSONObject, Sort } from '../types.js';
3
+ import { AnyObject, JaqlDataSource, JSONObject, Sort } from '../types.js';
4
4
  /**
5
5
  * Represents a Dimension in a Dimensional Model
6
6
  *
7
7
  * @internal
8
8
  */
9
9
  export declare class DimensionalDimension extends DimensionalElement implements Dimension, Attribute {
10
+ /**
11
+ * @internal
12
+ */
13
+ readonly __serializable: string;
10
14
  static parseType(type: string): string;
11
15
  [propName: string]: any;
12
16
  defaultAttribute: Attribute | undefined;
@@ -55,12 +59,20 @@ export declare class DimensionalDimension extends DimensionalElement implements
55
59
  */
56
60
  jaql(nested?: boolean): any;
57
61
  }
62
+ /**
63
+ * @internal
64
+ */
65
+ export declare const isDimensionalDimension: (v: AnyObject) => v is DimensionalDimension;
58
66
  /**
59
67
  * Represents a Date Dimension in a Dimensional Model
60
68
  *
61
69
  * @internal
62
70
  */
63
71
  export declare class DimensionalDateDimension extends DimensionalDimension implements DateDimension {
72
+ /**
73
+ * @internal
74
+ */
75
+ readonly __serializable: string;
64
76
  constructor(name: string, expression: string, desc?: string, sort?: Sort, dataSource?: JaqlDataSource, composeCode?: string);
65
77
  /**
66
78
  * Years level
@@ -149,6 +161,10 @@ export declare class DimensionalDateDimension extends DimensionalDimension imple
149
161
  */
150
162
  jaql(nested?: boolean): any;
151
163
  }
164
+ /**
165
+ * @internal
166
+ */
167
+ export declare const isDimensionalDateDimension: (v: AnyObject) => v is DimensionalDateDimension;
152
168
  /**
153
169
  * Creates a new Dimension instance from the given JSON object.
154
170
  *
@@ -1,14 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDateDimension = exports.createDimension = exports.DimensionalDateDimension = exports.DimensionalDimension = void 0;
4
- /* eslint-disable max-params */
5
- /* eslint-disable no-underscore-dangle */
6
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
7
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
8
- /* eslint-disable @typescript-eslint/no-unsafe-return */
3
+ exports.createDateDimension = exports.createDimension = exports.isDimensionalDateDimension = exports.DimensionalDateDimension = exports.isDimensionalDimension = exports.DimensionalDimension = void 0;
9
4
  /* eslint-disable sonarjs/no-duplicate-string */
10
- /* eslint-disable @typescript-eslint/no-unsafe-call */
11
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
12
5
  const utils_js_1 = require("../../utils.js");
13
6
  const attributes_js_1 = require("../attributes.js");
14
7
  const base_js_1 = require("../base.js");
@@ -22,6 +15,10 @@ const types_js_1 = require("../types.js");
22
15
  class DimensionalDimension extends base_js_1.DimensionalElement {
23
16
  constructor(name, expression, attributes, dimensions, type, desc, sort, dataSource, composeCode, defaultAttribute) {
24
17
  super(name, type || types_js_1.MetadataTypes.Dimension, desc, dataSource, composeCode);
18
+ /**
19
+ * @internal
20
+ */
21
+ this.__serializable = 'DimensionalDimension';
25
22
  this._dimensions = [];
26
23
  this._attributes = [];
27
24
  this._sort = types_js_1.Sort.None;
@@ -129,7 +126,6 @@ class DimensionalDimension extends base_js_1.DimensionalElement {
129
126
  */
130
127
  serialize() {
131
128
  const result = super.serialize();
132
- result.__serializable = 'DimensionalDimension';
133
129
  result.expression = this.expression;
134
130
  if (this.getSort() !== undefined) {
135
131
  result.sort = this.getSort();
@@ -167,6 +163,13 @@ class DimensionalDimension extends base_js_1.DimensionalElement {
167
163
  }
168
164
  }
169
165
  exports.DimensionalDimension = DimensionalDimension;
166
+ /**
167
+ * @internal
168
+ */
169
+ const isDimensionalDimension = (v) => {
170
+ return v && v.__serializable === 'DimensionalDimension';
171
+ };
172
+ exports.isDimensionalDimension = isDimensionalDimension;
170
173
  /**
171
174
  * Represents a Date Dimension in a Dimensional Model
172
175
  *
@@ -175,6 +178,10 @@ exports.DimensionalDimension = DimensionalDimension;
175
178
  class DimensionalDateDimension extends DimensionalDimension {
176
179
  constructor(name, expression, desc, sort, dataSource, composeCode) {
177
180
  super(name, expression, [], [], types_js_1.MetadataTypes.DateDimension, desc, sort, dataSource, composeCode);
181
+ /**
182
+ * @internal
183
+ */
184
+ this.__serializable = 'DimensionalDateDimension';
178
185
  this.defaultLevel = types_js_1.DateLevels.Years;
179
186
  this.Years = new attributes_js_1.DimensionalLevelAttribute(types_js_1.DateLevels.Years, expression, types_js_1.DateLevels.Years, 'yyyy', desc, sort, dataSource);
180
187
  this.Quarters = new attributes_js_1.DimensionalLevelAttribute(types_js_1.DateLevels.Quarters, expression, types_js_1.DateLevels.Quarters, 'Q yyyy', desc, sort, dataSource);
@@ -240,9 +247,7 @@ class DimensionalDateDimension extends DimensionalDimension {
240
247
  * Gets a serializable representation of the element
241
248
  */
242
249
  serialize() {
243
- const result = super.serialize();
244
- result.__serializable = 'DimensionalDateDimension';
245
- return result;
250
+ return super.serialize();
246
251
  }
247
252
  /**
248
253
  * Gets the JAQL representation of this instance
@@ -256,6 +261,13 @@ class DimensionalDateDimension extends DimensionalDimension {
256
261
  }
257
262
  }
258
263
  exports.DimensionalDateDimension = DimensionalDateDimension;
264
+ /**
265
+ * @internal
266
+ */
267
+ const isDimensionalDateDimension = (v) => {
268
+ return v && v.__serializable === 'DimensionalDateDimension';
269
+ };
270
+ exports.isDimensionalDateDimension = isDimensionalDateDimension;
259
271
  /**
260
272
  * Creates a new Dimension instance from the given JSON object.
261
273
  *
@@ -83,6 +83,10 @@ export declare const FilterTypes: {
83
83
  * @internal
84
84
  */
85
85
  declare abstract class AbstractFilter extends DimensionalElement implements Filter {
86
+ /**
87
+ * @internal
88
+ */
89
+ readonly __serializable: string;
86
90
  /**
87
91
  * Attribute this filter instance is filtering
88
92
  */
@@ -126,6 +130,10 @@ declare abstract class AbstractFilter extends DimensionalElement implements Filt
126
130
  * @internal
127
131
  */
128
132
  export declare class LogicalAttributeFilter extends AbstractFilter {
133
+ /**
134
+ * @internal
135
+ */
136
+ readonly __serializable: string;
129
137
  readonly filters: Filter[];
130
138
  readonly operator: string;
131
139
  constructor(filters: Filter[], operator: string, config?: BaseFilterConfig, composeCode?: string);
@@ -146,6 +154,10 @@ export declare class LogicalAttributeFilter extends AbstractFilter {
146
154
  * @internal
147
155
  */
148
156
  export declare class MembersFilter extends AbstractFilter {
157
+ /**
158
+ * @internal
159
+ */
160
+ readonly __serializable: string;
149
161
  readonly members: string[];
150
162
  config: CompleteMembersFilterConfig;
151
163
  constructor(attribute: Attribute, members?: string[], config?: MembersFilterConfig, composeCode?: string);
@@ -167,6 +179,10 @@ export declare class MembersFilter extends AbstractFilter {
167
179
  * @internal
168
180
  */
169
181
  export declare class CascadingFilter extends AbstractFilter {
182
+ /**
183
+ * @internal
184
+ */
185
+ readonly __serializable: string;
170
186
  readonly _filters: Filter[];
171
187
  constructor(filters: Filter[], config?: BaseFilterConfig, composeCode?: string);
172
188
  /**
@@ -191,6 +207,10 @@ export declare class CascadingFilter extends AbstractFilter {
191
207
  * @internal
192
208
  */
193
209
  export declare class ExcludeFilter extends AbstractFilter {
210
+ /**
211
+ * @internal
212
+ */
213
+ readonly __serializable: string;
194
214
  readonly filter: Filter;
195
215
  readonly input?: Filter;
196
216
  constructor(filter: Filter, input?: Filter, config?: BaseFilterConfig, composeCode?: string);
@@ -211,6 +231,10 @@ export declare class ExcludeFilter extends AbstractFilter {
211
231
  * @internal
212
232
  */
213
233
  export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
234
+ /**
235
+ * @internal
236
+ */
237
+ readonly __serializable: string;
214
238
  operatorA?: string;
215
239
  operatorB?: string;
216
240
  valueA?: Type;
@@ -233,6 +257,10 @@ export declare class DoubleOperatorFilter<Type> extends AbstractFilter {
233
257
  * @internal
234
258
  */
235
259
  export declare class MeasureFilter extends DoubleOperatorFilter<number> {
260
+ /**
261
+ * @internal
262
+ */
263
+ readonly __serializable: string;
236
264
  measure: Measure;
237
265
  constructor(att: Attribute, measure: Measure, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig, composeCode?: string);
238
266
  /**
@@ -249,6 +277,10 @@ export declare class MeasureFilter extends DoubleOperatorFilter<number> {
249
277
  * @internal
250
278
  */
251
279
  export declare class RankingFilter extends AbstractFilter {
280
+ /**
281
+ * @internal
282
+ */
283
+ readonly __serializable: string;
252
284
  count: number;
253
285
  operator: string;
254
286
  measure: Measure;
@@ -270,6 +302,10 @@ export declare class RankingFilter extends AbstractFilter {
270
302
  * @internal
271
303
  */
272
304
  export declare class NumericFilter extends DoubleOperatorFilter<number> {
305
+ /**
306
+ * @internal
307
+ */
308
+ readonly __serializable: string;
273
309
  constructor(att: Attribute, operatorA?: string, valueA?: number, operatorB?: string, valueB?: number, config?: BaseFilterConfig, composeCode?: string);
274
310
  /**
275
311
  * Gets a serializable representation of the element
@@ -280,6 +316,10 @@ export declare class NumericFilter extends DoubleOperatorFilter<number> {
280
316
  * @internal
281
317
  */
282
318
  export declare class TextFilter extends DoubleOperatorFilter<string> {
319
+ /**
320
+ * @internal
321
+ */
322
+ readonly __serializable: string;
283
323
  constructor(att: Attribute, operator: string, value: string, config?: BaseFilterConfig, composeCode?: string);
284
324
  /**
285
325
  * Gets a serializable representation of the element
@@ -290,6 +330,10 @@ export declare class TextFilter extends DoubleOperatorFilter<string> {
290
330
  * @internal
291
331
  */
292
332
  export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string> {
333
+ /**
334
+ * @internal
335
+ */
336
+ readonly __serializable: string;
293
337
  constructor(levelAttribute: LevelAttribute, valueFrom?: Date | string, valueTo?: Date | string, config?: BaseFilterConfig, composeCode?: string);
294
338
  get level(): LevelAttribute;
295
339
  get from(): string;
@@ -307,6 +351,10 @@ export declare class DateRangeFilter extends DoubleOperatorFilter<Date | string>
307
351
  * @internal
308
352
  */
309
353
  export declare class RelativeDateFilter extends AbstractFilter {
354
+ /**
355
+ * @internal
356
+ */
357
+ readonly __serializable: string;
310
358
  readonly offset: number;
311
359
  readonly count: number;
312
360
  readonly operator: typeof DateOperators.Last | typeof DateOperators.Next;
@@ -331,6 +379,10 @@ export declare class RelativeDateFilter extends AbstractFilter {
331
379
  * @internal
332
380
  */
333
381
  export declare class CustomFilter extends AbstractFilter {
382
+ /**
383
+ * @internal
384
+ */
385
+ readonly __serializable: string;
334
386
  readonly jaqlExpression: any;
335
387
  constructor(att: Attribute, jaql: any, config?: BaseFilterConfig, composeCode?: string);
336
388
  /**