@lightdash/common 0.1657.0 → 0.1659.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 (32) hide show
  1. package/dist/cjs/ee/AiAgent/filterExploreByTags.d.ts +41 -0
  2. package/dist/cjs/ee/AiAgent/filterExploreByTags.d.ts.map +1 -0
  3. package/dist/cjs/ee/AiAgent/filterExploreByTags.js +64 -0
  4. package/dist/cjs/ee/AiAgent/filterExploreByTags.js.map +1 -0
  5. package/dist/cjs/ee/AiAgent/filterExploreByTags.test.d.ts +2 -0
  6. package/dist/cjs/ee/AiAgent/filterExploreByTags.test.d.ts.map +1 -0
  7. package/dist/cjs/ee/AiAgent/filterExploreByTags.test.js +434 -0
  8. package/dist/cjs/ee/AiAgent/filterExploreByTags.test.js.map +1 -0
  9. package/dist/cjs/ee/AiAgent/index.d.ts +1 -0
  10. package/dist/cjs/ee/AiAgent/index.d.ts.map +1 -1
  11. package/dist/cjs/ee/AiAgent/index.js +2 -0
  12. package/dist/cjs/ee/AiAgent/index.js.map +1 -1
  13. package/dist/esm/ee/AiAgent/filterExploreByTags.d.ts +41 -0
  14. package/dist/esm/ee/AiAgent/filterExploreByTags.d.ts.map +1 -0
  15. package/dist/esm/ee/AiAgent/filterExploreByTags.js +61 -0
  16. package/dist/esm/ee/AiAgent/filterExploreByTags.js.map +1 -0
  17. package/dist/esm/ee/AiAgent/filterExploreByTags.test.d.ts +2 -0
  18. package/dist/esm/ee/AiAgent/filterExploreByTags.test.d.ts.map +1 -0
  19. package/dist/esm/ee/AiAgent/filterExploreByTags.test.js +432 -0
  20. package/dist/esm/ee/AiAgent/filterExploreByTags.test.js.map +1 -0
  21. package/dist/esm/ee/AiAgent/index.d.ts +1 -0
  22. package/dist/esm/ee/AiAgent/index.d.ts.map +1 -1
  23. package/dist/esm/ee/AiAgent/index.js +1 -0
  24. package/dist/esm/ee/AiAgent/index.js.map +1 -1
  25. package/dist/tsconfig.types.tsbuildinfo +1 -1
  26. package/dist/types/ee/AiAgent/filterExploreByTags.d.ts +41 -0
  27. package/dist/types/ee/AiAgent/filterExploreByTags.d.ts.map +1 -0
  28. package/dist/types/ee/AiAgent/filterExploreByTags.test.d.ts +2 -0
  29. package/dist/types/ee/AiAgent/filterExploreByTags.test.d.ts.map +1 -0
  30. package/dist/types/ee/AiAgent/index.d.ts +1 -0
  31. package/dist/types/ee/AiAgent/index.d.ts.map +1 -1
  32. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filterExploreByTags.test.d.ts.map
@@ -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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"}
@@ -121,4 +121,5 @@ export type ApiAiAgentThreadResponse = {
121
121
  status: 'ok';
122
122
  results: AiAgentThread;
123
123
  };
124
+ export * from './filterExploreByTags';
124
125
  //# sourceMappingURL=index.d.ts.map
@@ -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":"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"}
@@ -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":";;;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"}
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"}