@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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { BetterAuthOptions } from 'better-auth';
|
|
3
|
+
import { type GraphNode, type ZodRelationSpec, type ZodTableOptions } from './schema.js';
|
|
4
|
+
/** 只取 getAuthTables 需要的 auth 配置;不含 secret/baseURL 等运行时选项 */
|
|
5
|
+
export type AuthSchemaOptions = Pick<BetterAuthOptions, 'plugins' | 'user' | 'session' | 'account' | 'verification' | 'rateLimit' | 'secondaryStorage'>;
|
|
6
|
+
export interface AuthSchemaResult {
|
|
7
|
+
/** key = better-auth model key;value = zod 对象 */
|
|
8
|
+
tables: Record<string, z.ZodObject<any>>;
|
|
9
|
+
/** 可直接展开给 defineSchema 的表级配置 */
|
|
10
|
+
options: Record<string, ZodTableOptions>;
|
|
11
|
+
/** 可直接展开给 defineSchema 的 node() 输入;core 四表是 auth graph 的稳定锚点 */
|
|
12
|
+
nodes: Record<string, GraphNode> & {
|
|
13
|
+
user: GraphNode;
|
|
14
|
+
session: GraphNode;
|
|
15
|
+
account: GraphNode;
|
|
16
|
+
verification: GraphNode;
|
|
17
|
+
};
|
|
18
|
+
/** 可直接展开给 defineSchema 的 edges 输入 */
|
|
19
|
+
edges: Record<string, Record<string, ZodRelationSpec>>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 从 better-auth 的运行时表元数据生成 zod 表。
|
|
23
|
+
* 不复制各插件 schema;插件新增字段由 getAuthTables 自动带出。
|
|
24
|
+
*/
|
|
25
|
+
export declare function authSchema(opts?: AuthSchemaOptions): AuthSchemaResult;
|
|
26
|
+
//# sourceMappingURL=auth-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-schema.d.ts","sourceRoot":"","sources":["../src/auth-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAA;AAE9F,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,iBAAiB,EACjB,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,GAAG,kBAAkB,CAC/F,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IACxC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACxC,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG;QACjC,IAAI,EAAE,SAAS,CAAA;QACf,OAAO,EAAE,SAAS,CAAA;QAClB,OAAO,EAAE,SAAS,CAAA;QAClB,YAAY,EAAE,SAAS,CAAA;KACxB,CAAA;IACD,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;CACvD;AAkDD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,gBAAgB,CAyHzE"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getAuthTables } from 'better-auth/db';
|
|
3
|
+
import { sql } from './table.js';
|
|
4
|
+
import { node } from './schema.js';
|
|
5
|
+
const isFunction = (v) => typeof v === 'function';
|
|
6
|
+
const fieldOutKey = (field, logicalKey) => field.fieldName ?? logicalKey;
|
|
7
|
+
const zodForField = (field) => {
|
|
8
|
+
const type = field.type;
|
|
9
|
+
if (type === 'string')
|
|
10
|
+
return z.string();
|
|
11
|
+
if (type === 'string[]')
|
|
12
|
+
return z.array(z.string());
|
|
13
|
+
if (type === 'number') {
|
|
14
|
+
return field.bigint
|
|
15
|
+
? z.number().meta({ sqlType: 'int8' })
|
|
16
|
+
: z.number();
|
|
17
|
+
}
|
|
18
|
+
if (type === 'number[]')
|
|
19
|
+
return z.array(z.number());
|
|
20
|
+
if (type === 'boolean')
|
|
21
|
+
return z.boolean();
|
|
22
|
+
if (type === 'date')
|
|
23
|
+
return z.date();
|
|
24
|
+
if (type === 'json')
|
|
25
|
+
return z.any().meta({ sqlType: 'jsonb' });
|
|
26
|
+
if (Array.isArray(type))
|
|
27
|
+
return z.array(z.string());
|
|
28
|
+
throw new Error(`authSchema: 不支持的 better-auth 字段类型 ${String(type)}`);
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* 从 better-auth 的运行时表元数据生成 zod 表。
|
|
32
|
+
* 不复制各插件 schema;插件新增字段由 getAuthTables 自动带出。
|
|
33
|
+
*/
|
|
34
|
+
export function authSchema(opts = {}) {
|
|
35
|
+
const authTables = getAuthTables(opts);
|
|
36
|
+
const tables = {};
|
|
37
|
+
const options = {};
|
|
38
|
+
const nodes = {};
|
|
39
|
+
const edges = {};
|
|
40
|
+
// first pass: tables + fields
|
|
41
|
+
for (const [key, table] of Object.entries(authTables)) {
|
|
42
|
+
const shape = {
|
|
43
|
+
id: z.string(),
|
|
44
|
+
};
|
|
45
|
+
const tableOptions = {
|
|
46
|
+
name: table.modelName,
|
|
47
|
+
primaryKey: 'id',
|
|
48
|
+
indexes: [],
|
|
49
|
+
defaults: {},
|
|
50
|
+
relations: {},
|
|
51
|
+
};
|
|
52
|
+
const defaults = tableOptions.defaults;
|
|
53
|
+
const indexes = tableOptions.indexes;
|
|
54
|
+
const relations = tableOptions.relations;
|
|
55
|
+
for (const [logicalKey, field] of Object.entries(table.fields)) {
|
|
56
|
+
const outKey = fieldOutKey(field, logicalKey);
|
|
57
|
+
if (outKey === 'id') {
|
|
58
|
+
throw new Error(`authSchema: ${key}.${logicalKey} 与自动生成的 id 冲突`);
|
|
59
|
+
}
|
|
60
|
+
if (outKey in shape) {
|
|
61
|
+
throw new Error(`authSchema: ${key} 的字段名 "${outKey}" 冲突`);
|
|
62
|
+
}
|
|
63
|
+
let base = zodForField(field);
|
|
64
|
+
const staticDefault = field.defaultValue !== undefined && !isFunction(field.defaultValue);
|
|
65
|
+
if (field.required === false) {
|
|
66
|
+
base = staticDefault ? base.default(field.defaultValue) : base.nullable();
|
|
67
|
+
}
|
|
68
|
+
else if (staticDefault) {
|
|
69
|
+
base = base.default(field.defaultValue);
|
|
70
|
+
}
|
|
71
|
+
shape[outKey] = base;
|
|
72
|
+
if (field.unique) {
|
|
73
|
+
// 用列 meta 产生单列唯一约束
|
|
74
|
+
shape[outKey] = shape[outKey].meta({ unique: true });
|
|
75
|
+
}
|
|
76
|
+
else if (field.index) {
|
|
77
|
+
indexes.push({ columns: [outKey] });
|
|
78
|
+
}
|
|
79
|
+
if (staticDefault) {
|
|
80
|
+
defaults[outKey] = field.defaultValue;
|
|
81
|
+
}
|
|
82
|
+
else if (field.type === 'date' && isFunction(field.defaultValue) &&
|
|
83
|
+
(outKey === 'createdAt' || outKey === 'updatedAt')) {
|
|
84
|
+
// better-auth 的默认值是 app 函数;zero-SQL 下用 DB now() 承接
|
|
85
|
+
defaults[outKey] = sql `now()`;
|
|
86
|
+
}
|
|
87
|
+
if (field.references) {
|
|
88
|
+
const targetTable = authTables[field.references.model];
|
|
89
|
+
if (!targetTable) {
|
|
90
|
+
throw new Error(`authSchema: ${key}.${outKey} 引用了未知模型 "${field.references.model}"`);
|
|
91
|
+
}
|
|
92
|
+
const targetField = targetTable.fields[field.references.field];
|
|
93
|
+
const targetOut = field.references.field === 'id'
|
|
94
|
+
? 'id'
|
|
95
|
+
: targetField
|
|
96
|
+
? fieldOutKey(targetField, field.references.field)
|
|
97
|
+
: undefined;
|
|
98
|
+
if (!targetOut) {
|
|
99
|
+
throw new Error(`authSchema: ${key}.${outKey} 引用了未知字段 "${field.references.model}.${field.references.field}"`);
|
|
100
|
+
}
|
|
101
|
+
const relName = outKey.replace(/Id$/, '') || field.references.model;
|
|
102
|
+
if (relations[relName]) {
|
|
103
|
+
throw new Error(`authSchema: ${key} 的关系名 "${relName}" 冲突`);
|
|
104
|
+
}
|
|
105
|
+
relations[relName] = {
|
|
106
|
+
from: outKey,
|
|
107
|
+
to: `${field.references.model}.${targetOut}`,
|
|
108
|
+
kind: 'one',
|
|
109
|
+
...(field.references.onDelete ? { onDelete: field.references.onDelete } : {}),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
for (const idx of table.indexes ?? []) {
|
|
114
|
+
const columns = idx.fields.map(f => {
|
|
115
|
+
const field = table.fields[f];
|
|
116
|
+
if (!field)
|
|
117
|
+
throw new Error(`authSchema: ${key} 的索引引用了未知字段 "${f}"`);
|
|
118
|
+
return fieldOutKey(field, f);
|
|
119
|
+
});
|
|
120
|
+
indexes.push({ columns, ...(idx.name ? { name: idx.name } : {}), unique: idx.unique === true });
|
|
121
|
+
}
|
|
122
|
+
// better-auth OAuth 账户的核心约束不总是出现在 getAuthTables 元数据里。
|
|
123
|
+
// 手写 auth 表的等价行为:同一 provider 下 accountId 唯一。
|
|
124
|
+
if (key === 'account' && table.fields.providerId && table.fields.accountId) {
|
|
125
|
+
tableOptions.unique = [[
|
|
126
|
+
fieldOutKey(table.fields.providerId, 'providerId'),
|
|
127
|
+
fieldOutKey(table.fields.accountId, 'accountId'),
|
|
128
|
+
]];
|
|
129
|
+
}
|
|
130
|
+
tables[key] = z.object(shape);
|
|
131
|
+
options[key] = tableOptions;
|
|
132
|
+
const { relations: _relations, ...nodeOptions } = tableOptions;
|
|
133
|
+
nodes[key] = node(tables[key], nodeOptions);
|
|
134
|
+
if (Object.keys(relations).length > 0)
|
|
135
|
+
edges[key] = relations;
|
|
136
|
+
}
|
|
137
|
+
return { tables, options, nodes, edges };
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=auth-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-schema.js","sourceRoot":"","sources":["../src/auth-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BetterAuthOptions } from 'better-auth';
|
|
2
|
+
import { type DBAdapter } from 'better-auth/adapters';
|
|
3
|
+
import type { Db } from './db.js';
|
|
4
|
+
import type { Table } from './table.js';
|
|
5
|
+
import type { SchemaDb, SchemaDefinition } from './schema.js';
|
|
6
|
+
export type ZodDbAdapterMethod = 'create' | 'findOne' | 'findMany' | 'count' | 'update' | 'updateMany' | 'delete' | 'deleteMany' | 'transaction';
|
|
7
|
+
export interface ZodDbAdapterOptions {
|
|
8
|
+
/** better-auth 模型名(getModelName 之后)→ zoddb 表 */
|
|
9
|
+
tables?: Record<string, Table>;
|
|
10
|
+
/** 从 defineSchema() 的 schema 自动取表;tables 可覆盖 */
|
|
11
|
+
schema?: SchemaDefinition;
|
|
12
|
+
usePlural?: boolean;
|
|
13
|
+
debugLogs?: boolean;
|
|
14
|
+
transaction?: boolean;
|
|
15
|
+
/** 可观测钩子:每个操作进入时回调(测试断言"方法是否真被下游调用") */
|
|
16
|
+
onMethod?: (method: ZodDbAdapterMethod) => void;
|
|
17
|
+
}
|
|
18
|
+
export declare const zodDbAdapter: (input: Db | SchemaDb<SchemaDefinition>, options: ZodDbAdapterOptions) => (authOptions: BetterAuthOptions) => DBAdapter;
|
|
19
|
+
export { authSchema } from './auth-schema.js';
|
|
20
|
+
export type { AuthSchemaOptions, AuthSchemaResult } from './auth-schema.js';
|
|
21
|
+
//# sourceMappingURL=better-auth-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-auth-adapter.d.ts","sourceRoot":"","sources":["../src/better-auth-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAIL,KAAK,SAAS,EAEf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,EAAE,EAAuB,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAG7D,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAC3C,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,aAAa,CAAA;AAErE,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9B,gDAAgD;IAChD,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;CAChD;AAMD,eAAO,MAAM,YAAY,UAAW,EAAE,GAAG,QAAQ,CAAC,gBAAgB,CAAC,WAAW,mBAAmB,mBAmM1E,iBAAiB,KAAG,SAI1C,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { createAdapterFactory, } from 'better-auth/adapters';
|
|
2
|
+
import { compileWhere } from './where.js';
|
|
3
|
+
const quoteIdent = (s) => `"${s.replace(/"/g, '""')}"`;
|
|
4
|
+
export const zodDbAdapter = (input, options) => {
|
|
5
|
+
let lazyOptions = null;
|
|
6
|
+
const db = input.db ?? input;
|
|
7
|
+
const schemaTables = options.tables
|
|
8
|
+
?? options.schema?.tables
|
|
9
|
+
?? input.schema?.tables;
|
|
10
|
+
if (!schemaTables)
|
|
11
|
+
throw new Error('zodDbAdapter: 需要 tables 或 schema');
|
|
12
|
+
const tableMap = schemaTables;
|
|
13
|
+
const tableOf = (model) => {
|
|
14
|
+
const t = tableMap[model];
|
|
15
|
+
if (!t) {
|
|
16
|
+
throw new Error(`zodDbAdapter: 未知模型 "${model}"。已注册: ${Object.keys(tableMap).join(', ')}`);
|
|
17
|
+
}
|
|
18
|
+
return t;
|
|
19
|
+
};
|
|
20
|
+
const columnOf = (table, field) => {
|
|
21
|
+
const plan = table.__plan.find(p => p.outKey === field);
|
|
22
|
+
if (!plan)
|
|
23
|
+
throw new Error(`zodDbAdapter: 表 "${table.name}" 没有字段 "${field}"`);
|
|
24
|
+
return plan.dbKey;
|
|
25
|
+
};
|
|
26
|
+
const selectOf = (conn, table, select) => {
|
|
27
|
+
const fields = select?.filter(f => table.__plan.some(p => p.outKey === f));
|
|
28
|
+
if (!fields || fields.length === 0)
|
|
29
|
+
return conn.select(table);
|
|
30
|
+
return conn.select(table, Object.fromEntries(fields.map(f => [f, true])));
|
|
31
|
+
};
|
|
32
|
+
const makeAdapter = (conn) => ({ getModelName }) => {
|
|
33
|
+
const readRows = async (text, params, sel) => {
|
|
34
|
+
const rows = await conn.raw.unsafe(text, params);
|
|
35
|
+
return rows.map((row, i) => sel.__mapValid(row, i));
|
|
36
|
+
};
|
|
37
|
+
const rec = (m) => options.onMethod?.(m);
|
|
38
|
+
const whereOf = (table, where) => compileWhere(where, f => columnOf(table, f));
|
|
39
|
+
const findOneImpl = async (args) => {
|
|
40
|
+
rec('findOne');
|
|
41
|
+
if (args.join)
|
|
42
|
+
throw new Error('zodDbAdapter: join 暂不支持(better-auth 会在缺少 join 时退回多次查询)');
|
|
43
|
+
const table = tableOf(getModelName(args.model));
|
|
44
|
+
const sel = selectOf(conn, table, args.select);
|
|
45
|
+
const w = whereOf(table, args.where);
|
|
46
|
+
const text = `select ${sel.toSQL()} from ${quoteIdent(table.name)}`
|
|
47
|
+
+ (w.text ? ` where ${w.text}` : '') + ' limit 1';
|
|
48
|
+
const rows = await readRows(text, w.params, sel);
|
|
49
|
+
return rows[0] ?? null;
|
|
50
|
+
};
|
|
51
|
+
const adapter = {
|
|
52
|
+
async create({ data, model }) {
|
|
53
|
+
rec('create');
|
|
54
|
+
const table = tableOf(getModelName(model));
|
|
55
|
+
const [row] = await conn.insert(table, data);
|
|
56
|
+
return row;
|
|
57
|
+
},
|
|
58
|
+
findOne: findOneImpl,
|
|
59
|
+
async findMany({ model, where, select, limit, offset, sortBy, join, }) {
|
|
60
|
+
rec('findMany');
|
|
61
|
+
if (join)
|
|
62
|
+
throw new Error('zodDbAdapter: join 暂不支持(better-auth 会在缺少 join 时退回多次查询)');
|
|
63
|
+
const table = tableOf(getModelName(model));
|
|
64
|
+
const sel = selectOf(conn, table, select);
|
|
65
|
+
const w = whereOf(table, where);
|
|
66
|
+
let text = `select ${sel.toSQL()} from ${quoteIdent(table.name)}`;
|
|
67
|
+
if (w.text)
|
|
68
|
+
text += ` where ${w.text}`;
|
|
69
|
+
if (sortBy) {
|
|
70
|
+
const dir = sortBy.direction === 'desc' ? 'desc' : 'asc';
|
|
71
|
+
text += ` order by ${quoteIdent(columnOf(table, sortBy.field))} ${dir}`;
|
|
72
|
+
}
|
|
73
|
+
if (limit !== undefined)
|
|
74
|
+
text += ` limit ${Number(limit)}`;
|
|
75
|
+
if (offset !== undefined)
|
|
76
|
+
text += ` offset ${Number(offset)}`;
|
|
77
|
+
return await readRows(text, w.params, sel);
|
|
78
|
+
},
|
|
79
|
+
async count({ model, where }) {
|
|
80
|
+
rec('count');
|
|
81
|
+
const table = tableOf(getModelName(model));
|
|
82
|
+
const w = whereOf(table, where);
|
|
83
|
+
const text = `select count(*)::int as n from ${quoteIdent(table.name)}`
|
|
84
|
+
+ (w.text ? ` where ${w.text}` : '');
|
|
85
|
+
const rows = await conn.raw.unsafe(text, w.params);
|
|
86
|
+
return rows[0]?.n ?? 0;
|
|
87
|
+
},
|
|
88
|
+
async update({ model, where, update }) {
|
|
89
|
+
rec('update');
|
|
90
|
+
const table = tableOf(getModelName(model));
|
|
91
|
+
const params = [];
|
|
92
|
+
const w = whereOf(table, where);
|
|
93
|
+
params.push(...w.params);
|
|
94
|
+
const sets = Object.entries(update).filter(([, v]) => v !== undefined);
|
|
95
|
+
if (sets.length === 0) {
|
|
96
|
+
return await findOneImpl({ model, where });
|
|
97
|
+
}
|
|
98
|
+
const setSql = sets.map(([k, v]) => {
|
|
99
|
+
params.push(v);
|
|
100
|
+
return `${quoteIdent(columnOf(table, k))} = $${params.length}`;
|
|
101
|
+
}).join(', ');
|
|
102
|
+
const text = `update ${quoteIdent(table.name)} set ${setSql}`
|
|
103
|
+
+ (w.text ? ` where ${w.text}` : '') + ' returning *';
|
|
104
|
+
const rows = await conn.raw.unsafe(text, params);
|
|
105
|
+
if (rows.length === 0)
|
|
106
|
+
return null;
|
|
107
|
+
return table.__mapValid(rows[0], 0);
|
|
108
|
+
},
|
|
109
|
+
async updateMany({ model, where, update }) {
|
|
110
|
+
rec('updateMany');
|
|
111
|
+
const table = tableOf(getModelName(model));
|
|
112
|
+
const params = [];
|
|
113
|
+
const w = whereOf(table, where);
|
|
114
|
+
params.push(...w.params);
|
|
115
|
+
const sets = Object.entries(update).filter(([, v]) => v !== undefined);
|
|
116
|
+
const setSql = sets.map(([k, v]) => {
|
|
117
|
+
params.push(v);
|
|
118
|
+
return `${quoteIdent(columnOf(table, k))} = $${params.length}`;
|
|
119
|
+
}).join(', ');
|
|
120
|
+
const text = `update ${quoteIdent(table.name)} set ${setSql}`
|
|
121
|
+
+ (w.text ? ` where ${w.text}` : '');
|
|
122
|
+
const res = await conn.raw.unsafe(text, params);
|
|
123
|
+
return res.count;
|
|
124
|
+
},
|
|
125
|
+
async delete({ model, where }) {
|
|
126
|
+
rec('delete');
|
|
127
|
+
const table = tableOf(getModelName(model));
|
|
128
|
+
const w = whereOf(table, where);
|
|
129
|
+
await conn.raw.unsafe(`delete from ${quoteIdent(table.name)}` + (w.text ? ` where ${w.text}` : ''), w.params);
|
|
130
|
+
},
|
|
131
|
+
async deleteMany({ model, where }) {
|
|
132
|
+
rec('deleteMany');
|
|
133
|
+
const table = tableOf(getModelName(model));
|
|
134
|
+
const w = whereOf(table, where);
|
|
135
|
+
const res = await conn.raw.unsafe(`delete from ${quoteIdent(table.name)}` + (w.text ? ` where ${w.text}` : ''), w.params);
|
|
136
|
+
return res.count;
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
return adapter;
|
|
140
|
+
};
|
|
141
|
+
const build = (conn, transaction) => createAdapterFactory({
|
|
142
|
+
config: {
|
|
143
|
+
adapterId: 'zoddb',
|
|
144
|
+
adapterName: 'ZodDB Adapter',
|
|
145
|
+
usePlural: options.usePlural ?? false,
|
|
146
|
+
debugLogs: options.debugLogs ?? false,
|
|
147
|
+
supportsUUIDs: true,
|
|
148
|
+
supportsArrays: true,
|
|
149
|
+
transaction: transaction === false
|
|
150
|
+
? false
|
|
151
|
+
: (cb) => {
|
|
152
|
+
options.onMethod?.('transaction');
|
|
153
|
+
return conn.begin(async (tx) => cb(createAdapterFactory({
|
|
154
|
+
config: {
|
|
155
|
+
adapterId: 'zoddb',
|
|
156
|
+
adapterName: 'ZodDB Adapter',
|
|
157
|
+
usePlural: options.usePlural ?? false,
|
|
158
|
+
debugLogs: options.debugLogs ?? false,
|
|
159
|
+
supportsUUIDs: true,
|
|
160
|
+
supportsArrays: true,
|
|
161
|
+
transaction: false,
|
|
162
|
+
},
|
|
163
|
+
adapter: makeAdapter(tx),
|
|
164
|
+
})(lazyOptions)));
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
adapter: makeAdapter(conn),
|
|
168
|
+
})(lazyOptions);
|
|
169
|
+
return (authOptions) => {
|
|
170
|
+
lazyOptions = authOptions;
|
|
171
|
+
return build(db, options.transaction);
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
export { authSchema } from './auth-schema.js';
|
|
175
|
+
//# sourceMappingURL=better-auth-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-auth-adapter.js","sourceRoot":"","sources":["../src/better-auth-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|