@holo-js/db 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.ts +279 -6
  2. package/dist/index.mjs +2639 -204
  3. package/package.json +7 -7
package/dist/index.d.ts CHANGED
@@ -599,11 +599,13 @@ interface InsertQueryPlan {
599
599
  readonly kind: 'insert';
600
600
  readonly source: QuerySource;
601
601
  readonly ignoreConflicts: boolean;
602
+ readonly returning?: boolean;
602
603
  readonly values: readonly Record<string, unknown>[];
603
604
  }
604
605
  interface UpsertQueryPlan {
605
606
  readonly kind: 'upsert';
606
607
  readonly source: QuerySource;
608
+ readonly returning?: boolean;
607
609
  readonly values: readonly Record<string, unknown>[];
608
610
  readonly uniqueBy: readonly string[];
609
611
  readonly updateColumns: readonly string[];
@@ -612,12 +614,14 @@ interface UpdateQueryPlan {
612
614
  readonly kind: 'update';
613
615
  readonly source: QuerySource;
614
616
  readonly predicates: readonly QueryPredicateNode[];
617
+ readonly returning?: boolean;
615
618
  readonly values: Readonly<Record<string, QueryUpdateValue>>;
616
619
  }
617
620
  interface DeleteQueryPlan {
618
621
  readonly kind: 'delete';
619
622
  readonly source: QuerySource;
620
623
  readonly predicates: readonly QueryPredicateNode[];
624
+ readonly returning?: boolean;
621
625
  }
622
626
  type QueryPlan = SelectQueryPlan | InsertQueryPlan | UpsertQueryPlan | UpdateQueryPlan | DeleteQueryPlan;
623
627
  interface QueryJsonUpdateOperation {
@@ -635,9 +639,14 @@ declare function withLimit(plan: SelectQueryPlan, limit?: number): SelectQueryPl
635
639
  declare function withOffset(plan: SelectQueryPlan, offset?: number): SelectQueryPlan;
636
640
  declare function createInsertQueryPlan(source: QuerySource, values: readonly Record<string, unknown>[], options?: {
637
641
  ignoreConflicts?: boolean;
642
+ returning?: boolean;
638
643
  }): InsertQueryPlan;
639
- declare function createUpdateQueryPlan(source: QuerySource, predicates: readonly QueryPredicateNode[], values: Readonly<Record<string, unknown>>): UpdateQueryPlan;
640
- declare function createDeleteQueryPlan(source: QuerySource, predicates: readonly QueryPredicateNode[]): DeleteQueryPlan;
644
+ declare function createUpdateQueryPlan(source: QuerySource, predicates: readonly QueryPredicateNode[], values: Readonly<Record<string, unknown>>, options?: {
645
+ readonly returning?: boolean;
646
+ }): UpdateQueryPlan;
647
+ declare function createDeleteQueryPlan(source: QuerySource, predicates: readonly QueryPredicateNode[], options?: {
648
+ readonly returning?: boolean;
649
+ }): DeleteQueryPlan;
641
650
 
642
651
  type QueryCacheTtlInput = number | Date;
643
652
  type QueryCacheFlexibleTtlInput = readonly [fresh: number, stale: number] | {
@@ -682,9 +691,189 @@ interface DatabaseDependencyCollectionResult<TValue> {
682
691
  readonly value: TValue;
683
692
  readonly dependencies: readonly string[];
684
693
  }
694
+ interface DatabaseQueryPredicateObservation {
695
+ readonly column: string;
696
+ readonly operator: QueryOperator;
697
+ readonly value: unknown;
698
+ }
699
+ interface DatabaseQueryOrderObservation {
700
+ readonly column: string;
701
+ readonly direction: 'asc' | 'desc';
702
+ }
703
+ interface DatabaseQueryAggregateObservation {
704
+ readonly column?: string;
705
+ readonly count?: number;
706
+ readonly currentValueCount?: number;
707
+ readonly kind: 'avg' | 'count' | 'max' | 'min' | 'sum';
708
+ readonly output?: 'boolean' | 'inverseBoolean';
709
+ readonly sum?: number;
710
+ readonly valueCounts?: readonly DatabaseQueryAggregateValueCountObservation[];
711
+ }
712
+ interface DatabaseQueryAggregateValueCountObservation {
713
+ readonly count: number;
714
+ readonly value: number;
715
+ }
716
+ interface DatabaseQuerySelectionObservation {
717
+ readonly column: string;
718
+ readonly resultKey: string;
719
+ }
720
+ interface DatabaseQueryGroupedAggregateObservation {
721
+ readonly aggregateColumn?: string;
722
+ readonly aggregateResultKey: string;
723
+ readonly aggregateStates?: readonly DatabaseQueryGroupedAggregateStateObservation[];
724
+ readonly averageStates?: readonly DatabaseQueryGroupedAverageStateObservation[];
725
+ readonly groupColumn: string;
726
+ readonly groupResultKey: string;
727
+ readonly having?: DatabaseQueryGroupedAggregateHavingObservation;
728
+ readonly kind: 'avg' | 'count' | 'max' | 'min' | 'sum';
729
+ }
730
+ interface DatabaseQueryGroupedAggregateStateObservation {
731
+ readonly aggregateValue: number;
732
+ readonly groupValue: unknown;
733
+ readonly rowCount: number;
734
+ readonly valueCounts?: readonly DatabaseQueryGroupedAggregateValueCountObservation[];
735
+ }
736
+ interface DatabaseQueryGroupedAggregateValueCountObservation {
737
+ readonly count: number;
738
+ readonly value: number;
739
+ }
740
+ interface DatabaseQueryGroupedAverageStateObservation {
741
+ readonly count: number;
742
+ readonly groupValue: unknown;
743
+ readonly rowCount: number;
744
+ readonly sum: number;
745
+ }
746
+ interface DatabaseQueryGroupedAggregateHavingObservation {
747
+ readonly operator: Extract<QueryOperator, '<' | '<=' | '=' | '>' | '>='>;
748
+ readonly value: number;
749
+ }
750
+ type DatabaseQueryPaginationObservation = DatabaseQueryStandardPaginationObservation | DatabaseQuerySimplePaginationObservation | DatabaseQueryCursorPaginationObservation;
751
+ interface DatabaseQueryStandardPaginationObservation {
752
+ readonly currentPage: number;
753
+ readonly kind: 'standard';
754
+ readonly pageName: string;
755
+ readonly perPage: number;
756
+ readonly total: number;
757
+ }
758
+ interface DatabaseQuerySimplePaginationObservation {
759
+ readonly currentPage: number;
760
+ readonly hasMorePages: boolean;
761
+ readonly kind: 'simple';
762
+ readonly pageName: string;
763
+ readonly perPage: number;
764
+ readonly rowCount: number;
765
+ }
766
+ interface DatabaseQueryCursorPaginationObservation {
767
+ readonly cursorName: string;
768
+ readonly hasMorePages: boolean;
769
+ readonly kind: 'cursor';
770
+ readonly nextCursor: string | null;
771
+ readonly perPage: number;
772
+ readonly prevCursor: string | null;
773
+ readonly rows: readonly Readonly<Record<string, unknown>>[];
774
+ readonly rowCount: number;
775
+ }
776
+ type DatabaseQueryResultPathSegment = string | number;
777
+ interface DatabaseQueryObservation {
778
+ readonly aggregate?: DatabaseQueryAggregateObservation;
779
+ readonly belongsToHydrations?: readonly DatabaseQueryBelongsToHydrationObservation[];
780
+ readonly connectionName: string;
781
+ readonly cursorRowCount?: number;
782
+ readonly cursorRows?: readonly Readonly<Record<string, unknown>>[];
783
+ readonly tableName: string;
784
+ readonly dependencies: readonly string[];
785
+ readonly emptyRecordValue?: null;
786
+ readonly groupedAggregate?: DatabaseQueryGroupedAggregateObservation;
787
+ readonly limit?: number;
788
+ readonly offset?: number;
789
+ readonly orderBy: readonly DatabaseQueryOrderObservation[];
790
+ readonly patchable: boolean;
791
+ readonly pagination?: DatabaseQueryPaginationObservation;
792
+ readonly predicates: readonly DatabaseQueryPredicateObservation[];
793
+ readonly relation?: DatabaseQueryRelationObservation;
794
+ readonly result?: unknown;
795
+ readonly resultPath?: readonly DatabaseQueryResultPathSegment[];
796
+ readonly scalarColumn?: string;
797
+ readonly scalarListColumn?: string;
798
+ readonly scalarListRows?: readonly Readonly<Record<string, unknown>>[];
799
+ readonly relatedHydrations?: readonly DatabaseQueryRelatedHydrationObservation[];
800
+ readonly selections: readonly DatabaseQuerySelectionObservation[];
801
+ }
802
+ interface DatabaseQueryBelongsToHydrationObservation {
803
+ readonly foreignKey: string;
804
+ readonly ownerKey: string;
805
+ readonly relationKey: string;
806
+ readonly relatedConnectionName: string;
807
+ readonly relatedTableName: string;
808
+ }
809
+ interface DatabaseQueryRelatedHydrationObservation {
810
+ readonly foreignKey: string;
811
+ readonly kind: 'hasMany' | 'hasOne';
812
+ readonly localKey: string;
813
+ readonly orderBy: readonly DatabaseQueryOrderObservation[];
814
+ readonly predicates: readonly DatabaseQueryPredicateObservation[];
815
+ readonly relationKey: string;
816
+ readonly relatedConnectionName: string;
817
+ readonly relatedTableName: string;
818
+ }
819
+ type DatabaseQueryRelationObservation = DatabaseQueryBelongsToManyRelationObservation | DatabaseQueryBelongsToParentKeyRelationObservation;
820
+ interface DatabaseQueryBelongsToManyRelationObservation {
821
+ readonly foreignPivotKey: string;
822
+ readonly kind: 'belongsToMany';
823
+ readonly pivotAccessor: string;
824
+ readonly pivotColumns: readonly string[];
825
+ readonly pivotOrderBy: readonly DatabaseQueryOrderObservation[];
826
+ readonly relatedConnectionName: string;
827
+ readonly relatedKey: string;
828
+ readonly relatedPivotKey: string;
829
+ readonly relatedTableName: string;
830
+ }
831
+ interface DatabaseQueryBelongsToParentKeyRelationObservation {
832
+ readonly foreignKey: string;
833
+ readonly kind: 'belongsToParentKey';
834
+ readonly ownerKey: string;
835
+ readonly relationKey: string;
836
+ readonly relatedConnectionName: string;
837
+ readonly relatedTableName: string;
838
+ }
839
+ interface DatabaseMutationEvent {
840
+ readonly connectionName: string;
841
+ readonly tableName: string;
842
+ readonly kind: 'insert' | 'update' | 'delete' | 'upsert';
843
+ readonly predicates: readonly DatabaseQueryPredicateObservation[];
844
+ readonly previousRows?: readonly Readonly<Record<string, unknown>>[];
845
+ readonly rows?: readonly Readonly<Record<string, unknown>>[];
846
+ readonly values?: Readonly<Record<string, unknown>>;
847
+ }
848
+ type DatabaseDependencyPredicateMetadata = {
849
+ readonly tableKey: string;
850
+ readonly columnName: string;
851
+ readonly encodedValue: string;
852
+ };
853
+ type DatabaseDependencyInvalidationMetadata = {
854
+ readonly directDependencies: readonly string[];
855
+ readonly exactPredicates: readonly DatabaseDependencyPredicateMetadata[];
856
+ readonly hasMutationDependency: boolean;
857
+ readonly predicates: readonly DatabaseDependencyPredicateMetadata[];
858
+ readonly tableDependencies: readonly string[];
859
+ };
860
+ type DatabaseDependencyInvalidationEventWithMutations = DatabaseDependencyInvalidationEvent & {
861
+ readonly mutations?: readonly DatabaseMutationEvent[];
862
+ };
863
+ type DatabaseDependencyInvalidationEventInternal = DatabaseDependencyInvalidationEventWithMutations & {
864
+ readonly __holoDatabaseDependencyMetadata__?: DatabaseDependencyInvalidationMetadata;
865
+ };
866
+ type DatabaseDependencyInvalidationListenerInternal = (event: DatabaseDependencyInvalidationEventInternal) => void | Promise<void>;
867
+ type DatabaseDependencyCollectionResultInternal<TValue> = DatabaseDependencyCollectionResult<TValue> & {
868
+ readonly queries: readonly DatabaseQueryObservation[];
869
+ };
870
+ type DatabaseDependencyInvalidationPlan = {
871
+ readonly dependencies: readonly string[];
872
+ readonly metadata?: DatabaseDependencyInvalidationMetadata;
873
+ };
685
874
  declare function getQueryCacheBridgeState(): {
686
875
  bridge?: DatabaseQueryCacheBridge;
687
- dependencyInvalidationListeners?: Set<DatabaseDependencyInvalidationListener>;
876
+ dependencyInvalidationListeners?: Set<DatabaseDependencyInvalidationListenerInternal>;
688
877
  };
689
878
  declare function configureDatabaseQueryCacheBridge(bridge?: DatabaseQueryCacheBridge): void;
690
879
  declare function getDatabaseQueryCacheBridge(): DatabaseQueryCacheBridge | undefined;
@@ -692,27 +881,41 @@ declare function resetDatabaseQueryCacheBridge(): void;
692
881
  declare function onDatabaseDependencyInvalidated(listener: DatabaseDependencyInvalidationListener): () => void;
693
882
  declare function resetDatabaseDependencyInvalidationListeners(): void;
694
883
  declare function collectDatabaseQueryDependencies<TValue>(callback: () => TValue | Promise<TValue>): Promise<DatabaseDependencyCollectionResult<TValue>>;
884
+ declare function collectDatabaseQueryDependenciesInternal<TValue>(callback: () => TValue | Promise<TValue>): Promise<DatabaseDependencyCollectionResultInternal<TValue>>;
695
885
  declare function hasActiveDatabaseDependencyCollector(): boolean;
696
886
  declare function recordDatabaseQueryDependencies(dependencies: readonly string[] | undefined): void;
887
+ declare function recordDatabaseQueryObservation(observation: DatabaseQueryObservation | undefined): void;
888
+ declare function rebindDatabaseQueryObservationResult(source: unknown, result: unknown): void;
889
+ declare function disableDatabaseQueryObservationPatching(source: unknown): void;
890
+ declare function rebindDatabaseQueryObservationScalar(source: unknown, result: unknown, column: string): void;
891
+ declare function rebindDatabaseQueryObservationScalarList(rows: readonly Readonly<Record<string, unknown>>[], result: readonly unknown[], column: string): void;
697
892
  declare function hasDatabaseDependencyInvalidationListeners(): boolean;
698
- declare function notifyDatabaseDependencyInvalidationListeners(event: DatabaseDependencyInvalidationEvent): Promise<void>;
893
+ declare function notifyDatabaseDependencyInvalidationListeners(event: DatabaseDependencyInvalidationEventInternal): Promise<void>;
699
894
  declare function normalizeQueryCacheConfig(input: QueryCacheTtlInput | QueryCacheConfig): NormalizedQueryCacheConfig;
700
895
  declare function createDeterministicQueryCacheKey(statement: CompiledStatement, connectionName: string): string;
701
896
  declare function resolveQueryCacheKey(statement: CompiledStatement, connectionName: string, config: NormalizedQueryCacheConfig): string;
702
897
  declare function createTableCacheDependency(connectionName: string, tableName: string): string;
703
898
  declare function createTableRowCacheDependency(connectionName: string, tableName: string, columnName: string, value: unknown): string | undefined;
704
899
  declare function createTableRowWildcardCacheDependency(connectionName: string, tableName: string): string;
900
+ declare function createTablePredicateCacheDependency(connectionName: string, tableName: string, columnName: string, value: unknown): string | undefined;
705
901
  declare function normalizeQueryCacheDependencies(connectionName: string, dependencies: readonly string[]): readonly string[];
706
902
  declare function supportsAutomaticPredicateInvalidation(predicate: QueryPredicateNode): boolean;
903
+ declare function createDatabaseQueryObservation(plan: SelectQueryPlan, connectionName: string, dependencies: readonly string[], result?: unknown, groupedAverageStates?: readonly DatabaseQueryGroupedAverageStateObservation[], groupedAggregateStates?: readonly DatabaseQueryGroupedAggregateStateObservation[]): DatabaseQueryObservation | undefined;
904
+ declare function createDatabaseMutationEvent(kind: DatabaseMutationEvent['kind'], connectionName: string, tableName: string, predicates?: readonly QueryPredicateNode[], values?: Readonly<Record<string, unknown>>, rows?: readonly Readonly<Record<string, unknown>>[], previousRows?: readonly Readonly<Record<string, unknown>>[]): DatabaseMutationEvent;
707
905
  declare function supportsAutomaticQueryCacheInvalidation(plan: SelectQueryPlan): boolean;
708
906
  declare function inferAutomaticQueryCacheDependencies(plan: SelectQueryPlan, connectionName: string): readonly string[] | undefined;
709
- declare function inferAutomaticQueryCacheInvalidationDependencies(plan: SelectQueryPlan, connectionName: string): readonly string[];
907
+ declare function inferAutomaticQueryCacheInvalidationDependencies(plan: SelectQueryPlan, connectionName: string, values?: Readonly<Record<string, unknown>>): readonly string[];
908
+ declare function inferAutomaticQueryCacheInvalidationPlan(plan: SelectQueryPlan, connectionName: string, values?: Readonly<Record<string, unknown>>, includeMetadata?: boolean): DatabaseDependencyInvalidationPlan;
710
909
  declare function inferAutomaticInsertCacheInvalidationDependencies(connectionName: string, tableName: string, rows: readonly Readonly<Record<string, unknown>>[], lastInsertId?: number | string): readonly string[];
910
+ declare function inferAutomaticInsertCacheInvalidationPlan(connectionName: string, tableName: string, rows: readonly Readonly<Record<string, unknown>>[], lastInsertId?: number | string, includeMetadata?: boolean): DatabaseDependencyInvalidationPlan;
711
911
  declare function resolveQueryCacheDependencies(plan: SelectQueryPlan, connectionName: string, explicit?: readonly string[]): readonly string[] | undefined;
712
912
  declare const queryCacheInternals: {
713
- collectDatabaseQueryDependencies: typeof collectDatabaseQueryDependencies;
913
+ collectDatabaseQueryDependencies: typeof collectDatabaseQueryDependenciesInternal;
714
914
  configureDatabaseQueryCacheBridge: typeof configureDatabaseQueryCacheBridge;
915
+ createDatabaseMutationEvent: typeof createDatabaseMutationEvent;
916
+ createDatabaseQueryObservation: typeof createDatabaseQueryObservation;
715
917
  createDeterministicQueryCacheKey: typeof createDeterministicQueryCacheKey;
918
+ createTablePredicateCacheDependency: typeof createTablePredicateCacheDependency;
716
919
  createTableCacheDependency: typeof createTableCacheDependency;
717
920
  createTableRowCacheDependency: typeof createTableRowCacheDependency;
718
921
  createTableRowWildcardCacheDependency: typeof createTableRowWildcardCacheDependency;
@@ -720,13 +923,20 @@ declare const queryCacheInternals: {
720
923
  hasActiveDatabaseDependencyCollector: typeof hasActiveDatabaseDependencyCollector;
721
924
  hasDatabaseDependencyInvalidationListeners: typeof hasDatabaseDependencyInvalidationListeners;
722
925
  inferAutomaticInsertCacheInvalidationDependencies: typeof inferAutomaticInsertCacheInvalidationDependencies;
926
+ inferAutomaticInsertCacheInvalidationPlan: typeof inferAutomaticInsertCacheInvalidationPlan;
723
927
  inferAutomaticQueryCacheDependencies: typeof inferAutomaticQueryCacheDependencies;
724
928
  inferAutomaticQueryCacheInvalidationDependencies: typeof inferAutomaticQueryCacheInvalidationDependencies;
929
+ inferAutomaticQueryCacheInvalidationPlan: typeof inferAutomaticQueryCacheInvalidationPlan;
725
930
  normalizeQueryCacheConfig: typeof normalizeQueryCacheConfig;
726
931
  normalizeQueryCacheDependencies: typeof normalizeQueryCacheDependencies;
727
932
  notifyDatabaseDependencyInvalidationListeners: typeof notifyDatabaseDependencyInvalidationListeners;
933
+ disableDatabaseQueryObservationPatching: typeof disableDatabaseQueryObservationPatching;
934
+ rebindDatabaseQueryObservationResult: typeof rebindDatabaseQueryObservationResult;
935
+ rebindDatabaseQueryObservationScalar: typeof rebindDatabaseQueryObservationScalar;
936
+ rebindDatabaseQueryObservationScalarList: typeof rebindDatabaseQueryObservationScalarList;
728
937
  onDatabaseDependencyInvalidated: typeof onDatabaseDependencyInvalidated;
729
938
  recordDatabaseQueryDependencies: typeof recordDatabaseQueryDependencies;
939
+ recordDatabaseQueryObservation: typeof recordDatabaseQueryObservation;
730
940
  resolveQueryCacheDependencies: typeof resolveQueryCacheDependencies;
731
941
  resolveQueryCacheKey: typeof resolveQueryCacheKey;
732
942
  resetDatabaseDependencyInvalidationListeners: typeof resetDatabaseDependencyInvalidationListeners;
@@ -995,6 +1205,15 @@ declare class TableQueryBuilder<TTableOrName extends TableReference = string, TS
995
1205
  dump(): TableQueryBuilder<TTableOrName, TSelectedRow>;
996
1206
  cache(config: QueryCacheTtlInput | QueryCacheConfig): TableQueryBuilder<TTableOrName, TSelectedRow>;
997
1207
  get<TRow extends Record<string, unknown> = TSelectedRow>(): Promise<TRow[]>;
1208
+ private recordCollectedQueryObservation;
1209
+ private readGroupedAverageStates;
1210
+ private readGroupedAggregateStates;
1211
+ private readGroupedAggregateValueCounts;
1212
+ private pushGroupedAggregateValueCount;
1213
+ private readGroupedAggregateValueCountsForGroup;
1214
+ private createGroupedAggregateStateValueSelection;
1215
+ private normalizeGroupedAggregateStateValue;
1216
+ private normalizeAggregateMetadataNumber;
998
1217
  first<TRow extends Record<string, unknown> = TSelectedRow>(): Promise<TRow | undefined>;
999
1218
  sole<TRow extends Record<string, unknown> = TSelectedRow>(): Promise<TRow>;
1000
1219
  paginate<TRow extends Record<string, unknown> = TSelectedRow>(perPage?: number, page?: number, options?: PaginationOptions): Promise<PaginatedResult<TRow>>;
@@ -1029,6 +1248,21 @@ declare class TableQueryBuilder<TTableOrName extends TableReference = string, TS
1029
1248
  unsafeQuery<TRow extends Record<string, unknown> = Record<string, unknown>>(statement: Omit<UnsafeStatement, 'source'>): Promise<DriverQueryResult<TRow>>;
1030
1249
  unsafeExecute(statement: Omit<UnsafeStatement, 'source'>): Promise<DriverExecutionResult>;
1031
1250
  private clone;
1251
+ private captureUpdatedMutationRows;
1252
+ private captureDeletedMutationRows;
1253
+ private applyCapturedUpdateValues;
1254
+ private applyCapturedUpdateValue;
1255
+ private applyCapturedJsonUpdateOperation;
1256
+ private isCapturedJsonUpdateOperation;
1257
+ private applyCapturedJsonPathValue;
1258
+ private isJsonRecord;
1259
+ private captureUpsertPreviousRows;
1260
+ private hasUniqueByValues;
1261
+ private rowsMatchUniqueBy;
1262
+ private shouldUseReturningMutationRows;
1263
+ private queryReturningMutationRows;
1264
+ private freezeMutationRows;
1265
+ private readReturnedLastInsertId;
1032
1266
  private invalidateInsertQueries;
1033
1267
  private invalidateMutationQueries;
1034
1268
  private getCompiler;
@@ -1155,6 +1389,24 @@ declare class ModelRepository<TTable extends TableDefinition = TableDefinition>
1155
1389
  applyRelationExistenceFilter(query: TableQueryBuilder<TTable, Record<string, unknown>>, filter: RelationFilter$1): TableQueryBuilder<TTable, Record<string, unknown>>;
1156
1390
  loadMorphRelations(entities: readonly Entity<TTable>[], relationName: string, mapping: Readonly<Record<string, string | readonly string[] | Readonly<Record<string, RelationConstraint$1>>>>): Promise<void>;
1157
1391
  loadRelationAggregates(entities: readonly Entity<TTable>[], aggregates: readonly AggregateLoad$1[]): Promise<void>;
1392
+ recordRelationAggregateObservations(entities: readonly Entity<TTable>[], aggregates: readonly AggregateLoad$1[], createPath: (index: number, key: string) => readonly DatabaseQueryResultPathSegment[]): void;
1393
+ recordRelationObservations(entities: readonly Entity<TTable>[], relations: readonly (string | EagerLoad$1)[], createPath: (index: number, relationName: string) => readonly DatabaseQueryResultPathSegment[]): void;
1394
+ private recordHasManyRelationObservations;
1395
+ private recordHasOneRelationObservations;
1396
+ private recordBelongsToRelationObservations;
1397
+ private createBelongsToParentKeyRelationObservation;
1398
+ private createNullableSingleRecordRelationObservation;
1399
+ private rememberHasManyRelationObservation;
1400
+ private rememberBelongsToRelationObservation;
1401
+ private getRelationQueryObservation;
1402
+ private createHasManyRelationObservation;
1403
+ private createBelongsToRelationObservation;
1404
+ private recordBelongsToManyRelationObservations;
1405
+ private createBelongsToManyRelatedObservationMetadata;
1406
+ private createRelationAggregateObservation;
1407
+ private setRelationAggregateObservationMetadata;
1408
+ private getRelationAggregateObservationMetadata;
1409
+ private createRelationAggregateObservationTarget;
1158
1410
  create(values: Partial<ModelRecord<TTable>>): Promise<Entity<TTable>>;
1159
1411
  createQuietly(values: Partial<ModelRecord<TTable>>): Promise<Entity<TTable>>;
1160
1412
  createMany(values: readonly Partial<ModelRecord<TTable>>[]): Promise<ModelCollection<TTable>>;
@@ -1231,6 +1483,7 @@ declare class ModelRepository<TTable extends TableDefinition = TableDefinition>
1231
1483
  private getAggregateAttributeKey;
1232
1484
  private getRelationAggregateValues;
1233
1485
  private computeAggregateValue;
1486
+ private computeExtremeAggregateValue;
1234
1487
  private assertNumericAggregateValue;
1235
1488
  private getRelatedEntitiesByParentKey;
1236
1489
  attachCollection(entities: readonly Entity<TTable>[]): readonly Entity<TTable>[];
@@ -1266,6 +1519,7 @@ declare class ModelRepository<TTable extends TableDefinition = TableDefinition>
1266
1519
  private getMorphToManyEntitiesByParentKey;
1267
1520
  private getMorphedByManyEntitiesByParentKey;
1268
1521
  private createBelongsToManyPivotQuery;
1522
+ private resolvePivotTableName;
1269
1523
  private createMorphToManyPivotQuery;
1270
1524
  private createMorphedByManyPivotQuery;
1271
1525
  private applyPivotQueryConfig;
@@ -1535,6 +1789,7 @@ declare class ModelQueryBuilder<TTable extends TableDefinition = TableDefinition
1535
1789
  dump(): ModelQueryBuilder<TTable, TRelations, TLoaded>;
1536
1790
  cache(config: QueryCacheTtlInput | QueryCacheConfig): ModelQueryBuilder<TTable, TRelations, TLoaded>;
1537
1791
  get(): Promise<ModelCollection<TTable, TRelations, EntityWithLoaded<TTable, TRelations, TLoaded>>>;
1792
+ private hydrateRows;
1538
1793
  getJson(): Promise<SerializedEntityWithLoaded<TTable, TLoaded>[]>;
1539
1794
  first(): Promise<EntityWithLoaded<TTable, TRelations, TLoaded> | undefined>;
1540
1795
  firstJson(): Promise<SerializedEntityWithLoaded<TTable, TLoaded> | undefined>;
@@ -1610,6 +1865,23 @@ declare class ModelQueryBuilder<TTable extends TableDefinition = TableDefinition
1610
1865
  private resolveBelongsToRelationName;
1611
1866
  private extractNumericValues;
1612
1867
  private getUnpaginatedEntities;
1868
+ private getUnpaginatedRowsAndEntities;
1869
+ private getRowsAndEntities;
1870
+ private recordCollectionRelationAggregateObservations;
1871
+ private recordCollectionRelationObservations;
1872
+ private recordSingleRelationObservations;
1873
+ private recordPaginatedRelationObservations;
1874
+ private recordSingleRelationAggregateObservations;
1875
+ private recordPaginatedRelationAggregateObservations;
1876
+ private canBindRowsToSerializedResultBase;
1877
+ private canBindRowsToSerializedResult;
1878
+ private createPatchableEagerRelationHydrations;
1879
+ private createPatchableRelatedHydrationQuery;
1880
+ private isQueryableModelReference;
1881
+ private rebindRowsToSerializedResult;
1882
+ private rebindRowsToPaginatedResult;
1883
+ private rebindRowsToSimplePaginatedResult;
1884
+ private rebindRowsToCursorPaginatedResult;
1613
1885
  private prepareCursorPaginationQuery;
1614
1886
  private resolveCursorOrders;
1615
1887
  private readCursorColumnValue;
@@ -3303,6 +3575,7 @@ declare class SQLQueryCompiler {
3303
3575
  protected compileInsertPrefix(_plan: InsertQueryPlan): string;
3304
3576
  protected compileInsertSuffix(_plan: InsertQueryPlan): string;
3305
3577
  protected compileUpsertSuffix(plan: UpsertQueryPlan, _insertColumns: readonly string[]): string;
3578
+ protected compileReturningClause(returning: boolean): string;
3306
3579
  protected compileHavingExpression(expression: string): string;
3307
3580
  protected compileColumnReference(reference: string): string;
3308
3581
  protected compileTableReference(reference: string): string;