linkgress-orm 0.4.3 → 0.4.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.
@@ -12,6 +12,11 @@ export declare class MigrationJournal {
12
12
  private schemaName;
13
13
  private qualifiedName;
14
14
  constructor(client: DatabaseClient, config?: Pick<MigrationConfig, 'journalTable' | 'journalSchema'>);
15
+ /**
16
+ * Check if the journal table exists in the database without creating it.
17
+ * Used to detect whether the schema has been previously set up.
18
+ */
19
+ tableExists(): Promise<boolean>;
15
20
  /**
16
21
  * Ensure the journal table exists in the database.
17
22
  * Creates it if it doesn't exist.
@@ -1 +1 @@
1
- {"version":3,"file":"migration-journal.d.ts","sourceRoot":"","sources":["../../src/migration/migration-journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;;;;GAKG;AACH,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;gBAGpB,MAAM,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,eAAe,CAAC;IAOlE;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAOpD;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnD;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;;OAGG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB"}
1
+ {"version":3,"file":"migration-journal.d.ts","sourceRoot":"","sources":["../../src/migration/migration-journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;;;;GAKG;AACH,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;gBAGpB,MAAM,EAAE,cAAc,EAC9B,MAAM,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,eAAe,CAAC;IAOlE;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAWrC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAOpD;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQnD;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;;OAGG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB"}
@@ -14,6 +14,17 @@ class MigrationJournal {
14
14
  this.schemaName = config?.journalSchema || 'public';
15
15
  this.qualifiedName = `"${this.schemaName}"."${this.tableName}"`;
16
16
  }
17
+ /**
18
+ * Check if the journal table exists in the database without creating it.
19
+ * Used to detect whether the schema has been previously set up.
20
+ */
21
+ async tableExists() {
22
+ const result = await this.client.query(`SELECT EXISTS (
23
+ SELECT 1 FROM information_schema.tables
24
+ WHERE table_schema = $1 AND table_name = $2
25
+ ) as exists`, [this.schemaName, this.tableName]);
26
+ return result.rows[0]?.exists === true;
27
+ }
17
28
  /**
18
29
  * Ensure the journal table exists in the database.
19
30
  * Creates it if it doesn't exist.
@@ -1 +1 @@
1
- {"version":3,"file":"migration-journal.js","sourceRoot":"","sources":["../../src/migration/migration-journal.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACH,MAAa,gBAAgB;IAK3B,YACU,MAAsB,EAC9B,MAAgE;QADxD,WAAM,GAAN,MAAM,CAAgB;QAG9B,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,YAAY,IAAI,cAAc,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,aAAa,IAAI,QAAQ,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,SAAS,GAAG,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,iCAAiC;QACjC,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,gCAAgC,IAAI,CAAC,UAAU,GAAG,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG;mCACmB,IAAI,CAAC,aAAa;;;;;KAKhD,CAAC;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACpC,wCAAwC,IAAI,CAAC,aAAa,wBAAwB,CACnF,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACpC,iBAAiB,IAAI,CAAC,aAAa,sBAAsB,EACzD,CAAC,QAAQ,CAAC,CACX,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,eAAe,IAAI,CAAC,aAAa,yBAAyB,EAC1D,CAAC,QAAQ,CAAC,CACX,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,eAAe,IAAI,CAAC,aAAa,sBAAsB,EACvD,CAAC,QAAQ,CAAC,CACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AApGD,4CAoGC"}
1
+ {"version":3,"file":"migration-journal.js","sourceRoot":"","sources":["../../src/migration/migration-journal.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACH,MAAa,gBAAgB;IAK3B,YACU,MAAsB,EAC9B,MAAgE;QADxD,WAAM,GAAN,MAAM,CAAgB;QAG9B,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,YAAY,IAAI,cAAc,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,aAAa,IAAI,QAAQ,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,SAAS,GAAG,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACpC;;;kBAGY,EACZ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAClC,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,iCAAiC;QACjC,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,gCAAgC,IAAI,CAAC,UAAU,GAAG,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG;mCACmB,IAAI,CAAC,aAAa;;;;;KAKhD,CAAC;QACF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACpC,wCAAwC,IAAI,CAAC,aAAa,wBAAwB,CACnF,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACpC,iBAAiB,IAAI,CAAC,aAAa,sBAAsB,EACzD,CAAC,QAAQ,CAAC,CACX,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,eAAe,IAAI,CAAC,aAAa,yBAAyB,EAC1D,CAAC,QAAQ,CAAC,CACX,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,eAAe,IAAI,CAAC,aAAa,sBAAsB,EACvD,CAAC,QAAQ,CAAC,CACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AAnHD,4CAmHC"}
@@ -39,6 +39,10 @@ export declare class MigrationRunner {
39
39
  /**
40
40
  * Run all pending migrations in chronological order.
41
41
  *
42
+ * If the journal table does not exist (fresh database), the schema is
43
+ * created from the model definition first (diff-based), and all existing
44
+ * migration files are recorded as applied.
45
+ *
42
46
  * Each migration is executed within a transaction. If a migration fails,
43
47
  * the transaction is rolled back and execution stops.
44
48
  *
@@ -1 +1 @@
1
- {"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../../src/migration/migration-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,eAAe;IAOxB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IAPhB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAA4B;gBAGhC,EAAE,EAAE,eAAe,EACnB,MAAM,EAAE,eAAe;IAQjC,OAAO,CAAC,GAAG;IAMX;;;;;;;OAOG;IACG,EAAE,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAmDvC;;;;;;;OAOG;IACG,IAAI,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwD1D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAU9C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAU9C;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;IAcnF;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACH,UAAU,IAAI,gBAAgB;CAG/B"}
1
+ {"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../../src/migration/migration-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,eAAe;IAOxB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IAPhB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAA4B;gBAGhC,EAAE,EAAE,eAAe,EACnB,MAAM,EAAE,eAAe;IAQjC,OAAO,CAAC,GAAG;IAMX;;;;;;;;;;;OAWG;IACG,EAAE,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA4EvC;;;;;;;OAOG;IACG,IAAI,CAAC,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwD1D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAU9C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAU9C;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC;IAcnF;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACH,UAAU,IAAI,gBAAgB;CAG/B"}
@@ -45,12 +45,35 @@ class MigrationRunner {
45
45
  /**
46
46
  * Run all pending migrations in chronological order.
47
47
  *
48
+ * If the journal table does not exist (fresh database), the schema is
49
+ * created from the model definition first (diff-based), and all existing
50
+ * migration files are recorded as applied.
51
+ *
48
52
  * Each migration is executed within a transaction. If a migration fails,
49
53
  * the transaction is rolled back and execution stops.
50
54
  *
51
55
  * @returns Result containing applied, skipped, and failed migrations
52
56
  */
53
57
  async up() {
58
+ // Check if journal table exists — if not, this is a fresh database
59
+ const journalExists = await this.journal.tableExists();
60
+ if (!journalExists) {
61
+ this.log('No migration journal found — creating schema from model...');
62
+ await this.db.getSchemaManager().migrate();
63
+ // Create journal table and mark all existing migrations as applied
64
+ await this.journal.ensureTable();
65
+ const allMigrations = await this.loader.loadAllMigrations();
66
+ const result = {
67
+ applied: [],
68
+ skipped: allMigrations.map(m => m.filename),
69
+ };
70
+ for (const migration of allMigrations) {
71
+ await this.journal.recordApplied(migration.filename);
72
+ this.log(` Recorded as applied: ${migration.filename}`);
73
+ }
74
+ this.log(`Schema created. ${allMigrations.length} migration(s) recorded as applied.`);
75
+ return result;
76
+ }
54
77
  await this.journal.ensureTable();
55
78
  const allMigrations = await this.loader.loadAllMigrations();
56
79
  const applied = await this.journal.getApplied();
@@ -1 +1 @@
1
- {"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../src/migration/migration-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../src/migration/migration-runner.ts"],"names":[],"mappings":"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"}
@@ -127,7 +127,8 @@ export declare class GroupedQueryBuilder<TOriginalRow, TGroupingKey> {
127
127
  private executor?;
128
128
  private manualJoins;
129
129
  private joinCounter;
130
- constructor(schema: TableSchema, client: DatabaseClient, originalSelector: (row: any) => any, groupingKeySelector: (row: TOriginalRow) => TGroupingKey, whereCond?: Condition, executor?: QueryExecutor, manualJoins?: ManualJoinDefinition[], joinCounter?: number);
130
+ private schemaRegistry?;
131
+ constructor(schema: TableSchema, client: DatabaseClient, originalSelector: (row: any) => any, groupingKeySelector: (row: TOriginalRow) => TGroupingKey, whereCond?: Condition, executor?: QueryExecutor, manualJoins?: ManualJoinDefinition[], joinCounter?: number, schemaRegistry?: Map<string, TableSchema>);
131
132
  /**
132
133
  * Select from grouped results
133
134
  * The selector receives a GroupedItem with key and aggregate functions
@@ -163,10 +164,11 @@ export declare class GroupedSelectQueryBuilder<TSelection, TOriginalRow, TGroupi
163
164
  private executor?;
164
165
  private manualJoins;
165
166
  private joinCounter;
167
+ private schemaRegistry?;
166
168
  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<{
167
169
  field: string;
168
170
  direction: 'ASC' | 'DESC';
169
- }>, executor?: QueryExecutor, manualJoins?: ManualJoinDefinition[], joinCounter?: number);
171
+ }>, executor?: QueryExecutor, manualJoins?: ManualJoinDefinition[], joinCounter?: number, schemaRegistry?: Map<string, TableSchema>);
170
172
  /**
171
173
  * Add HAVING condition (filter groups after aggregation)
172
174
  */
@@ -310,9 +312,14 @@ export declare class GroupedSelectQueryBuilder<TSelection, TOriginalRow, TGroupi
310
312
  */
311
313
  private detectAndAddJoinsFromSelection;
312
314
  /**
313
- * Add a JOIN for a FieldRef if it references a related table
315
+ * Collect all table aliases from a selection
314
316
  */
315
- private addJoinForFieldRef;
317
+ private collectTableAliasesFromSelection;
318
+ /**
319
+ * Resolve all navigation joins by finding the correct path through the schema graph.
320
+ * Handles multi-level navigation like task.level.createdBy.
321
+ */
322
+ private resolveJoinsForTableAliases;
316
323
  /**
317
324
  * Build HAVING condition SQL - handles aggregate field refs specially
318
325
  */
@@ -1 +1 @@
1
- {"version":3,"file":"grouped-query.d.ts","sourceRoot":"","sources":["../../src/query/grouped-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,WAAW,EAAmB,QAAQ,EAAsB,MAAM,cAAc,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,KAAK,EAAS,MAAM,eAAe,CAAC;AAG7C;;GAEG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,GAAG,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,YAAY,EAAE,IAAI,CAAA;CAAE,GACtD,KAAK,GACL,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,GAC1B,KAAK,GACL,CAAC,SAAS;IAAE,OAAO,IAAI,MAAM,CAAC,CAAA;CAAE,GAChC,CAAC,SAAS,CAAC,GACT,IAAI,GACJ,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GACrD,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AAEV;;GAEG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,IAAI,MAAM,CAAA;CAAE,GACrD,IAAI,GACJ,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAA;CAAE,GACpD,IAAI,GACJ,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAChC,IAAI,GACJ,CAAC,SAAS;IAAE,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,GAC1C,IAAI,GACJ,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3C,IAAI,GACJ,CAAC,SAAS;IAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GACvC,IAAI,GACJ,KAAK,CAAC;AAEV;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GACjD,IAAI,GACJ,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/B,IAAI,GACJ,KAAK,CAAC;AAEV;;;GAGG;AACH,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GACvD,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAC1B,CAAC,SAAS,MAAM,GAChB,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,GACzB,CAAC,GACD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC5C,CAAC,CAAC;AAEN;;;;;GAKG;AACH,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAClC,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,GACzB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GACnB;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACxG,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAEjF;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,YAAY,EAAE,YAAY;IACrD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAE7C;;OAEG;IACH,KAAK,IAAI,MAAM,CAAC;IAEhB;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,GAAG,MAAM,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAE3I;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,GAAG,MAAM,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAE1G;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,MAAM,GAAG,MAAM,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAE1G;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;CACvG;AAUD;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,UAAU,GAAG,GAAG,CAAE,SAAQ,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IACvF,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAClE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CACnD;AAkBD;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,YAAY,EAAE,YAAY;IACzD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAa;gBAG9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,cAAc,EACtB,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EACnC,mBAAmB,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,YAAY,EACxD,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,aAAa,EACxB,WAAW,CAAC,EAAE,oBAAoB,EAAE,EACpC,WAAW,CAAC,EAAE,MAAM;IAYtB;;;OAGG;IACH,MAAM,CAAC,UAAU,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,UAAU,GACvE,yBAAyB,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC;IAkBpE;;OAEG;IACH,MAAM,CACJ,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,SAAS,GACvE,IAAI;IAMP;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACH,OAAO,CAAC,aAAa;CAuGtB;AAED;;GAEG;AACH,qBAAa,yBAAyB,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY;IAC3E,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,cAAc,CAAiE;IACvF,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAa;gBAG9B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,cAAc,EACtB,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EACnC,mBAAmB,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,YAAY,EACxD,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,UAAU,EAC9E,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,SAAS,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC,EAC7D,QAAQ,CAAC,EAAE,aAAa,EACxB,WAAW,CAAC,EAAE,oBAAoB,EAAE,EACpC,WAAW,CAAC,EAAE,MAAM;IAiBtB;;OAEG;IACH,MAAM,CACJ,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,SAAS,GACvE,IAAI;IAMP;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3B;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,CAAC,GAAG,IAAI;IAClD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,CAAC,EAAE,GAAG,IAAI;IACpD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;IAS3E;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;IAmBvD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoFxB;;;;OAIG;IACH,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAyD3C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAK3D;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAIpE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAQ3D;;OAEG;IACH,UAAU,CAAC,KAAK,SAAS,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,EAC7D,IAAI,GAAE,KAAwB,GAC7B,QAAQ,CAAC,KAAK,SAAS,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAqBjK;;;OAGG;IACH,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,EAAE,CAAA;KAAE;IAIzE;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,EACxD,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EACtD,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,EACnF,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,aAAa,EACtF,KAAK,CAAC,EAAE,MAAM,GACb,yBAAyB,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAIzF;;;OAGG;IACH,SAAS,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,EACzD,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EACtD,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,EACnF,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,aAAa,EACtF,KAAK,CAAC,EAAE,MAAM,GACb,yBAAyB,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAIzF;;OAEG;IACH,OAAO,CAAC,YAAY;IA6DpB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,UAAU;IA6FlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAoE/B;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAmLtC;;OAEG;IACH,OAAO,CAAC,eAAe;IA+DvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAwGrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyB7B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAyCtC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAyBtC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiC1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAkBhC;AAED;;;GAGG;AACH,qBAAa,yBAAyB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM;IAC9D,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,GAAG,CAAC,CAAgB;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,eAAe,CAOf;gBAGN,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,EACpC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EACtD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,SAAS,EACxB,cAAc,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,EAC1D,cAAc,EAAE,MAAM,KAAK,EAC3B,eAAe,EAAE,MAAM,MAAM,EAC7B,QAAQ,CAAC,EAAE,aAAa,EACxB,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;IAiBrB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3B;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,CAAC,GAAG,IAAI;IAClD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,CAAC,EAAE,GAAG,IAAI;IACpD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;IAU3E;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;IAiBvD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAK3D;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAIpE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAQ3D;;OAEG;IACH,UAAU,CAAC,KAAK,SAAS,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,EAC7D,IAAI,GAAE,KAAwB,GAC7B,QAAQ,CAAC,KAAK,SAAS,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,EAAE,GAAG,gBAAgB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAuBjK;;;OAGG;IACH,iBAAiB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;IAIjC;;;;OAIG;IACH,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAoC3C;;;;OAIG;IACH,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,EAAE,CAAA;KAAE;IAIzE;;;OAGG;IACH,OAAO,CAAC,UAAU;CA6FnB"}
1
+ {"version":3,"file":"grouped-query.d.ts","sourceRoot":"","sources":["../../src/query/grouped-query.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ function createAggregateFieldRef(aggregateType, selector) {
24
24
  * Provides type-safe access to grouping keys and aggregate functions
25
25
  */
26
26
  class GroupedQueryBuilder {
27
- constructor(schema, client, originalSelector, groupingKeySelector, whereCond, executor, manualJoins, joinCounter) {
27
+ constructor(schema, client, originalSelector, groupingKeySelector, whereCond, executor, manualJoins, joinCounter, schemaRegistry) {
28
28
  this.orderByFields = [];
29
29
  this.manualJoins = [];
30
30
  this.joinCounter = 0;
@@ -36,13 +36,14 @@ class GroupedQueryBuilder {
36
36
  this.executor = executor;
37
37
  this.manualJoins = manualJoins || [];
38
38
  this.joinCounter = joinCounter || 0;
39
+ this.schemaRegistry = schemaRegistry;
39
40
  }
40
41
  /**
41
42
  * Select from grouped results
42
43
  * The selector receives a GroupedItem with key and aggregate functions
43
44
  */
44
45
  select(selector) {
45
- return new GroupedSelectQueryBuilder(this.schema, this.client, this.originalSelector, this.groupingKeySelector, selector, this.whereCond, this.havingCond, this.limitValue, this.offsetValue, this.orderByFields, this.executor, this.manualJoins, this.joinCounter);
46
+ return new GroupedSelectQueryBuilder(this.schema, this.client, this.originalSelector, this.groupingKeySelector, selector, this.whereCond, this.havingCond, this.limitValue, this.offsetValue, this.orderByFields, this.executor, this.manualJoins, this.joinCounter, this.schemaRegistry);
46
47
  }
47
48
  /**
48
49
  * Add HAVING condition (filter groups after aggregation)
@@ -110,11 +111,17 @@ class GroupedQueryBuilder {
110
111
  // Performance: Use pre-computed relation entries and cached schemas
111
112
  const relationEntries = (0, query_builder_1.getRelationEntriesForSchema)(this.schema);
112
113
  for (const [relName, relConfig] of relationEntries) {
113
- const targetSchema = (0, query_builder_1.getTargetSchemaForRelation)(this.schema, relName, relConfig);
114
+ let targetSchema;
115
+ if (this.schemaRegistry) {
116
+ targetSchema = this.schemaRegistry.get(relConfig.targetTable);
117
+ }
118
+ if (!targetSchema) {
119
+ targetSchema = (0, query_builder_1.getTargetSchemaForRelation)(this.schema, relName, relConfig);
120
+ }
114
121
  if (relConfig.type === 'many') {
115
122
  Object.defineProperty(mock, relName, {
116
123
  get: () => {
117
- return new query_builder_1.CollectionQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKey || relConfig.foreignKeys?.[0] || '', this.schema.name, targetSchema);
124
+ return new query_builder_1.CollectionQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKey || relConfig.foreignKeys?.[0] || '', this.schema.name, targetSchema, this.schemaRegistry);
118
125
  },
119
126
  enumerable: true,
120
127
  configurable: true,
@@ -123,7 +130,7 @@ class GroupedQueryBuilder {
123
130
  else {
124
131
  Object.defineProperty(mock, relName, {
125
132
  get: () => {
126
- const refBuilder = new query_builder_1.ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema);
133
+ const refBuilder = new query_builder_1.ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema, this.schemaRegistry, [], this.schema.name);
127
134
  return refBuilder.createMockTargetRow();
128
135
  },
129
136
  enumerable: true,
@@ -169,7 +176,7 @@ exports.GroupedQueryBuilder = GroupedQueryBuilder;
169
176
  * Grouped select query builder - result of calling select() on a GroupedQueryBuilder
170
177
  */
171
178
  class GroupedSelectQueryBuilder {
172
- constructor(schema, client, originalSelector, groupingKeySelector, resultSelector, whereCond, havingCond, limit, offset, orderBy, executor, manualJoins, joinCounter) {
179
+ constructor(schema, client, originalSelector, groupingKeySelector, resultSelector, whereCond, havingCond, limit, offset, orderBy, executor, manualJoins, joinCounter, schemaRegistry) {
173
180
  this.orderByFields = [];
174
181
  this.manualJoins = [];
175
182
  this.joinCounter = 0;
@@ -186,6 +193,7 @@ class GroupedSelectQueryBuilder {
186
193
  this.executor = executor;
187
194
  this.manualJoins = manualJoins || [];
188
195
  this.joinCounter = joinCounter || 0;
196
+ this.schemaRegistry = schemaRegistry;
189
197
  }
190
198
  /**
191
199
  * Add HAVING condition (filter groups after aggregation)
@@ -621,9 +629,10 @@ class GroupedSelectQueryBuilder {
621
629
  ? `"${navJoin.targetSchema}"."${navJoin.targetTable}"`
622
630
  : `"${navJoin.targetTable}"`;
623
631
  // Build join condition: source.foreignKey = target.match
632
+ const sourceAlias = navJoin.sourceAlias || this.schema.name;
624
633
  const joinConditions = navJoin.foreignKeys.map((fk, i) => {
625
634
  const targetCol = navJoin.matches[i] || 'id';
626
- return `${(0, join_utils_1.formatJoinValue)(this.schema.name, fk)} = ${(0, join_utils_1.formatJoinValue)(navJoin.alias, targetCol)}`;
635
+ return `${(0, join_utils_1.formatJoinValue)(sourceAlias, fk)} = ${(0, join_utils_1.formatJoinValue)(navJoin.alias, targetCol)}`;
627
636
  });
628
637
  baseFromClause += `\n${joinType} ${targetTableName} AS "${navJoin.alias}" ON ${joinConditions.join(' AND ')}`;
629
638
  }
@@ -989,11 +998,17 @@ class GroupedSelectQueryBuilder {
989
998
  // Performance: Use pre-computed relation entries and cached schemas
990
999
  const relationEntries = (0, query_builder_1.getRelationEntriesForSchema)(this.schema);
991
1000
  for (const [relName, relConfig] of relationEntries) {
992
- const targetSchema = (0, query_builder_1.getTargetSchemaForRelation)(this.schema, relName, relConfig);
1001
+ let targetSchema;
1002
+ if (this.schemaRegistry) {
1003
+ targetSchema = this.schemaRegistry.get(relConfig.targetTable);
1004
+ }
1005
+ if (!targetSchema) {
1006
+ targetSchema = (0, query_builder_1.getTargetSchemaForRelation)(this.schema, relName, relConfig);
1007
+ }
993
1008
  if (relConfig.type === 'many') {
994
1009
  Object.defineProperty(mock, relName, {
995
1010
  get: () => {
996
- return new query_builder_1.CollectionQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKey || relConfig.foreignKeys?.[0] || '', this.schema.name, targetSchema);
1011
+ return new query_builder_1.CollectionQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKey || relConfig.foreignKeys?.[0] || '', this.schema.name, targetSchema, this.schemaRegistry);
997
1012
  },
998
1013
  enumerable: true,
999
1014
  configurable: true,
@@ -1002,7 +1017,7 @@ class GroupedSelectQueryBuilder {
1002
1017
  else {
1003
1018
  Object.defineProperty(mock, relName, {
1004
1019
  get: () => {
1005
- const refBuilder = new query_builder_1.ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema);
1020
+ const refBuilder = new query_builder_1.ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema, this.schemaRegistry, [], this.schema.name);
1006
1021
  return refBuilder.createMockTargetRow();
1007
1022
  },
1008
1023
  enumerable: true,
@@ -1075,88 +1090,136 @@ class GroupedSelectQueryBuilder {
1075
1090
  if (!condition) {
1076
1091
  return;
1077
1092
  }
1078
- // Get all field references from the condition
1093
+ // Get all field references from the condition and collect table aliases
1094
+ const allTableAliases = new Set();
1079
1095
  const fieldRefs = condition.getFieldRefs();
1080
1096
  for (const fieldRef of fieldRefs) {
1081
1097
  if ('__tableAlias' in fieldRef && fieldRef.__tableAlias) {
1082
1098
  const tableAlias = fieldRef.__tableAlias;
1083
- // Check if this references a related table that isn't already joined
1084
- if (tableAlias !== this.schema.name && !joins.some(j => j.alias === tableAlias)) {
1085
- // Find the relation config for this navigation
1086
- const relation = this.schema.relations[tableAlias];
1087
- if (relation && relation.type === 'one') {
1088
- // Get target schema from targetTableBuilder if available
1089
- let targetSchema;
1090
- if (relation.targetTableBuilder) {
1091
- const targetTableSchema = relation.targetTableBuilder.build();
1092
- targetSchema = targetTableSchema.schema;
1093
- }
1094
- // Add a JOIN for this reference
1095
- joins.push({
1096
- alias: tableAlias,
1097
- targetTable: relation.targetTable,
1098
- targetSchema,
1099
- foreignKeys: relation.foreignKeys || [relation.foreignKey || ''],
1100
- matches: relation.matches || [],
1101
- isMandatory: relation.isMandatory ?? false,
1102
- });
1103
- }
1099
+ if (tableAlias && tableAlias !== this.schema.name) {
1100
+ allTableAliases.add(tableAlias);
1104
1101
  }
1105
1102
  }
1106
1103
  }
1104
+ // Resolve all joins through the schema graph (handles multi-level)
1105
+ this.resolveJoinsForTableAliases(allTableAliases, joins);
1107
1106
  }
1108
1107
  /**
1109
1108
  * Detect navigation properties in a selection and add JOINs for them
1110
1109
  */
1111
1110
  detectAndAddJoinsFromSelection(selection, joins) {
1111
+ if (!selection || typeof selection !== 'object') {
1112
+ return;
1113
+ }
1114
+ // First pass: collect all table aliases
1115
+ const allTableAliases = new Set();
1116
+ this.collectTableAliasesFromSelection(selection, allTableAliases);
1117
+ // Second pass: resolve all joins through the schema graph
1118
+ this.resolveJoinsForTableAliases(allTableAliases, joins);
1119
+ }
1120
+ /**
1121
+ * Collect all table aliases from a selection
1122
+ */
1123
+ collectTableAliasesFromSelection(selection, allTableAliases) {
1112
1124
  if (!selection || typeof selection !== 'object') {
1113
1125
  return;
1114
1126
  }
1115
1127
  for (const [, value] of Object.entries(selection)) {
1116
1128
  if (value && typeof value === 'object' && '__tableAlias' in value && '__dbColumnName' in value) {
1117
- // This is a FieldRef with a table alias - check if it's from a related table
1118
- this.addJoinForFieldRef(value, joins);
1129
+ const tableAlias = value.__tableAlias;
1130
+ if (tableAlias && tableAlias !== this.schema.name) {
1131
+ allTableAliases.add(tableAlias);
1132
+ }
1133
+ // Also collect intermediate navigation aliases for multi-level navigation
1134
+ if ('__navigationAliases' in value && Array.isArray(value.__navigationAliases)) {
1135
+ for (const navAlias of value.__navigationAliases) {
1136
+ if (navAlias && navAlias !== this.schema.name) {
1137
+ allTableAliases.add(navAlias);
1138
+ }
1139
+ }
1140
+ }
1119
1141
  }
1120
1142
  else if (value instanceof conditions_1.SqlFragment) {
1121
- // SqlFragment may contain navigation property references - extract them
1122
1143
  const fieldRefs = value.getFieldRefs();
1123
1144
  for (const fieldRef of fieldRefs) {
1124
- this.addJoinForFieldRef(fieldRef, joins);
1145
+ if ('__tableAlias' in fieldRef && fieldRef.__tableAlias) {
1146
+ const tableAlias = fieldRef.__tableAlias;
1147
+ if (tableAlias && tableAlias !== this.schema.name) {
1148
+ allTableAliases.add(tableAlias);
1149
+ }
1150
+ }
1151
+ if ('__navigationAliases' in fieldRef && Array.isArray(fieldRef.__navigationAliases)) {
1152
+ for (const navAlias of fieldRef.__navigationAliases) {
1153
+ if (navAlias && navAlias !== this.schema.name) {
1154
+ allTableAliases.add(navAlias);
1155
+ }
1156
+ }
1157
+ }
1125
1158
  }
1126
1159
  }
1127
- else if (value && typeof value === 'object' && !Array.isArray(value)) {
1128
- // Recursively check nested objects
1129
- this.detectAndAddJoinsFromSelection(value, joins);
1160
+ else if (value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof query_builder_1.CollectionQueryBuilder)) {
1161
+ this.collectTableAliasesFromSelection(value, allTableAliases);
1130
1162
  }
1131
1163
  }
1132
1164
  }
1133
1165
  /**
1134
- * Add a JOIN for a FieldRef if it references a related table
1166
+ * Resolve all navigation joins by finding the correct path through the schema graph.
1167
+ * Handles multi-level navigation like task.level.createdBy.
1135
1168
  */
1136
- addJoinForFieldRef(fieldRef, joins) {
1137
- if (!fieldRef || typeof fieldRef !== 'object' || !('__tableAlias' in fieldRef) || !('__dbColumnName' in fieldRef)) {
1169
+ resolveJoinsForTableAliases(allTableAliases, joins) {
1170
+ if (allTableAliases.size === 0) {
1138
1171
  return;
1139
1172
  }
1140
- const tableAlias = fieldRef.__tableAlias;
1141
- if (tableAlias && tableAlias !== this.schema.name && !joins.some(j => j.alias === tableAlias)) {
1142
- // This references a related table - find the relation and add a JOIN
1143
- const relation = this.schema.relations[tableAlias];
1144
- if (relation && relation.type === 'one') {
1145
- // Get target schema from targetTableBuilder if available
1146
- let targetSchema;
1147
- if (relation.targetTableBuilder) {
1148
- const targetTableSchema = relation.targetTableBuilder.build();
1149
- targetSchema = targetTableSchema.schema;
1173
+ const resolved = new Set();
1174
+ let maxIterations = allTableAliases.size * 3;
1175
+ while (resolved.size < allTableAliases.size && maxIterations-- > 0) {
1176
+ // Build a map of already joined schemas for path resolution
1177
+ const joinedSchemas = new Map();
1178
+ joinedSchemas.set(this.schema.name, this.schema);
1179
+ for (const join of joins) {
1180
+ let schema;
1181
+ if (this.schemaRegistry) {
1182
+ schema = this.schemaRegistry.get(join.targetTable);
1183
+ }
1184
+ if (schema) {
1185
+ joinedSchemas.set(join.alias, schema);
1186
+ }
1187
+ }
1188
+ // Try to resolve each unresolved alias
1189
+ for (const alias of allTableAliases) {
1190
+ if (resolved.has(alias) || joins.some(j => j.alias === alias)) {
1191
+ resolved.add(alias);
1192
+ continue;
1193
+ }
1194
+ // Look for this alias in any of the already joined schemas
1195
+ for (const [sourceAlias, schema] of joinedSchemas) {
1196
+ if (schema.relations && schema.relations[alias]) {
1197
+ const relation = schema.relations[alias];
1198
+ if (relation.type === 'one') {
1199
+ let targetSchema;
1200
+ let targetSchemaName;
1201
+ if (this.schemaRegistry) {
1202
+ targetSchema = this.schemaRegistry.get(relation.targetTable);
1203
+ targetSchemaName = targetSchema?.schema;
1204
+ }
1205
+ if (!targetSchema && relation.targetTableBuilder) {
1206
+ targetSchema = relation.targetTableBuilder.build();
1207
+ targetSchemaName = targetSchema?.schema;
1208
+ }
1209
+ joins.push({
1210
+ alias,
1211
+ targetTable: relation.targetTable,
1212
+ targetSchema: targetSchemaName,
1213
+ foreignKeys: relation.foreignKeys || [relation.foreignKey || ''],
1214
+ matches: relation.matches || ['id'],
1215
+ isMandatory: relation.isMandatory ?? false,
1216
+ sourceAlias,
1217
+ });
1218
+ resolved.add(alias);
1219
+ break;
1220
+ }
1221
+ }
1150
1222
  }
1151
- // Add a JOIN for this reference
1152
- joins.push({
1153
- alias: tableAlias,
1154
- targetTable: relation.targetTable,
1155
- targetSchema,
1156
- foreignKeys: relation.foreignKeys || [relation.foreignKey || ''],
1157
- matches: relation.matches || [],
1158
- isMandatory: relation.isMandatory ?? false,
1159
- });
1160
1223
  }
1161
1224
  }
1162
1225
  }