@zeroxsolutions/db 9.4.0 → 10.0.0

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 (46) hide show
  1. package/CHANGELOG.md +58 -23
  2. package/README.md +163 -203
  3. package/dist/base/d1/outbox-table.d.ts.map +1 -1
  4. package/dist/base/d1/outbox-table.js +9 -1
  5. package/dist/base/d1/repository.d.ts +75 -66
  6. package/dist/base/d1/repository.d.ts.map +1 -1
  7. package/dist/base/d1/repository.js +134 -122
  8. package/dist/base/postgres/outbox-table.d.ts.map +1 -1
  9. package/dist/base/postgres/outbox-table.js +9 -1
  10. package/dist/base/postgres/repository.d.ts +108 -86
  11. package/dist/base/postgres/repository.d.ts.map +1 -1
  12. package/dist/base/postgres/repository.js +175 -143
  13. package/dist/base/read-engine.d.ts +49 -0
  14. package/dist/base/read-engine.d.ts.map +1 -0
  15. package/dist/base/read-engine.js +93 -0
  16. package/dist/utils/filter.d.ts +40 -61
  17. package/dist/utils/filter.d.ts.map +1 -1
  18. package/dist/utils/filter.js +51 -85
  19. package/dist/utils/index.d.ts +3 -5
  20. package/dist/utils/index.d.ts.map +1 -1
  21. package/dist/utils/index.js +3 -5
  22. package/dist/utils/read.d.ts +86 -0
  23. package/dist/utils/read.d.ts.map +1 -0
  24. package/dist/utils/read.js +124 -0
  25. package/dist/utils/reads.d.ts +24 -0
  26. package/dist/utils/reads.d.ts.map +1 -0
  27. package/dist/utils/reads.js +23 -0
  28. package/dist/utils/relationships.d.ts +9 -6
  29. package/dist/utils/relationships.d.ts.map +1 -1
  30. package/dist/utils/relationships.js +26 -8
  31. package/package.json +3 -3
  32. package/dist/utils/assert-queryable-fields.d.ts +0 -27
  33. package/dist/utils/assert-queryable-fields.d.ts.map +0 -1
  34. package/dist/utils/assert-queryable-fields.js +0 -47
  35. package/dist/utils/constants.d.ts +0 -7
  36. package/dist/utils/constants.d.ts.map +0 -1
  37. package/dist/utils/constants.js +0 -6
  38. package/dist/utils/include.d.ts +0 -80
  39. package/dist/utils/include.d.ts.map +0 -1
  40. package/dist/utils/include.js +0 -132
  41. package/dist/utils/table-query.d.ts +0 -41
  42. package/dist/utils/table-query.d.ts.map +0 -1
  43. package/dist/utils/table-query.js +0 -1
  44. package/dist/utils/total-order.d.ts +0 -15
  45. package/dist/utils/total-order.d.ts.map +0 -1
  46. package/dist/utils/total-order.js +0 -35
@@ -1,42 +1,35 @@
1
- import type { DBQueryConfig, ExtractTablesWithRelations, InferInsertModel, InferSelectViewModel, SQL } from 'drizzle-orm';
1
+ import type { ExtractTablesWithRelations, InferInsertModel, InferSelectViewModel, SQL } from 'drizzle-orm';
2
2
  import { type InferSelectModel } from 'drizzle-orm';
3
- import type { PgTable, PgTransaction, SelectedFields, TableConfig } from 'drizzle-orm/pg-core';
4
- import type { SortField } from '@zeroxsolutions/query';
5
- import { type TableQuery } from '../../utils/index.js';
3
+ import type { PgTable, PgTransaction, TableConfig } from 'drizzle-orm/pg-core';
6
4
  import { type PgMaterializedView } from 'drizzle-orm/pg-core';
7
5
  import type { PostgresJsDatabase, PostgresJsQueryResultHKT } from 'drizzle-orm/postgres-js';
6
+ import { type FilterNode } from '../../utils/filter.js';
7
+ import { type ColumnName, type MatchOptions, type OrderEntry, type Read } from '../../utils/read.js';
8
+ import type { Reads } from '../../utils/reads.js';
8
9
  /** The tables-with-relations view a drizzle schema expands into, for typing relational queries. */
9
10
  export type RelationalSchema<TSchema extends Record<string, unknown>> = ExtractTablesWithRelations<TSchema>;
10
11
  /** A `postgres-js` transaction handle bound to a full schema and its relations. */
11
12
  export type Transaction<TFullSchema extends Record<string, unknown> = Record<string, unknown>> = PgTransaction<PostgresJsQueryResultHKT, TFullSchema, ExtractTablesWithRelations<TFullSchema>>;
12
13
  /** Whatever runs a given query: a standalone database connection, or an open transaction. */
13
14
  export type Executor<TFullSchema extends Record<string, unknown> = Record<string, unknown>> = PostgresJsDatabase<TFullSchema> | Transaction<TFullSchema>;
14
- /** Paging, soft-delete visibility, relation-loading, and ordering controls for {@link BaseRepository.findAll}. */
15
- export type FindAllOptions<TSchema extends Record<string, unknown> = Record<string, unknown>, TTableName extends keyof RelationalSchema<TSchema> = keyof RelationalSchema<TSchema>> = {
16
- tx?: Transaction<TSchema>;
17
- limit?: number;
18
- offset?: number;
15
+ /** A read of one row: what it loads, whether marked rows match, and the instant a `virtual` name is decided at. */
16
+ export type FindOneOptions<TSchema extends Record<string, unknown> = Record<string, unknown>, TTableName extends keyof RelationalSchema<TSchema> = keyof RelationalSchema<TSchema>> = {
17
+ read?: Read<ColumnName<TSchema, TTableName>>;
19
18
  softDeleted?: boolean;
20
- /** Root columns loaded on top of the root fieldset, for what the caller computes from; it never narrows the row. */
21
- columns?: DBQueryConfig<'many', true, RelationalSchema<TSchema>, RelationalSchema<TSchema>[TTableName]>['columns'];
22
- /** A relational config spelled out; where it names a relation `include` reaches too, this one wins. */
23
- with?: DBQueryConfig<'many', true, RelationalSchema<TSchema>, RelationalSchema<TSchema>[TTableName]>['with'];
24
- sort?: SortField[];
25
- } & TableQuery<TSchema, TTableName>;
26
- /** Query controls for {@link BaseRepository.findAllAndCount}: {@link FindAllOptions} unchanged. */
27
- export type FindAllAndCountOptions<TSchema extends Record<string, unknown> = Record<string, unknown>, TTableName extends keyof RelationalSchema<TSchema> = keyof RelationalSchema<TSchema>> = FindAllOptions<TSchema, TTableName>;
19
+ at?: Date;
20
+ };
28
21
  /**
29
- * A single-resource read: transaction, soft-delete visibility and relation loading, with no page
30
- * window and no `sort`. Ordering a `where` that matches several rows is `findAll(where, { limit: 1, sort })`.
22
+ * A read of many rows: a read of one, and the filter they match, their order (the primary key appended) and their page
23
+ * window. With no `limit` the finder reads every match.
31
24
  */
32
- export type FindOneOptions<TSchema extends Record<string, unknown> = Record<string, unknown>, TTableName extends keyof RelationalSchema<TSchema> = keyof RelationalSchema<TSchema>> = {
33
- tx?: Transaction<TSchema>;
34
- softDeleted?: boolean;
35
- /** Root columns loaded on top of the root fieldset, for what the caller computes from; it never narrows the row. */
36
- columns?: DBQueryConfig<'one', true, RelationalSchema<TSchema>, RelationalSchema<TSchema>[TTableName]>['columns'];
37
- /** A relational config spelled out; where it names a relation `include` reaches too, this one wins. */
38
- with?: DBQueryConfig<'one', true, RelationalSchema<TSchema>, RelationalSchema<TSchema>[TTableName]>['with'];
39
- } & TableQuery<TSchema, TTableName>;
25
+ export type FindAllOptions<TSchema extends Record<string, unknown> = Record<string, unknown>, TTableName extends keyof RelationalSchema<TSchema> = keyof RelationalSchema<TSchema>> = FindOneOptions<TSchema, TTableName> & {
26
+ filter?: readonly FilterNode[];
27
+ orderBy?: readonly OrderEntry<ColumnName<TSchema, TTableName>>[];
28
+ limit?: number;
29
+ offset?: number;
30
+ };
31
+ /** A count: the options that change which rows match, so a page and its total read the same filter. */
32
+ export type CountOptions = MatchOptions;
40
33
  /** Transaction context to enlist a single-row {@link BaseRepository.create} into. */
41
34
  export type CreateOptions<TSchema extends Record<string, unknown> = Record<string, unknown>> = {
42
35
  tx?: Transaction<TSchema>;
@@ -45,25 +38,15 @@ export type CreateOptions<TSchema extends Record<string, unknown> = Record<strin
45
38
  export type CreateManyOptions<TSchema extends Record<string, unknown> = Record<string, unknown>> = {
46
39
  tx?: Transaction<TSchema>;
47
40
  };
48
- /** Transaction context shared by {@link BaseRepository.update} and {@link BaseRepository.updateById}. */
41
+ /** Transaction context shared by the updates. */
49
42
  export type UpdateOptions<TSchema extends Record<string, unknown> = Record<string, unknown>> = {
50
43
  tx?: Transaction<TSchema>;
51
44
  };
52
- /** Transaction context shared by {@link BaseRepository.delete} and {@link BaseRepository.deleteById}. */
45
+ /** Transaction context shared by the deletes. */
53
46
  export type DeleteOptions<TSchema extends Record<string, unknown> = Record<string, unknown>> = {
54
47
  tx?: Transaction<TSchema>;
55
48
  };
56
- /** Transaction context, and whether tombstoned rows are tallied by {@link BaseRepository.count}. */
57
- export type CountOptions<TSchema extends Record<string, unknown> = Record<string, unknown>> = {
58
- tx?: Transaction<TSchema>;
59
- softDeleted?: boolean;
60
- };
61
- /** Transaction context, and whether tombstoned rows count by {@link BaseRepository.exists}. */
62
- export type ExistsOptions<TSchema extends Record<string, unknown> = Record<string, unknown>> = {
63
- tx?: Transaction<TSchema>;
64
- softDeleted?: boolean;
65
- };
66
- /** Transaction context shared by {@link BaseRepository.softDelete} and {@link BaseRepository.softDeleteById}. */
49
+ /** Transaction context shared by the soft deletes. */
67
50
  export type SoftDeleteOptions<TSchema extends Record<string, unknown> = Record<string, unknown>> = {
68
51
  tx?: Transaction<TSchema>;
69
52
  };
@@ -74,90 +57,129 @@ type InferUpdateModel<TTable extends PgTable<TableConfig>> = Partial<{
74
57
  export type IdOf<TTable extends PgTable<TableConfig>> = InferSelectModel<TTable> extends {
75
58
  id: infer TId;
76
59
  } ? TId : string | number;
77
- /** The CRUD, pagination, soft-delete, and relation-loading contract every table repository fulfils. */
60
+ /**
61
+ * What every table repository answers to its callers. No method here takes a condition: a read or a write keyed by
62
+ * anything but the id is a finder the repository names, over the protected methods that take a `where`, as a Spring
63
+ * Data repository's derived queries are.
64
+ */
78
65
  export interface IBaseRepository<TTable extends PgTable<TableConfig>, TSchema extends Record<string, unknown> = Record<string, unknown>, TTableName extends keyof RelationalSchema<TSchema> = keyof RelationalSchema<TSchema>> {
79
- findAll<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindAllOptions<TSchema, TTableName>): Promise<R[]>;
80
- findAllAndCount<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindAllAndCountOptions<TSchema, TTableName>): Promise<[R[], number]>;
81
- findOne<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindOneOptions<TSchema, TTableName>): Promise<R | null>;
82
66
  findOneById<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(id: IdOf<TTable>, options?: FindOneOptions<TSchema, TTableName>): Promise<R | null>;
67
+ findAllById<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(ids: readonly IdOf<TTable>[], options?: Omit<FindAllOptions<TSchema, TTableName>, 'limit' | 'offset'>): Promise<R[]>;
68
+ existsById(id: IdOf<TTable>, options?: Pick<CountOptions, 'softDeleted'>): Promise<boolean>;
69
+ findAll<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(options?: FindAllOptions<TSchema, TTableName>): Promise<R[]>;
70
+ findAllAndCount<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(options?: FindAllOptions<TSchema, TTableName>): Promise<[R[], number]>;
71
+ count(options?: CountOptions): Promise<number>;
83
72
  create(data: InferInsertModel<TTable>, options?: CreateOptions<TSchema>): Promise<InferSelectModel<TTable>>;
84
73
  createMany(data: InferInsertModel<TTable>[], options?: CreateManyOptions<TSchema>): Promise<InferSelectModel<TTable>[]>;
85
- update(where: SQL | undefined, data: InferUpdateModel<TTable>, options?: UpdateOptions<TSchema>): Promise<InferSelectModel<TTable> | null>;
86
74
  updateById(id: IdOf<TTable>, data: InferUpdateModel<TTable>, options?: UpdateOptions<TSchema>): Promise<InferSelectModel<TTable> | null>;
87
- delete(where: SQL | undefined, options?: DeleteOptions<TSchema>): Promise<void>;
88
75
  deleteById(id: IdOf<TTable>, options?: DeleteOptions<TSchema>): Promise<void>;
89
- count(where: SQL | undefined, options?: CountOptions<TSchema>): Promise<number>;
90
- exists(where: SQL | undefined, options?: ExistsOptions<TSchema>): Promise<boolean>;
91
- softDelete(where: SQL | undefined, options?: SoftDeleteOptions<TSchema>): Promise<void>;
76
+ deleteAllById(ids: readonly IdOf<TTable>[], options?: DeleteOptions<TSchema>): Promise<void>;
92
77
  softDeleteById(id: IdOf<TTable>, options?: SoftDeleteOptions<TSchema>): Promise<void>;
93
- nullifyBy(field: keyof TTable, value: string | number, options?: UpdateOptions<TSchema>): Promise<void>;
78
+ softDeleteAllById(ids: readonly IdOf<TTable>[], options?: SoftDeleteOptions<TSchema>): Promise<void>;
94
79
  }
95
- /** A Postgres repository over `TTable` with CRUD, pagination, soft-delete, and relation loading. */
80
+ /** A Postgres repository over `TTable`: reads that name what they load, soft delete, and writes keyed by id. */
96
81
  export declare abstract class BaseRepository<TTable extends PgTable<TableConfig>, TSchema extends Record<string, unknown> = Record<string, unknown>, TTableName extends keyof RelationalSchema<TSchema> = keyof RelationalSchema<TSchema>> implements IBaseRepository<TTable, TSchema, TTableName> {
97
82
  protected db: PostgresJsDatabase<TSchema>;
98
83
  protected table: TTable;
99
84
  protected queryKey?: Extract<TTableName, string> | undefined;
100
- /** @param queryKey - omitted: `findAll`/`findOne` throw if called with `with` or `include`, and a fieldset names no relation. */
101
- constructor(db: PostgresJsDatabase<TSchema>, table: TTable, queryKey?: Extract<TTableName, string> | undefined);
85
+ protected reads: Reads<TSchema>;
86
+ /**
87
+ * @param queryKey - the table's EXPORT name in the schema; omitted, a read that loads a relation throws
88
+ * @param reads - the context's `READS`: each table's order as a relation, and its `virtual` names
89
+ */
90
+ constructor(db: PostgresJsDatabase<TSchema>, table: TTable, queryKey?: Extract<TTableName, string> | undefined, reads?: Reads<TSchema>);
102
91
  protected getExecutor(tx?: Transaction<TSchema>): Executor<TSchema>;
103
- findAll<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindAllOptions<TSchema, TTableName>): Promise<R[]>;
104
- findAllAndCount<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindAllAndCountOptions<TSchema, TTableName>): Promise<[R[], number]>;
105
- findOne<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindOneOptions<TSchema, TTableName>): Promise<R | null>;
92
+ private get source();
93
+ private idColumn;
106
94
  findOneById<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(id: IdOf<TTable>, options?: FindOneOptions<TSchema, TTableName>): Promise<R | null>;
95
+ findAllById<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(ids: readonly IdOf<TTable>[], options?: Omit<FindAllOptions<TSchema, TTableName>, 'limit' | 'offset'>): Promise<R[]>;
96
+ existsById(id: IdOf<TTable>, options?: Pick<CountOptions, 'softDeleted'>): Promise<boolean>;
97
+ findAll<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(options?: FindAllOptions<TSchema, TTableName>): Promise<R[]>;
98
+ findAllAndCount<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(options?: FindAllOptions<TSchema, TTableName>): Promise<[R[], number]>;
99
+ count(options?: CountOptions): Promise<number>;
100
+ /** The rows matching `where` and the options, in their order and page window. */
101
+ protected findAllWhere<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindAllOptions<TSchema, TTableName>): Promise<R[]>;
102
+ /** {@link findAllWhere} and {@link countWhere} over the same `where` and filter, so the total matches the page. */
103
+ protected findAllAndCountWhere<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindAllOptions<TSchema, TTableName>): Promise<[R[], number]>;
104
+ /** The first row matching `where`, loaded as the options' `read` names. */
105
+ protected findOneWhere<R extends Partial<InferSelectModel<TTable>> = InferSelectModel<TTable>>(where: SQL | undefined, options?: FindOneOptions<TSchema, TTableName>): Promise<R | null>;
106
+ /** How many rows match `where` and the options' filter. */
107
+ protected countWhere(where: SQL | undefined, options?: CountOptions): Promise<number>;
108
+ /** Whether any row matches `where` and the options' filter. */
109
+ protected existsWhere(where: SQL | undefined, options?: CountOptions): Promise<boolean>;
110
+ private plainSelection;
107
111
  create(data: InferInsertModel<TTable>, options?: CreateOptions<TSchema>): Promise<InferSelectModel<TTable>>;
108
112
  createMany(data: InferInsertModel<TTable>[], options?: CreateManyOptions<TSchema>): Promise<InferSelectModel<TTable>[]>;
109
- update(where: SQL | undefined, data: InferUpdateModel<TTable>, options?: UpdateOptions<TSchema>): Promise<InferSelectModel<TTable> | null>;
110
113
  updateById(id: IdOf<TTable>, data: InferUpdateModel<TTable>, options?: UpdateOptions<TSchema>): Promise<InferSelectModel<TTable> | null>;
111
- delete(where: SQL | undefined, options?: DeleteOptions<TSchema>): Promise<void>;
112
114
  deleteById(id: IdOf<TTable>, options?: DeleteOptions<TSchema>): Promise<void>;
113
- count(where: SQL | undefined, options?: CountOptions<TSchema>): Promise<number>;
114
- exists(where: SQL | undefined, options?: ExistsOptions<TSchema>): Promise<boolean>;
115
- softDelete(where: SQL | undefined, options?: SoftDeleteOptions<TSchema>): Promise<void>;
115
+ deleteAllById(ids: readonly IdOf<TTable>[], options?: DeleteOptions<TSchema>): Promise<void>;
116
116
  softDeleteById(id: IdOf<TTable>, options?: SoftDeleteOptions<TSchema>): Promise<void>;
117
- nullifyBy(field: keyof TTable, value: string | number, options?: UpdateOptions<TSchema>): Promise<void>;
117
+ softDeleteAllById(ids: readonly IdOf<TTable>[], options?: SoftDeleteOptions<TSchema>): Promise<void>;
118
+ /** Updates the rows matching `where`, answering the first. */
119
+ protected updateWhere(where: SQL | undefined, data: InferUpdateModel<TTable>, options?: UpdateOptions<TSchema>): Promise<InferSelectModel<TTable> | null>;
120
+ /** Removes the rows matching `where`. */
121
+ protected deleteWhere(where: SQL | undefined, options?: DeleteOptions<TSchema>): Promise<void>;
122
+ /** Marks the rows matching `where` deleted. */
123
+ protected softDeleteWhere(where: SQL | undefined, options?: SoftDeleteOptions<TSchema>): Promise<void>;
124
+ /** Sets `field` to null on every row whose `field` holds `value`. */
125
+ protected nullifyBy(field: keyof TTable, value: string | number, options?: UpdateOptions<TSchema>): Promise<void>;
118
126
  }
119
127
  /** Whether {@link BaseViewRepository.refresh} rebuilds without locking readers, and in which transaction. */
120
128
  export type RefreshMaterializedViewOptions<TSchema extends Record<string, unknown> = Record<string, unknown>> = {
121
129
  concurrently?: boolean;
122
130
  tx?: Transaction<TSchema>;
123
131
  };
124
- /** A fieldset keyed by the view's name, holding its selected column names. */
125
- export type ViewFields<ViewTable extends PgMaterializedView> = {
126
- [Name in ViewTable['_']['name']]?: readonly (keyof InferSelectViewModel<ViewTable> & string)[];
132
+ /** A column name of a materialized view. */
133
+ export type ViewColumnName<ViewTable extends PgMaterializedView> = keyof InferSelectViewModel<ViewTable> & string;
134
+ /** A read of one view row: which of its columns load, every one where `read` names none. */
135
+ export type FindOneViewOptions<ViewTable extends PgMaterializedView> = {
136
+ read?: {
137
+ columns?: readonly ViewColumnName<ViewTable>[];
138
+ };
127
139
  };
128
- /** A page of a materialized view: transaction, page window and the view's fieldset. */
129
- export type FindAllViewOptions<ViewTable extends PgMaterializedView, TSchema extends Record<string, unknown> = Record<string, unknown>> = {
130
- tx?: Transaction<TSchema>;
140
+ /** A read of many view rows: a read of one, and the filter they match, their order (the key appended) and page window. */
141
+ export type FindAllViewOptions<ViewTable extends PgMaterializedView> = FindOneViewOptions<ViewTable> & {
142
+ filter?: readonly FilterNode[];
143
+ orderBy?: readonly OrderEntry<ViewColumnName<ViewTable>>[];
131
144
  limit?: number;
132
145
  offset?: number;
133
- /** Those columns and the view's key where the view's name is given one; every column where it is not. */
134
- fields?: ViewFields<ViewTable>;
135
146
  };
136
- /** One row of a materialized view: transaction and the view's fieldset. */
137
- export type FindOneViewOptions<ViewTable extends PgMaterializedView, TSchema extends Record<string, unknown> = Record<string, unknown>> = Omit<FindAllViewOptions<ViewTable, TSchema>, 'limit' | 'offset'>;
138
- /** The read-and-refresh contract a materialized-view repository fulfils. */
147
+ /** A count of view rows: the filter they match. */
148
+ export type CountViewOptions = {
149
+ filter?: readonly FilterNode[];
150
+ };
151
+ /** What every materialized-view repository answers to its callers; no method takes a condition. */
139
152
  export interface IBaseViewRepository<ViewTable extends PgMaterializedView, TSchema extends Record<string, unknown> = Record<string, unknown>> {
140
- findAll<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindAllViewOptions<ViewTable, TSchema>): Promise<R[]>;
141
- findOne<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindOneViewOptions<ViewTable, TSchema>): Promise<R | null>;
142
- findAllAndCount<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindAllViewOptions<ViewTable, TSchema>): Promise<[R[], number]>;
143
- count(where: SQL | undefined, options?: CountOptions<TSchema>): Promise<number>;
153
+ findAll<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(options?: FindAllViewOptions<ViewTable>): Promise<R[]>;
154
+ findAllAndCount<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(options?: FindAllViewOptions<ViewTable>): Promise<[R[], number]>;
155
+ count(options?: CountViewOptions): Promise<number>;
144
156
  refresh(options?: RefreshMaterializedViewOptions<TSchema>): Promise<void>;
145
157
  }
146
158
  /**
147
- * A read-only repository over a Postgres materialized view, with paginated reads and a refresh. A view has no
148
- * `deletedAt` and no relational config, and its order is the one its own definition states.
159
+ * A read-only repository over a Postgres materialized view. A view has no `deletedAt` and no relational config, and it
160
+ * is read back with no order of its own, so every order ends on the columns of its unique index.
149
161
  */
150
162
  export declare abstract class BaseViewRepository<ViewTable extends PgMaterializedView, TSchema extends Record<string, unknown> = Record<string, unknown>> implements IBaseViewRepository<ViewTable, TSchema> {
151
163
  protected db: PostgresJsDatabase<TSchema>;
152
164
  protected viewTable: ViewTable;
153
- constructor(db: PostgresJsDatabase<TSchema>, viewTable: ViewTable);
165
+ protected key: readonly ViewColumnName<ViewTable>[];
166
+ /** @param key - the columns of the view's unique index, appended to every order as a table's primary key is */
167
+ constructor(db: PostgresJsDatabase<TSchema>, viewTable: ViewTable, key: readonly ViewColumnName<ViewTable>[]);
154
168
  protected getExecutor(tx?: Transaction<TSchema>): Executor<TSchema>;
155
- /** The view's selected fields, narrowed to the fieldset `options` gives it. */
156
- protected selectedFields(options: FindOneViewOptions<ViewTable, TSchema> | undefined): SelectedFields;
157
- findAll<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindAllViewOptions<ViewTable, TSchema>): Promise<R[]>;
158
- findOne<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindOneViewOptions<ViewTable, TSchema>): Promise<R | null>;
159
- findAllAndCount<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindAllViewOptions<ViewTable, TSchema>): Promise<[R[], number]>;
160
- count(where: SQL | undefined, options?: CountOptions<TSchema>): Promise<number>;
169
+ /** The view's selected fields, which a filter and an order resolve against. */
170
+ private get selectable();
171
+ private get fields();
172
+ findAll<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(options?: FindAllViewOptions<ViewTable>): Promise<R[]>;
173
+ findAllAndCount<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(options?: FindAllViewOptions<ViewTable>): Promise<[R[], number]>;
174
+ count(options?: CountViewOptions): Promise<number>;
175
+ /** The view rows matching `where` and the options, in their order and page window. */
176
+ protected findAllWhere<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindAllViewOptions<ViewTable>): Promise<R[]>;
177
+ /** The first view row matching `where`. */
178
+ protected findOneWhere<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindOneViewOptions<ViewTable>): Promise<R | null>;
179
+ /** {@link findAllWhere} and {@link countWhere} over the same `where` and filter. */
180
+ protected findAllAndCountWhere<R extends Partial<InferSelectViewModel<ViewTable>> = InferSelectViewModel<ViewTable>>(where: SQL | undefined, options?: FindAllViewOptions<ViewTable>): Promise<[R[], number]>;
181
+ /** How many view rows match `where` and the options' filter. */
182
+ protected countWhere(where: SQL | undefined, options?: CountViewOptions): Promise<number>;
161
183
  refresh(options?: RefreshMaterializedViewOptions<TSchema>): Promise<void>;
162
184
  }
163
185
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/base/postgres/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/base/postgres/repository.ts"],"names":[],"mappings":"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"}