@hypequery/clickhouse 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +19 -14
  2. package/dist/cli/generate-types.js +5 -12
  3. package/dist/core/adapters/clickhouse-adapter.d.ts +14 -0
  4. package/dist/core/adapters/clickhouse-adapter.d.ts.map +1 -0
  5. package/dist/core/adapters/clickhouse-adapter.js +58 -0
  6. package/dist/core/adapters/database-adapter.d.ts +13 -0
  7. package/dist/core/adapters/database-adapter.d.ts.map +1 -0
  8. package/dist/core/adapters/database-adapter.js +1 -0
  9. package/dist/core/cache/cache-manager.d.ts.map +1 -1
  10. package/dist/core/cache/cache-manager.js +6 -5
  11. package/dist/core/dialects/clickhouse-dialect.d.ts +10 -0
  12. package/dist/core/dialects/clickhouse-dialect.d.ts.map +1 -0
  13. package/dist/core/dialects/clickhouse-dialect.js +47 -0
  14. package/dist/core/dialects/sql-dialect.d.ts +11 -0
  15. package/dist/core/dialects/sql-dialect.d.ts.map +1 -0
  16. package/dist/core/dialects/sql-dialect.js +1 -0
  17. package/dist/core/features/aggregations.d.ts +5 -5
  18. package/dist/core/features/analytics.d.ts +804 -5
  19. package/dist/core/features/analytics.d.ts.map +1 -1
  20. package/dist/core/features/analytics.js +6 -9
  21. package/dist/core/features/executor.d.ts.map +1 -1
  22. package/dist/core/features/executor.js +26 -53
  23. package/dist/core/features/filtering.d.ts +5 -5
  24. package/dist/core/features/joins.d.ts +1 -1
  25. package/dist/core/features/query-modifiers.d.ts +6 -6
  26. package/dist/core/query-builder.d.ts +17 -6
  27. package/dist/core/query-builder.d.ts.map +1 -1
  28. package/dist/core/query-builder.js +25 -32
  29. package/dist/core/tests/integration/setup.d.ts +3 -1
  30. package/dist/core/tests/integration/setup.d.ts.map +1 -1
  31. package/dist/core/tests/test-utils.d.ts.map +1 -1
  32. package/dist/core/tests/test-utils.js +12 -2
  33. package/dist/core/types/select-types.d.ts +1 -1
  34. package/dist/core/types/select-types.d.ts.map +1 -1
  35. package/dist/core/utils/streaming-helpers.d.ts.map +1 -1
  36. package/dist/core/utils/streaming-helpers.js +8 -0
  37. package/dist/core/utils.d.ts.map +1 -1
  38. package/dist/core/utils.js +3 -0
  39. package/dist/dataset/definition.d.ts +135 -0
  40. package/dist/dataset/definition.d.ts.map +1 -0
  41. package/dist/dataset/definition.js +265 -0
  42. package/dist/dataset/helpers.d.ts +136 -0
  43. package/dist/dataset/helpers.d.ts.map +1 -0
  44. package/dist/dataset/helpers.js +189 -0
  45. package/dist/dataset/index.d.ts +51 -0
  46. package/dist/dataset/index.d.ts.map +1 -0
  47. package/dist/dataset/index.js +59 -0
  48. package/dist/dataset/introspection.d.ts +133 -0
  49. package/dist/dataset/introspection.d.ts.map +1 -0
  50. package/dist/dataset/introspection.js +239 -0
  51. package/dist/dataset/sql-tag.d.ts +51 -0
  52. package/dist/dataset/sql-tag.d.ts.map +1 -0
  53. package/dist/dataset/sql-tag.js +86 -0
  54. package/dist/dataset/types.d.ts +300 -0
  55. package/dist/dataset/types.d.ts.map +1 -0
  56. package/dist/dataset/types.js +11 -0
  57. package/dist/index.d.ts +21 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +25 -15
  60. package/dist/migrations/config/index.d.ts +3 -0
  61. package/dist/migrations/config/index.d.ts.map +1 -0
  62. package/dist/migrations/config/index.js +1 -0
  63. package/dist/migrations/config/types.d.ts +45 -0
  64. package/dist/migrations/config/types.d.ts.map +1 -0
  65. package/dist/migrations/config/types.js +28 -0
  66. package/dist/migrations/diff/diff.d.ts +11 -0
  67. package/dist/migrations/diff/diff.d.ts.map +1 -0
  68. package/dist/migrations/diff/diff.js +240 -0
  69. package/dist/migrations/diff/index.d.ts +3 -0
  70. package/dist/migrations/diff/index.d.ts.map +1 -0
  71. package/dist/migrations/diff/index.js +1 -0
  72. package/dist/migrations/diff/types.d.ts +74 -0
  73. package/dist/migrations/diff/types.d.ts.map +1 -0
  74. package/dist/migrations/diff/types.js +1 -0
  75. package/dist/migrations/schema/column.d.ts +71 -0
  76. package/dist/migrations/schema/column.d.ts.map +1 -0
  77. package/dist/migrations/schema/column.js +123 -0
  78. package/dist/migrations/schema/define.d.ts +24 -0
  79. package/dist/migrations/schema/define.d.ts.map +1 -0
  80. package/dist/migrations/schema/define.js +47 -0
  81. package/dist/migrations/schema/index.d.ts +4 -0
  82. package/dist/migrations/schema/index.d.ts.map +1 -0
  83. package/dist/migrations/schema/index.js +2 -0
  84. package/dist/migrations/schema/types.d.ts +74 -0
  85. package/dist/migrations/schema/types.d.ts.map +1 -0
  86. package/dist/migrations/schema/types.js +1 -0
  87. package/dist/migrations/snapshot/index.d.ts +3 -0
  88. package/dist/migrations/snapshot/index.d.ts.map +1 -0
  89. package/dist/migrations/snapshot/index.js +1 -0
  90. package/dist/migrations/snapshot/serialize.d.ts +21 -0
  91. package/dist/migrations/snapshot/serialize.d.ts.map +1 -0
  92. package/dist/migrations/snapshot/serialize.js +127 -0
  93. package/dist/migrations/snapshot/types.d.ts +47 -0
  94. package/dist/migrations/snapshot/types.d.ts.map +1 -0
  95. package/dist/migrations/snapshot/types.js +1 -0
  96. package/dist/migrations/sql/index.d.ts +4 -0
  97. package/dist/migrations/sql/index.d.ts.map +1 -0
  98. package/dist/migrations/sql/index.js +2 -0
  99. package/dist/migrations/sql/render.d.ts +11 -0
  100. package/dist/migrations/sql/render.d.ts.map +1 -0
  101. package/dist/migrations/sql/render.js +334 -0
  102. package/dist/migrations/sql/types.d.ts +48 -0
  103. package/dist/migrations/sql/types.d.ts.map +1 -0
  104. package/dist/migrations/sql/types.js +1 -0
  105. package/dist/migrations/sql/write.d.ts +9 -0
  106. package/dist/migrations/sql/write.d.ts.map +1 -0
  107. package/dist/migrations/sql/write.js +31 -0
  108. package/dist/types/base.d.ts +2 -1
  109. package/dist/types/base.d.ts.map +1 -1
  110. package/dist/types/clickhouse-types.d.ts +3 -1
  111. package/dist/types/clickhouse-types.d.ts.map +1 -1
  112. package/package.json +3 -3
@@ -0,0 +1,51 @@
1
+ /**
2
+ * SQL Tagged Template Literal
3
+ *
4
+ * Marks a string as a SQL expression rather than a column reference.
5
+ * Used to distinguish between:
6
+ * - Simple column: 'region' (string)
7
+ * - SQL expression: sql`DATE(created_at)` (SQLExpression)
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * dimensions: {
12
+ * region: 'region', // Simple column reference
13
+ * date: sql`DATE(created_at)`, // SQL expression
14
+ * hour: sql`toHour(created_at)` // SQL expression
15
+ * }
16
+ * ```
17
+ */
18
+ /**
19
+ * Represents a SQL expression with metadata
20
+ */
21
+ export interface SQLExpression {
22
+ readonly __brand: 'SQLExpression';
23
+ readonly sql: string;
24
+ readonly raw: boolean;
25
+ }
26
+ /**
27
+ * Tagged template literal for SQL expressions
28
+ *
29
+ * @param strings - Template string array
30
+ * @param values - Interpolated values
31
+ * @returns SQLExpression object
32
+ */
33
+ export declare function sql(strings: TemplateStringsArray, ...values: unknown[]): SQLExpression;
34
+ /**
35
+ * Type guard to check if a value is a SQLExpression
36
+ *
37
+ * @param value - Value to check
38
+ * @returns True if value is a SQLExpression
39
+ */
40
+ export declare function isSQLExpression(value: unknown): value is SQLExpression;
41
+ /**
42
+ * Convert a value to a SQL string
43
+ * - If it's a SQLExpression, return the sql property
44
+ * - If it's a string, return it as-is (assumed to be a column name)
45
+ * - Otherwise, throw an error
46
+ *
47
+ * @param value - Value to convert
48
+ * @returns SQL string
49
+ */
50
+ export declare function toSQLString(value: string | SQLExpression): string;
51
+ //# sourceMappingURL=sql-tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-tag.d.ts","sourceRoot":"","sources":["../../src/dataset/sql-tag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CACjB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,OAAO,EAAE,GACnB,aAAa,CA+Bf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAOtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAYjE"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * SQL Tagged Template Literal
3
+ *
4
+ * Marks a string as a SQL expression rather than a column reference.
5
+ * Used to distinguish between:
6
+ * - Simple column: 'region' (string)
7
+ * - SQL expression: sql`DATE(created_at)` (SQLExpression)
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * dimensions: {
12
+ * region: 'region', // Simple column reference
13
+ * date: sql`DATE(created_at)`, // SQL expression
14
+ * hour: sql`toHour(created_at)` // SQL expression
15
+ * }
16
+ * ```
17
+ */
18
+ /**
19
+ * Tagged template literal for SQL expressions
20
+ *
21
+ * @param strings - Template string array
22
+ * @param values - Interpolated values
23
+ * @returns SQLExpression object
24
+ */
25
+ export function sql(strings, ...values) {
26
+ // Build the SQL string by interleaving strings and values
27
+ let result = strings[0];
28
+ for (let i = 0; i < values.length; i++) {
29
+ const value = values[i];
30
+ // Handle nested SQL expressions
31
+ if (isSQLExpression(value)) {
32
+ result += value.sql;
33
+ }
34
+ else if (typeof value === 'string') {
35
+ // For security, we should escape string values
36
+ // In production, this would use proper escaping
37
+ result += value;
38
+ }
39
+ else if (typeof value === 'number') {
40
+ result += String(value);
41
+ }
42
+ else if (value === null || value === undefined) {
43
+ result += 'NULL';
44
+ }
45
+ else {
46
+ // For other types, convert to string
47
+ result += String(value);
48
+ }
49
+ result += strings[i + 1];
50
+ }
51
+ return {
52
+ __brand: 'SQLExpression',
53
+ sql: result,
54
+ raw: true,
55
+ };
56
+ }
57
+ /**
58
+ * Type guard to check if a value is a SQLExpression
59
+ *
60
+ * @param value - Value to check
61
+ * @returns True if value is a SQLExpression
62
+ */
63
+ export function isSQLExpression(value) {
64
+ return (typeof value === 'object' &&
65
+ value !== null &&
66
+ '__brand' in value &&
67
+ value.__brand === 'SQLExpression');
68
+ }
69
+ /**
70
+ * Convert a value to a SQL string
71
+ * - If it's a SQLExpression, return the sql property
72
+ * - If it's a string, return it as-is (assumed to be a column name)
73
+ * - Otherwise, throw an error
74
+ *
75
+ * @param value - Value to convert
76
+ * @returns SQL string
77
+ */
78
+ export function toSQLString(value) {
79
+ if (typeof value === 'string') {
80
+ return value;
81
+ }
82
+ if (isSQLExpression(value)) {
83
+ return value.sql;
84
+ }
85
+ throw new Error(`Expected string or SQLExpression, got ${typeof value}`);
86
+ }
@@ -0,0 +1,300 @@
1
+ /**
2
+ * Dataset API Type Definitions
3
+ *
4
+ * Comprehensive type system for the dataset API, including:
5
+ * - Dataset definitions
6
+ * - Dimension and metric types
7
+ * - Filter operators and types
8
+ * - Query execution types
9
+ * - Type inference utilities
10
+ */
11
+ import type { SQLExpression } from './sql-tag.js';
12
+ /**
13
+ * Dimension value types
14
+ */
15
+ export type DimensionType = 'string' | 'number' | 'date' | 'boolean';
16
+ /**
17
+ * Simple dimension definition (column name as string)
18
+ */
19
+ export type SimpleDimension = string;
20
+ /**
21
+ * Complex dimension definition with metadata
22
+ */
23
+ export interface DimensionDefinition {
24
+ /** SQL expression or column name */
25
+ sql: string | SQLExpression;
26
+ /** Data type of the dimension */
27
+ type: DimensionType;
28
+ /** Human-readable description (for AI agents) */
29
+ description: string;
30
+ /** Example values (for AI context) */
31
+ examples?: string[];
32
+ /** Whether this dimension requires a join */
33
+ join?: string;
34
+ }
35
+ /**
36
+ * Dimension definition (simple or complex)
37
+ */
38
+ export type Dimension = SimpleDimension | SQLExpression | DimensionDefinition;
39
+ /**
40
+ * Map of dimension names to definitions
41
+ */
42
+ export type DimensionsMap = Record<string, Dimension>;
43
+ /**
44
+ * Supported metric aggregation types
45
+ */
46
+ export type MetricAggregationType = 'count' | 'sum' | 'avg' | 'min' | 'max' | 'countDistinct' | 'custom';
47
+ /**
48
+ * Metric format hints
49
+ */
50
+ export type MetricFormat = 'currency' | 'percent' | 'number' | 'bytes';
51
+ /**
52
+ * Metric definition
53
+ */
54
+ export interface MetricDefinition {
55
+ /** Aggregation type */
56
+ type: MetricAggregationType;
57
+ /** SQL expression or column name */
58
+ sql: string | SQLExpression;
59
+ /** Human-readable description (for AI agents) */
60
+ description: string;
61
+ /** Format hint for display */
62
+ format?: MetricFormat;
63
+ /** Whether this metric requires a join */
64
+ join?: string;
65
+ /** Allow fan-out (for oneToMany joins) - advanced use only */
66
+ allowFanout?: boolean;
67
+ }
68
+ /**
69
+ * Map of metric names to definitions
70
+ */
71
+ export type MetricsMap = Record<string, MetricDefinition>;
72
+ /**
73
+ * Multi-tenancy configuration
74
+ */
75
+ export interface TenantConfig {
76
+ /** Column name for tenant isolation */
77
+ column: string;
78
+ /** Whether tenant filtering is required */
79
+ required?: boolean;
80
+ }
81
+ /**
82
+ * Complexity limits to prevent expensive queries
83
+ */
84
+ export interface DatasetLimits {
85
+ /** Maximum number of dimensions in a query */
86
+ maxDimensions?: number;
87
+ /** Maximum number of metrics in a query */
88
+ maxMetrics?: number;
89
+ /** Maximum number of filters in a query */
90
+ maxFilters?: number;
91
+ /** Maximum result set size */
92
+ maxResultSize?: number;
93
+ }
94
+ /**
95
+ * Complete dataset definition
96
+ */
97
+ export interface DatasetDefinition<TDimensions extends DimensionsMap = DimensionsMap, TMetrics extends MetricsMap = MetricsMap> {
98
+ /** Unique dataset name */
99
+ name: string;
100
+ /** Human-readable description (for AI agents) */
101
+ description: string;
102
+ /** Source table name */
103
+ table: string;
104
+ /** Schema type (for type inference) */
105
+ schema?: unknown;
106
+ /** Dimension definitions */
107
+ dimensions: TDimensions;
108
+ /** Metric definitions */
109
+ metrics: TMetrics;
110
+ /** Multi-tenancy configuration */
111
+ tenant?: TenantConfig;
112
+ /** Complexity guardrails */
113
+ limits?: DatasetLimits;
114
+ }
115
+ /**
116
+ * Map of dataset names to definitions
117
+ */
118
+ export type DatasetsMap = Record<string, DatasetDefinition>;
119
+ /**
120
+ * Filter operator types
121
+ */
122
+ export type FilterOperator = 'eq' | 'ne' | 'gt' | 'lt' | 'gte' | 'lte' | 'in' | 'notIn' | 'between' | 'like' | 'notLike' | 'isNull' | 'isNotNull' | 'inDateRange';
123
+ /**
124
+ * Date range helper values
125
+ */
126
+ export type DateRangeValue = 'today' | 'yesterday' | 'last_7_days' | 'last_30_days' | 'this_week' | 'last_week' | 'this_month' | 'last_month' | 'this_quarter' | 'last_quarter' | 'this_year' | 'last_year' | {
127
+ start: string;
128
+ end: string;
129
+ };
130
+ /**
131
+ * Filter value type based on operator
132
+ */
133
+ export type FilterValue<TOperator extends FilterOperator = FilterOperator> = TOperator extends 'in' | 'notIn' ? unknown[] : TOperator extends 'between' ? [unknown, unknown] : TOperator extends 'isNull' | 'isNotNull' ? never : TOperator extends 'inDateRange' ? DateRangeValue : unknown;
134
+ /**
135
+ * Filter definition
136
+ */
137
+ export interface FilterDefinition<TOperator extends FilterOperator = FilterOperator> {
138
+ /** Dimension to filter on */
139
+ dimension: string;
140
+ /** Filter operator */
141
+ operator: TOperator;
142
+ /** Filter value (type depends on operator) */
143
+ value?: FilterValue<TOperator>;
144
+ }
145
+ /**
146
+ * Array of filters
147
+ */
148
+ export type Filters = FilterDefinition[];
149
+ /**
150
+ * Sort direction
151
+ */
152
+ export type SortDirection = 'asc' | 'desc';
153
+ /**
154
+ * Order by dimension
155
+ */
156
+ export interface OrderByDimension {
157
+ dimension: string;
158
+ direction: SortDirection;
159
+ }
160
+ /**
161
+ * Order by metric
162
+ */
163
+ export interface OrderByMetric {
164
+ metric: string;
165
+ direction: SortDirection;
166
+ }
167
+ /**
168
+ * Order definition (dimension or metric)
169
+ */
170
+ export type OrderBy = OrderByDimension | OrderByMetric;
171
+ /**
172
+ * Cache options for query results
173
+ */
174
+ export interface CacheOptions {
175
+ /** Time-to-live in seconds */
176
+ ttl?: number;
177
+ /** Custom cache key */
178
+ key?: string;
179
+ }
180
+ /**
181
+ * Dataset query definition
182
+ */
183
+ export interface DatasetQuery<TDataset extends DatasetDefinition = DatasetDefinition> {
184
+ /** Dimensions to include in the query */
185
+ dimensions: Array<keyof TDataset['dimensions'] & string>;
186
+ /** Metrics to include in the query */
187
+ metrics: Array<keyof TDataset['metrics'] & string>;
188
+ /** Filters to apply */
189
+ filters?: Filters;
190
+ /** Ordering */
191
+ order?: OrderBy[];
192
+ /** Result limit */
193
+ limit?: number;
194
+ /** Result offset (for pagination) */
195
+ offset?: number;
196
+ /** Cache options */
197
+ cache?: CacheOptions;
198
+ }
199
+ /**
200
+ * Query execution context (for multi-tenancy)
201
+ */
202
+ export interface QueryContext {
203
+ /** Tenant ID for multi-tenant isolation */
204
+ tenantId?: string;
205
+ }
206
+ /**
207
+ * Query result metadata
208
+ */
209
+ export interface QueryResultMetadata {
210
+ /** Dimensions included in the result */
211
+ dimensions: string[];
212
+ /** Metrics included in the result */
213
+ metrics: string[];
214
+ /** Number of rows returned */
215
+ rowCount: number;
216
+ /** Whether the result was served from cache */
217
+ cached: boolean;
218
+ /** Execution time in milliseconds */
219
+ executionTime?: number;
220
+ /** Generated SQL query */
221
+ sql?: string;
222
+ }
223
+ /**
224
+ * Query result
225
+ */
226
+ export interface QueryResult<TRow = Record<string, unknown>> {
227
+ /** Result data */
228
+ data: TRow[];
229
+ /** Result metadata */
230
+ metadata: QueryResultMetadata;
231
+ }
232
+ /**
233
+ * Infer the TypeScript type from a dimension definition
234
+ */
235
+ export type InferDimensionType<T> = T extends string ? string : T extends SQLExpression ? unknown : T extends DimensionDefinition ? T['type'] extends 'string' ? string : T['type'] extends 'number' ? number : T['type'] extends 'date' ? Date : T['type'] extends 'boolean' ? boolean : unknown : unknown;
236
+ /**
237
+ * Infer the TypeScript type from a metric definition
238
+ * All metrics return numbers
239
+ */
240
+ export type InferMetricType<T> = T extends MetricDefinition ? number : number;
241
+ /**
242
+ * Infer the row type from a dataset query
243
+ */
244
+ export type InferQueryRowType<TDataset extends DatasetDefinition, TDimensions extends Array<keyof TDataset['dimensions'] & string>, TMetrics extends Array<keyof TDataset['metrics'] & string>> = {
245
+ [K in TDimensions[number]]: InferDimensionType<TDataset['dimensions'][K]>;
246
+ } & {
247
+ [K in TMetrics[number]]: InferMetricType<TDataset['metrics'][K]>;
248
+ };
249
+ /**
250
+ * Infer the complete result type from a dataset query
251
+ */
252
+ export type InferQueryResult<TDataset extends DatasetDefinition, TQuery extends DatasetQuery<TDataset>> = QueryResult<InferQueryRowType<TDataset, TQuery['dimensions'], TQuery['metrics']>>;
253
+ /**
254
+ * Introspected dimension schema (for AI agents)
255
+ */
256
+ export interface IntrospectedDimension {
257
+ /** Dimension type */
258
+ type: DimensionType;
259
+ /** Human-readable description */
260
+ description?: string;
261
+ /** Example values */
262
+ examples?: string[];
263
+ /** SQL expression */
264
+ sql: string;
265
+ }
266
+ /**
267
+ * Introspected metric schema (for AI agents)
268
+ */
269
+ export interface IntrospectedMetric {
270
+ /** Always 'number' for metrics */
271
+ type: 'number';
272
+ /** Aggregation type */
273
+ aggregationType: MetricAggregationType;
274
+ /** Human-readable description */
275
+ description: string;
276
+ /** Format hint */
277
+ format?: MetricFormat;
278
+ /** SQL expression */
279
+ sql: string;
280
+ }
281
+ /**
282
+ * Introspected dataset schema (for AI agents)
283
+ */
284
+ export interface IntrospectedDataset {
285
+ /** Dataset name */
286
+ name: string;
287
+ /** Dataset description */
288
+ description: string;
289
+ /** Source table */
290
+ table: string;
291
+ /** Introspected dimensions */
292
+ dimensions: Record<string, IntrospectedDimension>;
293
+ /** Introspected metrics */
294
+ metrics: Record<string, IntrospectedMetric>;
295
+ /** Whether multi-tenancy is required */
296
+ tenantRequired?: boolean;
297
+ /** Complexity limits */
298
+ limits?: DatasetLimits;
299
+ }
300
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dataset/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Dataset API Type Definitions
3
+ *
4
+ * Comprehensive type system for the dataset API, including:
5
+ * - Dataset definitions
6
+ * - Dimension and metric types
7
+ * - Filter operators and types
8
+ * - Query execution types
9
+ * - Type inference utilities
10
+ */
11
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  export { createQueryBuilder, QueryBuilder } from './core/query-builder.js';
2
2
  export { ClickHouseConnection } from './core/connection.js';
3
3
  export { JoinRelationships } from './core/join-relationships.js';
4
+ export { createClickHouseAdapter, ClickHouseAdapter } from './core/adapters/clickhouse-adapter.js';
5
+ export { ClickHouseDialect } from './core/dialects/clickhouse-dialect.js';
6
+ export type { DatabaseAdapter } from './core/adapters/database-adapter.js';
7
+ export type { SqlDialect } from './core/dialects/sql-dialect.js';
4
8
  export type { ClickHouseConfig, ClickHouseClientConfig, CreateQueryBuilderConfig, ExecuteOptions } from './core/query-builder.js';
5
9
  export { isClientConfig } from './core/query-builder.js';
6
10
  export type { CacheOptions, CacheConfig, CacheProvider, CacheEntry, CacheStatus } from './core/cache/types.js';
@@ -17,4 +21,21 @@ export { logger } from './core/utils/logger.js';
17
21
  export { raw, rawAs, selectExpr, toDateTime, formatDateTime, toStartOfInterval, datePart } from './core/utils/sql-expressions.js';
18
22
  export type { SqlExpression, FormatDateTimeOptions, AliasedExpression } from './core/utils/sql-expressions.js';
19
23
  export type { PredicateExpression, PredicateLiteral, PredicateBuilder, PredicateArg } from './core/utils/predicate-builder.js';
24
+ export { sql, isSQLExpression, toSQLString } from './dataset/sql-tag.js';
25
+ export type { SQLExpression } from './dataset/sql-tag.js';
26
+ export { dimension, metric } from './dataset/helpers.js';
27
+ export type { DimensionOptions, MetricOptions } from './dataset/helpers.js';
28
+ export type { DimensionType, SimpleDimension, DimensionDefinition, Dimension, DimensionsMap, MetricAggregationType, MetricFormat, MetricDefinition, MetricsMap, DatasetDefinition, DatasetsMap, TenantConfig, DatasetLimits, DateRangeValue, FilterValue, FilterDefinition, Filters, SortDirection, OrderByDimension, OrderByMetric, OrderBy, DatasetQuery, QueryContext, QueryResultMetadata, QueryResult, InferDimensionType, InferMetricType, InferQueryRowType, InferQueryResult, IntrospectedDimension, IntrospectedMetric, IntrospectedDataset, } from './dataset/types.js';
29
+ export { validateDatasetDefinition, validateDatasets, normalizeDimension, normalizeDimensions, inferDimensionType, getDimensionSQL, getMetricSQL, getDataset, listDatasets, hasDataset, getDimensionNames, getMetricNames, hasDimension, hasMetric, getDimension, getMetric, } from './dataset/definition.js';
30
+ export { introspectDimension, introspectMetric, getDatasetSchema, getAllDatasetSchemas, summarizeDataset, datasetsToJSON, summarizeAllDatasets, } from './dataset/introspection.js';
31
+ export { defineConfig, resolveClickHouseConfig, DEFAULT_MIGRATIONS_OUT_DIR, DEFAULT_MIGRATIONS_PREFIX, DEFAULT_MIGRATIONS_TABLE, } from './migrations/config/index.js';
32
+ export { column, ClickHouseColumnBuilder, defineMaterializedView, defineSchema, defineTable, } from './migrations/schema/index.js';
33
+ export { diffSnapshots, } from './migrations/diff/index.js';
34
+ export { serializeSchemaToSnapshot, snapshotToStableJson, hashSnapshot, } from './migrations/snapshot/index.js';
35
+ export { renderMigrationArtifacts, writeMigrationArtifacts, } from './migrations/sql/index.js';
36
+ export type { ClickHouseClusterConfig, ClickHouseMigrationDbCredentials, ClickHouseMigrationDirectoryConfig, HypequeryClickHouseConfig, MigrationFilePrefix, ResolvedHypequeryClickHouseConfig, } from './migrations/config/index.js';
37
+ export type { ClickHouseColumnDefinition, ClickHouseColumnBuilderLike, ClickHouseColumnDefaultValue, ClickHouseColumnType, ClickHouseDefaultInput, ClickHouseLowCardinalityColumnType, ClickHouseLiteralDefaultValue, ClickHouseMaterializedViewDefinition, ClickHouseMaterializedViewInputDefinition, ClickHouseNamedColumnType, ClickHouseNullableColumnType, ClickHouseSqlDefaultValue, ClickHouseSchemaAst, ClickHouseSchemaDefinition, ClickHouseSqlExpression, ClickHouseTableDefinition, ClickHouseTableInputDefinition, ClickHouseTableEngine, } from './migrations/schema/index.js';
38
+ export type { AddColumnOperation, AlterTableWithDependentViewsOperation, CreateMaterializedViewOperation, CreateTableOperation, DiffWarning, DropColumnOperation, DropMaterializedViewOperation, DropTableOperation, MigrationOperation, ModifyColumnDefaultOperation, ModifyColumnTypeOperation, RecreateMaterializedViewOperation, SnapshotDiffResult, TableMutationOperation, UnsupportedChange, } from './migrations/diff/index.js';
39
+ export type { MigrationMeta, RenderMigrationArtifactsOptions, RenderMigrationArtifactsResult, WriteMigrationArtifactsOptions, WriteMigrationArtifactsResult, } from './migrations/sql/index.js';
40
+ export type { Snapshot, SnapshotColumn, SnapshotColumnDefault, SnapshotDependencyEdge, SnapshotMaterializedView, SnapshotTable, SnapshotTableEngine, } from './migrations/snapshot/index.js';
20
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,EACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,YAAY,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,WAAW,EACX,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EACL,GAAG,EACH,KAAK,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACT,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACb,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,21 +1,31 @@
1
- // Main entry point
2
- export { createQueryBuilder } from './core/query-builder.js';
1
+ export { createQueryBuilder, QueryBuilder } from './core/query-builder.js';
3
2
  export { ClickHouseConnection } from './core/connection.js';
4
3
  export { JoinRelationships } from './core/join-relationships.js';
5
- export { CrossFilter } from './core/cross-filter.js';
6
- export { logger } from './core/utils/logger.js';
4
+ export { createClickHouseAdapter, ClickHouseAdapter } from './core/adapters/clickhouse-adapter.js';
5
+ export { ClickHouseDialect } from './core/dialects/clickhouse-dialect.js';
6
+ export { isClientConfig } from './core/query-builder.js';
7
7
  export { CacheController } from './core/cache/controller.js';
8
8
  export { MemoryCacheProvider } from './core/cache/providers/memory-lru.js';
9
9
  export { MemoryCacheProvider as MemoryLRUCacheProvider } from './core/cache/providers/memory-lru.js';
10
10
  export { NoopCacheProvider } from './core/cache/providers/noop.js';
11
- export {
12
- raw,
13
- rawAs,
14
- toDateTime,
15
- formatDateTime,
16
- toStartOfInterval,
17
- datePart
18
- } from './core/utils/sql-expressions.js';
19
-
20
- // Note: CLI functionality is deliberately not exported from the main package
21
- // This prevents Node.js-specific modules from being included in browser bundles
11
+ export { CrossFilter } from './core/cross-filter.js';
12
+ export { logger } from './core/utils/logger.js';
13
+ // Re-export SQL expression utilities
14
+ export { raw, rawAs, selectExpr, toDateTime, formatDateTime, toStartOfInterval, datePart } from './core/utils/sql-expressions.js';
15
+ // =============================================================================
16
+ // DATASET API (Phase 1)
17
+ // =============================================================================
18
+ // SQL tagged template
19
+ export { sql, isSQLExpression, toSQLString } from './dataset/sql-tag.js';
20
+ // Dimension and metric helpers
21
+ export { dimension, metric } from './dataset/helpers.js';
22
+ // Dataset definition utilities
23
+ export { validateDatasetDefinition, validateDatasets, normalizeDimension, normalizeDimensions, inferDimensionType, getDimensionSQL, getMetricSQL, getDataset, listDatasets, hasDataset, getDimensionNames, getMetricNames, hasDimension, hasMetric, getDimension, getMetric, } from './dataset/definition.js';
24
+ // Dataset introspection
25
+ export { introspectDimension, introspectMetric, getDatasetSchema, getAllDatasetSchemas, summarizeDataset, datasetsToJSON, summarizeAllDatasets, } from './dataset/introspection.js';
26
+ // Migrations foundations
27
+ export { defineConfig, resolveClickHouseConfig, DEFAULT_MIGRATIONS_OUT_DIR, DEFAULT_MIGRATIONS_PREFIX, DEFAULT_MIGRATIONS_TABLE, } from './migrations/config/index.js';
28
+ export { column, ClickHouseColumnBuilder, defineMaterializedView, defineSchema, defineTable, } from './migrations/schema/index.js';
29
+ export { diffSnapshots, } from './migrations/diff/index.js';
30
+ export { serializeSchemaToSnapshot, snapshotToStableJson, hashSnapshot, } from './migrations/snapshot/index.js';
31
+ export { renderMigrationArtifacts, writeMigrationArtifacts, } from './migrations/sql/index.js';
@@ -0,0 +1,3 @@
1
+ export { DEFAULT_MIGRATIONS_OUT_DIR, DEFAULT_MIGRATIONS_PREFIX, DEFAULT_MIGRATIONS_TABLE, defineConfig, resolveClickHouseConfig, } from './types.js';
2
+ export type { ClickHouseClusterConfig, ClickHouseMigrationDbCredentials, ClickHouseMigrationDirectoryConfig, HypequeryClickHouseConfig, MigrationFilePrefix, ResolvedHypequeryClickHouseConfig, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EACZ,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,uBAAuB,EACvB,gCAAgC,EAChC,kCAAkC,EAClC,yBAAyB,EACzB,mBAAmB,EACnB,iCAAiC,GAClC,MAAM,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export { DEFAULT_MIGRATIONS_OUT_DIR, DEFAULT_MIGRATIONS_PREFIX, DEFAULT_MIGRATIONS_TABLE, defineConfig, resolveClickHouseConfig, } from './types.js';
@@ -0,0 +1,45 @@
1
+ export declare const DEFAULT_MIGRATIONS_OUT_DIR = "./migrations";
2
+ export declare const DEFAULT_MIGRATIONS_TABLE = "_hypequery_migrations";
3
+ export declare const DEFAULT_MIGRATIONS_PREFIX: "timestamp";
4
+ export type MigrationFilePrefix = typeof DEFAULT_MIGRATIONS_PREFIX;
5
+ export interface ClickHouseMigrationDirectoryConfig {
6
+ out: string;
7
+ table: string;
8
+ prefix: MigrationFilePrefix;
9
+ }
10
+ export interface ClickHouseMigrationDbCredentials {
11
+ host: string;
12
+ port?: number;
13
+ username: string;
14
+ password?: string;
15
+ database: string;
16
+ secure?: boolean;
17
+ }
18
+ export interface ClickHouseClusterConfig {
19
+ name: string;
20
+ }
21
+ export interface HypequeryClickHouseConfig {
22
+ dialect: 'clickhouse';
23
+ schema: string;
24
+ migrations?: Partial<ClickHouseMigrationDirectoryConfig>;
25
+ dbCredentials: ClickHouseMigrationDbCredentials;
26
+ cluster?: ClickHouseClusterConfig;
27
+ }
28
+ export interface ResolvedHypequeryClickHouseConfig extends Omit<HypequeryClickHouseConfig, 'migrations'> {
29
+ migrations: ClickHouseMigrationDirectoryConfig;
30
+ }
31
+ /**
32
+ * Defines a ClickHouse migration configuration while preserving literal TypeScript types.
33
+ *
34
+ * Use this from `hypequery.config.ts` so the CLI can load database credentials,
35
+ * schema entry points, and migration output settings from one typed object.
36
+ */
37
+ export declare function defineConfig(config: HypequeryClickHouseConfig): HypequeryClickHouseConfig;
38
+ /**
39
+ * Applies default migration settings to a user-provided ClickHouse config.
40
+ *
41
+ * This keeps CLI and programmatic callers aligned on the default output directory,
42
+ * migration table name, and timestamp-based file prefix strategy.
43
+ */
44
+ export declare function resolveClickHouseConfig(config: HypequeryClickHouseConfig): ResolvedHypequeryClickHouseConfig;
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/migrations/config/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AACzD,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAChE,eAAO,MAAM,yBAAyB,EAAG,WAAoB,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,OAAO,yBAAyB,CAAC;AAEnE,MAAM,WAAW,kCAAkC;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACzD,aAAa,EAAE,gCAAgC,CAAC;IAChD,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC;AAED,MAAM,WAAW,iCACf,SAAQ,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC;IACrD,UAAU,EAAE,kCAAkC,CAAC;CAChD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,yBAAyB,CAEzF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,yBAAyB,GAChC,iCAAiC,CASnC"}
@@ -0,0 +1,28 @@
1
+ export const DEFAULT_MIGRATIONS_OUT_DIR = './migrations';
2
+ export const DEFAULT_MIGRATIONS_TABLE = '_hypequery_migrations';
3
+ export const DEFAULT_MIGRATIONS_PREFIX = 'timestamp';
4
+ /**
5
+ * Defines a ClickHouse migration configuration while preserving literal TypeScript types.
6
+ *
7
+ * Use this from `hypequery.config.ts` so the CLI can load database credentials,
8
+ * schema entry points, and migration output settings from one typed object.
9
+ */
10
+ export function defineConfig(config) {
11
+ return config;
12
+ }
13
+ /**
14
+ * Applies default migration settings to a user-provided ClickHouse config.
15
+ *
16
+ * This keeps CLI and programmatic callers aligned on the default output directory,
17
+ * migration table name, and timestamp-based file prefix strategy.
18
+ */
19
+ export function resolveClickHouseConfig(config) {
20
+ return {
21
+ ...config,
22
+ migrations: {
23
+ out: config.migrations?.out ?? DEFAULT_MIGRATIONS_OUT_DIR,
24
+ table: config.migrations?.table ?? DEFAULT_MIGRATIONS_TABLE,
25
+ prefix: config.migrations?.prefix ?? DEFAULT_MIGRATIONS_PREFIX,
26
+ },
27
+ };
28
+ }