@hypequery/clickhouse 1.6.0 → 1.6.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 (128) hide show
  1. package/README.md +19 -14
  2. package/dist/cli/generate-types.js +3 -88
  3. package/dist/cli/type-parsing.js +124 -0
  4. package/dist/core/adapters/clickhouse-adapter.d.ts +14 -0
  5. package/dist/core/adapters/clickhouse-adapter.d.ts.map +1 -0
  6. package/dist/core/adapters/clickhouse-adapter.js +58 -0
  7. package/dist/core/adapters/database-adapter.d.ts +13 -0
  8. package/dist/core/adapters/database-adapter.d.ts.map +1 -0
  9. package/dist/core/adapters/database-adapter.js +1 -0
  10. package/dist/core/cache/cache-manager.d.ts.map +1 -1
  11. package/dist/core/cache/cache-manager.js +6 -5
  12. package/dist/core/dialects/clickhouse-dialect.d.ts +10 -0
  13. package/dist/core/dialects/clickhouse-dialect.d.ts.map +1 -0
  14. package/dist/core/dialects/clickhouse-dialect.js +47 -0
  15. package/dist/core/dialects/sql-dialect.d.ts +11 -0
  16. package/dist/core/dialects/sql-dialect.d.ts.map +1 -0
  17. package/dist/core/dialects/sql-dialect.js +1 -0
  18. package/dist/core/features/aggregations.d.ts +5 -5
  19. package/dist/core/features/analytics.d.ts +804 -5
  20. package/dist/core/features/analytics.d.ts.map +1 -1
  21. package/dist/core/features/analytics.js +6 -9
  22. package/dist/core/features/executor.d.ts.map +1 -1
  23. package/dist/core/features/executor.js +26 -53
  24. package/dist/core/features/filtering.d.ts +5 -5
  25. package/dist/core/features/joins.d.ts +1 -1
  26. package/dist/core/features/query-modifiers.d.ts +6 -6
  27. package/dist/core/query-builder.d.ts +17 -6
  28. package/dist/core/query-builder.d.ts.map +1 -1
  29. package/dist/core/query-builder.js +25 -32
  30. package/dist/core/tests/integration/setup.d.ts +3 -1
  31. package/dist/core/tests/integration/setup.d.ts.map +1 -1
  32. package/dist/core/tests/test-utils.d.ts.map +1 -1
  33. package/dist/core/tests/test-utils.js +12 -2
  34. package/dist/core/types/select-types.d.ts +1 -1
  35. package/dist/core/types/select-types.d.ts.map +1 -1
  36. package/dist/core/utils/streaming-helpers.d.ts.map +1 -1
  37. package/dist/core/utils/streaming-helpers.js +8 -0
  38. package/dist/core/utils.d.ts.map +1 -1
  39. package/dist/core/utils.js +3 -0
  40. package/dist/dataset/definition.d.ts +135 -0
  41. package/dist/dataset/definition.d.ts.map +1 -0
  42. package/dist/dataset/definition.js +265 -0
  43. package/dist/dataset/helpers.d.ts +136 -0
  44. package/dist/dataset/helpers.d.ts.map +1 -0
  45. package/dist/dataset/helpers.js +189 -0
  46. package/dist/dataset/index.d.ts +51 -0
  47. package/dist/dataset/index.d.ts.map +1 -0
  48. package/dist/dataset/index.js +59 -0
  49. package/dist/dataset/introspection.d.ts +133 -0
  50. package/dist/dataset/introspection.d.ts.map +1 -0
  51. package/dist/dataset/introspection.js +239 -0
  52. package/dist/dataset/sql-tag.d.ts +51 -0
  53. package/dist/dataset/sql-tag.d.ts.map +1 -0
  54. package/dist/dataset/sql-tag.js +86 -0
  55. package/dist/dataset/types.d.ts +300 -0
  56. package/dist/dataset/types.d.ts.map +1 -0
  57. package/dist/dataset/types.js +11 -0
  58. package/dist/index.d.ts +23 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +26 -15
  61. package/dist/migrations/config/index.d.ts +3 -0
  62. package/dist/migrations/config/index.d.ts.map +1 -0
  63. package/dist/migrations/config/index.js +1 -0
  64. package/dist/migrations/config/types.d.ts +45 -0
  65. package/dist/migrations/config/types.d.ts.map +1 -0
  66. package/dist/migrations/config/types.js +28 -0
  67. package/dist/migrations/diff/diff.d.ts +11 -0
  68. package/dist/migrations/diff/diff.d.ts.map +1 -0
  69. package/dist/migrations/diff/diff.js +240 -0
  70. package/dist/migrations/diff/index.d.ts +3 -0
  71. package/dist/migrations/diff/index.d.ts.map +1 -0
  72. package/dist/migrations/diff/index.js +1 -0
  73. package/dist/migrations/diff/types.d.ts +74 -0
  74. package/dist/migrations/diff/types.d.ts.map +1 -0
  75. package/dist/migrations/diff/types.js +1 -0
  76. package/dist/migrations/plan/index.d.ts +3 -0
  77. package/dist/migrations/plan/index.d.ts.map +1 -0
  78. package/dist/migrations/plan/index.js +1 -0
  79. package/dist/migrations/plan/plan.d.ts +12 -0
  80. package/dist/migrations/plan/plan.d.ts.map +1 -0
  81. package/dist/migrations/plan/plan.js +416 -0
  82. package/dist/migrations/plan/types.d.ts +93 -0
  83. package/dist/migrations/plan/types.d.ts.map +1 -0
  84. package/dist/migrations/plan/types.js +1 -0
  85. package/dist/migrations/schema/column.d.ts +71 -0
  86. package/dist/migrations/schema/column.d.ts.map +1 -0
  87. package/dist/migrations/schema/column.js +123 -0
  88. package/dist/migrations/schema/define.d.ts +24 -0
  89. package/dist/migrations/schema/define.d.ts.map +1 -0
  90. package/dist/migrations/schema/define.js +47 -0
  91. package/dist/migrations/schema/index.d.ts +4 -0
  92. package/dist/migrations/schema/index.d.ts.map +1 -0
  93. package/dist/migrations/schema/index.js +2 -0
  94. package/dist/migrations/schema/types.d.ts +74 -0
  95. package/dist/migrations/schema/types.d.ts.map +1 -0
  96. package/dist/migrations/schema/types.js +1 -0
  97. package/dist/migrations/snapshot/index.d.ts +3 -0
  98. package/dist/migrations/snapshot/index.d.ts.map +1 -0
  99. package/dist/migrations/snapshot/index.js +1 -0
  100. package/dist/migrations/snapshot/serialize.d.ts +21 -0
  101. package/dist/migrations/snapshot/serialize.d.ts.map +1 -0
  102. package/dist/migrations/snapshot/serialize.js +127 -0
  103. package/dist/migrations/snapshot/types.d.ts +47 -0
  104. package/dist/migrations/snapshot/types.d.ts.map +1 -0
  105. package/dist/migrations/snapshot/types.js +1 -0
  106. package/dist/migrations/sql/index.d.ts +4 -0
  107. package/dist/migrations/sql/index.d.ts.map +1 -0
  108. package/dist/migrations/sql/index.js +2 -0
  109. package/dist/migrations/sql/render.d.ts +10 -0
  110. package/dist/migrations/sql/render.d.ts.map +1 -0
  111. package/dist/migrations/sql/render.js +347 -0
  112. package/dist/migrations/sql/types.d.ts +53 -0
  113. package/dist/migrations/sql/types.d.ts.map +1 -0
  114. package/dist/migrations/sql/types.js +1 -0
  115. package/dist/migrations/sql/write.d.ts +10 -0
  116. package/dist/migrations/sql/write.d.ts.map +1 -0
  117. package/dist/migrations/sql/write.js +35 -0
  118. package/dist/types/base.d.ts +2 -1
  119. package/dist/types/base.d.ts.map +1 -1
  120. package/dist/types/clickhouse-types.d.ts +7 -2
  121. package/dist/types/clickhouse-types.d.ts.map +1 -1
  122. package/dist/types/index.d.ts +1 -0
  123. package/dist/types/index.d.ts.map +1 -1
  124. package/dist/types/index.js +1 -0
  125. package/dist/types/type-helpers.d.ts +7 -0
  126. package/dist/types/type-helpers.d.ts.map +1 -0
  127. package/dist/types/type-helpers.js +1 -0
  128. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"select-types.d.ts","sourceRoot":"","sources":["../../../src/core/types/select-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAElE,KAAK,gBAAgB,CAAC,KAAK,SAAS,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAEhF,KAAK,mBAAmB,CAAC,KAAK,SAAS,eAAe,EAAE,KAAK,SAAS,MAAM,IAC1E,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GACjE,GAAG,KAAK,IAAI,OAAO,CAAC,MAAM,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,GACrE,KAAK,CAAC;AAEV,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,eAAe,IAAI;KAC9D,KAAK,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;CACtE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAE3B,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,eAAe,IAAI,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;AACjF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,eAAe,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,eAAe,IAAI,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;AAErF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,eAAe,IACtD,gBAAgB,CAAC,KAAK,CAAC,GACvB,gBAAgB,CAAC,KAAK,CAAC,GACvB,cAAc,CAAC,KAAK,CAAC,GACrB,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAE/B,KAAK,sBAAsB,CAAC,KAAK,SAAS,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;AACtG,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,KAAK,mBAAmB,CAAC,KAAK,SAAS,eAAe,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;AAEpH,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,eAAe,IACpD,gBAAgB,CAAC,KAAK,CAAC,GACvB,mBAAmB,CAAC,KAAK,CAAC,GAC1B,aAAa,CAAC;AAElB,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7E,KAAK,oBAAoB,CAAC,KAAK,SAAS,eAAe,EAAE,CAAC,IACxD,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,MAAM,EAAE,GACxC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GACnE,MAAM,SAAS,MAAM,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,GACrD,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,UAAU,GAC3D,eAAe,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GACzD,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,eAAe,EAAE,CAAC,IAC/D,CAAC,SAAS,gBAAgB,CAAC,KAAK,CAAC,GAC/B,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAClB,CAAC,SAAS,gBAAgB,CAAC,KAAK,CAAC,GACjC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GACnB,CAAC,SAAS,cAAc,CAAC,KAAK,CAAC,GAC/B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACjB,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAEnC,MAAM,MAAM,qBAAqB,CAC/B,KAAK,SAAS,eAAe,EAC7B,CAAC,IACC;KACC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC;CACpG,CAAC;AAEJ,KAAK,mBAAmB,CACtB,KAAK,SAAS,eAAe,EAC7B,KAAK,SAAS,MAAM,IAClB,KAAK,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,OAAO,IAAI,MAAM,KAAK,EAAE,GAC/D,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,GAC7B,MAAM,SAAS,sBAAsB,CAAC,KAAK,CAAC,GAC1C;KAAG,CAAC,IAAI,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC;CAAE,GACrD,EAAE,GACJ,EAAE,GACJ,EAAE,CAAC;AAEP,KAAK,4BAA4B,CAC/B,KAAK,SAAS,eAAe,EAC7B,CAAC,IACC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACpC,EAAE,GACF,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI,mBAAmB,CAC5D,CAAC,SAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,CAAC;CAAE,GAAG,EAAE,CACrE,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,KAAK,SAAS,eAAe,EAC7B,CAAC,IACC,QAAQ,CACV,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,GAC7B,yBAAyB,CAAC,CAAC,CAAC,GAC5B,4BAA4B,CAAC,KAAK,EAAE,CAAC,CAAC,CACzC,CAAC"}
1
+ {"version":3,"file":"select-types.d.ts","sourceRoot":"","sources":["../../../src/core/types/select-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"streaming-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/streaming-helpers.ts"],"names":[],"mappings":"AAoIA,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAwCnH"}
1
+ {"version":3,"file":"streaming-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/streaming-helpers.ts"],"names":[],"mappings":"AA8IA,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAwCnH"}
@@ -47,6 +47,14 @@ async function normalizeChunk(chunk, flush, append) {
47
47
  append(chunk);
48
48
  return flush();
49
49
  }
50
+ if (chunk instanceof Uint8Array) {
51
+ append(Buffer.from(chunk));
52
+ return flush();
53
+ }
54
+ if (chunk instanceof ArrayBuffer) {
55
+ append(Buffer.from(chunk));
56
+ return flush();
57
+ }
50
58
  if (typeof chunk === 'string') {
51
59
  append(chunk);
52
60
  return flush();
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAa9C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAavE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAa9C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAgBvE"}
@@ -16,6 +16,9 @@ export function escapeValue(value) {
16
16
  }
17
17
  }
18
18
  export function substituteParameters(sql, params) {
19
+ if (!params.length) {
20
+ return sql;
21
+ }
19
22
  const parts = sql.split('?');
20
23
  if (parts.length - 1 !== params.length) {
21
24
  throw new Error(`Mismatch between placeholders and parameters. Found ${parts.length - 1} placeholders but ${params.length} parameters.`);
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Dataset Definition Utilities
3
+ *
4
+ * Provides utilities for creating and managing dataset definitions:
5
+ * - Dataset validation
6
+ * - Dimension/metric normalization
7
+ * - Type inference helpers
8
+ */
9
+ import type { DatasetDefinition, DatasetsMap, DimensionsMap, Dimension, DimensionDefinition, DimensionType } from './types.js';
10
+ import { type SQLExpression } from './sql-tag.js';
11
+ /**
12
+ * Validate a complete dataset definition
13
+ *
14
+ * @param name - Dataset name
15
+ * @param definition - Dataset definition
16
+ * @throws Error if validation fails
17
+ */
18
+ export declare function validateDatasetDefinition(name: string, definition: DatasetDefinition): void;
19
+ /**
20
+ * Validate all datasets in a datasets map
21
+ *
22
+ * @param datasets - Map of dataset definitions
23
+ * @throws Error if any dataset is invalid
24
+ */
25
+ export declare function validateDatasets(datasets: DatasetsMap): void;
26
+ /**
27
+ * Normalize a dimension definition to full DimensionDefinition object
28
+ *
29
+ * @param dimension - Dimension definition (simple or complex)
30
+ * @returns Normalized DimensionDefinition
31
+ */
32
+ export declare function normalizeDimension(dimension: Dimension): DimensionDefinition;
33
+ /**
34
+ * Normalize all dimensions in a dimensions map
35
+ *
36
+ * @param dimensions - Map of dimension definitions
37
+ * @returns Map of normalized dimension definitions
38
+ */
39
+ export declare function normalizeDimensions(dimensions: DimensionsMap): Record<string, DimensionDefinition>;
40
+ /**
41
+ * Infer the TypeScript type from a dimension definition
42
+ *
43
+ * @param dimension - Dimension definition
44
+ * @returns Inferred type name
45
+ */
46
+ export declare function inferDimensionType(dimension: Dimension): DimensionType;
47
+ /**
48
+ * Get the SQL string from a dimension definition
49
+ *
50
+ * @param dimension - Dimension definition
51
+ * @returns SQL string
52
+ */
53
+ export declare function getDimensionSQL(dimension: Dimension): string;
54
+ /**
55
+ * Get the SQL string from a metric definition
56
+ *
57
+ * @param metric - Metric definition
58
+ * @returns SQL string
59
+ */
60
+ export declare function getMetricSQL(metric: {
61
+ sql: string | SQLExpression;
62
+ }): string;
63
+ /**
64
+ * Get a dataset definition by name
65
+ *
66
+ * @param datasets - Map of dataset definitions
67
+ * @param name - Dataset name
68
+ * @returns Dataset definition
69
+ * @throws Error if dataset not found
70
+ */
71
+ export declare function getDataset(datasets: DatasetsMap, name: string): DatasetDefinition;
72
+ /**
73
+ * List all dataset names
74
+ *
75
+ * @param datasets - Map of dataset definitions
76
+ * @returns Array of dataset names
77
+ */
78
+ export declare function listDatasets(datasets: DatasetsMap): string[];
79
+ /**
80
+ * Check if a dataset exists
81
+ *
82
+ * @param datasets - Map of dataset definitions
83
+ * @param name - Dataset name
84
+ * @returns True if dataset exists
85
+ */
86
+ export declare function hasDataset(datasets: DatasetsMap, name: string): boolean;
87
+ /**
88
+ * Get dimension names for a dataset
89
+ *
90
+ * @param dataset - Dataset definition
91
+ * @returns Array of dimension names
92
+ */
93
+ export declare function getDimensionNames(dataset: DatasetDefinition): string[];
94
+ /**
95
+ * Get metric names for a dataset
96
+ *
97
+ * @param dataset - Dataset definition
98
+ * @returns Array of metric names
99
+ */
100
+ export declare function getMetricNames(dataset: DatasetDefinition): string[];
101
+ /**
102
+ * Check if a dimension exists in a dataset
103
+ *
104
+ * @param dataset - Dataset definition
105
+ * @param dimensionName - Dimension name
106
+ * @returns True if dimension exists
107
+ */
108
+ export declare function hasDimension(dataset: DatasetDefinition, dimensionName: string): boolean;
109
+ /**
110
+ * Check if a metric exists in a dataset
111
+ *
112
+ * @param dataset - Dataset definition
113
+ * @param metricName - Metric name
114
+ * @returns True if metric exists
115
+ */
116
+ export declare function hasMetric(dataset: DatasetDefinition, metricName: string): boolean;
117
+ /**
118
+ * Get a dimension definition from a dataset
119
+ *
120
+ * @param dataset - Dataset definition
121
+ * @param dimensionName - Dimension name
122
+ * @returns Normalized dimension definition
123
+ * @throws Error if dimension not found
124
+ */
125
+ export declare function getDimension(dataset: DatasetDefinition, dimensionName: string): DimensionDefinition;
126
+ /**
127
+ * Get a metric definition from a dataset
128
+ *
129
+ * @param dataset - Dataset definition
130
+ * @param metricName - Metric name
131
+ * @returns Metric definition
132
+ * @throws Error if metric not found
133
+ */
134
+ export declare function getMetric(dataset: DatasetDefinition, metricName: string): import("./types.js").MetricDefinition;
135
+ //# sourceMappingURL=definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/dataset/definition.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAUhF;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,iBAAiB,GAC5B,IAAI,CA8EN;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAU5D;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,mBAAmB,CAqB5E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,aAAa,GACxB,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAQrC;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,CAGtE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAC7B,GAAG,MAAM,CAET;AAMD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,MAAM,GACX,iBAAiB,CAWnB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,EAAE,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAET;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,MAAM,GACpB,mBAAmB,CASrB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,yCAUnB"}
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Dataset Definition Utilities
3
+ *
4
+ * Provides utilities for creating and managing dataset definitions:
5
+ * - Dataset validation
6
+ * - Dimension/metric normalization
7
+ * - Type inference helpers
8
+ */
9
+ import { isSQLExpression, toSQLString } from './sql-tag.js';
10
+ import { validateDimensionDefinition, validateMetricDefinition, } from './helpers.js';
11
+ // =============================================================================
12
+ // DATASET VALIDATION
13
+ // =============================================================================
14
+ /**
15
+ * Validate a complete dataset definition
16
+ *
17
+ * @param name - Dataset name
18
+ * @param definition - Dataset definition
19
+ * @throws Error if validation fails
20
+ */
21
+ export function validateDatasetDefinition(name, definition) {
22
+ // Validate required fields
23
+ if (!definition.name) {
24
+ throw new Error(`Dataset '${name}' is missing 'name' property.`);
25
+ }
26
+ if (!definition.description) {
27
+ console.warn(`⚠️ Dataset '${name}' is missing 'description'. ` +
28
+ `Descriptions help AI agents understand your data.`);
29
+ }
30
+ if (!definition.table) {
31
+ throw new Error(`Dataset '${name}' is missing 'table' property.`);
32
+ }
33
+ // Validate dimensions
34
+ if (!definition.dimensions || Object.keys(definition.dimensions).length === 0) {
35
+ throw new Error(`Dataset '${name}' must have at least one dimension. ` +
36
+ `Dimensions define the grouping keys for your data.`);
37
+ }
38
+ for (const [dimName, dimDef] of Object.entries(definition.dimensions)) {
39
+ validateDimensionDefinition(dimName, dimDef);
40
+ }
41
+ // Validate metrics
42
+ if (!definition.metrics || Object.keys(definition.metrics).length === 0) {
43
+ throw new Error(`Dataset '${name}' must have at least one metric. ` +
44
+ `Metrics define the aggregations for your data.`);
45
+ }
46
+ for (const [metricName, metricDef] of Object.entries(definition.metrics)) {
47
+ validateMetricDefinition(metricName, metricDef);
48
+ }
49
+ // Validate tenant config
50
+ if (definition.tenant) {
51
+ if (!definition.tenant.column) {
52
+ throw new Error(`Dataset '${name}' tenant config is missing 'column' property.`);
53
+ }
54
+ }
55
+ // Validate limits
56
+ if (definition.limits) {
57
+ const limits = definition.limits;
58
+ if (limits.maxDimensions !== undefined && limits.maxDimensions < 1) {
59
+ throw new Error(`Dataset '${name}' limits.maxDimensions must be at least 1.`);
60
+ }
61
+ if (limits.maxMetrics !== undefined && limits.maxMetrics < 1) {
62
+ throw new Error(`Dataset '${name}' limits.maxMetrics must be at least 1.`);
63
+ }
64
+ if (limits.maxFilters !== undefined && limits.maxFilters < 0) {
65
+ throw new Error(`Dataset '${name}' limits.maxFilters must be non-negative.`);
66
+ }
67
+ if (limits.maxResultSize !== undefined && limits.maxResultSize < 1) {
68
+ throw new Error(`Dataset '${name}' limits.maxResultSize must be at least 1.`);
69
+ }
70
+ }
71
+ }
72
+ /**
73
+ * Validate all datasets in a datasets map
74
+ *
75
+ * @param datasets - Map of dataset definitions
76
+ * @throws Error if any dataset is invalid
77
+ */
78
+ export function validateDatasets(datasets) {
79
+ if (!datasets || Object.keys(datasets).length === 0) {
80
+ throw new Error('No datasets defined. Please define at least one dataset.');
81
+ }
82
+ for (const [name, definition] of Object.entries(datasets)) {
83
+ validateDatasetDefinition(name, definition);
84
+ }
85
+ }
86
+ // =============================================================================
87
+ // DIMENSION NORMALIZATION
88
+ // =============================================================================
89
+ /**
90
+ * Normalize a dimension definition to full DimensionDefinition object
91
+ *
92
+ * @param dimension - Dimension definition (simple or complex)
93
+ * @returns Normalized DimensionDefinition
94
+ */
95
+ export function normalizeDimension(dimension) {
96
+ // Simple string column reference
97
+ if (typeof dimension === 'string') {
98
+ return {
99
+ sql: dimension,
100
+ type: 'string', // Default type for simple columns
101
+ description: '', // Empty description (should be filled by user)
102
+ };
103
+ }
104
+ // SQLExpression
105
+ if (isSQLExpression(dimension)) {
106
+ return {
107
+ sql: dimension,
108
+ type: 'string', // Default type for SQL expressions
109
+ description: '', // Empty description (should be filled by user)
110
+ };
111
+ }
112
+ // Already a full DimensionDefinition
113
+ return dimension;
114
+ }
115
+ /**
116
+ * Normalize all dimensions in a dimensions map
117
+ *
118
+ * @param dimensions - Map of dimension definitions
119
+ * @returns Map of normalized dimension definitions
120
+ */
121
+ export function normalizeDimensions(dimensions) {
122
+ const normalized = {};
123
+ for (const [name, dimension] of Object.entries(dimensions)) {
124
+ normalized[name] = normalizeDimension(dimension);
125
+ }
126
+ return normalized;
127
+ }
128
+ // =============================================================================
129
+ // TYPE INFERENCE HELPERS
130
+ // =============================================================================
131
+ /**
132
+ * Infer the TypeScript type from a dimension definition
133
+ *
134
+ * @param dimension - Dimension definition
135
+ * @returns Inferred type name
136
+ */
137
+ export function inferDimensionType(dimension) {
138
+ const normalized = normalizeDimension(dimension);
139
+ return normalized.type;
140
+ }
141
+ /**
142
+ * Get the SQL string from a dimension definition
143
+ *
144
+ * @param dimension - Dimension definition
145
+ * @returns SQL string
146
+ */
147
+ export function getDimensionSQL(dimension) {
148
+ const normalized = normalizeDimension(dimension);
149
+ return toSQLString(normalized.sql);
150
+ }
151
+ /**
152
+ * Get the SQL string from a metric definition
153
+ *
154
+ * @param metric - Metric definition
155
+ * @returns SQL string
156
+ */
157
+ export function getMetricSQL(metric) {
158
+ return toSQLString(metric.sql);
159
+ }
160
+ // =============================================================================
161
+ // DATASET UTILITIES
162
+ // =============================================================================
163
+ /**
164
+ * Get a dataset definition by name
165
+ *
166
+ * @param datasets - Map of dataset definitions
167
+ * @param name - Dataset name
168
+ * @returns Dataset definition
169
+ * @throws Error if dataset not found
170
+ */
171
+ export function getDataset(datasets, name) {
172
+ const dataset = datasets[name];
173
+ if (!dataset) {
174
+ throw new Error(`Dataset '${name}' not found. ` +
175
+ `Available datasets: ${Object.keys(datasets).join(', ')}`);
176
+ }
177
+ return dataset;
178
+ }
179
+ /**
180
+ * List all dataset names
181
+ *
182
+ * @param datasets - Map of dataset definitions
183
+ * @returns Array of dataset names
184
+ */
185
+ export function listDatasets(datasets) {
186
+ return Object.keys(datasets);
187
+ }
188
+ /**
189
+ * Check if a dataset exists
190
+ *
191
+ * @param datasets - Map of dataset definitions
192
+ * @param name - Dataset name
193
+ * @returns True if dataset exists
194
+ */
195
+ export function hasDataset(datasets, name) {
196
+ return name in datasets;
197
+ }
198
+ /**
199
+ * Get dimension names for a dataset
200
+ *
201
+ * @param dataset - Dataset definition
202
+ * @returns Array of dimension names
203
+ */
204
+ export function getDimensionNames(dataset) {
205
+ return Object.keys(dataset.dimensions);
206
+ }
207
+ /**
208
+ * Get metric names for a dataset
209
+ *
210
+ * @param dataset - Dataset definition
211
+ * @returns Array of metric names
212
+ */
213
+ export function getMetricNames(dataset) {
214
+ return Object.keys(dataset.metrics);
215
+ }
216
+ /**
217
+ * Check if a dimension exists in a dataset
218
+ *
219
+ * @param dataset - Dataset definition
220
+ * @param dimensionName - Dimension name
221
+ * @returns True if dimension exists
222
+ */
223
+ export function hasDimension(dataset, dimensionName) {
224
+ return dimensionName in dataset.dimensions;
225
+ }
226
+ /**
227
+ * Check if a metric exists in a dataset
228
+ *
229
+ * @param dataset - Dataset definition
230
+ * @param metricName - Metric name
231
+ * @returns True if metric exists
232
+ */
233
+ export function hasMetric(dataset, metricName) {
234
+ return metricName in dataset.metrics;
235
+ }
236
+ /**
237
+ * Get a dimension definition from a dataset
238
+ *
239
+ * @param dataset - Dataset definition
240
+ * @param dimensionName - Dimension name
241
+ * @returns Normalized dimension definition
242
+ * @throws Error if dimension not found
243
+ */
244
+ export function getDimension(dataset, dimensionName) {
245
+ if (!hasDimension(dataset, dimensionName)) {
246
+ throw new Error(`Dimension '${dimensionName}' not found in dataset '${dataset.name}'. ` +
247
+ `Available dimensions: ${getDimensionNames(dataset).join(', ')}`);
248
+ }
249
+ return normalizeDimension(dataset.dimensions[dimensionName]);
250
+ }
251
+ /**
252
+ * Get a metric definition from a dataset
253
+ *
254
+ * @param dataset - Dataset definition
255
+ * @param metricName - Metric name
256
+ * @returns Metric definition
257
+ * @throws Error if metric not found
258
+ */
259
+ export function getMetric(dataset, metricName) {
260
+ if (!hasMetric(dataset, metricName)) {
261
+ throw new Error(`Metric '${metricName}' not found in dataset '${dataset.name}'. ` +
262
+ `Available metrics: ${getMetricNames(dataset).join(', ')}`);
263
+ }
264
+ return dataset.metrics[metricName];
265
+ }
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Dataset Helper Functions
3
+ *
4
+ * Provides declarative helper functions for defining dimensions and metrics:
5
+ * - dimension.string(), dimension.number(), dimension.date(), dimension.boolean()
6
+ * - metric.count(), metric.sum(), metric.avg(), metric.min(), metric.max(), metric.countDistinct(), metric.custom()
7
+ */
8
+ import type { DimensionDefinition, MetricDefinition, MetricFormat } from './types.js';
9
+ import { type SQLExpression } from './sql-tag.js';
10
+ /**
11
+ * Options for dimension helpers
12
+ */
13
+ export interface DimensionOptions {
14
+ /** Human-readable description (for AI agents) */
15
+ description: string;
16
+ /** Example values (for AI context) */
17
+ examples?: string[];
18
+ /** Join name (if dimension requires a join) */
19
+ join?: string;
20
+ }
21
+ /**
22
+ * Dimension helper namespace
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * dimensions: {
27
+ * region: dimension.string('region', {
28
+ * description: 'Geographic region',
29
+ * examples: ['US', 'EU', 'APAC']
30
+ * }),
31
+ * orderDate: dimension.date(sql`DATE(created_at)`, {
32
+ * description: 'Order date'
33
+ * }),
34
+ * amount: dimension.number('amount', {
35
+ * description: 'Order amount'
36
+ * })
37
+ * }
38
+ * ```
39
+ */
40
+ export declare const dimension: {
41
+ /**
42
+ * Create a string dimension
43
+ */
44
+ string: (columnOrExpression: string | SQLExpression, options: DimensionOptions) => DimensionDefinition;
45
+ /**
46
+ * Create a number dimension
47
+ */
48
+ number: (columnOrExpression: string | SQLExpression, options: DimensionOptions) => DimensionDefinition;
49
+ /**
50
+ * Create a date dimension
51
+ */
52
+ date: (columnOrExpression: string | SQLExpression, options: DimensionOptions) => DimensionDefinition;
53
+ /**
54
+ * Create a boolean dimension
55
+ */
56
+ boolean: (columnOrExpression: string | SQLExpression, options: DimensionOptions) => DimensionDefinition;
57
+ };
58
+ /**
59
+ * Options for metric helpers
60
+ */
61
+ export interface MetricOptions {
62
+ /** Human-readable description (for AI agents) */
63
+ description: string;
64
+ /** Format hint for display */
65
+ format?: MetricFormat;
66
+ /** Join name (if metric requires a join) */
67
+ join?: string;
68
+ /** Allow fan-out (for oneToMany joins) - advanced use only */
69
+ allowFanout?: boolean;
70
+ }
71
+ /**
72
+ * Metric helper namespace
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * metrics: {
77
+ * revenue: metric.sum('amount', {
78
+ * description: 'Total revenue',
79
+ * format: 'currency'
80
+ * }),
81
+ * orderCount: metric.count({
82
+ * description: 'Total number of orders'
83
+ * }),
84
+ * avgOrderValue: metric.avg('total_amount', {
85
+ * description: 'Average order value',
86
+ * format: 'currency'
87
+ * }),
88
+ * revenuePerCustomer: metric.custom(
89
+ * sql`sum(total_amount) / count(DISTINCT customer_id)`,
90
+ * {
91
+ * description: 'Average revenue per customer',
92
+ * format: 'currency'
93
+ * }
94
+ * )
95
+ * }
96
+ * ```
97
+ */
98
+ export declare const metric: {
99
+ /**
100
+ * Create a COUNT(*) metric
101
+ */
102
+ count: (options: MetricOptions) => MetricDefinition;
103
+ /**
104
+ * Create a SUM() metric
105
+ */
106
+ sum: (columnOrExpression: string | SQLExpression, options: MetricOptions) => MetricDefinition;
107
+ /**
108
+ * Create an AVG() metric
109
+ */
110
+ avg: (columnOrExpression: string | SQLExpression, options: MetricOptions) => MetricDefinition;
111
+ /**
112
+ * Create a MIN() metric
113
+ */
114
+ min: (columnOrExpression: string | SQLExpression, options: MetricOptions) => MetricDefinition;
115
+ /**
116
+ * Create a MAX() metric
117
+ */
118
+ max: (columnOrExpression: string | SQLExpression, options: MetricOptions) => MetricDefinition;
119
+ /**
120
+ * Create a COUNT(DISTINCT) metric
121
+ */
122
+ countDistinct: (columnOrExpression: string | SQLExpression, options: MetricOptions) => MetricDefinition;
123
+ /**
124
+ * Create a custom metric with a SQL expression
125
+ */
126
+ custom: (columnOrExpression: string | SQLExpression, options: MetricOptions) => MetricDefinition;
127
+ };
128
+ /**
129
+ * Validate that a dimension definition has required metadata
130
+ */
131
+ export declare function validateDimensionDefinition(name: string, definition: unknown): void;
132
+ /**
133
+ * Validate that a metric definition has required metadata
134
+ */
135
+ export declare function validateMetricDefinition(name: string, definition: unknown): void;
136
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/dataset/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAEnB,gBAAgB,EAEhB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAO,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAMvD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;iCAnCmB,MAAM,GAAG,aAAa,WACjC,gBAAgB,KACxB,mBAAmB;IAoCtB;;OAEG;iCAxCmB,MAAM,GAAG,aAAa,WACjC,gBAAgB,KACxB,mBAAmB;IAyCtB;;OAEG;+BA7CmB,MAAM,GAAG,aAAa,WACjC,gBAAgB,KACxB,mBAAmB;IA8CtB;;OAEG;kCAlDmB,MAAM,GAAG,aAAa,WACjC,gBAAgB,KACxB,mBAAmB;CAkDvB,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,MAAM;IACjB;;OAEG;qBACc,aAAa,KAAG,gBAAgB;IAWjD;;OAEG;8BA1DmB,MAAM,GAAG,aAAa,WACjC,aAAa,KACrB,gBAAgB;IA2DnB;;OAEG;8BA/DmB,MAAM,GAAG,aAAa,WACjC,aAAa,KACrB,gBAAgB;IAgEnB;;OAEG;8BApEmB,MAAM,GAAG,aAAa,WACjC,aAAa,KACrB,gBAAgB;IAqEnB;;OAEG;8BAzEmB,MAAM,GAAG,aAAa,WACjC,aAAa,KACrB,gBAAgB;IA0EnB;;OAEG;wCA9EmB,MAAM,GAAG,aAAa,WACjC,aAAa,KACrB,gBAAgB;IA+EnB;;OAEG;iCAnFmB,MAAM,GAAG,aAAa,WACjC,aAAa,KACrB,gBAAgB;CAmFpB,CAAC;AAMF;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,GAClB,IAAI,CA8BN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,GAClB,IAAI,CA8BN"}