@zeroxsolutions/db 9.0.0 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +10 -2
- package/dist/base/d1/repository.d.ts.map +1 -1
- package/dist/base/d1/repository.js +6 -2
- package/dist/base/postgres/repository.d.ts.map +1 -1
- package/dist/base/postgres/repository.js +5 -2
- package/dist/testing/disposable-postgres.js +10 -1
- package/dist/utils/total-order.d.ts +15 -0
- package/dist/utils/total-order.d.ts.map +1 -0
- package/dist/utils/total-order.js +35 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## 9.0.1 (2026-09-27)
|
|
2
|
+
|
|
3
|
+
### 🩹 Fixes
|
|
4
|
+
|
|
5
|
+
- **db:** print a disposable Postgres's warnings as one line and drop its notices ([3d89ca1](https://github.com/zeroxsolutions/zeroxsolutions/commit/3d89ca1))
|
|
6
|
+
- **db:** break a sort tie with the primary key on every D1 page ([6e89041](https://github.com/zeroxsolutions/zeroxsolutions/commit/6e89041))
|
|
7
|
+
- **db:** break a sort tie with the primary key on every Postgres page ([3e4a245](https://github.com/zeroxsolutions/zeroxsolutions/commit/3e4a245))
|
|
8
|
+
- **db:** derive a total order from a sort and the table's primary key ([d98d780](https://github.com/zeroxsolutions/zeroxsolutions/commit/d98d780))
|
|
9
|
+
|
|
10
|
+
### ❤️ Thank You
|
|
11
|
+
|
|
12
|
+
- Claude Opus 5.5 (1M context)
|
|
13
|
+
- Lương Văn Tú
|
|
14
|
+
|
|
1
15
|
# 7.0.0 (2026-09-16)
|
|
2
16
|
|
|
3
17
|
### 🩹 Fixes
|
package/README.md
CHANGED
|
@@ -124,7 +124,7 @@ type FindAllOptions = {
|
|
|
124
124
|
limit?: number; // Default: 20; a larger value is clamped to 100, not rejected
|
|
125
125
|
offset?: number; // Default: 0
|
|
126
126
|
softDeleted?: boolean; // Include soft-deleted records (default: false)
|
|
127
|
-
sort?: SortField[]; // [{ field: 'createdAt', direction: 'desc' }]
|
|
127
|
+
sort?: SortField[]; // [{ field: 'createdAt', direction: 'desc' }]; the primary key is appended
|
|
128
128
|
fields?: { books?: readonly ('title' | 'author')[] }; // Fieldsets keyed by TABLE name: columns and relations
|
|
129
129
|
include?: readonly ('author' | 'author.books')[]; // Relation paths, dot-separated (requires queryKey)
|
|
130
130
|
columns?: { authorId?: boolean }; // Root columns added to the root fieldset; never narrows the row
|
|
@@ -132,6 +132,11 @@ type FindAllOptions = {
|
|
|
132
132
|
};
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
+
`findAll` and `findAllAndCount` order by `sort` followed by each primary key column it does not
|
|
136
|
+
already name, ascending, on both Postgres and D1. Rows that tie on `sort` have no order of their own,
|
|
137
|
+
so without the key two pages could be cut from two orders of the same rows, repeating one row and
|
|
138
|
+
skipping another. With no `sort`, a page is ordered by the key alone.
|
|
139
|
+
|
|
135
140
|
`fields` and `include` are `TableQuery<typeof schema, '<export name>'>`, the shape `@zeroxsolutions/query` guards, so
|
|
136
141
|
a guarded query spreads straight into the options:
|
|
137
142
|
|
|
@@ -367,6 +372,9 @@ const clauses = buildOrderBy(users, [
|
|
|
367
372
|
]);
|
|
368
373
|
```
|
|
369
374
|
|
|
375
|
+
`buildOrderBy` translates exactly the clauses it is given and appends no key, so it can build part of
|
|
376
|
+
an order one clause at a time. A read that pages over its result owes itself a unique last clause.
|
|
377
|
+
|
|
370
378
|
### Field Whitelist Guard
|
|
371
379
|
|
|
372
380
|
Reject a `filter`/`sort` on any field outside a listable entity's whitelist **before** building SQL, so a
|
|
@@ -482,7 +490,7 @@ typecheck failure rather than a suite that quietly passed on a major you do not
|
|
|
482
490
|
|
|
483
491
|
| Export | What it is |
|
|
484
492
|
| ------ | ---------- |
|
|
485
|
-
| `startDisposablePostgres(schema, image)` | Starts the container, creates `schema` in it, and returns a Drizzle client typed against it, the `connectionString` it dialled, and the `stop()` that tears it down |
|
|
493
|
+
| `startDisposablePostgres(schema, image)` | Starts the container, creates `schema` in it, and returns a Drizzle client typed against it, the `connectionString` it dialled, and the `stop()` that tears it down. A server `WARNING` prints as one line on `console.warn`; lower severities are dropped |
|
|
486
494
|
| `CONTAINER_TIMEOUT_MS` | 180s, for the hook that starts a container: an image pull on a cold machine outruns vitest's 5s default |
|
|
487
495
|
| `fakeUuidV7` | Random bits in a v7 layout: it passes a v7 check, and is not time-ordered like a minted id |
|
|
488
496
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/base/d1/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,EAChB,GAAG,EAAC,MAAM,aAAa,CAAC;AAS1B,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAmC,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAA0C,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/base/d1/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { and, count, eq, getTableColumns, isNull, sql } from 'drizzle-orm';
|
|
2
2
|
import { resolveRelationalRead, selectedColumns } from '../../utils/index.js';
|
|
3
3
|
import { buildOrderBy, DEFAULT_OFFSET, DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE } from '../../utils/index.js';
|
|
4
|
+
import { totalOrder } from '../../utils/total-order.js';
|
|
4
5
|
/**
|
|
5
6
|
* A D1/SQLite repository over `TTable` with CRUD, pagination, soft-delete, and relational reads.
|
|
6
7
|
* Every mutator executes immediately; enlisting one in a {@link DrizzleD1UnitOfWork} batch means
|
|
@@ -31,6 +32,9 @@ export class BaseRepository {
|
|
|
31
32
|
_where = and(where, isNull(columns.deletedAt));
|
|
32
33
|
const executor = this.getExecutor(options?.tx);
|
|
33
34
|
const read = resolveRelationalRead(executor, this.queryKey, this.table, options);
|
|
35
|
+
// The key after the caller's sort: rows that tie on it have no order of their own, and two pages
|
|
36
|
+
// cut from two orders of the same rows repeat one and skip another.
|
|
37
|
+
const orderClauses = buildOrderBy(this.table, totalOrder(this.table, options?.sort));
|
|
34
38
|
if (read.with) {
|
|
35
39
|
if (!this.queryKey)
|
|
36
40
|
throw new Error('queryKey must be provided to use the "with" option.');
|
|
@@ -45,7 +49,7 @@ export class BaseRepository {
|
|
|
45
49
|
offset,
|
|
46
50
|
columns: read.columns,
|
|
47
51
|
with: read.with,
|
|
48
|
-
orderBy:
|
|
52
|
+
orderBy: orderClauses,
|
|
49
53
|
});
|
|
50
54
|
}
|
|
51
55
|
const rows = await executor
|
|
@@ -54,7 +58,7 @@ export class BaseRepository {
|
|
|
54
58
|
.limit(limit)
|
|
55
59
|
.offset(offset)
|
|
56
60
|
.where(_where)
|
|
57
|
-
.orderBy(...
|
|
61
|
+
.orderBy(...orderClauses);
|
|
58
62
|
return rows;
|
|
59
63
|
}
|
|
60
64
|
async findAllAndCount(where, options) {
|
|
@@ -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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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { and, count, eq, getTableColumns, getViewSelectedFields, isNull, sql, } from 'drizzle-orm';
|
|
2
2
|
import { resolveRelationalRead, selectedColumns } from '../../utils/index.js';
|
|
3
3
|
import { buildOrderBy, DEFAULT_OFFSET, DEFAULT_PAGE_SIZE, MAX_PAGE_SIZE } from '../../utils/index.js';
|
|
4
|
+
import { totalOrder } from '../../utils/total-order.js';
|
|
4
5
|
/** A Postgres repository over `TTable` with CRUD, pagination, soft-delete, and relation loading. */
|
|
5
6
|
export class BaseRepository {
|
|
6
7
|
db;
|
|
@@ -27,6 +28,9 @@ export class BaseRepository {
|
|
|
27
28
|
_where = and(where, isNull(columns.deletedAt));
|
|
28
29
|
const executor = this.getExecutor(options?.tx);
|
|
29
30
|
const read = resolveRelationalRead(executor, this.queryKey, this.table, options);
|
|
31
|
+
// The key after the caller's sort: rows that tie on it have no order of their own, and two pages
|
|
32
|
+
// cut from two orders of the same rows repeat one and skip another.
|
|
33
|
+
const orderClauses = buildOrderBy(this.table, totalOrder(this.table, options?.sort));
|
|
30
34
|
if (read.with) {
|
|
31
35
|
if (!this.queryKey)
|
|
32
36
|
throw new Error('queryKey must be provided to use the "with" option.');
|
|
@@ -41,10 +45,9 @@ export class BaseRepository {
|
|
|
41
45
|
offset,
|
|
42
46
|
columns: read.columns,
|
|
43
47
|
with: read.with,
|
|
44
|
-
orderBy:
|
|
48
|
+
orderBy: orderClauses,
|
|
45
49
|
});
|
|
46
50
|
}
|
|
47
|
-
const orderClauses = buildOrderBy(this.table, options?.sort);
|
|
48
51
|
const rows = await executor
|
|
49
52
|
.select(selectedColumns(columns, read.columns))
|
|
50
53
|
.from(this.table)
|
|
@@ -15,7 +15,7 @@ export const CONTAINER_TIMEOUT_MS = 180_000;
|
|
|
15
15
|
export async function startDisposablePostgres(schema, image) {
|
|
16
16
|
const container = await new PostgreSqlContainer(image).start();
|
|
17
17
|
const connectionString = container.getConnectionUri();
|
|
18
|
-
const client = postgres(connectionString);
|
|
18
|
+
const client = postgres(connectionString, { onnotice: reportNotice });
|
|
19
19
|
// Applied statement by statement rather than through drizzle-kit's pushSchema, which swallows its
|
|
20
20
|
// failure into a spinner and calls process.exit(1) (drizzle-kit@0.31.10).
|
|
21
21
|
for (const statement of await generateMigration(generateDrizzleJson({}), generateDrizzleJson(schema))) {
|
|
@@ -30,3 +30,12 @@ export async function startDisposablePostgres(schema, image) {
|
|
|
30
30
|
},
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Prints a server WARNING as one line and drops every lower severity. Left to its default, postgres.js
|
|
35
|
+
* prints each notice as a raw object, and a full-text search for a stop word alone raises two per
|
|
36
|
+
* statement, so a suite's real failure scrolls past between them.
|
|
37
|
+
*/
|
|
38
|
+
function reportNotice(notice) {
|
|
39
|
+
if (notice.severity === 'WARNING')
|
|
40
|
+
console.warn(`postgres ${notice.code}: ${notice.message}`);
|
|
41
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SortField } from '@zeroxsolutions/query';
|
|
2
|
+
import { PgTable, type TableConfig as PgTableConfig } from 'drizzle-orm/pg-core';
|
|
3
|
+
import { type SQLiteTable, type TableConfig as SQLiteTableConfig } from 'drizzle-orm/sqlite-core';
|
|
4
|
+
type OrderableTable = PgTable<PgTableConfig> | SQLiteTable<SQLiteTableConfig>;
|
|
5
|
+
/**
|
|
6
|
+
* The caller's sort followed by each primary key column it does not already name, ascending, so no
|
|
7
|
+
* two rows tie and every page of a walk is cut from the same order.
|
|
8
|
+
*
|
|
9
|
+
* Kept apart from `buildOrderBy`, which a consumer applies one clause at a time to build its own
|
|
10
|
+
* order: a key appended to each clause would land in the middle of that order. Kept out of
|
|
11
|
+
* `utils/index.ts` too, which re-exports everything it names.
|
|
12
|
+
*/
|
|
13
|
+
export declare function totalOrder(table: OrderableTable, sort: SortField[] | undefined): SortField[];
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=total-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"total-order.d.ts","sourceRoot":"","sources":["../../src/utils/total-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAsC,OAAO,EAAE,KAAK,WAAW,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,WAAW,IAAI,iBAAiB,EACtC,MAAM,yBAAyB,CAAC;AAEjC,KAAK,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAE9E;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAO5F"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getTableColumns, is } from 'drizzle-orm';
|
|
2
|
+
import { getTableConfig as getPgTableConfig, PgTable } from 'drizzle-orm/pg-core';
|
|
3
|
+
import { getTableConfig as getSQLiteTableConfig, } from 'drizzle-orm/sqlite-core';
|
|
4
|
+
/**
|
|
5
|
+
* The caller's sort followed by each primary key column it does not already name, ascending, so no
|
|
6
|
+
* two rows tie and every page of a walk is cut from the same order.
|
|
7
|
+
*
|
|
8
|
+
* Kept apart from `buildOrderBy`, which a consumer applies one clause at a time to build its own
|
|
9
|
+
* order: a key appended to each clause would land in the middle of that order. Kept out of
|
|
10
|
+
* `utils/index.ts` too, which re-exports everything it names.
|
|
11
|
+
*/
|
|
12
|
+
export function totalOrder(table, sort) {
|
|
13
|
+
const requested = sort ?? [];
|
|
14
|
+
const named = new Set(requested.map((item) => item.field));
|
|
15
|
+
const appended = primaryKeyFields(table)
|
|
16
|
+
.filter((field) => !named.has(field))
|
|
17
|
+
.map((field) => ({ field, direction: 'asc' }));
|
|
18
|
+
return [...requested, ...appended];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The property keys of the table's primary key columns, in the order the key declares them.
|
|
22
|
+
*
|
|
23
|
+
* A property key and not the SQL name, because a `SortField` names a column the way
|
|
24
|
+
* `getTableColumns` keys it. A composite key sets no column's `primary` flag, so it is read off the
|
|
25
|
+
* table config instead, and matched back by SQL name: pg-core hands the key its own copies of the
|
|
26
|
+
* columns, so the key's column objects are not the table's (drizzle-orm@0.45.1).
|
|
27
|
+
*/
|
|
28
|
+
function primaryKeyFields(table) {
|
|
29
|
+
const columns = getTableColumns(table);
|
|
30
|
+
const fieldOf = new Map(Object.entries(columns).map(([field, column]) => [column.name, field]));
|
|
31
|
+
const declared = Object.values(columns).filter((column) => column.primary);
|
|
32
|
+
const composite = (is(table, PgTable) ? getPgTableConfig(table) : getSQLiteTableConfig(table)).primaryKeys[0]?.columns;
|
|
33
|
+
const keyColumns = declared.length > 0 ? declared : (composite ?? []);
|
|
34
|
+
return keyColumns.flatMap((column) => fieldOf.get(column.name) ?? []);
|
|
35
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeroxsolutions/db",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.1",
|
|
4
4
|
"description": "Generic Drizzle toolkit - the id column and audit timestamps a table takes, a base repository, the unit-of-work and transactional outbox impls, and the filter/sort/pagination query helpers, for PostgreSQL (postgres-js) and Cloudflare D1; ships no domain schema. Shared across ZeroXSolutions services.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|