@convex-dev/better-auth 0.7.0-alpha.12 → 0.7.0-alpha.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.
Files changed (108) hide show
  1. package/dist/commonjs/client/adapter.d.ts +1 -10
  2. package/dist/commonjs/client/adapter.d.ts.map +1 -1
  3. package/dist/commonjs/client/adapter.js +192 -183
  4. package/dist/commonjs/client/adapter.js.map +1 -1
  5. package/dist/commonjs/client/index.d.ts +179 -238
  6. package/dist/commonjs/client/index.d.ts.map +1 -1
  7. package/dist/commonjs/client/index.js +67 -60
  8. package/dist/commonjs/client/index.js.map +1 -1
  9. package/dist/commonjs/component/lib.d.ts +548 -218
  10. package/dist/commonjs/component/lib.d.ts.map +1 -1
  11. package/dist/commonjs/component/lib.js +286 -315
  12. package/dist/commonjs/component/lib.js.map +1 -1
  13. package/dist/commonjs/component/schema.d.ts +28 -90
  14. package/dist/commonjs/component/schema.d.ts.map +1 -1
  15. package/dist/commonjs/component/schema.js +18 -76
  16. package/dist/commonjs/component/schema.js.map +1 -1
  17. package/dist/commonjs/component/util.d.ts +86 -148
  18. package/dist/commonjs/component/util.d.ts.map +1 -1
  19. package/dist/commonjs/nextjs/index.d.ts.map +1 -1
  20. package/dist/commonjs/nextjs/index.js +0 -3
  21. package/dist/commonjs/nextjs/index.js.map +1 -1
  22. package/dist/commonjs/plugins/convex/index.d.ts +11 -14
  23. package/dist/commonjs/plugins/convex/index.d.ts.map +1 -1
  24. package/dist/commonjs/plugins/convex/index.js +4 -10
  25. package/dist/commonjs/plugins/convex/index.js.map +1 -1
  26. package/dist/commonjs/plugins/cross-domain/client.d.ts +1 -1
  27. package/dist/commonjs/plugins/cross-domain/index.d.ts +3 -5
  28. package/dist/commonjs/plugins/cross-domain/index.d.ts.map +1 -1
  29. package/dist/commonjs/plugins/cross-domain/index.js +5 -19
  30. package/dist/commonjs/plugins/cross-domain/index.js.map +1 -1
  31. package/dist/commonjs/react/client.d.ts +1 -1
  32. package/dist/commonjs/react/client.d.ts.map +1 -1
  33. package/dist/commonjs/react/client.js +9 -3
  34. package/dist/commonjs/react/client.js.map +1 -1
  35. package/dist/commonjs/react-start/index.d.ts +3 -37
  36. package/dist/commonjs/react-start/index.d.ts.map +1 -1
  37. package/dist/commonjs/react-start/index.js +4 -20
  38. package/dist/commonjs/react-start/index.js.map +1 -1
  39. package/dist/esm/client/adapter.d.ts +1 -10
  40. package/dist/esm/client/adapter.d.ts.map +1 -1
  41. package/dist/esm/client/adapter.js +192 -183
  42. package/dist/esm/client/adapter.js.map +1 -1
  43. package/dist/esm/client/index.d.ts +179 -238
  44. package/dist/esm/client/index.d.ts.map +1 -1
  45. package/dist/esm/client/index.js +67 -60
  46. package/dist/esm/client/index.js.map +1 -1
  47. package/dist/esm/component/lib.d.ts +548 -218
  48. package/dist/esm/component/lib.d.ts.map +1 -1
  49. package/dist/esm/component/lib.js +286 -315
  50. package/dist/esm/component/lib.js.map +1 -1
  51. package/dist/esm/component/schema.d.ts +28 -90
  52. package/dist/esm/component/schema.d.ts.map +1 -1
  53. package/dist/esm/component/schema.js +18 -76
  54. package/dist/esm/component/schema.js.map +1 -1
  55. package/dist/esm/component/util.d.ts +86 -148
  56. package/dist/esm/component/util.d.ts.map +1 -1
  57. package/dist/esm/nextjs/index.d.ts.map +1 -1
  58. package/dist/esm/nextjs/index.js +0 -3
  59. package/dist/esm/nextjs/index.js.map +1 -1
  60. package/dist/esm/plugins/convex/index.d.ts +11 -14
  61. package/dist/esm/plugins/convex/index.d.ts.map +1 -1
  62. package/dist/esm/plugins/convex/index.js +4 -10
  63. package/dist/esm/plugins/convex/index.js.map +1 -1
  64. package/dist/esm/plugins/cross-domain/client.d.ts +1 -1
  65. package/dist/esm/plugins/cross-domain/index.d.ts +3 -5
  66. package/dist/esm/plugins/cross-domain/index.d.ts.map +1 -1
  67. package/dist/esm/plugins/cross-domain/index.js +5 -19
  68. package/dist/esm/plugins/cross-domain/index.js.map +1 -1
  69. package/dist/esm/react/client.d.ts +1 -1
  70. package/dist/esm/react/client.d.ts.map +1 -1
  71. package/dist/esm/react/client.js +9 -3
  72. package/dist/esm/react/client.js.map +1 -1
  73. package/dist/esm/react-start/index.d.ts +3 -37
  74. package/dist/esm/react-start/index.d.ts.map +1 -1
  75. package/dist/esm/react-start/index.js +4 -20
  76. package/dist/esm/react-start/index.js.map +1 -1
  77. package/package.json +5 -20
  78. package/src/client/adapter.ts +195 -191
  79. package/src/client/cors.ts +425 -0
  80. package/src/client/index.ts +80 -61
  81. package/src/component/_generated/api.d.ts +149 -605
  82. package/src/component/lib.ts +335 -444
  83. package/src/component/schema.ts +19 -81
  84. package/src/nextjs/index.ts +0 -3
  85. package/src/plugins/convex/index.ts +4 -12
  86. package/src/plugins/cross-domain/index.ts +5 -19
  87. package/src/react/client.tsx +11 -5
  88. package/src/react-start/index.ts +6 -33
  89. package/dist/commonjs/component/adapterTest.d.ts +0 -19
  90. package/dist/commonjs/component/adapterTest.d.ts.map +0 -1
  91. package/dist/commonjs/component/adapterTest.js +0 -82
  92. package/dist/commonjs/component/adapterTest.js.map +0 -1
  93. package/dist/commonjs/utils/index.d.ts +0 -2
  94. package/dist/commonjs/utils/index.d.ts.map +0 -1
  95. package/dist/commonjs/utils/index.js +0 -8
  96. package/dist/commonjs/utils/index.js.map +0 -1
  97. package/dist/esm/component/adapterTest.d.ts +0 -19
  98. package/dist/esm/component/adapterTest.d.ts.map +0 -1
  99. package/dist/esm/component/adapterTest.js +0 -82
  100. package/dist/esm/component/adapterTest.js.map +0 -1
  101. package/dist/esm/utils/index.d.ts +0 -2
  102. package/dist/esm/utils/index.d.ts.map +0 -1
  103. package/dist/esm/utils/index.js +0 -8
  104. package/dist/esm/utils/index.js.map +0 -1
  105. package/src/client/adapter.test.ts +0 -144
  106. package/src/component/adapterTest.ts +0 -141
  107. package/src/react-start/vite-env.d.ts +0 -2
  108. /package/src/{utils/index.ts → util.ts} +0 -0
@@ -1,144 +0,0 @@
1
- /// <reference types="vite/client" />
2
-
3
- import { describe, expect, test } from "vitest";
4
- import { runAdapterTest } from "better-auth/adapters/test";
5
- import { convexTest } from "convex-test";
6
- import { api } from "../component/_generated/api";
7
- import schema from "../component/schema";
8
- import { serialize } from "../component/adapterTest";
9
- import { Adapter } from "better-auth";
10
-
11
- describe("convex adapter", async () => {
12
- const _t = convexTest(schema, import.meta.glob("../component/**/*.*s"));
13
- const getAdapter =
14
- (t: typeof _t) =>
15
- async (betterAuthOptions = {}): Promise<Adapter> => {
16
- return {
17
- id: "convex",
18
- create: async (data) => {
19
- const result = await t.mutation(api.adapterTest.create, {
20
- ...data,
21
- data: serialize(data.data),
22
- });
23
- return result;
24
- },
25
- findOne: async (data) => {
26
- const result = await t.query(api.adapterTest.findOne, data);
27
- console.log("findOne result adapter", result);
28
- return result;
29
- },
30
- findMany: async (data) => {
31
- const result = await t.query(api.adapterTest.findMany, data);
32
- console.log("findMany result adapter", result);
33
- return result;
34
- },
35
- count: async () => {
36
- throw new Error("count not implemented");
37
- },
38
- update: async (data) => {
39
- const result = await t.mutation(api.adapterTest.update, {
40
- ...data,
41
- update: serialize(data.update),
42
- });
43
- return result;
44
- },
45
- updateMany: async (data) => {
46
- const result = await t.mutation(api.adapterTest.updateMany, data);
47
- return result;
48
- },
49
- delete: async (data) => {
50
- await t.mutation(api.adapterTest.delete, data);
51
- },
52
- deleteMany: async (data) => {
53
- const result = await t.mutation(api.adapterTest.deleteMany, data);
54
- return result;
55
- },
56
- };
57
- };
58
- await runAdapterTest({
59
- getAdapter: getAdapter(_t),
60
- disableTests: {
61
- CREATE_MODEL: false,
62
- CREATE_MODEL_SHOULD_ALWAYS_RETURN_AN_ID: false,
63
- FIND_MODEL: false,
64
- FIND_MODEL_WITHOUT_ID: false,
65
- FIND_MODEL_WITH_SELECT: false,
66
- FIND_MODEL_WITH_MODIFIED_FIELD_NAME: false,
67
- UPDATE_MODEL: false,
68
- SHOULD_FIND_MANY: false,
69
- SHOULD_FIND_MANY_WITH_WHERE: false,
70
- SHOULD_FIND_MANY_WITH_OPERATORS: false,
71
- SHOULD_WORK_WITH_REFERENCE_FIELDS: false,
72
- SHOULD_FIND_MANY_WITH_SORT_BY: false,
73
- SHOULD_FIND_MANY_WITH_LIMIT: false,
74
- SHOULD_FIND_MANY_WITH_OFFSET: true, // disabled for now
75
- SHOULD_UPDATE_WITH_MULTIPLE_WHERE: false,
76
- DELETE_MODEL: false,
77
- SHOULD_DELETE_MANY: false,
78
- SHOULD_NOT_THROW_ON_DELETE_RECORD_NOT_FOUND: false,
79
- SHOULD_NOT_THROW_ON_RECORD_NOT_FOUND: false,
80
-
81
- // Disabled for now
82
- SHOULD_FIND_MANY_WITH_CONTAINS_OPERATOR: true,
83
- SHOULD_SEARCH_USERS_WITH_STARTS_WITH: true,
84
- SHOULD_SEARCH_USERS_WITH_ENDS_WITH: true,
85
- SHOULD_PREFER_GENERATE_ID_IF_PROVIDED: true,
86
- },
87
- });
88
-
89
- test("should handle lone range operators", async () => {
90
- const t = convexTest(schema, import.meta.glob("../component/**/*.*s"));
91
- const adapter = await getAdapter(t)();
92
- const user = await adapter.create({
93
- model: "user",
94
- data: {
95
- name: "ab",
96
- email: "a@a.com",
97
- },
98
- });
99
- const res = await adapter.findMany({
100
- model: "user",
101
- where: [
102
- {
103
- field: "name",
104
- operator: "lt",
105
- value: "a",
106
- },
107
- ],
108
- });
109
- expect(res).toEqual([]);
110
- const res2 = await adapter.findMany({
111
- model: "user",
112
- where: [
113
- {
114
- field: "name",
115
- operator: "lte",
116
- value: "a",
117
- },
118
- ],
119
- });
120
- expect(res2).toEqual([]);
121
- const res3 = await adapter.findMany({
122
- model: "user",
123
- where: [
124
- {
125
- field: "name",
126
- operator: "gt",
127
- value: "a",
128
- },
129
- ],
130
- });
131
- expect(res3).toEqual([user]);
132
- const res4 = await adapter.findMany({
133
- model: "user",
134
- where: [
135
- {
136
- field: "name",
137
- operator: "gte",
138
- value: "ab",
139
- },
140
- ],
141
- });
142
- expect(res4).toEqual([user]);
143
- });
144
- });
@@ -1,141 +0,0 @@
1
- import {
2
- convexAdapter,
3
- AuthFunctions,
4
- BetterAuth,
5
- PublicAuthFunctions,
6
- } from "../client";
7
- import { api, internal } from "./_generated/api";
8
- import { GenericCtx, mutation, query } from "./_generated/server";
9
- import {
10
- GenericMutationCtx,
11
- GenericQueryCtx,
12
- RegisteredMutation,
13
- RegisteredQuery,
14
- } from "convex/server";
15
-
16
- // @ts-expect-error - this is a test
17
- const authFunctions: AuthFunctions = internal.adapterTest as any;
18
-
19
- const publicAuthFunctions: PublicAuthFunctions = api.adapterTest as any;
20
-
21
- export const betterAuthComponent = new BetterAuth(api as any, {
22
- authFunctions,
23
- publicAuthFunctions,
24
- verbose: false,
25
- }) as any;
26
-
27
- export const createAdapter = (ctx: GenericCtx) =>
28
- convexAdapter(ctx, betterAuthComponent, {
29
- debugLogs: {
30
- isRunningAdapterTests: true,
31
- },
32
- });
33
-
34
- export const {
35
- createUser,
36
- deleteUser,
37
- updateUser,
38
- createSession,
39
- isAuthenticated,
40
- } = betterAuthComponent.createAuthFunctions({
41
- onCreateUser: async (ctx: GenericCtx, args: any) => {
42
- // noop
43
- // not required for the adapter test
44
- },
45
- });
46
-
47
- export const deserialize = (data: any) => {
48
- const dateStringRegex =
49
- /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
50
- return Object.fromEntries(
51
- Object.entries(data).map(([key, value]) => [
52
- key,
53
- dateStringRegex.test(value as string) ? new Date(value as string) : value,
54
- ])
55
- );
56
- };
57
-
58
- export const serialize = (data: any) => {
59
- if (!data) {
60
- return data;
61
- }
62
- return Object.fromEntries(
63
- Object.entries(data).map(([key, value]) => [
64
- key,
65
- value instanceof Date ? value.toISOString() : value,
66
- ])
67
- );
68
- };
69
-
70
- export const create: RegisteredMutation<"public", any, Promise<any>> = mutation(
71
- async (ctx: GenericMutationCtx<any>, args: any) => {
72
- const adapter = createAdapter(ctx);
73
- const result = await adapter({}).create({
74
- ...args,
75
- data: deserialize(args.data),
76
- });
77
- return serialize(result);
78
- }
79
- );
80
-
81
- export const findOne: RegisteredQuery<"public", any, Promise<any>> = query(
82
- async (ctx: GenericQueryCtx<any>, args: any) => {
83
- const adapter = createAdapter(ctx);
84
- const result = await adapter({}).findOne(args);
85
- return serialize(result);
86
- }
87
- );
88
-
89
- export const findMany: RegisteredQuery<"public", any, Promise<any>> = query(
90
- async (ctx: GenericQueryCtx<any>, args: any) => {
91
- const adapter = createAdapter(ctx);
92
- const result = await adapter({}).findMany(args);
93
- return result.map(serialize);
94
- }
95
- );
96
-
97
- export const count: RegisteredQuery<"public", any, Promise<any>> = query(
98
- async (ctx: GenericQueryCtx<any>, args: any) => {
99
- const adapter = createAdapter(ctx);
100
- return adapter({}).count(args);
101
- }
102
- );
103
-
104
- export const update: RegisteredMutation<"public", any, Promise<any>> = mutation(
105
- async (ctx: GenericMutationCtx<any>, args: any) => {
106
- const adapter = createAdapter(ctx);
107
- const result = await adapter({}).update({
108
- ...args,
109
- update: deserialize(args.update),
110
- });
111
- return serialize(result);
112
- }
113
- );
114
-
115
- export const updateMany: RegisteredMutation<
116
- "public",
117
- any,
118
- Promise<any>
119
- > = mutation(async (ctx: GenericMutationCtx<any>, args: any) => {
120
- const adapter = createAdapter(ctx);
121
- return adapter({}).updateMany(args);
122
- });
123
-
124
- const deleteMutation: RegisteredMutation<
125
- "public",
126
- any,
127
- Promise<any>
128
- > = mutation(async (ctx: GenericMutationCtx<any>, args: any) => {
129
- const adapter = createAdapter(ctx);
130
- await adapter({}).delete(args);
131
- });
132
- export { deleteMutation as delete };
133
-
134
- export const deleteMany: RegisteredMutation<
135
- "public",
136
- any,
137
- Promise<any>
138
- > = mutation(async (ctx: GenericMutationCtx<any>, args: any) => {
139
- const adapter = createAdapter(ctx);
140
- return adapter({}).deleteMany(args);
141
- });
@@ -1,2 +0,0 @@
1
- /// <reference types="vite/client" />
2
- /// <reference types="vite/types/importMeta.d.ts" />
File without changes