@hypequery/datasets 0.23.1 → 0.25.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 (255) hide show
  1. package/README.md +14 -0
  2. package/dist/aggregations.d.ts +3 -0
  3. package/dist/aggregations.d.ts.map +1 -1
  4. package/dist/aggregations.js +6 -0
  5. package/dist/cache/definition-identity.d.ts +9 -6
  6. package/dist/cache/definition-identity.d.ts.map +1 -1
  7. package/dist/cache/definition-identity.js +14 -8
  8. package/dist/cache/protocol-cache-keys.d.ts.map +1 -1
  9. package/dist/cache/protocol-cache-keys.js +29 -6
  10. package/dist/cache/query-signature.d.ts.map +1 -1
  11. package/dist/cache/query-signature.js +12 -1
  12. package/dist/catalog.d.ts +7 -0
  13. package/dist/catalog.d.ts.map +1 -1
  14. package/dist/catalog.js +5 -2
  15. package/dist/client-contract/query-schema.d.ts +19 -0
  16. package/dist/client-contract/query-schema.d.ts.map +1 -0
  17. package/dist/client-contract/query-schema.js +85 -0
  18. package/dist/constants.d.ts +5 -4
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.js +7 -6
  21. package/dist/contract.d.ts +5 -0
  22. package/dist/contract.d.ts.map +1 -1
  23. package/dist/contract.js +6 -3
  24. package/dist/dataset-compilation.d.ts +2 -0
  25. package/dist/dataset-compilation.d.ts.map +1 -1
  26. package/dist/dataset-sql-dialect.d.ts +119 -0
  27. package/dist/dataset-sql-dialect.d.ts.map +1 -1
  28. package/dist/dataset.d.ts +4 -2
  29. package/dist/dataset.d.ts.map +1 -1
  30. package/dist/dataset.js +23 -31
  31. package/dist/in-memory-backend.d.ts.map +1 -1
  32. package/dist/in-memory-backend.js +2 -0
  33. package/dist/index.d.ts +49 -6
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +34 -6
  36. package/dist/internal.d.ts +5 -1
  37. package/dist/internal.d.ts.map +1 -1
  38. package/dist/internal.js +5 -1
  39. package/dist/measure.d.ts +9 -1
  40. package/dist/measure.d.ts.map +1 -1
  41. package/dist/measure.js +9 -1
  42. package/dist/metric-query-engine.d.ts +0 -1
  43. package/dist/metric-query-engine.d.ts.map +1 -1
  44. package/dist/metric-query-engine.js +11 -3
  45. package/dist/protocol-adapter.d.ts.map +1 -1
  46. package/dist/protocol-adapter.js +2 -3
  47. package/dist/protocol-deployment-adapter.d.ts.map +1 -1
  48. package/dist/protocol-deployment-adapter.js +7 -1
  49. package/dist/protocol-rehydrate.d.ts.map +1 -1
  50. package/dist/protocol-rehydrate.js +1 -0
  51. package/dist/protocol-schema-adapter.d.ts +7 -7
  52. package/dist/protocol-schema-adapter.d.ts.map +1 -1
  53. package/dist/protocol-schema-adapter.js +12 -245
  54. package/dist/query-builder-protocol.d.ts +34 -1
  55. package/dist/query-builder-protocol.d.ts.map +1 -1
  56. package/dist/query-planner.d.ts +14 -5
  57. package/dist/query-planner.d.ts.map +1 -1
  58. package/dist/query-planner.js +53 -34
  59. package/dist/relationship-check.d.ts.map +1 -1
  60. package/dist/relationship-check.js +8 -8
  61. package/dist/schemas.d.ts +17 -0
  62. package/dist/schemas.d.ts.map +1 -0
  63. package/dist/schemas.js +16 -0
  64. package/dist/semantic-planner.d.ts.map +1 -1
  65. package/dist/semantic-planner.js +49 -13
  66. package/dist/semantic-query-schema.d.ts +8 -1
  67. package/dist/semantic-query-schema.d.ts.map +1 -1
  68. package/dist/semantic-query-schema.js +18 -12
  69. package/dist/tools.d.ts.map +1 -1
  70. package/dist/tools.js +4 -3
  71. package/dist/types.d.ts +105 -7
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/utils/aggregate-state-functions.d.ts +24 -0
  74. package/dist/utils/aggregate-state-functions.d.ts.map +1 -0
  75. package/dist/utils/aggregate-state-functions.js +60 -0
  76. package/dist/utils/approximate-measures.d.ts +3 -1
  77. package/dist/utils/approximate-measures.d.ts.map +1 -1
  78. package/dist/utils/approximate-measures.js +8 -2
  79. package/dist/utils/base-measure-definition.d.ts +16 -0
  80. package/dist/utils/base-measure-definition.d.ts.map +1 -1
  81. package/dist/utils/base-measure-definition.js +31 -0
  82. package/dist/utils/build-dataset-query-builder.d.ts +1 -1
  83. package/dist/utils/build-dataset-query-builder.d.ts.map +1 -1
  84. package/dist/utils/build-dataset-query-builder.js +26 -21
  85. package/dist/utils/by-name.d.ts +8 -0
  86. package/dist/utils/by-name.d.ts.map +1 -0
  87. package/dist/utils/by-name.js +44 -0
  88. package/dist/utils/calendar-shift-sql.d.ts +5 -4
  89. package/dist/utils/calendar-shift-sql.d.ts.map +1 -1
  90. package/dist/utils/calendar-shift-sql.js +8 -8
  91. package/dist/utils/clickhouse-dataset-sql-dialect.d.ts +2 -2
  92. package/dist/utils/clickhouse-dataset-sql-dialect.d.ts.map +1 -1
  93. package/dist/utils/clickhouse-dataset-sql-dialect.js +143 -1
  94. package/dist/utils/compile-dataset-query.d.ts +1 -1
  95. package/dist/utils/compile-dataset-query.d.ts.map +1 -1
  96. package/dist/utils/compile-dataset-query.js +22 -8
  97. package/dist/utils/composite-time-measure-sql.d.ts +3 -5
  98. package/dist/utils/composite-time-measure-sql.d.ts.map +1 -1
  99. package/dist/utils/composite-time-measure-sql.js +15 -16
  100. package/dist/utils/count-aggregations.d.ts +4 -0
  101. package/dist/utils/count-aggregations.d.ts.map +1 -0
  102. package/dist/utils/count-aggregations.js +6 -0
  103. package/dist/utils/dataset-definition-validation.d.ts +1 -1
  104. package/dist/utils/dataset-definition-validation.d.ts.map +1 -1
  105. package/dist/utils/dataset-definition-validation.js +55 -26
  106. package/dist/utils/dataset-derived-query.d.ts +2 -4
  107. package/dist/utils/dataset-derived-query.d.ts.map +1 -1
  108. package/dist/utils/dataset-derived-query.js +11 -14
  109. package/dist/utils/dataset-having.d.ts +5 -7
  110. package/dist/utils/dataset-having.d.ts.map +1 -1
  111. package/dist/utils/dataset-having.js +9 -12
  112. package/dist/utils/dataset-normalization.d.ts.map +1 -1
  113. package/dist/utils/dataset-normalization.js +1 -0
  114. package/dist/utils/dataset-query-validation.d.ts +1 -1
  115. package/dist/utils/dataset-query-validation.d.ts.map +1 -1
  116. package/dist/utils/dataset-query-validation.js +19 -2
  117. package/dist/utils/dataset-source.d.ts +42 -0
  118. package/dist/utils/dataset-source.d.ts.map +1 -0
  119. package/dist/utils/dataset-source.js +59 -0
  120. package/dist/utils/dataset-sql-dialect.d.ts +13 -2
  121. package/dist/utils/dataset-sql-dialect.d.ts.map +1 -1
  122. package/dist/utils/dataset-sql-dialect.js +74 -1
  123. package/dist/utils/dataset-time-keys.d.ts +32 -0
  124. package/dist/utils/dataset-time-keys.d.ts.map +1 -0
  125. package/dist/utils/dataset-time-keys.js +55 -0
  126. package/dist/utils/dataset-validation.d.ts.map +1 -1
  127. package/dist/utils/dataset-validation.js +7 -0
  128. package/dist/utils/deployable-formulas.d.ts +33 -0
  129. package/dist/utils/deployable-formulas.d.ts.map +1 -0
  130. package/dist/utils/deployable-formulas.js +102 -0
  131. package/dist/utils/derived-cte-validation.d.ts +5 -0
  132. package/dist/utils/derived-cte-validation.d.ts.map +1 -1
  133. package/dist/utils/derived-cte-validation.js +77 -8
  134. package/dist/utils/derived-measure-sql.d.ts +10 -2
  135. package/dist/utils/derived-measure-sql.d.ts.map +1 -1
  136. package/dist/utils/derived-measure-sql.js +23 -43
  137. package/dist/utils/enforced-constraints.d.ts +14 -0
  138. package/dist/utils/enforced-constraints.d.ts.map +1 -0
  139. package/dist/utils/enforced-constraints.js +57 -0
  140. package/dist/utils/filter-field-type.d.ts +14 -0
  141. package/dist/utils/filter-field-type.d.ts.map +1 -0
  142. package/dist/utils/filter-field-type.js +21 -0
  143. package/dist/utils/filtered-aggregation-sql.d.ts +2 -1
  144. package/dist/utils/filtered-aggregation-sql.d.ts.map +1 -1
  145. package/dist/utils/filtered-aggregation-sql.js +18 -35
  146. package/dist/utils/groupable.d.ts +7 -0
  147. package/dist/utils/groupable.d.ts.map +1 -0
  148. package/dist/utils/groupable.js +8 -0
  149. package/dist/utils/metric-derived-query.d.ts +2 -4
  150. package/dist/utils/metric-derived-query.d.ts.map +1 -1
  151. package/dist/utils/metric-derived-query.js +58 -51
  152. package/dist/utils/metric-query-builder.d.ts +1 -1
  153. package/dist/utils/metric-query-builder.d.ts.map +1 -1
  154. package/dist/utils/metric-query-builder.js +22 -20
  155. package/dist/utils/metric-query-validation.d.ts.map +1 -1
  156. package/dist/utils/metric-query-validation.js +14 -1
  157. package/dist/utils/portable-aggregations.d.ts +1 -0
  158. package/dist/utils/portable-aggregations.d.ts.map +1 -1
  159. package/dist/utils/portable-aggregations.js +5 -0
  160. package/dist/utils/protocol-schema-conversion.d.ts +12 -0
  161. package/dist/utils/protocol-schema-conversion.d.ts.map +1 -0
  162. package/dist/utils/protocol-schema-conversion.js +61 -0
  163. package/dist/utils/query-field-references.d.ts +10 -0
  164. package/dist/utils/query-field-references.d.ts.map +1 -0
  165. package/dist/utils/query-field-references.js +38 -0
  166. package/dist/utils/query-timezone.d.ts +41 -3
  167. package/dist/utils/query-timezone.d.ts.map +1 -1
  168. package/dist/utils/query-timezone.js +76 -9
  169. package/dist/utils/raw-sql-dialect-check.d.ts +12 -0
  170. package/dist/utils/raw-sql-dialect-check.d.ts.map +1 -0
  171. package/dist/utils/raw-sql-dialect-check.js +37 -0
  172. package/dist/utils/relationship-builder-plan.d.ts +37 -18
  173. package/dist/utils/relationship-builder-plan.d.ts.map +1 -1
  174. package/dist/utils/relationship-builder-plan.js +43 -28
  175. package/dist/utils/relationship-measure-sql.d.ts +14 -4
  176. package/dist/utils/relationship-measure-sql.d.ts.map +1 -1
  177. package/dist/utils/relationship-measure-sql.js +36 -10
  178. package/dist/utils/relationship-measures.d.ts.map +1 -1
  179. package/dist/utils/relationship-measures.js +3 -0
  180. package/dist/utils/relationship-validation.d.ts.map +1 -1
  181. package/dist/utils/relationship-validation.js +2 -0
  182. package/dist/utils/row-scope.d.ts +23 -0
  183. package/dist/utils/row-scope.d.ts.map +1 -0
  184. package/dist/utils/row-scope.js +26 -0
  185. package/dist/utils/scoped-dataset-source.d.ts +23 -0
  186. package/dist/utils/scoped-dataset-source.d.ts.map +1 -0
  187. package/dist/utils/scoped-dataset-source.js +34 -0
  188. package/dist/utils/semantic-tool.d.ts +2 -2
  189. package/dist/utils/semantic-tool.d.ts.map +1 -1
  190. package/dist/utils/semantic-tool.js +1 -1
  191. package/dist/utils/shift-measure-sql.d.ts +5 -4
  192. package/dist/utils/shift-measure-sql.d.ts.map +1 -1
  193. package/dist/utils/shift-measure-sql.js +25 -26
  194. package/dist/utils/shift-wall-time-sql.d.ts +2 -1
  195. package/dist/utils/shift-wall-time-sql.d.ts.map +1 -1
  196. package/dist/utils/shift-wall-time-sql.js +7 -7
  197. package/dist/utils/snapshot-execution-context.d.ts.map +1 -1
  198. package/dist/utils/snapshot-execution-context.js +3 -0
  199. package/dist/utils/statement-parameters.d.ts +58 -0
  200. package/dist/utils/statement-parameters.d.ts.map +1 -0
  201. package/dist/utils/statement-parameters.js +101 -0
  202. package/dist/utils/time-axis-calendar-guard.d.ts +2 -1
  203. package/dist/utils/time-axis-calendar-guard.d.ts.map +1 -1
  204. package/dist/utils/time-axis-calendar-guard.js +5 -7
  205. package/dist/utils/time-measure-axis-sql.d.ts +3 -2
  206. package/dist/utils/time-measure-axis-sql.d.ts.map +1 -1
  207. package/dist/utils/time-measure-axis-sql.js +20 -22
  208. package/dist/utils/time-measure-context-sql.d.ts +3 -2
  209. package/dist/utils/time-measure-context-sql.d.ts.map +1 -1
  210. package/dist/utils/time-measure-context-sql.js +11 -11
  211. package/dist/utils/time-measure-dataset-sql.d.ts +7 -5
  212. package/dist/utils/time-measure-dataset-sql.d.ts.map +1 -1
  213. package/dist/utils/time-measure-dataset-sql.js +17 -12
  214. package/dist/utils/time-measure-leaf-sql.d.ts +3 -2
  215. package/dist/utils/time-measure-leaf-sql.d.ts.map +1 -1
  216. package/dist/utils/time-measure-leaf-sql.js +19 -18
  217. package/dist/utils/time-measure-result-sql.d.ts.map +1 -1
  218. package/dist/utils/time-measure-result-sql.js +10 -11
  219. package/dist/utils/time-measure-source-sql.d.ts +5 -2
  220. package/dist/utils/time-measure-source-sql.d.ts.map +1 -1
  221. package/dist/utils/time-measure-source-sql.js +33 -23
  222. package/dist/utils/time-measure-values-sql.d.ts +4 -3
  223. package/dist/utils/time-measure-values-sql.d.ts.map +1 -1
  224. package/dist/utils/time-measure-values-sql.js +26 -29
  225. package/dist/utils/timestamp-instants.d.ts +17 -0
  226. package/dist/utils/timestamp-instants.d.ts.map +1 -0
  227. package/dist/utils/timestamp-instants.js +34 -0
  228. package/dist/utils/timestamp-text.d.ts +12 -0
  229. package/dist/utils/timestamp-text.d.ts.map +1 -0
  230. package/dist/utils/timestamp-text.js +18 -0
  231. package/dist/utils/zod-json-schema.d.ts +8 -0
  232. package/dist/utils/zod-json-schema.d.ts.map +1 -0
  233. package/dist/utils/zod-json-schema.js +18 -0
  234. package/dist/utils/zod-schema-version.d.ts +19 -0
  235. package/dist/utils/zod-schema-version.d.ts.map +1 -0
  236. package/dist/utils/zod-schema-version.js +6 -0
  237. package/dist/utils/zod-v3-protocol-schema.d.ts +10 -0
  238. package/dist/utils/zod-v3-protocol-schema.d.ts.map +1 -0
  239. package/dist/utils/zod-v3-protocol-schema.js +164 -0
  240. package/dist/utils/zod-v4-protocol-schema.d.ts +12 -0
  241. package/dist/utils/zod-v4-protocol-schema.d.ts.map +1 -0
  242. package/dist/utils/zod-v4-protocol-schema.js +171 -0
  243. package/dist/validation.d.ts +7 -0
  244. package/dist/validation.d.ts.map +1 -1
  245. package/dist/validation.js +42 -8
  246. package/package.json +21 -12
  247. package/dist/api.type-test.d.ts +0 -2
  248. package/dist/api.type-test.d.ts.map +0 -1
  249. package/dist/api.type-test.js +0 -251
  250. package/dist/utils/time-arithmetic-sql.d.ts +0 -4
  251. package/dist/utils/time-arithmetic-sql.d.ts.map +0 -1
  252. package/dist/utils/time-arithmetic-sql.js +0 -9
  253. package/dist/utils/window-aggregation-sql.d.ts +0 -5
  254. package/dist/utils/window-aggregation-sql.d.ts.map +0 -1
  255. package/dist/utils/window-aggregation-sql.js +0 -17
package/dist/contract.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { windowCatalogMetadata } from './utils/window-catalog-metadata.js';
2
- import { sha256 } from '@noble/hashes/sha2';
3
- import { bytesToHex } from '@noble/hashes/utils';
2
+ import { sha256 } from '@noble/hashes/sha2.js';
3
+ import { bytesToHex } from '@noble/hashes/utils.js';
4
4
  import { getDatasetCatalogs, } from './catalog.js';
5
5
  import { sortedRecord, uniqueSorted } from './utils/canonical-json.js';
6
6
  import { snapshotSemanticMetadata } from './utils/semantic-metadata.js';
@@ -36,6 +36,7 @@ function datasetToContract(catalog, includeSql) {
36
36
  ...(catalog.description !== undefined ? { description: catalog.description } : {}),
37
37
  ...snapshotSemanticMetadata(catalog),
38
38
  source: catalog.source,
39
+ ...(catalog.rowResolution === undefined ? {} : { rowResolution: { ...catalog.rowResolution } }),
39
40
  ...(catalog.freshness !== undefined ? { freshness: { ...catalog.freshness } } : {}),
40
41
  ...(catalog.owner !== undefined ? { owner: catalog.owner } : {}),
41
42
  ...(catalog.defaults !== undefined
@@ -52,6 +53,7 @@ function datasetToContract(catalog, includeSql) {
52
53
  : {}),
53
54
  ...(catalog.tenantKey !== undefined ? { tenantKey: catalog.tenantKey } : {}),
54
55
  ...(catalog.timeKey !== undefined ? { timeKey: catalog.timeKey } : {}),
56
+ ...(catalog.timeKeys?.length ? { timeKeys: uniqueSorted(catalog.timeKeys) } : {}),
55
57
  requiresTenant: catalog.requiresTenant,
56
58
  supportedGrains: uniqueSorted(catalog.supportedGrains),
57
59
  dimensions: sortedRecord(Object.entries(catalog.dimensions).map(([name, entry]) => [name, dimensionToContract(entry, includeSql)])),
@@ -103,6 +105,7 @@ function measureToContract(entry, includeSql) {
103
105
  field: entry.field,
104
106
  ...(entry.argField !== undefined ? { argField: entry.argField } : {}),
105
107
  ...(entry.level !== undefined ? { level: entry.level } : {}),
108
+ ...(entry.stateFunction !== undefined ? { stateFunction: entry.stateFunction } : {}),
106
109
  ...(includeSql && entry.sql !== undefined ? { sql: normalizeSql(entry.sql) } : {}),
107
110
  ...(entry.label !== undefined ? { label: entry.label } : {}),
108
111
  ...(entry.description !== undefined ? { description: entry.description } : {}),
@@ -159,7 +162,7 @@ export function contractToStableJson(contract) {
159
162
  * `node:crypto` so the contract stays usable in browser/edge runtimes.
160
163
  */
161
164
  export function hashContract(contract) {
162
- return bytesToHex(sha256(contractToStableJson(contract)));
165
+ return bytesToHex(sha256(new TextEncoder().encode(contractToStableJson(contract))));
163
166
  }
164
167
  /** Normalizes SQL escape-hatch whitespace so equivalent SQL hashes identically. */
165
168
  function normalizeSql(sql) {
@@ -24,6 +24,8 @@ export interface DatasetCompilationDescription {
24
24
  }[];
25
25
  readonly segments: readonly string[];
26
26
  readonly by?: string;
27
+ /** The selected time axis, when the query names one. */
28
+ readonly timeKey?: string;
27
29
  readonly timezone?: string;
28
30
  readonly effectiveLimit?: number;
29
31
  /** Includes the extra row used to determine pagination.hasMore. */
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-compilation.d.ts","sourceRoot":"","sources":["../src/dataset-compilation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,CAAC;CACzC;AAED,qFAAqF;AACrF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnF,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB;IAClE,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvC,6EAA6E;IAC7E,QAAQ,CAAC,mBAAmB,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAClE,QAAQ,IAAI,6BAA6B,CAAC;IAC1C,gFAAgF;IAChF,MAAM,IAAI,6BAA6B,CAAC;CACzC"}
1
+ {"version":3,"file":"dataset-compilation.d.ts","sourceRoot":"","sources":["../src/dataset-compilation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,SAAS,OAAO,EAAE,CAAC;CACzC;AAED,qFAAqF;AACrF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnF,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpF,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB;IAClE,mFAAmF;IACnF,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvC,6EAA6E;IAC7E,QAAQ,CAAC,mBAAmB,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAClE,QAAQ,IAAI,6BAA6B,CAAC;IAC1C,gFAAgF;IAChF,MAAM,IAAI,6BAA6B,CAAC;CACzC"}
@@ -1,3 +1,5 @@
1
+ import type { AggregationType, DimensionType, MeasureDefinition, TimeGrain } from './types.js';
2
+ import type { SemanticBinaryOperator, SemanticFunctionName } from './semantic-plan.js';
1
3
  /**
2
4
  * SQL rendering owned by the semantic datasets layer, separate from a query
3
5
  * builder's compiler dialect. Extend this contract as emission sites migrate.
@@ -8,4 +10,121 @@ export interface DatasetSqlDialect {
8
10
  /** Quote one output identifier; dots in a qualified semantic alias are literal. */
9
11
  quoteIdentifier(identifier: string): string;
10
12
  }
13
+ /** A formula binary operator, matching `SemanticExpression` `binary` nodes. */
14
+ export type DatasetSqlBinaryOperator = SemanticBinaryOperator;
15
+ /** The logical type of a bound value, when the planner knows it. */
16
+ export type DatasetSqlParameterType = DimensionType | {
17
+ readonly array: DimensionType;
18
+ };
19
+ /** A value bound into a statement, with its logical type when known. */
20
+ export interface DatasetSqlBoundParameter {
21
+ readonly value: unknown;
22
+ readonly type?: DatasetSqlParameterType;
23
+ }
24
+ /** Why a raw `sql` expression is not one safe expression under a dialect's lexical rules. */
25
+ export type DatasetRawSqlExpressionError = 'unterminated-literal' | 'statement-break';
26
+ /** A wall-clock component read from a zoned timestamp. */
27
+ export type DatasetSqlClockPart = 'Hour' | 'Minute' | 'Second';
28
+ /**
29
+ * Every engine-specific spelling the datasets planner emits outside the query
30
+ * builder. Arguments are already-rendered SQL expressions; implementations
31
+ * only spell them, so planning decisions stay shared across engines.
32
+ *
33
+ * Internal: engines implement the full rule set. The public
34
+ * `DatasetSqlDialect` hook may override a subset, which
35
+ * `resolveDatasetSqlDialect` merges onto the ClickHouse rules.
36
+ */
37
+ export interface DatasetSqlDialectRules extends DatasetSqlDialect {
38
+ /** Spell the placeholder for the value at `index` in the rendered parameter array. */
39
+ placeholder(index: number, parameter: DatasetSqlBoundParameter): string;
40
+ /** A repeated value re-uses its placeholder (`$k`) rather than binding again. */
41
+ readonly reusesPlaceholders: boolean;
42
+ /** A builder's own positional `?` statement can be embedded verbatim. */
43
+ readonly embedsPositionalPieces: boolean;
44
+ /**
45
+ * One ORDER BY term. Engines whose NULL placement differs from ClickHouse
46
+ * (NULLs last in both directions) add explicit `NULLS` clauses here so
47
+ * results order identically. No direction keeps the engine default (ASC).
48
+ */
49
+ orderTerm(expression: string, direction?: 'ASC' | 'DESC'): string;
50
+ /**
51
+ * The trailing pagination clause, including its leading space, or ''.
52
+ * Engines that reject OFFSET without LIMIT supply a LIMIT here.
53
+ */
54
+ paginate(limit: number | undefined, offset: number | undefined): string;
55
+ /** Quote a dotted physical source path (`analytics.orders`). */
56
+ quoteQualifiedName(name: string): string;
57
+ /**
58
+ * A quoted table read with row-version resolution (ClickHouse `FINAL`), used
59
+ * for joined targets that declare `rowResolution`. Omit it on engines without such
60
+ * a modifier; those datasets are then refused instead of read unresolved.
61
+ */
62
+ finalTable?(quotedSource: string): string;
63
+ /**
64
+ * Check that author-written raw `sql` is one expression under this engine's
65
+ * lexical rules: no terminator or comment hidden outside a literal. Engines
66
+ * differ (backslash escapes, `#` comments, triple-quoted strings), so an
67
+ * engine that cannot check its own raw SQL must reject it here rather than
68
+ * inherit another engine's rules.
69
+ */
70
+ rawSqlExpressionError(sql: string): DatasetRawSqlExpressionError | undefined;
71
+ stringLiteral(value: string): string;
72
+ /** A literal compared against a column inside a measure filter. */
73
+ measureFilterLiteral(value: unknown): string;
74
+ /** Truncate a timestamp to the start of its grain bucket. */
75
+ truncateTime(time: string, grain: TimeGrain): string;
76
+ /** Truncate like `truncateTime`, returning a timestamp in the zone `timezone` evaluates to. */
77
+ truncateTimeInZone(time: string, grain: TimeGrain, timezone: string): string;
78
+ /** Move a timestamp forward by `amount` grains; `amount` may be an expression. */
79
+ addTime(time: string, amount: string | number, grain: TimeGrain): string;
80
+ /** Move a timestamp back by a literal number of grains. */
81
+ subtractTime(time: string, amount: number, grain: TimeGrain): string;
82
+ /** Whole grain boundaries crossed from `start` to `end`. */
83
+ timeDiff(grain: TimeGrain, start: string, end: string): string;
84
+ /** Convert a source time to the query timezone, a validated canonical IANA name. */
85
+ toQueryTimezone(time: string, timezone: string): string;
86
+ /** Parse a timestamp from a string expression, such as a bound placeholder, in the zone `timezone` evaluates to. */
87
+ parseTimestamp(value: string, timezone: string): string;
88
+ /** The timezone a zoned timestamp expression carries. */
89
+ timezoneOf(time: string): string;
90
+ /** One wall-clock component of a zoned timestamp. */
91
+ clockPart(part: DatasetSqlClockPart, time: string): string;
92
+ /** True when a value's physical type is a date without a time of day. */
93
+ isDateOnlyType(value: string): string;
94
+ /** Fail the statement with `message` when `condition` holds; evaluates to 0 otherwise. */
95
+ guard(condition: string, message: string): string;
96
+ ifElse(condition: string, then: string, otherwise: string): string;
97
+ greatest(...values: string[]): string;
98
+ least(...values: string[]): string;
99
+ /** NULL-safe equality. */
100
+ isNotDistinctFrom(left: string, right: string): string;
101
+ isNotNull(value: string): string;
102
+ /** Narrow a value the planner has already proven non-NULL. */
103
+ assumeNotNull(value: string): string;
104
+ /** Widen a value to a nullable type, so unmatched joins yield NULL. */
105
+ toNullable(value: string): string;
106
+ /** Count rows matching `condition`. */
107
+ countIf(condition: string): string;
108
+ /** Expand each row into `count` rows carrying the indices 0..count-1. */
109
+ seriesIndex(count: string): string;
110
+ /** True when `predicate`, which reads `index`, holds for some index in 0..count-1. */
111
+ anyIndex(index: string, count: string, predicate: string): string;
112
+ /** Pack expressions into one positional value, isolating their names. */
113
+ packRow(values: readonly string[]): string;
114
+ /** Read the 1-based `position` from a packed row. */
115
+ rowElement(row: string, position: number): string;
116
+ /** Every column of `relation` except `columns`. */
117
+ selectAllExcept(relation: string, columns: readonly string[]): string;
118
+ /** Join keyword matching each left row to the nearest preceding right row. */
119
+ readonly asofLeftJoin: string;
120
+ /** Wrap a filtered measure's input so non-matching rows contribute `fallback`. */
121
+ filteredAggregateInput(condition: string, value: string, fallback: '0' | 'NULL'): string;
122
+ /** A time-measure aggregate: NULL over an empty population unless it counts. */
123
+ windowAggregate(definition: MeasureDefinition, value: string, arg: string): string;
124
+ /** Re-aggregate partial results; NULL over an empty population. */
125
+ reaggregate(aggregation: AggregationType, value: string): string;
126
+ formulaLiteral(value: string | number | boolean | null): string;
127
+ formulaBinary(operator: DatasetSqlBinaryOperator, left: string, right: string): string;
128
+ formulaFunction(name: SemanticFunctionName, args: readonly string[]): string;
129
+ }
11
130
  //# sourceMappingURL=dataset-sql-dialect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-sql-dialect.d.ts","sourceRoot":"","sources":["../src/dataset-sql-dialect.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7C"}
1
+ {"version":3,"file":"dataset-sql-dialect.d.ts","sourceRoot":"","sources":["../src/dataset-sql-dialect.ts"],"names":[],"mappings":"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"}
package/dist/dataset.d.ts CHANGED
@@ -14,6 +14,7 @@
14
14
  * source: "orders",
15
15
  * tenantKey: "tenant_id",
16
16
  * timeKey: "created_at",
17
+ * timeKeys: ["shipped_at"],
17
18
  * dimensions: {
18
19
  * id: dimension.string(),
19
20
  * status: dimension.string({ label: "Order Status" }),
@@ -24,12 +25,13 @@
24
25
  * orderCount: measure.count("id"),
25
26
  * },
26
27
  * relationships: {
27
- * customer: belongsTo(() => Customers, { from: "customerId", to: "id" }),
28
+ * customer: belongsTo(() => Customers, { from: "customer_id", to: "id" }),
28
29
  * },
29
30
  * });
30
31
  * ```
31
32
  */
32
33
  import type { NormalizedDatasetFilters } from './utils/dataset-filter-types.js';
33
34
  import type { DatasetConfig, DatasetInstance, DatasetMeasureDefinition, DerivedMeasures, DimensionDefinition, RelationshipDefinition, SegmentDefinition, SemanticFiltersDefinition } from './types.js';
34
- export declare function dataset<TDatasetName extends string, TDimensions extends Record<string, DimensionDefinition>, TDefinitions extends Record<string, DatasetMeasureDefinition> = {}, TRelationships extends Record<string, RelationshipDefinition> = Record<string, never>, const TSegments extends Record<string, SegmentDefinition> = {}, const TFilters extends SemanticFiltersDefinition | undefined = SemanticFiltersDefinition | undefined>(name: TDatasetName, config: DatasetConfig<TDimensions, TDefinitions, TRelationships, TSegments, TFilters>): DatasetInstance<TDimensions, TDefinitions, TRelationships, TDatasetName, DerivedMeasures<TDefinitions>, TSegments, NormalizedDatasetFilters<TDimensions, TFilters>>;
35
+ export declare function dataset<TDatasetName extends string, TDimensions extends Record<string, DimensionDefinition>, TDefinitions extends Record<string, DatasetMeasureDefinition> = {}, TRelationships extends Record<string, RelationshipDefinition> = Record<string, never>, const TSegments extends Record<string, SegmentDefinition> = {}, const TFilters extends SemanticFiltersDefinition | undefined = SemanticFiltersDefinition | undefined, const TTimeKey extends string | undefined = undefined, const TTimeKeys extends readonly string[] = readonly []>(name: TDatasetName, config: DatasetConfig<TDimensions, TDefinitions, TRelationships, TSegments, TFilters, TTimeKey, TTimeKeys>): DatasetInstance<TDimensions, TDefinitions, TRelationships, TDatasetName, DerivedMeasures<TDefinitions>, TSegments, NormalizedDatasetFilters<TDimensions, TFilters>, TTimeKey, TTimeKeys[number]>;
36
+ export declare function dataset<TDatasetName extends string, TDimensions extends Record<string, DimensionDefinition>, TDefinitions extends Record<string, DatasetMeasureDefinition> = {}, TRelationships extends Record<string, RelationshipDefinition> = Record<string, never>, const TSegments extends Record<string, SegmentDefinition> = {}, const TFilters extends SemanticFiltersDefinition | undefined = SemanticFiltersDefinition | undefined, const TTimeKey extends string | undefined = string | undefined, const TTimeKeys extends readonly string[] = readonly string[]>(name: TDatasetName, config: DatasetConfig<TDimensions, TDefinitions, TRelationships, TSegments, TFilters, TTimeKey, TTimeKeys>): DatasetInstance<TDimensions, TDefinitions, TRelationships, TDatasetName, DerivedMeasures<TDefinitions>, TSegments, NormalizedDatasetFilters<TDimensions, TFilters>, TTimeKey, TTimeKeys[number]>;
35
37
  //# sourceMappingURL=dataset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,wBAAwB,EAExB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EAKtB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAsBpB,wBAAgB,OAAO,CACrB,YAAY,SAAS,MAAM,EAC3B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACvD,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,EAAE,EAClE,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrF,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,EAC9D,KAAK,CAAC,QAAQ,SAAS,yBAAyB,GAAG,SAAS,GAAG,yBAAyB,GAAG,SAAS,EAEpG,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,GACpF,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAoFrK"}
1
+ {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../src/dataset.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,wBAAwB,EAExB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EAKtB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAwBpB,wBAAgB,OAAO,CACrB,YAAY,SAAS,MAAM,EAC3B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACvD,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,EAAE,EAClE,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrF,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,EAC9D,KAAK,CAAC,QAAQ,SAAS,yBAAyB,GAAG,SAAS,GAAG,yBAAyB,GAAG,SAAS,EACpG,KAAK,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,GAAG,SAAS,EACrD,KAAK,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,EAEvD,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,GACzG,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAIpM,wBAAgB,OAAO,CACrB,YAAY,SAAS,MAAM,EAC3B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACvD,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,EAAE,EAClE,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrF,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,EAC9D,KAAK,CAAC,QAAQ,SAAS,yBAAyB,GAAG,SAAS,GAAG,yBAAyB,GAAG,SAAS,EACpG,KAAK,CAAC,QAAQ,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EAC9D,KAAK,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,EAE7D,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,GACzG,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC"}
package/dist/dataset.js CHANGED
@@ -1,34 +1,4 @@
1
- /**
2
- * dataset() — creates a typed semantic model over a physical table.
3
- *
4
- * Relationships are modeled on the dataset. To-one relationships (`belongsTo`,
5
- * `hasOne`) are queryable one hop deep as `<relationship>.<dimension>` and
6
- * execute as LEFT JOINs; `hasMany` relationships remain metadata-only to avoid
7
- * fan-out corrupting aggregates.
8
- *
9
- * @example
10
- * ```ts
11
- * import { dataset, dimension, measure, belongsTo } from '@hypequery/serve';
12
- *
13
- * const Orders = dataset("orders", {
14
- * source: "orders",
15
- * tenantKey: "tenant_id",
16
- * timeKey: "created_at",
17
- * dimensions: {
18
- * id: dimension.string(),
19
- * status: dimension.string({ label: "Order Status" }),
20
- * createdAt: dimension.timestamp({ column: "created_at" }),
21
- * },
22
- * measures: {
23
- * totalRevenue: measure.sum("amount", { label: "Total Revenue" }),
24
- * orderCount: measure.count("id"),
25
- * },
26
- * relationships: {
27
- * customer: belongsTo(() => Customers, { from: "customerId", to: "id" }),
28
- * },
29
- * });
30
- * ```
31
- */
1
+ import { validateProtocolRowResolution } from '@hypequery/protocol';
32
2
  import { createDerivedMetricSpec, createMetricRef, isDerivedMetricConfig, } from './utils/dataset-metric-ref.js';
33
3
  import { measureToAggregationSpec, normalizeDimensions, normalizeFilters, normalizeRelationships, } from './utils/dataset-normalization.js';
34
4
  import { validateBaseMetric, validateDerivedMetric, } from './utils/dataset-validation.js';
@@ -71,6 +41,7 @@ export function dataset(name, config) {
71
41
  __type: 'dataset',
72
42
  name,
73
43
  source: config.source,
44
+ ...datasetRowResolution(name, config),
74
45
  description: config.description,
75
46
  ...snapshotSemanticMetadata(config),
76
47
  freshness: config.freshness === undefined ? undefined : { ...config.freshness },
@@ -81,6 +52,9 @@ export function dataset(name, config) {
81
52
  },
82
53
  tenantKey: config.tenantKey,
83
54
  timeKey: config.timeKey,
55
+ ...(config.timeKeys === undefined || config.timeKeys.length === 0
56
+ ? {}
57
+ : { timeKeys: Object.freeze(config.timeKeys.filter(key => key !== config.timeKey)) }),
84
58
  ...(config.timeGrains === undefined ? {} : { timeGrains: Object.freeze([...config.timeGrains]) }),
85
59
  dimensions,
86
60
  measures,
@@ -94,3 +68,21 @@ export function dataset(name, config) {
94
68
  };
95
69
  return ds;
96
70
  }
71
+ let warnedFinalDeprecated = false;
72
+ /**
73
+ * `rowResolution` on the instance, the one representation of row resolution.
74
+ * The deprecated `final: true` means `{ kind: 'final' }`; `final` stays on the
75
+ * instance, true whenever rows are resolved, for code that still reads it.
76
+ */
77
+ function datasetRowResolution(name, config) {
78
+ if (config.rowResolution !== undefined)
79
+ return { final: true, rowResolution: validateProtocolRowResolution(config.rowResolution) };
80
+ if (!config.final)
81
+ return {};
82
+ if (!warnedFinalDeprecated) {
83
+ warnedFinalDeprecated = true;
84
+ console.warn(`[hypequery/datasets] Dataset "${name}": \`final: true\` is deprecated. `
85
+ + "Use `rowResolution: { kind: 'final' }`, which also names the engine when needed.");
86
+ }
87
+ return { final: true, rowResolution: { kind: 'final' } };
88
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-backend.d.ts","sourceRoot":"","sources":["../src/in-memory-backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,eAAe,EAKhB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAuV3D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAwE7E"}
1
+ {"version":3,"file":"in-memory-backend.d.ts","sourceRoot":"","sources":["../src/in-memory-backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,eAAe,EAKhB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AA2V3D;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAwE7E"}
@@ -222,6 +222,8 @@ function aggregateRows(rows, aggregation) {
222
222
  }
223
223
  return percentileOf(numericValues(), aggregation.level);
224
224
  }
225
+ case 'merge':
226
+ throw new Error(`Aggregation "merge" for "${aggregation.name}" reads stored aggregate states, which the in-memory backend cannot evaluate.`);
225
227
  case 'stddev':
226
228
  return Math.sqrt(sampleVarianceOf(numericValues()));
227
229
  case 'variance':
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
+ import * as schemas from './schemas.js';
1
2
  export { dataset } from './dataset.js';
2
3
  export { dimension } from './field.js';
3
4
  export { measure } from './measure.js';
4
5
  export { belongsTo, hasMany, hasOne } from './relationships.js';
5
6
  export { checkRelationships } from './relationship-check.js';
6
7
  export type { CheckRelationshipsOptions, CheckRelationshipsResult, RelationshipKeyIssue, } from './relationship-check.js';
7
- export { sum, count, countDistinct, approxCountDistinct, avg, min, max, percentile, median, argMax, argMin, stddev, variance, } from './aggregations.js';
8
+ export { sum, count, countDistinct, approxCountDistinct, avg, min, max, percentile, median, argMax, argMin, stddev, variance, merge, } from './aggregations.js';
9
+ export { AGGREGATE_STATE_FUNCTIONS, type AggregateStateFunction } from './utils/aggregate-state-functions.js';
8
10
  export { divide, multiply, subtract, add, nullIfZero, coalesce, round, floor, ceil, } from './formulas.js';
9
11
  export { eq, neq, gt, gte, lt, lte, inList, notInList, between, like, asc, desc, filter, order, } from './query-helpers.js';
10
12
  export { createDatasetRegistry } from './registry.js';
@@ -21,6 +23,7 @@ export { rehydrateProtocolDatasets, UNSUPPORTED_CONTRACT_REASONS, UnsupportedCon
21
23
  export type { RehydratedDataset, RehydrateProtocolDatasetsOptions, UnsupportedContractReason, } from './protocol-rehydrate.js';
22
24
  export { buildProtocolDatasetContract } from './protocol-adapter.js';
23
25
  export { buildProtocolDeploymentContract } from './protocol-deployment-adapter.js';
26
+ export { assertDeployable } from './utils/deployable-formulas.js';
24
27
  export type { BuildProtocolDeploymentContractOptions } from './protocol-deployment-adapter.js';
25
28
  export { rehydrateProtocolDeploymentContract } from './protocol-rehydrate.js';
26
29
  export type { BuildProtocolDatasetContractOptions } from './protocol-adapter.js';
@@ -31,9 +34,50 @@ export type { PortableSemanticBudget, PortableSemanticRuntime, PortableDatasetCo
31
34
  export { compilePortableSqlExpression, DEFAULT_SQL_PORTABILITY_LIMITS, } from './sql-portability.js';
32
35
  export type { SqlPortabilityIssue, SqlPortabilityIssueCode, SqlPortabilityLimits, SqlPortabilityOptions, SqlPortabilityResult, } from './sql-portability.js';
33
36
  export type { SemanticContract, SerializeSemanticContractOptions, ContractDataset, ContractDimension, ContractMeasure, ContractMetric, ContractFilter, ContractRelationship, } from './contract.js';
34
- export { generateDatasetTools, toOpenAITools, toAISDKTools, toMcpTools, } from './tools.js';
35
- export { buildDatasetInputSchema, buildMetricInputSchema, buildCanonicalSemanticQuerySchemas, toSemanticJsonSchema, DEFAULT_SEMANTIC_QUERY_SCHEMA_LIMITS, buildDatasetInputProtocolSchema, buildMetricInputProtocolSchema, } from './semantic-query-schema.js';
36
- export type { CanonicalSemanticQuerySchemas, SemanticMetricQueryContract, SemanticQuerySchemaLimits, SemanticQuerySchemaOptions, SemanticQuerySchemaSource, } from './semantic-query-schema.js';
37
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
38
+ export declare const generateDatasetTools: typeof schemas.generateDatasetTools;
39
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
40
+ export declare const toOpenAITools: typeof schemas.toOpenAITools;
41
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
42
+ export declare const toAISDKTools: typeof schemas.toAISDKTools;
43
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
44
+ export declare const toMcpTools: typeof schemas.toMcpTools;
45
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
46
+ export declare const buildDatasetInputSchema: typeof schemas.buildDatasetInputSchema;
47
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
48
+ export declare const buildMetricInputSchema: typeof schemas.buildMetricInputSchema;
49
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
50
+ export declare const buildCanonicalSemanticQuerySchemas: typeof schemas.buildCanonicalSemanticQuerySchemas;
51
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
52
+ export declare const toSemanticJsonSchema: typeof schemas.toSemanticJsonSchema;
53
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
54
+ export declare const DEFAULT_SEMANTIC_QUERY_SCHEMA_LIMITS: Readonly<{
55
+ maxResultSize: 10000;
56
+ maxOffset: 10000;
57
+ maxDimensions: 50;
58
+ maxMeasures: 50;
59
+ maxFilters: 100;
60
+ maxOrderBy: 50;
61
+ }>;
62
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
63
+ export declare const buildDatasetInputProtocolSchema: typeof schemas.buildDatasetInputProtocolSchema;
64
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
65
+ export declare const buildMetricInputProtocolSchema: typeof schemas.buildMetricInputProtocolSchema;
66
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
67
+ export declare const zodToProtocolSchema: typeof schemas.zodToProtocolSchema;
68
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
69
+ export declare const ProtocolSchemaAdapterError: typeof schemas.ProtocolSchemaAdapterError;
70
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
71
+ export type ProtocolSchemaAdapterError = schemas.ProtocolSchemaAdapterError;
72
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
73
+ export declare const buildClientContractQuerySchemas: typeof schemas.buildClientContractQuerySchemas;
74
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
75
+ export type CanonicalSemanticQuerySchemas = schemas.CanonicalSemanticQuerySchemas;
76
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
77
+ export type ClientContractQuerySchemas = schemas.ClientContractQuerySchemas;
78
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
79
+ export type ClientEndpointQuerySchema = schemas.ClientEndpointQuerySchema;
80
+ export type { SemanticMetricQueryContract, SemanticQuerySchemaLimits, SemanticQuerySchemaOptions, SemanticQuerySchemaSource, } from './semantic-query-schema.js';
37
81
  export type { AISDKToolDefinition, DatasetToolAnalytics, DatasetToolMode, GenerateDatasetToolsOptions, JsonSchema, McpToolDefinition, OpenAIToolDefinition, SemanticToolDefinition, } from './tools.js';
38
82
  export { createDatasetClient } from './executor.js';
39
83
  export type { DatasetSqlDialect } from './dataset-sql-dialect.js';
@@ -50,8 +94,7 @@ export type { QueryBuilderLike, QueryBuilderFactoryLike, QueryBuilderFactoryComp
50
94
  export { toQueryBuilderFactory } from './query-builder-protocol.js';
51
95
  export { validateSQLIdentifier, isSafeSQLIdentifier, quoteSQLIdentifier } from './sql-utils.js';
52
96
  export { GRAIN_FUNCTIONS, SEMANTIC_FILTER_OPERATORS, SEMANTIC_HAVING_OPERATORS, SUPPORTED_TIME_GRAINS } from './constants.js';
53
- export type { FieldType, DimensionType, DimensionOptions, DimensionDefinition, MeasureOptions, MeasureDefinition, MeasureTimeInterval, WindowMeasureDefinition, ShiftMeasureDefinition, DatasetMeasureDefinition, DerivedMeasureDefinition, DerivedMeasureOptions, DerivedMeasureUses, InferDimensionType, RelationshipKind, RelationshipDefinition, RelationshipKey, RelationshipJoin, AggregationType, MeasureAggregation, AggregationSpec, FormulaExpr, DerivedMetricSpec, TimeGrain, MetricRef, BaseMetricRef, DerivedMetricRef, GrainedMetricRef, MetricContract, MetricFilter, MetricFilterOperator, MetricOrderBy, MetricQuery, DatasetQuery, MetricResultMeta, MetricResult, DatasetQueryResult, MetricHandle, ExecutionContext, SemanticExecutionRuntime, SemanticTenantRuntime, SemanticFilterDefinition, SegmentDefinition, SemanticFiltersDefinition, DatasetConfig, DatasetDefaults, DatasetFreshness, DatasetLimits, DatasetCachePolicy, SemanticMetadata, SemanticSensitivity, DatasetInstance, AnyDatasetInstance, BaseMetricConfig, DerivedMetricConfig, DatasetRegistryInstance, DatasetFieldNames, DatasetDimensionNames, DatasetQueryableDimensions, DatasetQueryableMeasures, DatasetMeasureNames, DatasetSegmentNames, DatasetOrderableNames, DatasetQueryFor, DatasetHavingCondition, DatasetHavingFor, DatasetHavingOperator, DatasetRow, DatasetRowFor, DatasetQueryResultFor, MetricQueryFor, MetricRow, MetricRowFor, MetricResultFor, KnownStringKeys, } from './types.js';
54
- export { ProtocolSchemaAdapterError, zodToProtocolSchema } from './protocol-schema-adapter.js';
97
+ export type { FieldType, DimensionType, DimensionOptions, DimensionDefinition, MeasureOptions, MeasureDefinition, MeasureTimeInterval, WindowMeasureDefinition, ShiftMeasureDefinition, DatasetMeasureDefinition, DerivedMeasureDefinition, DerivedMeasureOptions, DerivedMeasureUses, InferDimensionType, RelationshipKind, RelationshipDefinition, RelationshipKey, RelationshipJoin, AggregationType, MeasureAggregation, AggregationSpec, FormulaExpr, DerivedMetricSpec, TimeGrain, MetricRef, BaseMetricRef, DerivedMetricRef, GrainedMetricRef, MetricContract, MetricFilter, MetricFilterOperator, MetricOrderBy, MetricQuery, DatasetQuery, MetricResultMeta, MetricResult, DatasetQueryResult, MetricHandle, ExecutionContext, SemanticExecutionRuntime, SemanticTenantRuntime, SemanticFilterDefinition, SegmentDefinition, SemanticFiltersDefinition, DatasetConfig, RowResolution, DatasetDefaults, DatasetFreshness, DatasetLimits, DatasetCachePolicy, SemanticMetadata, SemanticSensitivity, DatasetInstance, AnyDatasetInstance, BaseMetricConfig, DerivedMetricConfig, DatasetRegistryInstance, DatasetFieldNames, DatasetDimensionNames, DatasetQueryableDimensions, DatasetQueryableMeasures, DatasetMeasureNames, DatasetSegmentNames, DatasetTimeKeyNames, DatasetOrderableNames, DatasetQueryFor, DatasetHavingCondition, DatasetHavingFor, DatasetHavingOperator, DatasetRow, DatasetRowFor, DatasetQueryResultFor, MetricQueryFor, MetricRow, MetricRowFor, MetricResultFor, KnownStringKeys, } from './types.js';
55
98
  export type { DatasetCompilation, DatasetCompiledStatement, DatasetCompilationDescription, } from './dataset-compilation.js';
56
99
  export { DATASET_EXECUTION_CAPABILITIES } from './execution-capabilities.js';
57
100
  export type { DatasetFeature, DatasetFeatureSupport, DatasetExecutionCapabilities } from './execution-capabilities.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import * as schemas from './schemas.js';
1
2
  // Dataset definition
2
3
  export { dataset } from './dataset.js';
3
4
  // Dimension helpers
@@ -8,7 +9,8 @@ export { measure } from './measure.js';
8
9
  export { belongsTo, hasMany, hasOne } from './relationships.js';
9
10
  export { checkRelationships } from './relationship-check.js';
10
11
  // Aggregation helpers
11
- export { sum, count, countDistinct, approxCountDistinct, avg, min, max, percentile, median, argMax, argMin, stddev, variance, } from './aggregations.js';
12
+ export { sum, count, countDistinct, approxCountDistinct, avg, min, max, percentile, median, argMax, argMin, stddev, variance, merge, } from './aggregations.js';
13
+ export { AGGREGATE_STATE_FUNCTIONS } from './utils/aggregate-state-functions.js';
12
14
  // Formula helpers
13
15
  export { divide, multiply, subtract, add, nullIfZero, coalesce, round, floor, ceil, } from './formulas.js';
14
16
  // Semantic query helpers
@@ -28,16 +30,43 @@ export { serializeSemanticContract, contractToStableJson, hashContract, SEMANTIC
28
30
  export { rehydrateProtocolDatasets, UNSUPPORTED_CONTRACT_REASONS, UnsupportedContractFeatureError, } from './protocol-rehydrate.js';
29
31
  export { buildProtocolDatasetContract } from './protocol-adapter.js';
30
32
  export { buildProtocolDeploymentContract } from './protocol-deployment-adapter.js';
33
+ export { assertDeployable } from './utils/deployable-formulas.js';
31
34
  export { rehydrateProtocolDeploymentContract } from './protocol-rehydrate.js';
32
35
  export { publishToCloud } from './cloud-publishing.js';
33
36
  // Portable native execution of a semantic invocation (decision 0005).
34
37
  export { createPortableSemanticExecutor, createPortableSemanticRuntime, PortableExecutionBudgetError, PortableExecutionTenantError, PortableExecutionUnsupportedError, } from './portable-executor.js';
35
38
  // SQL portability compiler (R1A-07)
36
39
  export { compilePortableSqlExpression, DEFAULT_SQL_PORTABILITY_LIMITS, } from './sql-portability.js';
37
- // Agent/tool metadata
38
- export { generateDatasetTools, toOpenAITools, toAISDKTools, toMcpTools, } from './tools.js';
39
- // Canonical semantic query schemas shared by Serve, MCP, and agent adapters.
40
- export { buildDatasetInputSchema, buildMetricInputSchema, buildCanonicalSemanticQuerySchemas, toSemanticJsonSchema, DEFAULT_SEMANTIC_QUERY_SCHEMA_LIMITS, buildDatasetInputProtocolSchema, buildMetricInputProtocolSchema, } from './semantic-query-schema.js';
40
+ // Zod-backed schemas and agent tools now live at `@hypequery/datasets/schemas`.
41
+ // These root re-exports remain for compatibility and are removed in 1.0.
42
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
43
+ export const generateDatasetTools = schemas.generateDatasetTools;
44
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
45
+ export const toOpenAITools = schemas.toOpenAITools;
46
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
47
+ export const toAISDKTools = schemas.toAISDKTools;
48
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
49
+ export const toMcpTools = schemas.toMcpTools;
50
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
51
+ export const buildDatasetInputSchema = schemas.buildDatasetInputSchema;
52
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
53
+ export const buildMetricInputSchema = schemas.buildMetricInputSchema;
54
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
55
+ export const buildCanonicalSemanticQuerySchemas = schemas.buildCanonicalSemanticQuerySchemas;
56
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
57
+ export const toSemanticJsonSchema = schemas.toSemanticJsonSchema;
58
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
59
+ export const DEFAULT_SEMANTIC_QUERY_SCHEMA_LIMITS = schemas.DEFAULT_SEMANTIC_QUERY_SCHEMA_LIMITS;
60
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
61
+ export const buildDatasetInputProtocolSchema = schemas.buildDatasetInputProtocolSchema;
62
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
63
+ export const buildMetricInputProtocolSchema = schemas.buildMetricInputProtocolSchema;
64
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
65
+ export const zodToProtocolSchema = schemas.zodToProtocolSchema;
66
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
67
+ export const ProtocolSchemaAdapterError = schemas.ProtocolSchemaAdapterError;
68
+ /** @deprecated Import from `@hypequery/datasets/schemas`; the root entry stops exporting it in 1.0. */
69
+ export const buildClientContractQuerySchemas = schemas.buildClientContractQuerySchemas;
41
70
  // Dataset client
42
71
  export { createDatasetClient } from './executor.js';
43
72
  // Semantic query result cache
@@ -53,5 +82,4 @@ export { toQueryBuilderFactory } from './query-builder-protocol.js';
53
82
  export { validateSQLIdentifier, isSafeSQLIdentifier, quoteSQLIdentifier } from './sql-utils.js';
54
83
  // Constants
55
84
  export { GRAIN_FUNCTIONS, SEMANTIC_FILTER_OPERATORS, SEMANTIC_HAVING_OPERATORS, SUPPORTED_TIME_GRAINS } from './constants.js';
56
- export { ProtocolSchemaAdapterError, zodToProtocolSchema } from './protocol-schema-adapter.js';
57
85
  export { DATASET_EXECUTION_CAPABILITIES } from './execution-capabilities.js';
@@ -14,7 +14,8 @@ export type { InMemoryTable, InMemoryTables } from './in-memory-backend.js';
14
14
  export type { PlanNode, SemanticBackend, SemanticBackendResult, SemanticExpression, SemanticAggregationPlan, SemanticDimensionPlan, SemanticGrainPlan, } from './semantic-plan.js';
15
15
  export type { DatasetSqlDialect } from './dataset-sql-dialect.js';
16
16
  export { clickhouseDatasetSqlDialect } from './utils/clickhouse-dataset-sql-dialect.js';
17
- export { resolveDatasetSqlDialect } from './utils/dataset-sql-dialect.js';
17
+ export { defineDatasetSqlDialectRules, resolveDatasetSqlDialect } from './utils/dataset-sql-dialect.js';
18
+ export type { DatasetSqlDialectRules, DatasetSqlBoundParameter, DatasetSqlParameterType } from './dataset-sql-dialect.js';
18
19
  export type { QueryBuilderLike, QueryBuilderFactoryLike } from './query-builder-protocol.js';
19
20
  export type { ValidationResult } from './validation.js';
20
21
  export { validateFilterValue, matchesFieldType } from './validation.js';
@@ -23,4 +24,7 @@ export { runDatasetQuery, buildDatasetQueryBuilder, validateDatasetQuery } from
23
24
  export type { DatasetQueryExecutionOptions } from './dataset-query.js';
24
25
  export { GRAIN_FUNCTIONS } from './constants.js';
25
26
  export type { AnyDatasetInstance, DatasetQuery, DatasetQueryResult, } from './types.js';
27
+ export { queryFieldReferences } from './utils/query-field-references.js';
28
+ export { isZod4Schema } from './utils/zod-schema-version.js';
29
+ export type { AnyZodSchema } from './utils/zod-schema-version.js';
26
30
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1F,YAAY,EAAE,aAAa,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EACV,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1F,YAAY,EAAE,aAAa,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EACV,QAAQ,EACR,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AACxG,YAAY,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAC1H,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC"}
package/dist/internal.js CHANGED
@@ -11,7 +11,7 @@
11
11
  export { createDatasetClient, DatasetClientImpl, MetricQueryEngine } from './executor.js';
12
12
  export { createInMemoryBackend } from './in-memory-backend.js';
13
13
  export { clickhouseDatasetSqlDialect } from './utils/clickhouse-dataset-sql-dialect.js';
14
- export { resolveDatasetSqlDialect } from './utils/dataset-sql-dialect.js';
14
+ export { defineDatasetSqlDialectRules, resolveDatasetSqlDialect } from './utils/dataset-sql-dialect.js';
15
15
  export { validateFilterValue, matchesFieldType } from './validation.js';
16
16
  // SQL utilities - used by serve for SQL generation
17
17
  export { validateSQLIdentifier, isSafeSQLIdentifier, quoteSQLIdentifier } from './sql-utils.js';
@@ -19,3 +19,7 @@ export { validateSQLIdentifier, isSafeSQLIdentifier, quoteSQLIdentifier } from '
19
19
  export { runDatasetQuery, buildDatasetQueryBuilder, validateDatasetQuery } from './dataset-query.js';
20
20
  // Constants - used by serve
21
21
  export { GRAIN_FUNCTIONS } from './constants.js';
22
+ // Query field references - used by serve to hold related fields to their dataset's policy
23
+ export { queryFieldReferences } from './utils/query-field-references.js';
24
+ // Zod major detection shared with serve, which accepts Zod 3 or Zod 4 schemas.
25
+ export { isZod4Schema } from './utils/zod-schema-version.js';
package/dist/measure.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { createPercentileMeasure, createMedianMeasure, createDerivedMeasure } from './utils/base-measure-definition.js';
1
+ import { createPercentileMeasure, createMedianMeasure, createDerivedMeasure, createMergeMeasure } from './utils/base-measure-definition.js';
2
2
  export { validatePercentileLevel } from './utils/base-measure-definition.js';
3
3
  import { type ShiftMeasureOptions } from './utils/shift-measure-definition.js';
4
4
  import type { MeasureTimeInterval, TimeGrain, WindowMeasureDefinition, ShiftMeasureDefinition } from './types.js';
@@ -61,6 +61,14 @@ export declare const measure: {
61
61
  field: TField;
62
62
  argField: TArg;
63
63
  } & TOptions;
64
+ /**
65
+ * Finalize stored aggregate states: `measure.merge('uniq', 'users')` reads an
66
+ * `AggregateFunction(uniq, …)` column of an AggregatingMergeTree table as
67
+ * `uniqMerge(users)`. For `SimpleAggregateFunction` columns use the plain
68
+ * measure (`measure.sum`, `measure.max`). Not usable through relationships,
69
+ * with measure filters, or in published contracts.
70
+ */
71
+ readonly merge: typeof createMergeMeasure;
64
72
  /** Sample standard deviation (ClickHouse `stddevSamp`). */
65
73
  readonly stddev: <const TField extends string, const TOptions extends import("./types.js").MeasureOptions = import("./types.js").MeasureOptions>(field: TField, opts?: TOptions | undefined) => import("./types.js").MeasureDefinition & {
66
74
  aggregation: "stddev";
@@ -1 +1 @@
1
- {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,uBAAuB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACrK,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEtG,eAAO,MAAM,OAAO;;;;;;;;;;;;;IAIlB;;;OAGG;;;;;;;;;;;;;;;;;IAKH,gFAAgF;;IAEhF,mDAAmD;;IAEnD;;;;;OAKG;;;;;;;;IAEH,gFAAgF;;;;;;;;IAEhF,2DAA2D;;;;;IAE3D,8CAA8C;;;;;IAE9C,qDAAqD;;IAErD,4EAA4E;2BAC9D,YAAY,SAAS,MAAM,eAAe,YAAY,YAAY,mBAAmB,YAAY,mBAAmB,KAAG,sBAAsB,CAAC,YAAY,CAAC;IAEzK,yEAAyE;8BACxD,YAAY,SAAS,MAAM,eAAe,YAAY,YAAY,mBAAmB,YAAY,oBAAoB,KAAG,uBAAuB,CAAC,YAAY,CAAC;IAE9K,+EAA+E;4BAChE,YAAY,SAAS,MAAM,eAAe,YAAY,SAAS,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,oBAAoB,KAAG,uBAAuB,CAAC,YAAY,CAAC;IAElL,2EAA2E;gCACxD,YAAY,SAAS,MAAM,eAAe,YAAY,YAAY,oBAAoB,KAAG,uBAAuB,CAAC,YAAY,CAAC;CAEzI,CAAC"}
1
+ {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../src/measure.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,uBAAuB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACzL,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,KAAK,EACV,mBAAmB,EACnB,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEtG,eAAO,MAAM,OAAO;;;;;;;;;;;;;IAIlB;;;OAGG;;;;;;;;;;;;;;;;;IAKH,gFAAgF;;IAEhF,mDAAmD;;IAEnD;;;;;OAKG;;;;;;;;IAEH,gFAAgF;;;;;;;;IAEhF;;;;;;OAMG;;IAEH,2DAA2D;;;;;IAE3D,8CAA8C;;;;;IAE9C,qDAAqD;;IAErD,4EAA4E;2BAC9D,YAAY,SAAS,MAAM,eAAe,YAAY,YAAY,mBAAmB,YAAY,mBAAmB,KAAG,sBAAsB,CAAC,YAAY,CAAC;IAEzK,yEAAyE;8BACxD,YAAY,SAAS,MAAM,eAAe,YAAY,YAAY,mBAAmB,YAAY,oBAAoB,KAAG,uBAAuB,CAAC,YAAY,CAAC;IAE9K,+EAA+E;4BAChE,YAAY,SAAS,MAAM,eAAe,YAAY,SAAS,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,oBAAoB,KAAG,uBAAuB,CAAC,YAAY,CAAC;IAElL,2EAA2E;gCACxD,YAAY,SAAS,MAAM,eAAe,YAAY,YAAY,oBAAoB,KAAG,uBAAuB,CAAC,YAAY,CAAC;CAEzI,CAAC"}