@hypequery/clickhouse 1.3.1-beta.0 → 1.3.2

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 (82) hide show
  1. package/README.md +18 -1
  2. package/dist/cli/generate-types.js +41 -3
  3. package/dist/core/connection.d.ts.map +1 -1
  4. package/dist/core/connection.js +4 -3
  5. package/dist/core/cross-filter.d.ts +3 -7
  6. package/dist/core/cross-filter.d.ts.map +1 -1
  7. package/dist/core/cross-filter.js +3 -2
  8. package/dist/core/env/auto-client.browser.d.ts +3 -0
  9. package/dist/core/env/auto-client.browser.d.ts.map +1 -0
  10. package/dist/core/env/auto-client.browser.js +3 -0
  11. package/dist/core/env/auto-client.d.ts +9 -0
  12. package/dist/core/env/auto-client.d.ts.map +1 -0
  13. package/dist/core/env/auto-client.js +21 -0
  14. package/dist/core/features/aggregations.d.ts +18 -22
  15. package/dist/core/features/aggregations.d.ts.map +1 -1
  16. package/dist/core/features/aggregations.js +6 -6
  17. package/dist/core/features/analytics.d.ts +15 -19
  18. package/dist/core/features/analytics.d.ts.map +1 -1
  19. package/dist/core/features/analytics.js +2 -2
  20. package/dist/core/features/cross-filtering.d.ts +5 -24
  21. package/dist/core/features/cross-filtering.d.ts.map +1 -1
  22. package/dist/core/features/cross-filtering.js +0 -33
  23. package/dist/core/features/executor.d.ts +5 -9
  24. package/dist/core/features/executor.d.ts.map +1 -1
  25. package/dist/core/features/filtering.d.ts +32 -28
  26. package/dist/core/features/filtering.d.ts.map +1 -1
  27. package/dist/core/features/filtering.js +27 -26
  28. package/dist/core/features/joins.d.ts +7 -10
  29. package/dist/core/features/joins.d.ts.map +1 -1
  30. package/dist/core/features/pagination.d.ts +8 -10
  31. package/dist/core/features/pagination.d.ts.map +1 -1
  32. package/dist/core/features/pagination.js +13 -41
  33. package/dist/core/features/query-modifiers.d.ts +18 -21
  34. package/dist/core/features/query-modifiers.d.ts.map +1 -1
  35. package/dist/core/formatters/sql-formatter.d.ts.map +1 -1
  36. package/dist/core/formatters/sql-formatter.js +6 -0
  37. package/dist/core/join-relationships.d.ts +2 -1
  38. package/dist/core/join-relationships.d.ts.map +1 -1
  39. package/dist/core/query-builder.d.ts +50 -73
  40. package/dist/core/query-builder.d.ts.map +1 -1
  41. package/dist/core/query-builder.js +113 -92
  42. package/dist/core/tests/integration/setup.d.ts +1 -1
  43. package/dist/core/tests/test-utils.d.ts +4 -3
  44. package/dist/core/tests/test-utils.d.ts.map +1 -1
  45. package/dist/core/tests/test-utils.js +18 -8
  46. package/dist/core/types/builder-state.d.ts +25 -0
  47. package/dist/core/types/builder-state.d.ts.map +1 -0
  48. package/dist/core/types/builder-state.js +1 -0
  49. package/dist/core/types/select-types.d.ts +25 -0
  50. package/dist/core/types/select-types.d.ts.map +1 -0
  51. package/dist/core/types/select-types.js +1 -0
  52. package/dist/core/types/type-helpers.d.ts +5 -0
  53. package/dist/core/types/type-helpers.d.ts.map +1 -0
  54. package/dist/core/types/type-helpers.js +1 -0
  55. package/dist/core/utils/predicate-builder.d.ts +29 -0
  56. package/dist/core/utils/predicate-builder.d.ts.map +1 -0
  57. package/dist/core/utils/predicate-builder.js +92 -0
  58. package/dist/core/utils/sql-expressions.d.ts +11 -10
  59. package/dist/core/utils/sql-expressions.d.ts.map +1 -1
  60. package/dist/core/utils/sql-expressions.js +4 -2
  61. package/dist/core/validators/filter-validator.d.ts +2 -1
  62. package/dist/core/validators/filter-validator.d.ts.map +1 -1
  63. package/dist/core/validators/value-validator.d.ts +2 -1
  64. package/dist/core/validators/value-validator.d.ts.map +1 -1
  65. package/dist/index.d.ts +4 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/types/base.d.ts +10 -15
  68. package/dist/types/base.d.ts.map +1 -1
  69. package/dist/types/clickhouse-types.d.ts +2 -2
  70. package/dist/types/clickhouse-types.d.ts.map +1 -1
  71. package/dist/types/filters.d.ts +1 -1
  72. package/dist/types/filters.d.ts.map +1 -1
  73. package/dist/types/index.d.ts +1 -0
  74. package/dist/types/index.d.ts.map +1 -1
  75. package/dist/types/index.js +1 -0
  76. package/dist/types/schema.d.ts +19 -0
  77. package/dist/types/schema.d.ts.map +1 -0
  78. package/dist/types/schema.js +1 -0
  79. package/package.json +7 -3
  80. package/dist/core/tests/integration/test-initializer.d.ts +0 -7
  81. package/dist/core/tests/integration/test-initializer.d.ts.map +0 -1
  82. package/dist/core/tests/integration/test-initializer.js +0 -32
@@ -1,37 +1,38 @@
1
1
  /**
2
2
  * Represents a raw SQL expression that can be used in queries
3
3
  */
4
- export interface SqlExpression {
5
- __type: string;
4
+ export interface SqlExpression<T = unknown> {
5
+ __type: 'expression' | 'aliased_expression';
6
6
  toSql(): string;
7
+ readonly expressionType?: T | undefined;
7
8
  }
8
9
  /**
9
10
  * Represents an aliased SQL expression that can be used in select clauses
10
11
  */
11
- export interface AliasedExpression extends SqlExpression {
12
+ export interface AliasedExpression<T = unknown, Alias extends string = string> extends SqlExpression<T> {
12
13
  __type: 'aliased_expression';
13
- alias: string;
14
+ alias: Alias;
14
15
  }
15
16
  /**
16
17
  * Creates a raw SQL expression
17
18
  * @param sql The SQL expression string
18
19
  * @returns A SqlExpression object
19
20
  */
20
- export declare function raw(sql: string): SqlExpression;
21
+ export declare function raw<T = unknown>(sql: string): SqlExpression<T>;
21
22
  /**
22
23
  * Creates an aliased SQL expression for use in SELECT clauses
23
24
  * @param sql The SQL expression string
24
25
  * @param alias The alias to use for the expression
25
26
  * @returns An AliasedExpression object
26
27
  */
27
- export declare function rawAs(sql: string, alias: string): AliasedExpression;
28
+ export declare function rawAs<T = unknown, Alias extends string = string>(sql: string, alias: Alias): AliasedExpression<T, Alias>;
28
29
  /**
29
30
  * Converts a value to DateTime format
30
31
  * @param field The field or expression to convert
31
32
  * @param alias Optional alias for the result
32
33
  * @returns SQL expression or aliased expression
33
34
  */
34
- export declare function toDateTime(field: string, alias?: string): SqlExpression | AliasedExpression;
35
+ export declare function toDateTime<T extends string = string>(field: string, alias?: T): SqlExpression<Date> | AliasedExpression<Date, T>;
35
36
  export interface FormatDateTimeOptions {
36
37
  timezone?: string;
37
38
  alias?: string;
@@ -43,7 +44,7 @@ export interface FormatDateTimeOptions {
43
44
  * @param options Optional configuration including timezone and alias
44
45
  * @returns SQL expression or aliased expression
45
46
  */
46
- export declare function formatDateTime(field: string, format: string, options?: FormatDateTimeOptions): SqlExpression | AliasedExpression;
47
+ export declare function formatDateTime<T extends string = string>(field: string, format: string, options?: FormatDateTimeOptions): SqlExpression<string> | AliasedExpression<string, T>;
47
48
  /**
48
49
  * Truncates a date/time value to the start of the specified interval
49
50
  * @param field The field to truncate
@@ -51,7 +52,7 @@ export declare function formatDateTime(field: string, format: string, options?:
51
52
  * @param alias Optional alias for the result
52
53
  * @returns SQL expression or aliased expression
53
54
  */
54
- export declare function toStartOfInterval(field: string, interval: string, alias?: string): SqlExpression | AliasedExpression;
55
+ export declare function toStartOfInterval<T extends string = string>(field: string, interval: string, alias?: T): SqlExpression<Date> | AliasedExpression<Date, T>;
55
56
  /**
56
57
  * Extracts the specified part from a date/time value
57
58
  * @param part The part to extract (year, month, day, etc.)
@@ -59,5 +60,5 @@ export declare function toStartOfInterval(field: string, interval: string, alias
59
60
  * @param alias Optional alias for the result
60
61
  * @returns SQL expression or aliased expression
61
62
  */
62
- export declare function datePart(part: 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second', field: string, alias?: string): SqlExpression | AliasedExpression;
63
+ export declare function datePart<T extends string = string>(part: 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second', field: string, alias?: T): SqlExpression<number> | AliasedExpression<number, T>;
63
64
  //# sourceMappingURL=sql-expressions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-expressions.d.ts","sourceRoot":"","sources":["../../../src/core/utils/sql-expressions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,IAAI,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAK9C;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAMnE;AAID;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,iBAAiB,CAI3F;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GAClC,aAAa,GAAG,iBAAiB,CAYnC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,iBAAiB,CAIpH;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,iBAAiB,CAK7K"}
1
+ {"version":3,"file":"sql-expressions.d.ts","sourceRoot":"","sources":["../../../src/core/utils/sql-expressions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,MAAM,EAAE,YAAY,GAAG,oBAAoB,CAAC;IAC5C,KAAK,IAAI,MAAM,CAAC;IAChB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IACrG,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAM9D;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAOxH;AAID;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAIhI;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACtD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GAClC,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAYtD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAIzJ;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAKtN"}
@@ -6,7 +6,8 @@
6
6
  export function raw(sql) {
7
7
  return {
8
8
  __type: 'expression',
9
- toSql: () => sql
9
+ toSql: () => sql,
10
+ expressionType: undefined
10
11
  };
11
12
  }
12
13
  /**
@@ -19,7 +20,8 @@ export function rawAs(sql, alias) {
19
20
  return {
20
21
  __type: 'aliased_expression',
21
22
  alias,
22
- toSql: () => `${sql} AS ${alias}`
23
+ toSql: () => `${sql} AS ${alias}`,
24
+ expressionType: undefined
23
25
  };
24
26
  }
25
27
  // Helper for common ClickHouse functions
@@ -1,4 +1,5 @@
1
- import { ColumnType, FilterConditionInput } from '../../types/index.js';
1
+ import { FilterConditionInput } from '../../types/index.js';
2
+ import { ColumnType } from '../../types/schema.js';
2
3
  export declare class FilterValidator {
3
4
  static validateFilterCondition<T = any>(condition: FilterConditionInput<T>, columnType?: ColumnType, options?: {
4
5
  allowNull?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"filter-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validators/filter-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGxE,qBAAa,eAAe;IAC1B,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,GAAG,EACpC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAClC,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO,GACpC,IAAI;IAgBP,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGrD"}
1
+ {"version":3,"file":"filter-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validators/filter-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,qBAAa,eAAe;IAC1B,MAAM,CAAC,uBAAuB,CAAC,CAAC,GAAG,GAAG,EACpC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAClC,UAAU,CAAC,EAAE,UAAU,EACvB,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO,GACpC,IAAI;IAgBP,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGrD"}
@@ -1,4 +1,5 @@
1
- import { ColumnType, FilterOperator } from '../../types/index.js';
1
+ import { FilterOperator } from '../../types/index.js';
2
+ import { ColumnType } from '../../types/schema.js';
2
3
  export declare class ValueValidator {
3
4
  static validateFilterValue(columnType: ColumnType, operator: FilterOperator, value: any, columnName: string): void;
4
5
  private static validateSingleValue;
@@ -1 +1 @@
1
- {"version":3,"file":"value-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validators/value-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElE,qBAAa,cAAc;IACzB,MAAM,CAAC,mBAAmB,CACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,GAAG,EACV,UAAU,EAAE,MAAM,GACjB,IAAI;IAqBP,OAAO,CAAC,MAAM,CAAC,mBAAmB;CA4BnC"}
1
+ {"version":3,"file":"value-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validators/value-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,qBAAa,cAAc;IACzB,MAAM,CAAC,mBAAmB,CACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,GAAG,EACV,UAAU,EAAE,MAAM,GACjB,IAAI;IAqBP,OAAO,CAAC,MAAM,CAAC,mBAAmB;CA4BnC"}
package/dist/index.d.ts CHANGED
@@ -3,11 +3,13 @@ export { ClickHouseConnection } from './core/connection.js';
3
3
  export { JoinRelationships } from './core/join-relationships.js';
4
4
  export type { ClickHouseConfig, ClickHouseClientConfig } from './core/query-builder.js';
5
5
  export { isClientConfig } from './core/query-builder.js';
6
- export type { ColumnType, TableColumn, OrderDirection, QueryConfig, InferColumnType, PaginationOptions, PaginatedResult, PageInfo, AggregationType } from './types/base.js';
6
+ export type { ColumnType, TableColumn, TableSchema, TableRecord, DatabaseSchema, InferColumnType, } from './types/schema.js';
7
+ export type { OrderDirection, QueryConfig, PaginationOptions, PaginatedResult, PageInfo, AggregationType } from './types/base.js';
7
8
  export type { FilterOperator, OperatorValueMap, FilterConditionInput } from './types/filters.js';
8
9
  export type { JoinPath, JoinPathOptions } from './core/join-relationships.js';
9
10
  export { CrossFilter } from './core/cross-filter.js';
10
11
  export { logger } from './core/utils/logger.js';
11
12
  export { raw, rawAs, toDateTime, formatDateTime, toStartOfInterval, datePart } from './core/utils/sql-expressions.js';
12
- export type { SqlExpression, FormatDateTimeOptions } from './core/utils/sql-expressions.js';
13
+ export type { SqlExpression, FormatDateTimeOptions, AliasedExpression } from './core/utils/sql-expressions.js';
14
+ export type { PredicateExpression, PredicateLiteral, PredicateBuilder, PredicateArg } from './core/utils/predicate-builder.js';
13
15
  //# 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,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,YAAY,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,QAAQ,EACR,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,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACT,MAAM,iCAAiC,CAAC;AAGzC,YAAY,EACV,aAAa,EACb,qBAAqB,EACtB,MAAM,iCAAiC,CAAC"}
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,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,YAAY,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,QAAQ,EACR,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,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,5 +1,5 @@
1
- import { ClickHouseType, InferClickHouseType } from "./clickhouse-types.js";
2
1
  import { FilterOperator } from "./filters.js";
2
+ import type { TableColumn } from './schema.js';
3
3
  export interface QueryConfig<T, Schema> {
4
4
  select?: Array<keyof T | string>;
5
5
  where?: WhereCondition[];
@@ -18,26 +18,24 @@ export interface QueryConfig<T, Schema> {
18
18
  unionQueries?: string[];
19
19
  settings?: string;
20
20
  }
21
- export interface TableSchema<T> {
22
- name: string;
23
- columns: T;
24
- }
25
- export type DatabaseSchema = Record<string, Record<string, ColumnType>>;
21
+ export type { ColumnType, TableSchema, DatabaseSchema, TableRecord, InferColumnType, TableColumn } from './schema.js';
26
22
  export type WhereExpression = string;
27
23
  export type GroupByExpression<T> = keyof T | Array<keyof T>;
28
- export type TableRecord<T> = {
29
- [K in keyof T]: T[K] extends ColumnType ? InferColumnType<T[K]> : never;
30
- };
31
- export type ColumnType = ClickHouseType;
32
- export type InferColumnType<T extends ColumnType> = InferClickHouseType<T>;
33
24
  export type OrderDirection = 'ASC' | 'DESC';
34
- export interface WhereCondition {
25
+ export interface StandardWhereCondition {
35
26
  column: string;
36
27
  operator: FilterOperator;
37
28
  value: any;
38
29
  conjunction: 'AND' | 'OR';
39
30
  type?: 'condition' | 'group-start' | 'group-end';
40
31
  }
32
+ export interface ExpressionWhereCondition {
33
+ type: 'expression';
34
+ expression: string;
35
+ parameters: any[];
36
+ conjunction: 'AND' | 'OR';
37
+ }
38
+ export type WhereCondition = StandardWhereCondition | ExpressionWhereCondition;
41
39
  export type JoinType = 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
42
40
  export interface JoinClause {
43
41
  type: JoinType;
@@ -46,9 +44,6 @@ export interface JoinClause {
46
44
  rightColumn: string;
47
45
  alias?: string;
48
46
  }
49
- export type TableColumn<Schema> = {
50
- [Table in keyof Schema]: `${string & Table}.${string & keyof Schema[Table]}`;
51
- }[keyof Schema] | keyof Schema[keyof Schema];
52
47
  export type AggregationType<T, Aggregations, Column, A extends string, Suffix extends string, HasSelect extends boolean> = HasSelect extends true ? {
53
48
  [K in keyof T | A]: K extends keyof T ? T[K] : string;
54
49
  } : Aggregations extends Record<string, string> ? Aggregations & Record<A extends undefined ? `${Column & string}_${Suffix}` : A, string> : Record<A extends undefined ? `${Column & string}_${Suffix}` : A, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@ export type ClickHouseString = 'String' | `FixedString(${number})` | 'UUID';
6
6
  export type ClickHouseBoolean = 'Bool' | 'Boolean';
7
7
  export type ClickHouseEnum = `Enum8(${string})` | `Enum16(${string})`;
8
8
  export type ClickHouseBaseType = ClickHouseInteger | ClickHouseFloat | ClickHouseDecimal | ClickHouseDateTime | ClickHouseString | ClickHouseBoolean | ClickHouseEnum;
9
- export type ClickHouseType = ClickHouseBaseType | `Array(${ClickHouseBaseType})` | `Array(Nullable(${ClickHouseBaseType}))` | `Array(LowCardinality(String))` | `Array(LowCardinality(${ClickHouseEnum}))` | `Nullable(${ClickHouseBaseType})` | `Nullable(Array(${ClickHouseBaseType}))` | `LowCardinality(${ClickHouseString})` | `LowCardinality(${ClickHouseEnum})` | `Map(String, ${ClickHouseBaseType})` | `Map(String, Array(${ClickHouseBaseType}))` | `Map(String, Nullable(${ClickHouseBaseType}))` | `Map(LowCardinality(String), ${ClickHouseBaseType})` | `Map(LowCardinality(String), Array(${ClickHouseBaseType}))` | `Map(LowCardinality(String), Nullable(${ClickHouseBaseType}))` | `Map(${ClickHouseInteger}, ${ClickHouseBaseType})` | `Map(${ClickHouseInteger}, Array(${ClickHouseBaseType}))` | `Map(${ClickHouseInteger}, Nullable(${ClickHouseBaseType}))` | `Array(Map(String, ${ClickHouseBaseType}))` | `Array(Map(LowCardinality(String), ${ClickHouseBaseType}))` | `Array(Map(${ClickHouseInteger}, ${ClickHouseBaseType}))` | `Nullable(Map(String, ${ClickHouseBaseType}))` | `Nullable(Map(LowCardinality(String), ${ClickHouseBaseType}))`;
10
- export type InferClickHouseType<T extends ClickHouseType, Depth extends number = 0> = Depth extends 5 ? unknown : T extends ClickHouseInteger ? number : T extends ClickHouseFloat ? number : T extends ClickHouseDecimal ? number : T extends ClickHouseDateTime ? Date : T extends ClickHouseString ? string : T extends ClickHouseEnum ? string : T extends ClickHouseBoolean ? boolean : T extends `Array(${infer U})` ? U extends ClickHouseType ? Array<InferClickHouseType<U, Add1<Depth>>> : unknown[] : T extends `Nullable(${infer U})` ? U extends ClickHouseType ? InferClickHouseType<U, Add1<Depth>> | null : unknown | null : T extends `LowCardinality(${infer U})` ? U extends ClickHouseString | ClickHouseEnum ? InferClickHouseType<U, Add1<Depth>> : unknown : T extends `Map(${string}, ${infer V})` ? V extends ClickHouseType ? Record<string, InferClickHouseType<V, Add1<Depth>>> : Record<string, unknown> : unknown;
9
+ export type ClickHouseType = ClickHouseBaseType | `Array(${ClickHouseBaseType})` | `Array(Nullable(${ClickHouseBaseType}))` | `Array(LowCardinality(String))` | `Array(LowCardinality(${ClickHouseEnum}))` | `Nullable(${ClickHouseBaseType})` | `Nullable(Array(${ClickHouseBaseType}))` | `LowCardinality(${ClickHouseString})` | `LowCardinality(${ClickHouseEnum})` | `LowCardinality(Nullable(${ClickHouseString}))` | `LowCardinality(Nullable(${ClickHouseEnum}))` | `Map(String, ${ClickHouseBaseType})` | `Map(String, Array(${ClickHouseBaseType}))` | `Map(String, Nullable(${ClickHouseBaseType}))` | `Map(LowCardinality(String), ${ClickHouseBaseType})` | `Map(LowCardinality(String), Array(${ClickHouseBaseType}))` | `Map(LowCardinality(String), Nullable(${ClickHouseBaseType}))` | `Map(${ClickHouseInteger}, ${ClickHouseBaseType})` | `Map(${ClickHouseInteger}, Array(${ClickHouseBaseType}))` | `Map(${ClickHouseInteger}, Nullable(${ClickHouseBaseType}))` | `Array(Map(String, ${ClickHouseBaseType}))` | `Array(Map(LowCardinality(String), ${ClickHouseBaseType}))` | `Array(Map(${ClickHouseInteger}, ${ClickHouseBaseType}))` | `Nullable(Map(String, ${ClickHouseBaseType}))` | `Nullable(Map(LowCardinality(String), ${ClickHouseBaseType}))`;
10
+ export type InferClickHouseType<T extends ClickHouseType, Depth extends number = 0> = Depth extends 5 ? unknown : T extends ClickHouseInteger ? number : T extends ClickHouseFloat ? number : T extends ClickHouseDecimal ? number : T extends ClickHouseDateTime ? Date : T extends ClickHouseString ? string : T extends ClickHouseEnum ? string : T extends ClickHouseBoolean ? boolean : T extends `Array(${infer U})` ? U extends ClickHouseType ? Array<InferClickHouseType<U, Add1<Depth>>> : unknown[] : T extends `Nullable(${infer U})` ? U extends ClickHouseType ? InferClickHouseType<U, Add1<Depth>> | null : unknown | null : T extends `LowCardinality(${infer U})` ? U extends `Nullable(${infer V})` ? V extends ClickHouseString | ClickHouseEnum ? InferClickHouseType<V, Add1<Depth>> | null : unknown | null : U extends ClickHouseString | ClickHouseEnum ? InferClickHouseType<U, Add1<Depth>> : unknown : T extends `Map(${string}, ${infer V})` ? V extends ClickHouseType ? Record<string, InferClickHouseType<V, Add1<Depth>>> : Record<string, unknown> : unknown;
11
11
  type Add1<T extends number> = T extends 0 ? 1 : T extends 1 ? 2 : T extends 2 ? 3 : T extends 3 ? 4 : 5;
12
12
  export type ClickHouseSchema = Record<string, ClickHouseType>;
13
13
  export type InferSchemaType<T extends ClickHouseSchema> = {
@@ -1 +1 @@
1
- {"version":3,"file":"clickhouse-types.d.ts","sourceRoot":"","sources":["../../src/types/clickhouse-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clickhouse-types.d.ts","sourceRoot":"","sources":["../../src/types/clickhouse-types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TableColumn } from "./base.js";
1
+ import { TableColumn } from './schema.js';
2
2
  export type FilterValue<T> = T extends Date ? Date | string : T extends number ? number : T extends string ? string : T extends boolean ? boolean : never;
3
3
  export type FilterCondition<T> = {
4
4
  eq: FilterValue<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/types/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/types/filters.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './base.js';
2
2
  export * from './filters.js';
3
3
  export * from './clickhouse-types.js';
4
+ export * from './schema.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './base.js';
2
2
  export * from './filters.js';
3
3
  export * from './clickhouse-types.js';
4
+ export * from './schema.js';
@@ -0,0 +1,19 @@
1
+ import { ClickHouseType, InferClickHouseType } from './clickhouse-types.js';
2
+ export type ColumnType = ClickHouseType;
3
+ export type InferColumnType<T extends ColumnType> = InferClickHouseType<T>;
4
+ export type DatabaseSchema = Record<string, Record<string, ColumnType>>;
5
+ export type AnySchema = Record<string, Record<string, ColumnType>>;
6
+ export interface TableSchema<TColumns> {
7
+ name: string;
8
+ columns: TColumns;
9
+ }
10
+ export type TableRecord<TColumns> = {
11
+ [K in keyof TColumns]: InferColumnType<Extract<TColumns[K], ColumnType>>;
12
+ };
13
+ export type QualifiedColumn<Schema, TableName extends keyof Schema> = `${string & TableName}.${string & keyof Schema[TableName]}`;
14
+ export type ColumnIdentifier<Schema, TableName extends keyof Schema> = QualifiedColumn<Schema, TableName> | keyof Schema[TableName];
15
+ export type TableColumnForTables<Schema, Tables extends keyof Schema = keyof Schema> = {
16
+ [TableName in Tables]: ColumnIdentifier<Schema, TableName>;
17
+ }[Tables];
18
+ export type TableColumn<Schema> = TableColumnForTables<Schema>;
19
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC;AAExC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAEnE,MAAM,WAAW,WAAW,CAAC,QAAQ;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,CAAC,QAAQ,IAAI;KACjC,CAAC,IAAI,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,MAAM,EAAE,SAAS,SAAS,MAAM,MAAM,IAChE,GAAG,MAAM,GAAG,SAAS,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,SAAS,MAAM,MAAM,IACjE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;AAE/D,MAAM,MAAM,oBAAoB,CAAC,MAAM,EAAE,MAAM,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,IAAI;KACpF,SAAS,IAAI,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC;CAC3D,CAAC,MAAM,CAAC,CAAC;AAEV,MAAM,MAAM,WAAW,CAAC,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "@hypequery/clickhouse",
3
- "version": "1.3.1-beta.0",
3
+ "version": "1.3.2",
4
4
  "description": "ClickHouse typescript query builder",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "type": "module",
8
+ "browser": {
9
+ "./dist/core/env/auto-client.js": "./dist/core/env/auto-client.browser.js"
10
+ },
8
11
  "exports": {
9
12
  ".": {
10
13
  "types": "./dist/index.d.ts",
@@ -21,8 +24,9 @@
21
24
  "verify-build": "node scripts/verify-build.js",
22
25
  "diagnose-ci": "node scripts/diagnose-ci.js",
23
26
  "dev": "tsc --watch",
24
- "test": "npm run test:unit",
25
- "test:unit": "jest --testPathIgnorePatterns='integration' --config=jest.config.cjs",
27
+ "test": "npm run test:types && npm run test:unit",
28
+ "test:unit": "jest --testPathIgnorePatterns='integration|type-tests' --config=jest.config.cjs",
29
+ "test:types": "tsc --project tsconfig.type-tests.json",
26
30
  "test:integration": "node scripts/run-integration-tests.js",
27
31
  "test:watch": "jest --testPathIgnorePatterns='integration' --watch --config=jest.config.cjs",
28
32
  "test:coverage": "jest --coverage --config=jest.config.cjs",
@@ -1,7 +0,0 @@
1
- /**
2
- * Common initialization for all integration tests
3
- * Import this at the beginning of each test file to ensure consistent setup
4
- */
5
- export declare const skipIntegrationTests: () => boolean;
6
- export declare const initializeForTest: () => Promise<void>;
7
- //# sourceMappingURL=test-initializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-initializer.d.ts","sourceRoot":"","sources":["../../../../src/core/tests/integration/test-initializer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,eAAO,MAAM,oBAAoB,eAEhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,IAAI,CAqBtD,CAAC"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Common initialization for all integration tests
3
- * Import this at the beginning of each test file to ensure consistent setup
4
- */
5
- import { startClickHouseContainer, waitForClickHouse, ensureConnectionInitialized, setupTestDatabase } from './setup.js';
6
- export const skipIntegrationTests = () => {
7
- return process.env.SKIP_INTEGRATION_TESTS === 'true' || process.env.CI === 'true';
8
- };
9
- export const initializeForTest = async () => {
10
- if (skipIntegrationTests()) {
11
- return;
12
- }
13
- try {
14
- // Initialize the connection
15
- ensureConnectionInitialized();
16
- // Make sure container is running
17
- await startClickHouseContainer();
18
- // Wait for ClickHouse to be ready
19
- await waitForClickHouse();
20
- // Set up the test database
21
- await setupTestDatabase();
22
- }
23
- catch (error) {
24
- console.error('Failed to initialize test environment:', error);
25
- throw error;
26
- }
27
- };
28
- // Automatically initialize when this module is imported
29
- initializeForTest().catch(error => {
30
- console.error('Test initialization failed:', error);
31
- process.exit(1);
32
- });