@dcupl/common 1.11.11 → 2.0.0-beta.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 (97) hide show
  1. package/dist/esm/attribute-dependency-graph.d.ts +119 -0
  2. package/dist/esm/cache.controller.d.ts +56 -1
  3. package/dist/esm/changeDetection.d.ts +1 -1
  4. package/dist/esm/date-utils.d.ts +50 -0
  5. package/dist/esm/deep-query.service.d.ts +133 -0
  6. package/dist/esm/dependency-graph.d.ts +102 -3
  7. package/dist/esm/index.d.ts +4 -0
  8. package/dist/esm/index.js +3096 -19
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/esm/indices.controller.d.ts +92 -0
  11. package/dist/esm/logger/index.d.ts +2 -0
  12. package/dist/esm/logger/logger.d.ts +101 -0
  13. package/dist/esm/pivot.d.ts +2 -1
  14. package/dist/esm/query-builder.d.ts +435 -2
  15. package/dist/esm/queryData.d.ts +9 -4
  16. package/dist/esm/types/dcupl.types.d.ts +80 -0
  17. package/dist/esm/types/internal.types.d.ts +1 -1
  18. package/dist/esm/types/list.types.d.ts +10 -0
  19. package/dist/esm/types/model.types.d.ts +49 -12
  20. package/dist/esm/types/query.types.d.ts +500 -2
  21. package/dist/node/index.cjs +5 -0
  22. package/dist/node/index.cjs.map +1 -0
  23. package/package.json +7 -8
  24. package/dist/browser/common.umd.js +0 -2
  25. package/dist/browser/common.umd.js.map +0 -1
  26. package/dist/esm/analytics.controller.js +0 -105
  27. package/dist/esm/analytics.controller.js.map +0 -1
  28. package/dist/esm/cache.controller.js +0 -40
  29. package/dist/esm/cache.controller.js.map +0 -1
  30. package/dist/esm/changeDetection.js +0 -179
  31. package/dist/esm/changeDetection.js.map +0 -1
  32. package/dist/esm/computeSuggestions.js +0 -38
  33. package/dist/esm/computeSuggestions.js.map +0 -1
  34. package/dist/esm/dependency-graph.js +0 -136
  35. package/dist/esm/dependency-graph.js.map +0 -1
  36. package/dist/esm/getAggregation.js +0 -170
  37. package/dist/esm/getAggregation.js.map +0 -1
  38. package/dist/esm/getFacets.js +0 -67
  39. package/dist/esm/getFacets.js.map +0 -1
  40. package/dist/esm/helper.js +0 -102
  41. package/dist/esm/helper.js.map +0 -1
  42. package/dist/esm/indices.controller.js +0 -97
  43. package/dist/esm/indices.controller.js.map +0 -1
  44. package/dist/esm/object-hash.js +0 -33
  45. package/dist/esm/object-hash.js.map +0 -1
  46. package/dist/esm/performance.js +0 -33
  47. package/dist/esm/performance.js.map +0 -1
  48. package/dist/esm/pivot.js +0 -132
  49. package/dist/esm/pivot.js.map +0 -1
  50. package/dist/esm/property-parser.js +0 -57
  51. package/dist/esm/property-parser.js.map +0 -1
  52. package/dist/esm/query-builder.js +0 -233
  53. package/dist/esm/query-builder.js.map +0 -1
  54. package/dist/esm/query.helper.js +0 -172
  55. package/dist/esm/query.helper.js.map +0 -1
  56. package/dist/esm/queryData.js +0 -360
  57. package/dist/esm/queryData.js.map +0 -1
  58. package/dist/esm/script.controller.js +0 -54
  59. package/dist/esm/script.controller.js.map +0 -1
  60. package/dist/esm/template-parser.js +0 -22
  61. package/dist/esm/template-parser.js.map +0 -1
  62. package/dist/esm/types/aggregation.types.js +0 -2
  63. package/dist/esm/types/aggregation.types.js.map +0 -1
  64. package/dist/esm/types/app-loader.types.js +0 -2
  65. package/dist/esm/types/app-loader.types.js.map +0 -1
  66. package/dist/esm/types/data.types.js +0 -2
  67. package/dist/esm/types/data.types.js.map +0 -1
  68. package/dist/esm/types/dcupl.types.js +0 -2
  69. package/dist/esm/types/dcupl.types.js.map +0 -1
  70. package/dist/esm/types/facets.types.js +0 -2
  71. package/dist/esm/types/facets.types.js.map +0 -1
  72. package/dist/esm/types/filter.types.js +0 -2
  73. package/dist/esm/types/filter.types.js.map +0 -1
  74. package/dist/esm/types/group-by.types.js +0 -2
  75. package/dist/esm/types/group-by.types.js.map +0 -1
  76. package/dist/esm/types/index.js +0 -17
  77. package/dist/esm/types/index.js.map +0 -1
  78. package/dist/esm/types/internal.types.js +0 -2
  79. package/dist/esm/types/internal.types.js.map +0 -1
  80. package/dist/esm/types/list.types.js +0 -2
  81. package/dist/esm/types/list.types.js.map +0 -1
  82. package/dist/esm/types/model.types.js +0 -16
  83. package/dist/esm/types/model.types.js.map +0 -1
  84. package/dist/esm/types/projection.types.js +0 -2
  85. package/dist/esm/types/projection.types.js.map +0 -1
  86. package/dist/esm/types/quality.types.js +0 -2
  87. package/dist/esm/types/quality.types.js.map +0 -1
  88. package/dist/esm/types/query.types.js +0 -12
  89. package/dist/esm/types/query.types.js.map +0 -1
  90. package/dist/esm/types/section.types.js +0 -2
  91. package/dist/esm/types/section.types.js.map +0 -1
  92. package/dist/esm/types/suggestion.types.js +0 -2
  93. package/dist/esm/types/suggestion.types.js.map +0 -1
  94. package/dist/esm/types/testing.types.js +0 -2
  95. package/dist/esm/types/testing.types.js.map +0 -1
  96. package/dist/node/index.cjs.js +0 -1
  97. package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/esm/pivot.js DELETED
@@ -1,132 +0,0 @@
1
- import { getAggregation } from './getAggregation';
2
- import { IndicesController } from './indices.controller';
3
- const pivotPathSeparator = '__';
4
- export function pivot(relevantData, options, response = { key: 'root' }, parentPath = 'root', indicesCtrl = new IndicesController()) {
5
- for (const column of options.columns) {
6
- if (column.attribute) {
7
- indicesCtrl.getOrCreateIndex(column.attribute, relevantData);
8
- }
9
- }
10
- for (const row of options.rows) {
11
- if (row.attribute) {
12
- indicesCtrl.getOrCreateIndex(row.attribute, relevantData);
13
- }
14
- }
15
- for (const value of options.values) {
16
- if (value.attribute) {
17
- indicesCtrl.getOrCreateIndex(value.attribute, relevantData);
18
- }
19
- }
20
- /**
21
- * Rows
22
- */
23
- if (options.rows && options.rows.length > 0) {
24
- response.rows = response.rows || [];
25
- const item = getPivotRowItem(relevantData, options.rows[0], options, indicesCtrl, parentPath);
26
- response.rows.push(item);
27
- }
28
- /**
29
- * Columns
30
- */
31
- if (options.columns && options.columns.length > 0) {
32
- response.columns = response.columns || [];
33
- const item = getPivotColumnItem(relevantData, options.columns[0], options, indicesCtrl, parentPath);
34
- response.columns.push(item);
35
- }
36
- /**
37
- * Value Aggregations
38
- */
39
- if (response.key === 'root') {
40
- for (const value of options.values) {
41
- response.values = response.values || [];
42
- if (parentPath === 'root' && options.options?.calculateTotals === false) {
43
- continue;
44
- }
45
- const agg = getAggregation(value, relevantData, indicesCtrl.getIndex(value.attribute), value.attribute);
46
- response.values.push(agg);
47
- }
48
- }
49
- return response;
50
- }
51
- function getPivotRowItem(modelData, options, globalOptions, modelIndexMap, parentPath = '') {
52
- const item = { key: options.attribute };
53
- const indexMap = modelIndexMap.getIndex(options.attribute);
54
- if (!indexMap) {
55
- return item;
56
- }
57
- for (const [key, itemKeys] of indexMap.entries()) {
58
- const rowItem = {
59
- key: key,
60
- };
61
- const relevantData = new Map();
62
- for (const key of itemKeys) {
63
- if (!modelData.has(key)) {
64
- continue;
65
- }
66
- relevantData.set(key, modelData.get(key));
67
- }
68
- if (!relevantData.size)
69
- continue;
70
- for (const value of globalOptions.values) {
71
- rowItem.values = rowItem.values || [];
72
- if (parentPath === 'root' && options?.calculateTotals === false) {
73
- continue;
74
- }
75
- const agg = getAggregation(value, relevantData, modelIndexMap.getIndex(value.attribute), value.attribute);
76
- rowItem.values.push(agg);
77
- }
78
- item.rows = item.rows || [];
79
- item.rows.push(rowItem);
80
- if (globalOptions.rows.length > 1) {
81
- const newOptions = { ...globalOptions, rows: globalOptions.rows.slice(1) };
82
- pivot(relevantData, newOptions, rowItem, parentPath + pivotPathSeparator + options.attribute + pivotPathSeparator + key);
83
- }
84
- else {
85
- if (globalOptions.columns) {
86
- for (const columnOption of globalOptions.columns) {
87
- rowItem.columns = rowItem.columns || [];
88
- const columnItem = getPivotColumnItem(relevantData, columnOption, globalOptions, modelIndexMap, parentPath + pivotPathSeparator + options.attribute + pivotPathSeparator + key);
89
- rowItem.columns.push(columnItem);
90
- }
91
- }
92
- }
93
- }
94
- return item;
95
- }
96
- function getPivotColumnItem(modelData, options, globalOptions, modelIndexMap, parentPath = '') {
97
- const item = { key: options.attribute };
98
- const indexMap = modelIndexMap.getIndex(options.attribute);
99
- if (!indexMap) {
100
- return item;
101
- }
102
- for (const [key, itemKeys] of indexMap.entries()) {
103
- const rowItem = {
104
- key: key,
105
- };
106
- const relevantData = new Map();
107
- for (const key of itemKeys) {
108
- if (!modelData.has(key)) {
109
- continue;
110
- }
111
- relevantData.set(key, modelData.get(key));
112
- }
113
- if (!relevantData.size)
114
- continue;
115
- for (const value of globalOptions.values) {
116
- rowItem.values = rowItem.values || [];
117
- if (parentPath === 'root' && options?.calculateTotals === false) {
118
- continue;
119
- }
120
- const agg = getAggregation(value, relevantData, modelIndexMap.getIndex(value.attribute), value.attribute);
121
- rowItem.values.push(agg);
122
- }
123
- item.columns = item.columns || [];
124
- item.columns.push(rowItem);
125
- if (globalOptions.columns.length > 1) {
126
- const newOptions = { ...globalOptions, columns: globalOptions.columns.slice(1) };
127
- pivot(relevantData, newOptions, rowItem, parentPath + pivotPathSeparator + options.attribute + pivotPathSeparator + key);
128
- }
129
- }
130
- return item;
131
- }
132
- //# sourceMappingURL=pivot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pivot.js","sourceRoot":"","sources":["../../src/pivot.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- import { isDate } from 'date-fns';
2
- // returns a list of properties based on the input data
3
- export const getPropertiesForData = (data, deep) => {
4
- const properties = [];
5
- for (const item of data) {
6
- for (const [key, value] of Object.entries(item)) {
7
- const property = properties.find((p) => p.key === key);
8
- const type = getDcuplPropertyTypeForNativeType(value);
9
- if (property) {
10
- if (property.type !== type) {
11
- property.type = 'any';
12
- }
13
- }
14
- else {
15
- const prop = {
16
- key: key,
17
- type: type,
18
- };
19
- properties.push(prop);
20
- }
21
- }
22
- if (!deep) {
23
- break;
24
- }
25
- }
26
- return properties;
27
- };
28
- export const isInt = (n) => {
29
- return Number(n) === n && n % 1 === 0;
30
- };
31
- export const isFloat = (n) => {
32
- return Number(n) === n && n % 1 !== 0;
33
- };
34
- export const getDcuplPropertyTypeForNativeType = (value) => {
35
- const type = typeof value;
36
- switch (type) {
37
- case 'string':
38
- return 'string';
39
- case 'number':
40
- if (isInt(value)) {
41
- return 'int';
42
- }
43
- else if (isFloat(value)) {
44
- return 'float';
45
- }
46
- else {
47
- return 'any';
48
- }
49
- case 'boolean':
50
- return 'boolean';
51
- case 'object':
52
- return isDate(value) ? 'date' : 'json';
53
- default:
54
- return 'any';
55
- }
56
- };
57
- //# sourceMappingURL=property-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"property-parser.js","sourceRoot":"","sources":["../../src/property-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,uDAAuD;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAW,EAAE,IAAa,EAAc,EAAE;IAC7E,MAAM,UAAU,GAAe,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,iCAAiC,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC3B,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;gBACxB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAa;oBACrB,GAAG,EAAE,GAAG;oBACR,IAAI,EAAE,IAAI;iBACJ,CAAC;gBACT,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAM,EAAW,EAAE;IACvC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAM,EAAW,EAAE;IACzC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,KAAU,EAAgB,EAAE;IAC5E,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAE1B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,OAAO,KAAK,CAAC;YACf,CAAC;QACH,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACzC;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,CAAC"}
@@ -1,233 +0,0 @@
1
- import { cloneDeep, every, findIndex } from 'lodash-es';
2
- class DcuplQueryError extends Error {
3
- query;
4
- constructor(message, query) {
5
- const msg = `Query Error: ${message} in ${JSON.stringify(query, null, 2)}`;
6
- super(msg);
7
- this.query = query;
8
- this.name = 'DcuplQueryError';
9
- }
10
- }
11
- export class DcuplQueryBuilder {
12
- _defaultQueryOptions = {
13
- modelKey: '',
14
- groupKey: 'root',
15
- groupType: 'and',
16
- queries: [],
17
- };
18
- _initOptions;
19
- currentQuery = cloneDeep(this._defaultQueryOptions);
20
- constructor() { }
21
- init(options) {
22
- this._initOptions = cloneDeep(options);
23
- this.currentQuery = cloneDeep(this._defaultQueryOptions);
24
- this.currentQuery.modelKey = options.modelKey;
25
- }
26
- reset() {
27
- this.init(this._initOptions);
28
- return this.getQuery();
29
- }
30
- isQuery(query) {
31
- return 'attribute' in query;
32
- }
33
- isQueryGroup(query) {
34
- return 'groupKey' in query;
35
- }
36
- isRootQueryGroup(groupOrQuery) {
37
- return this.isQueryGroup(groupOrQuery) && groupOrQuery.groupKey === 'root';
38
- }
39
- getQueryGroup(groupKey) {
40
- return this.currentQuery.queries.find((q) => this.isQueryGroup(q) && q.groupKey === groupKey);
41
- }
42
- getQuery() {
43
- return cloneDeep(this.currentQuery);
44
- }
45
- hasQueryGroup(groupKey) {
46
- return this.currentQuery.queries.some((query) => this.isQueryGroup(query) && query.groupKey === groupKey);
47
- }
48
- has(options) {
49
- if (options.groupKey && options.queryKey) {
50
- const group = this.getQueryGroup(options.groupKey);
51
- if (group) {
52
- return group.queries.some((q) => this.isQuery(q) && q.queryKey === options.queryKey);
53
- }
54
- }
55
- else if (options.groupKey) {
56
- return this.hasQueryGroup(options.groupKey);
57
- }
58
- return false;
59
- }
60
- validate(query) {
61
- const errors = query.queries.map((q) => this.validateQuery(q));
62
- const valid = every(errors, (e) => e.valid);
63
- return { valid, errors: errors.map((e) => e.errors).flat() };
64
- }
65
- applyOptions(options, mode = 'update') {
66
- if (mode === 'set') {
67
- this.currentQuery.count = options.count;
68
- this.currentQuery.start = options.start;
69
- this.currentQuery.sort = options.sort;
70
- this.currentQuery.projection = options.projection;
71
- }
72
- else {
73
- if (typeof options?.sort !== 'undefined') {
74
- this.currentQuery.sort = options.sort;
75
- }
76
- if (typeof options?.count !== 'undefined') {
77
- this.currentQuery.count = options.count;
78
- }
79
- if (typeof options?.start !== 'undefined') {
80
- this.currentQuery.start = options?.start;
81
- }
82
- if (typeof options?.projection !== 'undefined') {
83
- this.currentQuery.projection = options?.projection;
84
- }
85
- }
86
- return this.getQuery();
87
- }
88
- applyQuery(queryToApply, options, relevantQuery) {
89
- if (!relevantQuery)
90
- relevantQuery = this.currentQuery;
91
- if (Array.isArray(queryToApply)) {
92
- for (const query of queryToApply) {
93
- this.applyQuery(query, options, relevantQuery);
94
- }
95
- }
96
- else if (this.isRootQueryGroup(queryToApply)) {
97
- if (queryToApply.groupType)
98
- relevantQuery.groupType = queryToApply.groupType;
99
- // if (queryToApply.options) relevantQuery.options = queryToApply.options;
100
- if (options?.mode === 'set') {
101
- relevantQuery.queries = queryToApply.queries;
102
- }
103
- else {
104
- relevantQuery.queries = [...relevantQuery.queries, ...queryToApply.queries];
105
- }
106
- this.applyOptions(queryToApply, 'set');
107
- }
108
- else if (this.isQuery(queryToApply)) {
109
- const idx = relevantQuery.queries.findIndex((query) => this.isQueryGroup(query) && query.groupKey === queryToApply.attribute);
110
- if (idx > -1) {
111
- const queryGroup = relevantQuery.queries[idx];
112
- if (options?.mode === 'set') {
113
- queryGroup.queries = [queryToApply];
114
- }
115
- else {
116
- queryGroup.queries.push(queryToApply);
117
- }
118
- }
119
- else {
120
- relevantQuery.queries.push({
121
- groupKey: queryToApply.attribute,
122
- groupType: 'or',
123
- queries: [queryToApply],
124
- });
125
- }
126
- // handle query group
127
- }
128
- else if (this.isQueryGroup(queryToApply)) {
129
- const idx = relevantQuery.queries.findIndex((query) => this.isQueryGroup(query) && query.groupKey === queryToApply.groupKey);
130
- if (idx > -1) {
131
- const queryGroup = relevantQuery.queries[idx];
132
- if (queryToApply.groupType)
133
- queryGroup.groupType = queryToApply.groupType;
134
- // if (queryToApply.options) queryGroup.options = queryToApply.options;
135
- if (options?.mode === 'set') {
136
- relevantQuery.queries[idx] = queryToApply;
137
- }
138
- else {
139
- queryGroup.queries = [...queryGroup.queries, ...queryToApply.queries];
140
- }
141
- }
142
- else {
143
- relevantQuery.queries.push({
144
- groupKey: queryToApply.groupKey,
145
- groupType: queryToApply.groupType || 'or',
146
- queries: queryToApply.queries,
147
- // options: queryToApply.options,
148
- });
149
- }
150
- }
151
- return relevantQuery;
152
- }
153
- removeAllQueries() {
154
- this.currentQuery.queries = [];
155
- return this.getQuery();
156
- }
157
- removeQuery(queryToRemove, relevantQuery) {
158
- // handle default query
159
- if (!relevantQuery)
160
- relevantQuery = this.currentQuery;
161
- if (this.isQuery(queryToRemove)) {
162
- const idx = relevantQuery.queries.findIndex((query) => this.isQueryGroup(query) && query.groupKey === queryToRemove.attribute);
163
- if (idx > -1) {
164
- const queryGroup = relevantQuery.queries[idx];
165
- const idxOfQueryToRemove = findIndex(queryGroup.queries, queryToRemove);
166
- if (idxOfQueryToRemove > -1) {
167
- queryGroup.queries.splice(idxOfQueryToRemove, 1);
168
- }
169
- if (queryGroup.queries.length === 0) {
170
- relevantQuery.queries.splice(idx, 1);
171
- }
172
- }
173
- }
174
- else if (this.isQueryGroup(queryToRemove)) {
175
- const idx = relevantQuery.queries.findIndex((query) => this.isQueryGroup(query) && query.groupKey === queryToRemove.groupKey);
176
- if (idx > -1) {
177
- if (!queryToRemove.queries) {
178
- relevantQuery.queries.splice(idx, 1);
179
- }
180
- else {
181
- const queryGroup = relevantQuery.queries[idx];
182
- for (const q of queryToRemove.queries) {
183
- const idxOfQueryToRemove = findIndex(queryGroup.queries, q);
184
- if (idxOfQueryToRemove > -1) {
185
- queryGroup.queries.splice(idxOfQueryToRemove, 1);
186
- }
187
- }
188
- if (queryGroup.queries.length === 0) {
189
- relevantQuery.queries.splice(idx, 1);
190
- }
191
- }
192
- }
193
- }
194
- return relevantQuery;
195
- }
196
- validateQuery(query) {
197
- const errors = [];
198
- if (this.isQuery(query)) {
199
- if (!query.attribute) {
200
- errors.push(new DcuplQueryError('Missing attribute', query));
201
- }
202
- if (!query.operator) {
203
- errors.push(new DcuplQueryError('Missing operator', query));
204
- }
205
- if (typeof query.value === 'undefined') {
206
- errors.push(new DcuplQueryError('Missing value', query));
207
- }
208
- if (query.operator === 'find' && Array.isArray(query.value)) {
209
- errors.push(new DcuplQueryError('find operator cannot have array value', query));
210
- }
211
- if (errors.length > 0) {
212
- return { valid: false, errors: errors };
213
- }
214
- else {
215
- return { valid: true };
216
- }
217
- }
218
- else if (this.isQueryGroup(query)) {
219
- const queryErrors = query.queries.map((q) => this.validateQuery(q));
220
- const invalidQueries = queryErrors.filter((q) => !q.valid);
221
- const errors = invalidQueries.map((q) => q.errors).flat();
222
- if (errors.length > 0) {
223
- return { valid: false, errors: errors };
224
- }
225
- else {
226
- return { valid: true };
227
- }
228
- }
229
- errors.push(new DcuplQueryError('Invalid query definition', query));
230
- return { valid: false, errors: errors };
231
- }
232
- }
233
- //# sourceMappingURL=query-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/query-builder.ts"],"names":[],"mappings":"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"}
@@ -1,172 +0,0 @@
1
- import { escapeRegExp } from './helper';
2
- export const generateTextQuery = (options, filterItem) => {
3
- const escapedText = escapeRegExp(options.text || '');
4
- const attribute = filterItem?.attributeKey || options.filterKey;
5
- let query;
6
- const comparisonType = filterItem?.comparisonType || 'containsIgnoreCase';
7
- if (comparisonType === 'containsIgnoreCase') {
8
- query = {
9
- groupKey: options.filterKey,
10
- queries: [
11
- {
12
- queryKey: options.text,
13
- attribute: attribute,
14
- value: `/${escapedText}/`,
15
- operator: 'find',
16
- options: {
17
- transform: ['lowercase'],
18
- },
19
- },
20
- ],
21
- };
22
- }
23
- else if (comparisonType === 'containsIgnoreCaseAndWhitespace') {
24
- query = {
25
- groupKey: options.filterKey,
26
- queries: [
27
- {
28
- queryKey: options.text,
29
- attribute: attribute,
30
- value: `/${escapedText}/`,
31
- operator: 'find',
32
- options: {
33
- transform: ['removeWhitespace', 'lowercase'],
34
- },
35
- },
36
- ],
37
- };
38
- }
39
- else if (comparisonType === 'contains') {
40
- query = {
41
- groupKey: options.filterKey,
42
- queries: [
43
- {
44
- queryKey: options.text,
45
- attribute: attribute,
46
- value: `/${escapedText}/`,
47
- operator: 'find',
48
- },
49
- ],
50
- };
51
- }
52
- else if (comparisonType === 'equal') {
53
- query = {
54
- groupKey: options.filterKey,
55
- queries: [
56
- {
57
- queryKey: options.text,
58
- attribute: attribute,
59
- value: options.text,
60
- operator: 'eq',
61
- },
62
- ],
63
- };
64
- }
65
- else if (comparisonType === 'equalIgnoreCase') {
66
- query = {
67
- groupKey: options.filterKey,
68
- queries: [
69
- {
70
- queryKey: options.text,
71
- attribute: attribute,
72
- value: options.text,
73
- operator: 'eq',
74
- options: {
75
- transform: ['lowercase'],
76
- },
77
- },
78
- ],
79
- };
80
- }
81
- return query;
82
- };
83
- export const generateBooleanQuery = (options, filterItem) => {
84
- const attribute = filterItem?.attributeKey || options.filterKey;
85
- const query = {
86
- groupKey: options.filterKey,
87
- queries: [
88
- {
89
- queryKey: options.value,
90
- attribute: attribute,
91
- value: options.value,
92
- operator: 'eq',
93
- },
94
- ],
95
- };
96
- return query;
97
- };
98
- export const generateNumberAndDateQuery = (options, filterItem) => {
99
- const attribute = filterItem?.attributeKey || options.filterKey;
100
- const query = {
101
- groupKey: options.filterKey,
102
- queries: [],
103
- };
104
- if (typeof options.eq !== 'undefined') {
105
- query.groupType = 'or';
106
- if (Array.isArray(options.eq)) {
107
- options.eq.forEach((value) => {
108
- query.queries.push({ attribute: attribute, value: value, operator: 'eq' });
109
- });
110
- }
111
- else {
112
- query.queries.push({ attribute: attribute, value: options.eq, operator: 'eq' });
113
- }
114
- }
115
- if (typeof options.ne !== 'undefined') {
116
- query.groupType = 'and';
117
- if (Array.isArray(options.ne)) {
118
- options.ne.forEach((value) => {
119
- query.queries.push({ attribute: attribute, value: value, operator: 'eq', options: { invert: true } });
120
- });
121
- }
122
- else {
123
- query.queries.push({
124
- attribute: attribute,
125
- value: options.ne,
126
- operator: 'eq',
127
- options: { invert: true },
128
- });
129
- }
130
- }
131
- if (typeof options.gt !== 'undefined') {
132
- query.groupType = 'and';
133
- query.queries.push({ attribute: attribute, value: options.gt, operator: 'gt' });
134
- }
135
- if (typeof options.lt !== 'undefined') {
136
- query.groupType = 'and';
137
- query.queries.push({ attribute: attribute, value: options.lt, operator: 'lt' });
138
- }
139
- if (typeof options.gte !== 'undefined') {
140
- query.groupType = 'and';
141
- query.queries.push({ attribute: attribute, value: options.gte, operator: 'gte' });
142
- }
143
- if (typeof options.lte !== 'undefined') {
144
- query.groupType = 'and';
145
- query.queries.push({ attribute: attribute, value: options.lte, operator: 'lte' });
146
- }
147
- return query;
148
- };
149
- export const generateReferenceQuery = (options, filterItem) => {
150
- const attribute = filterItem?.attributeKey || options.filterKey;
151
- const query = {
152
- groupKey: options.filterKey,
153
- queries: [],
154
- };
155
- options.itemKeys.forEach((key) => {
156
- query.queries.push({
157
- queryKey: key,
158
- attribute: attribute,
159
- value: { key: key },
160
- operator: 'eq',
161
- });
162
- });
163
- return query;
164
- };
165
- export const isValidQueryStatement = (query) => {
166
- if (typeof query.modelKey !== 'string')
167
- return false;
168
- if (!Array.isArray(query.queries))
169
- return false;
170
- return true;
171
- };
172
- //# sourceMappingURL=query.helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.helper.js","sourceRoot":"","sources":["../../src/query.helper.ts"],"names":[],"mappings":"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"}