@hypequery/clickhouse 0.2.1 → 0.2.2-beta.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 (69) hide show
  1. package/README-CLI.md +1 -1
  2. package/dist/cli/bin.js +129 -37
  3. package/dist/cli/generate-types.js +104 -15
  4. package/dist/core/connection.d.ts +112 -0
  5. package/dist/core/connection.d.ts.map +1 -1
  6. package/dist/core/connection.js +148 -25
  7. package/dist/core/cross-filter.d.ts +69 -0
  8. package/dist/core/cross-filter.d.ts.map +1 -1
  9. package/dist/core/cross-filter.js +1 -83
  10. package/dist/core/features/aggregations.d.ts +102 -0
  11. package/dist/core/features/analytics.d.ts +66 -0
  12. package/dist/core/features/analytics.d.ts.map +1 -1
  13. package/dist/core/features/cross-filtering.d.ts +31 -0
  14. package/dist/core/features/cross-filtering.d.ts.map +1 -0
  15. package/dist/core/features/cross-filtering.js +123 -0
  16. package/dist/core/features/executor.d.ts +19 -0
  17. package/dist/core/features/executor.js +3 -3
  18. package/dist/core/features/filtering.d.ts +95 -0
  19. package/dist/core/features/filtering.d.ts.map +1 -1
  20. package/dist/core/features/filtering.js +89 -3
  21. package/dist/core/features/joins.d.ts +29 -0
  22. package/dist/core/features/pagination.d.ts +23 -0
  23. package/dist/core/features/query-modifiers.d.ts +119 -0
  24. package/dist/core/formatters/sql-formatter.d.ts +9 -0
  25. package/dist/core/formatters/sql-formatter.d.ts.map +1 -1
  26. package/dist/core/formatters/sql-formatter.js +61 -5
  27. package/dist/core/join-relationships.d.ts +50 -0
  28. package/dist/core/join-relationships.d.ts.map +1 -1
  29. package/dist/core/query-builder.d.ts +258 -0
  30. package/dist/core/query-builder.d.ts.map +1 -1
  31. package/dist/core/query-builder.js +88 -27
  32. package/dist/core/tests/index.d.ts +2 -0
  33. package/dist/core/tests/integration/pagination-test-tbc.d.ts +2 -0
  34. package/dist/core/tests/integration/pagination-test-tbc.d.ts.map +1 -0
  35. package/dist/core/tests/integration/pagination-test-tbc.js +189 -0
  36. package/dist/core/tests/integration/setup.d.ts +40 -0
  37. package/dist/core/tests/integration/setup.d.ts.map +1 -1
  38. package/dist/core/tests/integration/setup.js +279 -238
  39. package/dist/core/tests/integration/test-config.d.ts +15 -0
  40. package/dist/core/tests/integration/test-config.d.ts.map +1 -0
  41. package/dist/core/tests/integration/test-config.js +15 -0
  42. package/dist/core/tests/integration/test-initializer.d.ts +7 -0
  43. package/dist/core/tests/integration/test-initializer.d.ts.map +1 -0
  44. package/dist/core/tests/integration/test-initializer.js +32 -0
  45. package/dist/core/tests/test-utils.d.ts +29 -0
  46. package/dist/core/tests/test-utils.d.ts.map +1 -1
  47. package/dist/core/tests/test-utils.js +6 -2
  48. package/dist/core/utils/logger.d.ts +37 -0
  49. package/dist/core/utils/logger.js +6 -6
  50. package/dist/core/utils/sql-expressions.d.ts +63 -0
  51. package/dist/core/utils/sql-expressions.d.ts.map +1 -1
  52. package/dist/core/utils/sql-expressions.js +9 -5
  53. package/dist/core/utils.d.ts +3 -0
  54. package/dist/core/validators/filter-validator.d.ts +8 -0
  55. package/dist/core/validators/filter-validator.js +1 -1
  56. package/dist/core/validators/value-validator.d.ts +6 -0
  57. package/dist/formatters/index.d.ts +1 -0
  58. package/dist/index.d.ts +12 -27
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +14 -2
  61. package/dist/types/base.d.ts +77 -0
  62. package/dist/types/base.d.ts.map +1 -1
  63. package/dist/types/clickhouse-types.d.ts +13 -0
  64. package/dist/types/clickhouse-types.d.ts.map +1 -1
  65. package/dist/types/filters.d.ts +53 -0
  66. package/dist/types/filters.d.ts.map +1 -1
  67. package/dist/types/index.d.ts +3 -0
  68. package/package.json +36 -13
  69. package/README.md +0 -276
@@ -0,0 +1,29 @@
1
+ import { QueryBuilder } from '../query-builder';
2
+ export type TestTableSchema = {
3
+ id: 'Int32';
4
+ name: 'String';
5
+ price: 'Float64';
6
+ created_at: 'Date';
7
+ category: 'String';
8
+ active: 'UInt8';
9
+ created_by: 'Int32';
10
+ updated_by: 'Int32';
11
+ status: 'String';
12
+ brand: 'String';
13
+ total: 'Int32';
14
+ priority: 'String';
15
+ };
16
+ export type UsersSchema = {
17
+ id: 'Int32';
18
+ user_name: 'String';
19
+ email: 'String';
20
+ created_at: 'Date';
21
+ };
22
+ export interface TestSchema {
23
+ test_table: TestTableSchema;
24
+ users: UsersSchema;
25
+ }
26
+ export declare const TEST_SCHEMAS: TestSchema;
27
+ export declare function setupUsersBuilder(): QueryBuilder<TestSchema, TestSchema['users'], false, {}, TestSchema['users']>;
28
+ export declare function setupTestBuilder(): QueryBuilder<TestSchema, TestSchema['test_table'], false, {}, TestSchema['test_table']>;
29
+ //# sourceMappingURL=test-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../src/core/tests/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,KAAK,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;AAEnE,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;CAC3D;AAGD,eAAO,MAAM,YAAY,EAAE,UAiB1B,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CASjH;AAED,wBAAgB,gBAAgB,IAAI,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAS1H"}
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../src/core/tests/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,EAAE,WAAW,CAAC;CACpB;AAGD,eAAO,MAAM,YAAY,EAAE,UAqB1B,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CASjH;AAED,wBAAgB,gBAAgB,IAAI,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAS1H"}
@@ -1,4 +1,4 @@
1
- import { QueryBuilder } from '../query-builder';
1
+ import { QueryBuilder } from '../query-builder.js';
2
2
  // Test data
3
3
  export const TEST_SCHEMAS = {
4
4
  test_table: {
@@ -9,7 +9,11 @@ export const TEST_SCHEMAS = {
9
9
  category: 'String',
10
10
  active: 'UInt8',
11
11
  created_by: 'Int32',
12
- updated_by: 'Int32'
12
+ updated_by: 'Int32',
13
+ status: 'String',
14
+ brand: 'String',
15
+ total: 'Int32',
16
+ priority: 'String',
13
17
  },
14
18
  users: {
15
19
  id: 'Int32',
@@ -0,0 +1,37 @@
1
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
+ export interface QueryLog {
3
+ query: string;
4
+ parameters?: any[];
5
+ startTime: number;
6
+ endTime?: number;
7
+ duration?: number;
8
+ status: 'started' | 'completed' | 'error';
9
+ error?: Error;
10
+ rowCount?: number;
11
+ queryId?: string;
12
+ }
13
+ export interface LoggerOptions {
14
+ level?: LogLevel;
15
+ enabled?: boolean;
16
+ onQueryLog?: (log: QueryLog) => void;
17
+ }
18
+ declare class Logger {
19
+ private static instance;
20
+ private level;
21
+ private enabled;
22
+ private onQueryLog?;
23
+ private querySubscribers;
24
+ private constructor();
25
+ static getInstance(): Logger;
26
+ configure(options: LoggerOptions): void;
27
+ subscribeToQuery(queryId: string, callback: (log: QueryLog) => void): () => void;
28
+ private shouldLog;
29
+ debug(message: string, ...args: any[]): void;
30
+ info(message: string, ...args: any[]): void;
31
+ warn(message: string, ...args: any[]): void;
32
+ error(message: string, ...args: any[]): void;
33
+ logQuery(log: QueryLog): void;
34
+ }
35
+ export declare const logger: Logger;
36
+ export {};
37
+ //# sourceMappingURL=logger.d.ts.map
@@ -44,25 +44,27 @@ class Logger {
44
44
  }
45
45
  debug(message, ...args) {
46
46
  if (this.shouldLog('debug')) {
47
- console.debug(`[HypeQuery Debug] ${message}`, ...args);
47
+ console.debug(`[hypequery Debug] ${message}`, ...args);
48
48
  }
49
49
  }
50
50
  info(message, ...args) {
51
51
  if (this.shouldLog('info')) {
52
- console.info(`[HypeQuery Info] ${message}`, ...args);
52
+ console.info(`[hypequery Info] ${message}`, ...args);
53
53
  }
54
54
  }
55
55
  warn(message, ...args) {
56
56
  if (this.shouldLog('warn')) {
57
- console.warn(`[HypeQuery Warn] ${message}`, ...args);
57
+ console.warn(`[hypequery Warn] ${message}`, ...args);
58
58
  }
59
59
  }
60
60
  error(message, ...args) {
61
61
  if (this.shouldLog('error')) {
62
- console.error(`[HypeQuery Error] ${message}`, ...args);
62
+ console.error(`[hypequery Error] ${message}`, ...args);
63
63
  }
64
64
  }
65
65
  logQuery(log) {
66
+ if (!this.enabled)
67
+ return;
66
68
  if (this.onQueryLog) {
67
69
  this.onQueryLog(log);
68
70
  }
@@ -72,8 +74,6 @@ class Logger {
72
74
  subscribers.forEach(callback => callback(log));
73
75
  }
74
76
  }
75
- if (!this.enabled)
76
- return;
77
77
  const { query, parameters, duration, status, error, rowCount } = log;
78
78
  const message = `Query ${status}: ${query}`;
79
79
  const details = {
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Represents a raw SQL expression that can be used in queries
3
+ */
4
+ export interface SqlExpression {
5
+ __type: string;
6
+ toSql(): string;
7
+ }
8
+ /**
9
+ * Represents an aliased SQL expression that can be used in select clauses
10
+ */
11
+ export interface AliasedExpression extends SqlExpression {
12
+ __type: 'aliased_expression';
13
+ alias: string;
14
+ }
15
+ /**
16
+ * Creates a raw SQL expression
17
+ * @param sql The SQL expression string
18
+ * @returns A SqlExpression object
19
+ */
20
+ export declare function raw(sql: string): SqlExpression;
21
+ /**
22
+ * Creates an aliased SQL expression for use in SELECT clauses
23
+ * @param sql The SQL expression string
24
+ * @param alias The alias to use for the expression
25
+ * @returns An AliasedExpression object
26
+ */
27
+ export declare function rawAs(sql: string, alias: string): AliasedExpression;
28
+ /**
29
+ * Converts a value to DateTime format
30
+ * @param field The field or expression to convert
31
+ * @param alias Optional alias for the result
32
+ * @returns SQL expression or aliased expression
33
+ */
34
+ export declare function toDateTime(field: string, alias?: string): SqlExpression | AliasedExpression;
35
+ export interface FormatDateTimeOptions {
36
+ timezone?: string;
37
+ alias?: string;
38
+ }
39
+ /**
40
+ * Formats a DateTime value using the specified format
41
+ * @param field The field or expression to format
42
+ * @param format The date format string
43
+ * @param options Optional configuration including timezone and alias
44
+ * @returns SQL expression or aliased expression
45
+ */
46
+ export declare function formatDateTime(field: string, format: string, options?: FormatDateTimeOptions): SqlExpression | AliasedExpression;
47
+ /**
48
+ * Truncates a date/time value to the start of the specified interval
49
+ * @param field The field to truncate
50
+ * @param interval The interval (e.g., '1 day', '15 minute')
51
+ * @param alias Optional alias for the result
52
+ * @returns SQL expression or aliased expression
53
+ */
54
+ export declare function toStartOfInterval(field: string, interval: string, alias?: string): SqlExpression | AliasedExpression;
55
+ /**
56
+ * Extracts the specified part from a date/time value
57
+ * @param part The part to extract (year, month, day, etc.)
58
+ * @param field The field to extract from
59
+ * @param alias Optional alias for the result
60
+ * @returns SQL expression or aliased expression
61
+ */
62
+ export declare function datePart(part: 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second', field: string, alias?: string): SqlExpression | AliasedExpression;
63
+ //# 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;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,iBAAiB,CAI/G;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;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"}
@@ -38,13 +38,17 @@ export function toDateTime(field, alias) {
38
38
  * Formats a DateTime value using the specified format
39
39
  * @param field The field or expression to format
40
40
  * @param format The date format string
41
- * @param alias Optional alias for the result
41
+ * @param options Optional configuration including timezone and alias
42
42
  * @returns SQL expression or aliased expression
43
43
  */
44
- export function formatDateTime(field, format, alias) {
45
- return alias
46
- ? rawAs(`formatDateTime(${field}, '${format}')`, alias)
47
- : raw(`formatDateTime(${field}, '${format}')`);
44
+ export function formatDateTime(field, format, options = {}) {
45
+ const { timezone, alias } = options;
46
+ let sql = `formatDateTime(${field}, '${format}'`;
47
+ if (timezone) {
48
+ sql += `, '${timezone}'`;
49
+ }
50
+ sql += ')';
51
+ return alias ? rawAs(sql, alias) : raw(sql);
48
52
  }
49
53
  /**
50
54
  * Truncates a date/time value to the start of the specified interval
@@ -0,0 +1,3 @@
1
+ export declare function escapeValue(value: any): string;
2
+ export declare function substituteParameters(sql: string, params: any[]): string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { ColumnType, FilterConditionInput } from '../../types';
2
+ export declare class FilterValidator {
3
+ static validateFilterCondition<T = any>(condition: FilterConditionInput<T>, columnType?: ColumnType, options?: {
4
+ allowNull?: boolean;
5
+ }): void;
6
+ static validateJoinedColumn(column: string): boolean;
7
+ }
8
+ //# sourceMappingURL=filter-validator.d.ts.map
@@ -1,4 +1,4 @@
1
- import { ValueValidator } from './value-validator';
1
+ import { ValueValidator } from './value-validator.js';
2
2
  export class FilterValidator {
3
3
  static validateFilterCondition(condition, columnType, options = {}) {
4
4
  const { column, operator, value } = condition;
@@ -0,0 +1,6 @@
1
+ import { ColumnType, FilterOperator } from '../../types';
2
+ export declare class ValueValidator {
3
+ static validateFilterValue(columnType: ColumnType, operator: FilterOperator, value: any, columnName: string): void;
4
+ private static validateSingleValue;
5
+ }
6
+ //# sourceMappingURL=value-validator.d.ts.map
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,30 +1,15 @@
1
- /**
2
- * Main ClickHouse connection class
3
- */
4
- export declare class ClickHouseConnection {
5
- static client: any;
6
- static config: any;
7
-
8
- /**
9
- * Initialize the connection with configuration
10
- */
11
- static initialize(config: {
12
- host: string;
13
- username: string;
14
- password: string;
15
- database: string;
16
- }): typeof ClickHouseConnection;
17
-
18
- /**
19
- * Get the ClickHouse client instance
20
- */
21
- static getClient(): any;
22
-
23
- /**
24
- * Get the current configuration
25
- */
26
- static getConfig(): any;
27
- }
1
+ export { createQueryBuilder, QueryBuilder } from './core/query-builder';
2
+ export { ClickHouseConnection } from './core/connection';
3
+ export { JoinRelationships } from './core/join-relationships';
4
+ export type { ClickHouseConfig, ClickHouseHostConfig, ClickHouseClientConfig } from './core/query-builder';
5
+ export { isClientConfig } from './core/query-builder';
6
+ export type { TableSchema, QueryConfig, ColumnType, WhereExpression, GroupByExpression, TableRecord, DatabaseSchema, PaginatedResult, PageInfo, PaginationOptions } from './types/base';
7
+ export type { JoinPath, JoinPathOptions } from './core/join-relationships';
8
+ export { CrossFilter } from './core/cross-filter';
9
+ export { logger } from './core/utils/logger';
10
+ export { raw, rawAs, toDateTime, formatDateTime, toStartOfInterval, datePart, FormatDateTimeOptions } from './core/utils/sql-expressions';
11
+ export type { SqlExpression, AliasedExpression } from './core/utils/sql-expressions';
12
+ //# sourceMappingURL=index.d.ts.map
28
13
 
29
14
  /**
30
15
  * Generates TypeScript type definitions from ClickHouse schema
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,eAAe,EACf,QAAQ,EACR,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,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;AAChD,OAAO,EACL,GAAG,EACH,KAAK,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACT,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,aAAa,EACb,iBAAiB,EAClB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,eAAe,EACf,QAAQ,EACR,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,GAAG,EACH,KAAK,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,aAAa,EACb,iBAAiB,EAClB,MAAM,8BAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,17 @@
1
1
  // Main entry point
2
+ export { createQueryBuilder } from './core/query-builder.js';
2
3
  export { ClickHouseConnection } from './core/connection.js';
4
+ export { JoinRelationships } from './core/join-relationships.js';
5
+ export { CrossFilter } from './core/cross-filter.js';
6
+ export { logger } from './core/utils/logger.js';
7
+ export {
8
+ raw,
9
+ rawAs,
10
+ toDateTime,
11
+ formatDateTime,
12
+ toStartOfInterval,
13
+ datePart
14
+ } from './core/utils/sql-expressions.js';
3
15
 
4
- // CLI exports
5
- export { generateTypes } from './cli/generate-types.js';
16
+ // Note: CLI functionality is deliberately not exported from the main package
17
+ // This prevents Node.js-specific modules from being included in browser bundles
@@ -0,0 +1,77 @@
1
+ import { ClickHouseType, InferClickHouseType } from "./clickhouse-types";
2
+ import { FilterOperator } from "./filters";
3
+ export interface QueryConfig<T, Schema> {
4
+ select?: Array<keyof T | string>;
5
+ where?: WhereCondition[];
6
+ groupBy?: string[];
7
+ having?: string[];
8
+ limit?: number;
9
+ offset?: number;
10
+ distinct?: boolean;
11
+ orderBy?: Array<{
12
+ column: keyof T | TableColumn<Schema>;
13
+ direction: OrderDirection;
14
+ }>;
15
+ joins?: JoinClause[];
16
+ parameters?: any[];
17
+ ctes?: string[];
18
+ unionQueries?: string[];
19
+ settings?: string;
20
+ }
21
+ export interface TableSchema<T> {
22
+ name: string;
23
+ columns: T;
24
+ }
25
+ export type DatabaseSchema = Record<string, Record<string, ColumnType>>;
26
+ export type WhereExpression = string;
27
+ 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
+ export type OrderDirection = 'ASC' | 'DESC';
34
+ export interface WhereCondition {
35
+ column: string;
36
+ operator: FilterOperator;
37
+ value: any;
38
+ conjunction: 'AND' | 'OR';
39
+ type?: 'condition' | 'group-start' | 'group-end';
40
+ }
41
+ export type JoinType = 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
42
+ export interface JoinClause {
43
+ type: JoinType;
44
+ table: string;
45
+ leftColumn: string;
46
+ rightColumn: string;
47
+ alias?: string;
48
+ }
49
+ export type TableColumn<Schema> = {
50
+ [Table in keyof Schema]: `${string & Table}.${string & keyof Schema[Table]}`;
51
+ }[keyof Schema] | keyof Schema[keyof Schema];
52
+ export type AggregationType<T, Aggregations, Column, A extends string, Suffix extends string, HasSelect extends boolean> = HasSelect extends true ? {
53
+ [K in keyof T | A]: K extends keyof T ? T[K] : string;
54
+ } : Aggregations extends Record<string, string> ? Aggregations & Record<A extends undefined ? `${Column & string}_${Suffix}` : A, string> : Record<A extends undefined ? `${Column & string}_${Suffix}` : A, string>;
55
+ export interface PaginationOptions<T> {
56
+ pageSize: number;
57
+ after?: string;
58
+ before?: string;
59
+ orderBy?: Array<{
60
+ column: keyof T | TableColumn<any>;
61
+ direction: OrderDirection;
62
+ }>;
63
+ }
64
+ export interface PageInfo {
65
+ hasNextPage: boolean;
66
+ hasPreviousPage: boolean;
67
+ startCursor: string;
68
+ endCursor: string;
69
+ totalCount: number;
70
+ totalPages: number;
71
+ pageSize: number;
72
+ }
73
+ export interface PaginatedResult<T> {
74
+ data: T[];
75
+ pageInfo: PageInfo;
76
+ }
77
+ //# sourceMappingURL=base.d.ts.map
@@ -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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"}
@@ -0,0 +1,13 @@
1
+ export type ClickHouseInteger = 'Int8' | 'Int16' | 'Int32' | 'Int64' | 'Int128' | 'Int256' | 'UInt8' | 'UInt16' | 'UInt32' | 'UInt64' | 'UInt128' | 'UInt256';
2
+ export type ClickHouseFloat = 'Float32' | 'Float64';
3
+ export type ClickHouseDecimal = 'Decimal32' | 'Decimal64' | 'Decimal128' | 'Decimal256' | `Decimal(${number}, ${number})`;
4
+ export type ClickHouseDateTime = 'Date' | 'Date32' | 'DateTime' | `DateTime('${string}')` | `DateTime64(${number})` | `DateTime64(${number}, '${string}')`;
5
+ export type ClickHouseString = 'String' | `FixedString(${number})` | 'UUID';
6
+ export type ClickHouseArray = `Array(${ClickHouseBaseType})`;
7
+ export type ClickHouseNullable = `Nullable(${ClickHouseBaseType})`;
8
+ export type ClickHouseLowCardinality = `LowCardinality(${ClickHouseString})`;
9
+ export type ClickHouseMap = `Map(${ClickHouseBaseType}, ${ClickHouseBaseType})`;
10
+ export type ClickHouseBaseType = ClickHouseInteger | ClickHouseFloat | ClickHouseDecimal | ClickHouseDateTime | ClickHouseString;
11
+ export type ClickHouseType = ClickHouseBaseType | ClickHouseArray | ClickHouseNullable | ClickHouseLowCardinality | ClickHouseMap;
12
+ export type InferClickHouseType<T extends ClickHouseType> = T extends ClickHouseInteger ? number : T extends ClickHouseFloat ? number : T extends ClickHouseDecimal ? number : T extends ClickHouseDateTime ? Date : T extends ClickHouseString ? string : T extends `Array(${infer U extends ClickHouseBaseType})` ? Array<InferClickHouseType<U>> : T extends `Nullable(${infer U extends ClickHouseBaseType})` ? InferClickHouseType<U> | null : T extends `LowCardinality(${infer U extends ClickHouseString})` ? InferClickHouseType<U> : T extends `Map(${infer K extends ClickHouseBaseType}, ${infer V extends ClickHouseBaseType})` ? Map<InferClickHouseType<K>, InferClickHouseType<V>> : never;
13
+ //# sourceMappingURL=clickhouse-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clickhouse-types.d.ts","sourceRoot":"","sources":["../../src/types/clickhouse-types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,iBAAiB,GACzB,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAC1D,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GACvD,WAAW,MAAM,KAAK,MAAM,GAAG,CAAC;AAGpC,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GAAG,QAAQ,GACjB,UAAU,GACV,cAAc,MAAM,GAAG,GACvB,cAAc,MAAM,MAAM,MAAM,IAAI,CAAC;AAGzC,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,eAAe,MAAM,GAAG,GACxB,MAAM,CAAC;AAGX,MAAM,MAAM,eAAe,GAAG,SAAS,kBAAkB,GAAG,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,YAAY,kBAAkB,GAAG,CAAC;AACnE,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,gBAAgB,GAAG,CAAC;AAC7E,MAAM,MAAM,aAAa,GAAG,OAAO,kBAAkB,KAAK,kBAAkB,GAAG,CAAC;AAGhF,MAAM,MAAM,kBAAkB,GAC1B,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,CAAC;AAGrB,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,wBAAwB,GACxB,aAAa,CAAC;AAGlB,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,cAAc,IACtD,CAAC,SAAS,iBAAiB,GAAG,MAAM,GACpC,CAAC,SAAS,eAAe,GAAG,MAAM,GAClC,CAAC,SAAS,iBAAiB,GAAG,MAAM,GACpC,CAAC,SAAS,kBAAkB,GAAG,IAAI,GACnC,CAAC,SAAS,gBAAgB,GAAG,MAAM,GACnC,CAAC,SAAS,SAAS,MAAM,CAAC,SAAS,kBAAkB,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACxF,CAAC,SAAS,YAAY,MAAM,CAAC,SAAS,kBAAkB,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,GAC3F,CAAC,SAAS,kBAAkB,MAAM,CAAC,SAAS,gBAAgB,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,GACxF,CAAC,SAAS,OAAO,MAAM,CAAC,SAAS,kBAAkB,KAAK,MAAM,CAAC,SAAS,kBAAkB,GAAG,GAC7F,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACnD,KAAK,CAAC"}
1
+ {"version":3,"file":"clickhouse-types.d.ts","sourceRoot":"","sources":["../../src/types/clickhouse-types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,iBAAiB,GACzB,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAC1D,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GACvD,WAAW,MAAM,KAAK,MAAM,GAAG,CAAC;AAGpC,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GAAG,QAAQ,GACjB,UAAU,GACV,aAAa,MAAM,IAAI,GACvB,cAAc,MAAM,GAAG,GACvB,cAAc,MAAM,MAAM,MAAM,IAAI,CAAC;AAGzC,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,eAAe,MAAM,GAAG,GACxB,MAAM,CAAC;AAGX,MAAM,MAAM,eAAe,GAAG,SAAS,kBAAkB,GAAG,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,YAAY,kBAAkB,GAAG,CAAC;AACnE,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,gBAAgB,GAAG,CAAC;AAC7E,MAAM,MAAM,aAAa,GAAG,OAAO,kBAAkB,KAAK,kBAAkB,GAAG,CAAC;AAGhF,MAAM,MAAM,kBAAkB,GAC1B,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,CAAC;AAGrB,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,wBAAwB,GACxB,aAAa,CAAC;AAGlB,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,cAAc,IACtD,CAAC,SAAS,iBAAiB,GAAG,MAAM,GACpC,CAAC,SAAS,eAAe,GAAG,MAAM,GAClC,CAAC,SAAS,iBAAiB,GAAG,MAAM,GACpC,CAAC,SAAS,kBAAkB,GAAG,IAAI,GACnC,CAAC,SAAS,gBAAgB,GAAG,MAAM,GACnC,CAAC,SAAS,SAAS,MAAM,CAAC,SAAS,kBAAkB,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACxF,CAAC,SAAS,YAAY,MAAM,CAAC,SAAS,kBAAkB,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,GAC3F,CAAC,SAAS,kBAAkB,MAAM,CAAC,SAAS,gBAAgB,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,GACxF,CAAC,SAAS,OAAO,MAAM,CAAC,SAAS,kBAAkB,KAAK,MAAM,CAAC,SAAS,kBAAkB,GAAG,GAC7F,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACnD,KAAK,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { TableColumn } from "./base";
2
+ export type FilterValue<T> = T extends Date ? Date | string : T extends number ? number : T extends string ? string : T extends boolean ? boolean : never;
3
+ export type FilterCondition<T> = {
4
+ eq: FilterValue<T>;
5
+ neq: FilterValue<T>;
6
+ gt: T extends number | Date ? FilterValue<T> : never;
7
+ gte: T extends number | Date ? FilterValue<T> : never;
8
+ lt: T extends number | Date ? FilterValue<T> : never;
9
+ lte: T extends number | Date ? FilterValue<T> : never;
10
+ in: FilterValue<T>[];
11
+ notIn: FilterValue<T>[];
12
+ between: [FilterValue<T>, FilterValue<T>] | [string, string];
13
+ like: T extends string ? string : never;
14
+ notLike: T extends string ? string : never;
15
+ globalIn: FilterValue<T>[];
16
+ globalNotIn: FilterValue<T>[];
17
+ inSubquery: string;
18
+ globalInSubquery: string;
19
+ inTable: string;
20
+ globalInTable: string;
21
+ inTuple: [FilterValue<T>, FilterValue<T>][];
22
+ globalInTuple: [FilterValue<T>, FilterValue<T>][];
23
+ };
24
+ export type FilterValueType<T, Op extends FilterOperator, Schema = any> = Op extends 'in' | 'notIn' | 'globalIn' | 'globalNotIn' ? T extends (infer U)[] ? U[] : T[] : Op extends 'between' ? [T, T] | [string, string] : Op extends 'inSubquery' | 'globalInSubquery' ? string : Op extends 'inTable' | 'globalInTable' ? keyof Schema : Op extends 'inTuple' | 'globalInTuple' ? [T, T][] : T;
25
+ export type OperatorValueMap<T, Schema = any> = {
26
+ 'eq': T | string;
27
+ 'neq': T | string;
28
+ 'gt': T extends string | number | Date ? T | string : never;
29
+ 'lt': T extends string | number | Date ? T | string : never;
30
+ 'gte': T extends string | number | Date ? T | string : never;
31
+ 'lte': T extends string | number | Date ? T | string : never;
32
+ 'in': (T | string)[];
33
+ 'notIn': (T | string)[];
34
+ 'between': [T | string, T | string] | [string, string];
35
+ 'like': T extends string ? string : never;
36
+ 'notLike': T extends string ? string : never;
37
+ 'globalIn': (T | string)[];
38
+ 'globalNotIn': (T | string)[];
39
+ 'inSubquery': string;
40
+ 'globalInSubquery': string;
41
+ 'inTable': keyof Schema;
42
+ 'globalInTable': keyof Schema;
43
+ 'inTuple': [T | string, T | string][];
44
+ 'globalInTuple': [T | string, T | string][];
45
+ };
46
+ export type FilterOperator = keyof OperatorValueMap<any>;
47
+ export interface FilterConditionInput<T = any, Schema extends Record<string, Record<string, any>> = any, OriginalT extends Record<string, any> = any> {
48
+ column: keyof OriginalT | TableColumn<Schema>;
49
+ operator: FilterOperator;
50
+ value: T;
51
+ conjunction?: 'AND' | 'OR';
52
+ }
53
+ //# sourceMappingURL=filters.d.ts.map
@@ -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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"}
@@ -0,0 +1,3 @@
1
+ export * from './base';
2
+ export * from './filters';
3
+ //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,27 +1,32 @@
1
1
  {
2
2
  "name": "@hypequery/clickhouse",
3
- "version": "0.2.1",
3
+ "version": "0.2.2-beta.0",
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
+ "license": "Apache-2.0",
8
9
  "scripts": {
9
- "build": "npm run build:main && npm run build:cli && npm run fix-typedefs && npm run verify-build || npm run diagnose-ci",
10
- "build:main": "tsc",
11
- "build:cli": "node scripts/ensure-core-files.js && node scripts/create-bin-file.js && node scripts/handle-cli-files.js",
12
- "build:ci": "npm run build:main && node scripts/create-bin-file.js && node scripts/ensure-core-files.js && node scripts/handle-cli-files.js && npm run fix-typedefs && npm run verify-build || npm run diagnose-ci",
10
+ "build": "npm run build:main && npm run build:cli && npm run fix-typedefs && npm run fix-esm-imports && npm run verify-build || npm run diagnose-ci",
11
+ "build:main": "tsc --project tsconfig.json",
12
+ "build:cli": "node scripts/ensure-core-files.js && node scripts/handle-cli-files.js",
13
+ "build:ci": "npm run build:main && node scripts/ensure-core-files.js && node scripts/handle-cli-files.js && npm run fix-typedefs && npm run fix-esm-imports && npm run verify-build || npm run diagnose-ci",
13
14
  "fix-typedefs": "node scripts/fix-typedefs.js",
15
+ "fix-esm-imports": "node scripts/fix-esm-imports.js",
14
16
  "verify-build": "node scripts/verify-build.js",
15
17
  "diagnose-ci": "node scripts/diagnose-ci.js",
16
18
  "dev": "tsc --watch",
17
19
  "test": "npm run test:unit",
18
- "test:unit": "jest --testPathIgnorePatterns='integration'",
19
- "test:watch": "jest --testPathIgnorePatterns='integration' --watch",
20
- "test:coverage": "jest --coverage",
20
+ "test:unit": "jest --testPathIgnorePatterns='integration' --config=jest.config.cjs",
21
+ "test:integration": "node scripts/run-integration-tests.js",
22
+ "test:watch": "jest --testPathIgnorePatterns='integration' --watch --config=jest.config.cjs",
23
+ "test:coverage": "jest --coverage --config=jest.config.cjs",
21
24
  "test:cli": "node scripts/test-cli-integration.js",
22
25
  "lint": "eslint src/**/*.ts",
23
26
  "semantic-release": "npx semantic-release",
24
- "release": "npx semantic-release --extends ./.releaserc.cjs --no-ci"
27
+ "release": "npx semantic-release --extends ./.releaserc.cjs --no-ci",
28
+ "docs:api": "typedoc --options typedoc.json",
29
+ "docs:mdx": "npm run docs:api && node scripts/process-typedoc-markdown.js"
25
30
  },
26
31
  "bin": {
27
32
  "hypequery-generate-types": "./dist/cli/bin.js"
@@ -31,10 +36,25 @@
31
36
  "README-CLI.md"
32
37
  ],
33
38
  "dependencies": {
34
- "@clickhouse/client-web": "^0.2.0",
35
39
  "dotenv": "^16.0.0"
36
40
  },
41
+ "peerDependencies": {
42
+ "@clickhouse/client": "^0.2.0 || ^1.0.0",
43
+ "@clickhouse/client-web": "^0.2.0 || ^1.0.0"
44
+ },
45
+ "peerDependenciesMeta": {
46
+ "@clickhouse/client": {
47
+ "optional": true
48
+ },
49
+ "@clickhouse/client-web": {
50
+ "optional": true
51
+ }
52
+ },
37
53
  "devDependencies": {
54
+ "@babel/plugin-transform-modules-commonjs": "^7.26.3",
55
+ "@clickhouse/client": "^1.11.2",
56
+ "@clickhouse/client-common": "^1.11.2",
57
+ "@clickhouse/client-web": "^1.11.2",
38
58
  "@semantic-release/changelog": "^6.0.3",
39
59
  "@semantic-release/commit-analyzer": "^11.1.0",
40
60
  "@semantic-release/git": "^10.0.1",
@@ -44,9 +64,12 @@
44
64
  "@types/jest": "^29.5.11",
45
65
  "@types/node": "^18.19.80",
46
66
  "jest": "^29.7.0",
67
+ "jest-esbuild": "^0.3.0",
47
68
  "semantic-release": "^23.0.2",
48
69
  "ts-jest": "^29.1.1",
49
70
  "ts-node": "^10.9.0",
71
+ "typedoc": "^0.28.1",
72
+ "typedoc-plugin-markdown": "^4.6.0",
50
73
  "typescript": "^5.7.3"
51
74
  },
52
75
  "ts-node": {
@@ -55,11 +78,11 @@
55
78
  },
56
79
  "repository": {
57
80
  "type": "git",
58
- "url": "https://github.com/lureilly1/hypequery.git"
81
+ "url": "https://github.com/hypequery/hypequery.git"
59
82
  },
60
- "homepage": "https://hypequery.dev",
83
+ "homepage": "https://hypequery.com",
61
84
  "bugs": {
62
- "url": "https://github.com/lureilly1/hypequery/issues"
85
+ "url": "https://github.com/hypequery/hypequery/issues"
63
86
  },
64
87
  "publishConfig": {
65
88
  "access": "public"