drizzle-cube 0.3.21 → 0.3.23

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 (122) hide show
  1. package/dist/adapters/express/index.cjs +1 -1
  2. package/dist/adapters/express/index.js +1 -1
  3. package/dist/adapters/fastify/index.cjs +1 -1
  4. package/dist/adapters/fastify/index.js +1 -1
  5. package/dist/adapters/hono/index.cjs +1 -1
  6. package/dist/adapters/hono/index.js +1 -1
  7. package/dist/adapters/{mcp-transport-DHBUNdYg.js → mcp-transport-lkEjNwDH.js} +3242 -3201
  8. package/dist/adapters/mcp-transport-oPf8JYHv.cjs +275 -0
  9. package/dist/adapters/nextjs/index.cjs +1 -1
  10. package/dist/adapters/nextjs/index.js +1 -1
  11. package/dist/client/charts/chartConfigs.d.ts +21 -0
  12. package/dist/client/charts.js +14 -14
  13. package/dist/client/chunks/{RetentionCombinedChart-DsWhPI0q.js → RetentionCombinedChart-DpEKFYsd.js} +3 -3
  14. package/dist/client/chunks/RetentionCombinedChart-DpEKFYsd.js.map +1 -0
  15. package/dist/client/chunks/{analysis-builder-DcZgXtPK.js → analysis-builder-DiaxkEY-.js} +9 -9
  16. package/dist/client/chunks/{analysis-builder-DcZgXtPK.js.map → analysis-builder-DiaxkEY-.js.map} +1 -1
  17. package/dist/client/chunks/{analysis-builder-shared-ZnrPzt_d.js → analysis-builder-shared-BzM5Vwpr.js} +5 -5
  18. package/dist/client/chunks/{analysis-builder-shared-ZnrPzt_d.js.map → analysis-builder-shared-BzM5Vwpr.js.map} +1 -1
  19. package/dist/client/chunks/{chart-activity-grid-BUc21L0U.js → chart-activity-grid-CCGyWo1c.js} +116 -106
  20. package/dist/client/chunks/chart-activity-grid-CCGyWo1c.js.map +1 -0
  21. package/dist/client/chunks/chart-area-ZZp1libT.js +234 -0
  22. package/dist/client/chunks/chart-area-ZZp1libT.js.map +1 -0
  23. package/dist/client/chunks/chart-bar-B4grbo6Q.js +254 -0
  24. package/dist/client/chunks/chart-bar-B4grbo6Q.js.map +1 -0
  25. package/dist/client/chunks/{chart-bubble-CO7qvWR9.js → chart-bubble-BGGAQQUQ.js} +2 -2
  26. package/dist/client/chunks/{chart-bubble-CO7qvWR9.js.map → chart-bubble-BGGAQQUQ.js.map} +1 -1
  27. package/dist/client/chunks/{chart-config-activity-grid-BBSNCbkb.js → chart-config-activity-grid-CAlo1cHA.js} +3 -2
  28. package/dist/client/chunks/{chart-config-activity-grid-BBSNCbkb.js.map → chart-config-activity-grid-CAlo1cHA.js.map} +1 -1
  29. package/dist/client/chunks/{chart-config-bar-BJKGnfLt.js → chart-config-bar-soxw6m2o.js} +2 -1
  30. package/dist/client/chunks/chart-config-bar-soxw6m2o.js.map +1 -0
  31. package/dist/client/chunks/{chart-config-line-DR0ThxZy.js → chart-config-line-D5ME6w0v.js} +2 -1
  32. package/dist/client/chunks/chart-config-line-D5ME6w0v.js.map +1 -0
  33. package/dist/client/chunks/{chart-config-pie-BM5lgH-w.js → chart-config-pie-DlHa2jTy.js} +2 -1
  34. package/dist/client/chunks/chart-config-pie-DlHa2jTy.js.map +1 -0
  35. package/dist/client/chunks/{chart-config-tree-map-CLmRvvMR.js → chart-config-tree-map-IRAYf9YM.js} +3 -2
  36. package/dist/client/chunks/{chart-config-tree-map-CLmRvvMR.js.map → chart-config-tree-map-IRAYf9YM.js.map} +1 -1
  37. package/dist/client/chunks/{chart-data-table-bclSKgkZ.js → chart-data-table-BcH_h6kZ.js} +3 -3
  38. package/dist/client/chunks/{chart-data-table-bclSKgkZ.js.map → chart-data-table-BcH_h6kZ.js.map} +1 -1
  39. package/dist/client/chunks/{chart-funnel-FvDvq015.js → chart-funnel-DI8RMacf.js} +3 -3
  40. package/dist/client/chunks/chart-funnel-DI8RMacf.js.map +1 -0
  41. package/dist/client/chunks/{chart-heat-map-GpFE-PFB.js → chart-heat-map-D3xNV9ep.js} +2 -2
  42. package/dist/client/chunks/{chart-heat-map-GpFE-PFB.js.map → chart-heat-map-D3xNV9ep.js.map} +1 -1
  43. package/dist/client/chunks/{chart-kpi-delta-jmz-CK8X.js → chart-kpi-delta-BJMQKPor.js} +3 -3
  44. package/dist/client/chunks/{chart-kpi-delta-jmz-CK8X.js.map → chart-kpi-delta-BJMQKPor.js.map} +1 -1
  45. package/dist/client/chunks/{chart-kpi-number-DbSmomE8.js → chart-kpi-number-B8u4tWmu.js} +2 -2
  46. package/dist/client/chunks/{chart-kpi-number-DbSmomE8.js.map → chart-kpi-number-B8u4tWmu.js.map} +1 -1
  47. package/dist/client/chunks/{chart-kpi-text-erI9U7PZ.js → chart-kpi-text--r1d4zAz.js} +3 -3
  48. package/dist/client/chunks/{chart-kpi-text-erI9U7PZ.js.map → chart-kpi-text--r1d4zAz.js.map} +1 -1
  49. package/dist/client/chunks/chart-line-K0ACw4cV.js +413 -0
  50. package/dist/client/chunks/chart-line-K0ACw4cV.js.map +1 -0
  51. package/dist/client/chunks/chart-pie-DC7axSwd.js +137 -0
  52. package/dist/client/chunks/chart-pie-DC7axSwd.js.map +1 -0
  53. package/dist/client/chunks/{chart-radar-BE6xsFiF.js → chart-radar-BDKgpLw5.js} +33 -33
  54. package/dist/client/chunks/chart-radar-BDKgpLw5.js.map +1 -0
  55. package/dist/client/chunks/{chart-radial-bar-BEEwtFDc.js → chart-radial-bar-BYNng7Nz.js} +7 -6
  56. package/dist/client/chunks/chart-radial-bar-BYNng7Nz.js.map +1 -0
  57. package/dist/client/chunks/{chart-sankey-Dt3KaYrH.js → chart-sankey-CpsKerey.js} +2 -2
  58. package/dist/client/chunks/{chart-sankey-Dt3KaYrH.js.map → chart-sankey-CpsKerey.js.map} +1 -1
  59. package/dist/client/chunks/{chart-scatter-gAlYkQcW.js → chart-scatter-CXqFltJg.js} +11 -11
  60. package/dist/client/chunks/chart-scatter-CXqFltJg.js.map +1 -0
  61. package/dist/client/chunks/{chart-sunburst-D0Lvdjwu.js → chart-sunburst-DSsO2CzY.js} +2 -2
  62. package/dist/client/chunks/{chart-sunburst-D0Lvdjwu.js.map → chart-sunburst-DSsO2CzY.js.map} +1 -1
  63. package/dist/client/chunks/{chart-tree-map-Bv_PYe0c.js → chart-tree-map-D_SeBBD-.js} +77 -57
  64. package/dist/client/chunks/chart-tree-map-D_SeBBD-.js.map +1 -0
  65. package/dist/client/chunks/{chartConfigRegistry-BumUIPw4.js → chartConfigRegistry-DNEbwgTc.js} +6 -6
  66. package/dist/client/chunks/{chartConfigRegistry-BumUIPw4.js.map → chartConfigRegistry-DNEbwgTc.js.map} +1 -1
  67. package/dist/client/chunks/{charts-DqWRT0TE.js → charts-T6qNi6FO.js} +17 -17
  68. package/dist/client/chunks/charts-T6qNi6FO.js.map +1 -0
  69. package/dist/client/chunks/{charts-core-BfxnhMfd.js → charts-core-8jDh3mKC.js} +64 -63
  70. package/dist/client/chunks/charts-core-8jDh3mKC.js.map +1 -0
  71. package/dist/client/chunks/{charts-loader-DCGbL50r.js → charts-loader-DpJr9z2e.js} +20 -20
  72. package/dist/client/chunks/{charts-loader-DCGbL50r.js.map → charts-loader-DpJr9z2e.js.map} +1 -1
  73. package/dist/client/chunks/{components-NmBmOEqV.js → components-vl_fdWud.js} +3579 -2880
  74. package/dist/client/chunks/components-vl_fdWud.js.map +1 -0
  75. package/dist/client/chunks/{hooks-D7APQ8uS.js → hooks-CKYzVf_7.js} +3 -3
  76. package/dist/client/chunks/{hooks-D7APQ8uS.js.map → hooks-CKYzVf_7.js.map} +1 -1
  77. package/dist/client/chunks/{index-CBvXpG92.js → index-_2PSgbkC.js} +270 -261
  78. package/dist/client/chunks/index-_2PSgbkC.js.map +1 -0
  79. package/dist/client/chunks/{providers-Cj7PQfXn.js → providers-BBrUJB2U.js} +2 -2
  80. package/dist/client/chunks/{providers-Cj7PQfXn.js.map → providers-BBrUJB2U.js.map} +1 -1
  81. package/dist/client/chunks/{useDirtyStateTracking-ZSi3voVl.js → useDirtyStateTracking-DDQ_Lbki.js} +2 -2
  82. package/dist/client/chunks/{useDirtyStateTracking-ZSi3voVl.js.map → useDirtyStateTracking-DDQ_Lbki.js.map} +1 -1
  83. package/dist/client/components/DrillBreadcrumb.d.ts +6 -0
  84. package/dist/client/components/DrillMenu.d.ts +8 -0
  85. package/dist/client/components/charts/AngledXAxisTick.d.ts +19 -0
  86. package/dist/client/components.js +2 -2
  87. package/dist/client/hooks/useDrillInteraction.d.ts +9 -0
  88. package/dist/client/hooks.js +3 -3
  89. package/dist/client/index.js +9 -9
  90. package/dist/client/providers.js +1 -1
  91. package/dist/client/styles.css +1 -1
  92. package/dist/client/types/drill.d.ts +240 -0
  93. package/dist/client/types.d.ts +53 -2
  94. package/dist/client/utils/drillQueryBuilder.d.ts +41 -0
  95. package/dist/client-bundle-stats.html +1 -1
  96. package/dist/server/index.cjs +31 -31
  97. package/dist/server/index.d.ts +78 -0
  98. package/dist/server/index.js +2730 -2689
  99. package/package.json +6 -3
  100. package/dist/adapters/mcp-transport-B37JTeww.cjs +0 -275
  101. package/dist/client/chunks/RetentionCombinedChart-DsWhPI0q.js.map +0 -1
  102. package/dist/client/chunks/chart-activity-grid-BUc21L0U.js.map +0 -1
  103. package/dist/client/chunks/chart-area-B_64FScj.js +0 -190
  104. package/dist/client/chunks/chart-area-B_64FScj.js.map +0 -1
  105. package/dist/client/chunks/chart-bar-Ctiy2tpQ.js +0 -216
  106. package/dist/client/chunks/chart-bar-Ctiy2tpQ.js.map +0 -1
  107. package/dist/client/chunks/chart-config-bar-BJKGnfLt.js.map +0 -1
  108. package/dist/client/chunks/chart-config-line-DR0ThxZy.js.map +0 -1
  109. package/dist/client/chunks/chart-config-pie-BM5lgH-w.js.map +0 -1
  110. package/dist/client/chunks/chart-funnel-FvDvq015.js.map +0 -1
  111. package/dist/client/chunks/chart-line-B0YOZ88n.js +0 -364
  112. package/dist/client/chunks/chart-line-B0YOZ88n.js.map +0 -1
  113. package/dist/client/chunks/chart-pie-CImB6r4F.js +0 -125
  114. package/dist/client/chunks/chart-pie-CImB6r4F.js.map +0 -1
  115. package/dist/client/chunks/chart-radar-BE6xsFiF.js.map +0 -1
  116. package/dist/client/chunks/chart-radial-bar-BEEwtFDc.js.map +0 -1
  117. package/dist/client/chunks/chart-scatter-gAlYkQcW.js.map +0 -1
  118. package/dist/client/chunks/chart-tree-map-Bv_PYe0c.js.map +0 -1
  119. package/dist/client/chunks/charts-DqWRT0TE.js.map +0 -1
  120. package/dist/client/chunks/charts-core-BfxnhMfd.js.map +0 -1
  121. package/dist/client/chunks/components-NmBmOEqV.js.map +0 -1
  122. package/dist/client/chunks/index-CBvXpG92.js.map +0 -1
@@ -352,6 +352,12 @@ declare interface Cube {
352
352
  measures: Record<string, Measure>;
353
353
  /** Optional joins to other cubes for multi-cube queries */
354
354
  joins?: Record<string, CubeJoin>;
355
+ /**
356
+ * Hierarchies for structured drill-down paths
357
+ * Groups dimensions into levels for navigation (e.g., country -> region -> city)
358
+ * A dimension can appear in multiple hierarchies
359
+ */
360
+ hierarchies?: Record<string, Hierarchy>;
355
361
  /** Whether cube is publicly accessible */
356
362
  public?: boolean;
357
363
  /** SQL alias for the cube */
@@ -484,6 +490,11 @@ export declare interface CubeMetadata {
484
490
  dimensions: DimensionMetadata[];
485
491
  segments: any[];
486
492
  relationships?: CubeRelationshipMetadata[];
493
+ /**
494
+ * Hierarchies for structured drill-down paths
495
+ * Enables navigation through dimension levels (e.g., country -> region -> city)
496
+ */
497
+ hierarchies?: HierarchyMetadata[];
487
498
  /** Additional cube metadata (e.g., eventStream configuration for funnel queries) */
488
499
  meta?: Record<string, any>;
489
500
  }
@@ -751,6 +762,13 @@ declare interface Dimension {
751
762
  format?: string;
752
763
  /** Additional metadata */
753
764
  meta?: Record<string, any>;
765
+ /**
766
+ * Supported granularities for time dimensions
767
+ * If not specified for time dimensions, defaults to ['year', 'quarter', 'month', 'week', 'day']
768
+ * Only applies when type is 'time'
769
+ * @example ['year', 'quarter', 'month', 'day'] for a custom subset
770
+ */
771
+ granularities?: TimeGranularity[];
754
772
  }
755
773
  export { Dimension }
756
774
  export { Dimension as SemanticDimension }
@@ -779,6 +797,12 @@ export declare interface DimensionMetadata {
779
797
  * Used by AI agents for natural language matching
780
798
  */
781
799
  synonyms?: string[];
800
+ /**
801
+ * Supported granularities for time dimensions
802
+ * Only present when type is 'time'
803
+ * Used for time-based drill-down (year -> quarter -> month -> week -> day)
804
+ */
805
+ granularities?: TimeGranularity[];
782
806
  }
783
807
 
784
808
  export declare type DimensionType = 'string' | 'number' | 'time' | 'boolean';
@@ -1348,6 +1372,40 @@ export declare function getCubeInvalidationPattern(cubeName: string, keyPrefix?:
1348
1372
  */
1349
1373
  export declare function getJoinType(relationship: string, override?: string): string;
1350
1374
 
1375
+ /**
1376
+ * Hierarchy definition for grouped drill-down paths
1377
+ * Groups dimensions into ordered levels for structured navigation
1378
+ */
1379
+ export declare interface Hierarchy {
1380
+ /** Unique identifier for the hierarchy */
1381
+ name: string;
1382
+ /** Display title for the hierarchy */
1383
+ title?: string;
1384
+ /**
1385
+ * Dimension names in order from least to most granular
1386
+ * @example ['country', 'region', 'city'] for geographic hierarchy
1387
+ * @example ['category', 'subcategory', 'product'] for product hierarchy
1388
+ */
1389
+ levels: string[];
1390
+ }
1391
+
1392
+ /**
1393
+ * Hierarchy metadata for structured drill-down paths
1394
+ */
1395
+ export declare interface HierarchyMetadata {
1396
+ /** Unique identifier for the hierarchy */
1397
+ name: string;
1398
+ /** Display title for the hierarchy */
1399
+ title: string;
1400
+ /** Cube name this hierarchy belongs to */
1401
+ cubeName: string;
1402
+ /**
1403
+ * Full dimension names in order from least to most granular
1404
+ * Format: "CubeName.dimensionName"
1405
+ */
1406
+ levels: string[];
1407
+ }
1408
+
1351
1409
  /**
1352
1410
  * Information about a database index
1353
1411
  */
@@ -1516,6 +1574,14 @@ declare interface Measure {
1516
1574
  dependencies?: string[];
1517
1575
  /** Additional metadata */
1518
1576
  meta?: Record<string, any>;
1577
+ /**
1578
+ * Dimension names shown when drilling into this measure
1579
+ * Can include cross-cube dimensions via joins (e.g., 'Products.name', 'Users.email')
1580
+ * If not specified, drilling is disabled for this measure
1581
+ * @example ['id', 'status', 'createdAt'] for same-cube dimensions
1582
+ * @example ['Orders.id', 'Products.name', 'Users.city'] for cross-cube dimensions
1583
+ */
1584
+ drillMembers?: string[];
1519
1585
  /**
1520
1586
  * Statistical function configuration
1521
1587
  * Used for percentile, stddev, variance measure types
@@ -1615,6 +1681,12 @@ export declare interface MeasureMetadata {
1615
1681
  * Used by AI agents for natural language matching
1616
1682
  */
1617
1683
  synonyms?: string[];
1684
+ /**
1685
+ * Dimension names shown when drilling into this measure
1686
+ * Full names like "CubeName.dimensionName" for cross-cube support
1687
+ * If not specified, drilling is disabled for this measure
1688
+ */
1689
+ drillMembers?: string[];
1618
1690
  }
1619
1691
 
1620
1692
  /**
@@ -2788,9 +2860,15 @@ export declare class SemanticLayerCompiler {
2788
2860
  * Handles different column types and extracts the actual column name
2789
2861
  */
2790
2862
  private getColumnName;
2863
+ /**
2864
+ * Default time granularities for time dimensions (ordered from least to most granular)
2865
+ * Used when dimension.granularities is not specified
2866
+ */
2867
+ private static readonly DEFAULT_TIME_GRANULARITIES;
2791
2868
  /**
2792
2869
  * Generate cube metadata for API responses from cubes
2793
2870
  * Optimized version that minimizes object iterations
2871
+ * Includes drill-down support: drillMembers on measures, granularities on time dimensions, hierarchies
2794
2872
  */
2795
2873
  private generateCubeMetadata;
2796
2874
  /**