drizzle-cube 0.4.30 → 0.4.32

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 (119) hide show
  1. package/dist/adapters/express/index.cjs +1 -1
  2. package/dist/adapters/express/index.d.ts +1 -1
  3. package/dist/adapters/express/index.js +7 -7
  4. package/dist/adapters/fastify/index.cjs +1 -1
  5. package/dist/adapters/fastify/index.d.ts +1 -1
  6. package/dist/adapters/fastify/index.js +7 -7
  7. package/dist/adapters/{handler-B8vuFQYP.cjs → handler-ClgB__a-.cjs} +2 -2
  8. package/dist/adapters/{handler-D-2-6uLM.js → handler-rPpxuopb.js} +4 -4
  9. package/dist/adapters/hono/index.cjs +1 -1
  10. package/dist/adapters/hono/index.d.ts +1 -1
  11. package/dist/adapters/hono/index.js +3 -3
  12. package/dist/adapters/mcp-transport-DPpei63d.cjs +255 -0
  13. package/dist/adapters/{mcp-transport-CuugoG8t.js → mcp-transport-DWSNkwUY.js} +1588 -962
  14. package/dist/adapters/nextjs/index.cjs +1 -1
  15. package/dist/adapters/nextjs/index.d.ts +1 -1
  16. package/dist/adapters/nextjs/index.js +3 -3
  17. package/dist/adapters/{openai-DhLE0A9Z.cjs → openai-Bc8qwEKW.cjs} +1 -1
  18. package/dist/adapters/openai-C96O8M75.cjs +16 -0
  19. package/dist/adapters/{openai-CjBvA6mK.js → openai-Ckpe7iU7.js} +659 -637
  20. package/dist/adapters/{openai-Zjw4Zo4R.js → openai-DxeVtl8X.js} +1 -1
  21. package/dist/adapters/{utils-ChhNGUOF.js → utils-B7VkyzMv.js} +7 -3
  22. package/dist/adapters/{utils-CwJplXR5.cjs → utils-BLFzzCI9.cjs} +1 -1
  23. package/dist/adapters/utils.cjs +1 -1
  24. package/dist/adapters/utils.d.ts +1 -1
  25. package/dist/adapters/utils.js +1 -1
  26. package/dist/client/charts.js +13 -13
  27. package/dist/client/chunks/{DashboardEditModal-C076pscL.js → DashboardEditModal-DenRJiYr.js} +11 -11
  28. package/dist/client/chunks/{DashboardEditModal-C076pscL.js.map → DashboardEditModal-DenRJiYr.js.map} +1 -1
  29. package/dist/client/chunks/{FieldSearchModal-C0DjSWk3.js → FieldSearchModal-BQS1v1up.js} +3 -3
  30. package/dist/client/chunks/{FieldSearchModal-C0DjSWk3.js.map → FieldSearchModal-BQS1v1up.js.map} +1 -1
  31. package/dist/client/chunks/{RetentionCombinedChart-DuGXc-AP.js → RetentionCombinedChart-D4Yf1TnQ.js} +3 -3
  32. package/dist/client/chunks/{RetentionCombinedChart-DuGXc-AP.js.map → RetentionCombinedChart-D4Yf1TnQ.js.map} +1 -1
  33. package/dist/client/chunks/{analysis-builder-DF0XntqC.js → analysis-builder-DG38V1gO.js} +14 -20
  34. package/dist/client/chunks/{analysis-builder-DF0XntqC.js.map → analysis-builder-DG38V1gO.js.map} +1 -1
  35. package/dist/client/chunks/{analysis-builder-shared-2QhKYbs6.js → analysis-builder-shared-DaFu78dk.js} +19 -17
  36. package/dist/client/chunks/analysis-builder-shared-DaFu78dk.js.map +1 -0
  37. package/dist/client/chunks/{chart-activity-grid-CNES9VBk.js → chart-activity-grid-wR2Twpo7.js} +9 -6
  38. package/dist/client/chunks/chart-activity-grid-wR2Twpo7.js.map +1 -0
  39. package/dist/client/chunks/{chart-area-CRJc3KOu.js → chart-area-e9ysnatQ.js} +2 -2
  40. package/dist/client/chunks/{chart-area-CRJc3KOu.js.map → chart-area-e9ysnatQ.js.map} +1 -1
  41. package/dist/client/chunks/{chart-bar-DD2PjJ5n.js → chart-bar-Bx4oKlqo.js} +3 -3
  42. package/dist/client/chunks/{chart-bar-DD2PjJ5n.js.map → chart-bar-Bx4oKlqo.js.map} +1 -1
  43. package/dist/client/chunks/{chart-box-plot-BcqleldJ.js → chart-box-plot-CVIi1aM5.js} +2 -2
  44. package/dist/client/chunks/{chart-box-plot-BcqleldJ.js.map → chart-box-plot-CVIi1aM5.js.map} +1 -1
  45. package/dist/client/chunks/{chart-bubble-BmQkVk4K.js → chart-bubble-DvyG15UB.js} +2 -2
  46. package/dist/client/chunks/{chart-bubble-BmQkVk4K.js.map → chart-bubble-DvyG15UB.js.map} +1 -1
  47. package/dist/client/chunks/{chart-candlestick-C3Rep469.js → chart-candlestick-caHyxB9O.js} +2 -2
  48. package/dist/client/chunks/{chart-candlestick-C3Rep469.js.map → chart-candlestick-caHyxB9O.js.map} +1 -1
  49. package/dist/client/chunks/{chart-data-table-DehW1C1G.js → chart-data-table-B2m_6EZe.js} +2 -2
  50. package/dist/client/chunks/{chart-data-table-DehW1C1G.js.map → chart-data-table-B2m_6EZe.js.map} +1 -1
  51. package/dist/client/chunks/{chart-funnel-BjkpnG5g.js → chart-funnel-C9JRW79j.js} +2 -2
  52. package/dist/client/chunks/{chart-funnel-BjkpnG5g.js.map → chart-funnel-C9JRW79j.js.map} +1 -1
  53. package/dist/client/chunks/{chart-gauge-BWW_HEfg.js → chart-gauge-BLLJqeXo.js} +2 -2
  54. package/dist/client/chunks/{chart-gauge-BWW_HEfg.js.map → chart-gauge-BLLJqeXo.js.map} +1 -1
  55. package/dist/client/chunks/{chart-heat-map-BWuOuDcm.js → chart-heat-map-f2fM2mDC.js} +2 -2
  56. package/dist/client/chunks/{chart-heat-map-BWuOuDcm.js.map → chart-heat-map-f2fM2mDC.js.map} +1 -1
  57. package/dist/client/chunks/{chart-kpi-delta-D5OHtDJx.js → chart-kpi-delta-S6qDEoJO.js} +3 -3
  58. package/dist/client/chunks/{chart-kpi-delta-D5OHtDJx.js.map → chart-kpi-delta-S6qDEoJO.js.map} +1 -1
  59. package/dist/client/chunks/{chart-kpi-number-C9zH-aKC.js → chart-kpi-number-CEUBsVW2.js} +5 -5
  60. package/dist/client/chunks/{chart-kpi-number-C9zH-aKC.js.map → chart-kpi-number-CEUBsVW2.js.map} +1 -1
  61. package/dist/client/chunks/{chart-kpi-text-ChVn3S7j.js → chart-kpi-text-DgRig_jQ.js} +3 -3
  62. package/dist/client/chunks/{chart-kpi-text-ChVn3S7j.js.map → chart-kpi-text-DgRig_jQ.js.map} +1 -1
  63. package/dist/client/chunks/{chart-line-DOIMkP0b.js → chart-line-CPhQRMZ7.js} +4 -3
  64. package/dist/client/chunks/chart-line-CPhQRMZ7.js.map +1 -0
  65. package/dist/client/chunks/{chart-measure-profile-C6wrr9il.js → chart-measure-profile-CVlqGslU.js} +3 -3
  66. package/dist/client/chunks/{chart-measure-profile-C6wrr9il.js.map → chart-measure-profile-CVlqGslU.js.map} +1 -1
  67. package/dist/client/chunks/{chart-pie-BU_FgwDc.js → chart-pie-DafSc9sE.js} +3 -3
  68. package/dist/client/chunks/{chart-pie-BU_FgwDc.js.map → chart-pie-DafSc9sE.js.map} +1 -1
  69. package/dist/client/chunks/{chart-radar-DlufwnAX.js → chart-radar-Dz9F5k-B.js} +3 -3
  70. package/dist/client/chunks/{chart-radar-DlufwnAX.js.map → chart-radar-Dz9F5k-B.js.map} +1 -1
  71. package/dist/client/chunks/{chart-radial-bar-B5vS_Aw5.js → chart-radial-bar-N3MNUL7o.js} +3 -3
  72. package/dist/client/chunks/{chart-radial-bar-B5vS_Aw5.js.map → chart-radial-bar-N3MNUL7o.js.map} +1 -1
  73. package/dist/client/chunks/{chart-sankey-FChb26UX.js → chart-sankey-8nRYnupt.js} +2 -2
  74. package/dist/client/chunks/{chart-sankey-FChb26UX.js.map → chart-sankey-8nRYnupt.js.map} +1 -1
  75. package/dist/client/chunks/{chart-scatter-DW0cAZ2H.js → chart-scatter-J2JNi88S.js} +3 -3
  76. package/dist/client/chunks/{chart-scatter-DW0cAZ2H.js.map → chart-scatter-J2JNi88S.js.map} +1 -1
  77. package/dist/client/chunks/{chart-sunburst-Clf-6WxW.js → chart-sunburst-D1NFQjqk.js} +3 -3
  78. package/dist/client/chunks/{chart-sunburst-Clf-6WxW.js.map → chart-sunburst-D1NFQjqk.js.map} +1 -1
  79. package/dist/client/chunks/{chart-tree-map-p_VwUJPF.js → chart-tree-map-CbYjko2s.js} +3 -3
  80. package/dist/client/chunks/{chart-tree-map-p_VwUJPF.js.map → chart-tree-map-CbYjko2s.js.map} +1 -1
  81. package/dist/client/chunks/{chart-waterfall-jt44IQ-w.js → chart-waterfall-Z65TGMUO.js} +3 -3
  82. package/dist/client/chunks/{chart-waterfall-jt44IQ-w.js.map → chart-waterfall-Z65TGMUO.js.map} +1 -1
  83. package/dist/client/chunks/{charts-core-CUVzf4cV.js → charts-core-CJlGzwsW.js} +2 -2
  84. package/dist/client/chunks/{charts-core-CUVzf4cV.js.map → charts-core-CJlGzwsW.js.map} +1 -1
  85. package/dist/client/chunks/{charts-loader-AGpph8_I.js → charts-loader-BI07yxaQ.js} +25 -25
  86. package/dist/client/chunks/{charts-loader-AGpph8_I.js.map → charts-loader-BI07yxaQ.js.map} +1 -1
  87. package/dist/client/chunks/{schema-visualization-ZugB4Io9.js → schema-visualization-DPL5_Tkh.js} +2 -2
  88. package/dist/client/chunks/{schema-visualization-ZugB4Io9.js.map → schema-visualization-DPL5_Tkh.js.map} +1 -1
  89. package/dist/client/chunks/{useDebounce-BQjNWndQ.js → useDebounce-DkuM7nQk.js} +4 -4
  90. package/dist/client/chunks/{useDebounce-BQjNWndQ.js.map → useDebounce-DkuM7nQk.js.map} +1 -1
  91. package/dist/client/chunks/{useExplainAI-c_bHxZe5.js → useExplainAI-RflLTDVL.js} +7 -7
  92. package/dist/client/chunks/useExplainAI-RflLTDVL.js.map +1 -0
  93. package/dist/client/chunks/{utils-A54Ny29G.js → utils--32ZtfbZ.js} +2 -2
  94. package/dist/client/chunks/{utils-A54Ny29G.js.map → utils--32ZtfbZ.js.map} +1 -1
  95. package/dist/client/chunks/{vendor-CoPBRumI.js → vendor-CZX7UVzM.js} +2 -2
  96. package/dist/client/chunks/{vendor-CoPBRumI.js.map → vendor-CZX7UVzM.js.map} +1 -1
  97. package/dist/client/components/AnalysisBuilder/AnalysisModeErrorBoundary.d.ts +0 -1
  98. package/dist/client/components.js +3 -3
  99. package/dist/client/hooks.js +3 -3
  100. package/dist/client/icons.js +1 -1
  101. package/dist/client/index.js +15 -15
  102. package/dist/client/providers.js +1 -1
  103. package/dist/client/utils.js +5 -5
  104. package/dist/client-bundle-stats.html +1 -1
  105. package/dist/server/index.cjs +42 -40
  106. package/dist/server/index.d.ts +77 -9
  107. package/dist/server/index.js +1868 -1238
  108. package/dist/server/{openai-CLsoLaue.cjs → openai-0HbLlZq6.cjs} +1 -1
  109. package/dist/server/openai-DKpZPCay.cjs +16 -0
  110. package/dist/server/{openai-D1kZ5sdM.js → openai-DnGeU9PT.js} +1 -1
  111. package/dist/server/{openai-BPhmb8mi.js → openai-DqCEogm0.js} +659 -637
  112. package/package.json +24 -4
  113. package/dist/adapters/mcp-transport-Dpp6hdZe.cjs +0 -253
  114. package/dist/adapters/openai-eJBw3LfQ.cjs +0 -16
  115. package/dist/client/chunks/analysis-builder-shared-2QhKYbs6.js.map +0 -1
  116. package/dist/client/chunks/chart-activity-grid-CNES9VBk.js.map +0 -1
  117. package/dist/client/chunks/chart-line-DOIMkP0b.js.map +0 -1
  118. package/dist/client/chunks/useExplainAI-c_bHxZe5.js.map +0 -1
  119. package/dist/server/openai-DkOKbVLC.cjs +0 -16
@@ -241,9 +241,9 @@ export declare abstract class BaseDatabaseExecutor implements DatabaseExecutor {
241
241
  db: DrizzleDatabase;
242
242
  schema?: any | undefined;
243
243
  databaseAdapter: DatabaseAdapter;
244
- constructor(db: DrizzleDatabase, schema?: any | undefined, engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb');
244
+ constructor(db: DrizzleDatabase, schema?: any | undefined, engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake');
245
245
  abstract execute<T = any[]>(query: SQL | any, numericFields?: string[]): Promise<T>;
246
- abstract getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb';
246
+ abstract getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake';
247
247
  abstract explainQuery(sqlString: string, params: unknown[], options?: ExplainOptions): Promise<ExplainResult>;
248
248
  abstract getTableIndexes(tableNames: string[]): Promise<IndexInfo[]>;
249
249
  }
@@ -615,7 +615,12 @@ export declare interface CompiledCube extends Cube {
615
615
  * @param engineType - Optional explicit engine type override
616
616
  * @returns Appropriate database executor
617
617
  */
618
- export declare function createDatabaseExecutor(db: DrizzleDatabase, schema?: any, engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb'): DatabaseExecutor;
618
+ export declare function createDatabaseExecutor(db: DrizzleDatabase, schema?: any, engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake'): DatabaseExecutor;
619
+
620
+ /**
621
+ * Factory function for creating Databend executors
622
+ */
623
+ export declare function createDatabendExecutor(db: DrizzleDatabase, schema?: any): DatabendExecutor;
619
624
 
620
625
  /**
621
626
  * Create a new semantic layer instance with Drizzle integration
@@ -646,6 +651,11 @@ export declare function createMySQLExecutor(db: DrizzleDatabase, schema?: any):
646
651
  */
647
652
  export declare function createPostgresExecutor(db: DrizzleDatabase, schema?: any): PostgresExecutor;
648
653
 
654
+ /**
655
+ * Factory function for creating Snowflake executors
656
+ */
657
+ export declare function createSnowflakeExecutor(db: DrizzleDatabase, schema?: any): SnowflakeExecutor;
658
+
649
659
  /**
650
660
  * Factory function for creating SQLite executors
651
661
  */
@@ -968,7 +978,7 @@ declare interface DatabaseAdapter {
968
978
  /**
969
979
  * Get the database engine type this adapter supports
970
980
  */
971
- getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb';
981
+ getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake';
972
982
  /**
973
983
  * Check if the database supports LATERAL joins
974
984
  * Required for optimized flow queries with index-backed seeks
@@ -1158,6 +1168,10 @@ declare interface DatabaseCapabilities {
1158
1168
  supportsLateralJoins: boolean;
1159
1169
  /** Whether percentile functions work in subqueries against CTEs (false for DuckDB) */
1160
1170
  supportsPercentileSubqueries: boolean;
1171
+ /** Whether derived tables (subqueries) work in FROM clauses inside CTEs (false for Databend) */
1172
+ supportsDerivedTablesInCTE: boolean;
1173
+ /** Whether correlated LATERAL subqueries can reference CTEs (false for Snowflake) */
1174
+ supportsLateralSubqueriesInCTE: boolean;
1161
1175
  }
1162
1176
 
1163
1177
  /**
@@ -1174,13 +1188,40 @@ export declare interface DatabaseExecutor {
1174
1188
  /** Execute a Drizzle SQL query or query object */
1175
1189
  execute<T = any[]>(query: SQL | any, numericFields?: string[]): Promise<T>;
1176
1190
  /** Get the database engine type */
1177
- getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb';
1191
+ getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake';
1178
1192
  /** Execute EXPLAIN on a SQL query to get the execution plan */
1179
1193
  explainQuery(sqlString: string, params: unknown[], options?: ExplainOptions): Promise<ExplainResult>;
1180
1194
  /** Get existing indexes for the specified tables */
1181
1195
  getTableIndexes(tableNames: string[]): Promise<IndexInfo[]>;
1182
1196
  }
1183
1197
 
1198
+ export declare class DatabendExecutor extends BaseDatabaseExecutor {
1199
+ execute<T = any[]>(query: SQL | any, numericFields?: string[]): Promise<T>;
1200
+ /**
1201
+ * Extract SQL string and params from a query object for error logging
1202
+ */
1203
+ private extractSqlFromQuery;
1204
+ /**
1205
+ * Convert numeric string fields to numbers (only for measure fields)
1206
+ */
1207
+ private convertNumericFields;
1208
+ /**
1209
+ * Coerce a value to a number if it represents a numeric type
1210
+ */
1211
+ private coerceToNumber;
1212
+ getEngineType(): 'databend';
1213
+ /**
1214
+ * Execute EXPLAIN on a SQL query to get the execution plan
1215
+ * Databend supports EXPLAIN and EXPLAIN ANALYZE
1216
+ */
1217
+ explainQuery(sqlString: string, params: unknown[], options?: ExplainOptions): Promise<ExplainResult>;
1218
+ /**
1219
+ * Get existing indexes for the specified tables
1220
+ * Databend uses system tables for index information
1221
+ */
1222
+ getTableIndexes(tableNames: string[]): Promise<IndexInfo[]>;
1223
+ }
1224
+
1184
1225
  /**
1185
1226
  * Helper function to create cubes
1186
1227
  */
@@ -1620,7 +1661,7 @@ export declare interface ExplainResult {
1620
1661
  */
1621
1662
  export declare interface ExplainSummary {
1622
1663
  /** Database engine type */
1623
- database: 'postgres' | 'mysql' | 'sqlite' | 'duckdb';
1664
+ database: 'postgres' | 'mysql' | 'sqlite' | 'duckdb' | 'databend' | 'snowflake';
1624
1665
  /** Planning time in milliseconds (if available) */
1625
1666
  planningTime?: number;
1626
1667
  /** Execution time in milliseconds (if ANALYZE was used) */
@@ -4380,7 +4421,7 @@ export declare class SemanticLayerCompiler {
4380
4421
  drizzle?: DatabaseExecutor['db'];
4381
4422
  schema?: any;
4382
4423
  databaseExecutor?: DatabaseExecutor;
4383
- engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb';
4424
+ engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake';
4384
4425
  /** Cache configuration for query result caching */
4385
4426
  cache?: CacheConfig;
4386
4427
  });
@@ -4391,11 +4432,11 @@ export declare class SemanticLayerCompiler {
4391
4432
  /**
4392
4433
  * Get the database engine type for SQL formatting
4393
4434
  */
4394
- getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | undefined;
4435
+ getEngineType(): 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake' | undefined;
4395
4436
  /**
4396
4437
  * Set Drizzle instance and schema directly
4397
4438
  */
4398
- setDrizzle(db: DatabaseExecutor['db'], schema?: any, engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb'): void;
4439
+ setDrizzle(db: DatabaseExecutor['db'], schema?: any, engineType?: 'postgres' | 'mysql' | 'sqlite' | 'singlestore' | 'duckdb' | 'databend' | 'snowflake'): void;
4399
4440
  /**
4400
4441
  * Check if database executor is configured
4401
4442
  */
@@ -4690,6 +4731,33 @@ export declare interface SimpleSource extends LogicalNodeBase {
4690
4731
  ctes: CTEPreAggregate[];
4691
4732
  }
4692
4733
 
4734
+ export declare class SnowflakeExecutor extends BaseDatabaseExecutor {
4735
+ execute<T = any[]>(query: SQL | any, numericFields?: string[]): Promise<T>;
4736
+ /**
4737
+ * Extract SQL string and params from a query object for error logging
4738
+ */
4739
+ private extractSqlFromQuery;
4740
+ /**
4741
+ * Convert numeric string fields to numbers (only for measure fields)
4742
+ */
4743
+ private convertNumericFields;
4744
+ /**
4745
+ * Coerce a value to a number if it represents a numeric type
4746
+ */
4747
+ private coerceToNumber;
4748
+ getEngineType(): 'snowflake';
4749
+ /**
4750
+ * Execute EXPLAIN on a SQL query to get the execution plan
4751
+ * Snowflake supports EXPLAIN and EXPLAIN USING TEXT/JSON/TABULAR
4752
+ */
4753
+ explainQuery(sqlString: string, params: unknown[], options?: ExplainOptions): Promise<ExplainResult>;
4754
+ /**
4755
+ * Get existing indexes for the specified tables
4756
+ * Snowflake doesn't use traditional indexes (it uses micro-partitioning)
4757
+ */
4758
+ getTableIndexes(_tableNames: string[]): Promise<IndexInfo[]>;
4759
+ }
4760
+
4693
4761
  export { SQL }
4694
4762
 
4695
4763
  /**