@quillsql/node 0.8.2 → 0.8.3

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,494 @@
1
+ /**
2
+ * Pivot Template System - SDK SIDE
3
+ *
4
+ * This file contains all the logic needed on the SDK to:
5
+ * 1. Hydrate pivot query templates with actual distinct values
6
+ * 2. Parse distinct values from different database result formats
7
+ * 3. Validate templates before hydration
8
+ *
9
+ * This runs on the customer's Node SDK where customer data is accessible.
10
+ * Takes templates from server and populates them with actual data.
11
+ */
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ // Utility function for ES2016 compatibility
22
+ function es2016replaceAll(str, search, replace) {
23
+ return str.split(search).join(replace);
24
+ }
25
+ // Constants
26
+ export const MAX_PIVOT_UNIQUE_VALUES = 250;
27
+ export const PIVOT_COLUMN_MARKER = "{{QUILL_PIVOT_COLUMNS}}";
28
+ export const PIVOT_COLUMN_ALIAS_MARKER = "{{QUILL_PIVOT_COLUMN_ALIASES}}";
29
+ // ============================================================================
30
+ // HELPER FUNCTIONS (copied from server for self-containment)
31
+ // ============================================================================
32
+ export function processSingleQuotes(value, databaseType) {
33
+ if (["postgresql", "snowflake", "clickhouse"].includes(databaseType.toLowerCase())) {
34
+ return es2016replaceAll(value, "'", "''");
35
+ }
36
+ return es2016replaceAll(value, "'", "\\'");
37
+ }
38
+ export function processAggType(aggType, hasColumnField = false) {
39
+ if (aggType === "count" && hasColumnField)
40
+ return "SUM";
41
+ return (aggType === null || aggType === void 0 ? void 0 : aggType.toLowerCase()) === "average" ? "AVG" : aggType === null || aggType === void 0 ? void 0 : aggType.toLowerCase();
42
+ }
43
+ function replaceBigQuerySpecialCharacters(column) {
44
+ return es2016replaceAll(column, "/", "quill_forward_slash");
45
+ }
46
+ export function processColumnReference(column, databaseType, fallbackOnNull, isColumnFieldAlias, isValueFieldAlias) {
47
+ switch (databaseType.toLowerCase()) {
48
+ case "postgresql":
49
+ case "clickhouse": {
50
+ if (column === "") {
51
+ return fallbackOnNull ? `"${fallbackOnNull}"` : `"_"`;
52
+ }
53
+ if (isColumnFieldAlias) {
54
+ return `"${es2016replaceAll(column, '"', "")}"`;
55
+ }
56
+ const columnParts = column.split(".");
57
+ if (columnParts.length > 1) {
58
+ return (`"` +
59
+ columnParts
60
+ .map((part) => es2016replaceAll(part, '"', ""))
61
+ .join('"."') +
62
+ `"`);
63
+ }
64
+ return `"${es2016replaceAll(column, '"', "")}"`;
65
+ }
66
+ case "mysql": {
67
+ if (column === "") {
68
+ return fallbackOnNull ? `${fallbackOnNull}` : "_";
69
+ }
70
+ if (isColumnFieldAlias) {
71
+ return `\`${es2016replaceAll(es2016replaceAll(column, `\``, ""), `"`, "")}\``;
72
+ }
73
+ const columnParts = column.split(".");
74
+ if (columnParts.length > 1) {
75
+ return (`\`` +
76
+ columnParts
77
+ .map((part) => es2016replaceAll(part, `\``, ""))
78
+ .join("`.`") +
79
+ `\``);
80
+ }
81
+ return `\`${es2016replaceAll(column, `\``, "")}\``;
82
+ }
83
+ case "snowflake": {
84
+ if (column === "") {
85
+ return fallbackOnNull ? `${fallbackOnNull}` : "_";
86
+ }
87
+ if (isColumnFieldAlias) {
88
+ return `"${es2016replaceAll(column, '"', "")}"`;
89
+ }
90
+ if (isValueFieldAlias) {
91
+ const cleanedColumn = es2016replaceAll(es2016replaceAll(column, ")", ""), "(", "_");
92
+ return `${cleanedColumn}`;
93
+ }
94
+ return column;
95
+ }
96
+ case "bigquery": {
97
+ if (column === "") {
98
+ return fallbackOnNull ? `\`${fallbackOnNull}\`` : "`_`";
99
+ }
100
+ if (isColumnFieldAlias) {
101
+ return `\`${replaceBigQuerySpecialCharacters(es2016replaceAll(column, "`", ""))}\``;
102
+ }
103
+ const columnParts = column.split(".");
104
+ if (columnParts.length > 1) {
105
+ return (`\`` +
106
+ columnParts
107
+ .map((part) => es2016replaceAll(part, `\``, ""))
108
+ .join("`.`") +
109
+ `\``);
110
+ }
111
+ return `\`${replaceBigQuerySpecialCharacters(es2016replaceAll(column, "`", ""))}\``;
112
+ }
113
+ case "mssql": {
114
+ if (column === "") {
115
+ return fallbackOnNull ? `[${fallbackOnNull}]` : `[_]`;
116
+ }
117
+ if (isColumnFieldAlias) {
118
+ return `[${es2016replaceAll(es2016replaceAll(column, "]", ""), "[", "")}]`;
119
+ }
120
+ const columnParts = column.split(".");
121
+ if (columnParts.length > 1) {
122
+ return (`[` +
123
+ columnParts
124
+ .map((part) => es2016replaceAll(es2016replaceAll(part, "]", ""), "[", ""))
125
+ .join("].[`") +
126
+ `]`);
127
+ }
128
+ return `[${es2016replaceAll(es2016replaceAll(column, "]", ""), "[", "")}]`;
129
+ }
130
+ case "databricks": {
131
+ if (column === "") {
132
+ return fallbackOnNull ? `[${fallbackOnNull}]` : `_`;
133
+ }
134
+ if (isColumnFieldAlias) {
135
+ return `\`${es2016replaceAll(es2016replaceAll(column, `\``, ""), `"`, "")}\``;
136
+ }
137
+ const columnParts = column.split(".");
138
+ if (columnParts.length > 1) {
139
+ return (`\`` +
140
+ columnParts
141
+ .map((part) => es2016replaceAll(part, `\``, ""))
142
+ .join("`.`") +
143
+ `\``);
144
+ }
145
+ return `\`${es2016replaceAll(column, `\``, "")}\``;
146
+ }
147
+ default:
148
+ return column;
149
+ }
150
+ }
151
+ export function processValueField(aggType, databaseType, valueField) {
152
+ if (aggType === "min" ||
153
+ aggType === "max" ||
154
+ (aggType === null || aggType === void 0 ? void 0 : aggType.toLowerCase()) === "average")
155
+ return `${processColumnReference(valueField, databaseType)} ELSE null`;
156
+ if (aggType === "count")
157
+ return `1 ELSE 0`;
158
+ return valueField
159
+ ? `${processColumnReference(valueField, databaseType)} ELSE 0`
160
+ : `1 ELSE 0`;
161
+ }
162
+ // ============================================================================
163
+ // DISTINCT VALUES PARSING
164
+ // ============================================================================
165
+ /**
166
+ * Parses distinct values from database query results.
167
+ * Different databases return different formats.
168
+ */
169
+ export function parseDistinctValues(queryResult, databaseType) {
170
+ if (!queryResult || !queryResult.rows || queryResult.rows.length === 0) {
171
+ return [];
172
+ }
173
+ const row = queryResult.rows[0];
174
+ let distinctValues = [];
175
+ switch (databaseType.toLowerCase()) {
176
+ case "postgresql":
177
+ case "bigquery":
178
+ case "snowflake":
179
+ case "databricks":
180
+ case "clickhouse":
181
+ // These return arrays in string_values field
182
+ if (row.string_values) {
183
+ if (Array.isArray(row.string_values)) {
184
+ distinctValues = row.string_values;
185
+ }
186
+ else if (typeof row.string_values === "string") {
187
+ // Handle JSON string arrays
188
+ try {
189
+ distinctValues = JSON.parse(row.string_values);
190
+ }
191
+ catch (_a) {
192
+ distinctValues = [];
193
+ }
194
+ }
195
+ }
196
+ break;
197
+ case "mysql":
198
+ // MySQL returns JSON_ARRAYAGG which should be an array
199
+ if (row.string_values) {
200
+ if (Array.isArray(row.string_values)) {
201
+ distinctValues = row.string_values;
202
+ }
203
+ else if (typeof row.string_values === "string") {
204
+ try {
205
+ distinctValues = JSON.parse(row.string_values);
206
+ }
207
+ catch (_b) {
208
+ distinctValues = [];
209
+ }
210
+ }
211
+ }
212
+ break;
213
+ case "mssql":
214
+ // MS SQL returns comma-separated string
215
+ if (row.string_values && typeof row.string_values === "string") {
216
+ distinctValues = row.string_values
217
+ .split(",")
218
+ .map((v) => v.trim());
219
+ }
220
+ break;
221
+ default:
222
+ console.warn(`Unknown database type: ${databaseType}`);
223
+ distinctValues = [];
224
+ }
225
+ // Filter out null/undefined/empty values
226
+ return distinctValues.filter((value) => value !== null && value !== undefined && value !== "");
227
+ }
228
+ // ============================================================================
229
+ // TEMPLATE HYDRATION
230
+ // ============================================================================
231
+ /**
232
+ * Hydrates a pivot query template with actual distinct values.
233
+ * This function should be called in the Node SDK after fetching distinct values.
234
+ *
235
+ * @param template - The SQL template string containing markers
236
+ * @param distinctValues - Array of distinct values fetched from the database
237
+ * @param config - config about the pivot configuration
238
+ * @returns Hydrated SQL query string ready to execute
239
+ */
240
+ export function hydratePivotTemplate(template, distinctValues, config) {
241
+ const { columnField, rowField, aggregations, databaseType } = config;
242
+ // If this pivot doesn't require distinct values, return as-is
243
+ if (!config.requiresDistinctValues || !columnField || !rowField) {
244
+ return template;
245
+ }
246
+ // Filter and limit distinct values
247
+ const filteredValues = distinctValues
248
+ .filter((value) => value !== null && value !== undefined && value !== "")
249
+ .slice(0, MAX_PIVOT_UNIQUE_VALUES);
250
+ // Get properly quoted column references
251
+ const columnFieldAlias = processColumnReference(columnField, databaseType, undefined, false, true);
252
+ const rowFieldAlias = processColumnReference(rowField, databaseType, undefined, false, true);
253
+ // Generate column aliases for SELECT in quill_alias CTE
254
+ const columnAliases = [];
255
+ columnAliases.push(`${processColumnReference(rowField, databaseType, undefined, true)} AS ${rowFieldAlias}`);
256
+ // Generate CASE WHEN columns for each aggregation
257
+ const caseWhenColumns = [];
258
+ const seenAggs = {};
259
+ aggregations.forEach((currentAgg) => {
260
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
261
+ // Track duplicate aggregation combos for disambiguation
262
+ if ((_b = seenAggs[(_a = currentAgg.aggregationType) !== null && _a !== void 0 ? _a : ""]) === null || _b === void 0 ? void 0 : _b[(_c = currentAgg.valueField) !== null && _c !== void 0 ? _c : ""]) {
263
+ seenAggs[(_d = currentAgg.aggregationType) !== null && _d !== void 0 ? _d : ""][(_e = currentAgg.valueField) !== null && _e !== void 0 ? _e : ""] += 1;
264
+ }
265
+ else {
266
+ seenAggs[(_f = currentAgg.aggregationType) !== null && _f !== void 0 ? _f : ""] = Object.assign(Object.assign({}, seenAggs[(_g = currentAgg.aggregationType) !== null && _g !== void 0 ? _g : ""]), { [(_h = currentAgg.valueField) !== null && _h !== void 0 ? _h : ""]: 1 });
267
+ }
268
+ let disambiguationIndex = (_m = (_k = seenAggs[(_j = currentAgg.aggregationType) !== null && _j !== void 0 ? _j : ""]) === null || _k === void 0 ? void 0 : _k[(_l = currentAgg.valueField) !== null && _l !== void 0 ? _l : ""]) === null || _m === void 0 ? void 0 : _m.toString();
269
+ if (disambiguationIndex === "1")
270
+ disambiguationIndex = "";
271
+ const valueFieldAlias = processColumnReference(currentAgg.valueField || rowField || "count", databaseType, undefined, false, true);
272
+ const valueAliasSubstring = currentAgg.valueField
273
+ ? `${processColumnReference(currentAgg.valueField, databaseType, undefined, true)} AS ${valueFieldAlias}`
274
+ : "";
275
+ // Handle disambiguation for multiple aggregations - must match original logic
276
+ const disambiguationField = Object.values((_p = seenAggs[(_o = currentAgg.aggregationType) !== null && _o !== void 0 ? _o : ""]) !== null && _p !== void 0 ? _p : {}).reduce((acc, v) => acc + v) > 1
277
+ ? `_${currentAgg.valueField}${disambiguationIndex}`
278
+ : "";
279
+ const disambiguation = aggregations.length > 1
280
+ ? `${disambiguationField}_${disambiguationField ? matchCasing(currentAgg.aggregationType, currentAgg.valueField) : currentAgg.aggregationType}`
281
+ : "";
282
+ // Wrap boolean fields in CASE WHEN
283
+ const valueExpr = currentAgg.valueFieldType === "bool"
284
+ ? `CASE WHEN ${valueFieldAlias} THEN 1 ELSE 0 END`
285
+ : processValueField(currentAgg.aggregationType, databaseType, valueFieldAlias);
286
+ // Handle percentage aggregations specially
287
+ if (currentAgg.aggregationType === "percentage") {
288
+ const valueField2Alias = processColumnReference((_r = (_q = currentAgg.valueField2) !== null && _q !== void 0 ? _q : currentAgg.valueField) !== null && _r !== void 0 ? _r : "count", databaseType, undefined, false, true);
289
+ const value2Expr = ((_s = currentAgg.valueField2Type) !== null && _s !== void 0 ? _s : currentAgg.valueFieldType) === "bool"
290
+ ? `CASE WHEN ${valueField2Alias} THEN 1 ELSE 0 END`
291
+ : valueField2Alias;
292
+ const value2AliasSubstring = currentAgg.valueField2 &&
293
+ currentAgg.valueField !== currentAgg.valueField2
294
+ ? `${processColumnReference(currentAgg.valueField2, databaseType, undefined, true)} AS ${valueField2Alias}`
295
+ : "";
296
+ // Percentage with same field for numerator and denominator
297
+ if (currentAgg.valueField === currentAgg.valueField2 ||
298
+ !currentAgg.valueField2) {
299
+ filteredValues.forEach((column) => {
300
+ caseWhenColumns.push(`CAST(sum(CASE WHEN ${columnFieldAlias} = '${processSingleQuotes(column, databaseType)}' THEN ${valueExpr} END) AS FLOAT) / GREATEST(sum(${value2Expr}), 1) AS ${processColumnReference(column + disambiguation, databaseType, "_", true)}`);
301
+ });
302
+ }
303
+ else {
304
+ // Percentage with different fields
305
+ filteredValues.forEach((column) => {
306
+ caseWhenColumns.push(`CAST(sum(CASE WHEN ${columnFieldAlias} = '${processSingleQuotes(column, databaseType)}' THEN ${valueExpr} END) AS FLOAT) / GREATEST(sum(CASE WHEN ${columnFieldAlias} = '${processSingleQuotes(column, databaseType)}' THEN ${value2Expr} END), 1) AS ${processColumnReference(column + disambiguation, databaseType, "_", true)}`);
307
+ });
308
+ if (value2AliasSubstring)
309
+ columnAliases.push(value2AliasSubstring);
310
+ }
311
+ }
312
+ else {
313
+ // Standard aggregations (sum, count, avg, min, max)
314
+ filteredValues.forEach((column) => {
315
+ caseWhenColumns.push(`${processAggType(currentAgg.aggregationType, true)}(CASE WHEN ${columnFieldAlias} = '${processSingleQuotes(column, databaseType)}' THEN ${valueExpr} END) AS ${processColumnReference(column + disambiguation, databaseType, "_", true)}`);
316
+ });
317
+ }
318
+ if (valueAliasSubstring)
319
+ columnAliases.push(valueAliasSubstring);
320
+ });
321
+ // Add the column field to the aliases
322
+ columnAliases.push(`${processColumnReference(columnField, databaseType, undefined, true)} AS ${columnFieldAlias}`);
323
+ // Remove duplicates
324
+ const uniqueColumnAliases = Array.from(new Set(columnAliases));
325
+ // Replace markers with actual SQL
326
+ let hydratedTemplate = template
327
+ .replace(PIVOT_COLUMN_ALIAS_MARKER, uniqueColumnAliases.join(", "))
328
+ .replace(PIVOT_COLUMN_MARKER, caseWhenColumns.join(", "));
329
+ return hydratedTemplate;
330
+ }
331
+ // ============================================================================
332
+ // VALIDATION
333
+ // ============================================================================
334
+ /**
335
+ * Validates that a template can be hydrated with the given config
336
+ */
337
+ export function validateTemplate(template, config) {
338
+ const errors = [];
339
+ if (!template) {
340
+ errors.push("Template is empty");
341
+ }
342
+ if (config.requiresDistinctValues) {
343
+ if (!template.includes(PIVOT_COLUMN_MARKER)) {
344
+ errors.push(`Template is missing ${PIVOT_COLUMN_MARKER} marker`);
345
+ }
346
+ if (!template.includes(PIVOT_COLUMN_ALIAS_MARKER)) {
347
+ errors.push(`Template is missing ${PIVOT_COLUMN_ALIAS_MARKER} marker`);
348
+ }
349
+ if (!config.columnField) {
350
+ errors.push("config is missing columnField");
351
+ }
352
+ if (!config.rowField) {
353
+ errors.push("config is missing rowField");
354
+ }
355
+ }
356
+ if (!config.aggregations || config.aggregations.length === 0) {
357
+ errors.push("config is missing aggregations");
358
+ }
359
+ return {
360
+ valid: errors.length === 0,
361
+ errors,
362
+ };
363
+ }
364
+ // ============================================================================
365
+ // MATCH CASING FUNCTION (copied from textProcessing)
366
+ // ============================================================================
367
+ /**
368
+ * Matches the casing of text to template
369
+ */
370
+ export function matchCasing(text, template) {
371
+ if (!text || !template) {
372
+ return text !== null && text !== void 0 ? text : "";
373
+ }
374
+ // Detect TitleCase
375
+ const isTitleCase = (str) => /^[A-Z][a-z]*([A-Z][a-z]*)*$/.test(str);
376
+ // Detect camelCase
377
+ const isCamelCase = (str) => /^[a-z]+([A-Z][a-z]*)*$/.test(str);
378
+ // Detect snake_case
379
+ const isSnakeCase = (str) => /^[a-z0-9]+(_[a-z0-9]+)*$/.test(str);
380
+ // Detect all lowercase
381
+ const isAllLowerCase = (str) => /^[a-z]+$/.test(str);
382
+ // Detect all uppercase
383
+ const isAllUpperCase = (str) => /^[A-Z]+$/.test(str);
384
+ // Detect capitalized (first letter uppercase, rest lowercase)
385
+ const isCapitalized = (str) => /^[A-Z][a-z]*$/.test(str);
386
+ // Detect SCREAMING_SNAKE_CASE (Snowflake)
387
+ const isScreamingSnakeCase = (str) => /^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$/.test(str);
388
+ // Function to convert to TitleCase
389
+ const toTitleCase = (str) => str.toLowerCase().replace(/\b\w/g, (char) => char.toUpperCase());
390
+ // Function to convert to camelCase
391
+ const toCamelCase = (str) => str.replace(/_./g, (match) => match.charAt(1).toUpperCase()).toLowerCase();
392
+ // Function to convert to snake_case
393
+ const toSnakeCase = (str) => str.replace(/[A-Z]/g, (match) => `_${match.toLowerCase()}`);
394
+ // Function to convert to all lowercase
395
+ const toLowerCase = (str) => str.toLowerCase();
396
+ // Function to convert to all uppercase
397
+ const toUpperCase = (str) => str.toUpperCase();
398
+ // Function to convert to capitalized (first letter uppercase, rest lowercase)
399
+ const toCapitalized = (str) => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
400
+ const toScreamingSnakeCase = (str) => str
401
+ .replace(/([A-Z])/g, "_$1") // Add underscore before capitals
402
+ .replace(/^_/, "") // Remove leading underscore if present
403
+ .toUpperCase(); // Convert everything to uppercase
404
+ // Match casing of the template and apply to the text
405
+ if (isTitleCase(template)) {
406
+ return toTitleCase(text);
407
+ }
408
+ else if (isCamelCase(template)) {
409
+ return toCamelCase(text);
410
+ }
411
+ else if (isSnakeCase(template)) {
412
+ return toSnakeCase(text);
413
+ }
414
+ else if (isAllLowerCase(template)) {
415
+ return toLowerCase(text);
416
+ }
417
+ else if (isAllUpperCase(template)) {
418
+ return toUpperCase(text);
419
+ }
420
+ else if (isCapitalized(template)) {
421
+ return toCapitalized(text);
422
+ }
423
+ else if (isScreamingSnakeCase(template)) {
424
+ return toScreamingSnakeCase(text);
425
+ }
426
+ else {
427
+ return text; // Default case if no specific pattern is detected
428
+ }
429
+ }
430
+ // ============================================================================
431
+ // QUERY COMBINATION FUNCTIONS
432
+ // ============================================================================
433
+ /**
434
+ * Combines a base query with a hydrated pivot template.
435
+ * The hydrated template already includes the WITH quill_base_table CTE (from itemQuery.replace),
436
+ * so we should NOT prepend anything. The template IS the complete query.
437
+ */
438
+ export function combineBaseQueryWithTemplate(baseQuery, hydratedTemplate) {
439
+ // The hydrated template already has everything needed from the itemQuery.replace operation
440
+ // Just return it as-is
441
+ return hydratedTemplate;
442
+ }
443
+ /**
444
+ * Extracts the base query from a template by removing the pivot-specific parts.
445
+ * This is useful when you need to get the original base query back.
446
+ */
447
+ export function extractBaseQueryFromTemplate(template) {
448
+ // Find the base query part before the first comma
449
+ const commaIndex = template.indexOf(",");
450
+ if (commaIndex === -1) {
451
+ return template; // No comma found, return as-is
452
+ }
453
+ return template.substring(0, commaIndex).trim();
454
+ }
455
+ // ============================================================================
456
+ // CONVENIENCE FUNCTIONS
457
+ // ============================================================================
458
+ /**
459
+ * Complete workflow: fetch distinct values and hydrate template
460
+ * This is a convenience function that combines the common SDK workflow
461
+ */
462
+ export function executePivotTemplate(template, baseQuery, executeQuery) {
463
+ return __awaiter(this, void 0, void 0, function* () {
464
+ var _a, _b;
465
+ const { template: sqlTemplate, config, distinctValuesQuery, rowCountQuery, } = template;
466
+ // 1. Get distinct values if needed
467
+ let distinctValues = [];
468
+ let distinctValuesCount;
469
+ if (config.requiresDistinctValues && distinctValuesQuery) {
470
+ const distinctResult = yield executeQuery(distinctValuesQuery);
471
+ distinctValues = parseDistinctValues(distinctResult, config.databaseType);
472
+ distinctValuesCount = distinctValues.length;
473
+ }
474
+ // 2. Hydrate template
475
+ const hydratedTemplate = hydratePivotTemplate(sqlTemplate, distinctValues, config);
476
+ // 3. Combine base query with hydrated template
477
+ const finalSQL = combineBaseQueryWithTemplate(baseQuery, hydratedTemplate);
478
+ // 4. Execute pivot query
479
+ const pivotResults = yield executeQuery(finalSQL);
480
+ // 5. Get row count if requested
481
+ let rowCount;
482
+ if (rowCountQuery) {
483
+ const countResult = yield executeQuery(rowCountQuery);
484
+ rowCount = ((_b = (_a = countResult.rows) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.row_count) || 0;
485
+ }
486
+ return {
487
+ pivotResults,
488
+ rowCount,
489
+ distinctValuesCount,
490
+ finalSQL,
491
+ };
492
+ });
493
+ }
494
+ //# sourceMappingURL=pivotTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pivotTemplate.js","sourceRoot":"","sources":["../../../src/utils/pivotTemplate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/node",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "description": "Quill Server SDK for Node.js",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
File without changes
@@ -1,36 +0,0 @@
1
- "use strict";
2
- // import Quill from ".";
3
- // import "dotenv/config";
4
- // const HOST =
5
- // process.env.ENV === "development"
6
- // ? "http://localhost:8080"
7
- // : "https://quill-344421.uc.r.appspot.com";
8
- // describe("Quill", () => {
9
- // let quill: Quill;
10
- // beforeEach(() => {
11
- // quill = new Quill(
12
- // process.env.QUILL_PRIVATE_KEY as string,
13
- // process.env.DB_URL as string
14
- // );
15
- // });
16
- // afterEach(async () => {
17
- // await quill.close();
18
- // });
19
- // afterAll(() => {
20
- // jest.restoreAllMocks();
21
- // });
22
- // describe("query", () => {
23
- // it("org - should return ", async () => {
24
- // const metadata = {
25
- // task: "orgs",
26
- // clientId: "62cda15d7c9fcca7bc0a3689",
27
- // };
28
- // const result = await quill.query({
29
- // orgId: "2",
30
- // metadata,
31
- // });
32
- // // TODO - add assertions
33
- // });
34
- // });
35
- // });
36
- //# sourceMappingURL=index.ispec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.ispec.js","sourceRoot":"","sources":["../../src/index.ispec.ts"],"names":[],"mappings":";AAAA,yBAAyB;AACzB,0BAA0B;AAE1B,eAAe;AACf,sCAAsC;AACtC,gCAAgC;AAChC,iDAAiD;AAEjD,4BAA4B;AAC5B,sBAAsB;AAEtB,uBAAuB;AACvB,yBAAyB;AACzB,iDAAiD;AACjD,qCAAqC;AACrC,SAAS;AACT,QAAQ;AAER,0BAA0B;AAC1B,yBAAyB;AACzB,MAAM;AAEN,qBAAqB;AACrB,8BAA8B;AAC9B,QAAQ;AAER,8BAA8B;AAC9B,+CAA+C;AAC/C,2BAA2B;AAC3B,wBAAwB;AACxB,gDAAgD;AAChD,WAAW;AACX,2CAA2C;AAC3C,sBAAsB;AACtB,oBAAoB;AACpB,YAAY;AACZ,iCAAiC;AACjC,UAAU;AACV,QAAQ;AACR,MAAM"}
File without changes
@@ -1,45 +0,0 @@
1
- "use strict";
2
- // import Quill from ".";
3
- // import { DatabaseType } from "./db/DatabaseHelper";
4
- // jest.mock(".");
5
- // describe("Quill", () => {
6
- // let quill: Quill;
7
- // beforeEach(() => {
8
- // quill = new Quill(
9
- // "dummy_private_key",
10
- // DatabaseType.postgres,
11
- // "dummy_db_url",
12
- // {},
13
- // undefined
14
- // );
15
- // quill.targetConnection.query = jest.fn().mockResolvedValue([]);
16
- // });
17
- // afterEach(async () => {
18
- // await quill.close();
19
- // });
20
- // describe("query", () => {
21
- // it("return nothing when suppling no queries", () => {
22
- // const metadata = {
23
- // task: "test",
24
- // queries: [],
25
- // };
26
- // const result = quill.query({
27
- // orgId: "dummy",
28
- // metadata,
29
- // });
30
- // expect(result).resolves.toEqual([]);
31
- // });
32
- // it("returns an error for the improper query", () => {
33
- // const metadata = {
34
- // task: "test",
35
- // queries: ["SELECT * FROM test"],
36
- // };
37
- // const result = quill.query({
38
- // orgId: "dummy",
39
- // metadata,
40
- // });
41
- // });
42
- // });
43
- // // Add more test cases as needed
44
- // });
45
- //# sourceMappingURL=index.uspec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.uspec.js","sourceRoot":"","sources":["../../src/index.uspec.ts"],"names":[],"mappings":";AAAA,yBAAyB;AACzB,sDAAsD;AAEtD,kBAAkB;AAElB,4BAA4B;AAC5B,sBAAsB;AAEtB,uBAAuB;AACvB,yBAAyB;AACzB,6BAA6B;AAC7B,+BAA+B;AAC/B,wBAAwB;AACxB,YAAY;AACZ,kBAAkB;AAClB,SAAS;AACT,sEAAsE;AACtE,QAAQ;AAER,0BAA0B;AAC1B,yBAAyB;AACzB,MAAM;AAEN,8BAA8B;AAC9B,4DAA4D;AAC5D,2BAA2B;AAC3B,wBAAwB;AACxB,uBAAuB;AACvB,WAAW;AACX,qCAAqC;AACrC,0BAA0B;AAC1B,oBAAoB;AACpB,YAAY;AACZ,6CAA6C;AAC7C,UAAU;AACV,4DAA4D;AAC5D,2BAA2B;AAC3B,wBAAwB;AACxB,2CAA2C;AAC3C,WAAW;AACX,qCAAqC;AACrC,0BAA0B;AAC1B,oBAAoB;AACpB,YAAY;AACZ,UAAU;AACV,QAAQ;AAER,qCAAqC;AACrC,MAAM"}
File without changes