@devrev/meerkat-node 0.0.122 → 0.0.124

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.
@@ -0,0 +1,453 @@
1
+ /**
2
+ * TableSchema Definitions for Synthetic Test Tables
3
+ *
4
+ * These schemas match the synthetic tables created in schema-setup.ts
5
+ * and follow the same conventions as production Meerkat schemas.
6
+ */ "use strict";
7
+ function _export(target, all) {
8
+ for(var name in all)Object.defineProperty(target, name, {
9
+ enumerable: true,
10
+ get: all[name]
11
+ });
12
+ }
13
+ _export(exports, {
14
+ DIM_PART_SCHEMA: function() {
15
+ return DIM_PART_SCHEMA;
16
+ },
17
+ DIM_USER_SCHEMA: function() {
18
+ return DIM_USER_SCHEMA;
19
+ },
20
+ FACT_ALL_TYPES_SCHEMA: function() {
21
+ return FACT_ALL_TYPES_SCHEMA;
22
+ },
23
+ getAllSchemas: function() {
24
+ return getAllSchemas;
25
+ },
26
+ getFactSchema: function() {
27
+ return getFactSchema;
28
+ },
29
+ getFactWithPartSchema: function() {
30
+ return getFactWithPartSchema;
31
+ },
32
+ getFactWithUserSchema: function() {
33
+ return getFactWithUserSchema;
34
+ }
35
+ });
36
+ const FACT_ALL_TYPES_SCHEMA = {
37
+ name: 'fact_all_types',
38
+ sql: 'SELECT * FROM fact_all_types',
39
+ measures: [
40
+ // Numeric measures
41
+ {
42
+ name: 'metric_bigint',
43
+ sql: 'metric_bigint',
44
+ type: 'number'
45
+ },
46
+ {
47
+ name: 'small_bigint',
48
+ sql: 'small_bigint',
49
+ type: 'number'
50
+ },
51
+ {
52
+ name: 'metric_numeric',
53
+ sql: 'metric_numeric',
54
+ type: 'number'
55
+ },
56
+ {
57
+ name: 'precise_numeric',
58
+ sql: 'precise_numeric',
59
+ type: 'number'
60
+ },
61
+ {
62
+ name: 'metric_double',
63
+ sql: 'metric_double',
64
+ type: 'number'
65
+ },
66
+ {
67
+ name: 'metric_float',
68
+ sql: 'metric_float',
69
+ type: 'number'
70
+ },
71
+ {
72
+ name: 'nullable_int',
73
+ sql: 'nullable_int',
74
+ type: 'number'
75
+ },
76
+ {
77
+ name: 'mtti_seconds',
78
+ sql: 'mtti_seconds',
79
+ type: 'number'
80
+ },
81
+ {
82
+ name: 'severity_id_int',
83
+ sql: 'severity_id_int',
84
+ type: 'number'
85
+ },
86
+ // Aggregate measures
87
+ {
88
+ name: 'count',
89
+ sql: 'COUNT(*)',
90
+ type: 'number'
91
+ },
92
+ {
93
+ name: 'sum_metric_bigint',
94
+ sql: 'SUM(metric_bigint)',
95
+ type: 'number'
96
+ },
97
+ {
98
+ name: 'avg_metric_double',
99
+ sql: 'AVG(metric_double)',
100
+ type: 'number'
101
+ },
102
+ {
103
+ name: 'min_metric_numeric',
104
+ sql: 'MIN(metric_numeric)',
105
+ type: 'number'
106
+ },
107
+ {
108
+ name: 'max_metric_numeric',
109
+ sql: 'MAX(metric_numeric)',
110
+ type: 'number'
111
+ },
112
+ {
113
+ name: 'count_distinct_user_id',
114
+ sql: 'COUNT(DISTINCT user_id)',
115
+ type: 'number'
116
+ }
117
+ ],
118
+ dimensions: [
119
+ // ID fields
120
+ {
121
+ name: 'id_bigint',
122
+ sql: 'id_bigint',
123
+ type: 'number'
124
+ },
125
+ {
126
+ name: 'incident_id',
127
+ sql: 'incident_id',
128
+ type: 'string'
129
+ },
130
+ {
131
+ name: 'user_id',
132
+ sql: 'user_id',
133
+ type: 'string'
134
+ },
135
+ {
136
+ name: 'part_id',
137
+ sql: 'part_id',
138
+ type: 'string'
139
+ },
140
+ // Boolean dimensions
141
+ {
142
+ name: 'is_deleted',
143
+ sql: 'is_deleted',
144
+ type: 'boolean'
145
+ },
146
+ {
147
+ name: 'flag_boolean',
148
+ sql: 'flag_boolean',
149
+ type: 'boolean'
150
+ },
151
+ {
152
+ name: 'is_active',
153
+ sql: 'is_active',
154
+ type: 'boolean'
155
+ },
156
+ {
157
+ name: 'resolved_by',
158
+ sql: 'resolved_by',
159
+ type: 'number'
160
+ },
161
+ // String/enum dimensions
162
+ {
163
+ name: 'priority',
164
+ sql: 'priority',
165
+ type: 'string'
166
+ },
167
+ {
168
+ name: 'status',
169
+ sql: 'status',
170
+ type: 'string'
171
+ },
172
+ {
173
+ name: 'severity_label',
174
+ sql: 'severity_label',
175
+ type: 'string'
176
+ },
177
+ {
178
+ name: 'environment',
179
+ sql: 'environment',
180
+ type: 'string'
181
+ },
182
+ {
183
+ name: 'title',
184
+ sql: 'title',
185
+ type: 'string'
186
+ },
187
+ {
188
+ name: 'description',
189
+ sql: 'description',
190
+ type: 'string'
191
+ },
192
+ {
193
+ name: 'nullable_string',
194
+ sql: 'nullable_string',
195
+ type: 'string'
196
+ },
197
+ {
198
+ name: 'edge_case_string',
199
+ sql: 'edge_case_string',
200
+ type: 'string'
201
+ },
202
+ // Date dimensions
203
+ {
204
+ name: 'record_date',
205
+ sql: 'record_date',
206
+ type: 'time'
207
+ },
208
+ {
209
+ name: 'created_date',
210
+ sql: 'created_date',
211
+ type: 'time'
212
+ },
213
+ {
214
+ name: 'mitigated_date',
215
+ sql: 'mitigated_date',
216
+ type: 'time'
217
+ },
218
+ {
219
+ name: 'partition_record_date',
220
+ sql: 'partition_record_date',
221
+ type: 'time'
222
+ },
223
+ {
224
+ name: 'nullable_date',
225
+ sql: 'nullable_date',
226
+ type: 'time'
227
+ },
228
+ // Timestamp dimensions
229
+ {
230
+ name: 'created_timestamp',
231
+ sql: 'created_timestamp',
232
+ type: 'time'
233
+ },
234
+ {
235
+ name: 'identified_timestamp',
236
+ sql: 'identified_timestamp',
237
+ type: 'time'
238
+ },
239
+ {
240
+ name: 'deployment_time',
241
+ sql: 'deployment_time',
242
+ type: 'time'
243
+ },
244
+ {
245
+ name: 'partition_record_ts',
246
+ sql: 'partition_record_ts',
247
+ type: 'time'
248
+ },
249
+ // Array dimensions
250
+ {
251
+ name: 'tags',
252
+ sql: 'tags',
253
+ type: 'string_array'
254
+ },
255
+ {
256
+ name: 'owned_by_ids',
257
+ sql: 'owned_by_ids',
258
+ type: 'string_array'
259
+ },
260
+ {
261
+ name: 'part_ids',
262
+ sql: 'part_ids',
263
+ type: 'string_array'
264
+ },
265
+ // JSON-derived dimensions (stored as VARCHAR)
266
+ {
267
+ name: 'metadata_json',
268
+ sql: 'metadata_json',
269
+ type: 'string'
270
+ },
271
+ {
272
+ name: 'stage_json',
273
+ sql: 'stage_json',
274
+ type: 'string'
275
+ },
276
+ {
277
+ name: 'impact_json',
278
+ sql: 'impact_json',
279
+ type: 'string'
280
+ },
281
+ // Derived dimensions
282
+ {
283
+ name: 'created_month',
284
+ sql: 'created_month',
285
+ type: 'string'
286
+ },
287
+ // JSON extracted dimensions (examples of how to extract JSON fields)
288
+ {
289
+ name: 'severity_id_from_json',
290
+ sql: "CAST(json_extract_path_text(metadata_json, 'severity_id') AS INTEGER)",
291
+ type: 'number'
292
+ },
293
+ {
294
+ name: 'impact_from_json',
295
+ sql: "json_extract_path_text(metadata_json, 'impact')",
296
+ type: 'string'
297
+ }
298
+ ]
299
+ };
300
+ const DIM_USER_SCHEMA = {
301
+ name: 'dim_user',
302
+ sql: 'SELECT * FROM dim_user',
303
+ measures: [
304
+ {
305
+ name: 'count_users',
306
+ sql: 'COUNT(*)',
307
+ type: 'number'
308
+ },
309
+ {
310
+ name: 'count_distinct_users',
311
+ sql: 'COUNT(DISTINCT user_id)',
312
+ type: 'number'
313
+ }
314
+ ],
315
+ dimensions: [
316
+ {
317
+ name: 'user_id',
318
+ sql: 'user_id',
319
+ type: 'string'
320
+ },
321
+ {
322
+ name: 'user_name',
323
+ sql: 'user_name',
324
+ type: 'string'
325
+ },
326
+ {
327
+ name: 'user_email',
328
+ sql: 'user_email',
329
+ type: 'string'
330
+ },
331
+ {
332
+ name: 'user_segment',
333
+ sql: 'user_segment',
334
+ type: 'string'
335
+ },
336
+ {
337
+ name: 'user_department',
338
+ sql: 'user_department',
339
+ type: 'string'
340
+ },
341
+ {
342
+ name: 'user_created_date',
343
+ sql: 'user_created_date',
344
+ type: 'time'
345
+ },
346
+ {
347
+ name: 'is_active_user',
348
+ sql: 'is_active_user',
349
+ type: 'boolean'
350
+ }
351
+ ],
352
+ joins: [
353
+ {
354
+ name: 'fact_all_types',
355
+ relationship: 'belongsTo',
356
+ sql: 'fact_all_types.user_id = dim_user.user_id'
357
+ }
358
+ ]
359
+ };
360
+ const DIM_PART_SCHEMA = {
361
+ name: 'dim_part',
362
+ sql: 'SELECT * FROM dim_part',
363
+ measures: [
364
+ {
365
+ name: 'count_parts',
366
+ sql: 'COUNT(*)',
367
+ type: 'number'
368
+ },
369
+ {
370
+ name: 'avg_weight',
371
+ sql: 'AVG(weight)',
372
+ type: 'number'
373
+ },
374
+ {
375
+ name: 'avg_price',
376
+ sql: 'AVG(price)',
377
+ type: 'number'
378
+ },
379
+ {
380
+ name: 'sum_weight',
381
+ sql: 'SUM(weight)',
382
+ type: 'number'
383
+ }
384
+ ],
385
+ dimensions: [
386
+ {
387
+ name: 'part_id',
388
+ sql: 'part_id',
389
+ type: 'string'
390
+ },
391
+ {
392
+ name: 'part_name',
393
+ sql: 'part_name',
394
+ type: 'string'
395
+ },
396
+ {
397
+ name: 'product_category',
398
+ sql: 'product_category',
399
+ type: 'string'
400
+ },
401
+ {
402
+ name: 'product_tier',
403
+ sql: 'product_tier',
404
+ type: 'string'
405
+ },
406
+ {
407
+ name: 'weight',
408
+ sql: 'weight',
409
+ type: 'number'
410
+ },
411
+ {
412
+ name: 'price',
413
+ sql: 'price',
414
+ type: 'number'
415
+ },
416
+ {
417
+ name: 'in_stock',
418
+ sql: 'in_stock',
419
+ type: 'boolean'
420
+ }
421
+ ],
422
+ joins: [
423
+ {
424
+ name: 'fact_all_types',
425
+ relationship: 'belongsTo',
426
+ sql: 'fact_all_types.part_id = dim_part.part_id'
427
+ }
428
+ ]
429
+ };
430
+ function getAllSchemas() {
431
+ return [
432
+ FACT_ALL_TYPES_SCHEMA,
433
+ DIM_USER_SCHEMA,
434
+ DIM_PART_SCHEMA
435
+ ];
436
+ }
437
+ function getFactSchema() {
438
+ return FACT_ALL_TYPES_SCHEMA;
439
+ }
440
+ function getFactWithUserSchema() {
441
+ return [
442
+ FACT_ALL_TYPES_SCHEMA,
443
+ DIM_USER_SCHEMA
444
+ ];
445
+ }
446
+ function getFactWithPartSchema() {
447
+ return [
448
+ FACT_ALL_TYPES_SCHEMA,
449
+ DIM_PART_SCHEMA
450
+ ];
451
+ }
452
+
453
+ //# sourceMappingURL=table-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-node/src/__tests__/comprehensive/synthetic/table-schemas.ts"],"sourcesContent":["/**\n * TableSchema Definitions for Synthetic Test Tables\n * \n * These schemas match the synthetic tables created in schema-setup.ts\n * and follow the same conventions as production Meerkat schemas.\n */\n\nexport const FACT_ALL_TYPES_SCHEMA = {\n name: 'fact_all_types',\n sql: 'SELECT * FROM fact_all_types',\n \n measures: [\n // Numeric measures\n { name: 'metric_bigint', sql: 'metric_bigint', type: 'number' },\n { name: 'small_bigint', sql: 'small_bigint', type: 'number' },\n { name: 'metric_numeric', sql: 'metric_numeric', type: 'number' },\n { name: 'precise_numeric', sql: 'precise_numeric', type: 'number' },\n { name: 'metric_double', sql: 'metric_double', type: 'number' },\n { name: 'metric_float', sql: 'metric_float', type: 'number' },\n { name: 'nullable_int', sql: 'nullable_int', type: 'number' },\n { name: 'mtti_seconds', sql: 'mtti_seconds', type: 'number' },\n { name: 'severity_id_int', sql: 'severity_id_int', type: 'number' },\n \n // Aggregate measures\n { name: 'count', sql: 'COUNT(*)', type: 'number' },\n { name: 'sum_metric_bigint', sql: 'SUM(metric_bigint)', type: 'number' },\n { name: 'avg_metric_double', sql: 'AVG(metric_double)', type: 'number' },\n { name: 'min_metric_numeric', sql: 'MIN(metric_numeric)', type: 'number' },\n { name: 'max_metric_numeric', sql: 'MAX(metric_numeric)', type: 'number' },\n { name: 'count_distinct_user_id', sql: 'COUNT(DISTINCT user_id)', type: 'number' },\n ],\n \n dimensions: [\n // ID fields\n { name: 'id_bigint', sql: 'id_bigint', type: 'number' },\n { name: 'incident_id', sql: 'incident_id', type: 'string' },\n { name: 'user_id', sql: 'user_id', type: 'string' },\n { name: 'part_id', sql: 'part_id', type: 'string' },\n \n // Boolean dimensions\n { name: 'is_deleted', sql: 'is_deleted', type: 'boolean' },\n { name: 'flag_boolean', sql: 'flag_boolean', type: 'boolean' },\n { name: 'is_active', sql: 'is_active', type: 'boolean' },\n { name: 'resolved_by', sql: 'resolved_by', type: 'number' },\n \n // String/enum dimensions\n { name: 'priority', sql: 'priority', type: 'string' },\n { name: 'status', sql: 'status', type: 'string' },\n { name: 'severity_label', sql: 'severity_label', type: 'string' },\n { name: 'environment', sql: 'environment', type: 'string' },\n { name: 'title', sql: 'title', type: 'string' },\n { name: 'description', sql: 'description', type: 'string' },\n { name: 'nullable_string', sql: 'nullable_string', type: 'string' },\n { name: 'edge_case_string', sql: 'edge_case_string', type: 'string' },\n \n // Date dimensions\n { name: 'record_date', sql: 'record_date', type: 'time' },\n { name: 'created_date', sql: 'created_date', type: 'time' },\n { name: 'mitigated_date', sql: 'mitigated_date', type: 'time' },\n { name: 'partition_record_date', sql: 'partition_record_date', type: 'time' },\n { name: 'nullable_date', sql: 'nullable_date', type: 'time' },\n \n // Timestamp dimensions\n { name: 'created_timestamp', sql: 'created_timestamp', type: 'time' },\n { name: 'identified_timestamp', sql: 'identified_timestamp', type: 'time' },\n { name: 'deployment_time', sql: 'deployment_time', type: 'time' },\n { name: 'partition_record_ts', sql: 'partition_record_ts', type: 'time' },\n \n // Array dimensions\n { name: 'tags', sql: 'tags', type: 'string_array' },\n { name: 'owned_by_ids', sql: 'owned_by_ids', type: 'string_array' },\n { name: 'part_ids', sql: 'part_ids', type: 'string_array' },\n \n // JSON-derived dimensions (stored as VARCHAR)\n { name: 'metadata_json', sql: 'metadata_json', type: 'string' },\n { name: 'stage_json', sql: 'stage_json', type: 'string' },\n { name: 'impact_json', sql: 'impact_json', type: 'string' },\n \n // Derived dimensions\n { name: 'created_month', sql: 'created_month', type: 'string' },\n \n // JSON extracted dimensions (examples of how to extract JSON fields)\n { \n name: 'severity_id_from_json', \n sql: \"CAST(json_extract_path_text(metadata_json, 'severity_id') AS INTEGER)\", \n type: 'number' \n },\n { \n name: 'impact_from_json', \n sql: \"json_extract_path_text(metadata_json, 'impact')\", \n type: 'string' \n },\n ],\n};\n\nexport const DIM_USER_SCHEMA = {\n name: 'dim_user',\n sql: 'SELECT * FROM dim_user',\n \n measures: [\n { name: 'count_users', sql: 'COUNT(*)', type: 'number' },\n { name: 'count_distinct_users', sql: 'COUNT(DISTINCT user_id)', type: 'number' },\n ],\n \n dimensions: [\n { name: 'user_id', sql: 'user_id', type: 'string' },\n { name: 'user_name', sql: 'user_name', type: 'string' },\n { name: 'user_email', sql: 'user_email', type: 'string' },\n { name: 'user_segment', sql: 'user_segment', type: 'string' },\n { name: 'user_department', sql: 'user_department', type: 'string' },\n { name: 'user_created_date', sql: 'user_created_date', type: 'time' },\n { name: 'is_active_user', sql: 'is_active_user', type: 'boolean' },\n ],\n \n joins: [\n {\n name: 'fact_all_types',\n relationship: 'belongsTo',\n sql: 'fact_all_types.user_id = dim_user.user_id',\n },\n ],\n};\n\nexport const DIM_PART_SCHEMA = {\n name: 'dim_part',\n sql: 'SELECT * FROM dim_part',\n \n measures: [\n { name: 'count_parts', sql: 'COUNT(*)', type: 'number' },\n { name: 'avg_weight', sql: 'AVG(weight)', type: 'number' },\n { name: 'avg_price', sql: 'AVG(price)', type: 'number' },\n { name: 'sum_weight', sql: 'SUM(weight)', type: 'number' },\n ],\n \n dimensions: [\n { name: 'part_id', sql: 'part_id', type: 'string' },\n { name: 'part_name', sql: 'part_name', type: 'string' },\n { name: 'product_category', sql: 'product_category', type: 'string' },\n { name: 'product_tier', sql: 'product_tier', type: 'string' },\n { name: 'weight', sql: 'weight', type: 'number' },\n { name: 'price', sql: 'price', type: 'number' },\n { name: 'in_stock', sql: 'in_stock', type: 'boolean' },\n ],\n \n joins: [\n {\n name: 'fact_all_types',\n relationship: 'belongsTo',\n sql: 'fact_all_types.part_id = dim_part.part_id',\n },\n ],\n};\n\n/**\n * Helper to get all schemas as an array\n */\nexport function getAllSchemas() {\n return [FACT_ALL_TYPES_SCHEMA, DIM_USER_SCHEMA, DIM_PART_SCHEMA];\n}\n\n/**\n * Helper to get just the fact schema\n */\nexport function getFactSchema() {\n return FACT_ALL_TYPES_SCHEMA;\n}\n\n/**\n * Helper to get fact + one dimension\n */\nexport function getFactWithUserSchema() {\n return [FACT_ALL_TYPES_SCHEMA, DIM_USER_SCHEMA];\n}\n\nexport function getFactWithPartSchema() {\n return [FACT_ALL_TYPES_SCHEMA, DIM_PART_SCHEMA];\n}\n\n"],"names":["DIM_PART_SCHEMA","DIM_USER_SCHEMA","FACT_ALL_TYPES_SCHEMA","getAllSchemas","getFactSchema","getFactWithPartSchema","getFactWithUserSchema","name","sql","measures","type","dimensions","joins","relationship"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ function _export(target, all) {
3
+ for(var name in all)Object.defineProperty(target, name, {
4
+ enumerable: true,
5
+ get: all[name]
6
+ });
7
+ }
8
+ _export(exports, {
9
+ ensureTableSchemaAlias: function() {
10
+ return ensureTableSchemaAlias;
11
+ },
12
+ ensureTableSchemasAlias: function() {
13
+ return ensureTableSchemasAlias;
14
+ }
15
+ });
16
+ const _meerkatcore = require("@devrev/meerkat-core");
17
+ const _duckdbexec = require("../duckdb-exec");
18
+ const ensureTableSchemasAlias = async (tableSchemas)=>{
19
+ return (0, _meerkatcore.ensureTableSchemaAliasSql)({
20
+ tableSchemas,
21
+ ensureExpressionAlias: async ({ items })=>{
22
+ const aliasedItems = await (0, _meerkatcore.ensureColumnAliasBatch)({
23
+ items: items.map((item)=>({
24
+ sql: item.sql,
25
+ tableName: item.context.tableName
26
+ })),
27
+ executeQuery: (query)=>(0, _duckdbexec.duckdbExec)(query)
28
+ });
29
+ return aliasedItems.map((item)=>item.sql);
30
+ }
31
+ });
32
+ };
33
+ const ensureTableSchemaAlias = ()=>{
34
+ return async (tableSchemas)=>{
35
+ return ensureTableSchemasAlias(tableSchemas);
36
+ };
37
+ };
38
+
39
+ //# sourceMappingURL=ensure-table-schema-alias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-node/src/ensure-table-schema-alias/ensure-table-schema-alias.ts"],"sourcesContent":["import {\n TableSchema,\n ensureColumnAliasBatch,\n ensureTableSchemaAliasSql,\n} from '@devrev/meerkat-core';\nimport { duckdbExec } from '../duckdb-exec';\n\nexport const ensureTableSchemasAlias = async (\n tableSchemas: TableSchema[]\n): Promise<TableSchema[]> => {\n return ensureTableSchemaAliasSql({\n tableSchemas,\n ensureExpressionAlias: async ({ items }) => {\n const aliasedItems = await ensureColumnAliasBatch({\n items: items.map((item) => ({\n sql: item.sql,\n tableName: item.context.tableName,\n })),\n executeQuery: (query) =>\n duckdbExec<Record<string, string>[]>(query),\n });\n\n return aliasedItems.map((item) => item.sql);\n },\n });\n};\n\nexport const ensureTableSchemaAlias = () => {\n return async (tableSchemas: TableSchema[]): Promise<TableSchema[]> => {\n return ensureTableSchemasAlias(tableSchemas);\n };\n};\n"],"names":["ensureTableSchemaAlias","ensureTableSchemasAlias","tableSchemas","ensureTableSchemaAliasSql","ensureExpressionAlias","items","aliasedItems","ensureColumnAliasBatch","map","item","sql","tableName","context","executeQuery","query","duckdbExec"],"mappings":";;;;;;;;IA2BaA,sBAAsB;eAAtBA;;IApBAC,uBAAuB;eAAvBA;;;6BAHN;4BACoB;AAEpB,MAAMA,0BAA0B,OACrCC;IAEA,OAAOC,IAAAA,sCAAyB,EAAC;QAC/BD;QACAE,uBAAuB,OAAO,EAAEC,KAAK,EAAE;YACrC,MAAMC,eAAe,MAAMC,IAAAA,mCAAsB,EAAC;gBAChDF,OAAOA,MAAMG,GAAG,CAAC,CAACC,OAAU,CAAA;wBAC1BC,KAAKD,KAAKC,GAAG;wBACbC,WAAWF,KAAKG,OAAO,CAACD,SAAS;oBACnC,CAAA;gBACAE,cAAc,CAACC,QACbC,IAAAA,sBAAU,EAA2BD;YACzC;YAEA,OAAOR,aAAaE,GAAG,CAAC,CAACC,OAASA,KAAKC,GAAG;QAC5C;IACF;AACF;AAEO,MAAMV,yBAAyB;IACpC,OAAO,OAAOE;QACZ,OAAOD,wBAAwBC;IACjC;AACF"}
package/index.js CHANGED
@@ -6,5 +6,6 @@ _export_star._(require("./duckdb-manager/duckdb-manager"), exports);
6
6
  _export_star._(require("./duckdb-singleton"), exports);
7
7
  _export_star._(require("./file-manager/file-manager"), exports);
8
8
  _export_star._(require("./node-sql-to-serialization"), exports);
9
+ _export_star._(require("./ensure-table-schema-alias/ensure-table-schema-alias"), exports);
9
10
 
10
11
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../meerkat-node/src/index.ts"],"sourcesContent":["export * from './cube-to-sql-with-resolution/cube-to-sql-with-resolution';\nexport * from './cube-to-sql/cube-to-sql';\nexport * from './duckdb-manager/duckdb-manager';\nexport * from './duckdb-singleton';\nexport * from './file-manager/file-manager';\nexport * from './node-sql-to-serialization';\n"],"names":[],"mappings":";;uBAAc;uBACA;uBACA;uBACA;uBACA;uBACA"}
1
+ {"version":3,"sources":["../../meerkat-node/src/index.ts"],"sourcesContent":["export * from './cube-to-sql-with-resolution/cube-to-sql-with-resolution';\nexport * from './cube-to-sql/cube-to-sql';\nexport * from './duckdb-manager/duckdb-manager';\nexport * from './duckdb-singleton';\nexport * from './file-manager/file-manager';\nexport * from './node-sql-to-serialization';\nexport * from './ensure-table-schema-alias/ensure-table-schema-alias';\n"],"names":[],"mappings":";;uBAAc;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@devrev/meerkat-node",
3
- "version": "0.0.122",
3
+ "version": "0.0.124",
4
4
  "dependencies": {
5
5
  "@swc/helpers": "~0.5.0",
6
6
  "@devrev/meerkat-core": "*",
7
7
  "axios": "^1.13.5",
8
8
  "lodash": "^4.17.23",
9
- "duckdb": "^1.3.4"
9
+ "duckdb": "1.3.4"
10
10
  },
11
11
  "scripts": {
12
12
  "release": "semantic-release"
@@ -394,4 +394,25 @@ export declare const TEST_DATA_WITH_SAFE_ALIAS: ({
394
394
  product_id: string;
395
395
  vendors: null;
396
396
  })[];
397
- })[])[];
397
+ })[] | {
398
+ testName: string;
399
+ expectedSQL: string;
400
+ cubeInput: {
401
+ measures: string[];
402
+ filters: {
403
+ member: string;
404
+ operator: string;
405
+ values: number[];
406
+ }[];
407
+ dimensions: never[];
408
+ };
409
+ expectedOutput: {
410
+ order_id: number;
411
+ orders__order_id: number;
412
+ customer_id: string;
413
+ product_id: string;
414
+ order_date: string;
415
+ order_amount: number;
416
+ vendors: string[];
417
+ }[];
418
+ }[])[];
@@ -413,4 +413,25 @@ export declare const getTestData: () => ({
413
413
  product_id: string;
414
414
  vendors: null;
415
415
  })[];
416
- })[])[];
416
+ })[] | {
417
+ testName: string;
418
+ expectedSQL: string;
419
+ cubeInput: {
420
+ measures: string[];
421
+ filters: {
422
+ member: string;
423
+ operator: string;
424
+ values: number[];
425
+ }[];
426
+ dimensions: never[];
427
+ };
428
+ expectedOutput: {
429
+ order_id: number;
430
+ orders__order_id: number;
431
+ customer_id: string;
432
+ product_id: string;
433
+ order_date: string;
434
+ order_amount: number;
435
+ vendors: string[];
436
+ }[];
437
+ }[])[];