linkgress-orm 0.0.1
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/LICENSE +21 -0
- package/README.md +196 -0
- package/dist/database/database-client.interface.d.ts +45 -0
- package/dist/database/database-client.interface.d.ts.map +1 -0
- package/dist/database/database-client.interface.js +20 -0
- package/dist/database/database-client.interface.js.map +1 -0
- package/dist/database/index.d.ts +5 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +10 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/pg-client.d.ts +30 -0
- package/dist/database/pg-client.d.ts.map +1 -0
- package/dist/database/pg-client.js +76 -0
- package/dist/database/pg-client.js.map +1 -0
- package/dist/database/postgres-client.d.ts +44 -0
- package/dist/database/postgres-client.d.ts.map +1 -0
- package/dist/database/postgres-client.js +111 -0
- package/dist/database/postgres-client.js.map +1 -0
- package/dist/database/types.d.ts +200 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +8 -0
- package/dist/database/types.js.map +1 -0
- package/dist/entity/base-entity.d.ts +21 -0
- package/dist/entity/base-entity.d.ts.map +1 -0
- package/dist/entity/base-entity.js +27 -0
- package/dist/entity/base-entity.js.map +1 -0
- package/dist/entity/db-column.d.ts +61 -0
- package/dist/entity/db-column.d.ts.map +1 -0
- package/dist/entity/db-column.js +35 -0
- package/dist/entity/db-column.js.map +1 -0
- package/dist/entity/db-context.d.ts +665 -0
- package/dist/entity/db-context.d.ts.map +1 -0
- package/dist/entity/db-context.js +1463 -0
- package/dist/entity/db-context.js.map +1 -0
- package/dist/entity/entity-base.d.ts +76 -0
- package/dist/entity/entity-base.d.ts.map +1 -0
- package/dist/entity/entity-base.js +42 -0
- package/dist/entity/entity-base.js.map +1 -0
- package/dist/entity/entity-builder.d.ts +171 -0
- package/dist/entity/entity-builder.d.ts.map +1 -0
- package/dist/entity/entity-builder.js +376 -0
- package/dist/entity/entity-builder.js.map +1 -0
- package/dist/entity/model-config.d.ts +18 -0
- package/dist/entity/model-config.d.ts.map +1 -0
- package/dist/entity/model-config.js +157 -0
- package/dist/entity/model-config.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/migration/db-schema-manager.d.ts +228 -0
- package/dist/migration/db-schema-manager.d.ts.map +1 -0
- package/dist/migration/db-schema-manager.js +1055 -0
- package/dist/migration/db-schema-manager.js.map +1 -0
- package/dist/migration/enum-migrator.d.ts +29 -0
- package/dist/migration/enum-migrator.d.ts.map +1 -0
- package/dist/migration/enum-migrator.js +137 -0
- package/dist/migration/enum-migrator.js.map +1 -0
- package/dist/query/collection-strategy.factory.d.ts +16 -0
- package/dist/query/collection-strategy.factory.d.ts.map +1 -0
- package/dist/query/collection-strategy.factory.js +37 -0
- package/dist/query/collection-strategy.factory.js.map +1 -0
- package/dist/query/collection-strategy.interface.d.ts +146 -0
- package/dist/query/collection-strategy.interface.d.ts.map +1 -0
- package/dist/query/collection-strategy.interface.js +3 -0
- package/dist/query/collection-strategy.interface.js.map +1 -0
- package/dist/query/conditions.d.ts +222 -0
- package/dist/query/conditions.d.ts.map +1 -0
- package/dist/query/conditions.js +446 -0
- package/dist/query/conditions.js.map +1 -0
- package/dist/query/cte-builder.d.ts +95 -0
- package/dist/query/cte-builder.d.ts.map +1 -0
- package/dist/query/cte-builder.js +172 -0
- package/dist/query/cte-builder.js.map +1 -0
- package/dist/query/grouped-query.d.ts +186 -0
- package/dist/query/grouped-query.d.ts.map +1 -0
- package/dist/query/grouped-query.js +588 -0
- package/dist/query/grouped-query.js.map +1 -0
- package/dist/query/join-builder.d.ts +106 -0
- package/dist/query/join-builder.d.ts.map +1 -0
- package/dist/query/join-builder.js +275 -0
- package/dist/query/join-builder.js.map +1 -0
- package/dist/query/query-builder.d.ts +543 -0
- package/dist/query/query-builder.d.ts.map +1 -0
- package/dist/query/query-builder.js +2649 -0
- package/dist/query/query-builder.js.map +1 -0
- package/dist/query/strategies/jsonb-collection-strategy.d.ts +51 -0
- package/dist/query/strategies/jsonb-collection-strategy.d.ts.map +1 -0
- package/dist/query/strategies/jsonb-collection-strategy.js +210 -0
- package/dist/query/strategies/jsonb-collection-strategy.js.map +1 -0
- package/dist/query/strategies/temptable-collection-strategy.d.ts +95 -0
- package/dist/query/strategies/temptable-collection-strategy.d.ts.map +1 -0
- package/dist/query/strategies/temptable-collection-strategy.js +456 -0
- package/dist/query/strategies/temptable-collection-strategy.js.map +1 -0
- package/dist/query/subquery.d.ts +152 -0
- package/dist/query/subquery.d.ts.map +1 -0
- package/dist/query/subquery.js +206 -0
- package/dist/query/subquery.js.map +1 -0
- package/dist/schema/column-builder.d.ts +127 -0
- package/dist/schema/column-builder.d.ts.map +1 -0
- package/dist/schema/column-builder.js +184 -0
- package/dist/schema/column-builder.js.map +1 -0
- package/dist/schema/inference.d.ts +26 -0
- package/dist/schema/inference.d.ts.map +1 -0
- package/dist/schema/inference.js +3 -0
- package/dist/schema/inference.js.map +1 -0
- package/dist/schema/navigation.d.ts +215 -0
- package/dist/schema/navigation.d.ts.map +1 -0
- package/dist/schema/navigation.js +233 -0
- package/dist/schema/navigation.js.map +1 -0
- package/dist/schema/row-type.d.ts +26 -0
- package/dist/schema/row-type.d.ts.map +1 -0
- package/dist/schema/row-type.js +3 -0
- package/dist/schema/row-type.js.map +1 -0
- package/dist/schema/sequence-builder.d.ts +87 -0
- package/dist/schema/sequence-builder.d.ts.map +1 -0
- package/dist/schema/sequence-builder.js +123 -0
- package/dist/schema/sequence-builder.js.map +1 -0
- package/dist/schema/table-builder.d.ts +122 -0
- package/dist/schema/table-builder.d.ts.map +1 -0
- package/dist/schema/table-builder.js +132 -0
- package/dist/schema/table-builder.js.map +1 -0
- package/dist/schema/typed-schema.d.ts +22 -0
- package/dist/schema/typed-schema.d.ts.map +1 -0
- package/dist/schema/typed-schema.js +28 -0
- package/dist/schema/typed-schema.js.map +1 -0
- package/dist/types/column-types.d.ts +20 -0
- package/dist/types/column-types.d.ts.map +1 -0
- package/dist/types/column-types.js +14 -0
- package/dist/types/column-types.js.map +1 -0
- package/dist/types/custom-types.d.ts +85 -0
- package/dist/types/custom-types.d.ts.map +1 -0
- package/dist/types/custom-types.js +132 -0
- package/dist/types/custom-types.js.map +1 -0
- package/dist/types/enum-builder.d.ts +31 -0
- package/dist/types/enum-builder.d.ts.map +1 -0
- package/dist/types/enum-builder.js +46 -0
- package/dist/types/enum-builder.js.map +1 -0
- package/dist/types/metadata.d.ts +67 -0
- package/dist/types/metadata.d.ts.map +1 -0
- package/dist/types/metadata.js +57 -0
- package/dist/types/metadata.js.map +1 -0
- package/dist/types/type-mapper.d.ts +49 -0
- package/dist/types/type-mapper.d.ts.map +1 -0
- package/dist/types/type-mapper.js +49 -0
- package/dist/types/type-mapper.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditions.js","sourceRoot":"","sources":["../../src/query/conditions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { SelectQueryBuilder } from './query-builder';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a Common Table Expression (CTE) with strong typing
|
|
4
|
+
*/
|
|
5
|
+
export declare class DbCte<TColumns> {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly query: string;
|
|
8
|
+
readonly params: unknown[];
|
|
9
|
+
readonly columnDefs: TColumns;
|
|
10
|
+
readonly selectionMetadata?: Record<string, any> | undefined;
|
|
11
|
+
constructor(name: string, query: string, params: unknown[], columnDefs: TColumns, selectionMetadata?: Record<string, any> | undefined);
|
|
12
|
+
/**
|
|
13
|
+
* Get a typed reference to a CTE column
|
|
14
|
+
*/
|
|
15
|
+
getColumn<K extends keyof TColumns>(columnName: K): TColumns[K];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Builder for creating Common Table Expressions (CTEs)
|
|
19
|
+
*/
|
|
20
|
+
export declare class DbCteBuilder {
|
|
21
|
+
private ctes;
|
|
22
|
+
private paramOffset;
|
|
23
|
+
constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Create a regular CTE from a query
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* const activeUsersCte = cteBuilder.with(
|
|
29
|
+
* 'active_users',
|
|
30
|
+
* db.users
|
|
31
|
+
* .where(u => lt(u.id, 100))
|
|
32
|
+
* .select(u => ({
|
|
33
|
+
* userId: u.id,
|
|
34
|
+
* createdAt: u.createdAt,
|
|
35
|
+
* postCount: u.posts.count()
|
|
36
|
+
* }))
|
|
37
|
+
* );
|
|
38
|
+
*/
|
|
39
|
+
with<TSelection extends Record<string, unknown>>(cteName: string, query: SelectQueryBuilder<TSelection> | {
|
|
40
|
+
toList: () => Promise<TSelection[]>;
|
|
41
|
+
}): {
|
|
42
|
+
cte: DbCte<TSelection>;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Create an aggregation CTE that groups results into a JSONB array
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* const aggregatedCte = cteBuilder.withAggregation(
|
|
49
|
+
* 'aggregated_users',
|
|
50
|
+
* db.userAddress.select(ua => ({
|
|
51
|
+
* id: ua.id,
|
|
52
|
+
* userId: ua.userId,
|
|
53
|
+
* street: ua.address
|
|
54
|
+
* })),
|
|
55
|
+
* ua => ({ userId: ua.userId }),
|
|
56
|
+
* 'items'
|
|
57
|
+
* );
|
|
58
|
+
*/
|
|
59
|
+
withAggregation<TSelection extends Record<string, unknown>, TKey extends Record<string, unknown>, TAlias extends string = 'items'>(cteName: string, query: SelectQueryBuilder<TSelection> | {
|
|
60
|
+
toList: () => Promise<TSelection[]>;
|
|
61
|
+
}, keySelector: (value: TSelection) => TKey, aggregationAlias?: TAlias): DbCte<TKey & {
|
|
62
|
+
[K in TAlias]: Array<AggregatedItemType<TSelection, TKey>>;
|
|
63
|
+
}>;
|
|
64
|
+
/**
|
|
65
|
+
* Get all CTEs created by this builder
|
|
66
|
+
*/
|
|
67
|
+
getCtes(): DbCte<any>[];
|
|
68
|
+
/**
|
|
69
|
+
* Clear all CTEs from this builder
|
|
70
|
+
*/
|
|
71
|
+
clear(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Infer column types from query selection
|
|
74
|
+
*/
|
|
75
|
+
private inferColumnTypes;
|
|
76
|
+
/**
|
|
77
|
+
* Create a mock item for extracting group by columns
|
|
78
|
+
*/
|
|
79
|
+
private createMockItem;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Type helper to extract CTE column types
|
|
83
|
+
*/
|
|
84
|
+
export type InferCteColumns<T> = T extends DbCte<infer TColumns> ? TColumns : never;
|
|
85
|
+
/**
|
|
86
|
+
* Type helper for aggregated items - removes the grouping keys from the selection
|
|
87
|
+
*/
|
|
88
|
+
export type AggregatedItemType<TSelection extends Record<string, unknown>, TKey extends Record<string, unknown>> = {
|
|
89
|
+
[K in Exclude<keyof TSelection, keyof TKey>]: TSelection[K];
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Check if a value is a CTE
|
|
93
|
+
*/
|
|
94
|
+
export declare function isCte(value: any): value is DbCte<any>;
|
|
95
|
+
//# sourceMappingURL=cte-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cte-builder.d.ts","sourceRoot":"","sources":["../../src/query/cte-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGnE;;GAEG;AACH,qBAAa,KAAK,CAAC,QAAQ;aAEP,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,OAAO,EAAE;aACjB,UAAU,EAAE,QAAQ;aACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;gBAJvC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,EAAE,EACjB,UAAU,EAAE,QAAQ,EACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAA;IAGzD;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;CAGhE;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,WAAW,CAAa;;IAIhC;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;KAAE,GAC9E;QAAE,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;KAAE;IA6B7B;;;;;;;;;;;;;;OAcG;IACH,eAAe,CACb,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,SAAS,MAAM,GAAG,OAAO,EAE/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;KAAE,EAC/E,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACxC,gBAAgB,CAAC,EAAE,MAAM,GACxB,KAAK,CAAC,IAAI,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,KAAK,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KAAE,CAAC;IAuD/E;;OAEG;IACH,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;IAIvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,cAAc;CAUvB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAClC;KACD,CAAC,IAAI,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAErD"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DbCteBuilder = exports.DbCte = void 0;
|
|
4
|
+
exports.isCte = isCte;
|
|
5
|
+
/**
|
|
6
|
+
* Represents a Common Table Expression (CTE) with strong typing
|
|
7
|
+
*/
|
|
8
|
+
class DbCte {
|
|
9
|
+
constructor(name, query, params, columnDefs, selectionMetadata) {
|
|
10
|
+
this.name = name;
|
|
11
|
+
this.query = query;
|
|
12
|
+
this.params = params;
|
|
13
|
+
this.columnDefs = columnDefs;
|
|
14
|
+
this.selectionMetadata = selectionMetadata;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get a typed reference to a CTE column
|
|
18
|
+
*/
|
|
19
|
+
getColumn(columnName) {
|
|
20
|
+
return columnName;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.DbCte = DbCte;
|
|
24
|
+
/**
|
|
25
|
+
* Builder for creating Common Table Expressions (CTEs)
|
|
26
|
+
*/
|
|
27
|
+
class DbCteBuilder {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.ctes = [];
|
|
30
|
+
this.paramOffset = 1;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a regular CTE from a query
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* const activeUsersCte = cteBuilder.with(
|
|
37
|
+
* 'active_users',
|
|
38
|
+
* db.users
|
|
39
|
+
* .where(u => lt(u.id, 100))
|
|
40
|
+
* .select(u => ({
|
|
41
|
+
* userId: u.id,
|
|
42
|
+
* createdAt: u.createdAt,
|
|
43
|
+
* postCount: u.posts.count()
|
|
44
|
+
* }))
|
|
45
|
+
* );
|
|
46
|
+
*/
|
|
47
|
+
with(cteName, query) {
|
|
48
|
+
const context = {
|
|
49
|
+
paramCounter: this.paramOffset,
|
|
50
|
+
params: [],
|
|
51
|
+
};
|
|
52
|
+
// Build the CTE query and get selection metadata
|
|
53
|
+
const mockRow = query.createMockRow();
|
|
54
|
+
const selectionResult = query.selector(mockRow);
|
|
55
|
+
const sql = query.buildQuery(selectionResult, {
|
|
56
|
+
ctes: new Map(),
|
|
57
|
+
cteCounter: 0,
|
|
58
|
+
paramCounter: context.paramCounter,
|
|
59
|
+
allParams: context.params,
|
|
60
|
+
}).sql;
|
|
61
|
+
// Update parameter offset for next CTE
|
|
62
|
+
this.paramOffset = context.paramCounter;
|
|
63
|
+
// Create column definitions from the selection
|
|
64
|
+
const columnDefs = {};
|
|
65
|
+
const cte = new DbCte(cteName, sql, context.params, columnDefs, selectionResult);
|
|
66
|
+
this.ctes.push(cte);
|
|
67
|
+
return { cte };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Create an aggregation CTE that groups results into a JSONB array
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* const aggregatedCte = cteBuilder.withAggregation(
|
|
74
|
+
* 'aggregated_users',
|
|
75
|
+
* db.userAddress.select(ua => ({
|
|
76
|
+
* id: ua.id,
|
|
77
|
+
* userId: ua.userId,
|
|
78
|
+
* street: ua.address
|
|
79
|
+
* })),
|
|
80
|
+
* ua => ({ userId: ua.userId }),
|
|
81
|
+
* 'items'
|
|
82
|
+
* );
|
|
83
|
+
*/
|
|
84
|
+
withAggregation(cteName, query, keySelector, aggregationAlias) {
|
|
85
|
+
const context = {
|
|
86
|
+
paramCounter: this.paramOffset,
|
|
87
|
+
params: [],
|
|
88
|
+
};
|
|
89
|
+
// Build the inner query
|
|
90
|
+
const innerSql = query.buildQuery(query.selector(query.createMockRow()), {
|
|
91
|
+
ctes: new Map(),
|
|
92
|
+
cteCounter: 0,
|
|
93
|
+
paramCounter: context.paramCounter,
|
|
94
|
+
allParams: context.params,
|
|
95
|
+
}).sql;
|
|
96
|
+
// Get group by columns
|
|
97
|
+
const mockItem = this.createMockItem();
|
|
98
|
+
const groupByResult = keySelector(mockItem);
|
|
99
|
+
const groupByColumns = Object.keys(groupByResult);
|
|
100
|
+
// Build the aggregation query
|
|
101
|
+
const selectColumns = groupByColumns.map(col => `"${col}"`).join(', ');
|
|
102
|
+
const groupByClause = groupByColumns.map(col => `"${col}"`).join(', ');
|
|
103
|
+
// Use provided alias or default to 'items'
|
|
104
|
+
const finalAggregationAlias = (aggregationAlias || 'items');
|
|
105
|
+
// For aggregation CTEs, we need to exclude the grouping columns from the aggregated items
|
|
106
|
+
// This implements AggregatedItemType<TSelection, TKey> at the SQL level
|
|
107
|
+
// However, getting all column names requires introspection we don't have access to here
|
|
108
|
+
// So we'll use jsonb_agg with to_jsonb which includes all columns
|
|
109
|
+
// The type system will indicate which fields should be excluded
|
|
110
|
+
const aggregationSql = `
|
|
111
|
+
SELECT ${selectColumns},
|
|
112
|
+
jsonb_agg(to_jsonb(t.*)) as "${finalAggregationAlias}"
|
|
113
|
+
FROM (${innerSql}) t
|
|
114
|
+
GROUP BY ${groupByClause}
|
|
115
|
+
`.trim();
|
|
116
|
+
// Update parameter offset
|
|
117
|
+
this.paramOffset = context.paramCounter;
|
|
118
|
+
// Create column definitions
|
|
119
|
+
const columnDefs = {};
|
|
120
|
+
groupByColumns.forEach(col => {
|
|
121
|
+
columnDefs[col] = col;
|
|
122
|
+
});
|
|
123
|
+
columnDefs[finalAggregationAlias] = finalAggregationAlias;
|
|
124
|
+
const cte = new DbCte(cteName, aggregationSql, context.params, columnDefs);
|
|
125
|
+
this.ctes.push(cte);
|
|
126
|
+
return cte;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get all CTEs created by this builder
|
|
130
|
+
*/
|
|
131
|
+
getCtes() {
|
|
132
|
+
return this.ctes;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Clear all CTEs from this builder
|
|
136
|
+
*/
|
|
137
|
+
clear() {
|
|
138
|
+
this.ctes = [];
|
|
139
|
+
this.paramOffset = 1;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Infer column types from query selection
|
|
143
|
+
*/
|
|
144
|
+
inferColumnTypes(query) {
|
|
145
|
+
// Try to extract selection from query
|
|
146
|
+
if (query.selection) {
|
|
147
|
+
return query.selection;
|
|
148
|
+
}
|
|
149
|
+
return {};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Create a mock item for extracting group by columns
|
|
153
|
+
*/
|
|
154
|
+
createMockItem() {
|
|
155
|
+
return new Proxy({}, {
|
|
156
|
+
get: (target, prop) => {
|
|
157
|
+
if (typeof prop === 'string') {
|
|
158
|
+
return prop;
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.DbCteBuilder = DbCteBuilder;
|
|
166
|
+
/**
|
|
167
|
+
* Check if a value is a CTE
|
|
168
|
+
*/
|
|
169
|
+
function isCte(value) {
|
|
170
|
+
return value instanceof DbCte;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=cte-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cte-builder.js","sourceRoot":"","sources":["../../src/query/cte-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { Condition, FieldRef } from './conditions';
|
|
2
|
+
import { TableSchema } from '../schema/table-builder';
|
|
3
|
+
import type { DatabaseClient } from '../database/database-client.interface';
|
|
4
|
+
import type { QueryExecutor } from '../entity/db-context';
|
|
5
|
+
import { Subquery } from './subquery';
|
|
6
|
+
import type { ManualJoinDefinition } from './query-builder';
|
|
7
|
+
/**
|
|
8
|
+
* Type helper to resolve FieldRef types to their value types
|
|
9
|
+
*/
|
|
10
|
+
type ResolveFieldRefs<T> = T extends FieldRef<any, infer V> ? V : T extends Array<infer U> ? Array<ResolveFieldRefs<U>> : T extends object ? {
|
|
11
|
+
[K in keyof T]: ResolveFieldRefs<T[K]>;
|
|
12
|
+
} : T;
|
|
13
|
+
/**
|
|
14
|
+
* Represents a grouped item with access to the grouping key and aggregate functions
|
|
15
|
+
* TGroupingKey: The shape of the grouping key (e.g., { street: string })
|
|
16
|
+
* TOriginalRow: The original row type before grouping
|
|
17
|
+
*/
|
|
18
|
+
export interface GroupedItem<TGroupingKey, TOriginalRow> {
|
|
19
|
+
/**
|
|
20
|
+
* The grouping key - contains all fields specified in groupBy
|
|
21
|
+
*/
|
|
22
|
+
readonly key: ResolveFieldRefs<TGroupingKey>;
|
|
23
|
+
/**
|
|
24
|
+
* Count the number of items in this group
|
|
25
|
+
*/
|
|
26
|
+
count(): number;
|
|
27
|
+
/**
|
|
28
|
+
* Sum a numeric field across all items in this group
|
|
29
|
+
* Returns the inferred type from the selector, or number if the type cannot be inferred
|
|
30
|
+
*/
|
|
31
|
+
sum<TField>(selector: (item: TOriginalRow) => TField): TField extends FieldRef<any, infer V> ? V : TField extends number ? number : number;
|
|
32
|
+
/**
|
|
33
|
+
* Get the minimum value of a field across all items in this group
|
|
34
|
+
* Returns the inferred type from the selector
|
|
35
|
+
*/
|
|
36
|
+
min<TField>(selector: (item: TOriginalRow) => TField): TField extends FieldRef<any, infer V> ? V : TField;
|
|
37
|
+
/**
|
|
38
|
+
* Get the maximum value of a field across all items in this group
|
|
39
|
+
* Returns the inferred type from the selector
|
|
40
|
+
*/
|
|
41
|
+
max<TField>(selector: (item: TOriginalRow) => TField): TField extends FieldRef<any, infer V> ? V : TField;
|
|
42
|
+
/**
|
|
43
|
+
* Get the average value of a numeric field across all items in this group
|
|
44
|
+
* Always returns number since average is always numeric
|
|
45
|
+
*/
|
|
46
|
+
avg(selector: (item: TOriginalRow) => FieldRef<any, number> | number): number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Aggregate field reference - used in HAVING clauses
|
|
50
|
+
* Represents a field that is an aggregate function result (e.g., COUNT(*), SUM(column))
|
|
51
|
+
*/
|
|
52
|
+
export interface AggregateFieldRef<TValueType = any> extends FieldRef<string, TValueType> {
|
|
53
|
+
readonly __isAggregate: true;
|
|
54
|
+
readonly __aggregateType: 'COUNT' | 'SUM' | 'MIN' | 'MAX' | 'AVG';
|
|
55
|
+
readonly __aggregateSelector?: (item: any) => any;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Grouped query builder - result of calling groupBy()
|
|
59
|
+
* Provides type-safe access to grouping keys and aggregate functions
|
|
60
|
+
*/
|
|
61
|
+
export declare class GroupedQueryBuilder<TOriginalRow, TGroupingKey> {
|
|
62
|
+
private schema;
|
|
63
|
+
private client;
|
|
64
|
+
private originalSelector;
|
|
65
|
+
private groupingKeySelector;
|
|
66
|
+
private whereCond?;
|
|
67
|
+
private havingCond?;
|
|
68
|
+
private limitValue?;
|
|
69
|
+
private offsetValue?;
|
|
70
|
+
private orderByFields;
|
|
71
|
+
private executor?;
|
|
72
|
+
private manualJoins;
|
|
73
|
+
private joinCounter;
|
|
74
|
+
constructor(schema: TableSchema, client: DatabaseClient, originalSelector: (row: any) => any, groupingKeySelector: (row: TOriginalRow) => TGroupingKey, whereCond?: Condition, executor?: QueryExecutor, manualJoins?: ManualJoinDefinition[], joinCounter?: number);
|
|
75
|
+
/**
|
|
76
|
+
* Select from grouped results
|
|
77
|
+
* The selector receives a GroupedItem with key and aggregate functions
|
|
78
|
+
*/
|
|
79
|
+
select<TSelection>(selector: (group: GroupedItem<TGroupingKey, TOriginalRow>) => TSelection): GroupedSelectQueryBuilder<TSelection, TOriginalRow, TGroupingKey>;
|
|
80
|
+
/**
|
|
81
|
+
* Add HAVING condition (filter groups after aggregation)
|
|
82
|
+
*/
|
|
83
|
+
having(condition: (group: GroupedItem<TGroupingKey, TOriginalRow>) => Condition): this;
|
|
84
|
+
/**
|
|
85
|
+
* Create a mock GroupedItem for type inference and condition building
|
|
86
|
+
*/
|
|
87
|
+
private createMockGroupedItem;
|
|
88
|
+
/**
|
|
89
|
+
* Create mock row for the original table
|
|
90
|
+
*/
|
|
91
|
+
private createMockRow;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Grouped select query builder - result of calling select() on a GroupedQueryBuilder
|
|
95
|
+
*/
|
|
96
|
+
export declare class GroupedSelectQueryBuilder<TSelection, TOriginalRow, TGroupingKey> {
|
|
97
|
+
private schema;
|
|
98
|
+
private client;
|
|
99
|
+
private originalSelector;
|
|
100
|
+
private groupingKeySelector;
|
|
101
|
+
private resultSelector;
|
|
102
|
+
private whereCond?;
|
|
103
|
+
private havingCond?;
|
|
104
|
+
private limitValue?;
|
|
105
|
+
private offsetValue?;
|
|
106
|
+
private orderByFields;
|
|
107
|
+
private executor?;
|
|
108
|
+
private manualJoins;
|
|
109
|
+
private joinCounter;
|
|
110
|
+
constructor(schema: TableSchema, client: DatabaseClient, originalSelector: (row: any) => any, groupingKeySelector: (row: TOriginalRow) => TGroupingKey, resultSelector: (group: GroupedItem<TGroupingKey, TOriginalRow>) => TSelection, whereCond?: Condition, havingCond?: Condition, limit?: number, offset?: number, orderBy?: Array<{
|
|
111
|
+
field: string;
|
|
112
|
+
direction: 'ASC' | 'DESC';
|
|
113
|
+
}>, executor?: QueryExecutor, manualJoins?: ManualJoinDefinition[], joinCounter?: number);
|
|
114
|
+
/**
|
|
115
|
+
* Add HAVING condition (filter groups after aggregation)
|
|
116
|
+
*/
|
|
117
|
+
having(condition: (group: GroupedItem<TGroupingKey, TOriginalRow>) => Condition): this;
|
|
118
|
+
/**
|
|
119
|
+
* Limit results
|
|
120
|
+
*/
|
|
121
|
+
limit(count: number): this;
|
|
122
|
+
/**
|
|
123
|
+
* Offset results
|
|
124
|
+
*/
|
|
125
|
+
offset(count: number): this;
|
|
126
|
+
/**
|
|
127
|
+
* Order by field(s) from the selected result
|
|
128
|
+
* @example
|
|
129
|
+
* .orderBy(p => p.colName)
|
|
130
|
+
* .orderBy(p => [p.colName, p.otherCol])
|
|
131
|
+
* .orderBy(p => [[p.colName, 'ASC'], [p.otherCol, 'DESC']])
|
|
132
|
+
*/
|
|
133
|
+
orderBy(selector: (row: TSelection) => any): this;
|
|
134
|
+
orderBy(selector: (row: TSelection) => any[]): this;
|
|
135
|
+
orderBy(selector: (row: TSelection) => Array<[any, 'ASC' | 'DESC']>): this;
|
|
136
|
+
/**
|
|
137
|
+
* Execute query and return results
|
|
138
|
+
*/
|
|
139
|
+
toList(): Promise<ResolveFieldRefs<TSelection>[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Transform database results - convert aggregate values from strings to numbers
|
|
142
|
+
*/
|
|
143
|
+
private transformResults;
|
|
144
|
+
/**
|
|
145
|
+
* Execute query and return first result or null
|
|
146
|
+
*/
|
|
147
|
+
first(): Promise<ResolveFieldRefs<TSelection> | null>;
|
|
148
|
+
/**
|
|
149
|
+
* Execute query and return first result or throw
|
|
150
|
+
*/
|
|
151
|
+
firstOrThrow(): Promise<ResolveFieldRefs<TSelection>>;
|
|
152
|
+
/**
|
|
153
|
+
* Convert to subquery for use in other queries
|
|
154
|
+
*/
|
|
155
|
+
asSubquery<TMode extends 'scalar' | 'array' | 'table' = 'table'>(mode?: TMode): Subquery<TMode extends 'scalar' ? ResolveFieldRefs<TSelection> : TMode extends 'array' ? ResolveFieldRefs<TSelection>[] : ResolveFieldRefs<TSelection>, TMode>;
|
|
156
|
+
/**
|
|
157
|
+
* Build the SQL query for grouped results
|
|
158
|
+
*/
|
|
159
|
+
private buildQuery;
|
|
160
|
+
/**
|
|
161
|
+
* Create mock row for the original table
|
|
162
|
+
*/
|
|
163
|
+
private createMockRow;
|
|
164
|
+
/**
|
|
165
|
+
* Create a mock GroupedItem for type inference
|
|
166
|
+
*/
|
|
167
|
+
private createMockGroupedItem;
|
|
168
|
+
/**
|
|
169
|
+
* Build HAVING condition SQL - handles aggregate field refs specially
|
|
170
|
+
*/
|
|
171
|
+
private buildHavingCondition;
|
|
172
|
+
/**
|
|
173
|
+
* Transform a HAVING condition by replacing aggregate field refs with SQL fragments
|
|
174
|
+
*/
|
|
175
|
+
private transformHavingCondition;
|
|
176
|
+
/**
|
|
177
|
+
* Build SQL for an aggregate field reference
|
|
178
|
+
*/
|
|
179
|
+
private buildAggregateFieldSql;
|
|
180
|
+
/**
|
|
181
|
+
* Get the operator string from a condition object
|
|
182
|
+
*/
|
|
183
|
+
private getOperatorForCondition;
|
|
184
|
+
}
|
|
185
|
+
export {};
|
|
186
|
+
//# sourceMappingURL=grouped-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grouped-query.d.ts","sourceRoot":"","sources":["../../src/query/grouped-query.ts"],"names":[],"mappings":"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"}
|