@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.
Files changed (103) hide show
  1. package/dist/auth-options.d.ts.map +1 -1
  2. package/dist/auth-options.js +1 -0
  3. package/dist/auth-options.js.map +1 -1
  4. package/dist/client/adapter-utils.d.ts +8 -2
  5. package/dist/client/adapter-utils.d.ts.map +1 -1
  6. package/dist/client/adapter-utils.js +8 -3
  7. package/dist/client/adapter-utils.js.map +1 -1
  8. package/dist/client/adapter.d.ts.map +1 -1
  9. package/dist/client/adapter.js +5 -0
  10. package/dist/client/adapter.js.map +1 -1
  11. package/dist/client/create-api.d.ts +6 -0
  12. package/dist/client/create-api.d.ts.map +1 -1
  13. package/dist/client/create-api.js +1 -0
  14. package/dist/client/create-api.js.map +1 -1
  15. package/dist/client/create-client.d.ts.map +1 -1
  16. package/dist/client/create-client.js +19 -2
  17. package/dist/client/create-client.js.map +1 -1
  18. package/dist/client/create-schema.d.ts.map +1 -1
  19. package/dist/client/create-schema.js +38 -8
  20. package/dist/client/create-schema.js.map +1 -1
  21. package/dist/component/_generated/component.d.ts +543 -28
  22. package/dist/component/_generated/component.d.ts.map +1 -1
  23. package/dist/component/_generated/server.d.ts.map +1 -1
  24. package/dist/component/adapter.d.ts +6 -0
  25. package/dist/component/adapter.d.ts.map +1 -1
  26. package/dist/component/schema.d.ts +9 -4
  27. package/dist/component/schema.d.ts.map +1 -1
  28. package/dist/component/schema.js +4 -2
  29. package/dist/component/schema.js.map +1 -1
  30. package/dist/component/testProfiles/adapterAdditionalFields.d.ts +6 -0
  31. package/dist/component/testProfiles/adapterAdditionalFields.d.ts.map +1 -1
  32. package/dist/component/testProfiles/adapterOrganizationJoins.d.ts +6 -0
  33. package/dist/component/testProfiles/adapterOrganizationJoins.d.ts.map +1 -1
  34. package/dist/component/testProfiles/adapterPluginTable.d.ts +6 -0
  35. package/dist/component/testProfiles/adapterPluginTable.d.ts.map +1 -1
  36. package/dist/component/testProfiles/adapterRenameField.d.ts +6 -0
  37. package/dist/component/testProfiles/adapterRenameField.d.ts.map +1 -1
  38. package/dist/component/testProfiles/adapterRenameUserCustom.d.ts +6 -0
  39. package/dist/component/testProfiles/adapterRenameUserCustom.d.ts.map +1 -1
  40. package/dist/component/testProfiles/adapterRenameUserTable.d.ts +6 -0
  41. package/dist/component/testProfiles/adapterRenameUserTable.d.ts.map +1 -1
  42. package/dist/component/testProfiles/schema.profile-additional-fields.d.ts +3 -1
  43. package/dist/component/testProfiles/schema.profile-additional-fields.d.ts.map +1 -1
  44. package/dist/component/testProfiles/schema.profile-plugin-table.d.ts +3 -1
  45. package/dist/component/testProfiles/schema.profile-plugin-table.d.ts.map +1 -1
  46. package/dist/nextjs/index.d.ts.map +1 -1
  47. package/dist/nextjs/index.js +4 -0
  48. package/dist/nextjs/index.js.map +1 -1
  49. package/dist/plugins/convex/client.d.ts +1 -0
  50. package/dist/plugins/convex/client.d.ts.map +1 -1
  51. package/dist/plugins/convex/client.js +2 -0
  52. package/dist/plugins/convex/client.js.map +1 -1
  53. package/dist/plugins/convex/index.d.ts +2 -1
  54. package/dist/plugins/convex/index.d.ts.map +1 -1
  55. package/dist/plugins/convex/index.js +15 -2
  56. package/dist/plugins/convex/index.js.map +1 -1
  57. package/dist/plugins/cross-domain/client.d.ts +1 -12
  58. package/dist/plugins/cross-domain/client.d.ts.map +1 -1
  59. package/dist/plugins/cross-domain/client.js +14 -26
  60. package/dist/plugins/cross-domain/client.js.map +1 -1
  61. package/dist/plugins/cross-domain/index.d.ts +1 -0
  62. package/dist/plugins/cross-domain/index.d.ts.map +1 -1
  63. package/dist/plugins/cross-domain/index.js +15 -4
  64. package/dist/plugins/cross-domain/index.js.map +1 -1
  65. package/dist/react-start/index.d.ts.map +1 -1
  66. package/dist/react-start/index.js +4 -0
  67. package/dist/react-start/index.js.map +1 -1
  68. package/dist/test/adapter-factory/basic.d.ts +4 -0
  69. package/dist/test/adapter-factory/basic.d.ts.map +1 -1
  70. package/dist/test/adapter-factory/convex-custom.d.ts +1 -1
  71. package/dist/test/adapter-factory/convex-custom.d.ts.map +1 -1
  72. package/dist/test/adapter-factory/convex-custom.js +20 -0
  73. package/dist/test/adapter-factory/convex-custom.js.map +1 -1
  74. package/dist/utils/index.d.ts +1 -0
  75. package/dist/utils/index.d.ts.map +1 -1
  76. package/dist/utils/index.js +5 -1
  77. package/dist/utils/index.js.map +1 -1
  78. package/dist/version.d.ts +2 -0
  79. package/dist/version.d.ts.map +1 -0
  80. package/dist/version.js +2 -0
  81. package/dist/version.js.map +1 -0
  82. package/package.json +16 -19
  83. package/src/auth-options.ts +1 -0
  84. package/src/client/adapter-utils.ts +13 -5
  85. package/src/client/adapter.ts +7 -0
  86. package/src/client/create-api.ts +3 -0
  87. package/src/client/create-client.test.ts +40 -0
  88. package/src/client/create-client.ts +25 -2
  89. package/src/client/create-schema.ts +46 -8
  90. package/src/component/_generated/component.ts +718 -35
  91. package/src/component/_generated/server.ts +0 -5
  92. package/src/component/schema.ts +5 -3
  93. package/src/nextjs/index.ts +4 -0
  94. package/src/plugins/convex/client.ts +2 -0
  95. package/src/plugins/convex/index.ts +16 -3
  96. package/src/plugins/cross-domain/client.test.ts +41 -30
  97. package/src/plugins/cross-domain/client.ts +17 -44
  98. package/src/plugins/cross-domain/index.test.ts +129 -51
  99. package/src/plugins/cross-domain/index.ts +20 -7
  100. package/src/react-start/index.ts +4 -0
  101. package/src/test/adapter-factory/convex-custom.ts +23 -0
  102. package/src/utils/index.ts +6 -1
  103. 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
- // stop convex esbuild from throwing over this import, only runs
39
- // in the better auth cli
40
- const pathImport = "path";
41
- const path = await import(pathImport);
42
- const baseName = path.basename(path.resolve(process.cwd(), file ?? ""));
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, run:
52
- * \`npx @better-auth/cli generate --output ${file} -y\`
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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"}