@convex-dev/better-auth 0.11.4 → 0.12.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/dist/auth-options.d.ts.map +1 -1
- package/dist/auth-options.js +1 -0
- package/dist/auth-options.js.map +1 -1
- package/dist/client/adapter-utils.d.ts +8 -2
- package/dist/client/adapter-utils.d.ts.map +1 -1
- package/dist/client/adapter-utils.js +8 -3
- package/dist/client/adapter-utils.js.map +1 -1
- package/dist/client/adapter.d.ts.map +1 -1
- package/dist/client/adapter.js +5 -0
- package/dist/client/adapter.js.map +1 -1
- package/dist/client/create-api.d.ts +6 -0
- package/dist/client/create-api.d.ts.map +1 -1
- package/dist/client/create-api.js +1 -0
- package/dist/client/create-api.js.map +1 -1
- package/dist/client/create-client.d.ts.map +1 -1
- package/dist/client/create-client.js +19 -2
- package/dist/client/create-client.js.map +1 -1
- package/dist/client/create-schema.d.ts.map +1 -1
- package/dist/client/create-schema.js +38 -8
- package/dist/client/create-schema.js.map +1 -1
- package/dist/component/_generated/component.d.ts +543 -28
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/_generated/server.d.ts.map +1 -1
- package/dist/component/adapter.d.ts +6 -0
- package/dist/component/adapter.d.ts.map +1 -1
- package/dist/component/schema.d.ts +9 -4
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +4 -2
- package/dist/component/schema.js.map +1 -1
- package/dist/component/testProfiles/adapterAdditionalFields.d.ts +6 -0
- package/dist/component/testProfiles/adapterAdditionalFields.d.ts.map +1 -1
- package/dist/component/testProfiles/adapterOrganizationJoins.d.ts +6 -0
- package/dist/component/testProfiles/adapterOrganizationJoins.d.ts.map +1 -1
- package/dist/component/testProfiles/adapterPluginTable.d.ts +6 -0
- package/dist/component/testProfiles/adapterPluginTable.d.ts.map +1 -1
- package/dist/component/testProfiles/adapterRenameField.d.ts +6 -0
- package/dist/component/testProfiles/adapterRenameField.d.ts.map +1 -1
- package/dist/component/testProfiles/adapterRenameUserCustom.d.ts +6 -0
- package/dist/component/testProfiles/adapterRenameUserCustom.d.ts.map +1 -1
- package/dist/component/testProfiles/adapterRenameUserTable.d.ts +6 -0
- package/dist/component/testProfiles/adapterRenameUserTable.d.ts.map +1 -1
- package/dist/component/testProfiles/schema.profile-additional-fields.d.ts +3 -1
- package/dist/component/testProfiles/schema.profile-additional-fields.d.ts.map +1 -1
- package/dist/component/testProfiles/schema.profile-plugin-table.d.ts +3 -1
- package/dist/component/testProfiles/schema.profile-plugin-table.d.ts.map +1 -1
- package/dist/nextjs/index.d.ts.map +1 -1
- package/dist/nextjs/index.js +4 -0
- package/dist/nextjs/index.js.map +1 -1
- package/dist/plugins/convex/client.d.ts +1 -0
- package/dist/plugins/convex/client.d.ts.map +1 -1
- package/dist/plugins/convex/client.js +2 -0
- package/dist/plugins/convex/client.js.map +1 -1
- package/dist/plugins/convex/index.d.ts +2 -1
- package/dist/plugins/convex/index.d.ts.map +1 -1
- package/dist/plugins/convex/index.js +15 -2
- package/dist/plugins/convex/index.js.map +1 -1
- package/dist/plugins/cross-domain/client.d.ts +1 -12
- package/dist/plugins/cross-domain/client.d.ts.map +1 -1
- package/dist/plugins/cross-domain/client.js +14 -26
- package/dist/plugins/cross-domain/client.js.map +1 -1
- package/dist/plugins/cross-domain/index.d.ts +1 -0
- package/dist/plugins/cross-domain/index.d.ts.map +1 -1
- package/dist/plugins/cross-domain/index.js +15 -4
- package/dist/plugins/cross-domain/index.js.map +1 -1
- package/dist/react-start/index.d.ts.map +1 -1
- package/dist/react-start/index.js +4 -0
- package/dist/react-start/index.js.map +1 -1
- package/dist/test/adapter-factory/basic.d.ts +4 -0
- package/dist/test/adapter-factory/basic.d.ts.map +1 -1
- package/dist/test/adapter-factory/convex-custom.d.ts +1 -1
- package/dist/test/adapter-factory/convex-custom.d.ts.map +1 -1
- package/dist/test/adapter-factory/convex-custom.js +20 -0
- package/dist/test/adapter-factory/convex-custom.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/package.json +16 -19
- package/src/auth-options.ts +1 -0
- package/src/client/adapter-utils.ts +13 -5
- package/src/client/adapter.ts +7 -0
- package/src/client/create-api.ts +3 -0
- package/src/client/create-client.test.ts +40 -0
- package/src/client/create-client.ts +25 -2
- package/src/client/create-schema.ts +46 -8
- package/src/component/_generated/component.ts +718 -35
- package/src/component/_generated/server.ts +0 -5
- package/src/component/schema.ts +5 -3
- package/src/nextjs/index.ts +4 -0
- package/src/plugins/convex/client.ts +2 -0
- package/src/plugins/convex/index.ts +16 -3
- package/src/plugins/cross-domain/client.test.ts +41 -30
- package/src/plugins/cross-domain/client.ts +17 -44
- package/src/plugins/cross-domain/index.test.ts +129 -51
- package/src/plugins/cross-domain/index.ts +20 -7
- package/src/react-start/index.ts +4 -0
- package/src/test/adapter-factory/convex-custom.ts +23 -0
- package/src/utils/index.ts +6 -1
- package/src/version.ts +1 -0
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
const resolveCdTarget = (relativeDir, cwdBasename) => {
|
|
2
|
+
if (relativeDir === "") {
|
|
3
|
+
return null;
|
|
4
|
+
}
|
|
5
|
+
if (relativeDir !== null) {
|
|
6
|
+
return relativeDir;
|
|
7
|
+
}
|
|
8
|
+
return cwdBasename;
|
|
9
|
+
};
|
|
1
10
|
// Manually add fields to index on for schema generation,
|
|
2
11
|
// all fields in the schema specialFields are automatically indexed
|
|
3
12
|
export const indexFields = {
|
|
@@ -35,22 +44,43 @@ const mergedIndexFields = (tables) => Object.fromEntries(Object.entries(tables).
|
|
|
35
44
|
return [key, manualIndexes.concat(specialFieldIndexes)];
|
|
36
45
|
}));
|
|
37
46
|
export const createSchema = async ({ file, tables, }) => {
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const
|
|
47
|
+
// Hide these node builtins from Convex's esbuild so it doesn't try to
|
|
48
|
+
// resolve them at bundle time. Only runs from the better-auth CLI.
|
|
49
|
+
const path = await import(["p", "a", "t", "h"].join(""));
|
|
50
|
+
const fs = await import(["f", "s"].join(""));
|
|
51
|
+
const cwd = process.cwd();
|
|
52
|
+
const baseName = path.basename(path.resolve(cwd, file ?? ""));
|
|
43
53
|
// if the target directory is named "convex", they're almost definitely
|
|
44
54
|
// generating the schema in the wrong directory, likely would replace the
|
|
45
55
|
// app schema
|
|
46
56
|
if (baseName === "convex") {
|
|
47
57
|
throw new Error("Better Auth schema must be generated in the Better Auth component directory.");
|
|
48
58
|
}
|
|
59
|
+
const findProjectRoot = (dir) => {
|
|
60
|
+
if (fs.existsSync(path.join(dir, "package.json"))) {
|
|
61
|
+
return dir;
|
|
62
|
+
}
|
|
63
|
+
const parent = path.dirname(dir);
|
|
64
|
+
if (parent === dir) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
return findProjectRoot(parent);
|
|
68
|
+
};
|
|
69
|
+
const projectRoot = findProjectRoot(cwd);
|
|
70
|
+
const relativeDir = projectRoot !== null
|
|
71
|
+
? path.relative(projectRoot, cwd).split(path.sep).join("/")
|
|
72
|
+
: null;
|
|
73
|
+
const generateCommand = `npx auth generate${file ? ` --output ${file}` : ""}`;
|
|
74
|
+
const cdTarget = resolveCdTarget(relativeDir, path.basename(cwd));
|
|
75
|
+
const commandBlock = cdTarget
|
|
76
|
+
? ` * cd ${cdTarget}\n * ${generateCommand}`
|
|
77
|
+
: ` * ${generateCommand}`;
|
|
49
78
|
let code = `/**
|
|
50
79
|
* This file is auto-generated. Do not edit this file manually.
|
|
51
|
-
* To regenerate the schema,
|
|
52
|
-
*
|
|
53
|
-
|
|
80
|
+
* To regenerate the schema, from your project root:
|
|
81
|
+
*
|
|
82
|
+
${commandBlock}
|
|
83
|
+
*
|
|
54
84
|
* To customize the schema, generate to an alternate file and import
|
|
55
85
|
* the table definitions to your schema file. See
|
|
56
86
|
* https://labs.convex.dev/better-auth/features/local-install#adding-custom-indexes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-schema.js","sourceRoot":"","sources":["../../src/client/create-schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create-schema.js","sourceRoot":"","sources":["../../src/client/create-schema.ts"],"names":[],"mappings":"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"}
|