@convex-dev/better-auth 0.9.10 → 0.10.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-config.d.ts +43 -0
- package/dist/auth-config.d.ts.map +1 -0
- package/dist/auth-config.js +45 -0
- package/dist/auth-config.js.map +1 -0
- package/dist/auth-options.d.ts +3 -0
- package/dist/auth-options.d.ts.map +1 -0
- package/dist/auth-options.js +41 -0
- package/dist/auth-options.js.map +1 -0
- package/dist/auth.d.ts +1 -3
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +2 -42
- package/dist/auth.js.map +1 -1
- package/dist/client/{adapterUtils.d.ts → adapter-utils.d.ts} +15 -15
- package/dist/client/adapter-utils.d.ts.map +1 -0
- package/dist/client/{adapterUtils.js → adapter-utils.js} +1 -1
- package/dist/client/adapter-utils.js.map +1 -0
- package/dist/client/adapter.d.ts +1 -2
- package/dist/client/adapter.d.ts.map +1 -1
- package/dist/client/adapter.js +4 -4
- package/dist/client/adapter.js.map +1 -1
- package/dist/client/create-api.d.ts +139 -0
- package/dist/client/create-api.d.ts.map +1 -0
- package/dist/client/create-api.js +204 -0
- package/dist/client/create-api.js.map +1 -0
- package/dist/client/create-client.d.ts +183 -0
- package/dist/client/create-client.d.ts.map +1 -0
- package/dist/client/create-client.js +311 -0
- package/dist/client/create-client.js.map +1 -0
- package/dist/client/{createSchema.d.ts → create-schema.d.ts} +1 -1
- package/dist/client/create-schema.d.ts.map +1 -0
- package/dist/client/{createSchema.js → create-schema.js} +11 -5
- package/dist/client/create-schema.js.map +1 -0
- package/dist/client/index.d.ts +4 -279
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -476
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +0 -3
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/adapter.d.ts +19 -21
- package/dist/component/adapter.d.ts.map +1 -1
- package/dist/component/adapter.js +2 -2
- package/dist/component/adapter.js.map +1 -1
- package/dist/component/schema.d.ts +50 -50
- package/dist/nextjs/client.d.ts +4 -0
- package/dist/nextjs/client.d.ts.map +1 -0
- package/dist/nextjs/client.js +37 -0
- package/dist/nextjs/client.js.map +1 -0
- package/dist/nextjs/index.d.ts +19 -7
- package/dist/nextjs/index.d.ts.map +1 -1
- package/dist/nextjs/index.js +90 -36
- package/dist/nextjs/index.js.map +1 -1
- package/dist/plugins/convex/client.d.ts +1 -1
- package/dist/plugins/convex/client.d.ts.map +1 -1
- package/dist/plugins/convex/client.js +0 -1
- package/dist/plugins/convex/client.js.map +1 -1
- package/dist/plugins/convex/index.d.ts +239 -227
- package/dist/plugins/convex/index.d.ts.map +1 -1
- package/dist/plugins/convex/index.js +191 -37
- package/dist/plugins/convex/index.js.map +1 -1
- package/dist/plugins/cross-domain/client.d.ts +3 -3
- package/dist/plugins/cross-domain/client.d.ts.map +1 -1
- package/dist/plugins/cross-domain/index.d.ts +15 -70
- package/dist/plugins/cross-domain/index.d.ts.map +1 -1
- package/dist/plugins/cross-domain/index.js +8 -0
- package/dist/plugins/cross-domain/index.js.map +1 -1
- package/dist/react/index.d.ts +52 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +133 -9
- package/dist/react/index.js.map +1 -1
- package/dist/react-start/index.d.ts +11 -41
- package/dist/react-start/index.d.ts.map +1 -1
- package/dist/react-start/index.js +82 -106
- package/dist/react-start/index.js.map +1 -1
- package/dist/utils/index.d.ts +20 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +54 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +19 -12
- package/src/auth-config.ts +82 -0
- package/src/auth-options.ts +54 -0
- package/src/auth.ts +3 -56
- package/src/client/adapter.ts +5 -5
- package/src/client/create-api.ts +337 -0
- package/src/client/create-client.ts +446 -0
- package/src/client/{createSchema.ts → create-schema.ts} +10 -4
- package/src/client/index.ts +22 -786
- package/src/component/_generated/component.ts +0 -7
- package/src/component/adapter.ts +2 -3
- package/src/nextjs/client.tsx +52 -0
- package/src/nextjs/index.ts +138 -45
- package/src/plugins/convex/client.ts +1 -1
- package/src/plugins/convex/index.ts +337 -51
- package/src/plugins/cross-domain/index.ts +10 -2
- package/src/react/index.tsx +195 -9
- package/src/react-start/index.ts +126 -171
- package/src/test.ts +1 -1
- package/src/utils/index.ts +96 -1
- package/dist/client/adapterUtils.d.ts.map +0 -1
- package/dist/client/adapterUtils.js.map +0 -1
- package/dist/client/createSchema.d.ts.map +0 -1
- package/dist/client/createSchema.js.map +0 -1
- /package/src/client/{adapterUtils.ts → adapter-utils.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const tables: {
|
|
2
2
|
user: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
3
|
-
userId?: string | null | undefined;
|
|
4
3
|
image?: string | null | undefined;
|
|
4
|
+
userId?: string | null | undefined;
|
|
5
5
|
twoFactorEnabled?: boolean | null | undefined;
|
|
6
6
|
isAnonymous?: boolean | null | undefined;
|
|
7
7
|
username?: string | null | undefined;
|
|
@@ -27,7 +27,7 @@ export declare const tables: {
|
|
|
27
27
|
phoneNumber: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
28
28
|
phoneNumberVerified: import("convex/values").VUnion<boolean | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VBoolean<boolean, "required">], "optional", never>;
|
|
29
29
|
userId: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
30
|
-
}, "required", "createdAt" | "
|
|
30
|
+
}, "required", "createdAt" | "updatedAt" | "email" | "emailVerified" | "name" | "image" | "userId" | "twoFactorEnabled" | "isAnonymous" | "username" | "displayUsername" | "phoneNumber" | "phoneNumberVerified">, {
|
|
31
31
|
email_name: ["email", "name", "_creationTime"];
|
|
32
32
|
name: ["name", "_creationTime"];
|
|
33
33
|
userId: ["userId", "_creationTime"];
|
|
@@ -37,11 +37,11 @@ export declare const tables: {
|
|
|
37
37
|
session: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
38
38
|
ipAddress?: string | null | undefined;
|
|
39
39
|
userAgent?: string | null | undefined;
|
|
40
|
-
token: string;
|
|
41
40
|
createdAt: number;
|
|
42
|
-
userId: string;
|
|
43
41
|
updatedAt: number;
|
|
42
|
+
userId: string;
|
|
44
43
|
expiresAt: number;
|
|
44
|
+
token: string;
|
|
45
45
|
}, {
|
|
46
46
|
expiresAt: import("convex/values").VFloat64<number, "required">;
|
|
47
47
|
token: import("convex/values").VString<string, "required">;
|
|
@@ -50,7 +50,7 @@ export declare const tables: {
|
|
|
50
50
|
ipAddress: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
51
51
|
userAgent: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
52
52
|
userId: import("convex/values").VString<string, "required">;
|
|
53
|
-
}, "required", "
|
|
53
|
+
}, "required", "createdAt" | "updatedAt" | "userId" | "expiresAt" | "token" | "ipAddress" | "userAgent">, {
|
|
54
54
|
expiresAt: ["expiresAt", "_creationTime"];
|
|
55
55
|
expiresAt_userId: ["expiresAt", "userId", "_creationTime"];
|
|
56
56
|
token: ["token", "_creationTime"];
|
|
@@ -65,8 +65,8 @@ export declare const tables: {
|
|
|
65
65
|
refreshTokenExpiresAt?: number | null | undefined;
|
|
66
66
|
scope?: string | null | undefined;
|
|
67
67
|
createdAt: number;
|
|
68
|
-
userId: string;
|
|
69
68
|
updatedAt: number;
|
|
69
|
+
userId: string;
|
|
70
70
|
accountId: string;
|
|
71
71
|
providerId: string;
|
|
72
72
|
}, {
|
|
@@ -82,17 +82,17 @@ export declare const tables: {
|
|
|
82
82
|
password: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
83
83
|
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
84
84
|
updatedAt: import("convex/values").VFloat64<number, "required">;
|
|
85
|
-
}, "required", "
|
|
85
|
+
}, "required", "createdAt" | "updatedAt" | "userId" | "password" | "accountId" | "providerId" | "accessToken" | "refreshToken" | "idToken" | "accessTokenExpiresAt" | "refreshTokenExpiresAt" | "scope">, {
|
|
86
86
|
accountId: ["accountId", "_creationTime"];
|
|
87
87
|
accountId_providerId: ["accountId", "providerId", "_creationTime"];
|
|
88
88
|
providerId_userId: ["providerId", "userId", "_creationTime"];
|
|
89
89
|
userId: ["userId", "_creationTime"];
|
|
90
90
|
}, {}, {}>;
|
|
91
91
|
verification: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
92
|
-
value: string;
|
|
93
92
|
createdAt: number;
|
|
94
93
|
updatedAt: number;
|
|
95
94
|
expiresAt: number;
|
|
95
|
+
value: string;
|
|
96
96
|
identifier: string;
|
|
97
97
|
}, {
|
|
98
98
|
identifier: import("convex/values").VString<string, "required">;
|
|
@@ -100,19 +100,19 @@ export declare const tables: {
|
|
|
100
100
|
expiresAt: import("convex/values").VFloat64<number, "required">;
|
|
101
101
|
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
102
102
|
updatedAt: import("convex/values").VFloat64<number, "required">;
|
|
103
|
-
}, "required", "
|
|
103
|
+
}, "required", "createdAt" | "updatedAt" | "expiresAt" | "value" | "identifier">, {
|
|
104
104
|
expiresAt: ["expiresAt", "_creationTime"];
|
|
105
105
|
identifier: ["identifier", "_creationTime"];
|
|
106
106
|
}, {}, {}>;
|
|
107
107
|
twoFactor: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
108
|
-
secret: string;
|
|
109
108
|
userId: string;
|
|
109
|
+
secret: string;
|
|
110
110
|
backupCodes: string;
|
|
111
111
|
}, {
|
|
112
112
|
secret: import("convex/values").VString<string, "required">;
|
|
113
113
|
backupCodes: import("convex/values").VString<string, "required">;
|
|
114
114
|
userId: import("convex/values").VString<string, "required">;
|
|
115
|
-
}, "required", "
|
|
115
|
+
}, "required", "userId" | "secret" | "backupCodes">, {
|
|
116
116
|
userId: ["userId", "_creationTime"];
|
|
117
117
|
}, {}, {}>;
|
|
118
118
|
passkey: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
@@ -120,8 +120,8 @@ export declare const tables: {
|
|
|
120
120
|
name?: string | null | undefined;
|
|
121
121
|
transports?: string | null | undefined;
|
|
122
122
|
aaguid?: string | null | undefined;
|
|
123
|
-
publicKey: string;
|
|
124
123
|
userId: string;
|
|
124
|
+
publicKey: string;
|
|
125
125
|
credentialID: string;
|
|
126
126
|
counter: number;
|
|
127
127
|
deviceType: string;
|
|
@@ -137,17 +137,17 @@ export declare const tables: {
|
|
|
137
137
|
transports: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
138
138
|
createdAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
139
139
|
aaguid: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
140
|
-
}, "required", "
|
|
140
|
+
}, "required", "createdAt" | "name" | "userId" | "publicKey" | "credentialID" | "counter" | "deviceType" | "backedUp" | "transports" | "aaguid">, {
|
|
141
141
|
credentialID: ["credentialID", "_creationTime"];
|
|
142
142
|
userId: ["userId", "_creationTime"];
|
|
143
143
|
}, {}, {}>;
|
|
144
144
|
oauthApplication: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
145
|
-
|
|
145
|
+
type?: string | null | undefined;
|
|
146
146
|
createdAt?: number | null | undefined;
|
|
147
|
-
userId?: string | null | undefined;
|
|
148
147
|
updatedAt?: number | null | undefined;
|
|
149
148
|
name?: string | null | undefined;
|
|
150
|
-
|
|
149
|
+
userId?: string | null | undefined;
|
|
150
|
+
metadata?: string | null | undefined;
|
|
151
151
|
icon?: string | null | undefined;
|
|
152
152
|
clientId?: string | null | undefined;
|
|
153
153
|
clientSecret?: string | null | undefined;
|
|
@@ -165,14 +165,14 @@ export declare const tables: {
|
|
|
165
165
|
userId: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
166
166
|
createdAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
167
167
|
updatedAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
168
|
-
}, "required", "
|
|
168
|
+
}, "required", "type" | "createdAt" | "updatedAt" | "name" | "userId" | "metadata" | "icon" | "clientId" | "clientSecret" | "redirectURLs" | "disabled">, {
|
|
169
169
|
clientId: ["clientId", "_creationTime"];
|
|
170
170
|
userId: ["userId", "_creationTime"];
|
|
171
171
|
}, {}, {}>;
|
|
172
172
|
oauthAccessToken: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
173
173
|
createdAt?: number | null | undefined;
|
|
174
|
-
userId?: string | null | undefined;
|
|
175
174
|
updatedAt?: number | null | undefined;
|
|
175
|
+
userId?: string | null | undefined;
|
|
176
176
|
accessToken?: string | null | undefined;
|
|
177
177
|
refreshToken?: string | null | undefined;
|
|
178
178
|
accessTokenExpiresAt?: number | null | undefined;
|
|
@@ -189,7 +189,7 @@ export declare const tables: {
|
|
|
189
189
|
scopes: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
190
190
|
createdAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
191
191
|
updatedAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
192
|
-
}, "required", "createdAt" | "
|
|
192
|
+
}, "required", "createdAt" | "updatedAt" | "userId" | "accessToken" | "refreshToken" | "accessTokenExpiresAt" | "refreshTokenExpiresAt" | "clientId" | "scopes">, {
|
|
193
193
|
accessToken: ["accessToken", "_creationTime"];
|
|
194
194
|
refreshToken: ["refreshToken", "_creationTime"];
|
|
195
195
|
clientId: ["clientId", "_creationTime"];
|
|
@@ -197,8 +197,8 @@ export declare const tables: {
|
|
|
197
197
|
}, {}, {}>;
|
|
198
198
|
oauthConsent: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
199
199
|
createdAt?: number | null | undefined;
|
|
200
|
-
userId?: string | null | undefined;
|
|
201
200
|
updatedAt?: number | null | undefined;
|
|
201
|
+
userId?: string | null | undefined;
|
|
202
202
|
clientId?: string | null | undefined;
|
|
203
203
|
scopes?: string | null | undefined;
|
|
204
204
|
consentGiven?: boolean | null | undefined;
|
|
@@ -209,35 +209,35 @@ export declare const tables: {
|
|
|
209
209
|
createdAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
210
210
|
updatedAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
211
211
|
consentGiven: import("convex/values").VUnion<boolean | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VBoolean<boolean, "required">], "optional", never>;
|
|
212
|
-
}, "required", "createdAt" | "
|
|
212
|
+
}, "required", "createdAt" | "updatedAt" | "userId" | "clientId" | "scopes" | "consentGiven">, {
|
|
213
213
|
clientId_userId: ["clientId", "userId", "_creationTime"];
|
|
214
214
|
userId: ["userId", "_creationTime"];
|
|
215
215
|
}, {}, {}>;
|
|
216
216
|
jwks: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
217
|
+
createdAt: number;
|
|
217
218
|
publicKey: string;
|
|
218
219
|
privateKey: string;
|
|
219
|
-
createdAt: number;
|
|
220
220
|
}, {
|
|
221
221
|
publicKey: import("convex/values").VString<string, "required">;
|
|
222
222
|
privateKey: import("convex/values").VString<string, "required">;
|
|
223
223
|
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
224
|
-
}, "required", "
|
|
224
|
+
}, "required", "createdAt" | "publicKey" | "privateKey">, {}, {}, {}>;
|
|
225
225
|
rateLimit: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
226
|
-
count?: number | null | undefined;
|
|
227
226
|
key?: string | null | undefined;
|
|
227
|
+
count?: number | null | undefined;
|
|
228
228
|
lastRequest?: number | null | undefined;
|
|
229
229
|
}, {
|
|
230
230
|
key: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
231
231
|
count: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
232
232
|
lastRequest: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
233
|
-
}, "required", "
|
|
233
|
+
}, "required", "key" | "count" | "lastRequest">, {
|
|
234
234
|
key: ["key", "_creationTime"];
|
|
235
235
|
}, {}, {}>;
|
|
236
236
|
};
|
|
237
237
|
declare const schema: import("convex/server").SchemaDefinition<{
|
|
238
238
|
user: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
239
|
-
userId?: string | null | undefined;
|
|
240
239
|
image?: string | null | undefined;
|
|
240
|
+
userId?: string | null | undefined;
|
|
241
241
|
twoFactorEnabled?: boolean | null | undefined;
|
|
242
242
|
isAnonymous?: boolean | null | undefined;
|
|
243
243
|
username?: string | null | undefined;
|
|
@@ -263,7 +263,7 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
263
263
|
phoneNumber: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
264
264
|
phoneNumberVerified: import("convex/values").VUnion<boolean | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VBoolean<boolean, "required">], "optional", never>;
|
|
265
265
|
userId: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
266
|
-
}, "required", "createdAt" | "
|
|
266
|
+
}, "required", "createdAt" | "updatedAt" | "email" | "emailVerified" | "name" | "image" | "userId" | "twoFactorEnabled" | "isAnonymous" | "username" | "displayUsername" | "phoneNumber" | "phoneNumberVerified">, {
|
|
267
267
|
email_name: ["email", "name", "_creationTime"];
|
|
268
268
|
name: ["name", "_creationTime"];
|
|
269
269
|
userId: ["userId", "_creationTime"];
|
|
@@ -273,11 +273,11 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
273
273
|
session: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
274
274
|
ipAddress?: string | null | undefined;
|
|
275
275
|
userAgent?: string | null | undefined;
|
|
276
|
-
token: string;
|
|
277
276
|
createdAt: number;
|
|
278
|
-
userId: string;
|
|
279
277
|
updatedAt: number;
|
|
278
|
+
userId: string;
|
|
280
279
|
expiresAt: number;
|
|
280
|
+
token: string;
|
|
281
281
|
}, {
|
|
282
282
|
expiresAt: import("convex/values").VFloat64<number, "required">;
|
|
283
283
|
token: import("convex/values").VString<string, "required">;
|
|
@@ -286,7 +286,7 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
286
286
|
ipAddress: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
287
287
|
userAgent: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
288
288
|
userId: import("convex/values").VString<string, "required">;
|
|
289
|
-
}, "required", "
|
|
289
|
+
}, "required", "createdAt" | "updatedAt" | "userId" | "expiresAt" | "token" | "ipAddress" | "userAgent">, {
|
|
290
290
|
expiresAt: ["expiresAt", "_creationTime"];
|
|
291
291
|
expiresAt_userId: ["expiresAt", "userId", "_creationTime"];
|
|
292
292
|
token: ["token", "_creationTime"];
|
|
@@ -301,8 +301,8 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
301
301
|
refreshTokenExpiresAt?: number | null | undefined;
|
|
302
302
|
scope?: string | null | undefined;
|
|
303
303
|
createdAt: number;
|
|
304
|
-
userId: string;
|
|
305
304
|
updatedAt: number;
|
|
305
|
+
userId: string;
|
|
306
306
|
accountId: string;
|
|
307
307
|
providerId: string;
|
|
308
308
|
}, {
|
|
@@ -318,17 +318,17 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
318
318
|
password: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
319
319
|
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
320
320
|
updatedAt: import("convex/values").VFloat64<number, "required">;
|
|
321
|
-
}, "required", "
|
|
321
|
+
}, "required", "createdAt" | "updatedAt" | "userId" | "password" | "accountId" | "providerId" | "accessToken" | "refreshToken" | "idToken" | "accessTokenExpiresAt" | "refreshTokenExpiresAt" | "scope">, {
|
|
322
322
|
accountId: ["accountId", "_creationTime"];
|
|
323
323
|
accountId_providerId: ["accountId", "providerId", "_creationTime"];
|
|
324
324
|
providerId_userId: ["providerId", "userId", "_creationTime"];
|
|
325
325
|
userId: ["userId", "_creationTime"];
|
|
326
326
|
}, {}, {}>;
|
|
327
327
|
verification: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
328
|
-
value: string;
|
|
329
328
|
createdAt: number;
|
|
330
329
|
updatedAt: number;
|
|
331
330
|
expiresAt: number;
|
|
331
|
+
value: string;
|
|
332
332
|
identifier: string;
|
|
333
333
|
}, {
|
|
334
334
|
identifier: import("convex/values").VString<string, "required">;
|
|
@@ -336,19 +336,19 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
336
336
|
expiresAt: import("convex/values").VFloat64<number, "required">;
|
|
337
337
|
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
338
338
|
updatedAt: import("convex/values").VFloat64<number, "required">;
|
|
339
|
-
}, "required", "
|
|
339
|
+
}, "required", "createdAt" | "updatedAt" | "expiresAt" | "value" | "identifier">, {
|
|
340
340
|
expiresAt: ["expiresAt", "_creationTime"];
|
|
341
341
|
identifier: ["identifier", "_creationTime"];
|
|
342
342
|
}, {}, {}>;
|
|
343
343
|
twoFactor: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
344
|
-
secret: string;
|
|
345
344
|
userId: string;
|
|
345
|
+
secret: string;
|
|
346
346
|
backupCodes: string;
|
|
347
347
|
}, {
|
|
348
348
|
secret: import("convex/values").VString<string, "required">;
|
|
349
349
|
backupCodes: import("convex/values").VString<string, "required">;
|
|
350
350
|
userId: import("convex/values").VString<string, "required">;
|
|
351
|
-
}, "required", "
|
|
351
|
+
}, "required", "userId" | "secret" | "backupCodes">, {
|
|
352
352
|
userId: ["userId", "_creationTime"];
|
|
353
353
|
}, {}, {}>;
|
|
354
354
|
passkey: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
@@ -356,8 +356,8 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
356
356
|
name?: string | null | undefined;
|
|
357
357
|
transports?: string | null | undefined;
|
|
358
358
|
aaguid?: string | null | undefined;
|
|
359
|
-
publicKey: string;
|
|
360
359
|
userId: string;
|
|
360
|
+
publicKey: string;
|
|
361
361
|
credentialID: string;
|
|
362
362
|
counter: number;
|
|
363
363
|
deviceType: string;
|
|
@@ -373,17 +373,17 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
373
373
|
transports: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
374
374
|
createdAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
375
375
|
aaguid: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
376
|
-
}, "required", "
|
|
376
|
+
}, "required", "createdAt" | "name" | "userId" | "publicKey" | "credentialID" | "counter" | "deviceType" | "backedUp" | "transports" | "aaguid">, {
|
|
377
377
|
credentialID: ["credentialID", "_creationTime"];
|
|
378
378
|
userId: ["userId", "_creationTime"];
|
|
379
379
|
}, {}, {}>;
|
|
380
380
|
oauthApplication: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
381
|
-
|
|
381
|
+
type?: string | null | undefined;
|
|
382
382
|
createdAt?: number | null | undefined;
|
|
383
|
-
userId?: string | null | undefined;
|
|
384
383
|
updatedAt?: number | null | undefined;
|
|
385
384
|
name?: string | null | undefined;
|
|
386
|
-
|
|
385
|
+
userId?: string | null | undefined;
|
|
386
|
+
metadata?: string | null | undefined;
|
|
387
387
|
icon?: string | null | undefined;
|
|
388
388
|
clientId?: string | null | undefined;
|
|
389
389
|
clientSecret?: string | null | undefined;
|
|
@@ -401,14 +401,14 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
401
401
|
userId: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
402
402
|
createdAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
403
403
|
updatedAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
404
|
-
}, "required", "
|
|
404
|
+
}, "required", "type" | "createdAt" | "updatedAt" | "name" | "userId" | "metadata" | "icon" | "clientId" | "clientSecret" | "redirectURLs" | "disabled">, {
|
|
405
405
|
clientId: ["clientId", "_creationTime"];
|
|
406
406
|
userId: ["userId", "_creationTime"];
|
|
407
407
|
}, {}, {}>;
|
|
408
408
|
oauthAccessToken: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
409
409
|
createdAt?: number | null | undefined;
|
|
410
|
-
userId?: string | null | undefined;
|
|
411
410
|
updatedAt?: number | null | undefined;
|
|
411
|
+
userId?: string | null | undefined;
|
|
412
412
|
accessToken?: string | null | undefined;
|
|
413
413
|
refreshToken?: string | null | undefined;
|
|
414
414
|
accessTokenExpiresAt?: number | null | undefined;
|
|
@@ -425,7 +425,7 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
425
425
|
scopes: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
426
426
|
createdAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
427
427
|
updatedAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
428
|
-
}, "required", "createdAt" | "
|
|
428
|
+
}, "required", "createdAt" | "updatedAt" | "userId" | "accessToken" | "refreshToken" | "accessTokenExpiresAt" | "refreshTokenExpiresAt" | "clientId" | "scopes">, {
|
|
429
429
|
accessToken: ["accessToken", "_creationTime"];
|
|
430
430
|
refreshToken: ["refreshToken", "_creationTime"];
|
|
431
431
|
clientId: ["clientId", "_creationTime"];
|
|
@@ -433,8 +433,8 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
433
433
|
}, {}, {}>;
|
|
434
434
|
oauthConsent: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
435
435
|
createdAt?: number | null | undefined;
|
|
436
|
-
userId?: string | null | undefined;
|
|
437
436
|
updatedAt?: number | null | undefined;
|
|
437
|
+
userId?: string | null | undefined;
|
|
438
438
|
clientId?: string | null | undefined;
|
|
439
439
|
scopes?: string | null | undefined;
|
|
440
440
|
consentGiven?: boolean | null | undefined;
|
|
@@ -445,28 +445,28 @@ declare const schema: import("convex/server").SchemaDefinition<{
|
|
|
445
445
|
createdAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
446
446
|
updatedAt: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
447
447
|
consentGiven: import("convex/values").VUnion<boolean | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VBoolean<boolean, "required">], "optional", never>;
|
|
448
|
-
}, "required", "createdAt" | "
|
|
448
|
+
}, "required", "createdAt" | "updatedAt" | "userId" | "clientId" | "scopes" | "consentGiven">, {
|
|
449
449
|
clientId_userId: ["clientId", "userId", "_creationTime"];
|
|
450
450
|
userId: ["userId", "_creationTime"];
|
|
451
451
|
}, {}, {}>;
|
|
452
452
|
jwks: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
453
|
+
createdAt: number;
|
|
453
454
|
publicKey: string;
|
|
454
455
|
privateKey: string;
|
|
455
|
-
createdAt: number;
|
|
456
456
|
}, {
|
|
457
457
|
publicKey: import("convex/values").VString<string, "required">;
|
|
458
458
|
privateKey: import("convex/values").VString<string, "required">;
|
|
459
459
|
createdAt: import("convex/values").VFloat64<number, "required">;
|
|
460
|
-
}, "required", "
|
|
460
|
+
}, "required", "createdAt" | "publicKey" | "privateKey">, {}, {}, {}>;
|
|
461
461
|
rateLimit: import("convex/server").TableDefinition<import("convex/values").VObject<{
|
|
462
|
-
count?: number | null | undefined;
|
|
463
462
|
key?: string | null | undefined;
|
|
463
|
+
count?: number | null | undefined;
|
|
464
464
|
lastRequest?: number | null | undefined;
|
|
465
465
|
}, {
|
|
466
466
|
key: import("convex/values").VUnion<string | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VString<string, "required">], "optional", never>;
|
|
467
467
|
count: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
468
468
|
lastRequest: import("convex/values").VUnion<number | null | undefined, [import("convex/values").VNull<null, "required">, import("convex/values").VFloat64<number, "required">], "optional", never>;
|
|
469
|
-
}, "required", "
|
|
469
|
+
}, "required", "key" | "count" | "lastRequest">, {
|
|
470
470
|
key: ["key", "_creationTime"];
|
|
471
471
|
}, {}, {}>;
|
|
472
472
|
}, true>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type Preloaded } from "convex/react";
|
|
2
|
+
import { type FunctionReference } from "convex/server";
|
|
3
|
+
export declare const usePreloadedAuthQuery: <Query extends FunctionReference<"query">>(preloadedQuery: Preloaded<Query>) => Query["_returnType"] | null;
|
|
4
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/nextjs/client.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAA2B,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,iBAAiB,EAAyB,MAAM,eAAe,CAAC;AAsC9E,eAAO,MAAM,qBAAqB,GAAI,KAAK,SAAS,iBAAiB,CAAC,OAAO,CAAC,EAC5E,gBAAgB,SAAS,CAAC,KAAK,CAAC,KAC/B,KAAK,CAAC,aAAa,CAAC,GAAG,IAUzB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useConvexAuth, useQuery } from "convex/react";
|
|
2
|
+
import { makeFunctionReference } from "convex/server";
|
|
3
|
+
import { jsonToConvex } from "convex/values";
|
|
4
|
+
import { useEffect, useMemo, useState } from "react";
|
|
5
|
+
const useConvexPreloadedQuery = (preloadedQuery, { requireAuth = true } = {}) => {
|
|
6
|
+
const { isLoading, isAuthenticated } = useConvexAuth();
|
|
7
|
+
const [preloadExpired, setPreloadExpired] = useState(false);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (requireAuth && !isLoading && !isAuthenticated) {
|
|
10
|
+
setPreloadExpired(true);
|
|
11
|
+
}
|
|
12
|
+
}, [requireAuth, isLoading, isAuthenticated]);
|
|
13
|
+
const args = useMemo(() => jsonToConvex(preloadedQuery._argsJSON), [preloadedQuery._argsJSON]);
|
|
14
|
+
const preloadedResult = useMemo(() => jsonToConvex(preloadedQuery._valueJSON), [preloadedQuery._valueJSON]);
|
|
15
|
+
const result = useQuery(makeFunctionReference(preloadedQuery._name), requireAuth && !isAuthenticated ? "skip" : args);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (result !== undefined) {
|
|
18
|
+
setPreloadExpired(true);
|
|
19
|
+
}
|
|
20
|
+
}, [result]);
|
|
21
|
+
if (requireAuth) {
|
|
22
|
+
return preloadExpired ? result : preloadedResult;
|
|
23
|
+
}
|
|
24
|
+
return result === undefined ? preloadedResult : result;
|
|
25
|
+
};
|
|
26
|
+
export const usePreloadedAuthQuery = (preloadedQuery) => {
|
|
27
|
+
const { isLoading } = useConvexAuth();
|
|
28
|
+
const latestData = useConvexPreloadedQuery(preloadedQuery);
|
|
29
|
+
const [data, setData] = useState(latestData);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!isLoading) {
|
|
32
|
+
setData(latestData);
|
|
33
|
+
}
|
|
34
|
+
}, [latestData, isLoading]);
|
|
35
|
+
return data;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/nextjs/client.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAA0B,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,uBAAuB,GAAG,CAC9B,cAAgC,EAChC,EAAE,WAAW,GAAG,IAAI,KAAgC,EAAE,EAChC,EAAE;IACxB,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,aAAa,EAAE,CAAC;IACvD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,EAC5C,CAAC,cAAc,CAAC,SAAS,CAAC,CACT,CAAC;IACpB,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,EAC7C,CAAC,cAAc,CAAC,UAAU,CAAC,CAC5B,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ,CACrB,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAU,EACpD,WAAW,IAAI,CAAC,eAAe,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAC,IAAI,CAC3D,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,cAAgC,EACH,EAAE;IAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
package/dist/nextjs/index.d.ts
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import type { Preloaded } from "convex/react";
|
|
2
|
+
import { type FunctionReference, type FunctionReturnType } from "convex/server";
|
|
3
|
+
import { type GetTokenOptions } from "../utils/index.js";
|
|
4
|
+
import type { EmptyObject } from "convex-helpers";
|
|
5
|
+
type OptionalArgs<FuncRef extends FunctionReference<any, any>> = FuncRef["_args"] extends EmptyObject ? [args?: EmptyObject] : [args: FuncRef["_args"]];
|
|
6
|
+
export declare const convexBetterAuthNextJs: (opts: GetTokenOptions & {
|
|
7
|
+
convexUrl: string;
|
|
8
|
+
convexSiteUrl: string;
|
|
6
9
|
}) => {
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
getToken: () => Promise<string | undefined>;
|
|
11
|
+
handler: {
|
|
12
|
+
GET: (request: Request) => Promise<Response>;
|
|
13
|
+
POST: (request: Request) => Promise<Response>;
|
|
14
|
+
};
|
|
15
|
+
isAuthenticated: () => Promise<boolean>;
|
|
16
|
+
preloadAuthQuery: <Query extends FunctionReference<"query">>(query: Query, ...args: OptionalArgs<Query>) => Promise<Preloaded<Query>>;
|
|
17
|
+
fetchAuthQuery: <Query extends FunctionReference<"query">>(query: Query, ...args: OptionalArgs<Query>) => Promise<FunctionReturnType<Query>>;
|
|
18
|
+
fetchAuthMutation: <Mutation extends FunctionReference<"mutation">>(mutation: Mutation, ...args: OptionalArgs<Mutation>) => Promise<FunctionReturnType<Mutation>>;
|
|
19
|
+
fetchAuthAction: <Action extends FunctionReference<"action">>(action: Action, ...args: OptionalArgs<Action>) => Promise<FunctionReturnType<Action>>;
|
|
9
20
|
};
|
|
21
|
+
export {};
|
|
10
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nextjs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nextjs/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwClD,KAAK,YAAY,CAAC,OAAO,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,IAC3D,OAAO,CAAC,OAAO,CAAC,SAAS,WAAW,GAChC,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,GACpB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAS/B,eAAO,MAAM,sBAAsB,GACjC,MAAM,eAAe,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;;;uBAjBrD,OAAO;wBACN,OAAO;;;uBA2DI,KAAK,SAAS,iBAAiB,CAAC,OAAO,CAAC,SACxD,KAAK,WACH,YAAY,CAAC,KAAK,CAAC,KAC3B,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;qBAML,KAAK,SAAS,iBAAiB,CAAC,OAAO,CAAC,SACtD,KAAK,WACH,YAAY,CAAC,KAAK,CAAC,KAC3B,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBAMX,QAAQ,SAAS,iBAAiB,CAAC,UAAU,CAAC,YAC5D,QAAQ,WACT,YAAY,CAAC,QAAQ,CAAC,KAC9B,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;sBAMhB,MAAM,SAAS,iBAAiB,CAAC,QAAQ,CAAC,UACxD,MAAM,WACL,YAAY,CAAC,MAAM,CAAC,KAC5B,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;CAOzC,CAAC"}
|