@convex-dev/better-auth 0.8.1 → 0.8.2
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/dist/commonjs/client/adapterUtils.d.ts +6 -6
- package/dist/commonjs/client/createSchema.d.ts.map +1 -1
- package/dist/commonjs/client/createSchema.js +11 -1
- package/dist/commonjs/client/createSchema.js.map +1 -1
- package/dist/commonjs/client/createSchemaInternal.d.ts +24 -0
- package/dist/commonjs/client/createSchemaInternal.d.ts.map +1 -0
- package/dist/commonjs/client/createSchemaInternal.js +105 -0
- package/dist/commonjs/client/createSchemaInternal.js.map +1 -0
- package/dist/commonjs/client/index.d.ts +3064 -14
- package/dist/commonjs/client/index.d.ts.map +1 -1
- package/dist/commonjs/client/index.js +8 -5
- package/dist/commonjs/client/index.js.map +1 -1
- package/dist/commonjs/component/adapter.d.ts +6 -6
- package/dist/commonjs/nextjs/index.d.ts +3 -1
- package/dist/commonjs/nextjs/index.d.ts.map +1 -1
- package/dist/commonjs/nextjs/index.js +2 -2
- package/dist/commonjs/nextjs/index.js.map +1 -1
- package/dist/commonjs/react-start/index.d.ts +3 -1
- package/dist/commonjs/react-start/index.d.ts.map +1 -1
- package/dist/commonjs/react-start/index.js +2 -1
- package/dist/commonjs/react-start/index.js.map +1 -1
- package/dist/esm/client/adapterUtils.d.ts +6 -6
- package/dist/esm/client/createSchema.d.ts.map +1 -1
- package/dist/esm/client/createSchema.js +11 -1
- package/dist/esm/client/createSchema.js.map +1 -1
- package/dist/esm/client/createSchemaInternal.d.ts +24 -0
- package/dist/esm/client/createSchemaInternal.d.ts.map +1 -0
- package/dist/esm/client/createSchemaInternal.js +105 -0
- package/dist/esm/client/createSchemaInternal.js.map +1 -0
- package/dist/esm/client/index.d.ts +3064 -14
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +8 -5
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/component/adapter.d.ts +6 -6
- package/dist/esm/nextjs/index.d.ts +3 -1
- package/dist/esm/nextjs/index.d.ts.map +1 -1
- package/dist/esm/nextjs/index.js +2 -2
- package/dist/esm/nextjs/index.js.map +1 -1
- package/dist/esm/react-start/index.d.ts +3 -1
- package/dist/esm/react-start/index.d.ts.map +1 -1
- package/dist/esm/react-start/index.js +2 -1
- package/dist/esm/react-start/index.js.map +1 -1
- package/package.json +1 -1
- package/src/client/createSchema.ts +13 -1
- package/src/client/index.ts +20 -7
- package/src/nextjs/index.ts +6 -3
- package/src/react-start/index.ts +6 -2
|
@@ -2,20 +2,20 @@ import { Infer } from "convex/values";
|
|
|
2
2
|
import { DocumentByName, GenericDataModel, GenericQueryCtx, PaginationOptions, PaginationResult, SchemaDefinition, TableNamesInDataModel } from "convex/server";
|
|
3
3
|
import { BetterAuthDbSchema } from "better-auth/db";
|
|
4
4
|
export declare const adapterWhereValidator: import("convex/values").VObject<{
|
|
5
|
-
operator?: "
|
|
5
|
+
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
6
6
|
connector?: "AND" | "OR" | undefined;
|
|
7
7
|
value: string | number | boolean | string[] | number[] | null;
|
|
8
8
|
field: string;
|
|
9
9
|
}, {
|
|
10
10
|
field: import("convex/values").VString<string, "required">;
|
|
11
|
-
operator: import("convex/values").VUnion<"
|
|
11
|
+
operator: import("convex/values").VUnion<"lt" | "lte" | "gt" | "gte" | "eq" | "in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined, [import("convex/values").VLiteral<"lt", "required">, import("convex/values").VLiteral<"lte", "required">, import("convex/values").VLiteral<"gt", "required">, import("convex/values").VLiteral<"gte", "required">, import("convex/values").VLiteral<"eq", "required">, import("convex/values").VLiteral<"in", "required">, import("convex/values").VLiteral<"ne", "required">, import("convex/values").VLiteral<"contains", "required">, import("convex/values").VLiteral<"starts_with", "required">, import("convex/values").VLiteral<"ends_with", "required">], "optional", never>;
|
|
12
12
|
value: import("convex/values").VUnion<string | number | boolean | string[] | number[] | null, [import("convex/values").VString<string, "required">, import("convex/values").VFloat64<number, "required">, import("convex/values").VBoolean<boolean, "required">, import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">, import("convex/values").VArray<number[], import("convex/values").VFloat64<number, "required">, "required">, import("convex/values").VNull<null, "required">], "required", never>;
|
|
13
13
|
connector: import("convex/values").VUnion<"AND" | "OR" | undefined, [import("convex/values").VLiteral<"AND", "required">, import("convex/values").VLiteral<"OR", "required">], "optional", never>;
|
|
14
14
|
}, "required", "value" | "field" | "operator" | "connector">;
|
|
15
15
|
export declare const adapterArgsValidator: import("convex/values").VObject<{
|
|
16
16
|
select?: string[] | undefined;
|
|
17
17
|
where?: {
|
|
18
|
-
operator?: "
|
|
18
|
+
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
19
19
|
connector?: "AND" | "OR" | undefined;
|
|
20
20
|
value: string | number | boolean | string[] | number[] | null;
|
|
21
21
|
field: string;
|
|
@@ -30,18 +30,18 @@ export declare const adapterArgsValidator: import("convex/values").VObject<{
|
|
|
30
30
|
}, {
|
|
31
31
|
model: import("convex/values").VString<string, "required">;
|
|
32
32
|
where: import("convex/values").VArray<{
|
|
33
|
-
operator?: "
|
|
33
|
+
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
34
34
|
connector?: "AND" | "OR" | undefined;
|
|
35
35
|
value: string | number | boolean | string[] | number[] | null;
|
|
36
36
|
field: string;
|
|
37
37
|
}[] | undefined, import("convex/values").VObject<{
|
|
38
|
-
operator?: "
|
|
38
|
+
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
39
39
|
connector?: "AND" | "OR" | undefined;
|
|
40
40
|
value: string | number | boolean | string[] | number[] | null;
|
|
41
41
|
field: string;
|
|
42
42
|
}, {
|
|
43
43
|
field: import("convex/values").VString<string, "required">;
|
|
44
|
-
operator: import("convex/values").VUnion<"
|
|
44
|
+
operator: import("convex/values").VUnion<"lt" | "lte" | "gt" | "gte" | "eq" | "in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined, [import("convex/values").VLiteral<"lt", "required">, import("convex/values").VLiteral<"lte", "required">, import("convex/values").VLiteral<"gt", "required">, import("convex/values").VLiteral<"gte", "required">, import("convex/values").VLiteral<"eq", "required">, import("convex/values").VLiteral<"in", "required">, import("convex/values").VLiteral<"ne", "required">, import("convex/values").VLiteral<"contains", "required">, import("convex/values").VLiteral<"starts_with", "required">, import("convex/values").VLiteral<"ends_with", "required">], "optional", never>;
|
|
45
45
|
value: import("convex/values").VUnion<string | number | boolean | string[] | number[] | null, [import("convex/values").VString<string, "required">, import("convex/values").VFloat64<number, "required">, import("convex/values").VBoolean<boolean, "required">, import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">, import("convex/values").VArray<number[], import("convex/values").VFloat64<number, "required">, "required">, import("convex/values").VNull<null, "required">], "required", never>;
|
|
46
46
|
connector: import("convex/values").VUnion<"AND" | "OR" | undefined, [import("convex/values").VLiteral<"AND", "required">, import("convex/values").VLiteral<"OR", "required">], "optional", never>;
|
|
47
47
|
}, "required", "value" | "field" | "operator" | "connector">, "optional">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSchema.d.ts","sourceRoot":"","sources":["../../../src/client/createSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuB,MAAM,gBAAgB,CAAC;AAIzE,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAgBvB,CAAC;AA6CF,eAAO,MAAM,YAAY,GAAU,mBAGhC;IACD,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;;;;
|
|
1
|
+
{"version":3,"file":"createSchema.d.ts","sourceRoot":"","sources":["../../../src/client/createSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuB,MAAM,gBAAgB,CAAC;AAIzE,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAgBvB,CAAC;AA6CF,eAAO,MAAM,YAAY,GAAU,mBAGhC;IACD,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;;;;EAyFA,CAAC"}
|
|
@@ -40,7 +40,17 @@ const mergedIndexFields = (tables) => Object.fromEntries(Object.entries(tables).
|
|
|
40
40
|
return [key, manualIndexes.concat(specialFieldIndexes)];
|
|
41
41
|
}));
|
|
42
42
|
export const createSchema = async ({ file, tables, }) => {
|
|
43
|
-
|
|
43
|
+
// stop convex esbuild from throwing over this import, only runs
|
|
44
|
+
// in the better auth cli
|
|
45
|
+
const pathImport = "path";
|
|
46
|
+
const path = await import(pathImport);
|
|
47
|
+
const baseName = path.basename(path.resolve(process.cwd(), file ?? ""));
|
|
48
|
+
// if the target directory is named "convex", they're almost definitely
|
|
49
|
+
// generating the schema in the wrong directory, likely would replace the
|
|
50
|
+
// app schema
|
|
51
|
+
if (baseName === "convex") {
|
|
52
|
+
throw new Error("Better Auth schema must be generated in the Better Auth component directory.");
|
|
53
|
+
}
|
|
44
54
|
let code = `// This file is auto-generated. Do not edit this file manually.
|
|
45
55
|
// To regenerate the schema, run:
|
|
46
56
|
// \`npx @better-auth/cli generate --output ${file} -y\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSchema.js","sourceRoot":"","sources":["../../../src/client/createSchema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createSchema.js","sourceRoot":"","sources":["../../../src/client/createSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BetterAuthDbSchema } from "better-auth/db";
|
|
2
|
+
export declare const indexFields: {
|
|
3
|
+
account: (string | string[])[];
|
|
4
|
+
rateLimit: string[];
|
|
5
|
+
session: (string | string[])[];
|
|
6
|
+
verification: string[];
|
|
7
|
+
user: (string | string[])[];
|
|
8
|
+
passkey: string[];
|
|
9
|
+
apikey: string[];
|
|
10
|
+
member: string[][];
|
|
11
|
+
invitation: string[][];
|
|
12
|
+
oauthConsent: string[][];
|
|
13
|
+
ssoProvider: string[];
|
|
14
|
+
subscription: string[];
|
|
15
|
+
};
|
|
16
|
+
export declare const createSchema: ({ file, tables, }: {
|
|
17
|
+
tables: BetterAuthDbSchema;
|
|
18
|
+
file?: string;
|
|
19
|
+
}) => Promise<{
|
|
20
|
+
code: string;
|
|
21
|
+
path: string;
|
|
22
|
+
overwrite: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=createSchemaInternal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSchemaInternal.d.ts","sourceRoot":"","sources":["../../../src/client/createSchemaInternal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuB,MAAM,gBAAgB,CAAC;AAIzE,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAgBvB,CAAC;AA6CF,eAAO,MAAM,YAAY,GAAU,mBAGhC;IACD,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;;;;EAmFA,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// Manually add fields to index on for schema generation,
|
|
2
|
+
// all fields in the schema specialFields are automatically indexed
|
|
3
|
+
export const indexFields = {
|
|
4
|
+
account: ["accountId", ["accountId", "providerId"], ["providerId", "userId"]],
|
|
5
|
+
rateLimit: ["key"],
|
|
6
|
+
session: ["expiresAt", ["expiresAt", "userId"]],
|
|
7
|
+
verification: ["expiresAt", "identifier"],
|
|
8
|
+
user: [["email", "name"], "name", "userId"],
|
|
9
|
+
passkey: ["credentialID"],
|
|
10
|
+
apikey: ["key"],
|
|
11
|
+
member: [["organizationId", "userId"]],
|
|
12
|
+
invitation: [
|
|
13
|
+
["email", "organizationId", "status"],
|
|
14
|
+
["organizationId", "status"],
|
|
15
|
+
],
|
|
16
|
+
oauthConsent: [["clientId", "userId"]],
|
|
17
|
+
ssoProvider: ["organizationId", "domain"],
|
|
18
|
+
subscription: ["stripeSubscriptionId", "stripeCustomerId", "referenceId"],
|
|
19
|
+
};
|
|
20
|
+
// Return map of unique, sortable, and reference fields
|
|
21
|
+
const specialFields = (tables) => Object.fromEntries(Object.entries(tables)
|
|
22
|
+
.map(([key, table]) => {
|
|
23
|
+
const fields = Object.fromEntries(Object.entries(table.fields)
|
|
24
|
+
.map(([fieldKey, field]) => [
|
|
25
|
+
fieldKey,
|
|
26
|
+
{
|
|
27
|
+
...(field.sortable ? { sortable: true } : {}),
|
|
28
|
+
...(field.unique ? { unique: true } : {}),
|
|
29
|
+
...(field.references ? { references: field.references } : {}),
|
|
30
|
+
},
|
|
31
|
+
])
|
|
32
|
+
.filter(([_key, value]) => typeof value === "object" ? Object.keys(value).length > 0 : true));
|
|
33
|
+
return [key, fields];
|
|
34
|
+
})
|
|
35
|
+
.filter(([_key, value]) => typeof value === "object" ? Object.keys(value).length > 0 : true));
|
|
36
|
+
const mergedIndexFields = (tables) => Object.fromEntries(Object.entries(tables).map(([key]) => {
|
|
37
|
+
const manualIndexes = indexFields[key] || [];
|
|
38
|
+
const specialFieldIndexes = Object.keys(specialFields(tables)[key] ||
|
|
39
|
+
{}).filter((index) => !manualIndexes.some((m) => Array.isArray(m) ? m[0] === index : m === index));
|
|
40
|
+
return [key, manualIndexes.concat(specialFieldIndexes)];
|
|
41
|
+
}));
|
|
42
|
+
export const createSchema = async ({ file, tables, }) => {
|
|
43
|
+
const path = await import("path");
|
|
44
|
+
const baseName = path.basename(process.cwd());
|
|
45
|
+
if (baseName === "convex") {
|
|
46
|
+
throw new Error("Better Auth schema must be generated in the Better Auth component directory.");
|
|
47
|
+
}
|
|
48
|
+
let code = `// This file is auto-generated. Do not edit this file manually.
|
|
49
|
+
// To regenerate the schema, run:
|
|
50
|
+
// \`npx @better-auth/cli generate --output ${file} -y\`
|
|
51
|
+
|
|
52
|
+
import { defineSchema, defineTable } from "convex/server";
|
|
53
|
+
import { v } from "convex/values";
|
|
54
|
+
|
|
55
|
+
export const tables = {
|
|
56
|
+
`;
|
|
57
|
+
for (const tableKey in tables) {
|
|
58
|
+
const table = tables[tableKey];
|
|
59
|
+
const modelName = table.modelName;
|
|
60
|
+
// No id fields in Convex schema
|
|
61
|
+
const fields = Object.fromEntries(Object.entries(table.fields).filter(([key]) => key !== "id"));
|
|
62
|
+
function getType(name, field) {
|
|
63
|
+
const type = field.type;
|
|
64
|
+
const typeMap = {
|
|
65
|
+
string: `v.string()`,
|
|
66
|
+
boolean: `v.boolean()`,
|
|
67
|
+
number: `v.number()`,
|
|
68
|
+
date: `v.number()`,
|
|
69
|
+
"number[]": `v.array(v.number())`,
|
|
70
|
+
"string[]": `v.array(v.string())`,
|
|
71
|
+
};
|
|
72
|
+
return typeMap[type];
|
|
73
|
+
}
|
|
74
|
+
const indexes = mergedIndexFields(tables)[modelName]?.map((index) => {
|
|
75
|
+
const indexArray = Array.isArray(index) ? index.sort() : [index];
|
|
76
|
+
const indexName = indexArray.join("_");
|
|
77
|
+
return `.index("${indexName}", ${JSON.stringify(indexArray)})`;
|
|
78
|
+
}) || [];
|
|
79
|
+
const schema = `${modelName}: defineTable({
|
|
80
|
+
${Object.keys(fields)
|
|
81
|
+
.map((field) => {
|
|
82
|
+
const attr = fields[field];
|
|
83
|
+
const type = getType(field, attr);
|
|
84
|
+
const optional = (fieldSchema) => attr.required
|
|
85
|
+
? fieldSchema
|
|
86
|
+
: `v.optional(v.union(v.null(), ${fieldSchema}))`;
|
|
87
|
+
return ` ${field}: ${optional(type)},`;
|
|
88
|
+
})
|
|
89
|
+
.join("\n")}
|
|
90
|
+
})${indexes.length > 0 ? `\n ${indexes.join("\n ")}` : ""},\n`;
|
|
91
|
+
code += ` ${schema}`;
|
|
92
|
+
}
|
|
93
|
+
code += `};
|
|
94
|
+
|
|
95
|
+
const schema = defineSchema(tables);
|
|
96
|
+
|
|
97
|
+
export default schema;
|
|
98
|
+
`;
|
|
99
|
+
return {
|
|
100
|
+
code,
|
|
101
|
+
path: file ?? "./schema.ts",
|
|
102
|
+
overwrite: true,
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=createSchemaInternal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSchemaInternal.js","sourceRoot":"","sources":["../../../src/client/createSchemaInternal.ts"],"names":[],"mappings":"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"}
|