@lightdash/common 0.1658.0 → 0.1659.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.
- package/dist/cjs/ee/AiAgent/filterExploreByTags.d.ts +41 -0
- package/dist/cjs/ee/AiAgent/filterExploreByTags.d.ts.map +1 -0
- package/dist/cjs/ee/AiAgent/filterExploreByTags.js +64 -0
- package/dist/cjs/ee/AiAgent/filterExploreByTags.js.map +1 -0
- package/dist/cjs/ee/AiAgent/filterExploreByTags.test.d.ts +2 -0
- package/dist/cjs/ee/AiAgent/filterExploreByTags.test.d.ts.map +1 -0
- package/dist/cjs/ee/AiAgent/filterExploreByTags.test.js +434 -0
- package/dist/cjs/ee/AiAgent/filterExploreByTags.test.js.map +1 -0
- package/dist/cjs/ee/AiAgent/index.d.ts +1 -0
- package/dist/cjs/ee/AiAgent/index.d.ts.map +1 -1
- package/dist/cjs/ee/AiAgent/index.js +2 -0
- package/dist/cjs/ee/AiAgent/index.js.map +1 -1
- package/dist/esm/ee/AiAgent/filterExploreByTags.d.ts +41 -0
- package/dist/esm/ee/AiAgent/filterExploreByTags.d.ts.map +1 -0
- package/dist/esm/ee/AiAgent/filterExploreByTags.js +61 -0
- package/dist/esm/ee/AiAgent/filterExploreByTags.js.map +1 -0
- package/dist/esm/ee/AiAgent/filterExploreByTags.test.d.ts +2 -0
- package/dist/esm/ee/AiAgent/filterExploreByTags.test.d.ts.map +1 -0
- package/dist/esm/ee/AiAgent/filterExploreByTags.test.js +432 -0
- package/dist/esm/ee/AiAgent/filterExploreByTags.test.js.map +1 -0
- package/dist/esm/ee/AiAgent/index.d.ts +1 -0
- package/dist/esm/ee/AiAgent/index.d.ts.map +1 -1
- package/dist/esm/ee/AiAgent/index.js +1 -0
- package/dist/esm/ee/AiAgent/index.js.map +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/ee/AiAgent/filterExploreByTags.d.ts +41 -0
- package/dist/types/ee/AiAgent/filterExploreByTags.d.ts.map +1 -0
- package/dist/types/ee/AiAgent/filterExploreByTags.test.d.ts +2 -0
- package/dist/types/ee/AiAgent/filterExploreByTags.test.d.ts.map +1 -0
- package/dist/types/ee/AiAgent/index.d.ts +1 -0
- package/dist/types/ee/AiAgent/index.d.ts.map +1 -1
- package/package.json +1 -1
@@ -0,0 +1,41 @@
|
|
1
|
+
type FilterableTable = {
|
2
|
+
dimensions: Record<string, {
|
3
|
+
tags?: string[];
|
4
|
+
}>;
|
5
|
+
metrics: Record<string, {
|
6
|
+
tags?: string[];
|
7
|
+
}>;
|
8
|
+
};
|
9
|
+
type FilterableExplore<T extends FilterableTable = FilterableTable> = {
|
10
|
+
tags: string[];
|
11
|
+
baseTable: string;
|
12
|
+
tables: {
|
13
|
+
[tableName: string]: T;
|
14
|
+
};
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* @description
|
18
|
+
*
|
19
|
+
* No tags are configured in settings UI:
|
20
|
+
*
|
21
|
+
* | Tagging Scenario | AI Visibility |
|
22
|
+
* |-----------------------------------|----------------------------------|
|
23
|
+
* | No tags configured in settings UI | Everything is visible by default |
|
24
|
+
*
|
25
|
+
* ---
|
26
|
+
*
|
27
|
+
* Tags are configured in settings UI:
|
28
|
+
*
|
29
|
+
* | Tagging Scenario | AI Visibility |
|
30
|
+
* |--------------------------------------|-----------------------------|
|
31
|
+
* | Explore only (with matching tag) | All fields in the Explore |
|
32
|
+
* | Some fields only (with matching tag) | Only those tagged fields |
|
33
|
+
* | Explore + some fields (with match) | Only those tagged fields |
|
34
|
+
* | No matching tags | Nothing is visible |
|
35
|
+
*/
|
36
|
+
export declare function filterExploreByTags<E extends FilterableExplore>({ explore, availableTags, }: {
|
37
|
+
explore: E;
|
38
|
+
availableTags: string[] | null;
|
39
|
+
}): E | undefined;
|
40
|
+
export {};
|
41
|
+
//# sourceMappingURL=filterExploreByTags.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filterExploreByTags.d.ts","sourceRoot":"","sources":["../../../../src/ee/AiAgent/filterExploreByTags.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IAClE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAA;KAAE,CAAC;CACtC,CAAC;AAkCF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,iBAAiB,EAAE,EAC7D,OAAO,EACP,aAAa,GAChB,EAAE;IACC,OAAO,EAAE,CAAC,CAAC;IACX,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAClC,iBAgCA"}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.filterExploreByTags = filterExploreByTags;
|
4
|
+
const lodash_1 = require("lodash");
|
5
|
+
function hasMatchingTags(tags, availableTags) {
|
6
|
+
return (0, lodash_1.intersection)(tags, availableTags).length > 0;
|
7
|
+
}
|
8
|
+
function checkIfTableFieldsHasMatchingTags(table, availableTags) {
|
9
|
+
return hasMatchingTags((0, lodash_1.concat)((0, lodash_1.flatMap)(table.metrics, (m) => m.tags ?? []), (0, lodash_1.flatMap)(table.dimensions, (d) => d.tags ?? [])), availableTags);
|
10
|
+
}
|
11
|
+
function checkIfExploreHasMatchingTags(e, baseTable, availableTags) {
|
12
|
+
if (hasMatchingTags(e.tags, availableTags)) {
|
13
|
+
return true;
|
14
|
+
}
|
15
|
+
if (checkIfTableFieldsHasMatchingTags(baseTable, availableTags)) {
|
16
|
+
return true;
|
17
|
+
}
|
18
|
+
return false;
|
19
|
+
}
|
20
|
+
/**
|
21
|
+
* @description
|
22
|
+
*
|
23
|
+
* No tags are configured in settings UI:
|
24
|
+
*
|
25
|
+
* | Tagging Scenario | AI Visibility |
|
26
|
+
* |-----------------------------------|----------------------------------|
|
27
|
+
* | No tags configured in settings UI | Everything is visible by default |
|
28
|
+
*
|
29
|
+
* ---
|
30
|
+
*
|
31
|
+
* Tags are configured in settings UI:
|
32
|
+
*
|
33
|
+
* | Tagging Scenario | AI Visibility |
|
34
|
+
* |--------------------------------------|-----------------------------|
|
35
|
+
* | Explore only (with matching tag) | All fields in the Explore |
|
36
|
+
* | Some fields only (with matching tag) | Only those tagged fields |
|
37
|
+
* | Explore + some fields (with match) | Only those tagged fields |
|
38
|
+
* | No matching tags | Nothing is visible |
|
39
|
+
*/
|
40
|
+
function filterExploreByTags({ explore, availableTags, }) {
|
41
|
+
if (!availableTags) {
|
42
|
+
return explore;
|
43
|
+
}
|
44
|
+
const baseTable = explore.tables[explore.baseTable];
|
45
|
+
if (!baseTable) {
|
46
|
+
throw new Error(`Base table not found`);
|
47
|
+
}
|
48
|
+
if (!checkIfExploreHasMatchingTags(explore, baseTable, availableTags)) {
|
49
|
+
return undefined;
|
50
|
+
}
|
51
|
+
if (!checkIfTableFieldsHasMatchingTags(baseTable, availableTags)) {
|
52
|
+
return explore;
|
53
|
+
}
|
54
|
+
const filteredExplore = {
|
55
|
+
...explore,
|
56
|
+
tables: (0, lodash_1.mapValues)(explore.tables, (table) => ({
|
57
|
+
...table,
|
58
|
+
dimensions: (0, lodash_1.pickBy)(table.dimensions, (d) => hasMatchingTags(d.tags ?? [], availableTags)),
|
59
|
+
metrics: (0, lodash_1.pickBy)(table.metrics, (m) => hasMatchingTags(m.tags ?? [], availableTags)),
|
60
|
+
})),
|
61
|
+
};
|
62
|
+
return filteredExplore;
|
63
|
+
}
|
64
|
+
//# sourceMappingURL=filterExploreByTags.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filterExploreByTags.js","sourceRoot":"","sources":["../../../../src/ee/AiAgent/filterExploreByTags.ts"],"names":[],"mappings":";;AAiEA,kDAsCC;AAvGD,mCAA0E;AAa1E,SAAS,eAAe,CAAC,IAAc,EAAE,aAAuB;IAC5D,OAAO,IAAA,qBAAY,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,iCAAiC,CACtC,KAAQ,EACR,aAAuB;IAEvB,OAAO,eAAe,CAClB,IAAA,eAAM,EACF,IAAA,gBAAO,EAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAC3C,IAAA,gBAAO,EAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CACjD,EACD,aAAa,CAChB,CAAC;AACN,CAAC;AAED,SAAS,6BAA6B,CAGpC,CAAI,EAAE,SAAY,EAAE,aAAuB;IACzC,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,iCAAiC,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,mBAAmB,CAA8B,EAC7D,OAAO,EACP,aAAa,GAIhB;IACG,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,iCAAiC,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;QAC/D,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAM;QACvB,GAAG,OAAO;QACV,MAAM,EAAE,IAAA,kBAAS,EAAC,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG,KAAK;YACR,UAAU,EAAE,IAAA,eAAM,EAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CACvC,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC,CAC/C;YACD,OAAO,EAAE,IAAA,eAAM,EAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACjC,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,aAAa,CAAC,CAC/C;SACJ,CAAC,CAAC;KACN,CAAC;IAEF,OAAO,eAAe,CAAC;AAC3B,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filterExploreByTags.test.d.ts","sourceRoot":"","sources":["../../../../src/ee/AiAgent/filterExploreByTags.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,434 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const filterExploreByTags_1 = require("./filterExploreByTags");
|
4
|
+
describe('AiService', () => {
|
5
|
+
test('should throw when explore does not have a base table', async () => {
|
6
|
+
expect(() => (0, filterExploreByTags_1.filterExploreByTags)({
|
7
|
+
availableTags: ['ai-enabled'],
|
8
|
+
explore: {
|
9
|
+
baseTable: 'customers',
|
10
|
+
tags: ['marketing', 'ai-enabled'],
|
11
|
+
tables: {
|
12
|
+
// customer_data instead of customers
|
13
|
+
customer_data: {
|
14
|
+
dimensions: {},
|
15
|
+
metrics: {},
|
16
|
+
},
|
17
|
+
},
|
18
|
+
},
|
19
|
+
})).toThrow('Base table not found');
|
20
|
+
});
|
21
|
+
test('should return entire explore when no AI tags are configured in settings', async () => {
|
22
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
23
|
+
availableTags: null,
|
24
|
+
explore: {
|
25
|
+
baseTable: 'customers',
|
26
|
+
tags: [],
|
27
|
+
tables: {
|
28
|
+
customers: {
|
29
|
+
dimensions: {
|
30
|
+
customer_name: {
|
31
|
+
tags: ['pii'],
|
32
|
+
},
|
33
|
+
},
|
34
|
+
metrics: {
|
35
|
+
revenue: {},
|
36
|
+
},
|
37
|
+
},
|
38
|
+
},
|
39
|
+
},
|
40
|
+
})).toBeDefined();
|
41
|
+
});
|
42
|
+
test('should return undefined when AI tags are configured but empty', async () => {
|
43
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
44
|
+
availableTags: [],
|
45
|
+
explore: {
|
46
|
+
baseTable: 'customers',
|
47
|
+
tags: [],
|
48
|
+
tables: {
|
49
|
+
customers: {
|
50
|
+
dimensions: {
|
51
|
+
customer_name: {
|
52
|
+
tags: ['pii'],
|
53
|
+
},
|
54
|
+
},
|
55
|
+
metrics: {
|
56
|
+
revenue: {},
|
57
|
+
},
|
58
|
+
},
|
59
|
+
},
|
60
|
+
},
|
61
|
+
})).toBeUndefined();
|
62
|
+
});
|
63
|
+
test('should return undefined when explore and fields have no matching AI tags', async () => {
|
64
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
65
|
+
availableTags: ['ai-enabled'],
|
66
|
+
explore: {
|
67
|
+
baseTable: 'customers',
|
68
|
+
tags: [],
|
69
|
+
tables: {
|
70
|
+
customers: {
|
71
|
+
dimensions: {},
|
72
|
+
metrics: {},
|
73
|
+
},
|
74
|
+
},
|
75
|
+
},
|
76
|
+
})).toBeUndefined();
|
77
|
+
});
|
78
|
+
test('should return full explore when explore-level tag matches AI settings', async () => {
|
79
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
80
|
+
availableTags: ['marketing', 'ai-enabled'],
|
81
|
+
explore: {
|
82
|
+
baseTable: 'customers',
|
83
|
+
tags: ['ai-enabled', 'analytics'],
|
84
|
+
tables: {
|
85
|
+
customers: {
|
86
|
+
dimensions: {},
|
87
|
+
metrics: {},
|
88
|
+
},
|
89
|
+
},
|
90
|
+
},
|
91
|
+
})).toBeDefined();
|
92
|
+
});
|
93
|
+
test('should return explore when any field tag matches AI settings', async () => {
|
94
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
95
|
+
availableTags: ['marketing', 'ai-enabled'],
|
96
|
+
explore: {
|
97
|
+
baseTable: 'customers',
|
98
|
+
tags: ['analytics'],
|
99
|
+
tables: {
|
100
|
+
customers: {
|
101
|
+
dimensions: {
|
102
|
+
customer_name: {
|
103
|
+
tags: ['ai-enabled'],
|
104
|
+
},
|
105
|
+
},
|
106
|
+
metrics: {
|
107
|
+
revenue: {
|
108
|
+
tags: ['internal'],
|
109
|
+
},
|
110
|
+
},
|
111
|
+
},
|
112
|
+
},
|
113
|
+
},
|
114
|
+
})).toBeDefined();
|
115
|
+
});
|
116
|
+
test('should return explore when both explore and field tags match AI settings', async () => {
|
117
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
118
|
+
availableTags: ['marketing', 'ai-enabled'],
|
119
|
+
explore: {
|
120
|
+
baseTable: 'customers',
|
121
|
+
tags: ['ai-enabled'],
|
122
|
+
tables: {
|
123
|
+
customers: {
|
124
|
+
dimensions: {
|
125
|
+
customer_name: {
|
126
|
+
tags: ['marketing'],
|
127
|
+
},
|
128
|
+
},
|
129
|
+
metrics: {
|
130
|
+
revenue: {
|
131
|
+
tags: ['ai-enabled'],
|
132
|
+
},
|
133
|
+
},
|
134
|
+
},
|
135
|
+
},
|
136
|
+
},
|
137
|
+
})).toBeDefined();
|
138
|
+
});
|
139
|
+
test('should return undefined when neither explore nor field tags match AI settings', async () => {
|
140
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
141
|
+
availableTags: ['marketing', 'ai-enabled'],
|
142
|
+
explore: {
|
143
|
+
baseTable: 'customers',
|
144
|
+
tags: ['analytics'],
|
145
|
+
tables: {
|
146
|
+
customers: {
|
147
|
+
dimensions: {
|
148
|
+
customer_name: {
|
149
|
+
tags: [],
|
150
|
+
},
|
151
|
+
internal_id: {
|
152
|
+
tags: ['analytics'],
|
153
|
+
},
|
154
|
+
},
|
155
|
+
metrics: {
|
156
|
+
revenue: {},
|
157
|
+
},
|
158
|
+
},
|
159
|
+
},
|
160
|
+
},
|
161
|
+
})).toBeUndefined();
|
162
|
+
});
|
163
|
+
test('should return undefined when only joined table fields match but base table does not', async () => {
|
164
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
165
|
+
availableTags: ['marketing', 'ai-enabled'],
|
166
|
+
explore: {
|
167
|
+
baseTable: 'customers',
|
168
|
+
tags: ['analytics'],
|
169
|
+
tables: {
|
170
|
+
customers: {
|
171
|
+
dimensions: {
|
172
|
+
customer_name: {
|
173
|
+
tags: [],
|
174
|
+
},
|
175
|
+
internal_id: {
|
176
|
+
tags: ['analytics'],
|
177
|
+
},
|
178
|
+
},
|
179
|
+
metrics: {
|
180
|
+
revenue: {},
|
181
|
+
},
|
182
|
+
},
|
183
|
+
sales: {
|
184
|
+
dimensions: {
|
185
|
+
user_email: {
|
186
|
+
tags: ['marketing', 'ai-enabled'],
|
187
|
+
},
|
188
|
+
},
|
189
|
+
metrics: {
|
190
|
+
sales_total: {
|
191
|
+
tags: ['marketing', 'ai-enabled'],
|
192
|
+
},
|
193
|
+
},
|
194
|
+
},
|
195
|
+
},
|
196
|
+
},
|
197
|
+
})).toBeUndefined();
|
198
|
+
});
|
199
|
+
test('should expose all fields when explore is tagged but base table fields lack matching tags', async () => {
|
200
|
+
const explore = {
|
201
|
+
baseTable: 'customers',
|
202
|
+
tags: ['ai-enabled'],
|
203
|
+
tables: {
|
204
|
+
customers: {
|
205
|
+
dimensions: {
|
206
|
+
customer_name: {
|
207
|
+
tags: [],
|
208
|
+
},
|
209
|
+
internal_id: {
|
210
|
+
tags: ['analytics'],
|
211
|
+
},
|
212
|
+
},
|
213
|
+
metrics: {
|
214
|
+
revenue: {},
|
215
|
+
},
|
216
|
+
},
|
217
|
+
sales: {
|
218
|
+
dimensions: {
|
219
|
+
user_email: {
|
220
|
+
tags: ['marketing', 'ai-enabled'],
|
221
|
+
},
|
222
|
+
},
|
223
|
+
metrics: {
|
224
|
+
sales_total: {
|
225
|
+
tags: ['marketing', 'ai-enabled'],
|
226
|
+
},
|
227
|
+
},
|
228
|
+
},
|
229
|
+
},
|
230
|
+
};
|
231
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
232
|
+
availableTags: ['marketing', 'ai-enabled'],
|
233
|
+
explore,
|
234
|
+
})).toStrictEqual(explore);
|
235
|
+
});
|
236
|
+
test('should filter fields when explore lacks tags but base table fields have matching tags', async () => {
|
237
|
+
const explore = {
|
238
|
+
baseTable: 'customers',
|
239
|
+
tags: [],
|
240
|
+
tables: {
|
241
|
+
customers: {
|
242
|
+
dimensions: {
|
243
|
+
customer_name: {
|
244
|
+
tags: ['pii', 'ai-enabled'],
|
245
|
+
},
|
246
|
+
internal_id: {
|
247
|
+
tags: ['pii'],
|
248
|
+
},
|
249
|
+
},
|
250
|
+
metrics: {
|
251
|
+
revenue: {},
|
252
|
+
},
|
253
|
+
},
|
254
|
+
sales: {
|
255
|
+
dimensions: {
|
256
|
+
user_email: {
|
257
|
+
tags: ['marketing', 'ai-enabled'],
|
258
|
+
},
|
259
|
+
},
|
260
|
+
metrics: {
|
261
|
+
sales_total: {
|
262
|
+
tags: ['marketing'],
|
263
|
+
},
|
264
|
+
},
|
265
|
+
},
|
266
|
+
},
|
267
|
+
};
|
268
|
+
const expectedResult = {
|
269
|
+
baseTable: 'customers',
|
270
|
+
tags: [],
|
271
|
+
tables: {
|
272
|
+
customers: {
|
273
|
+
dimensions: {
|
274
|
+
customer_name: {
|
275
|
+
tags: ['pii', 'ai-enabled'],
|
276
|
+
},
|
277
|
+
},
|
278
|
+
metrics: {},
|
279
|
+
},
|
280
|
+
sales: {
|
281
|
+
dimensions: {
|
282
|
+
user_email: {
|
283
|
+
tags: ['marketing', 'ai-enabled'],
|
284
|
+
},
|
285
|
+
},
|
286
|
+
metrics: {},
|
287
|
+
},
|
288
|
+
},
|
289
|
+
};
|
290
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
291
|
+
availableTags: ['ai-enabled'],
|
292
|
+
explore,
|
293
|
+
})).toStrictEqual(expectedResult);
|
294
|
+
});
|
295
|
+
test('should filter fields when both explore and base table fields have matching tags', async () => {
|
296
|
+
const explore = {
|
297
|
+
baseTable: 'customers',
|
298
|
+
tags: ['ai-enabled'],
|
299
|
+
tables: {
|
300
|
+
customers: {
|
301
|
+
dimensions: {
|
302
|
+
customer_name: {
|
303
|
+
tags: ['pii', 'ai-enabled'],
|
304
|
+
},
|
305
|
+
internal_id: {
|
306
|
+
tags: ['pii'],
|
307
|
+
},
|
308
|
+
},
|
309
|
+
metrics: {
|
310
|
+
revenue: {},
|
311
|
+
},
|
312
|
+
},
|
313
|
+
sales: {
|
314
|
+
dimensions: {
|
315
|
+
user_email: {
|
316
|
+
tags: ['marketing', 'ai-enabled'],
|
317
|
+
},
|
318
|
+
},
|
319
|
+
metrics: {
|
320
|
+
sales_total: {
|
321
|
+
tags: ['marketing'],
|
322
|
+
},
|
323
|
+
},
|
324
|
+
},
|
325
|
+
},
|
326
|
+
};
|
327
|
+
const expectedResult = {
|
328
|
+
baseTable: 'customers',
|
329
|
+
tags: ['ai-enabled'],
|
330
|
+
tables: {
|
331
|
+
customers: {
|
332
|
+
dimensions: {
|
333
|
+
customer_name: {
|
334
|
+
tags: ['pii', 'ai-enabled'],
|
335
|
+
},
|
336
|
+
},
|
337
|
+
metrics: {},
|
338
|
+
},
|
339
|
+
sales: {
|
340
|
+
dimensions: {
|
341
|
+
user_email: {
|
342
|
+
tags: ['marketing', 'ai-enabled'],
|
343
|
+
},
|
344
|
+
},
|
345
|
+
metrics: {},
|
346
|
+
},
|
347
|
+
},
|
348
|
+
};
|
349
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
350
|
+
availableTags: ['ai-enabled'],
|
351
|
+
explore,
|
352
|
+
})).toStrictEqual(expectedResult);
|
353
|
+
});
|
354
|
+
test('should handle fields with multiple tags where only some match AI settings', async () => {
|
355
|
+
const explore = {
|
356
|
+
baseTable: 'customers',
|
357
|
+
tags: [],
|
358
|
+
tables: {
|
359
|
+
customers: {
|
360
|
+
dimensions: {
|
361
|
+
customer_name: {
|
362
|
+
tags: ['pii', 'sensitive', 'ai-enabled'],
|
363
|
+
},
|
364
|
+
customer_segment: {
|
365
|
+
tags: ['marketing', 'analytics'],
|
366
|
+
},
|
367
|
+
},
|
368
|
+
metrics: {
|
369
|
+
lifetime_value: {
|
370
|
+
tags: ['ai-enabled', 'finance'],
|
371
|
+
},
|
372
|
+
},
|
373
|
+
},
|
374
|
+
},
|
375
|
+
};
|
376
|
+
const result = (0, filterExploreByTags_1.filterExploreByTags)({
|
377
|
+
availableTags: ['ai-enabled'],
|
378
|
+
explore,
|
379
|
+
});
|
380
|
+
expect(result?.tables.customers.dimensions).toHaveProperty('customer_name');
|
381
|
+
expect(result?.tables.customers.dimensions).not.toHaveProperty('customer_segment');
|
382
|
+
expect(result?.tables.customers.metrics).toHaveProperty('lifetime_value');
|
383
|
+
});
|
384
|
+
test('should handle duplicate tags in available tags list', async () => {
|
385
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
386
|
+
availableTags: ['ai-enabled', 'ai-enabled', 'marketing'],
|
387
|
+
explore: {
|
388
|
+
baseTable: 'customers',
|
389
|
+
tags: ['ai-enabled'],
|
390
|
+
tables: {
|
391
|
+
customers: {
|
392
|
+
dimensions: {},
|
393
|
+
metrics: {},
|
394
|
+
},
|
395
|
+
},
|
396
|
+
},
|
397
|
+
})).toBeDefined();
|
398
|
+
});
|
399
|
+
test('should handle case where field tags array contains duplicates', async () => {
|
400
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
401
|
+
availableTags: ['ai-enabled'],
|
402
|
+
explore: {
|
403
|
+
baseTable: 'customers',
|
404
|
+
tags: [],
|
405
|
+
tables: {
|
406
|
+
customers: {
|
407
|
+
dimensions: {
|
408
|
+
customer_name: {
|
409
|
+
tags: ['ai-enabled', 'ai-enabled', 'pii'],
|
410
|
+
},
|
411
|
+
},
|
412
|
+
metrics: {},
|
413
|
+
},
|
414
|
+
},
|
415
|
+
},
|
416
|
+
})).toBeDefined();
|
417
|
+
});
|
418
|
+
test('should return undefined when base table has no dimensions or metrics', async () => {
|
419
|
+
expect((0, filterExploreByTags_1.filterExploreByTags)({
|
420
|
+
availableTags: ['ai-enabled'],
|
421
|
+
explore: {
|
422
|
+
baseTable: 'empty_table',
|
423
|
+
tags: [],
|
424
|
+
tables: {
|
425
|
+
empty_table: {
|
426
|
+
dimensions: {},
|
427
|
+
metrics: {},
|
428
|
+
},
|
429
|
+
},
|
430
|
+
},
|
431
|
+
})).toBeUndefined();
|
432
|
+
});
|
433
|
+
});
|
434
|
+
//# sourceMappingURL=filterExploreByTags.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filterExploreByTags.test.js","sourceRoot":"","sources":["../../../../src/ee/AiAgent/filterExploreByTags.test.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ee/AiAgent/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ee/AiAgent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiC1B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,MAAM,MAAM,OAAO,GAAG,IAAI,CACtB,WAAW,EACT,MAAM,GACN,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,MAAM,GACN,MAAM,GACN,WAAW,GACX,WAAW,GACX,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAC7B,OAAO,EACL,MAAM,GACN,MAAM,GACN,cAAc,GACd,MAAM,GACN,aAAa,GACb,kBAAkB,GAClB,WAAW,GACX,WAAW,GACX,aAAa,CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAElB,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAElB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;AAE1E,MAAM,MAAM,oBAAoB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,oBAAoB,GAAG;IAC/C,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAC/B,OAAO,EACP,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CACnE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAClC,IAAI,CACA,OAAO,EACP,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CACnE,CACJ,GAAG;IACA,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAAG;IAC9C,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,cAAc,uBAAuB,CAAC"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.baseAgentSchema = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
4
5
|
const zod_1 = require("zod");
|
5
6
|
exports.baseAgentSchema = zod_1.z.object({
|
6
7
|
uuid: zod_1.z.string(),
|
@@ -26,4 +27,5 @@ exports.baseAgentSchema = zod_1.z.object({
|
|
26
27
|
provider: zod_1.z.string(),
|
27
28
|
model: zod_1.z.string(),
|
28
29
|
});
|
30
|
+
tslib_1.__exportStar(require("./filterExploreByTags"), exports);
|
29
31
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ee/AiAgent/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ee/AiAgent/index.ts"],"names":[],"mappings":";;;;AAAA,6BAAwB;AAEX,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE;IAE5B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IAEpB,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEpC,YAAY,EAAE,OAAC,CAAC,KAAK;IACjB,YAAY;IACZ,2DAA2D;IAC3D,OAAC,CAAC,MAAM,CAAC;QACL,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;KACxB,CAAC,CAEL;IAED,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE;IAC1B,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE;IAE1B,WAAW,EAAE,OAAC;SACT,MAAM,EAAE;SACR,GAAG,CACA,IAAI,EACJ,sEAAsE,CACzE;SACA,QAAQ,EAAE;IACf,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAiHH,gEAAsC"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
type FilterableTable = {
|
2
|
+
dimensions: Record<string, {
|
3
|
+
tags?: string[];
|
4
|
+
}>;
|
5
|
+
metrics: Record<string, {
|
6
|
+
tags?: string[];
|
7
|
+
}>;
|
8
|
+
};
|
9
|
+
type FilterableExplore<T extends FilterableTable = FilterableTable> = {
|
10
|
+
tags: string[];
|
11
|
+
baseTable: string;
|
12
|
+
tables: {
|
13
|
+
[tableName: string]: T;
|
14
|
+
};
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* @description
|
18
|
+
*
|
19
|
+
* No tags are configured in settings UI:
|
20
|
+
*
|
21
|
+
* | Tagging Scenario | AI Visibility |
|
22
|
+
* |-----------------------------------|----------------------------------|
|
23
|
+
* | No tags configured in settings UI | Everything is visible by default |
|
24
|
+
*
|
25
|
+
* ---
|
26
|
+
*
|
27
|
+
* Tags are configured in settings UI:
|
28
|
+
*
|
29
|
+
* | Tagging Scenario | AI Visibility |
|
30
|
+
* |--------------------------------------|-----------------------------|
|
31
|
+
* | Explore only (with matching tag) | All fields in the Explore |
|
32
|
+
* | Some fields only (with matching tag) | Only those tagged fields |
|
33
|
+
* | Explore + some fields (with match) | Only those tagged fields |
|
34
|
+
* | No matching tags | Nothing is visible |
|
35
|
+
*/
|
36
|
+
export declare function filterExploreByTags<E extends FilterableExplore>({ explore, availableTags, }: {
|
37
|
+
explore: E;
|
38
|
+
availableTags: string[] | null;
|
39
|
+
}): E | undefined;
|
40
|
+
export {};
|
41
|
+
//# sourceMappingURL=filterExploreByTags.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filterExploreByTags.d.ts","sourceRoot":"","sources":["../../../../src/ee/AiAgent/filterExploreByTags.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IAClE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAA;KAAE,CAAC;CACtC,CAAC;AAkCF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,iBAAiB,EAAE,EAC7D,OAAO,EACP,aAAa,GAChB,EAAE;IACC,OAAO,EAAE,CAAC,CAAC;IACX,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAClC,iBAgCA"}
|