drizzle-cube 0.1.3 → 0.1.5
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.
- package/README.md +24 -2
- package/dist/adapters/hono/index.d.ts +5 -1
- package/dist/adapters/hono/index.js +259 -96
- package/dist/client/client/CubeClient.d.ts +15 -0
- package/dist/client/components/AnalyticsDashboard.d.ts +2 -0
- package/dist/client/components/AnalyticsPage.d.ts +1 -0
- package/dist/client/components/AnalyticsPortlet.d.ts +6 -0
- package/dist/client/components/ChartConfigEditor.d.ts +8 -0
- package/dist/client/components/ChartErrorBoundary.d.ts +21 -0
- package/dist/client/components/DashboardEditModal.d.ts +14 -0
- package/dist/client/components/DashboardGrid.d.ts +11 -0
- package/dist/client/components/Modal.d.ts +16 -0
- package/dist/client/components/PortletContainer.d.ts +10 -0
- package/dist/client/components/PortletEditModal.d.ts +12 -0
- package/dist/client/components/QueryBuilder/CubeMetaExplorer.d.ts +4 -0
- package/dist/client/components/QueryBuilder/QueryPanel.d.ts +4 -0
- package/dist/client/components/QueryBuilder/ResultsPanel.d.ts +4 -0
- package/dist/client/components/QueryBuilder/SetupPanel.d.ts +11 -0
- package/dist/client/components/QueryBuilder/index.d.ts +3 -0
- package/dist/client/components/QueryBuilder/types.d.ts +132 -0
- package/dist/client/components/QueryBuilder/utils.d.ts +42 -0
- package/dist/client/components/charts/AreaChart.d.ts +2 -0
- package/dist/client/components/charts/BarChart.d.ts +2 -0
- package/dist/client/components/charts/ChartContainer.d.ts +7 -0
- package/dist/client/components/charts/ChartLegend.d.ts +7 -0
- package/dist/client/components/charts/ChartTooltip.d.ts +7 -0
- package/dist/client/components/charts/DataTable.d.ts +2 -0
- package/dist/client/components/charts/LineChart.d.ts +2 -0
- package/dist/client/components/charts/PieChart.d.ts +2 -0
- package/dist/client/components/charts/RadarChart.d.ts +2 -0
- package/dist/client/components/charts/RadialBarChart.d.ts +2 -0
- package/dist/client/components/charts/ScatterChart.d.ts +2 -0
- package/dist/client/components/charts/TreeMapChart.d.ts +2 -0
- package/dist/client/components/charts/index.d.ts +13 -0
- package/dist/client/hooks/useCubeQuery.d.ts +8 -0
- package/dist/client/index.d.ts +15 -0
- package/dist/client/index.js +25439 -4
- package/dist/client/providers/CubeProvider.d.ts +15 -0
- package/dist/client/styles.css +1 -0
- package/dist/client/types.d.ts +111 -0
- package/dist/client/utils/chartConstants.d.ts +15 -0
- package/dist/client/utils/chartUtils.d.ts +9 -0
- package/dist/client/utils/index.d.ts +87 -0
- package/dist/server/index.d.ts +84 -1155
- package/dist/server/index.js +1046 -2826
- package/package.json +14 -3
package/dist/server/index.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import { AnyColumn } from 'drizzle-orm';
|
|
2
|
-
import { Many } from 'drizzle-orm';
|
|
3
|
-
import { One } from 'drizzle-orm';
|
|
4
|
-
import { PgColumn } from 'drizzle-orm/pg-core';
|
|
5
|
-
import { PgTableWithColumns } from 'drizzle-orm/pg-core';
|
|
6
|
-
import { Relations } from 'drizzle-orm';
|
|
7
2
|
import { SQL } from 'drizzle-orm';
|
|
8
3
|
|
|
9
4
|
/**
|
|
@@ -13,7 +8,7 @@ export declare abstract class BaseDatabaseExecutor<TSchema extends Record<string
|
|
|
13
8
|
db: DrizzleDatabase<TSchema>;
|
|
14
9
|
schema?: TSchema | undefined;
|
|
15
10
|
constructor(db: DrizzleDatabase<TSchema>, schema?: TSchema | undefined);
|
|
16
|
-
abstract execute<T = any[]>(query: SQL | any): Promise<T>;
|
|
11
|
+
abstract execute<T = any[]>(query: SQL | any, measureFields?: string[]): Promise<T>;
|
|
17
12
|
abstract getEngineType(): 'postgres' | 'mysql' | 'sqlite';
|
|
18
13
|
}
|
|
19
14
|
|
|
@@ -106,6 +101,8 @@ export declare interface Cube<TSchema extends Record<string, any> = Record<strin
|
|
|
106
101
|
dimensions: Record<string, Dimension<TSchema>>;
|
|
107
102
|
/** Cube measures using direct column references */
|
|
108
103
|
measures: Record<string, Measure<TSchema>>;
|
|
104
|
+
/** Optional joins to other cubes for multi-cube queries */
|
|
105
|
+
joins?: Record<string, CubeJoin<TSchema>>;
|
|
109
106
|
}
|
|
110
107
|
|
|
111
108
|
/**
|
|
@@ -150,14 +147,6 @@ export declare interface CubeMetadata {
|
|
|
150
147
|
segments: any[];
|
|
151
148
|
}
|
|
152
149
|
|
|
153
|
-
/**
|
|
154
|
-
* Enhanced Cube with join definitions for multi-cube support
|
|
155
|
-
*/
|
|
156
|
-
export declare interface CubeWithJoins<TSchema extends Record<string, any> = Record<string, any>> extends Cube<TSchema> {
|
|
157
|
-
/** Joins to other cubes for multi-cube queries */
|
|
158
|
-
joins?: Record<string, CubeJoin<TSchema>>;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
150
|
/**
|
|
162
151
|
* Database executor that wraps Drizzle ORM
|
|
163
152
|
* Provides type-safe SQL execution with engine-specific implementations
|
|
@@ -168,7 +157,7 @@ export declare interface DatabaseExecutor<TSchema extends Record<string, any> =
|
|
|
168
157
|
/** Optional schema for type inference */
|
|
169
158
|
schema?: TSchema;
|
|
170
159
|
/** Execute a Drizzle SQL query or query object */
|
|
171
|
-
execute<T = any[]>(query: SQL | any): Promise<T>;
|
|
160
|
+
execute<T = any[]>(query: SQL | any, measureFields?: string[]): Promise<T>;
|
|
172
161
|
/** Get the database engine type */
|
|
173
162
|
getEngineType(): 'postgres' | 'mysql' | 'sqlite';
|
|
174
163
|
}
|
|
@@ -194,121 +183,6 @@ export declare function defineLegacyCube<TSchema extends Record<string, any>>(_s
|
|
|
194
183
|
name: string;
|
|
195
184
|
}): SemanticCube<TSchema>;
|
|
196
185
|
|
|
197
|
-
export declare const departments: PgTableWithColumns< {
|
|
198
|
-
name: "departments";
|
|
199
|
-
schema: undefined;
|
|
200
|
-
columns: {
|
|
201
|
-
id: PgColumn< {
|
|
202
|
-
name: "id";
|
|
203
|
-
tableName: "departments";
|
|
204
|
-
dataType: "number";
|
|
205
|
-
columnType: "PgInteger";
|
|
206
|
-
data: number;
|
|
207
|
-
driverParam: string | number;
|
|
208
|
-
notNull: true;
|
|
209
|
-
hasDefault: false;
|
|
210
|
-
isPrimaryKey: true;
|
|
211
|
-
isAutoincrement: false;
|
|
212
|
-
hasRuntimeDefault: false;
|
|
213
|
-
enumValues: undefined;
|
|
214
|
-
baseColumn: never;
|
|
215
|
-
identity: undefined;
|
|
216
|
-
generated: undefined;
|
|
217
|
-
}, {}, {}>;
|
|
218
|
-
name: PgColumn< {
|
|
219
|
-
name: "name";
|
|
220
|
-
tableName: "departments";
|
|
221
|
-
dataType: "string";
|
|
222
|
-
columnType: "PgText";
|
|
223
|
-
data: string;
|
|
224
|
-
driverParam: string;
|
|
225
|
-
notNull: true;
|
|
226
|
-
hasDefault: false;
|
|
227
|
-
isPrimaryKey: false;
|
|
228
|
-
isAutoincrement: false;
|
|
229
|
-
hasRuntimeDefault: false;
|
|
230
|
-
enumValues: [string, ...string[]];
|
|
231
|
-
baseColumn: never;
|
|
232
|
-
identity: undefined;
|
|
233
|
-
generated: undefined;
|
|
234
|
-
}, {}, {}>;
|
|
235
|
-
description: PgColumn< {
|
|
236
|
-
name: "description";
|
|
237
|
-
tableName: "departments";
|
|
238
|
-
dataType: "string";
|
|
239
|
-
columnType: "PgText";
|
|
240
|
-
data: string;
|
|
241
|
-
driverParam: string;
|
|
242
|
-
notNull: false;
|
|
243
|
-
hasDefault: false;
|
|
244
|
-
isPrimaryKey: false;
|
|
245
|
-
isAutoincrement: false;
|
|
246
|
-
hasRuntimeDefault: false;
|
|
247
|
-
enumValues: [string, ...string[]];
|
|
248
|
-
baseColumn: never;
|
|
249
|
-
identity: undefined;
|
|
250
|
-
generated: undefined;
|
|
251
|
-
}, {}, {}>;
|
|
252
|
-
organisation: PgColumn< {
|
|
253
|
-
name: "organisation";
|
|
254
|
-
tableName: "departments";
|
|
255
|
-
dataType: "number";
|
|
256
|
-
columnType: "PgInteger";
|
|
257
|
-
data: number;
|
|
258
|
-
driverParam: string | number;
|
|
259
|
-
notNull: true;
|
|
260
|
-
hasDefault: false;
|
|
261
|
-
isPrimaryKey: false;
|
|
262
|
-
isAutoincrement: false;
|
|
263
|
-
hasRuntimeDefault: false;
|
|
264
|
-
enumValues: undefined;
|
|
265
|
-
baseColumn: never;
|
|
266
|
-
identity: undefined;
|
|
267
|
-
generated: undefined;
|
|
268
|
-
}, {}, {}>;
|
|
269
|
-
createdAt: PgColumn< {
|
|
270
|
-
name: "created_at";
|
|
271
|
-
tableName: "departments";
|
|
272
|
-
dataType: "date";
|
|
273
|
-
columnType: "PgTimestamp";
|
|
274
|
-
data: Date;
|
|
275
|
-
driverParam: string;
|
|
276
|
-
notNull: false;
|
|
277
|
-
hasDefault: true;
|
|
278
|
-
isPrimaryKey: false;
|
|
279
|
-
isAutoincrement: false;
|
|
280
|
-
hasRuntimeDefault: false;
|
|
281
|
-
enumValues: undefined;
|
|
282
|
-
baseColumn: never;
|
|
283
|
-
identity: undefined;
|
|
284
|
-
generated: undefined;
|
|
285
|
-
}, {}, {}>;
|
|
286
|
-
updatedAt: PgColumn< {
|
|
287
|
-
name: "updated_at";
|
|
288
|
-
tableName: "departments";
|
|
289
|
-
dataType: "date";
|
|
290
|
-
columnType: "PgTimestamp";
|
|
291
|
-
data: Date;
|
|
292
|
-
driverParam: string;
|
|
293
|
-
notNull: false;
|
|
294
|
-
hasDefault: true;
|
|
295
|
-
isPrimaryKey: false;
|
|
296
|
-
isAutoincrement: false;
|
|
297
|
-
hasRuntimeDefault: false;
|
|
298
|
-
enumValues: undefined;
|
|
299
|
-
baseColumn: never;
|
|
300
|
-
identity: undefined;
|
|
301
|
-
generated: undefined;
|
|
302
|
-
}, {}, {}>;
|
|
303
|
-
};
|
|
304
|
-
dialect: "pg";
|
|
305
|
-
}>;
|
|
306
|
-
|
|
307
|
-
export declare const departmentsRelations: Relations<"departments", {
|
|
308
|
-
organisation: One<"organisations", true>;
|
|
309
|
-
employees: Many<"employees">;
|
|
310
|
-
}>;
|
|
311
|
-
|
|
312
186
|
/**
|
|
313
187
|
* Dimension definition
|
|
314
188
|
*/
|
|
@@ -374,785 +248,6 @@ export declare type DrizzleDatabase<TSchema extends Record<string, any> = Record
|
|
|
374
248
|
schema?: TSchema;
|
|
375
249
|
};
|
|
376
250
|
|
|
377
|
-
export declare const employees: PgTableWithColumns< {
|
|
378
|
-
name: "employees";
|
|
379
|
-
schema: undefined;
|
|
380
|
-
columns: {
|
|
381
|
-
id: PgColumn< {
|
|
382
|
-
name: "id";
|
|
383
|
-
tableName: "employees";
|
|
384
|
-
dataType: "number";
|
|
385
|
-
columnType: "PgInteger";
|
|
386
|
-
data: number;
|
|
387
|
-
driverParam: string | number;
|
|
388
|
-
notNull: true;
|
|
389
|
-
hasDefault: false;
|
|
390
|
-
isPrimaryKey: true;
|
|
391
|
-
isAutoincrement: false;
|
|
392
|
-
hasRuntimeDefault: false;
|
|
393
|
-
enumValues: undefined;
|
|
394
|
-
baseColumn: never;
|
|
395
|
-
identity: undefined;
|
|
396
|
-
generated: undefined;
|
|
397
|
-
}, {}, {}>;
|
|
398
|
-
name: PgColumn< {
|
|
399
|
-
name: "name";
|
|
400
|
-
tableName: "employees";
|
|
401
|
-
dataType: "string";
|
|
402
|
-
columnType: "PgText";
|
|
403
|
-
data: string;
|
|
404
|
-
driverParam: string;
|
|
405
|
-
notNull: true;
|
|
406
|
-
hasDefault: false;
|
|
407
|
-
isPrimaryKey: false;
|
|
408
|
-
isAutoincrement: false;
|
|
409
|
-
hasRuntimeDefault: false;
|
|
410
|
-
enumValues: [string, ...string[]];
|
|
411
|
-
baseColumn: never;
|
|
412
|
-
identity: undefined;
|
|
413
|
-
generated: undefined;
|
|
414
|
-
}, {}, {}>;
|
|
415
|
-
email: PgColumn< {
|
|
416
|
-
name: "email";
|
|
417
|
-
tableName: "employees";
|
|
418
|
-
dataType: "string";
|
|
419
|
-
columnType: "PgText";
|
|
420
|
-
data: string;
|
|
421
|
-
driverParam: string;
|
|
422
|
-
notNull: true;
|
|
423
|
-
hasDefault: false;
|
|
424
|
-
isPrimaryKey: false;
|
|
425
|
-
isAutoincrement: false;
|
|
426
|
-
hasRuntimeDefault: false;
|
|
427
|
-
enumValues: [string, ...string[]];
|
|
428
|
-
baseColumn: never;
|
|
429
|
-
identity: undefined;
|
|
430
|
-
generated: undefined;
|
|
431
|
-
}, {}, {}>;
|
|
432
|
-
active: PgColumn< {
|
|
433
|
-
name: "active";
|
|
434
|
-
tableName: "employees";
|
|
435
|
-
dataType: "boolean";
|
|
436
|
-
columnType: "PgBoolean";
|
|
437
|
-
data: boolean;
|
|
438
|
-
driverParam: boolean;
|
|
439
|
-
notNull: false;
|
|
440
|
-
hasDefault: true;
|
|
441
|
-
isPrimaryKey: false;
|
|
442
|
-
isAutoincrement: false;
|
|
443
|
-
hasRuntimeDefault: false;
|
|
444
|
-
enumValues: undefined;
|
|
445
|
-
baseColumn: never;
|
|
446
|
-
identity: undefined;
|
|
447
|
-
generated: undefined;
|
|
448
|
-
}, {}, {}>;
|
|
449
|
-
fteBasis: PgColumn< {
|
|
450
|
-
name: "fte_basis";
|
|
451
|
-
tableName: "employees";
|
|
452
|
-
dataType: "string";
|
|
453
|
-
columnType: "PgNumeric";
|
|
454
|
-
data: string;
|
|
455
|
-
driverParam: string;
|
|
456
|
-
notNull: false;
|
|
457
|
-
hasDefault: true;
|
|
458
|
-
isPrimaryKey: false;
|
|
459
|
-
isAutoincrement: false;
|
|
460
|
-
hasRuntimeDefault: false;
|
|
461
|
-
enumValues: undefined;
|
|
462
|
-
baseColumn: never;
|
|
463
|
-
identity: undefined;
|
|
464
|
-
generated: undefined;
|
|
465
|
-
}, {}, {}>;
|
|
466
|
-
startDate: PgColumn< {
|
|
467
|
-
name: "start_date";
|
|
468
|
-
tableName: "employees";
|
|
469
|
-
dataType: "date";
|
|
470
|
-
columnType: "PgTimestamp";
|
|
471
|
-
data: Date;
|
|
472
|
-
driverParam: string;
|
|
473
|
-
notNull: false;
|
|
474
|
-
hasDefault: false;
|
|
475
|
-
isPrimaryKey: false;
|
|
476
|
-
isAutoincrement: false;
|
|
477
|
-
hasRuntimeDefault: false;
|
|
478
|
-
enumValues: undefined;
|
|
479
|
-
baseColumn: never;
|
|
480
|
-
identity: undefined;
|
|
481
|
-
generated: undefined;
|
|
482
|
-
}, {}, {}>;
|
|
483
|
-
endDate: PgColumn< {
|
|
484
|
-
name: "end_date";
|
|
485
|
-
tableName: "employees";
|
|
486
|
-
dataType: "date";
|
|
487
|
-
columnType: "PgTimestamp";
|
|
488
|
-
data: Date;
|
|
489
|
-
driverParam: string;
|
|
490
|
-
notNull: false;
|
|
491
|
-
hasDefault: false;
|
|
492
|
-
isPrimaryKey: false;
|
|
493
|
-
isAutoincrement: false;
|
|
494
|
-
hasRuntimeDefault: false;
|
|
495
|
-
enumValues: undefined;
|
|
496
|
-
baseColumn: never;
|
|
497
|
-
identity: undefined;
|
|
498
|
-
generated: undefined;
|
|
499
|
-
}, {}, {}>;
|
|
500
|
-
department: PgColumn< {
|
|
501
|
-
name: "department";
|
|
502
|
-
tableName: "employees";
|
|
503
|
-
dataType: "number";
|
|
504
|
-
columnType: "PgInteger";
|
|
505
|
-
data: number;
|
|
506
|
-
driverParam: string | number;
|
|
507
|
-
notNull: false;
|
|
508
|
-
hasDefault: false;
|
|
509
|
-
isPrimaryKey: false;
|
|
510
|
-
isAutoincrement: false;
|
|
511
|
-
hasRuntimeDefault: false;
|
|
512
|
-
enumValues: undefined;
|
|
513
|
-
baseColumn: never;
|
|
514
|
-
identity: undefined;
|
|
515
|
-
generated: undefined;
|
|
516
|
-
}, {}, {}>;
|
|
517
|
-
supplier: PgColumn< {
|
|
518
|
-
name: "supplier";
|
|
519
|
-
tableName: "employees";
|
|
520
|
-
dataType: "number";
|
|
521
|
-
columnType: "PgInteger";
|
|
522
|
-
data: number;
|
|
523
|
-
driverParam: string | number;
|
|
524
|
-
notNull: false;
|
|
525
|
-
hasDefault: false;
|
|
526
|
-
isPrimaryKey: false;
|
|
527
|
-
isAutoincrement: false;
|
|
528
|
-
hasRuntimeDefault: false;
|
|
529
|
-
enumValues: undefined;
|
|
530
|
-
baseColumn: never;
|
|
531
|
-
identity: undefined;
|
|
532
|
-
generated: undefined;
|
|
533
|
-
}, {}, {}>;
|
|
534
|
-
organisation: PgColumn< {
|
|
535
|
-
name: "organisation";
|
|
536
|
-
tableName: "employees";
|
|
537
|
-
dataType: "number";
|
|
538
|
-
columnType: "PgInteger";
|
|
539
|
-
data: number;
|
|
540
|
-
driverParam: string | number;
|
|
541
|
-
notNull: true;
|
|
542
|
-
hasDefault: false;
|
|
543
|
-
isPrimaryKey: false;
|
|
544
|
-
isAutoincrement: false;
|
|
545
|
-
hasRuntimeDefault: false;
|
|
546
|
-
enumValues: undefined;
|
|
547
|
-
baseColumn: never;
|
|
548
|
-
identity: undefined;
|
|
549
|
-
generated: undefined;
|
|
550
|
-
}, {}, {}>;
|
|
551
|
-
createdAt: PgColumn< {
|
|
552
|
-
name: "created_at";
|
|
553
|
-
tableName: "employees";
|
|
554
|
-
dataType: "date";
|
|
555
|
-
columnType: "PgTimestamp";
|
|
556
|
-
data: Date;
|
|
557
|
-
driverParam: string;
|
|
558
|
-
notNull: false;
|
|
559
|
-
hasDefault: true;
|
|
560
|
-
isPrimaryKey: false;
|
|
561
|
-
isAutoincrement: false;
|
|
562
|
-
hasRuntimeDefault: false;
|
|
563
|
-
enumValues: undefined;
|
|
564
|
-
baseColumn: never;
|
|
565
|
-
identity: undefined;
|
|
566
|
-
generated: undefined;
|
|
567
|
-
}, {}, {}>;
|
|
568
|
-
updatedAt: PgColumn< {
|
|
569
|
-
name: "updated_at";
|
|
570
|
-
tableName: "employees";
|
|
571
|
-
dataType: "date";
|
|
572
|
-
columnType: "PgTimestamp";
|
|
573
|
-
data: Date;
|
|
574
|
-
driverParam: string;
|
|
575
|
-
notNull: false;
|
|
576
|
-
hasDefault: true;
|
|
577
|
-
isPrimaryKey: false;
|
|
578
|
-
isAutoincrement: false;
|
|
579
|
-
hasRuntimeDefault: false;
|
|
580
|
-
enumValues: undefined;
|
|
581
|
-
baseColumn: never;
|
|
582
|
-
identity: undefined;
|
|
583
|
-
generated: undefined;
|
|
584
|
-
}, {}, {}>;
|
|
585
|
-
};
|
|
586
|
-
dialect: "pg";
|
|
587
|
-
}>;
|
|
588
|
-
|
|
589
|
-
export declare const employeesRelations: Relations<"employees", {
|
|
590
|
-
organisation: One<"organisations", true>;
|
|
591
|
-
department: One<"departments", false>;
|
|
592
|
-
supplier: One<"suppliers", false>;
|
|
593
|
-
}>;
|
|
594
|
-
|
|
595
|
-
export declare type ExampleSchema = typeof exampleSchema;
|
|
596
|
-
|
|
597
|
-
export declare const exampleSchema: {
|
|
598
|
-
organisations: PgTableWithColumns< {
|
|
599
|
-
name: "organisations";
|
|
600
|
-
schema: undefined;
|
|
601
|
-
columns: {
|
|
602
|
-
id: PgColumn< {
|
|
603
|
-
name: "id";
|
|
604
|
-
tableName: "organisations";
|
|
605
|
-
dataType: "number";
|
|
606
|
-
columnType: "PgInteger";
|
|
607
|
-
data: number;
|
|
608
|
-
driverParam: string | number;
|
|
609
|
-
notNull: true;
|
|
610
|
-
hasDefault: false;
|
|
611
|
-
isPrimaryKey: true;
|
|
612
|
-
isAutoincrement: false;
|
|
613
|
-
hasRuntimeDefault: false;
|
|
614
|
-
enumValues: undefined;
|
|
615
|
-
baseColumn: never;
|
|
616
|
-
identity: undefined;
|
|
617
|
-
generated: undefined;
|
|
618
|
-
}, {}, {}>;
|
|
619
|
-
name: PgColumn< {
|
|
620
|
-
name: "name";
|
|
621
|
-
tableName: "organisations";
|
|
622
|
-
dataType: "string";
|
|
623
|
-
columnType: "PgText";
|
|
624
|
-
data: string;
|
|
625
|
-
driverParam: string;
|
|
626
|
-
notNull: true;
|
|
627
|
-
hasDefault: false;
|
|
628
|
-
isPrimaryKey: false;
|
|
629
|
-
isAutoincrement: false;
|
|
630
|
-
hasRuntimeDefault: false;
|
|
631
|
-
enumValues: [string, ...string[]];
|
|
632
|
-
baseColumn: never;
|
|
633
|
-
identity: undefined;
|
|
634
|
-
generated: undefined;
|
|
635
|
-
}, {}, {}>;
|
|
636
|
-
description: PgColumn< {
|
|
637
|
-
name: "description";
|
|
638
|
-
tableName: "organisations";
|
|
639
|
-
dataType: "string";
|
|
640
|
-
columnType: "PgText";
|
|
641
|
-
data: string;
|
|
642
|
-
driverParam: string;
|
|
643
|
-
notNull: false;
|
|
644
|
-
hasDefault: false;
|
|
645
|
-
isPrimaryKey: false;
|
|
646
|
-
isAutoincrement: false;
|
|
647
|
-
hasRuntimeDefault: false;
|
|
648
|
-
enumValues: [string, ...string[]];
|
|
649
|
-
baseColumn: never;
|
|
650
|
-
identity: undefined;
|
|
651
|
-
generated: undefined;
|
|
652
|
-
}, {}, {}>;
|
|
653
|
-
createdAt: PgColumn< {
|
|
654
|
-
name: "created_at";
|
|
655
|
-
tableName: "organisations";
|
|
656
|
-
dataType: "date";
|
|
657
|
-
columnType: "PgTimestamp";
|
|
658
|
-
data: Date;
|
|
659
|
-
driverParam: string;
|
|
660
|
-
notNull: false;
|
|
661
|
-
hasDefault: true;
|
|
662
|
-
isPrimaryKey: false;
|
|
663
|
-
isAutoincrement: false;
|
|
664
|
-
hasRuntimeDefault: false;
|
|
665
|
-
enumValues: undefined;
|
|
666
|
-
baseColumn: never;
|
|
667
|
-
identity: undefined;
|
|
668
|
-
generated: undefined;
|
|
669
|
-
}, {}, {}>;
|
|
670
|
-
updatedAt: PgColumn< {
|
|
671
|
-
name: "updated_at";
|
|
672
|
-
tableName: "organisations";
|
|
673
|
-
dataType: "date";
|
|
674
|
-
columnType: "PgTimestamp";
|
|
675
|
-
data: Date;
|
|
676
|
-
driverParam: string;
|
|
677
|
-
notNull: false;
|
|
678
|
-
hasDefault: true;
|
|
679
|
-
isPrimaryKey: false;
|
|
680
|
-
isAutoincrement: false;
|
|
681
|
-
hasRuntimeDefault: false;
|
|
682
|
-
enumValues: undefined;
|
|
683
|
-
baseColumn: never;
|
|
684
|
-
identity: undefined;
|
|
685
|
-
generated: undefined;
|
|
686
|
-
}, {}, {}>;
|
|
687
|
-
};
|
|
688
|
-
dialect: "pg";
|
|
689
|
-
}>;
|
|
690
|
-
departments: PgTableWithColumns< {
|
|
691
|
-
name: "departments";
|
|
692
|
-
schema: undefined;
|
|
693
|
-
columns: {
|
|
694
|
-
id: PgColumn< {
|
|
695
|
-
name: "id";
|
|
696
|
-
tableName: "departments";
|
|
697
|
-
dataType: "number";
|
|
698
|
-
columnType: "PgInteger";
|
|
699
|
-
data: number;
|
|
700
|
-
driverParam: string | number;
|
|
701
|
-
notNull: true;
|
|
702
|
-
hasDefault: false;
|
|
703
|
-
isPrimaryKey: true;
|
|
704
|
-
isAutoincrement: false;
|
|
705
|
-
hasRuntimeDefault: false;
|
|
706
|
-
enumValues: undefined;
|
|
707
|
-
baseColumn: never;
|
|
708
|
-
identity: undefined;
|
|
709
|
-
generated: undefined;
|
|
710
|
-
}, {}, {}>;
|
|
711
|
-
name: PgColumn< {
|
|
712
|
-
name: "name";
|
|
713
|
-
tableName: "departments";
|
|
714
|
-
dataType: "string";
|
|
715
|
-
columnType: "PgText";
|
|
716
|
-
data: string;
|
|
717
|
-
driverParam: string;
|
|
718
|
-
notNull: true;
|
|
719
|
-
hasDefault: false;
|
|
720
|
-
isPrimaryKey: false;
|
|
721
|
-
isAutoincrement: false;
|
|
722
|
-
hasRuntimeDefault: false;
|
|
723
|
-
enumValues: [string, ...string[]];
|
|
724
|
-
baseColumn: never;
|
|
725
|
-
identity: undefined;
|
|
726
|
-
generated: undefined;
|
|
727
|
-
}, {}, {}>;
|
|
728
|
-
description: PgColumn< {
|
|
729
|
-
name: "description";
|
|
730
|
-
tableName: "departments";
|
|
731
|
-
dataType: "string";
|
|
732
|
-
columnType: "PgText";
|
|
733
|
-
data: string;
|
|
734
|
-
driverParam: string;
|
|
735
|
-
notNull: false;
|
|
736
|
-
hasDefault: false;
|
|
737
|
-
isPrimaryKey: false;
|
|
738
|
-
isAutoincrement: false;
|
|
739
|
-
hasRuntimeDefault: false;
|
|
740
|
-
enumValues: [string, ...string[]];
|
|
741
|
-
baseColumn: never;
|
|
742
|
-
identity: undefined;
|
|
743
|
-
generated: undefined;
|
|
744
|
-
}, {}, {}>;
|
|
745
|
-
organisation: PgColumn< {
|
|
746
|
-
name: "organisation";
|
|
747
|
-
tableName: "departments";
|
|
748
|
-
dataType: "number";
|
|
749
|
-
columnType: "PgInteger";
|
|
750
|
-
data: number;
|
|
751
|
-
driverParam: string | number;
|
|
752
|
-
notNull: true;
|
|
753
|
-
hasDefault: false;
|
|
754
|
-
isPrimaryKey: false;
|
|
755
|
-
isAutoincrement: false;
|
|
756
|
-
hasRuntimeDefault: false;
|
|
757
|
-
enumValues: undefined;
|
|
758
|
-
baseColumn: never;
|
|
759
|
-
identity: undefined;
|
|
760
|
-
generated: undefined;
|
|
761
|
-
}, {}, {}>;
|
|
762
|
-
createdAt: PgColumn< {
|
|
763
|
-
name: "created_at";
|
|
764
|
-
tableName: "departments";
|
|
765
|
-
dataType: "date";
|
|
766
|
-
columnType: "PgTimestamp";
|
|
767
|
-
data: Date;
|
|
768
|
-
driverParam: string;
|
|
769
|
-
notNull: false;
|
|
770
|
-
hasDefault: true;
|
|
771
|
-
isPrimaryKey: false;
|
|
772
|
-
isAutoincrement: false;
|
|
773
|
-
hasRuntimeDefault: false;
|
|
774
|
-
enumValues: undefined;
|
|
775
|
-
baseColumn: never;
|
|
776
|
-
identity: undefined;
|
|
777
|
-
generated: undefined;
|
|
778
|
-
}, {}, {}>;
|
|
779
|
-
updatedAt: PgColumn< {
|
|
780
|
-
name: "updated_at";
|
|
781
|
-
tableName: "departments";
|
|
782
|
-
dataType: "date";
|
|
783
|
-
columnType: "PgTimestamp";
|
|
784
|
-
data: Date;
|
|
785
|
-
driverParam: string;
|
|
786
|
-
notNull: false;
|
|
787
|
-
hasDefault: true;
|
|
788
|
-
isPrimaryKey: false;
|
|
789
|
-
isAutoincrement: false;
|
|
790
|
-
hasRuntimeDefault: false;
|
|
791
|
-
enumValues: undefined;
|
|
792
|
-
baseColumn: never;
|
|
793
|
-
identity: undefined;
|
|
794
|
-
generated: undefined;
|
|
795
|
-
}, {}, {}>;
|
|
796
|
-
};
|
|
797
|
-
dialect: "pg";
|
|
798
|
-
}>;
|
|
799
|
-
suppliers: PgTableWithColumns< {
|
|
800
|
-
name: "suppliers";
|
|
801
|
-
schema: undefined;
|
|
802
|
-
columns: {
|
|
803
|
-
id: PgColumn< {
|
|
804
|
-
name: "id";
|
|
805
|
-
tableName: "suppliers";
|
|
806
|
-
dataType: "number";
|
|
807
|
-
columnType: "PgInteger";
|
|
808
|
-
data: number;
|
|
809
|
-
driverParam: string | number;
|
|
810
|
-
notNull: true;
|
|
811
|
-
hasDefault: false;
|
|
812
|
-
isPrimaryKey: true;
|
|
813
|
-
isAutoincrement: false;
|
|
814
|
-
hasRuntimeDefault: false;
|
|
815
|
-
enumValues: undefined;
|
|
816
|
-
baseColumn: never;
|
|
817
|
-
identity: undefined;
|
|
818
|
-
generated: undefined;
|
|
819
|
-
}, {}, {}>;
|
|
820
|
-
name: PgColumn< {
|
|
821
|
-
name: "name";
|
|
822
|
-
tableName: "suppliers";
|
|
823
|
-
dataType: "string";
|
|
824
|
-
columnType: "PgText";
|
|
825
|
-
data: string;
|
|
826
|
-
driverParam: string;
|
|
827
|
-
notNull: true;
|
|
828
|
-
hasDefault: false;
|
|
829
|
-
isPrimaryKey: false;
|
|
830
|
-
isAutoincrement: false;
|
|
831
|
-
hasRuntimeDefault: false;
|
|
832
|
-
enumValues: [string, ...string[]];
|
|
833
|
-
baseColumn: never;
|
|
834
|
-
identity: undefined;
|
|
835
|
-
generated: undefined;
|
|
836
|
-
}, {}, {}>;
|
|
837
|
-
description: PgColumn< {
|
|
838
|
-
name: "description";
|
|
839
|
-
tableName: "suppliers";
|
|
840
|
-
dataType: "string";
|
|
841
|
-
columnType: "PgText";
|
|
842
|
-
data: string;
|
|
843
|
-
driverParam: string;
|
|
844
|
-
notNull: false;
|
|
845
|
-
hasDefault: false;
|
|
846
|
-
isPrimaryKey: false;
|
|
847
|
-
isAutoincrement: false;
|
|
848
|
-
hasRuntimeDefault: false;
|
|
849
|
-
enumValues: [string, ...string[]];
|
|
850
|
-
baseColumn: never;
|
|
851
|
-
identity: undefined;
|
|
852
|
-
generated: undefined;
|
|
853
|
-
}, {}, {}>;
|
|
854
|
-
internal: PgColumn< {
|
|
855
|
-
name: "internal";
|
|
856
|
-
tableName: "suppliers";
|
|
857
|
-
dataType: "boolean";
|
|
858
|
-
columnType: "PgBoolean";
|
|
859
|
-
data: boolean;
|
|
860
|
-
driverParam: boolean;
|
|
861
|
-
notNull: false;
|
|
862
|
-
hasDefault: true;
|
|
863
|
-
isPrimaryKey: false;
|
|
864
|
-
isAutoincrement: false;
|
|
865
|
-
hasRuntimeDefault: false;
|
|
866
|
-
enumValues: undefined;
|
|
867
|
-
baseColumn: never;
|
|
868
|
-
identity: undefined;
|
|
869
|
-
generated: undefined;
|
|
870
|
-
}, {}, {}>;
|
|
871
|
-
organisation: PgColumn< {
|
|
872
|
-
name: "organisation";
|
|
873
|
-
tableName: "suppliers";
|
|
874
|
-
dataType: "number";
|
|
875
|
-
columnType: "PgInteger";
|
|
876
|
-
data: number;
|
|
877
|
-
driverParam: string | number;
|
|
878
|
-
notNull: true;
|
|
879
|
-
hasDefault: false;
|
|
880
|
-
isPrimaryKey: false;
|
|
881
|
-
isAutoincrement: false;
|
|
882
|
-
hasRuntimeDefault: false;
|
|
883
|
-
enumValues: undefined;
|
|
884
|
-
baseColumn: never;
|
|
885
|
-
identity: undefined;
|
|
886
|
-
generated: undefined;
|
|
887
|
-
}, {}, {}>;
|
|
888
|
-
createdAt: PgColumn< {
|
|
889
|
-
name: "created_at";
|
|
890
|
-
tableName: "suppliers";
|
|
891
|
-
dataType: "date";
|
|
892
|
-
columnType: "PgTimestamp";
|
|
893
|
-
data: Date;
|
|
894
|
-
driverParam: string;
|
|
895
|
-
notNull: false;
|
|
896
|
-
hasDefault: true;
|
|
897
|
-
isPrimaryKey: false;
|
|
898
|
-
isAutoincrement: false;
|
|
899
|
-
hasRuntimeDefault: false;
|
|
900
|
-
enumValues: undefined;
|
|
901
|
-
baseColumn: never;
|
|
902
|
-
identity: undefined;
|
|
903
|
-
generated: undefined;
|
|
904
|
-
}, {}, {}>;
|
|
905
|
-
updatedAt: PgColumn< {
|
|
906
|
-
name: "updated_at";
|
|
907
|
-
tableName: "suppliers";
|
|
908
|
-
dataType: "date";
|
|
909
|
-
columnType: "PgTimestamp";
|
|
910
|
-
data: Date;
|
|
911
|
-
driverParam: string;
|
|
912
|
-
notNull: false;
|
|
913
|
-
hasDefault: true;
|
|
914
|
-
isPrimaryKey: false;
|
|
915
|
-
isAutoincrement: false;
|
|
916
|
-
hasRuntimeDefault: false;
|
|
917
|
-
enumValues: undefined;
|
|
918
|
-
baseColumn: never;
|
|
919
|
-
identity: undefined;
|
|
920
|
-
generated: undefined;
|
|
921
|
-
}, {}, {}>;
|
|
922
|
-
};
|
|
923
|
-
dialect: "pg";
|
|
924
|
-
}>;
|
|
925
|
-
employees: PgTableWithColumns< {
|
|
926
|
-
name: "employees";
|
|
927
|
-
schema: undefined;
|
|
928
|
-
columns: {
|
|
929
|
-
id: PgColumn< {
|
|
930
|
-
name: "id";
|
|
931
|
-
tableName: "employees";
|
|
932
|
-
dataType: "number";
|
|
933
|
-
columnType: "PgInteger";
|
|
934
|
-
data: number;
|
|
935
|
-
driverParam: string | number;
|
|
936
|
-
notNull: true;
|
|
937
|
-
hasDefault: false;
|
|
938
|
-
isPrimaryKey: true;
|
|
939
|
-
isAutoincrement: false;
|
|
940
|
-
hasRuntimeDefault: false;
|
|
941
|
-
enumValues: undefined;
|
|
942
|
-
baseColumn: never;
|
|
943
|
-
identity: undefined;
|
|
944
|
-
generated: undefined;
|
|
945
|
-
}, {}, {}>;
|
|
946
|
-
name: PgColumn< {
|
|
947
|
-
name: "name";
|
|
948
|
-
tableName: "employees";
|
|
949
|
-
dataType: "string";
|
|
950
|
-
columnType: "PgText";
|
|
951
|
-
data: string;
|
|
952
|
-
driverParam: string;
|
|
953
|
-
notNull: true;
|
|
954
|
-
hasDefault: false;
|
|
955
|
-
isPrimaryKey: false;
|
|
956
|
-
isAutoincrement: false;
|
|
957
|
-
hasRuntimeDefault: false;
|
|
958
|
-
enumValues: [string, ...string[]];
|
|
959
|
-
baseColumn: never;
|
|
960
|
-
identity: undefined;
|
|
961
|
-
generated: undefined;
|
|
962
|
-
}, {}, {}>;
|
|
963
|
-
email: PgColumn< {
|
|
964
|
-
name: "email";
|
|
965
|
-
tableName: "employees";
|
|
966
|
-
dataType: "string";
|
|
967
|
-
columnType: "PgText";
|
|
968
|
-
data: string;
|
|
969
|
-
driverParam: string;
|
|
970
|
-
notNull: true;
|
|
971
|
-
hasDefault: false;
|
|
972
|
-
isPrimaryKey: false;
|
|
973
|
-
isAutoincrement: false;
|
|
974
|
-
hasRuntimeDefault: false;
|
|
975
|
-
enumValues: [string, ...string[]];
|
|
976
|
-
baseColumn: never;
|
|
977
|
-
identity: undefined;
|
|
978
|
-
generated: undefined;
|
|
979
|
-
}, {}, {}>;
|
|
980
|
-
active: PgColumn< {
|
|
981
|
-
name: "active";
|
|
982
|
-
tableName: "employees";
|
|
983
|
-
dataType: "boolean";
|
|
984
|
-
columnType: "PgBoolean";
|
|
985
|
-
data: boolean;
|
|
986
|
-
driverParam: boolean;
|
|
987
|
-
notNull: false;
|
|
988
|
-
hasDefault: true;
|
|
989
|
-
isPrimaryKey: false;
|
|
990
|
-
isAutoincrement: false;
|
|
991
|
-
hasRuntimeDefault: false;
|
|
992
|
-
enumValues: undefined;
|
|
993
|
-
baseColumn: never;
|
|
994
|
-
identity: undefined;
|
|
995
|
-
generated: undefined;
|
|
996
|
-
}, {}, {}>;
|
|
997
|
-
fteBasis: PgColumn< {
|
|
998
|
-
name: "fte_basis";
|
|
999
|
-
tableName: "employees";
|
|
1000
|
-
dataType: "string";
|
|
1001
|
-
columnType: "PgNumeric";
|
|
1002
|
-
data: string;
|
|
1003
|
-
driverParam: string;
|
|
1004
|
-
notNull: false;
|
|
1005
|
-
hasDefault: true;
|
|
1006
|
-
isPrimaryKey: false;
|
|
1007
|
-
isAutoincrement: false;
|
|
1008
|
-
hasRuntimeDefault: false;
|
|
1009
|
-
enumValues: undefined;
|
|
1010
|
-
baseColumn: never;
|
|
1011
|
-
identity: undefined;
|
|
1012
|
-
generated: undefined;
|
|
1013
|
-
}, {}, {}>;
|
|
1014
|
-
startDate: PgColumn< {
|
|
1015
|
-
name: "start_date";
|
|
1016
|
-
tableName: "employees";
|
|
1017
|
-
dataType: "date";
|
|
1018
|
-
columnType: "PgTimestamp";
|
|
1019
|
-
data: Date;
|
|
1020
|
-
driverParam: string;
|
|
1021
|
-
notNull: false;
|
|
1022
|
-
hasDefault: false;
|
|
1023
|
-
isPrimaryKey: false;
|
|
1024
|
-
isAutoincrement: false;
|
|
1025
|
-
hasRuntimeDefault: false;
|
|
1026
|
-
enumValues: undefined;
|
|
1027
|
-
baseColumn: never;
|
|
1028
|
-
identity: undefined;
|
|
1029
|
-
generated: undefined;
|
|
1030
|
-
}, {}, {}>;
|
|
1031
|
-
endDate: PgColumn< {
|
|
1032
|
-
name: "end_date";
|
|
1033
|
-
tableName: "employees";
|
|
1034
|
-
dataType: "date";
|
|
1035
|
-
columnType: "PgTimestamp";
|
|
1036
|
-
data: Date;
|
|
1037
|
-
driverParam: string;
|
|
1038
|
-
notNull: false;
|
|
1039
|
-
hasDefault: false;
|
|
1040
|
-
isPrimaryKey: false;
|
|
1041
|
-
isAutoincrement: false;
|
|
1042
|
-
hasRuntimeDefault: false;
|
|
1043
|
-
enumValues: undefined;
|
|
1044
|
-
baseColumn: never;
|
|
1045
|
-
identity: undefined;
|
|
1046
|
-
generated: undefined;
|
|
1047
|
-
}, {}, {}>;
|
|
1048
|
-
department: PgColumn< {
|
|
1049
|
-
name: "department";
|
|
1050
|
-
tableName: "employees";
|
|
1051
|
-
dataType: "number";
|
|
1052
|
-
columnType: "PgInteger";
|
|
1053
|
-
data: number;
|
|
1054
|
-
driverParam: string | number;
|
|
1055
|
-
notNull: false;
|
|
1056
|
-
hasDefault: false;
|
|
1057
|
-
isPrimaryKey: false;
|
|
1058
|
-
isAutoincrement: false;
|
|
1059
|
-
hasRuntimeDefault: false;
|
|
1060
|
-
enumValues: undefined;
|
|
1061
|
-
baseColumn: never;
|
|
1062
|
-
identity: undefined;
|
|
1063
|
-
generated: undefined;
|
|
1064
|
-
}, {}, {}>;
|
|
1065
|
-
supplier: PgColumn< {
|
|
1066
|
-
name: "supplier";
|
|
1067
|
-
tableName: "employees";
|
|
1068
|
-
dataType: "number";
|
|
1069
|
-
columnType: "PgInteger";
|
|
1070
|
-
data: number;
|
|
1071
|
-
driverParam: string | number;
|
|
1072
|
-
notNull: false;
|
|
1073
|
-
hasDefault: false;
|
|
1074
|
-
isPrimaryKey: false;
|
|
1075
|
-
isAutoincrement: false;
|
|
1076
|
-
hasRuntimeDefault: false;
|
|
1077
|
-
enumValues: undefined;
|
|
1078
|
-
baseColumn: never;
|
|
1079
|
-
identity: undefined;
|
|
1080
|
-
generated: undefined;
|
|
1081
|
-
}, {}, {}>;
|
|
1082
|
-
organisation: PgColumn< {
|
|
1083
|
-
name: "organisation";
|
|
1084
|
-
tableName: "employees";
|
|
1085
|
-
dataType: "number";
|
|
1086
|
-
columnType: "PgInteger";
|
|
1087
|
-
data: number;
|
|
1088
|
-
driverParam: string | number;
|
|
1089
|
-
notNull: true;
|
|
1090
|
-
hasDefault: false;
|
|
1091
|
-
isPrimaryKey: false;
|
|
1092
|
-
isAutoincrement: false;
|
|
1093
|
-
hasRuntimeDefault: false;
|
|
1094
|
-
enumValues: undefined;
|
|
1095
|
-
baseColumn: never;
|
|
1096
|
-
identity: undefined;
|
|
1097
|
-
generated: undefined;
|
|
1098
|
-
}, {}, {}>;
|
|
1099
|
-
createdAt: PgColumn< {
|
|
1100
|
-
name: "created_at";
|
|
1101
|
-
tableName: "employees";
|
|
1102
|
-
dataType: "date";
|
|
1103
|
-
columnType: "PgTimestamp";
|
|
1104
|
-
data: Date;
|
|
1105
|
-
driverParam: string;
|
|
1106
|
-
notNull: false;
|
|
1107
|
-
hasDefault: true;
|
|
1108
|
-
isPrimaryKey: false;
|
|
1109
|
-
isAutoincrement: false;
|
|
1110
|
-
hasRuntimeDefault: false;
|
|
1111
|
-
enumValues: undefined;
|
|
1112
|
-
baseColumn: never;
|
|
1113
|
-
identity: undefined;
|
|
1114
|
-
generated: undefined;
|
|
1115
|
-
}, {}, {}>;
|
|
1116
|
-
updatedAt: PgColumn< {
|
|
1117
|
-
name: "updated_at";
|
|
1118
|
-
tableName: "employees";
|
|
1119
|
-
dataType: "date";
|
|
1120
|
-
columnType: "PgTimestamp";
|
|
1121
|
-
data: Date;
|
|
1122
|
-
driverParam: string;
|
|
1123
|
-
notNull: false;
|
|
1124
|
-
hasDefault: true;
|
|
1125
|
-
isPrimaryKey: false;
|
|
1126
|
-
isAutoincrement: false;
|
|
1127
|
-
hasRuntimeDefault: false;
|
|
1128
|
-
enumValues: undefined;
|
|
1129
|
-
baseColumn: never;
|
|
1130
|
-
identity: undefined;
|
|
1131
|
-
generated: undefined;
|
|
1132
|
-
}, {}, {}>;
|
|
1133
|
-
};
|
|
1134
|
-
dialect: "pg";
|
|
1135
|
-
}>;
|
|
1136
|
-
organisationsRelations: Relations<"organisations", {
|
|
1137
|
-
departments: Many<"departments">;
|
|
1138
|
-
suppliers: Many<"suppliers">;
|
|
1139
|
-
employees: Many<"employees">;
|
|
1140
|
-
}>;
|
|
1141
|
-
departmentsRelations: Relations<"departments", {
|
|
1142
|
-
organisation: One<"organisations", true>;
|
|
1143
|
-
employees: Many<"employees">;
|
|
1144
|
-
}>;
|
|
1145
|
-
suppliersRelations: Relations<"suppliers", {
|
|
1146
|
-
organisation: One<"organisations", true>;
|
|
1147
|
-
employees: Many<"employees">;
|
|
1148
|
-
}>;
|
|
1149
|
-
employeesRelations: Relations<"employees", {
|
|
1150
|
-
organisation: One<"organisations", true>;
|
|
1151
|
-
department: One<"departments", false>;
|
|
1152
|
-
supplier: One<"suppliers", false>;
|
|
1153
|
-
}>;
|
|
1154
|
-
};
|
|
1155
|
-
|
|
1156
251
|
/**
|
|
1157
252
|
* Filter definitions with logical operators
|
|
1158
253
|
*/
|
|
@@ -1263,7 +358,7 @@ export declare class MultiCubeBuilder<TSchema extends Record<string, any> = Reco
|
|
|
1263
358
|
/**
|
|
1264
359
|
* Build a multi-cube query plan
|
|
1265
360
|
*/
|
|
1266
|
-
buildMultiCubeQueryPlan(cubes: Map<string,
|
|
361
|
+
buildMultiCubeQueryPlan(cubes: Map<string, Cube<TSchema>>, query: SemanticQuery, ctx: QueryContext<TSchema>): MultiCubeQueryPlan<TSchema>;
|
|
1267
362
|
/**
|
|
1268
363
|
* Choose the primary cube based on query analysis
|
|
1269
364
|
*/
|
|
@@ -1334,113 +429,18 @@ export declare interface MultiCubeQueryPlan<TSchema extends Record<string, any>
|
|
|
1334
429
|
* Works with mysql2 driver
|
|
1335
430
|
*/
|
|
1336
431
|
export declare class MySQLExecutor<TSchema extends Record<string, any> = Record<string, any>> extends BaseDatabaseExecutor<TSchema> {
|
|
1337
|
-
execute<T = any[]>(query: SQL | any): Promise<T>;
|
|
432
|
+
execute<T = any[]>(query: SQL | any, measureFields?: string[]): Promise<T>;
|
|
433
|
+
/**
|
|
434
|
+
* Convert numeric string fields to numbers (only for measure fields)
|
|
435
|
+
*/
|
|
436
|
+
private convertNumericFields;
|
|
437
|
+
/**
|
|
438
|
+
* Coerce a value to a number if it represents a numeric type
|
|
439
|
+
*/
|
|
440
|
+
private coerceToNumber;
|
|
1338
441
|
getEngineType(): 'mysql';
|
|
1339
442
|
}
|
|
1340
443
|
|
|
1341
|
-
/**
|
|
1342
|
-
* Example schema for demonstrating Drizzle cube definitions
|
|
1343
|
-
* This shows how to define cubes using actual Drizzle schema
|
|
1344
|
-
*/
|
|
1345
|
-
export declare const organisations: PgTableWithColumns< {
|
|
1346
|
-
name: "organisations";
|
|
1347
|
-
schema: undefined;
|
|
1348
|
-
columns: {
|
|
1349
|
-
id: PgColumn< {
|
|
1350
|
-
name: "id";
|
|
1351
|
-
tableName: "organisations";
|
|
1352
|
-
dataType: "number";
|
|
1353
|
-
columnType: "PgInteger";
|
|
1354
|
-
data: number;
|
|
1355
|
-
driverParam: string | number;
|
|
1356
|
-
notNull: true;
|
|
1357
|
-
hasDefault: false;
|
|
1358
|
-
isPrimaryKey: true;
|
|
1359
|
-
isAutoincrement: false;
|
|
1360
|
-
hasRuntimeDefault: false;
|
|
1361
|
-
enumValues: undefined;
|
|
1362
|
-
baseColumn: never;
|
|
1363
|
-
identity: undefined;
|
|
1364
|
-
generated: undefined;
|
|
1365
|
-
}, {}, {}>;
|
|
1366
|
-
name: PgColumn< {
|
|
1367
|
-
name: "name";
|
|
1368
|
-
tableName: "organisations";
|
|
1369
|
-
dataType: "string";
|
|
1370
|
-
columnType: "PgText";
|
|
1371
|
-
data: string;
|
|
1372
|
-
driverParam: string;
|
|
1373
|
-
notNull: true;
|
|
1374
|
-
hasDefault: false;
|
|
1375
|
-
isPrimaryKey: false;
|
|
1376
|
-
isAutoincrement: false;
|
|
1377
|
-
hasRuntimeDefault: false;
|
|
1378
|
-
enumValues: [string, ...string[]];
|
|
1379
|
-
baseColumn: never;
|
|
1380
|
-
identity: undefined;
|
|
1381
|
-
generated: undefined;
|
|
1382
|
-
}, {}, {}>;
|
|
1383
|
-
description: PgColumn< {
|
|
1384
|
-
name: "description";
|
|
1385
|
-
tableName: "organisations";
|
|
1386
|
-
dataType: "string";
|
|
1387
|
-
columnType: "PgText";
|
|
1388
|
-
data: string;
|
|
1389
|
-
driverParam: string;
|
|
1390
|
-
notNull: false;
|
|
1391
|
-
hasDefault: false;
|
|
1392
|
-
isPrimaryKey: false;
|
|
1393
|
-
isAutoincrement: false;
|
|
1394
|
-
hasRuntimeDefault: false;
|
|
1395
|
-
enumValues: [string, ...string[]];
|
|
1396
|
-
baseColumn: never;
|
|
1397
|
-
identity: undefined;
|
|
1398
|
-
generated: undefined;
|
|
1399
|
-
}, {}, {}>;
|
|
1400
|
-
createdAt: PgColumn< {
|
|
1401
|
-
name: "created_at";
|
|
1402
|
-
tableName: "organisations";
|
|
1403
|
-
dataType: "date";
|
|
1404
|
-
columnType: "PgTimestamp";
|
|
1405
|
-
data: Date;
|
|
1406
|
-
driverParam: string;
|
|
1407
|
-
notNull: false;
|
|
1408
|
-
hasDefault: true;
|
|
1409
|
-
isPrimaryKey: false;
|
|
1410
|
-
isAutoincrement: false;
|
|
1411
|
-
hasRuntimeDefault: false;
|
|
1412
|
-
enumValues: undefined;
|
|
1413
|
-
baseColumn: never;
|
|
1414
|
-
identity: undefined;
|
|
1415
|
-
generated: undefined;
|
|
1416
|
-
}, {}, {}>;
|
|
1417
|
-
updatedAt: PgColumn< {
|
|
1418
|
-
name: "updated_at";
|
|
1419
|
-
tableName: "organisations";
|
|
1420
|
-
dataType: "date";
|
|
1421
|
-
columnType: "PgTimestamp";
|
|
1422
|
-
data: Date;
|
|
1423
|
-
driverParam: string;
|
|
1424
|
-
notNull: false;
|
|
1425
|
-
hasDefault: true;
|
|
1426
|
-
isPrimaryKey: false;
|
|
1427
|
-
isAutoincrement: false;
|
|
1428
|
-
hasRuntimeDefault: false;
|
|
1429
|
-
enumValues: undefined;
|
|
1430
|
-
baseColumn: never;
|
|
1431
|
-
identity: undefined;
|
|
1432
|
-
generated: undefined;
|
|
1433
|
-
}, {}, {}>;
|
|
1434
|
-
};
|
|
1435
|
-
dialect: "pg";
|
|
1436
|
-
}>;
|
|
1437
|
-
|
|
1438
|
-
export declare const organisationsRelations: Relations<"organisations", {
|
|
1439
|
-
departments: Many<"departments">;
|
|
1440
|
-
suppliers: Many<"suppliers">;
|
|
1441
|
-
employees: Many<"employees">;
|
|
1442
|
-
}>;
|
|
1443
|
-
|
|
1444
444
|
/**
|
|
1445
445
|
* Parse YAML content and return validation result with converted cubes
|
|
1446
446
|
*/
|
|
@@ -1451,11 +451,15 @@ export declare function parseYamlCubes(yamlContent: string): YamlValidationResul
|
|
|
1451
451
|
* Works with postgres.js and Neon drivers
|
|
1452
452
|
*/
|
|
1453
453
|
export declare class PostgresExecutor<TSchema extends Record<string, any> = Record<string, any>> extends BaseDatabaseExecutor<TSchema> {
|
|
1454
|
-
execute<T = any[]>(query: SQL | any): Promise<T>;
|
|
454
|
+
execute<T = any[]>(query: SQL | any, measureFields?: string[]): Promise<T>;
|
|
1455
455
|
/**
|
|
1456
|
-
* Convert numeric string fields to numbers
|
|
456
|
+
* Convert numeric string fields to numbers (only for measure fields)
|
|
1457
457
|
*/
|
|
1458
458
|
private convertNumericFields;
|
|
459
|
+
/**
|
|
460
|
+
* Coerce a value to a number if it represents a numeric type
|
|
461
|
+
*/
|
|
462
|
+
private coerceToNumber;
|
|
1459
463
|
getEngineType(): 'postgres';
|
|
1460
464
|
}
|
|
1461
465
|
|
|
@@ -1478,7 +482,7 @@ export declare class QueryExecutor<TSchema extends Record<string, any> = Record<
|
|
|
1478
482
|
/**
|
|
1479
483
|
* Unified query execution method that handles both single and multi-cube queries
|
|
1480
484
|
*/
|
|
1481
|
-
execute(cubes: Map<string,
|
|
485
|
+
execute(cubes: Map<string, Cube<TSchema>>, query: SemanticQuery, securityContext: SecurityContext): Promise<QueryResult>;
|
|
1482
486
|
/**
|
|
1483
487
|
* Legacy interface for single cube queries
|
|
1484
488
|
*/
|
|
@@ -1502,6 +506,17 @@ export declare class QueryExecutor<TSchema extends Record<string, any> = Record<
|
|
|
1502
506
|
sql: string;
|
|
1503
507
|
params?: any[];
|
|
1504
508
|
}>;
|
|
509
|
+
/**
|
|
510
|
+
* Generate raw SQL for multi-cube queries without execution
|
|
511
|
+
*/
|
|
512
|
+
generateMultiCubeSQL(cubes: Map<string, Cube<TSchema>>, query: SemanticQuery, securityContext: SecurityContext): Promise<{
|
|
513
|
+
sql: string;
|
|
514
|
+
params?: any[];
|
|
515
|
+
}>;
|
|
516
|
+
/**
|
|
517
|
+
* Build multi-cube query (extracted from executeMultiCube for reuse)
|
|
518
|
+
*/
|
|
519
|
+
private buildMultiCubeQuery;
|
|
1505
520
|
/**
|
|
1506
521
|
* Generate SQL for Cube
|
|
1507
522
|
*/
|
|
@@ -1530,12 +545,25 @@ export declare class QueryExecutor<TSchema extends Record<string, any> = Record<
|
|
|
1530
545
|
* Build filter condition using Drizzle operators
|
|
1531
546
|
*/
|
|
1532
547
|
private buildFilterCondition;
|
|
548
|
+
/**
|
|
549
|
+
* Build date range condition for time dimensions
|
|
550
|
+
*/
|
|
551
|
+
private buildDateRangeCondition;
|
|
552
|
+
/**
|
|
553
|
+
* Parse relative date range expressions like "last 7 days", "this month"
|
|
554
|
+
*/
|
|
555
|
+
private parseRelativeDateRange;
|
|
556
|
+
/**
|
|
557
|
+
* Normalize date values to handle both string and Date objects
|
|
558
|
+
* For PostgreSQL timestamp fields, Drizzle expects Date objects
|
|
559
|
+
*/
|
|
560
|
+
private normalizeDate;
|
|
1533
561
|
/**
|
|
1534
562
|
* Build GROUP BY fields from dimensions and time dimensions (Cube)
|
|
1535
563
|
*/
|
|
1536
564
|
private buildGroupByFields;
|
|
1537
565
|
/**
|
|
1538
|
-
* Build ORDER BY clause
|
|
566
|
+
* Build ORDER BY clause with automatic time dimension sorting
|
|
1539
567
|
*/
|
|
1540
568
|
private buildOrderBy;
|
|
1541
569
|
/**
|
|
@@ -1648,6 +676,9 @@ export declare const semanticLayer: SemanticLayerCompiler<Record<string, any>>;
|
|
|
1648
676
|
export declare class SemanticLayerCompiler<TSchema extends Record<string, any> = Record<string, any>> {
|
|
1649
677
|
private cubes;
|
|
1650
678
|
private dbExecutor?;
|
|
679
|
+
private metadataCache?;
|
|
680
|
+
private metadataCacheTimestamp?;
|
|
681
|
+
private readonly METADATA_CACHE_TTL;
|
|
1651
682
|
constructor(options?: {
|
|
1652
683
|
drizzle?: DatabaseExecutor<TSchema>['db'];
|
|
1653
684
|
schema?: TSchema;
|
|
@@ -1669,19 +700,19 @@ export declare class SemanticLayerCompiler<TSchema extends Record<string, any> =
|
|
|
1669
700
|
/**
|
|
1670
701
|
* Register a simplified cube with dynamic query building
|
|
1671
702
|
*/
|
|
1672
|
-
registerCube(cube:
|
|
703
|
+
registerCube(cube: Cube<TSchema>): void;
|
|
1673
704
|
/**
|
|
1674
705
|
* Get a cube by name
|
|
1675
706
|
*/
|
|
1676
|
-
getCube(name: string):
|
|
707
|
+
getCube(name: string): Cube<TSchema> | undefined;
|
|
1677
708
|
/**
|
|
1678
709
|
* Get all registered cubes
|
|
1679
710
|
*/
|
|
1680
|
-
getAllCubes():
|
|
711
|
+
getAllCubes(): Cube<TSchema>[];
|
|
1681
712
|
/**
|
|
1682
713
|
* Get all cubes as a Map for multi-cube queries
|
|
1683
714
|
*/
|
|
1684
|
-
getAllCubesMap(): Map<string,
|
|
715
|
+
getAllCubesMap(): Map<string, Cube<TSchema>>;
|
|
1685
716
|
/**
|
|
1686
717
|
* Unified query execution method that handles both single and multi-cube queries
|
|
1687
718
|
*/
|
|
@@ -1696,10 +727,12 @@ export declare class SemanticLayerCompiler<TSchema extends Record<string, any> =
|
|
|
1696
727
|
executeQuery(cubeName: string, query: SemanticQuery, securityContext: SecurityContext): Promise<QueryResult>;
|
|
1697
728
|
/**
|
|
1698
729
|
* Get metadata for all cubes (for API responses)
|
|
730
|
+
* Uses caching to improve performance for repeated requests
|
|
1699
731
|
*/
|
|
1700
732
|
getMetadata(): CubeMetadata[];
|
|
1701
733
|
/**
|
|
1702
734
|
* Generate cube metadata for API responses from cubes
|
|
735
|
+
* Optimized version that minimizes object iterations
|
|
1703
736
|
*/
|
|
1704
737
|
private generateCubeMetadata;
|
|
1705
738
|
/**
|
|
@@ -1709,6 +742,13 @@ export declare class SemanticLayerCompiler<TSchema extends Record<string, any> =
|
|
|
1709
742
|
sql: string;
|
|
1710
743
|
params?: any[];
|
|
1711
744
|
}>;
|
|
745
|
+
/**
|
|
746
|
+
* Get SQL for a multi-cube query without executing it (debugging)
|
|
747
|
+
*/
|
|
748
|
+
generateMultiCubeSQL(query: SemanticQuery, securityContext: SecurityContext): Promise<{
|
|
749
|
+
sql: string;
|
|
750
|
+
params?: any[];
|
|
751
|
+
}>;
|
|
1712
752
|
/**
|
|
1713
753
|
* Check if a cube exists
|
|
1714
754
|
*/
|
|
@@ -1721,10 +761,23 @@ export declare class SemanticLayerCompiler<TSchema extends Record<string, any> =
|
|
|
1721
761
|
* Clear all cubes
|
|
1722
762
|
*/
|
|
1723
763
|
clearCubes(): void;
|
|
764
|
+
/**
|
|
765
|
+
* Invalidate the metadata cache
|
|
766
|
+
* Called whenever cubes are modified
|
|
767
|
+
*/
|
|
768
|
+
private invalidateMetadataCache;
|
|
1724
769
|
/**
|
|
1725
770
|
* Get cube names
|
|
1726
771
|
*/
|
|
1727
772
|
getCubeNames(): string[];
|
|
773
|
+
/**
|
|
774
|
+
* Validate a query against registered cubes
|
|
775
|
+
* Ensures all referenced cubes and fields exist
|
|
776
|
+
*/
|
|
777
|
+
validateQuery(query: SemanticQuery): {
|
|
778
|
+
isValid: boolean;
|
|
779
|
+
errors: string[];
|
|
780
|
+
};
|
|
1728
781
|
}
|
|
1729
782
|
|
|
1730
783
|
/**
|
|
@@ -2061,7 +1114,15 @@ export { SQL }
|
|
|
2061
1114
|
* Works with better-sqlite3 driver
|
|
2062
1115
|
*/
|
|
2063
1116
|
export declare class SQLiteExecutor<TSchema extends Record<string, any> = Record<string, any>> extends BaseDatabaseExecutor<TSchema> {
|
|
2064
|
-
execute<T = any[]>(query: SQL | any): Promise<T>;
|
|
1117
|
+
execute<T = any[]>(query: SQL | any, measureFields?: string[]): Promise<T>;
|
|
1118
|
+
/**
|
|
1119
|
+
* Convert numeric string fields to numbers (only for measure fields)
|
|
1120
|
+
*/
|
|
1121
|
+
private convertNumericFields;
|
|
1122
|
+
/**
|
|
1123
|
+
* Coerce a value to a number if it represents a numeric type
|
|
1124
|
+
*/
|
|
1125
|
+
private coerceToNumber;
|
|
2065
1126
|
getEngineType(): 'sqlite';
|
|
2066
1127
|
}
|
|
2067
1128
|
|
|
@@ -2073,138 +1134,6 @@ export declare interface SqlResult {
|
|
|
2073
1134
|
params?: any[];
|
|
2074
1135
|
}
|
|
2075
1136
|
|
|
2076
|
-
export declare const suppliers: PgTableWithColumns< {
|
|
2077
|
-
name: "suppliers";
|
|
2078
|
-
schema: undefined;
|
|
2079
|
-
columns: {
|
|
2080
|
-
id: PgColumn< {
|
|
2081
|
-
name: "id";
|
|
2082
|
-
tableName: "suppliers";
|
|
2083
|
-
dataType: "number";
|
|
2084
|
-
columnType: "PgInteger";
|
|
2085
|
-
data: number;
|
|
2086
|
-
driverParam: string | number;
|
|
2087
|
-
notNull: true;
|
|
2088
|
-
hasDefault: false;
|
|
2089
|
-
isPrimaryKey: true;
|
|
2090
|
-
isAutoincrement: false;
|
|
2091
|
-
hasRuntimeDefault: false;
|
|
2092
|
-
enumValues: undefined;
|
|
2093
|
-
baseColumn: never;
|
|
2094
|
-
identity: undefined;
|
|
2095
|
-
generated: undefined;
|
|
2096
|
-
}, {}, {}>;
|
|
2097
|
-
name: PgColumn< {
|
|
2098
|
-
name: "name";
|
|
2099
|
-
tableName: "suppliers";
|
|
2100
|
-
dataType: "string";
|
|
2101
|
-
columnType: "PgText";
|
|
2102
|
-
data: string;
|
|
2103
|
-
driverParam: string;
|
|
2104
|
-
notNull: true;
|
|
2105
|
-
hasDefault: false;
|
|
2106
|
-
isPrimaryKey: false;
|
|
2107
|
-
isAutoincrement: false;
|
|
2108
|
-
hasRuntimeDefault: false;
|
|
2109
|
-
enumValues: [string, ...string[]];
|
|
2110
|
-
baseColumn: never;
|
|
2111
|
-
identity: undefined;
|
|
2112
|
-
generated: undefined;
|
|
2113
|
-
}, {}, {}>;
|
|
2114
|
-
description: PgColumn< {
|
|
2115
|
-
name: "description";
|
|
2116
|
-
tableName: "suppliers";
|
|
2117
|
-
dataType: "string";
|
|
2118
|
-
columnType: "PgText";
|
|
2119
|
-
data: string;
|
|
2120
|
-
driverParam: string;
|
|
2121
|
-
notNull: false;
|
|
2122
|
-
hasDefault: false;
|
|
2123
|
-
isPrimaryKey: false;
|
|
2124
|
-
isAutoincrement: false;
|
|
2125
|
-
hasRuntimeDefault: false;
|
|
2126
|
-
enumValues: [string, ...string[]];
|
|
2127
|
-
baseColumn: never;
|
|
2128
|
-
identity: undefined;
|
|
2129
|
-
generated: undefined;
|
|
2130
|
-
}, {}, {}>;
|
|
2131
|
-
internal: PgColumn< {
|
|
2132
|
-
name: "internal";
|
|
2133
|
-
tableName: "suppliers";
|
|
2134
|
-
dataType: "boolean";
|
|
2135
|
-
columnType: "PgBoolean";
|
|
2136
|
-
data: boolean;
|
|
2137
|
-
driverParam: boolean;
|
|
2138
|
-
notNull: false;
|
|
2139
|
-
hasDefault: true;
|
|
2140
|
-
isPrimaryKey: false;
|
|
2141
|
-
isAutoincrement: false;
|
|
2142
|
-
hasRuntimeDefault: false;
|
|
2143
|
-
enumValues: undefined;
|
|
2144
|
-
baseColumn: never;
|
|
2145
|
-
identity: undefined;
|
|
2146
|
-
generated: undefined;
|
|
2147
|
-
}, {}, {}>;
|
|
2148
|
-
organisation: PgColumn< {
|
|
2149
|
-
name: "organisation";
|
|
2150
|
-
tableName: "suppliers";
|
|
2151
|
-
dataType: "number";
|
|
2152
|
-
columnType: "PgInteger";
|
|
2153
|
-
data: number;
|
|
2154
|
-
driverParam: string | number;
|
|
2155
|
-
notNull: true;
|
|
2156
|
-
hasDefault: false;
|
|
2157
|
-
isPrimaryKey: false;
|
|
2158
|
-
isAutoincrement: false;
|
|
2159
|
-
hasRuntimeDefault: false;
|
|
2160
|
-
enumValues: undefined;
|
|
2161
|
-
baseColumn: never;
|
|
2162
|
-
identity: undefined;
|
|
2163
|
-
generated: undefined;
|
|
2164
|
-
}, {}, {}>;
|
|
2165
|
-
createdAt: PgColumn< {
|
|
2166
|
-
name: "created_at";
|
|
2167
|
-
tableName: "suppliers";
|
|
2168
|
-
dataType: "date";
|
|
2169
|
-
columnType: "PgTimestamp";
|
|
2170
|
-
data: Date;
|
|
2171
|
-
driverParam: string;
|
|
2172
|
-
notNull: false;
|
|
2173
|
-
hasDefault: true;
|
|
2174
|
-
isPrimaryKey: false;
|
|
2175
|
-
isAutoincrement: false;
|
|
2176
|
-
hasRuntimeDefault: false;
|
|
2177
|
-
enumValues: undefined;
|
|
2178
|
-
baseColumn: never;
|
|
2179
|
-
identity: undefined;
|
|
2180
|
-
generated: undefined;
|
|
2181
|
-
}, {}, {}>;
|
|
2182
|
-
updatedAt: PgColumn< {
|
|
2183
|
-
name: "updated_at";
|
|
2184
|
-
tableName: "suppliers";
|
|
2185
|
-
dataType: "date";
|
|
2186
|
-
columnType: "PgTimestamp";
|
|
2187
|
-
data: Date;
|
|
2188
|
-
driverParam: string;
|
|
2189
|
-
notNull: false;
|
|
2190
|
-
hasDefault: true;
|
|
2191
|
-
isPrimaryKey: false;
|
|
2192
|
-
isAutoincrement: false;
|
|
2193
|
-
hasRuntimeDefault: false;
|
|
2194
|
-
enumValues: undefined;
|
|
2195
|
-
baseColumn: never;
|
|
2196
|
-
identity: undefined;
|
|
2197
|
-
generated: undefined;
|
|
2198
|
-
}, {}, {}>;
|
|
2199
|
-
};
|
|
2200
|
-
dialect: "pg";
|
|
2201
|
-
}>;
|
|
2202
|
-
|
|
2203
|
-
export declare const suppliersRelations: Relations<"suppliers", {
|
|
2204
|
-
organisation: One<"organisations", true>;
|
|
2205
|
-
employees: Many<"employees">;
|
|
2206
|
-
}>;
|
|
2207
|
-
|
|
2208
1137
|
/**
|
|
2209
1138
|
* Time dimension with granularity
|
|
2210
1139
|
*/
|