@reasoningco/infer 0.0.2 → 0.1.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 (44) hide show
  1. package/dist/connectors.d.ts +4 -0
  2. package/dist/connectors.d.ts.map +1 -1
  3. package/dist/connectors.js +85 -25
  4. package/dist/connectors.js.map +1 -1
  5. package/dist/dates.d.ts +1 -1
  6. package/dist/dates.d.ts.map +1 -1
  7. package/dist/dates.js +68 -3
  8. package/dist/dates.js.map +1 -1
  9. package/dist/entity-resolver.d.ts +4 -0
  10. package/dist/entity-resolver.d.ts.map +1 -1
  11. package/dist/entity-resolver.js +36 -7
  12. package/dist/entity-resolver.js.map +1 -1
  13. package/dist/index.d.ts +8 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +166 -27
  16. package/dist/index.js.map +1 -1
  17. package/dist/llm.d.ts.map +1 -1
  18. package/dist/llm.js +7 -1
  19. package/dist/llm.js.map +1 -1
  20. package/dist/query-validator.d.ts +1 -0
  21. package/dist/query-validator.d.ts.map +1 -1
  22. package/dist/query-validator.js +137 -4
  23. package/dist/query-validator.js.map +1 -1
  24. package/dist/schemas.d.ts +25 -22
  25. package/dist/schemas.d.ts.map +1 -1
  26. package/dist/schemas.js +2 -1
  27. package/dist/schemas.js.map +1 -1
  28. package/dist/security.d.ts +2 -1
  29. package/dist/security.d.ts.map +1 -1
  30. package/dist/security.js +23 -2
  31. package/dist/security.js.map +1 -1
  32. package/dist/sql-builder.d.ts +1 -1
  33. package/dist/sql-builder.d.ts.map +1 -1
  34. package/dist/sql-builder.js +128 -13
  35. package/dist/sql-builder.js.map +1 -1
  36. package/dist/sql-validator.d.ts.map +1 -1
  37. package/dist/sql-validator.js +66 -22
  38. package/dist/sql-validator.js.map +1 -1
  39. package/dist/testing.d.ts.map +1 -1
  40. package/dist/testing.js +2 -1
  41. package/dist/testing.js.map +1 -1
  42. package/dist/types.d.ts +34 -3
  43. package/dist/types.d.ts.map +1 -1
  44. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"query-validator.js","sourceRoot":"","sources":["../src/query-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-validator.js","sourceRoot":"","sources":["../src/query-validator.ts"],"names":[],"mappings":"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"}
package/dist/schemas.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  import { z } from "zod";
2
2
  export declare const FilterSchema: z.ZodObject<{
3
3
  field: z.ZodString;
4
- op: z.ZodEnum<["=", "!=", ">", "<", ">=", "<=", "in", "not_in", "like", "ilike"]>;
4
+ op: z.ZodEnum<["=", "!=", ">", "<", ">=", "<=", "in", "not_in", "like", "ilike", "is_null", "is_not_null"]>;
5
5
  value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">]>;
6
6
  }, "strip", z.ZodTypeAny, {
7
7
  value: string | number | boolean | (string | number)[];
8
8
  field: string;
9
- op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike";
9
+ op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike" | "is_null" | "is_not_null";
10
10
  }, {
11
11
  value: string | number | boolean | (string | number)[];
12
12
  field: string;
13
- op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike";
13
+ op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike" | "is_null" | "is_not_null";
14
14
  }>;
15
15
  export declare const EntityFilterSchema: z.ZodObject<{
16
16
  resolver: z.ZodString;
@@ -31,12 +31,12 @@ export declare const DateRangeSchema: z.ZodObject<{
31
31
  startDate: z.ZodOptional<z.ZodString>;
32
32
  endDate: z.ZodOptional<z.ZodString>;
33
33
  }, "strip", z.ZodTypeAny, {
34
- mode: "latest" | "none" | "relative" | "explicit";
34
+ mode: "relative" | "latest" | "none" | "explicit";
35
35
  startDate?: string | undefined;
36
36
  endDate?: string | undefined;
37
37
  phrase?: string | undefined;
38
38
  }, {
39
- mode: "latest" | "none" | "relative" | "explicit";
39
+ mode: "relative" | "latest" | "none" | "explicit";
40
40
  startDate?: string | undefined;
41
41
  endDate?: string | undefined;
42
42
  phrase?: string | undefined;
@@ -46,28 +46,29 @@ export declare const OrderBySchema: z.ZodObject<{
46
46
  dir: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
47
47
  }, "strip", z.ZodTypeAny, {
48
48
  field: string;
49
- dir: "asc" | "desc";
49
+ dir: "desc" | "asc";
50
50
  }, {
51
51
  field: string;
52
- dir?: "asc" | "desc" | undefined;
52
+ dir?: "desc" | "asc" | undefined;
53
53
  }>;
54
54
  export declare const SmartQueryPlanSchema: z.ZodObject<{
55
55
  dataset: z.ZodString;
56
56
  select: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
57
57
  metrics: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
58
58
  groupBy: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
59
+ timeBucket: z.ZodOptional<z.ZodEnum<["hour", "day", "week", "month", "quarter", "year"]>>;
59
60
  filters: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
60
61
  field: z.ZodString;
61
- op: z.ZodEnum<["=", "!=", ">", "<", ">=", "<=", "in", "not_in", "like", "ilike"]>;
62
+ op: z.ZodEnum<["=", "!=", ">", "<", ">=", "<=", "in", "not_in", "like", "ilike", "is_null", "is_not_null"]>;
62
63
  value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">]>;
63
64
  }, "strip", z.ZodTypeAny, {
64
65
  value: string | number | boolean | (string | number)[];
65
66
  field: string;
66
- op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike";
67
+ op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike" | "is_null" | "is_not_null";
67
68
  }, {
68
69
  value: string | number | boolean | (string | number)[];
69
70
  field: string;
70
- op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike";
71
+ op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike" | "is_null" | "is_not_null";
71
72
  }>, "many">>>;
72
73
  entityFilters: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
73
74
  resolver: z.ZodString;
@@ -88,12 +89,12 @@ export declare const SmartQueryPlanSchema: z.ZodObject<{
88
89
  startDate: z.ZodOptional<z.ZodString>;
89
90
  endDate: z.ZodOptional<z.ZodString>;
90
91
  }, "strip", z.ZodTypeAny, {
91
- mode: "latest" | "none" | "relative" | "explicit";
92
+ mode: "relative" | "latest" | "none" | "explicit";
92
93
  startDate?: string | undefined;
93
94
  endDate?: string | undefined;
94
95
  phrase?: string | undefined;
95
96
  }, {
96
- mode: "latest" | "none" | "relative" | "explicit";
97
+ mode: "relative" | "latest" | "none" | "explicit";
97
98
  startDate?: string | undefined;
98
99
  endDate?: string | undefined;
99
100
  phrase?: string | undefined;
@@ -103,10 +104,10 @@ export declare const SmartQueryPlanSchema: z.ZodObject<{
103
104
  dir: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
104
105
  }, "strip", z.ZodTypeAny, {
105
106
  field: string;
106
- dir: "asc" | "desc";
107
+ dir: "desc" | "asc";
107
108
  }, {
108
109
  field: string;
109
- dir?: "asc" | "desc" | undefined;
110
+ dir?: "desc" | "asc" | undefined;
110
111
  }>, "many">>>;
111
112
  limit: z.ZodOptional<z.ZodNumber>;
112
113
  answerMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["rows", "aggregate_table", "scalar"]>>>;
@@ -118,7 +119,7 @@ export declare const SmartQueryPlanSchema: z.ZodObject<{
118
119
  filters: {
119
120
  value: string | number | boolean | (string | number)[];
120
121
  field: string;
121
- op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike";
122
+ op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike" | "is_null" | "is_not_null";
122
123
  }[];
123
124
  entityFilters: {
124
125
  input: string;
@@ -127,11 +128,12 @@ export declare const SmartQueryPlanSchema: z.ZodObject<{
127
128
  }[];
128
129
  orderBy: {
129
130
  field: string;
130
- dir: "asc" | "desc";
131
+ dir: "desc" | "asc";
131
132
  }[];
132
- answerMode: "rows" | "aggregate_table" | "scalar";
133
+ answerMode: "aggregate_table" | "rows" | "scalar";
134
+ timeBucket?: "month" | "day" | "week" | "quarter" | "year" | "hour" | undefined;
133
135
  dateRange?: {
134
- mode: "latest" | "none" | "relative" | "explicit";
136
+ mode: "relative" | "latest" | "none" | "explicit";
135
137
  startDate?: string | undefined;
136
138
  endDate?: string | undefined;
137
139
  phrase?: string | undefined;
@@ -142,10 +144,11 @@ export declare const SmartQueryPlanSchema: z.ZodObject<{
142
144
  select?: string[] | undefined;
143
145
  metrics?: string[] | undefined;
144
146
  groupBy?: string[] | undefined;
147
+ timeBucket?: "month" | "day" | "week" | "quarter" | "year" | "hour" | undefined;
145
148
  filters?: {
146
149
  value: string | number | boolean | (string | number)[];
147
150
  field: string;
148
- op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike";
151
+ op: "=" | "!=" | ">" | "<" | ">=" | "<=" | "in" | "not_in" | "like" | "ilike" | "is_null" | "is_not_null";
149
152
  }[] | undefined;
150
153
  entityFilters?: {
151
154
  input: string;
@@ -153,17 +156,17 @@ export declare const SmartQueryPlanSchema: z.ZodObject<{
153
156
  outputColumn: string;
154
157
  }[] | undefined;
155
158
  dateRange?: {
156
- mode: "latest" | "none" | "relative" | "explicit";
159
+ mode: "relative" | "latest" | "none" | "explicit";
157
160
  startDate?: string | undefined;
158
161
  endDate?: string | undefined;
159
162
  phrase?: string | undefined;
160
163
  } | undefined;
161
164
  orderBy?: {
162
165
  field: string;
163
- dir?: "asc" | "desc" | undefined;
166
+ dir?: "desc" | "asc" | undefined;
164
167
  }[] | undefined;
165
168
  limit?: number | undefined;
166
- answerMode?: "rows" | "aggregate_table" | "scalar" | undefined;
169
+ answerMode?: "aggregate_table" | "rows" | "scalar" | undefined;
167
170
  }>;
168
171
  export type SmartQueryPlanInput = z.input<typeof SmartQueryPlanSchema>;
169
172
  export type SmartQueryPlanOutput = z.output<typeof SmartQueryPlanSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;;EASvB,CAAC;AAIH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAIH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAIH,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW/B,CAAC;AAIH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;;EASvB,CAAC;AAIH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAIH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAIH,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAIH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/B,CAAC;AAIH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
package/dist/schemas.js CHANGED
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  // ── Filter schema ──
3
3
  export const FilterSchema = z.object({
4
4
  field: z.string(),
5
- op: z.enum(["=", "!=", ">", "<", ">=", "<=", "in", "not_in", "like", "ilike"]),
5
+ op: z.enum(["=", "!=", ">", "<", ">=", "<=", "in", "not_in", "like", "ilike", "is_null", "is_not_null"]),
6
6
  value: z.union([
7
7
  z.string(),
8
8
  z.number(),
@@ -34,6 +34,7 @@ export const SmartQueryPlanSchema = z.object({
34
34
  select: z.array(z.string()).optional().default([]),
35
35
  metrics: z.array(z.string()).optional().default([]),
36
36
  groupBy: z.array(z.string()).optional().default([]),
37
+ timeBucket: z.enum(["hour", "day", "week", "month", "quarter", "year"]).optional(),
37
38
  filters: z.array(FilterSchema).optional().default([]),
38
39
  entityFilters: z.array(EntityFilterSchema).optional().default([]),
39
40
  dateRange: DateRangeSchema.optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ export type ClassificationResult = {
5
5
  reason?: string;
6
6
  };
7
7
  export declare function classifyInjection(input: string): ClassificationResult;
8
- export declare function sanitizeResult(rows: Record<string, unknown>[], sensitiveColumns: readonly string[]): Record<string, unknown>[];
8
+ export type SensitiveColumnMode = 'remove' | 'mask' | 'hash';
9
+ export declare function sanitizeResult(rows: Record<string, unknown>[], sensitiveColumns: readonly string[], mode?: SensitiveColumnMode): Record<string, unknown>[];
9
10
  //# sourceMappingURL=security.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAaA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAkBjD;AAGD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAuCF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAkBrE;AAGD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAY3B"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAaA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAkBjD;AAGD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAuCF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAkBrE;AAGD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,gBAAgB,EAAE,SAAS,MAAM,EAAE,EACnC,IAAI,GAAE,mBAA8B,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAiB3B"}
package/dist/security.js CHANGED
@@ -79,8 +79,7 @@ export function classifyInjection(input) {
79
79
  }
80
80
  return { safe: true, confidence: 0.95 };
81
81
  }
82
- // ── Result sanitization ──
83
- export function sanitizeResult(rows, sensitiveColumns) {
82
+ export function sanitizeResult(rows, sensitiveColumns, mode = 'remove') {
84
83
  if (sensitiveColumns.length === 0)
85
84
  return rows;
86
85
  const sensitiveSet = new Set(sensitiveColumns);
@@ -90,8 +89,30 @@ export function sanitizeResult(rows, sensitiveColumns) {
90
89
  if (!sensitiveSet.has(key)) {
91
90
  sanitized[key] = value;
92
91
  }
92
+ else if (mode === 'mask') {
93
+ sanitized[key] = maskValue(value);
94
+ }
95
+ else if (mode === 'hash') {
96
+ sanitized[key] = hashValue(value);
97
+ }
98
+ // mode === 'remove': omit entirely (default)
93
99
  }
94
100
  return sanitized;
95
101
  });
96
102
  }
103
+ function maskValue(value) {
104
+ const str = String(value ?? '');
105
+ if (str.length <= 2)
106
+ return '***';
107
+ return str[0] + '*'.repeat(Math.min(str.length - 2, 8)) + str[str.length - 1];
108
+ }
109
+ function hashValue(value) {
110
+ // Simple deterministic hash for redaction — NOT cryptographic
111
+ const str = String(value ?? '');
112
+ let hash = 0;
113
+ for (let i = 0; i < str.length; i++) {
114
+ hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;
115
+ }
116
+ return `[redacted:${(hash >>> 0).toString(16).padStart(8, '0')}]`;
117
+ }
97
118
  //# sourceMappingURL=security.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ValidatedSmartPlan, ExecutionContext, CompiledSQL } from './types.js';
2
2
  declare function quoteIdentifier(id: string): string;
3
3
  export { quoteIdentifier };
4
- export declare function compileSQL(plan: ValidatedSmartPlan, ctx: ExecutionContext): CompiledSQL;
4
+ export declare function compileSQL(plan: ValidatedSmartPlan, ctx: ExecutionContext, catalog?: import('./types.js').InferCatalog): CompiledSQL;
5
5
  //# sourceMappingURL=sql-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-builder.d.ts","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIpF,iBAAS,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM3C;AAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,wBAAgB,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,gBAAgB,GAAG,WAAW,CAuGvF"}
1
+ {"version":3,"file":"sql-builder.d.ts","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIpF,iBAAS,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM3C;AAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,wBAAgB,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,YAAY,EAAE,YAAY,GAAG,WAAW,CAiOpI"}
@@ -9,35 +9,127 @@ function quoteIdentifier(id) {
9
9
  return `"${id.replace(/"/g, '""')}"`;
10
10
  }
11
11
  export { quoteIdentifier };
12
- export function compileSQL(plan, ctx) {
12
+ export function compileSQL(plan, ctx, catalog) {
13
13
  const params = [];
14
14
  let paramIdx = 1;
15
+ // ── FROM table and JOIN setup ──
16
+ const fromTable = `${quoteIdentifier(plan.dataset.table.schema)}.${quoteIdentifier(plan.dataset.table.name)}`;
17
+ const mainAlias = plan.dataset.table.name;
18
+ const joinClauses = [];
19
+ const joinAliases = new Map(); // table name → alias
20
+ // Add explicit joins from validated plan (cross-table groupBy)
21
+ if (plan.joins && plan.joins.length > 0) {
22
+ for (const join of plan.joins) {
23
+ const targetFull = `${quoteIdentifier(join.targetTable.schema)}.${quoteIdentifier(join.targetTable.name)}`;
24
+ const alias = join.targetTable.name;
25
+ joinAliases.set(alias, alias);
26
+ joinClauses.push(`LEFT JOIN ${targetFull} AS ${quoteIdentifier(alias)} ON ${quoteIdentifier(mainAlias)}.${quoteIdentifier(join.localColumn)} = ${quoteIdentifier(alias)}.${quoteIdentifier(join.foreignColumn)}`);
27
+ }
28
+ }
29
+ // ── Auto-resolve FK columns to human-readable names ──
30
+ const fkNameColumns = [];
31
+ if (catalog && plan.dataset.joins) {
32
+ const columnsToResolve = plan.metrics.length > 0 ? plan.groupBy : plan.select;
33
+ for (const col of columnsToResolve) {
34
+ if (col.includes('.'))
35
+ continue; // Already a cross-table ref
36
+ const joinDef = plan.dataset.joins.find(j => j.localColumn === col);
37
+ if (!joinDef)
38
+ continue;
39
+ const joinTableParts = joinDef.table.split('.');
40
+ const bareTable = joinTableParts[joinTableParts.length - 1];
41
+ const targetDs = Object.values(catalog.datasets).find(ds => ds.table.name === bareTable || ds.id === bareTable);
42
+ if (!targetDs)
43
+ continue;
44
+ const nameCol = targetDs.selectableColumns.find(c => ['name', 'title', 'label', 'display_name', 'full_name', 'username', 'email'].includes(c));
45
+ if (!nameCol)
46
+ continue;
47
+ if (!joinAliases.has(bareTable)) {
48
+ const targetFull = `${quoteIdentifier(targetDs.table.schema)}.${quoteIdentifier(targetDs.table.name)}`;
49
+ joinAliases.set(bareTable, bareTable);
50
+ joinClauses.push(`LEFT JOIN ${targetFull} AS ${quoteIdentifier(bareTable)} ON ${quoteIdentifier(mainAlias)}.${quoteIdentifier(col)} = ${quoteIdentifier(bareTable)}.${quoteIdentifier(joinDef.foreignColumn)}`);
51
+ }
52
+ fkNameColumns.push(`${quoteIdentifier(bareTable)}.${quoteIdentifier(nameCol)} AS ${quoteIdentifier(col.replace(/_id$/, '_name'))}`);
53
+ }
54
+ }
55
+ // ── Determine which groupBy columns need DATE_TRUNC ──
56
+ const dateGroupColumns = new Set();
57
+ if (plan.timeBucket && plan.groupBy.length > 0) {
58
+ for (const col of plan.groupBy) {
59
+ const colType = plan.dataset.columnTypes[col];
60
+ if (colType === 'date' || colType === 'timestamp') {
61
+ dateGroupColumns.add(col);
62
+ }
63
+ }
64
+ }
65
+ // Helper: resolve a column reference (supports dot-notation for joins)
66
+ const resolveColRef = (col) => {
67
+ if (col.includes('.')) {
68
+ const [table, column] = col.split('.', 2);
69
+ if (joinAliases.has(table)) {
70
+ return `${quoteIdentifier(table)}.${quoteIdentifier(column)}`;
71
+ }
72
+ }
73
+ if (joinClauses.length > 0) {
74
+ return `${quoteIdentifier(mainAlias)}.${quoteIdentifier(col)}`;
75
+ }
76
+ return quoteIdentifier(col);
77
+ };
78
+ // Helper: get a safe alias name for a column (strip table prefix)
79
+ const colAlias = (col) => {
80
+ if (col.includes('.'))
81
+ return col.split('.', 2)[1];
82
+ return col;
83
+ };
84
+ // Helper: format a groupBy column for SELECT (with DATE_TRUNC and alias if needed)
85
+ const formatGroupCol = (col) => {
86
+ const ref = resolveColRef(col);
87
+ const alias = colAlias(col);
88
+ if (dateGroupColumns.has(col) && plan.timeBucket) {
89
+ return `DATE_TRUNC('${plan.timeBucket}', ${ref}) AS ${quoteIdentifier(alias)}`;
90
+ }
91
+ if (col.includes('.')) {
92
+ return `${ref} AS ${quoteIdentifier(alias)}`;
93
+ }
94
+ return ref;
95
+ };
96
+ // Helper: format a groupBy column for GROUP BY clause (no alias)
97
+ const formatGroupByRef = (col) => {
98
+ const ref = resolveColRef(col);
99
+ if (dateGroupColumns.has(col) && plan.timeBucket) {
100
+ return `DATE_TRUNC('${plan.timeBucket}', ${ref})`;
101
+ }
102
+ return ref;
103
+ };
15
104
  // ── Build SELECT clause ──
16
105
  let selectCols;
17
106
  if (plan.metrics.length > 0) {
18
- // Aggregate query: groupBy columns + metric expressions
19
- const groupCols = plan.groupBy.map(col => quoteIdentifier(col));
107
+ const groupCols = plan.groupBy.map(col => formatGroupCol(col));
20
108
  const metricCols = plan.metrics.map(m => `${m.expression} AS ${quoteIdentifier(m.id)}`);
21
109
  selectCols = [...groupCols, ...metricCols];
22
110
  }
23
111
  else if (plan.select.length > 0) {
24
- // Raw row query: specific columns
25
112
  selectCols = plan.select.map(col => quoteIdentifier(col));
26
113
  }
27
114
  else {
28
- // Fallback: select all selectable columns from dataset
29
115
  selectCols = plan.dataset.selectableColumns.map(col => quoteIdentifier(col));
30
116
  }
117
+ // Append FK name columns (auto-resolved human-readable names)
118
+ if (fkNameColumns.length > 0) {
119
+ selectCols.push(...fkNameColumns);
120
+ }
31
121
  if (selectCols.length === 0) {
32
122
  throw new InferError('PLAN_INVALID', 'compiler', 'No columns to select');
33
123
  }
34
- // ── Build FROM clause ──
35
- const fromTable = `${quoteIdentifier(plan.dataset.table.schema)}.${quoteIdentifier(plan.dataset.table.name)}`;
36
124
  // ── Build WHERE clause ──
37
125
  const whereParts = [];
38
126
  // Tenant isolation (ALWAYS injected server-side)
127
+ const tenantCol = ctx.tenantColumn ?? 'tenant_id';
128
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(tenantCol)) {
129
+ throw new InferError('SQL_VALIDATION_FAILED', 'compiler', `Invalid tenant column name: ${tenantCol}`);
130
+ }
39
131
  params.push(ctx.tenantId);
40
- whereParts.push(`"tenant_id" = $${paramIdx++}`);
132
+ whereParts.push(`${quoteIdentifier(tenantCol)} = $${paramIdx++}`);
41
133
  // Location scoping (optional)
42
134
  if (ctx.locationIds && ctx.locationIds.length > 0) {
43
135
  params.push(ctx.locationIds);
@@ -54,8 +146,13 @@ export function compileSQL(plan, ctx) {
54
146
  for (const filter of plan.filters) {
55
147
  const col = quoteIdentifier(filter.field);
56
148
  const op = sanitizeOperator(filter.op);
57
- if (op === 'IN' || op === 'NOT IN') {
58
- // Array parameter
149
+ if (op === 'IS NULL') {
150
+ whereParts.push(`${col} IS NULL`);
151
+ }
152
+ else if (op === 'IS NOT NULL') {
153
+ whereParts.push(`${col} IS NOT NULL`);
154
+ }
155
+ else if (op === 'IN' || op === 'NOT IN') {
59
156
  params.push(filter.value);
60
157
  whereParts.push(`${col} ${op === 'NOT IN' ? 'NOT ' : ''}= ANY($${paramIdx++})`);
61
158
  }
@@ -79,23 +176,39 @@ export function compileSQL(plan, ctx) {
79
176
  const whereClause = whereParts.length > 0 ? whereParts.join(' AND ') : '1=1';
80
177
  // ── Build GROUP BY ──
81
178
  const groupBySql = plan.groupBy.length > 0
82
- ? `GROUP BY ${plan.groupBy.map(col => quoteIdentifier(col)).join(', ')}`
179
+ ? `GROUP BY ${plan.groupBy.map(col => formatGroupByRef(col)).join(', ')}`
83
180
  : '';
84
181
  // ── Build ORDER BY (direction whitelisted to ASC/DESC only) ──
85
182
  const orderBySql = plan.orderBy.length > 0
86
- ? `ORDER BY ${plan.orderBy.map(o => `${quoteIdentifier(o.field)} ${o.dir === 'desc' ? 'DESC' : 'ASC'}`).join(', ')}`
183
+ ? `ORDER BY ${plan.orderBy.map(o => {
184
+ const ref = dateGroupColumns.has(o.field) && plan.timeBucket
185
+ ? formatGroupByRef(o.field)
186
+ : quoteIdentifier(o.field);
187
+ return `${ref} ${o.dir === 'desc' ? 'DESC' : 'ASC'}`;
188
+ }).join(', ')}`
87
189
  : '';
88
190
  // ── LIMIT (always applied) ──
89
191
  params.push(plan.limit);
90
192
  const limitSql = `LIMIT $${paramIdx++}`;
193
+ // ── OFFSET (optional pagination) ──
194
+ let offsetSql = '';
195
+ if (ctx.offset && ctx.offset > 0) {
196
+ params.push(ctx.offset);
197
+ offsetSql = `OFFSET $${paramIdx++}`;
198
+ }
91
199
  // ── Assemble ──
200
+ const fromClause = joinClauses.length > 0
201
+ ? `FROM ${fromTable} AS ${quoteIdentifier(mainAlias)}`
202
+ : `FROM ${fromTable}`;
92
203
  const sql = [
93
204
  `SELECT ${selectCols.join(', ')}`,
94
- `FROM ${fromTable}`,
205
+ fromClause,
206
+ ...joinClauses,
95
207
  `WHERE ${whereClause}`,
96
208
  groupBySql,
97
209
  orderBySql,
98
210
  limitSql,
211
+ offsetSql,
99
212
  ].filter(Boolean).join('\n');
100
213
  return { sql, params };
101
214
  }
@@ -111,6 +224,8 @@ function sanitizeOperator(op) {
111
224
  'not_in': 'NOT IN',
112
225
  'like': 'LIKE',
113
226
  'ilike': 'ILIKE',
227
+ 'is_null': 'IS NULL',
228
+ 'is_not_null': 'IS NOT NULL',
114
229
  };
115
230
  const sanitized = ALLOWED_OPS[op];
116
231
  if (!sanitized) {
@@ -1 +1 @@
1
- {"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sql-validator.d.ts","sourceRoot":"","sources":["../src/sql-validator.ts"],"names":[],"mappings":"AA8CA,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,IAAI,CAgEjF;AA2CD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAyB9D"}
1
+ {"version":3,"file":"sql-validator.d.ts","sourceRoot":"","sources":["../src/sql-validator.ts"],"names":[],"mappings":"AAkDA,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,IAAI,CAgEjF;AAgDD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmD9D"}