drizzle-cube 0.4.2 → 0.4.4

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 (100) 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-BqLo4hKi.cjs +257 -0
  8. package/dist/adapters/{mcp-transport-Dmolep14.js → mcp-transport-YHDZWKOi.js} +1727 -1624
  9. package/dist/adapters/nextjs/index.cjs +1 -1
  10. package/dist/adapters/nextjs/index.js +1 -1
  11. package/dist/client/charts.js +13 -13
  12. package/dist/client/chunks/{RetentionCombinedChart-7bGP_ozM.js → RetentionCombinedChart-BK8N-MOQ.js} +2 -2
  13. package/dist/client/chunks/{RetentionCombinedChart-7bGP_ozM.js.map → RetentionCombinedChart-BK8N-MOQ.js.map} +1 -1
  14. package/dist/client/chunks/{analysis-builder-CIuNLos1.js → analysis-builder-CNBmAGAO.js} +8 -9
  15. package/dist/client/chunks/{analysis-builder-CIuNLos1.js.map → analysis-builder-CNBmAGAO.js.map} +1 -1
  16. package/dist/client/chunks/{analysis-builder-shared-gky0SKQH.js → analysis-builder-shared-INGGwyTG.js} +6 -6
  17. package/dist/client/chunks/{analysis-builder-shared-gky0SKQH.js.map → analysis-builder-shared-INGGwyTG.js.map} +1 -1
  18. package/dist/client/chunks/{chart-activity-grid-sUkuCJzm.js → chart-activity-grid-DvgTYQaE.js} +2 -2
  19. package/dist/client/chunks/{chart-activity-grid-sUkuCJzm.js.map → chart-activity-grid-DvgTYQaE.js.map} +1 -1
  20. package/dist/client/chunks/{chart-area-C4DIi9k_.js → chart-area-BKjd_STS.js} +3 -3
  21. package/dist/client/chunks/{chart-area-C4DIi9k_.js.map → chart-area-BKjd_STS.js.map} +1 -1
  22. package/dist/client/chunks/{chart-bar-7ZleGCsN.js → chart-bar-DBI41w05.js} +2 -2
  23. package/dist/client/chunks/{chart-bar-7ZleGCsN.js.map → chart-bar-DBI41w05.js.map} +1 -1
  24. package/dist/client/chunks/{chart-bubble-D-auWIjP.js → chart-bubble-BD-1kneU.js} +2 -2
  25. package/dist/client/chunks/{chart-bubble-D-auWIjP.js.map → chart-bubble-BD-1kneU.js.map} +1 -1
  26. package/dist/client/chunks/{chart-config-markdown-DZxdGNVQ.js → chart-config-markdown-6fsr-U6_.js} +38 -8
  27. package/dist/client/chunks/chart-config-markdown-6fsr-U6_.js.map +1 -0
  28. package/dist/client/chunks/{chart-data-table-DW6VNGeW.js → chart-data-table-B74HLpAx.js} +3 -3
  29. package/dist/client/chunks/{chart-data-table-DW6VNGeW.js.map → chart-data-table-B74HLpAx.js.map} +1 -1
  30. package/dist/client/chunks/{chart-funnel-eUJApzmA.js → chart-funnel-DQ9cW6j9.js} +2 -2
  31. package/dist/client/chunks/{chart-funnel-eUJApzmA.js.map → chart-funnel-DQ9cW6j9.js.map} +1 -1
  32. package/dist/client/chunks/{chart-heat-map-DR3O3GXx.js → chart-heat-map-CpIr4tbs.js} +2 -2
  33. package/dist/client/chunks/{chart-heat-map-DR3O3GXx.js.map → chart-heat-map-CpIr4tbs.js.map} +1 -1
  34. package/dist/client/chunks/{chart-kpi-delta-Bp9Yrgyc.js → chart-kpi-delta-DPcSazD3.js} +3 -3
  35. package/dist/client/chunks/{chart-kpi-delta-Bp9Yrgyc.js.map → chart-kpi-delta-DPcSazD3.js.map} +1 -1
  36. package/dist/client/chunks/{chart-kpi-number-B3yvgbr-.js → chart-kpi-number-D62PzKZ1.js} +2 -2
  37. package/dist/client/chunks/{chart-kpi-number-B3yvgbr-.js.map → chart-kpi-number-D62PzKZ1.js.map} +1 -1
  38. package/dist/client/chunks/{chart-kpi-text-D0TsUiaO.js → chart-kpi-text-B6Z5tFV1.js} +3 -3
  39. package/dist/client/chunks/{chart-kpi-text-D0TsUiaO.js.map → chart-kpi-text-B6Z5tFV1.js.map} +1 -1
  40. package/dist/client/chunks/{chart-line-C7VStgaJ.js → chart-line-Ds4BYA0K.js} +3 -3
  41. package/dist/client/chunks/{chart-line-C7VStgaJ.js.map → chart-line-Ds4BYA0K.js.map} +1 -1
  42. package/dist/client/chunks/chart-markdown-Rq6ORisB.js +276 -0
  43. package/dist/client/chunks/chart-markdown-Rq6ORisB.js.map +1 -0
  44. package/dist/client/chunks/{chart-pie-DPdYJSM3.js → chart-pie-BBrLh0iU.js} +2 -2
  45. package/dist/client/chunks/{chart-pie-DPdYJSM3.js.map → chart-pie-BBrLh0iU.js.map} +1 -1
  46. package/dist/client/chunks/{chart-radar-DF6VNSiC.js → chart-radar-vr5FgjHT.js} +2 -2
  47. package/dist/client/chunks/{chart-radar-DF6VNSiC.js.map → chart-radar-vr5FgjHT.js.map} +1 -1
  48. package/dist/client/chunks/{chart-radial-bar-7Ttfz-kO.js → chart-radial-bar-BV_3Nm5P.js} +2 -2
  49. package/dist/client/chunks/{chart-radial-bar-7Ttfz-kO.js.map → chart-radial-bar-BV_3Nm5P.js.map} +1 -1
  50. package/dist/client/chunks/{chart-sankey-D86RYk9B.js → chart-sankey-CHROzr4S.js} +2 -2
  51. package/dist/client/chunks/{chart-sankey-D86RYk9B.js.map → chart-sankey-CHROzr4S.js.map} +1 -1
  52. package/dist/client/chunks/{chart-scatter-BUnIiLr_.js → chart-scatter-DbRTU3FG.js} +2 -2
  53. package/dist/client/chunks/{chart-scatter-BUnIiLr_.js.map → chart-scatter-DbRTU3FG.js.map} +1 -1
  54. package/dist/client/chunks/{chart-sunburst-CsHlHfZQ.js → chart-sunburst-B-aPUzYL.js} +2 -2
  55. package/dist/client/chunks/{chart-sunburst-CsHlHfZQ.js.map → chart-sunburst-B-aPUzYL.js.map} +1 -1
  56. package/dist/client/chunks/{chart-tree-map-DFAbkeo1.js → chart-tree-map-qY148fiC.js} +2 -2
  57. package/dist/client/chunks/{chart-tree-map-DFAbkeo1.js.map → chart-tree-map-qY148fiC.js.map} +1 -1
  58. package/dist/client/chunks/{chartConfigRegistry-DNEbwgTc.js → chartConfigRegistry-Di34paQH.js} +2 -2
  59. package/dist/client/chunks/{chartConfigRegistry-DNEbwgTc.js.map → chartConfigRegistry-Di34paQH.js.map} +1 -1
  60. package/dist/client/chunks/{charts-core-DAF1iT_h.js → charts-core-T8UglYyq.js} +224 -224
  61. package/dist/client/chunks/charts-core-T8UglYyq.js.map +1 -0
  62. package/dist/client/chunks/{charts-loader-7pEaEz-f.js → charts-loader-YnhJHubD.js} +21 -21
  63. package/dist/client/chunks/{charts-loader-7pEaEz-f.js.map → charts-loader-YnhJHubD.js.map} +1 -1
  64. package/dist/client/chunks/components-D0i1yQsk.js +9835 -0
  65. package/dist/client/chunks/components-D0i1yQsk.js.map +1 -0
  66. package/dist/client/chunks/{core-DGLxd5v5.js → core-D_8mkGpQ.js} +2 -2
  67. package/dist/client/chunks/{core-DGLxd5v5.js.map → core-D_8mkGpQ.js.map} +1 -1
  68. package/dist/client/chunks/{providers-D2xswCYu.js → providers-CgxXm6Ll.js} +2 -2
  69. package/dist/client/chunks/{providers-D2xswCYu.js.map → providers-CgxXm6Ll.js.map} +1 -1
  70. package/dist/client/chunks/{syntaxHighlighting-DAT9C6Ss.js → syntaxHighlighting-BQfjio-i.js} +2 -2
  71. package/dist/client/chunks/{syntaxHighlighting-DAT9C6Ss.js.map → syntaxHighlighting-BQfjio-i.js.map} +1 -1
  72. package/dist/client/chunks/{useDirtyStateTracking-CTS_m9mg.js → useDirtyStateTracking-Cu1HSjmo.js} +9 -9
  73. package/dist/client/chunks/{useDirtyStateTracking-CTS_m9mg.js.map → useDirtyStateTracking-Cu1HSjmo.js.map} +1 -1
  74. package/dist/client/chunks/{vendor-DfDLOfBe.js → vendor-AVsJ2ni0.js} +4 -4
  75. package/dist/client/chunks/{vendor-DfDLOfBe.js.map → vendor-AVsJ2ni0.js.map} +1 -1
  76. package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +3 -1
  77. package/dist/client/components/FloatingEditToolbar.d.ts +3 -1
  78. package/dist/client/components/TextPortletModal.d.ts +12 -0
  79. package/dist/client/components.js +15 -352
  80. package/dist/client/components.js.map +1 -1
  81. package/dist/client/hooks/useDashboardHook.d.ts +7 -2
  82. package/dist/client/hooks.js +23 -23
  83. package/dist/client/index.js +8 -8
  84. package/dist/client/providers.js +1 -1
  85. package/dist/client/stores/dashboardStore.d.ts +14 -0
  86. package/dist/client/styles.css +1 -1
  87. package/dist/client/types.d.ts +3 -0
  88. package/dist/client/utils.js +6 -6
  89. package/dist/client-bundle-stats.html +1 -1
  90. package/dist/server/index.cjs +83 -83
  91. package/dist/server/index.d.ts +26 -2
  92. package/dist/server/index.js +3034 -2931
  93. package/package.json +1 -1
  94. package/dist/adapters/mcp-transport-h__yKJm9.cjs +0 -257
  95. package/dist/client/chunks/DashboardEditModal-D6TDeTBa.js +0 -9165
  96. package/dist/client/chunks/DashboardEditModal-D6TDeTBa.js.map +0 -1
  97. package/dist/client/chunks/chart-config-markdown-DZxdGNVQ.js.map +0 -1
  98. package/dist/client/chunks/chart-markdown-Cget3iEq.js +0 -257
  99. package/dist/client/chunks/chart-markdown-Cget3iEq.js.map +0 -1
  100. package/dist/client/chunks/charts-core-DAF1iT_h.js.map +0 -1
@@ -2138,6 +2138,8 @@ declare interface InternalJoinPathStep {
2138
2138
  toCube: string;
2139
2139
  /** The join definition from the source cube */
2140
2140
  joinDef: CubeJoin;
2141
+ /** True when this step was discovered via a reversed edge (target cube defines the join back to source) */
2142
+ reversed?: boolean;
2141
2143
  }
2142
2144
 
2143
2145
  /**
@@ -2259,15 +2261,30 @@ export declare interface JoinPathAnalysis {
2259
2261
  }
2260
2262
 
2261
2263
  /**
2262
- * Resolves join paths between cubes and manages connectivity caching
2264
+ * Resolves join paths between cubes and manages connectivity caching.
2265
+ * Supports bidirectional path finding: both forward (outgoing) joins and
2266
+ * reverse (incoming) joins are traversable. Reversed steps are marked with
2267
+ * `reversed: true` so downstream code can adjust join type and analysis.
2263
2268
  */
2264
2269
  export declare class JoinPathResolver {
2265
2270
  private cubes;
2266
2271
  private connectivityCache;
2272
+ /** Maps cubeName → joins that TARGET that cube (incoming edges) */
2273
+ private reverseIndex;
2267
2274
  /**
2268
2275
  * @param cubes Map of cube name to cube definition
2269
2276
  */
2270
2277
  constructor(cubes: Map<string, Cube>);
2278
+ /**
2279
+ * Build reverse adjacency index: for each cube's outgoing join A→B,
2280
+ * store an entry under B pointing back to A.
2281
+ *
2282
+ * Excludes belongsToMany joins because reversing them requires swapping
2283
+ * sourceKey/targetKey in the junction table configuration, which is
2284
+ * error-prone. The 2-hop forward path through the junction table handles
2285
+ * these relationships correctly.
2286
+ */
2287
+ private buildReverseIndex;
2271
2288
  /**
2272
2289
  * Find the shortest join path from source cube to target cube
2273
2290
  * Uses BFS algorithm for optimal path discovery
@@ -2324,6 +2341,11 @@ export declare class JoinPathResolver {
2324
2341
  * @returns true if all cubes are reachable
2325
2342
  */
2326
2343
  canReachAll(fromCube: string, allCubes: string[]): boolean;
2344
+ /**
2345
+ * Forward-only path finding (no reverse edges).
2346
+ * Used by canReachAll for primary cube selection to preserve join semantics.
2347
+ */
2348
+ private findForwardOnlyPath;
2327
2349
  /**
2328
2350
  * Build SQL join condition from join definition
2329
2351
  *
@@ -2354,7 +2376,7 @@ export declare interface JoinPathStep {
2354
2376
  fromCube: string;
2355
2377
  /** Target cube name */
2356
2378
  toCube: string;
2357
- /** Relationship type used */
2379
+ /** Relationship type used (effective, after reversal if applicable) */
2358
2380
  relationship: 'belongsTo' | 'hasOne' | 'hasMany' | 'belongsToMany';
2359
2381
  /** SQL join type that will be used */
2360
2382
  joinType: 'inner' | 'left' | 'right' | 'full';
@@ -2369,6 +2391,8 @@ export declare interface JoinPathStep {
2369
2391
  sourceColumns: string[];
2370
2392
  targetColumns: string[];
2371
2393
  };
2394
+ /** True when this step was discovered via a reversed edge */
2395
+ reversed?: boolean;
2372
2396
  }
2373
2397
 
2374
2398
  declare interface JoinRef {