@owlmeans/postgres-resource 0.1.18-rc.1 → 0.1.18-rc.11

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 (61) hide show
  1. package/README.md +25 -10
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/postgres-resource/SKILL.md +58 -11
  4. package/build/consts.d.ts +9 -2
  5. package/build/consts.d.ts.map +1 -1
  6. package/build/consts.js +8 -1
  7. package/build/consts.js.map +1 -1
  8. package/build/declarations.d.ts.map +1 -1
  9. package/build/declarations.js +5 -5
  10. package/build/errors.d.ts.map +1 -1
  11. package/build/errors.js.map +1 -1
  12. package/build/helper.d.ts.map +1 -1
  13. package/build/resource.d.ts +2 -2
  14. package/build/resource.d.ts.map +1 -1
  15. package/build/resource.js +95 -108
  16. package/build/resource.js.map +1 -1
  17. package/build/types.d.ts +27 -19
  18. package/build/types.d.ts.map +1 -1
  19. package/build/utils/criteria.d.ts +10 -6
  20. package/build/utils/criteria.d.ts.map +1 -1
  21. package/build/utils/criteria.js +13 -5
  22. package/build/utils/criteria.js.map +1 -1
  23. package/build/utils/diff.d.ts.map +1 -1
  24. package/build/utils/diff.js +31 -1
  25. package/build/utils/diff.js.map +1 -1
  26. package/build/utils/introspect.d.ts.map +1 -1
  27. package/build/utils/life-cycle.d.ts.map +1 -1
  28. package/build/utils/marshal.d.ts.map +1 -1
  29. package/build/utils/marshal.js.map +1 -1
  30. package/build/utils/migrations.d.ts +2 -2
  31. package/build/utils/migrations.d.ts.map +1 -1
  32. package/build/utils/migrations.js +2 -2
  33. package/build/utils/name.d.ts +3 -3
  34. package/build/utils/name.d.ts.map +1 -1
  35. package/build/utils/name.js +3 -3
  36. package/build/utils/name.js.map +1 -1
  37. package/build/utils/schema.d.ts.map +1 -1
  38. package/build/utils/schema.js.map +1 -1
  39. package/build/utils/sql.d.ts +10 -2
  40. package/build/utils/sql.d.ts.map +1 -1
  41. package/build/utils/sql.js.map +1 -1
  42. package/build/utils/sync.d.ts.map +1 -1
  43. package/build/utils/table.d.ts +4 -0
  44. package/build/utils/table.d.ts.map +1 -1
  45. package/build/utils/table.js +4 -0
  46. package/build/utils/table.js.map +1 -1
  47. package/package.json +7 -7
  48. package/src/consts.ts +8 -1
  49. package/src/declarations.ts +5 -5
  50. package/src/resource.ts +118 -135
  51. package/src/types.ts +29 -18
  52. package/src/utils/criteria.ts +25 -17
  53. package/src/utils/diff.ts +31 -1
  54. package/src/utils/migrations.ts +2 -2
  55. package/src/utils/name.ts +3 -3
  56. package/src/utils/sql.ts +0 -0
  57. package/src/utils/table.ts +5 -1
  58. package/tests/criteria.spec.ts +187 -0
  59. package/tests/diff.spec.ts +60 -0
  60. package/tests/name.spec.ts +3 -3
  61. package/tests/sql.spec.ts +4 -3
package/build/resource.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { appendContextual, assertContext } from '@owlmeans/context';
2
- import { MisshapedRecord, RecordExists, RecordUpdateFailed, UnknownRecordError, UnsupportedArgumentError, prepareListOptions } from '@owlmeans/resource';
2
+ import { MisshapedRecord, RecordExists, RecordUpdateFailed, UnknownRecordError, UnsupportedArgumentError } from '@owlmeans/resource';
3
3
  import { eq, sql } from 'drizzle-orm';
4
4
  import { DEFAULT_DB_ALIAS, DEFAULT_PAGE_SIZE, ID_FIELD } from './consts.js';
5
5
  import { getDeclaration } from './declarations.js';
@@ -10,18 +10,13 @@ import { initializeTable } from './utils/life-cycle.js';
10
10
  import { recordToFullValues, recordToValues, resultToRecord, rowToRecord } from './utils/marshal.js';
11
11
  import { makeTx } from './utils/migrations.js';
12
12
  import { refOf, resolvePlaceholders } from './utils/sql.js';
13
- const fieldOf = (opts) => typeof opts === 'string' ? opts : opts?.field;
14
- const ttlOf = (opts) => typeof opts === 'object' ? opts.ttl : undefined;
15
- /**
16
- * Hand a runtime built table to Drizzle's query builder.
17
- *
18
- * {@link PgRuntimeTable} is deliberately untyped — the table is compiled from a JSON schema
19
- * at runtime, so there is no static shape to infer. Naming the erased `PgTable` here is what
20
- * keeps the builder's *result* types usable; casting the argument to `never` instead would
21
- * silently collapse every returned row to `never`.
22
- */
23
- const pgTable = (table) => table;
24
- export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceAlias = DEFAULT_DB_ALIAS, makeCustomResource, tableName) => {
13
+ /** Postgres has no row expiry — silently ignoring a TTL would lose data. */
14
+ const refuseTtl = (opts) => {
15
+ if (opts?.ttl != null) {
16
+ throw new UnsupportedArgumentError('ttl');
17
+ }
18
+ };
19
+ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceAlias = DEFAULT_DB_ALIAS, tableName) => {
25
20
  const location = `postgres-resource:${alias}`;
26
21
  const declaration = getDeclaration(alias);
27
22
  /** Set by `init()`; every data method goes through `ensure()`, which guarantees them. */
@@ -60,10 +55,17 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
60
55
  }
61
56
  return column;
62
57
  };
63
- const identify = (table, property, value) => {
64
- const column = columnOf(table, property);
65
- return eq(entity[column.property], value);
66
- };
58
+ /** `WHERE <column> = <value>` for one property, by its schema name. */
59
+ const identify = (table, from, property, value) => eq(from[columnOf(table, property).property], value);
60
+ /**
61
+ * The condition a read or a write is keyed on. A string is the record's id; a criteria
62
+ * object is translated in full, so one call can ask by several fields at once.
63
+ */
64
+ const where = (table, from, query) => typeof query === 'string'
65
+ ? identify(table, from, ID_FIELD, query)
66
+ : criteriaToSql(query, table, from);
67
+ /** What an unknown record is called in the error — the id, or the query that missed. */
68
+ const describe = (query) => typeof query === 'string' ? query : JSON.stringify(query);
67
69
  const raw = async (text, params) => {
68
70
  const { db, spec: table } = await ensure();
69
71
  const context = assertContext(resource.ctx, location);
@@ -75,55 +77,53 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
75
77
  throw pgErrorToResourceError(error);
76
78
  }
77
79
  };
78
- const resource = appendContextual(alias, {
79
- get: async (id, field, opts) => {
80
- const record = await resource.load(id, field, opts);
80
+ /**
81
+ * The single-record read both `get` and `load` answer with. Standalone so neither closes over
82
+ * `resource` — a member that referenced it could not be inferred against the generic.
83
+ */
84
+ const loadOne = async (query, opts) => {
85
+ const { db, spec: table, entity: from } = await ensure();
86
+ const rows = await db.drizzle.select().from(from).where(where(table, from, query))
87
+ .orderBy(...sortToSql(opts?.sort, table, from)).limit(1);
88
+ return rows.length < 1 ? null : resultToRecord(rows[0], table);
89
+ };
90
+ const members = {
91
+ get: (async (query, opts) => {
92
+ const record = await loadOne(query, opts);
81
93
  if (record == null) {
82
- throw new UnknownRecordError(id);
94
+ throw new UnknownRecordError(describe(query));
83
95
  }
84
96
  return record;
85
- },
86
- load: async (id, field, opts) => {
87
- if (typeof field === 'object') {
88
- opts = field;
89
- field = field.field;
90
- }
91
- if (ttlOf(opts) != null) {
92
- /** Postgres has no row expiry — silently ignoring a TTL would lose data. */
93
- throw new UnsupportedArgumentError('ttl');
94
- }
95
- const { db, spec: table, entity: from } = await ensure();
96
- const rows = await db.drizzle.select().from(pgTable(from))
97
- .where(identify(table, field ?? ID_FIELD, id)).limit(1);
98
- return rows.length < 1 ? null : resultToRecord(rows[0], table);
99
- },
97
+ }),
98
+ load: loadOne,
100
99
  list: async (criteria, opts) => {
101
100
  const { db, spec: table, entity: from } = await ensure();
102
- const options = prepareListOptions(DEFAULT_PAGE_SIZE, criteria, opts);
103
- const pager = options.pager ?? {};
104
- const size = pager.size ?? DEFAULT_PAGE_SIZE;
105
- const where = criteriaToSql(options.criteria, table, from);
101
+ const condition = criteriaToSql(criteria, table, from);
102
+ const order = sortToSql(opts?.sort, table, from);
103
+ /** Counted separately, so `total` describes the whole match rather than the page. */
106
104
  const totals = await db.drizzle
107
- .select({ total: sql `count(*)::int` }).from(pgTable(from)).where(where);
105
+ .select({ total: sql `count(*)::int` }).from(from).where(condition);
108
106
  const total = Number(totals[0]?.total ?? 0);
109
- pager.total = total;
110
- const skip = (pager.page ?? 0) * size;
111
- if (total === 0 || skip >= total) {
112
- return { items: [], pager };
113
- }
114
- const rows = await db.drizzle.select().from(pgTable(from)).where(where)
115
- .orderBy(...sortToSql(pager.sort, table, from)).limit(size).offset(skip);
116
- return { pager, items: rows.map(row => resultToRecord(row, table)) };
117
- },
118
- save: async (record, opts) => {
119
- const field = fieldOf(opts);
120
- const present = field != null
121
- ? record[field] != null
122
- : record.id != null;
123
- return present
124
- ? resource.update(record, opts)
125
- : resource.create(record, typeof opts !== 'string' ? opts : undefined);
107
+ const marshal = (rows) => rows.map(row => resultToRecord(row, table));
108
+ /** `size: 0` lifts the limit — the explicit, greppable way to read a whole table. */
109
+ const size = opts?.size ?? DEFAULT_PAGE_SIZE;
110
+ if (size === 0) {
111
+ const all = total === 0
112
+ ? []
113
+ : await db.drizzle.select().from(from).where(condition).orderBy(...order);
114
+ return { items: marshal(all), total };
115
+ }
116
+ const page = opts?.page ?? 0;
117
+ const skip = page * size;
118
+ const rows = total === 0 || skip >= total
119
+ ? []
120
+ : await db.drizzle.select().from(from).where(condition).orderBy(...order)
121
+ .limit(size).offset(skip);
122
+ return { items: marshal(rows), total, page, size };
126
123
  },
124
+ save: async (record, opts) => record.id != null
125
+ ? resource.update(record, opts)
126
+ : resource.create(record, opts),
127
127
  create: async (record, opts) => {
128
128
  if (ID_FIELD in record && record.id == null) {
129
129
  delete record.id;
@@ -131,16 +131,14 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
131
131
  if (record.id != null) {
132
132
  throw new RecordExists('id-present');
133
133
  }
134
- if (opts?.ttl != null) {
135
- throw new UnsupportedArgumentError('ttl');
136
- }
134
+ refuseTtl(opts);
137
135
  return resource.insert(record);
138
136
  },
139
137
  insert: async (record) => {
140
138
  const { db, spec: table, entity: into } = await ensure();
141
139
  const values = recordToValues({ ...resource.getDefaults(), ...record }, table);
142
140
  try {
143
- const rows = await db.drizzle.insert(pgTable(into)).values(values).returning();
141
+ const rows = await db.drizzle.insert(into).values(values).returning();
144
142
  if (rows.length < 1) {
145
143
  throw new RecordUpdateFailed('creation');
146
144
  }
@@ -170,8 +168,8 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
170
168
  throw new UnsupportedArgumentError('upsert:nothing-to-update');
171
169
  }
172
170
  try {
173
- const rows = await db.drizzle.insert(pgTable(into)).values(values)
174
- .onConflictDoUpdate({ target: target, set: set }).returning();
171
+ const rows = await db.drizzle.insert(into).values(values)
172
+ .onConflictDoUpdate({ target, set: set }).returning();
175
173
  if (rows.length < 1) {
176
174
  throw new RecordUpdateFailed('upsert');
177
175
  }
@@ -182,19 +180,19 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
182
180
  }
183
181
  },
184
182
  update: async (record, opts) => {
183
+ refuseTtl(opts);
185
184
  const { db, spec: table, entity: target } = await ensure();
186
- const field = fieldOf(opts) ?? ID_FIELD;
187
- const key = record[field];
185
+ const key = record.id;
188
186
  if (key == null) {
189
- throw new MisshapedRecord(field === ID_FIELD ? ID_FIELD : 'no-field-value');
187
+ throw new MisshapedRecord(ID_FIELD);
190
188
  }
191
189
  /** Replace, not merge — the semantics mongo's `replaceOne` gives. `patch()` merges. */
192
190
  const values = recordToFullValues(record, table);
193
191
  try {
194
- const rows = await db.drizzle.update(pgTable(target)).set(values)
195
- .where(identify(table, field, key)).returning();
192
+ const rows = await db.drizzle.update(target).set(values)
193
+ .where(identify(table, target, ID_FIELD, key)).returning();
196
194
  if (rows.length < 1) {
197
- throw new UnknownRecordError(`${field}:${key}`);
195
+ throw new UnknownRecordError(`${key}`);
198
196
  }
199
197
  return resultToRecord(rows[0], table);
200
198
  }
@@ -203,24 +201,24 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
203
201
  }
204
202
  },
205
203
  patch: async (record, opts) => {
204
+ refuseTtl(opts);
206
205
  const { db, spec: table, entity: target } = await ensure();
207
- const field = (typeof opts === 'string' ? opts : opts?.field) ?? ID_FIELD;
208
- const key = record[field];
206
+ const key = record.id;
209
207
  if (key == null) {
210
- throw new MisshapedRecord(field === ID_FIELD ? ID_FIELD : 'no-field-value');
208
+ throw new MisshapedRecord(ID_FIELD);
211
209
  }
212
210
  const values = recordToValues(record, table);
213
211
  for (const column of table.primaryKey) {
214
212
  delete values[table.byColumn[column]?.property ?? column];
215
213
  }
216
214
  if (Object.keys(values).length < 1) {
217
- return resource.get(`${key}`, field);
215
+ return resource.get(`${key}`);
218
216
  }
219
217
  try {
220
- const rows = await db.drizzle.update(pgTable(target)).set(values)
221
- .where(identify(table, field, key)).returning();
218
+ const rows = await db.drizzle.update(target).set(values)
219
+ .where(identify(table, target, ID_FIELD, key)).returning();
222
220
  if (rows.length < 1) {
223
- throw new UnknownRecordError(`${field}:${key}`);
221
+ throw new UnknownRecordError(`${key}`);
224
222
  }
225
223
  return resultToRecord(rows[0], table);
226
224
  }
@@ -228,40 +226,34 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
228
226
  throw pgErrorToResourceError(error);
229
227
  }
230
228
  },
231
- delete: async (id, opts) => {
229
+ delete: async (id) => {
232
230
  const { db, spec: table, entity: from } = await ensure();
233
- const field = fieldOf(opts) ?? ID_FIELD;
234
- const key = typeof id === 'object' ? id[field] : id;
235
- if (key == null) {
236
- throw new MisshapedRecord(field === ID_FIELD ? ID_FIELD : 'no-field-value');
237
- }
238
231
  /** One statement — mongo's read-then-delete can lose the record between the two. */
239
- const rows = await db.drizzle.delete(pgTable(from))
240
- .where(identify(table, field, key)).returning();
232
+ const rows = await db.drizzle.delete(from)
233
+ .where(identify(table, from, ID_FIELD, id)).returning();
241
234
  return rows.length < 1 ? null : resultToRecord(rows[0], table);
242
235
  },
243
- pick: async (id, opts) => {
244
- const record = await resource.delete(id, opts);
236
+ take: async (id) => {
237
+ const record = await resource.delete(id);
245
238
  if (record == null) {
246
- throw new UnknownRecordError(typeof id === 'string' ? id : (id.id ?? 'unknown'));
239
+ throw new UnknownRecordError(id);
247
240
  }
248
241
  return record;
249
242
  },
250
243
  purge: async (criteria) => {
251
244
  const { db, spec: table, entity: from } = await ensure();
252
- const where = criteriaToSql(criteria, table, from);
253
- if (where == null) {
245
+ const condition = criteriaToSql(criteria, table, from);
246
+ if (condition == null) {
254
247
  /** An empty criteria object here would silently truncate the table. */
255
248
  throw new UnsupportedArgumentError('purge:no-criteria');
256
249
  }
257
- const rows = await db.drizzle.delete(pgTable(from)).where(where).returning();
250
+ const rows = await db.drizzle.delete(from).where(condition).returning();
258
251
  return rows.length;
259
252
  },
260
253
  count: async (criteria) => {
261
254
  const { db, spec: table, entity: from } = await ensure();
262
- const options = prepareListOptions(DEFAULT_PAGE_SIZE, criteria);
263
255
  const rows = await db.drizzle.select({ total: sql `count(*)::int` })
264
- .from(pgTable(from)).where(criteriaToSql(options.criteria, table, from));
256
+ .from(from).where(criteriaToSql(criteria, table, from));
265
257
  return Number(rows[0]?.total ?? 0);
266
258
  },
267
259
  getDefaults: () => {
@@ -277,8 +269,8 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
277
269
  return { ...defaults, [key]: property.default };
278
270
  }, {});
279
271
  },
280
- query: async (text, params) => (await raw(text, params)).rows,
281
- queryOne: async (text, params) => (await raw(text, params)).rows[0] ?? null,
272
+ query: (async (text, params) => (await raw(text, params)).rows),
273
+ queryOne: (async (text, params) => (await raw(text, params)).rows[0] ?? null),
282
274
  execute: async (text, params) => (await raw(text, params)).count,
283
275
  select: async (text, params) => {
284
276
  const { spec: table } = await ensure();
@@ -335,21 +327,23 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
335
327
  await postgres.ready();
336
328
  return postgres.client(dbAlias);
337
329
  },
330
+ /** Chainable — the declaration store is keyed by alias, so this object is the whole state. */
338
331
  index: (name, index) => {
339
332
  declaration.indexes.push({ ...index, name });
340
333
  return resource;
341
334
  },
342
- /** `this`-returning in the interface — the implementation returns that very object. */
335
+ /** Self-returning in the interface — the implementation returns that very object. */
343
336
  migration: ((name, apply, stage) => {
344
337
  declaration.migrations.register(name, apply, stage);
345
338
  return resource;
346
339
  }),
347
340
  migrations: () => declaration.migrations
348
- });
341
+ };
342
+ const resource = appendContextual(alias, members);
349
343
  /**
350
- * The AJV schema is stored per alias rather than on the object, so it survives
351
- * `reinitializeContext` — which rebuilds the resource and would otherwise drop a schema
352
- * the app assigned after construction, silently taking the table's structure with it.
344
+ * The AJV schema is stored per alias rather than on the object, so a second maker run for
345
+ * the same alias (a custom maker, a repeated maker, a spec) picks up the schema the app
346
+ * assigned after construction instead of silently taking the table's structure with it.
353
347
  */
354
348
  Object.defineProperty(resource, 'schema', {
355
349
  enumerable: true,
@@ -366,8 +360,7 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
366
360
  });
367
361
  /**
368
362
  * Explicit table name override, decoupled from the registration alias — an alias may
369
- * carry characters no identifier allows. Threaded back through the recursive maker call
370
- * below so it survives a context switch.
363
+ * carry characters no identifier allows.
371
364
  */
372
365
  if (tableName != null) {
373
366
  resource.name = tableName;
@@ -382,12 +375,6 @@ export const makePostgresResource = (alias, dbAlias = DEFAULT_DB_ALIAS, serviceA
382
375
  spec = initialized.spec;
383
376
  entity = initialized.entity;
384
377
  };
385
- resource.reinitializeContext = (context) => {
386
- const replacement = (makeCustomResource?.(dbAlias, serviceAlias)
387
- ?? makePostgresResource(alias, dbAlias, serviceAlias, makeCustomResource, tableName));
388
- replacement.ctx = context;
389
- return replacement;
390
- };
391
378
  return resource;
392
379
  };
393
380
  //# sourceMappingURL=resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
package/build/types.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import type { DbLocker, ListCriteria, ListOptions, MigratableResource, Resource, ResourceDbService, ResourceLocker, ResourceRecord } from '@owlmeans/resource';
1
+ import type { DbLocker, LockableResource, MigratableResource, Resource, ResourceDbService, ResourceRecord, WriteOptions } from '@owlmeans/resource';
2
2
  import type { AnySchema } from 'ajv';
3
3
  import type { Pool, PoolClient, QueryResultRow } from 'pg';
4
4
  import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
5
+ import type { PgColumn, PgTable } from 'drizzle-orm/pg-core';
5
6
  import type { PgAutoSync, PgIndexMethod, PgReferentialAction } from './consts.js';
6
7
  /**
7
8
  * The handle {@link PostgresDbService.db} resolves to. Carries the pool alongside the
@@ -12,9 +13,9 @@ export interface PostgresDb {
12
13
  /** Drizzle bound to this config alias' pool. */
13
14
  drizzle: NodePgDatabase<Record<string, never>>;
14
15
  pool: Pool;
15
- /** The Postgres SCHEMA — i.e. `service.name(alias)`, layer suffixed. */
16
+ /** The Postgres SCHEMA this config alias' resources live in — i.e. `service.name(alias)`. */
16
17
  schema: string;
17
- /** The Postgres DATABASE — i.e. `config.meta.database`. Never layer suffixed. */
18
+ /** The Postgres DATABASE the pool is connected to — i.e. `config.meta.database`. */
18
19
  database: string;
19
20
  }
20
21
  export interface PostgresDbService extends ResourceDbService<PostgresDb, Pool>, DbLocker<ResourceRecord> {
@@ -61,7 +62,15 @@ export interface PostgresTx {
61
62
  /** Fully qualified identifier of a registered resource; omit for the owning resource. */
62
63
  ref: (resourceAlias?: string) => string;
63
64
  }
64
- export interface PostgresResource<T extends ResourceRecord> extends Resource<T>, ResourceLocker<T>, MigratableResource<PostgresTx> {
65
+ /**
66
+ * A `Resource<T>` over one Postgres table.
67
+ *
68
+ * Every method beyond the base contract exists because a table has structure a document
69
+ * store does not: identity supplied by the caller, conflict arbiters, partial writes, and
70
+ * SQL that no criteria object can express. Type the resource once —
71
+ * `context.resource<PostgresResource<Project>>(alias)` — rather than per call.
72
+ */
73
+ export interface PostgresResource<T extends ResourceRecord> extends Resource<T>, LockableResource<T>, MigratableResource<PostgresTx, PostgresResource<T>> {
65
74
  /** Physical table name override. Defaults to the resource alias, sanitized. */
66
75
  name?: string;
67
76
  /** The AJV schema — single source of truth for the table structure. */
@@ -73,7 +82,7 @@ export interface PostgresResource<T extends ResourceRecord> extends Resource<T>,
73
82
  db: () => Promise<PostgresDb>;
74
83
  client: () => Promise<Pool>;
75
84
  /** Declare an index the JSON schema can't express. Chainable. */
76
- index: <Type extends PostgresResource<T>>(name: string, spec: PgIndexSpec) => Type;
85
+ index: (name: string, spec: PgIndexSpec) => PostgresResource<T>;
77
86
  getDefaults: () => Partial<T>;
78
87
  /** Raw rows, no marshalling. */
79
88
  query: <Row extends QueryResultRow = QueryResultRow>(text: string, params?: unknown[]) => Promise<Row[]>;
@@ -81,22 +90,17 @@ export interface PostgresResource<T extends ResourceRecord> extends Resource<T>,
81
90
  /** Returns the affected row count. */
82
91
  execute: (text: string, params?: unknown[]) => Promise<number>;
83
92
  /** Rows marshalled back into `T` through the table spec. */
84
- select: <Type extends T>(text: string, params?: unknown[]) => Promise<Type[]>;
85
- selectOne: <Type extends T>(text: string, params?: unknown[]) => Promise<Type | null>;
93
+ select: (text: string, params?: unknown[]) => Promise<T[]>;
94
+ selectOne: (text: string, params?: unknown[]) => Promise<T | null>;
86
95
  /** Fully qualified `"schema"."table"`; pass an alias to reference another resource. */
87
96
  ref: (resourceAlias?: string) => string;
88
97
  transaction: <R>(fn: (tx: PostgresTx) => Promise<R>) => Promise<R>;
89
98
  /** Create with a caller supplied id — `create()` refuses one, mirroring mongo. */
90
- insert: <Type extends T>(record: Partial<Type>) => Promise<Type>;
99
+ insert: (record: Partial<T>) => Promise<T>;
91
100
  /** `INSERT ... ON CONFLICT (...) DO UPDATE`. Defaults to conflicting on the primary key. */
92
- upsert: <Type extends T>(record: Partial<Type>, conflict?: string[]) => Promise<Type>;
101
+ upsert: (record: Partial<T>, conflict?: string[]) => Promise<T>;
93
102
  /** Merge semantics — `update()` replaces the whole record, mirroring mongo's `replaceOne`. */
94
- patch: <Type extends T>(record: Partial<Type>, opts?: string | {
95
- field?: string;
96
- }) => Promise<Type>;
97
- /** Bulk delete by criteria. Returns the deleted row count. */
98
- purge: (criteria: ListCriteria) => Promise<number>;
99
- count: (criteria?: ListCriteria | ListOptions) => Promise<number>;
103
+ patch: (record: Partial<T>, opts?: WriteOptions) => Promise<T>;
100
104
  }
101
105
  /** Compiled, database ready description of a resource's table. */
102
106
  export interface TableSpec {
@@ -219,11 +223,15 @@ export interface PgReferenceSpec {
219
223
  onUpdate?: PgReferentialAction | `${PgReferentialAction}`;
220
224
  }
221
225
  /**
222
- * The Drizzle table object. Deliberately opaque — tables are built at runtime from JSON
223
- * schemas, so Drizzle's compile time inference has nothing to infer from and every
224
- * column would be `any` anyway. Cast it at the call site when you need the typed builder.
226
+ * The Drizzle table `specToTable` compiles from a {@link TableSpec}.
227
+ *
228
+ * Both halves are load bearing. `PgTable` is what the query builder accepts and what keeps
229
+ * the rows it hands back usable — erasing it to `never` would collapse every result row.
230
+ * The index signature is how a column is reached: the columns are keyed by schema property
231
+ * name and only known at runtime, so `eq(entity[column.property], value)` is a plain lookup
232
+ * rather than a cast.
225
233
  */
226
- export type PgRuntimeTable = Record<string, any>;
234
+ export type PgRuntimeTable = PgTable & Record<string, PgColumn>;
227
235
  /** One column as Postgres currently reports it. */
228
236
  export interface LiveColumn {
229
237
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,28 @@
1
- import type { ListCriteria, ListSort } from '@owlmeans/resource';
1
+ import type { Criteria, Sort } from '@owlmeans/resource';
2
2
  import type { SQL } from 'drizzle-orm';
3
3
  import type { PgRuntimeTable, TableSpec } from '../types.js';
4
4
  /**
5
- * Translate `ListCriteria` into a WHERE clause.
5
+ * Translate a {@link Criteria} into a WHERE clause. `undefined` means "no constraint at
6
+ * all" — the caller decides whether that is a full scan or a refusal.
6
7
  *
7
8
  * An unknown key raises rather than being skipped: a typo silently widening a query to
8
9
  * the whole table is the failure mode worth being loud about.
9
10
  *
10
11
  * @throws {UnsupportedArgumentError}
11
12
  */
12
- export declare const criteriaToSql: (criteria: ListCriteria | undefined, spec: TableSpec, table: PgRuntimeTable) => SQL | undefined;
13
+ export declare const criteriaToSql: <T>(criteria: Criteria<T> | undefined, spec: TableSpec, table: PgRuntimeTable) => SQL | undefined;
13
14
  /**
14
- * Translate `ListPager.sort` into ORDER BY. `[field, true]` is descending, matching the
15
- * `order ? -1 : 1` mapping mongo uses.
15
+ * Translate a {@link Sort} list into ORDER BY. A bare field name is ascending;
16
+ * `{ field, order: 'desc' }` reverses it — the same meaning every backend gives it.
16
17
  *
17
18
  * The primary key is always appended as a tiebreak. Postgres has no implicit row order, so
18
19
  * paginating on a non-unique sort key silently duplicates and skips rows between pages —
19
20
  * a difference from mongo that would otherwise surface as a data bug rather than an error.
20
21
  *
22
+ * A dotted path is a column this table does not have: criteria can reach into jsonb, ORDER BY
23
+ * cannot, and refusing is better than ordering by something the caller did not name.
24
+ *
21
25
  * @throws {UnsupportedArgumentError}
22
26
  */
23
- export declare const sortToSql: (sort: ListSort[] | undefined, spec: TableSpec, table: PgRuntimeTable) => SQL[];
27
+ export declare const sortToSql: <T>(sort: Sort<T>[] | undefined, spec: TableSpec, table: PgRuntimeTable) => SQL[];
24
28
  //# sourceMappingURL=criteria.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,KAAK,EAAc,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAqHxE;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,aACd,YAAY,GAAG,SAAS,QAAQ,SAAS,SAAS,cAAc,KACzE,GAAG,GAAG,SAIR,CAAA;AAuED;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,SACd,QAAQ,EAAE,GAAG,SAAS,QAAQ,SAAS,SAAS,cAAc,KACnE,GAAG,EA0BL,CAAA"}
1
+ {"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAkB,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAExE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,KAAK,EAAc,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAyHxE;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,UAAU,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,MAAM,SAAS,EAAE,OAAO,cAAc,KACxE,GAAG,GAAG,SAIR,CAAA;AAuED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,SAAS,EAAE,OAAO,cAAc,KAClE,GAAG,EA0BL,CAAA"}