@ailnaf/zoddb 0.0.0-stage → 0.2.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.
- package/CHANGELOG.md +73 -0
- package/LICENSE +15 -0
- package/README.md +440 -2
- package/dist/aggregate.d.ts +42 -0
- package/dist/aggregate.d.ts.map +1 -0
- package/dist/aggregate.js +77 -0
- package/dist/aggregate.js.map +1 -0
- package/dist/auth-schema.d.ts +26 -0
- package/dist/auth-schema.d.ts.map +1 -0
- package/dist/auth-schema.js +139 -0
- package/dist/auth-schema.js.map +1 -0
- package/dist/better-auth-adapter.d.ts +21 -0
- package/dist/better-auth-adapter.d.ts.map +1 -0
- package/dist/better-auth-adapter.js +175 -0
- package/dist/better-auth-adapter.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +341 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +22 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +52 -0
- package/dist/config.js.map +1 -0
- package/dist/db.d.ts +183 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +1063 -0
- package/dist/db.js.map +1 -0
- package/dist/ddl.d.ts +21 -0
- package/dist/ddl.d.ts.map +1 -0
- package/dist/ddl.js +127 -0
- package/dist/ddl.js.map +1 -0
- package/dist/dev.d.ts +9 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +21 -0
- package/dist/dev.js.map +1 -0
- package/dist/errors.d.ts +63 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +122 -0
- package/dist/errors.js.map +1 -0
- package/dist/filter.d.ts +67 -0
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +230 -0
- package/dist/filter.js.map +1 -0
- package/dist/graph.d.ts +54 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +52 -0
- package/dist/graph.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +12 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +62 -0
- package/dist/init.js.map +1 -0
- package/dist/migrate.d.ts +58 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +447 -0
- package/dist/migrate.js.map +1 -0
- package/dist/migrations.d.ts +80 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +281 -0
- package/dist/migrations.js.map +1 -0
- package/dist/relation-graph.d.ts +50 -0
- package/dist/relation-graph.d.ts.map +1 -0
- package/dist/relation-graph.js +93 -0
- package/dist/relation-graph.js.map +1 -0
- package/dist/relations.d.ts +128 -0
- package/dist/relations.d.ts.map +1 -0
- package/dist/relations.js +21 -0
- package/dist/relations.js.map +1 -0
- package/dist/schema.d.ts +247 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +584 -0
- package/dist/schema.js.map +1 -0
- package/dist/studio/page.d.ts +3 -0
- package/dist/studio/page.d.ts.map +1 -0
- package/dist/studio/page.js +708 -0
- package/dist/studio/page.js.map +1 -0
- package/dist/studio/server.d.ts +26 -0
- package/dist/studio/server.d.ts.map +1 -0
- package/dist/studio/server.js +415 -0
- package/dist/studio/server.js.map +1 -0
- package/dist/table.d.ts +156 -0
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +165 -0
- package/dist/table.js.map +1 -0
- package/dist/where.d.ts +18 -0
- package/dist/where.d.ts.map +1 -0
- package/dist/where.js +76 -0
- package/dist/where.js.map +1 -0
- package/docs/api.md +476 -0
- package/package.json +70 -4
package/dist/db.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/ddl.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ColumnPlan, type EnumDef, type SqlFragment, type Table } from './table.js';
|
|
2
|
+
export interface CreateSchemaOptions {
|
|
3
|
+
/** 默认 true:重复执行不报错 */
|
|
4
|
+
ifNotExists?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function renderDefaultValue(v: unknown): string;
|
|
7
|
+
/** 通过 table() 盖的 owner 章反查被引用列;未盖章说明用户传了游离的 ColumnBuilder */
|
|
8
|
+
export declare function resolveRef(p: ColumnPlan): {
|
|
9
|
+
table: string;
|
|
10
|
+
column: string;
|
|
11
|
+
onDelete?: string;
|
|
12
|
+
} | undefined;
|
|
13
|
+
export declare function renderCreateEnum(def: EnumDef): string;
|
|
14
|
+
export declare function renderColumnDefinition(p: ColumnPlan): string;
|
|
15
|
+
/**
|
|
16
|
+
* 从 table() 定义生成 `create table if not exists`。
|
|
17
|
+
* 只做建表:不 drop、不 alter、不做 diff(迁移引擎是判负线)。
|
|
18
|
+
*/
|
|
19
|
+
export declare function createSchema(input: Table | readonly Table[], opts?: CreateSchemaOptions): string;
|
|
20
|
+
export type { SqlFragment };
|
|
21
|
+
//# sourceMappingURL=ddl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddl.d.ts","sourceRoot":"","sources":["../src/ddl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvG,MAAM,WAAW,mBAAmB;IAClC,sBAAsB;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAKD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAcrD;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAY1G;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAErD;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAW5D;AAyBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,EAAE,EAAE,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAsCpG;AAED,YAAY,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/ddl.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { isSqlFragment } from './table.js';
|
|
2
|
+
const quoteIdent = (s) => `"${s.replace(/"/g, '""')}"`;
|
|
3
|
+
const quoteLiteral = (s) => `'${s.replace(/'/g, "''")}'`;
|
|
4
|
+
export function renderDefaultValue(v) {
|
|
5
|
+
if (v === null)
|
|
6
|
+
return 'null';
|
|
7
|
+
if (typeof v === 'string')
|
|
8
|
+
return quoteLiteral(v);
|
|
9
|
+
if (typeof v === 'number' || typeof v === 'bigint')
|
|
10
|
+
return String(v);
|
|
11
|
+
if (typeof v === 'boolean')
|
|
12
|
+
return v ? 'true' : 'false';
|
|
13
|
+
if (v instanceof Date)
|
|
14
|
+
return quoteLiteral(v.toISOString());
|
|
15
|
+
if (isSqlFragment(v)) {
|
|
16
|
+
let out = v.strings[0] ?? '';
|
|
17
|
+
v.params.forEach((p, i) => {
|
|
18
|
+
out += renderDefaultValue(p) + (v.strings[i + 1] ?? '');
|
|
19
|
+
});
|
|
20
|
+
return out;
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`createSchema: 不支持的默认值 ${String(v)}(只接受字面量或 sql\`...\`)`);
|
|
23
|
+
}
|
|
24
|
+
/** 通过 table() 盖的 owner 章反查被引用列;未盖章说明用户传了游离的 ColumnBuilder */
|
|
25
|
+
export function resolveRef(p) {
|
|
26
|
+
if (!p.ref)
|
|
27
|
+
return undefined;
|
|
28
|
+
const target = p.ref.thunk();
|
|
29
|
+
const owner = target._owner;
|
|
30
|
+
if (!owner) {
|
|
31
|
+
throw new Error(`createSchema: 列 "${p.outKey}" 的 references 目标不在任何表定义里`);
|
|
32
|
+
}
|
|
33
|
+
const targetPlan = owner.table.__plan.find(c => c.outKey === owner.outKey);
|
|
34
|
+
if (!targetPlan)
|
|
35
|
+
throw new Error(`createSchema: 找不到 ${owner.table.name}.${owner.outKey} 的列定义`);
|
|
36
|
+
return p.ref.onDelete
|
|
37
|
+
? { table: owner.table.name, column: targetPlan.dbKey, onDelete: p.ref.onDelete }
|
|
38
|
+
: { table: owner.table.name, column: targetPlan.dbKey };
|
|
39
|
+
}
|
|
40
|
+
export function renderCreateEnum(def) {
|
|
41
|
+
return `do $$ begin\n create type ${quoteIdent(def.name)} as enum (${def.values.map(quoteLiteral).join(', ')});\nexception when duplicate_object then null;\nend $$;`;
|
|
42
|
+
}
|
|
43
|
+
export function renderColumnDefinition(p) {
|
|
44
|
+
const parts = [quoteIdent(p.dbKey), p.sqlType];
|
|
45
|
+
if (p.pk)
|
|
46
|
+
parts.push('primary key');
|
|
47
|
+
if (!p.pk && !p.nullable)
|
|
48
|
+
parts.push('not null');
|
|
49
|
+
if (p.defaultValue !== undefined)
|
|
50
|
+
parts.push(`default ${renderDefaultValue(p.defaultValue)}`);
|
|
51
|
+
if (p.unique && !p.pk)
|
|
52
|
+
parts.push('unique');
|
|
53
|
+
const ref = resolveRef(p);
|
|
54
|
+
if (ref) {
|
|
55
|
+
parts.push(`references ${quoteIdent(ref.table)}(${quoteIdent(ref.column)})${ref.onDelete ? ` on delete ${ref.onDelete}` : ''}`);
|
|
56
|
+
}
|
|
57
|
+
return ` ${parts.join(' ')}`;
|
|
58
|
+
}
|
|
59
|
+
function sortTables(tables) {
|
|
60
|
+
const byName = new Map(tables.map(t => [t.name, t]));
|
|
61
|
+
if (byName.size !== tables.length)
|
|
62
|
+
throw new Error('createSchema: 表名重复');
|
|
63
|
+
const state = new Map();
|
|
64
|
+
const out = [];
|
|
65
|
+
const visit = (t, stack) => {
|
|
66
|
+
const s = state.get(t.name);
|
|
67
|
+
if (s === 2)
|
|
68
|
+
return;
|
|
69
|
+
if (s === 1)
|
|
70
|
+
throw new Error(`createSchema: 表引用出现循环:${[...stack, t.name].join(' → ')}`);
|
|
71
|
+
state.set(t.name, 1);
|
|
72
|
+
for (const p of t.__plan) {
|
|
73
|
+
const ref = resolveRef(p);
|
|
74
|
+
if (!ref || ref.table === t.name)
|
|
75
|
+
continue;
|
|
76
|
+
const dep = byName.get(ref.table);
|
|
77
|
+
if (dep)
|
|
78
|
+
visit(dep, [...stack, t.name]);
|
|
79
|
+
}
|
|
80
|
+
state.set(t.name, 2);
|
|
81
|
+
out.push(t);
|
|
82
|
+
};
|
|
83
|
+
for (const t of tables)
|
|
84
|
+
visit(t, []);
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 从 table() 定义生成 `create table if not exists`。
|
|
89
|
+
* 只做建表:不 drop、不 alter、不做 diff(迁移引擎是判负线)。
|
|
90
|
+
*/
|
|
91
|
+
export function createSchema(input, opts = {}) {
|
|
92
|
+
const tables = sortTables(Array.isArray(input) ? input : [input]);
|
|
93
|
+
const head = opts.ifNotExists === false ? 'create table' : 'create table if not exists';
|
|
94
|
+
const enums = new Map();
|
|
95
|
+
for (const t of tables) {
|
|
96
|
+
for (const p of t.__plan) {
|
|
97
|
+
if (!p.enum)
|
|
98
|
+
continue;
|
|
99
|
+
const prev = enums.get(p.enum.name);
|
|
100
|
+
if (prev && JSON.stringify(prev) !== JSON.stringify(p.enum.values)) {
|
|
101
|
+
throw new Error(`createSchema: enum ${p.enum.name} 在不同列上的值不一致`);
|
|
102
|
+
}
|
|
103
|
+
enums.set(p.enum.name, p.enum.values);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const parts = [...enums].map(([name, values]) => renderCreateEnum({ name, values }));
|
|
107
|
+
for (const t of tables) {
|
|
108
|
+
const lines = t.__plan.map(renderColumnDefinition);
|
|
109
|
+
if (t.__primaryKey.length > 0) {
|
|
110
|
+
lines.push(` constraint ${quoteIdent(`${t.name}_pkey`)} primary key (${t.__primaryKey.map(quoteIdent).join(', ')})`);
|
|
111
|
+
}
|
|
112
|
+
for (const cols of t.__uniques) {
|
|
113
|
+
lines.push(` constraint ${quoteIdent(`${t.name}_${cols.join('_')}_key`)} unique (${cols.map(quoteIdent).join(', ')})`);
|
|
114
|
+
}
|
|
115
|
+
for (const c of t.__checks) {
|
|
116
|
+
lines.push(` constraint ${quoteIdent(c.name)} check (${c.expression})`);
|
|
117
|
+
}
|
|
118
|
+
parts.push(`${head} ${quoteIdent(t.name)} (\n${lines.join(',\n')}\n);`);
|
|
119
|
+
}
|
|
120
|
+
for (const t of tables) {
|
|
121
|
+
for (const idx of t.__indexes) {
|
|
122
|
+
parts.push(`create ${idx.unique ? 'unique ' : ''}index if not exists ${quoteIdent(idx.name)} on ${quoteIdent(t.name)} (${idx.columns.map(quoteIdent).join(', ')});`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return parts.join('\n\n');
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=ddl.js.map
|
package/dist/ddl.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddl.js","sourceRoot":"","sources":["../src/ddl.ts"],"names":[],"mappings":"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"}
|
package/dist/dev.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type MigrationInput } from './migrations.js';
|
|
2
|
+
export interface DevCycleResult {
|
|
3
|
+
generated?: string;
|
|
4
|
+
applied: string[];
|
|
5
|
+
skipped: string[];
|
|
6
|
+
}
|
|
7
|
+
/** 一次 dev 循环:diff → 写 additive 迁移 → 应用。破坏性变更由 generateMigration 抛错。 */
|
|
8
|
+
export declare function devCycle(url: string, dir: string, input: MigrationInput): Promise<DevCycleResult>;
|
|
9
|
+
//# sourceMappingURL=dev.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEzF,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,uEAAuE;AACvE,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,cAAc,CAAC,CAczB"}
|
package/dist/dev.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import postgres from 'postgres';
|
|
2
|
+
import { createDb } from './db.js';
|
|
3
|
+
import { applyMigrations, generateMigration } from './migrations.js';
|
|
4
|
+
/** 一次 dev 循环:diff → 写 additive 迁移 → 应用。破坏性变更由 generateMigration 抛错。 */
|
|
5
|
+
export async function devCycle(url, dir, input) {
|
|
6
|
+
const raw = postgres(url, { max: 1, onnotice: () => { } });
|
|
7
|
+
const db = createDb(raw);
|
|
8
|
+
try {
|
|
9
|
+
const gen = await generateMigration(db, input, { dir, name: 'dev' });
|
|
10
|
+
const res = await applyMigrations(db, dir);
|
|
11
|
+
return {
|
|
12
|
+
...(gen ? { generated: gen.file } : {}),
|
|
13
|
+
applied: res.applied,
|
|
14
|
+
skipped: res.skipped,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
finally {
|
|
18
|
+
await db.close();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAA;AAQzF,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,GAAW,EACX,KAAqB;IAErB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAA;IACzD,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACpE,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC1C,OAAO;YACL,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAA;IACH,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;AACH,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
export declare class ZodDbError extends Error {
|
|
3
|
+
constructor(message: string, options?: {
|
|
4
|
+
cause?: unknown;
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
/** postgres.js 会把 undefined 静默转成 NULL(= 意外写入/意外 where),必须在边界拦下 */
|
|
8
|
+
export declare class UndefinedParamError extends ZodDbError {
|
|
9
|
+
readonly position: number;
|
|
10
|
+
readonly kind: 'param' | 'array-element';
|
|
11
|
+
constructor(position: number, kind?: 'param' | 'array-element');
|
|
12
|
+
}
|
|
13
|
+
export declare class NoRowsError extends ZodDbError {
|
|
14
|
+
readonly table?: string | undefined;
|
|
15
|
+
constructor(table?: string | undefined);
|
|
16
|
+
}
|
|
17
|
+
export declare class RowValidationError extends ZodDbError {
|
|
18
|
+
readonly table: string;
|
|
19
|
+
readonly rowIndex: number;
|
|
20
|
+
readonly issues: z.core.$ZodIssue[];
|
|
21
|
+
readonly column?: string | undefined;
|
|
22
|
+
readonly missingColumn: boolean;
|
|
23
|
+
constructor(table: string, rowIndex: number, issues: z.core.$ZodIssue[], column?: string | undefined, missingColumn?: boolean);
|
|
24
|
+
}
|
|
25
|
+
/** include 的 key 必须与 SQL 里的别名一致;不一致时默认报错,而不是静默给空数组 */
|
|
26
|
+
export declare class IncludeAliasError extends ZodDbError {
|
|
27
|
+
readonly table: string;
|
|
28
|
+
readonly alias: string;
|
|
29
|
+
readonly rowIndex: number;
|
|
30
|
+
constructor(table: string, alias: string, rowIndex: number);
|
|
31
|
+
}
|
|
32
|
+
export interface PgErrorFields {
|
|
33
|
+
code?: string;
|
|
34
|
+
message?: string;
|
|
35
|
+
table_name?: string;
|
|
36
|
+
column_name?: string;
|
|
37
|
+
constraint_name?: string;
|
|
38
|
+
detail?: string;
|
|
39
|
+
}
|
|
40
|
+
export declare class DestructiveMigrationError extends ZodDbError {
|
|
41
|
+
readonly statements: readonly string[];
|
|
42
|
+
constructor(statements: readonly string[]);
|
|
43
|
+
}
|
|
44
|
+
export declare class PgError extends ZodDbError {
|
|
45
|
+
readonly pg: PgErrorFields;
|
|
46
|
+
readonly code?: string;
|
|
47
|
+
readonly table?: string;
|
|
48
|
+
readonly column?: string;
|
|
49
|
+
readonly constraint?: string;
|
|
50
|
+
constructor(pg: PgErrorFields);
|
|
51
|
+
}
|
|
52
|
+
export declare class UniqueViolationError extends PgError {
|
|
53
|
+
readonly columns: string[];
|
|
54
|
+
constructor(pg: PgErrorFields, columns?: string[]);
|
|
55
|
+
}
|
|
56
|
+
export declare class NotNullViolationError extends PgError {
|
|
57
|
+
}
|
|
58
|
+
export declare class ForeignKeyViolationError extends PgError {
|
|
59
|
+
}
|
|
60
|
+
export declare const isPgError: (e: unknown) => e is PgErrorFields;
|
|
61
|
+
/** 约束名 → 列名。优先用表的列名精确还原(`users_created_at_key` 不会被切成 3 段) */
|
|
62
|
+
export declare function uniqueColumns(constraint: string | undefined, table: string | undefined, columnNames?: string[]): string[];
|
|
63
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,qBAAa,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAGzD;CACF;AAED,kEAAkE;AAClE,qBAAa,mBAAoB,SAAQ,UAAU;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe;IAA/E,YAAqB,QAAQ,EAAE,MAAM,EAAW,IAAI,GAAE,OAAO,GAAG,eAAyB,EAMxF;CACF;AAED,qBAAa,WAAY,SAAQ,UAAU;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM;IAAnC,YAAqB,KAAK,CAAC,EAAE,MAAM,YAAA,EAElC;CACF;AAED,qBAAa,kBAAmB,SAAQ,UAAU;IAE9C,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IACxB,QAAQ,CAAC,aAAa;IALxB,YACW,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAC1B,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,aAAa,UAAQ,EAO/B;CACF;AAED,sDAAsD;AACtD,qBAAa,iBAAkB,SAAQ,UAAU;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAArF,YAAqB,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM,EAEpF;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,yBAA0B,SAAQ,UAAU;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE;IAAlD,YAAqB,UAAU,EAAE,SAAS,MAAM,EAAE,EAEjD;CACF;AAED,qBAAa,OAAQ,SAAQ,UAAU;IAKzB,QAAQ,CAAC,EAAE,EAAE,aAAa;IAJtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,YAAqB,EAAE,EAAE,aAAa,EAMrC;CACF;AAED,qBAAa,oBAAqB,SAAQ,OAAO;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,YAAY,EAAE,EAAE,aAAa,EAAE,OAAO,GAAE,MAAM,EAAO,EAGpD;CACF;AAED,qBAAa,qBAAsB,SAAQ,OAAO;CAAG;AACrD,qBAAa,wBAAyB,SAAQ,OAAO;CAAG;AAExD,eAAO,MAAM,SAAS,MAAO,OAAO,KAAG,CAAC,IAAI,aAC0C,CAAA;AAgBtF,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAY7H"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export class ZodDbError extends Error {
|
|
2
|
+
constructor(message, options) {
|
|
3
|
+
super(message, options);
|
|
4
|
+
this.name = new.target.name;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/** postgres.js 会把 undefined 静默转成 NULL(= 意外写入/意外 where),必须在边界拦下 */
|
|
8
|
+
export class UndefinedParamError extends ZodDbError {
|
|
9
|
+
position;
|
|
10
|
+
kind;
|
|
11
|
+
constructor(position, kind = 'param') {
|
|
12
|
+
super(kind === 'array-element'
|
|
13
|
+
? `参数 #${position} 的数组元素为 undefined:postgres.js 会转成 NULL,已拒绝执行`
|
|
14
|
+
: `参数 #${position} 为 undefined:postgres.js 会转成 NULL,已拒绝执行`);
|
|
15
|
+
this.position = position;
|
|
16
|
+
this.kind = kind;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class NoRowsError extends ZodDbError {
|
|
20
|
+
table;
|
|
21
|
+
constructor(table) {
|
|
22
|
+
super(`期望 1 行,实际 0 行${table ? `(${table})` : ''}`);
|
|
23
|
+
this.table = table;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class RowValidationError extends ZodDbError {
|
|
27
|
+
table;
|
|
28
|
+
rowIndex;
|
|
29
|
+
issues;
|
|
30
|
+
column;
|
|
31
|
+
missingColumn;
|
|
32
|
+
constructor(table, rowIndex, issues, column, missingColumn = false) {
|
|
33
|
+
const first = issues[0];
|
|
34
|
+
const where = `行校验失败 ${table}[${rowIndex}]${column ? `.${column}` : ''}`;
|
|
35
|
+
super(missingColumn
|
|
36
|
+
? `${where}: 列未出现在结果中(部分列查询请用 db.select(table, { ${column ?? '…'}: true }) 或 validate:'never')`
|
|
37
|
+
: `${where}${first ? `: ${first.message}` : ''}`);
|
|
38
|
+
this.table = table;
|
|
39
|
+
this.rowIndex = rowIndex;
|
|
40
|
+
this.issues = issues;
|
|
41
|
+
this.column = column;
|
|
42
|
+
this.missingColumn = missingColumn;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** include 的 key 必须与 SQL 里的别名一致;不一致时默认报错,而不是静默给空数组 */
|
|
46
|
+
export class IncludeAliasError extends ZodDbError {
|
|
47
|
+
table;
|
|
48
|
+
alias;
|
|
49
|
+
rowIndex;
|
|
50
|
+
constructor(table, alias, rowIndex) {
|
|
51
|
+
super(`include 别名 "${alias}" 不在 ${table} 的返回行中(行 ${rowIndex}):SQL 里需要 AS "${alias}"`);
|
|
52
|
+
this.table = table;
|
|
53
|
+
this.alias = alias;
|
|
54
|
+
this.rowIndex = rowIndex;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export class DestructiveMigrationError extends ZodDbError {
|
|
58
|
+
statements;
|
|
59
|
+
constructor(statements) {
|
|
60
|
+
super(`检测到 ${statements.length} 条破坏性迁移,默认拒绝执行(确认后传 allowDestructive: true):\n${statements.map(s => ` - ${s}`).join('\n')}`);
|
|
61
|
+
this.statements = statements;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export class PgError extends ZodDbError {
|
|
65
|
+
pg;
|
|
66
|
+
code;
|
|
67
|
+
table;
|
|
68
|
+
column;
|
|
69
|
+
constraint;
|
|
70
|
+
constructor(pg) {
|
|
71
|
+
super(pg.message ?? 'postgres error', { cause: pg });
|
|
72
|
+
this.pg = pg;
|
|
73
|
+
this.code = pg.code;
|
|
74
|
+
this.table = pg.table_name;
|
|
75
|
+
this.column = pg.column_name;
|
|
76
|
+
this.constraint = pg.constraint_name;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export class UniqueViolationError extends PgError {
|
|
80
|
+
columns;
|
|
81
|
+
constructor(pg, columns = []) {
|
|
82
|
+
super(pg);
|
|
83
|
+
this.columns = columns;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export class NotNullViolationError extends PgError {
|
|
87
|
+
}
|
|
88
|
+
export class ForeignKeyViolationError extends PgError {
|
|
89
|
+
}
|
|
90
|
+
export const isPgError = (e) => typeof e === 'object' && e !== null && typeof e.code === 'string';
|
|
91
|
+
function splitByColumns(body, columns) {
|
|
92
|
+
if (columns.length === 0)
|
|
93
|
+
return body.split('_');
|
|
94
|
+
const sorted = [...columns].sort((a, b) => b.length - a.length);
|
|
95
|
+
const out = [];
|
|
96
|
+
let rest = body;
|
|
97
|
+
while (rest.length > 0) {
|
|
98
|
+
const hit = sorted.find(c => rest === c || rest.startsWith(`${c}_`));
|
|
99
|
+
if (!hit)
|
|
100
|
+
return body.split('_');
|
|
101
|
+
out.push(hit);
|
|
102
|
+
rest = rest.length === hit.length ? '' : rest.slice(hit.length + 1);
|
|
103
|
+
}
|
|
104
|
+
return out;
|
|
105
|
+
}
|
|
106
|
+
/** 约束名 → 列名。优先用表的列名精确还原(`users_created_at_key` 不会被切成 3 段) */
|
|
107
|
+
export function uniqueColumns(constraint, table, columnNames = []) {
|
|
108
|
+
if (!constraint)
|
|
109
|
+
return [];
|
|
110
|
+
if (table) {
|
|
111
|
+
const prefix = `${table}_`;
|
|
112
|
+
if (constraint.startsWith(prefix)) {
|
|
113
|
+
const rest = constraint.slice(prefix.length);
|
|
114
|
+
for (const suffix of ['_key', '_pkey', '_excl']) {
|
|
115
|
+
if (rest.endsWith(suffix))
|
|
116
|
+
return splitByColumns(rest.slice(0, -suffix.length), columnNames);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/filter.d.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { RowOf, Table } from './table.js';
|
|
2
|
+
import { type RelationDef, type RelationMapOf, type Relations } from './relations.js';
|
|
3
|
+
/** 单列操作符;eq/ne 对 nullable 列允许 null */
|
|
4
|
+
export type FilterOperator<V> = {
|
|
5
|
+
eq?: V;
|
|
6
|
+
ne?: V;
|
|
7
|
+
lt?: NonNullable<V>;
|
|
8
|
+
lte?: NonNullable<V>;
|
|
9
|
+
gt?: NonNullable<V>;
|
|
10
|
+
gte?: NonNullable<V>;
|
|
11
|
+
in?: readonly NonNullable<V>[];
|
|
12
|
+
notIn?: readonly NonNullable<V>[];
|
|
13
|
+
like?: string;
|
|
14
|
+
contains?: string;
|
|
15
|
+
startsWith?: string;
|
|
16
|
+
endsWith?: string;
|
|
17
|
+
isNull?: boolean;
|
|
18
|
+
mode?: 'insensitive';
|
|
19
|
+
};
|
|
20
|
+
export type FilterValue<V> = V | FilterOperator<V> | (null extends V ? null : never);
|
|
21
|
+
type ColumnWhere<T extends Table> = {
|
|
22
|
+
[K in keyof RowOf<T>]?: FilterValue<RowOf<T>[K]>;
|
|
23
|
+
};
|
|
24
|
+
type PrevDepth<D extends number> = D extends 2 ? 1 : 0;
|
|
25
|
+
type RelationTargetWhere<T extends Table, R extends readonly Relations[], D extends number> = ColumnWhere<T> & (D extends 0 ? {} : RelationWhere<T, R, D>) & {
|
|
26
|
+
AND?: readonly RelationTargetWhere<T, R, D>[];
|
|
27
|
+
OR?: readonly RelationTargetWhere<T, R, D>[];
|
|
28
|
+
NOT?: RelationTargetWhere<T, R, D>;
|
|
29
|
+
};
|
|
30
|
+
/** 关系过滤目标;depth 是剩余可继续展开的关系层数 */
|
|
31
|
+
export type RelationFilter<Def, R extends readonly Relations[], D extends number> = Def extends RelationDef<'many' | 'one', infer U> ? {
|
|
32
|
+
some?: RelationTargetWhere<U, R, PrevDepth<D>>;
|
|
33
|
+
none?: RelationTargetWhere<U, R, PrevDepth<D>>;
|
|
34
|
+
every?: RelationTargetWhere<U, R, PrevDepth<D>>;
|
|
35
|
+
} : never;
|
|
36
|
+
type RelationWhere<T extends Table, R extends readonly Relations[], D extends number> = {
|
|
37
|
+
[K in keyof RelationMapOf<R, T>]?: RelationFilter<RelationMapOf<R, T>[K], R, D>;
|
|
38
|
+
};
|
|
39
|
+
export type WhereFilter<T extends Table, R extends readonly Relations[] = [], D extends number = 2> = ColumnWhere<T> & (D extends 0 ? {} : RelationWhere<T, R, D>) & {
|
|
40
|
+
AND?: readonly WhereFilter<T, R, D>[];
|
|
41
|
+
OR?: readonly WhereFilter<T, R, D>[];
|
|
42
|
+
NOT?: WhereFilter<T, R, D>;
|
|
43
|
+
};
|
|
44
|
+
export type OrderBy<T extends Table> = {
|
|
45
|
+
[K in keyof RowOf<T>]?: 'asc' | 'desc';
|
|
46
|
+
};
|
|
47
|
+
export interface FindManyOptions<T extends Table, R extends readonly Relations[] = []> {
|
|
48
|
+
where?: WhereFilter<T, R>;
|
|
49
|
+
orderBy?: OrderBy<T> | readonly OrderBy<T>[];
|
|
50
|
+
limit?: number;
|
|
51
|
+
offset?: number;
|
|
52
|
+
/** keyset 分页:排序列最后一行的值;必须覆盖全部 orderBy 列 */
|
|
53
|
+
cursor?: Partial<RowOf<T>>;
|
|
54
|
+
}
|
|
55
|
+
export declare const escapeLike: (s: string) => string;
|
|
56
|
+
export declare function compileWhere(table: Table, filter: WhereFilter<Table, readonly Relations[]>, offset?: number, relations?: readonly Relations[], sourceAlias?: string): {
|
|
57
|
+
text: string;
|
|
58
|
+
params: unknown[];
|
|
59
|
+
};
|
|
60
|
+
/** keyset:把游标编译为参数化条件;startParam 用于与 where 参数拼接 */
|
|
61
|
+
export declare function compileCursor(table: Table, orderBy: OrderBy<Table> | readonly OrderBy<Table>[] | undefined, cursor: Record<string, unknown>, startParam: number): {
|
|
62
|
+
text: string;
|
|
63
|
+
params: unknown[];
|
|
64
|
+
};
|
|
65
|
+
export declare function compileOrderBy(table: Table, orderBy: OrderBy<Table> | readonly OrderBy<Table>[]): string;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
|