@samebase/identity-broker 0.0.0-stage → 0.1.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 (82) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +4 -0
  3. package/README.md +90 -2
  4. package/dist/cli/index.d.ts +2 -0
  5. package/dist/cli/index.js +26 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/client/connectors/email.d.ts +6 -0
  8. package/dist/client/connectors/email.js +5 -0
  9. package/dist/client/connectors/email.js.map +1 -0
  10. package/dist/client/connectors/github.d.ts +7 -0
  11. package/dist/client/connectors/github.js +57 -0
  12. package/dist/client/connectors/github.js.map +1 -0
  13. package/dist/client/connectors/google.d.ts +7 -0
  14. package/dist/client/connectors/google.js +13 -0
  15. package/dist/client/connectors/google.js.map +1 -0
  16. package/dist/client/connectors/types.d.ts +47 -0
  17. package/dist/client/connectors/types.js +2 -0
  18. package/dist/client/connectors/types.js.map +1 -0
  19. package/dist/client/connectors/upstream.d.ts +25 -0
  20. package/dist/client/connectors/upstream.js +86 -0
  21. package/dist/client/connectors/upstream.js.map +1 -0
  22. package/dist/client/html.d.ts +30 -0
  23. package/dist/client/html.js +84 -0
  24. package/dist/client/html.js.map +1 -0
  25. package/dist/client/index.d.ts +78 -0
  26. package/dist/client/index.js +721 -0
  27. package/dist/client/index.js.map +1 -0
  28. package/dist/client/jwt.d.ts +31 -0
  29. package/dist/client/jwt.js +55 -0
  30. package/dist/client/jwt.js.map +1 -0
  31. package/dist/client/keys.d.ts +44 -0
  32. package/dist/client/keys.js +130 -0
  33. package/dist/client/keys.js.map +1 -0
  34. package/dist/client/protocol.d.ts +75 -0
  35. package/dist/client/protocol.js +259 -0
  36. package/dist/client/protocol.js.map +1 -0
  37. package/dist/client/responses.d.ts +24 -0
  38. package/dist/client/responses.js +57 -0
  39. package/dist/client/responses.js.map +1 -0
  40. package/dist/client/subject.d.ts +15 -0
  41. package/dist/client/subject.js +32 -0
  42. package/dist/client/subject.js.map +1 -0
  43. package/dist/component/_generated/api.d.ts +45 -0
  44. package/dist/component/_generated/api.js +31 -0
  45. package/dist/component/_generated/api.js.map +1 -0
  46. package/dist/component/_generated/component.d.ts +375 -0
  47. package/dist/component/_generated/component.js +11 -0
  48. package/dist/component/_generated/component.js.map +1 -0
  49. package/dist/component/_generated/dataModel.d.ts +45 -0
  50. package/dist/component/_generated/dataModel.js +11 -0
  51. package/dist/component/_generated/dataModel.js.map +1 -0
  52. package/dist/component/_generated/server.d.ts +132 -0
  53. package/dist/component/_generated/server.js +80 -0
  54. package/dist/component/_generated/server.js.map +1 -0
  55. package/dist/component/apps.d.ts +36 -0
  56. package/dist/component/apps.js +124 -0
  57. package/dist/component/apps.js.map +1 -0
  58. package/dist/component/authRequests.d.ts +254 -0
  59. package/dist/component/authRequests.js +392 -0
  60. package/dist/component/authRequests.js.map +1 -0
  61. package/dist/component/clients.d.ts +43 -0
  62. package/dist/component/clients.js +95 -0
  63. package/dist/component/clients.js.map +1 -0
  64. package/dist/component/convex.config.d.ts +2 -0
  65. package/dist/component/convex.config.js +3 -0
  66. package/dist/component/convex.config.js.map +1 -0
  67. package/dist/component/crypto.d.ts +2 -0
  68. package/dist/component/crypto.js +9 -0
  69. package/dist/component/crypto.js.map +1 -0
  70. package/dist/component/lifecycle.d.ts +15 -0
  71. package/dist/component/lifecycle.js +59 -0
  72. package/dist/component/lifecycle.js.map +1 -0
  73. package/dist/component/registration.d.ts +17 -0
  74. package/dist/component/registration.js +57 -0
  75. package/dist/component/registration.js.map +1 -0
  76. package/dist/component/schema.d.ts +650 -0
  77. package/dist/component/schema.js +122 -0
  78. package/dist/component/schema.js.map +1 -0
  79. package/dist/component/signIns.d.ts +8 -0
  80. package/dist/component/signIns.js +26 -0
  81. package/dist/component/signIns.js.map +1 -0
  82. package/package.json +51 -3
@@ -0,0 +1,650 @@
1
+ /** How a client authenticates at the token endpoint. Public clients are not supported yet. */
2
+ export declare const vTokenEndpointAuthMethod: import("convex/values").VUnion<"client_secret_basic" | "client_secret_post", [import("convex/values").VLiteral<"client_secret_post", "required">, import("convex/values").VLiteral<"client_secret_basic", "required">], "required", never>;
3
+ /** The deployment a client stands for. Preview clients are pruned; the others are deleted by hand. */
4
+ export declare const vDeploymentType: import("convex/values").VUnion<"development" | "preview" | "production", [import("convex/values").VLiteral<"production", "required">, import("convex/values").VLiteral<"development", "required">, import("convex/values").VLiteral<"preview", "required">], "required", never>;
5
+ /**
6
+ * What a connector attested about the user. `upstreamId` is the connector's own stable id for the
7
+ * account (the GitHub user id, the OIDC `sub`, the canonical email address). The pairwise subject
8
+ * is derived from it on the host, where the salt lives.
9
+ */
10
+ export declare const vUpstreamIdentity: import("convex/values").VObject<{
11
+ connector: string;
12
+ email?: string;
13
+ emailVerified?: boolean;
14
+ name?: string;
15
+ picture?: string;
16
+ upstreamId: string;
17
+ }, {
18
+ connector: import("convex/values").VString<string, "required">;
19
+ upstreamId: import("convex/values").VString<string, "required">;
20
+ email: import("convex/values").VString<string | undefined, "optional">;
21
+ emailVerified: import("convex/values").VBoolean<boolean | undefined, "optional">;
22
+ name: import("convex/values").VString<string | undefined, "optional">;
23
+ picture: import("convex/values").VString<string | undefined, "optional">;
24
+ }, "required", "connector" | "email" | "emailVerified" | "name" | "picture" | "upstreamId">;
25
+ export declare const vAuthRequest: import("convex/values").VUnion<{
26
+ appId: string;
27
+ clientId: string;
28
+ codeChallenge: string;
29
+ createdAt: number;
30
+ expiresAt: number;
31
+ freshLogin: boolean;
32
+ nonce?: string;
33
+ redirectUri: string;
34
+ requestId: string;
35
+ scope: string;
36
+ state?: string;
37
+ status: "pending";
38
+ } | {
39
+ appId: string;
40
+ clientId: string;
41
+ codeChallenge: string;
42
+ connector: string;
43
+ createdAt: number;
44
+ expiresAt: number;
45
+ freshLogin: boolean;
46
+ nonce?: string;
47
+ redirectUri: string;
48
+ requestId: string;
49
+ scope: string;
50
+ state?: string;
51
+ status: "upstream";
52
+ upstreamCodeVerifier: string;
53
+ upstreamNonce?: string;
54
+ upstreamStateHash: string;
55
+ } | {
56
+ appId: string;
57
+ clientId: string;
58
+ codeChallenge: string;
59
+ connector: string;
60
+ createdAt: number;
61
+ expiresAt: number;
62
+ freshLogin: boolean;
63
+ nonce?: string;
64
+ redirectUri: string;
65
+ requestId: string;
66
+ scope: string;
67
+ state?: string;
68
+ status: "claimed";
69
+ } | {
70
+ appId: string;
71
+ clientId: string;
72
+ codeChallenge: string;
73
+ connector: string;
74
+ createdAt: number;
75
+ email: string;
76
+ emailAttempts: number;
77
+ emailCodeExpiresAt: number;
78
+ emailCodeHash: string;
79
+ expiresAt: number;
80
+ freshLogin: boolean;
81
+ nonce?: string;
82
+ redirectUri: string;
83
+ requestId: string;
84
+ scope: string;
85
+ state?: string;
86
+ status: "emailSent";
87
+ } | {
88
+ appId: string;
89
+ authTime: number;
90
+ clientId: string;
91
+ codeChallenge: string;
92
+ createdAt: number;
93
+ expiresAt: number;
94
+ freshLogin: boolean;
95
+ identity: {
96
+ connector: string;
97
+ email?: string;
98
+ emailVerified?: boolean;
99
+ name?: string;
100
+ picture?: string;
101
+ upstreamId: string;
102
+ };
103
+ nonce?: string;
104
+ redirectUri: string;
105
+ requestId: string;
106
+ scope: string;
107
+ state?: string;
108
+ status: "completed";
109
+ }, [import("convex/values").VObject<{
110
+ appId: string;
111
+ clientId: string;
112
+ codeChallenge: string;
113
+ createdAt: number;
114
+ expiresAt: number;
115
+ freshLogin: boolean;
116
+ nonce?: string;
117
+ redirectUri: string;
118
+ requestId: string;
119
+ scope: string;
120
+ state?: string;
121
+ status: "pending";
122
+ }, {
123
+ requestId: import("convex/values").VString<string, "required">;
124
+ appId: import("convex/values").VString<string, "required">;
125
+ clientId: import("convex/values").VString<string, "required">;
126
+ redirectUri: import("convex/values").VString<string, "required">;
127
+ scope: import("convex/values").VString<string, "required">;
128
+ state: import("convex/values").VString<string | undefined, "optional">;
129
+ nonce: import("convex/values").VString<string | undefined, "optional">;
130
+ codeChallenge: import("convex/values").VString<string, "required">;
131
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
132
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
133
+ createdAt: import("convex/values").VFloat64<number, "required">;
134
+ expiresAt: import("convex/values").VFloat64<number, "required">;
135
+ status: import("convex/values").VLiteral<"pending", "required">;
136
+ }, "required", "appId" | "clientId" | "codeChallenge" | "createdAt" | "expiresAt" | "freshLogin" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status">, import("convex/values").VObject<{
137
+ appId: string;
138
+ clientId: string;
139
+ codeChallenge: string;
140
+ connector: string;
141
+ createdAt: number;
142
+ expiresAt: number;
143
+ freshLogin: boolean;
144
+ nonce?: string;
145
+ redirectUri: string;
146
+ requestId: string;
147
+ scope: string;
148
+ state?: string;
149
+ status: "upstream";
150
+ upstreamCodeVerifier: string;
151
+ upstreamNonce?: string;
152
+ upstreamStateHash: string;
153
+ }, {
154
+ requestId: import("convex/values").VString<string, "required">;
155
+ appId: import("convex/values").VString<string, "required">;
156
+ clientId: import("convex/values").VString<string, "required">;
157
+ redirectUri: import("convex/values").VString<string, "required">;
158
+ scope: import("convex/values").VString<string, "required">;
159
+ state: import("convex/values").VString<string | undefined, "optional">;
160
+ nonce: import("convex/values").VString<string | undefined, "optional">;
161
+ codeChallenge: import("convex/values").VString<string, "required">;
162
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
163
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
164
+ createdAt: import("convex/values").VFloat64<number, "required">;
165
+ expiresAt: import("convex/values").VFloat64<number, "required">;
166
+ status: import("convex/values").VLiteral<"upstream", "required">;
167
+ connector: import("convex/values").VString<string, "required">;
168
+ upstreamStateHash: import("convex/values").VString<string, "required">;
169
+ upstreamCodeVerifier: import("convex/values").VString<string, "required">;
170
+ upstreamNonce: import("convex/values").VString<string | undefined, "optional">;
171
+ }, "required", "appId" | "clientId" | "codeChallenge" | "connector" | "createdAt" | "expiresAt" | "freshLogin" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status" | "upstreamCodeVerifier" | "upstreamNonce" | "upstreamStateHash">, import("convex/values").VObject<{
172
+ appId: string;
173
+ clientId: string;
174
+ codeChallenge: string;
175
+ connector: string;
176
+ createdAt: number;
177
+ expiresAt: number;
178
+ freshLogin: boolean;
179
+ nonce?: string;
180
+ redirectUri: string;
181
+ requestId: string;
182
+ scope: string;
183
+ state?: string;
184
+ status: "claimed";
185
+ }, {
186
+ requestId: import("convex/values").VString<string, "required">;
187
+ appId: import("convex/values").VString<string, "required">;
188
+ clientId: import("convex/values").VString<string, "required">;
189
+ redirectUri: import("convex/values").VString<string, "required">;
190
+ scope: import("convex/values").VString<string, "required">;
191
+ state: import("convex/values").VString<string | undefined, "optional">;
192
+ nonce: import("convex/values").VString<string | undefined, "optional">;
193
+ codeChallenge: import("convex/values").VString<string, "required">;
194
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
195
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
196
+ createdAt: import("convex/values").VFloat64<number, "required">;
197
+ expiresAt: import("convex/values").VFloat64<number, "required">;
198
+ status: import("convex/values").VLiteral<"claimed", "required">;
199
+ connector: import("convex/values").VString<string, "required">;
200
+ }, "required", "appId" | "clientId" | "codeChallenge" | "connector" | "createdAt" | "expiresAt" | "freshLogin" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status">, import("convex/values").VObject<{
201
+ appId: string;
202
+ clientId: string;
203
+ codeChallenge: string;
204
+ connector: string;
205
+ createdAt: number;
206
+ email: string;
207
+ emailAttempts: number;
208
+ emailCodeExpiresAt: number;
209
+ emailCodeHash: string;
210
+ expiresAt: number;
211
+ freshLogin: boolean;
212
+ nonce?: string;
213
+ redirectUri: string;
214
+ requestId: string;
215
+ scope: string;
216
+ state?: string;
217
+ status: "emailSent";
218
+ }, {
219
+ requestId: import("convex/values").VString<string, "required">;
220
+ appId: import("convex/values").VString<string, "required">;
221
+ clientId: import("convex/values").VString<string, "required">;
222
+ redirectUri: import("convex/values").VString<string, "required">;
223
+ scope: import("convex/values").VString<string, "required">;
224
+ state: import("convex/values").VString<string | undefined, "optional">;
225
+ nonce: import("convex/values").VString<string | undefined, "optional">;
226
+ codeChallenge: import("convex/values").VString<string, "required">;
227
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
228
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
229
+ createdAt: import("convex/values").VFloat64<number, "required">;
230
+ expiresAt: import("convex/values").VFloat64<number, "required">;
231
+ status: import("convex/values").VLiteral<"emailSent", "required">;
232
+ connector: import("convex/values").VString<string, "required">;
233
+ email: import("convex/values").VString<string, "required">;
234
+ emailCodeHash: import("convex/values").VString<string, "required">;
235
+ emailCodeExpiresAt: import("convex/values").VFloat64<number, "required">;
236
+ emailAttempts: import("convex/values").VFloat64<number, "required">;
237
+ }, "required", "appId" | "clientId" | "codeChallenge" | "connector" | "createdAt" | "email" | "emailAttempts" | "emailCodeExpiresAt" | "emailCodeHash" | "expiresAt" | "freshLogin" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status">, import("convex/values").VObject<{
238
+ appId: string;
239
+ authTime: number;
240
+ clientId: string;
241
+ codeChallenge: string;
242
+ createdAt: number;
243
+ expiresAt: number;
244
+ freshLogin: boolean;
245
+ identity: {
246
+ connector: string;
247
+ email?: string;
248
+ emailVerified?: boolean;
249
+ name?: string;
250
+ picture?: string;
251
+ upstreamId: string;
252
+ };
253
+ nonce?: string;
254
+ redirectUri: string;
255
+ requestId: string;
256
+ scope: string;
257
+ state?: string;
258
+ status: "completed";
259
+ }, {
260
+ requestId: import("convex/values").VString<string, "required">;
261
+ appId: import("convex/values").VString<string, "required">;
262
+ clientId: import("convex/values").VString<string, "required">;
263
+ redirectUri: import("convex/values").VString<string, "required">;
264
+ scope: import("convex/values").VString<string, "required">;
265
+ state: import("convex/values").VString<string | undefined, "optional">;
266
+ nonce: import("convex/values").VString<string | undefined, "optional">;
267
+ codeChallenge: import("convex/values").VString<string, "required">;
268
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
269
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
270
+ createdAt: import("convex/values").VFloat64<number, "required">;
271
+ expiresAt: import("convex/values").VFloat64<number, "required">;
272
+ status: import("convex/values").VLiteral<"completed", "required">;
273
+ identity: import("convex/values").VObject<{
274
+ connector: string;
275
+ email?: string;
276
+ emailVerified?: boolean;
277
+ name?: string;
278
+ picture?: string;
279
+ upstreamId: string;
280
+ }, {
281
+ connector: import("convex/values").VString<string, "required">;
282
+ upstreamId: import("convex/values").VString<string, "required">;
283
+ email: import("convex/values").VString<string | undefined, "optional">;
284
+ emailVerified: import("convex/values").VBoolean<boolean | undefined, "optional">;
285
+ name: import("convex/values").VString<string | undefined, "optional">;
286
+ picture: import("convex/values").VString<string | undefined, "optional">;
287
+ }, "required", "connector" | "email" | "emailVerified" | "name" | "picture" | "upstreamId">;
288
+ authTime: import("convex/values").VFloat64<number, "required">;
289
+ }, "required", "appId" | "authTime" | "clientId" | "codeChallenge" | "createdAt" | "expiresAt" | "freshLogin" | "identity" | "identity.connector" | "identity.email" | "identity.emailVerified" | "identity.name" | "identity.picture" | "identity.upstreamId" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status">], "required", "appId" | "authTime" | "clientId" | "codeChallenge" | "connector" | "createdAt" | "email" | "emailAttempts" | "emailCodeExpiresAt" | "emailCodeHash" | "expiresAt" | "freshLogin" | "identity" | "identity.connector" | "identity.email" | "identity.emailVerified" | "identity.name" | "identity.picture" | "identity.upstreamId" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status" | "upstreamCodeVerifier" | "upstreamNonce" | "upstreamStateHash">;
290
+ declare const _default: import("convex/server").SchemaDefinition<{
291
+ apps: import("convex/server").TableDefinition<import("convex/values").VObject<{
292
+ allowedCallbackHosts: string[];
293
+ appId: string;
294
+ createdAt: number;
295
+ firstParty: boolean;
296
+ name: string;
297
+ }, {
298
+ appId: import("convex/values").VString<string, "required">;
299
+ name: import("convex/values").VString<string, "required">;
300
+ firstParty: import("convex/values").VBoolean<boolean, "required">;
301
+ /** Exact hosts or `*.suffix` patterns a client callback may use, e.g. `*.convex.site`. */
302
+ allowedCallbackHosts: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
303
+ createdAt: import("convex/values").VFloat64<number, "required">;
304
+ }, "required", "allowedCallbackHosts" | "appId" | "createdAt" | "firstParty" | "name">, {
305
+ by_app_id: ["appId", "_creationTime"];
306
+ }, {}, {}>;
307
+ registrationTokens: import("convex/server").TableDefinition<import("convex/values").VObject<{
308
+ appId: string;
309
+ createdAt: number;
310
+ expiresAt: number;
311
+ tokenHash: string;
312
+ }, {
313
+ tokenHash: import("convex/values").VString<string, "required">;
314
+ appId: import("convex/values").VString<string, "required">;
315
+ expiresAt: import("convex/values").VFloat64<number, "required">;
316
+ createdAt: import("convex/values").VFloat64<number, "required">;
317
+ }, "required", "appId" | "createdAt" | "expiresAt" | "tokenHash">, {
318
+ by_app_id: ["appId", "_creationTime"];
319
+ by_token_hash: ["tokenHash", "_creationTime"];
320
+ }, {}, {}>;
321
+ clients: import("convex/server").TableDefinition<import("convex/values").VObject<{
322
+ appId: string;
323
+ clientId: string;
324
+ clientName: string;
325
+ createdAt: number;
326
+ deploymentType: "development" | "preview" | "production";
327
+ lastSignInAt?: number;
328
+ redirectUri: string;
329
+ secretHash: string;
330
+ softwareVersion: string;
331
+ tokenEndpointAuthMethod: "client_secret_basic" | "client_secret_post";
332
+ }, {
333
+ clientId: import("convex/values").VString<string, "required">;
334
+ appId: import("convex/values").VString<string, "required">;
335
+ secretHash: import("convex/values").VString<string, "required">;
336
+ tokenEndpointAuthMethod: import("convex/values").VUnion<"client_secret_basic" | "client_secret_post", [import("convex/values").VLiteral<"client_secret_post", "required">, import("convex/values").VLiteral<"client_secret_basic", "required">], "required", never>;
337
+ redirectUri: import("convex/values").VString<string, "required">;
338
+ deploymentType: import("convex/values").VUnion<"development" | "preview" | "production", [import("convex/values").VLiteral<"production", "required">, import("convex/values").VLiteral<"development", "required">, import("convex/values").VLiteral<"preview", "required">], "required", never>;
339
+ clientName: import("convex/values").VString<string, "required">;
340
+ softwareVersion: import("convex/values").VString<string, "required">;
341
+ createdAt: import("convex/values").VFloat64<number, "required">;
342
+ lastSignInAt: import("convex/values").VFloat64<number | undefined, "optional">;
343
+ }, "required", "appId" | "clientId" | "clientName" | "createdAt" | "deploymentType" | "lastSignInAt" | "redirectUri" | "secretHash" | "softwareVersion" | "tokenEndpointAuthMethod">, {
344
+ by_app_id: ["appId", "_creationTime"];
345
+ by_client_id: ["clientId", "_creationTime"];
346
+ by_deployment_type: ["deploymentType", "_creationTime"];
347
+ }, {}, {}>;
348
+ authRequests: import("convex/server").TableDefinition<import("convex/values").VUnion<{
349
+ appId: string;
350
+ clientId: string;
351
+ codeChallenge: string;
352
+ createdAt: number;
353
+ expiresAt: number;
354
+ freshLogin: boolean;
355
+ nonce?: string;
356
+ redirectUri: string;
357
+ requestId: string;
358
+ scope: string;
359
+ state?: string;
360
+ status: "pending";
361
+ } | {
362
+ appId: string;
363
+ clientId: string;
364
+ codeChallenge: string;
365
+ connector: string;
366
+ createdAt: number;
367
+ expiresAt: number;
368
+ freshLogin: boolean;
369
+ nonce?: string;
370
+ redirectUri: string;
371
+ requestId: string;
372
+ scope: string;
373
+ state?: string;
374
+ status: "upstream";
375
+ upstreamCodeVerifier: string;
376
+ upstreamNonce?: string;
377
+ upstreamStateHash: string;
378
+ } | {
379
+ appId: string;
380
+ clientId: string;
381
+ codeChallenge: string;
382
+ connector: string;
383
+ createdAt: number;
384
+ expiresAt: number;
385
+ freshLogin: boolean;
386
+ nonce?: string;
387
+ redirectUri: string;
388
+ requestId: string;
389
+ scope: string;
390
+ state?: string;
391
+ status: "claimed";
392
+ } | {
393
+ appId: string;
394
+ clientId: string;
395
+ codeChallenge: string;
396
+ connector: string;
397
+ createdAt: number;
398
+ email: string;
399
+ emailAttempts: number;
400
+ emailCodeExpiresAt: number;
401
+ emailCodeHash: string;
402
+ expiresAt: number;
403
+ freshLogin: boolean;
404
+ nonce?: string;
405
+ redirectUri: string;
406
+ requestId: string;
407
+ scope: string;
408
+ state?: string;
409
+ status: "emailSent";
410
+ } | {
411
+ appId: string;
412
+ authTime: number;
413
+ clientId: string;
414
+ codeChallenge: string;
415
+ createdAt: number;
416
+ expiresAt: number;
417
+ freshLogin: boolean;
418
+ identity: {
419
+ connector: string;
420
+ email?: string;
421
+ emailVerified?: boolean;
422
+ name?: string;
423
+ picture?: string;
424
+ upstreamId: string;
425
+ };
426
+ nonce?: string;
427
+ redirectUri: string;
428
+ requestId: string;
429
+ scope: string;
430
+ state?: string;
431
+ status: "completed";
432
+ }, [import("convex/values").VObject<{
433
+ appId: string;
434
+ clientId: string;
435
+ codeChallenge: string;
436
+ createdAt: number;
437
+ expiresAt: number;
438
+ freshLogin: boolean;
439
+ nonce?: string;
440
+ redirectUri: string;
441
+ requestId: string;
442
+ scope: string;
443
+ state?: string;
444
+ status: "pending";
445
+ }, {
446
+ requestId: import("convex/values").VString<string, "required">;
447
+ appId: import("convex/values").VString<string, "required">;
448
+ clientId: import("convex/values").VString<string, "required">;
449
+ redirectUri: import("convex/values").VString<string, "required">;
450
+ scope: import("convex/values").VString<string, "required">;
451
+ state: import("convex/values").VString<string | undefined, "optional">;
452
+ nonce: import("convex/values").VString<string | undefined, "optional">;
453
+ codeChallenge: import("convex/values").VString<string, "required">;
454
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
455
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
456
+ createdAt: import("convex/values").VFloat64<number, "required">;
457
+ expiresAt: import("convex/values").VFloat64<number, "required">;
458
+ status: import("convex/values").VLiteral<"pending", "required">;
459
+ }, "required", "appId" | "clientId" | "codeChallenge" | "createdAt" | "expiresAt" | "freshLogin" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status">, import("convex/values").VObject<{
460
+ appId: string;
461
+ clientId: string;
462
+ codeChallenge: string;
463
+ connector: string;
464
+ createdAt: number;
465
+ expiresAt: number;
466
+ freshLogin: boolean;
467
+ nonce?: string;
468
+ redirectUri: string;
469
+ requestId: string;
470
+ scope: string;
471
+ state?: string;
472
+ status: "upstream";
473
+ upstreamCodeVerifier: string;
474
+ upstreamNonce?: string;
475
+ upstreamStateHash: string;
476
+ }, {
477
+ requestId: import("convex/values").VString<string, "required">;
478
+ appId: import("convex/values").VString<string, "required">;
479
+ clientId: import("convex/values").VString<string, "required">;
480
+ redirectUri: import("convex/values").VString<string, "required">;
481
+ scope: import("convex/values").VString<string, "required">;
482
+ state: import("convex/values").VString<string | undefined, "optional">;
483
+ nonce: import("convex/values").VString<string | undefined, "optional">;
484
+ codeChallenge: import("convex/values").VString<string, "required">;
485
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
486
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
487
+ createdAt: import("convex/values").VFloat64<number, "required">;
488
+ expiresAt: import("convex/values").VFloat64<number, "required">;
489
+ status: import("convex/values").VLiteral<"upstream", "required">;
490
+ connector: import("convex/values").VString<string, "required">;
491
+ upstreamStateHash: import("convex/values").VString<string, "required">;
492
+ upstreamCodeVerifier: import("convex/values").VString<string, "required">;
493
+ upstreamNonce: import("convex/values").VString<string | undefined, "optional">;
494
+ }, "required", "appId" | "clientId" | "codeChallenge" | "connector" | "createdAt" | "expiresAt" | "freshLogin" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status" | "upstreamCodeVerifier" | "upstreamNonce" | "upstreamStateHash">, import("convex/values").VObject<{
495
+ appId: string;
496
+ clientId: string;
497
+ codeChallenge: string;
498
+ connector: string;
499
+ createdAt: number;
500
+ expiresAt: number;
501
+ freshLogin: boolean;
502
+ nonce?: string;
503
+ redirectUri: string;
504
+ requestId: string;
505
+ scope: string;
506
+ state?: string;
507
+ status: "claimed";
508
+ }, {
509
+ requestId: import("convex/values").VString<string, "required">;
510
+ appId: import("convex/values").VString<string, "required">;
511
+ clientId: import("convex/values").VString<string, "required">;
512
+ redirectUri: import("convex/values").VString<string, "required">;
513
+ scope: import("convex/values").VString<string, "required">;
514
+ state: import("convex/values").VString<string | undefined, "optional">;
515
+ nonce: import("convex/values").VString<string | undefined, "optional">;
516
+ codeChallenge: import("convex/values").VString<string, "required">;
517
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
518
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
519
+ createdAt: import("convex/values").VFloat64<number, "required">;
520
+ expiresAt: import("convex/values").VFloat64<number, "required">;
521
+ status: import("convex/values").VLiteral<"claimed", "required">;
522
+ connector: import("convex/values").VString<string, "required">;
523
+ }, "required", "appId" | "clientId" | "codeChallenge" | "connector" | "createdAt" | "expiresAt" | "freshLogin" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status">, import("convex/values").VObject<{
524
+ appId: string;
525
+ clientId: string;
526
+ codeChallenge: string;
527
+ connector: string;
528
+ createdAt: number;
529
+ email: string;
530
+ emailAttempts: number;
531
+ emailCodeExpiresAt: number;
532
+ emailCodeHash: string;
533
+ expiresAt: number;
534
+ freshLogin: boolean;
535
+ nonce?: string;
536
+ redirectUri: string;
537
+ requestId: string;
538
+ scope: string;
539
+ state?: string;
540
+ status: "emailSent";
541
+ }, {
542
+ requestId: import("convex/values").VString<string, "required">;
543
+ appId: import("convex/values").VString<string, "required">;
544
+ clientId: import("convex/values").VString<string, "required">;
545
+ redirectUri: import("convex/values").VString<string, "required">;
546
+ scope: import("convex/values").VString<string, "required">;
547
+ state: import("convex/values").VString<string | undefined, "optional">;
548
+ nonce: import("convex/values").VString<string | undefined, "optional">;
549
+ codeChallenge: import("convex/values").VString<string, "required">;
550
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
551
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
552
+ createdAt: import("convex/values").VFloat64<number, "required">;
553
+ expiresAt: import("convex/values").VFloat64<number, "required">;
554
+ status: import("convex/values").VLiteral<"emailSent", "required">;
555
+ connector: import("convex/values").VString<string, "required">;
556
+ email: import("convex/values").VString<string, "required">;
557
+ emailCodeHash: import("convex/values").VString<string, "required">;
558
+ emailCodeExpiresAt: import("convex/values").VFloat64<number, "required">;
559
+ emailAttempts: import("convex/values").VFloat64<number, "required">;
560
+ }, "required", "appId" | "clientId" | "codeChallenge" | "connector" | "createdAt" | "email" | "emailAttempts" | "emailCodeExpiresAt" | "emailCodeHash" | "expiresAt" | "freshLogin" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status">, import("convex/values").VObject<{
561
+ appId: string;
562
+ authTime: number;
563
+ clientId: string;
564
+ codeChallenge: string;
565
+ createdAt: number;
566
+ expiresAt: number;
567
+ freshLogin: boolean;
568
+ identity: {
569
+ connector: string;
570
+ email?: string;
571
+ emailVerified?: boolean;
572
+ name?: string;
573
+ picture?: string;
574
+ upstreamId: string;
575
+ };
576
+ nonce?: string;
577
+ redirectUri: string;
578
+ requestId: string;
579
+ scope: string;
580
+ state?: string;
581
+ status: "completed";
582
+ }, {
583
+ requestId: import("convex/values").VString<string, "required">;
584
+ appId: import("convex/values").VString<string, "required">;
585
+ clientId: import("convex/values").VString<string, "required">;
586
+ redirectUri: import("convex/values").VString<string, "required">;
587
+ scope: import("convex/values").VString<string, "required">;
588
+ state: import("convex/values").VString<string | undefined, "optional">;
589
+ nonce: import("convex/values").VString<string | undefined, "optional">;
590
+ codeChallenge: import("convex/values").VString<string, "required">;
591
+ /** `prompt=login` or `max_age` was sent: the connector must reauthenticate or refuse. */
592
+ freshLogin: import("convex/values").VBoolean<boolean, "required">;
593
+ createdAt: import("convex/values").VFloat64<number, "required">;
594
+ expiresAt: import("convex/values").VFloat64<number, "required">;
595
+ status: import("convex/values").VLiteral<"completed", "required">;
596
+ identity: import("convex/values").VObject<{
597
+ connector: string;
598
+ email?: string;
599
+ emailVerified?: boolean;
600
+ name?: string;
601
+ picture?: string;
602
+ upstreamId: string;
603
+ }, {
604
+ connector: import("convex/values").VString<string, "required">;
605
+ upstreamId: import("convex/values").VString<string, "required">;
606
+ email: import("convex/values").VString<string | undefined, "optional">;
607
+ emailVerified: import("convex/values").VBoolean<boolean | undefined, "optional">;
608
+ name: import("convex/values").VString<string | undefined, "optional">;
609
+ picture: import("convex/values").VString<string | undefined, "optional">;
610
+ }, "required", "connector" | "email" | "emailVerified" | "name" | "picture" | "upstreamId">;
611
+ authTime: import("convex/values").VFloat64<number, "required">;
612
+ }, "required", "appId" | "authTime" | "clientId" | "codeChallenge" | "createdAt" | "expiresAt" | "freshLogin" | "identity" | "identity.connector" | "identity.email" | "identity.emailVerified" | "identity.name" | "identity.picture" | "identity.upstreamId" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status">], "required", "appId" | "authTime" | "clientId" | "codeChallenge" | "connector" | "createdAt" | "email" | "emailAttempts" | "emailCodeExpiresAt" | "emailCodeHash" | "expiresAt" | "freshLogin" | "identity" | "identity.connector" | "identity.email" | "identity.emailVerified" | "identity.name" | "identity.picture" | "identity.upstreamId" | "nonce" | "redirectUri" | "requestId" | "scope" | "state" | "status" | "upstreamCodeVerifier" | "upstreamNonce" | "upstreamStateHash">, {
613
+ by_expires_at: ["expiresAt", "_creationTime"];
614
+ by_request_id: ["requestId", "_creationTime"];
615
+ by_upstream_state_hash: ["upstreamStateHash", "_creationTime"];
616
+ }, {}, {}>;
617
+ authorizationCodes: import("convex/server").TableDefinition<import("convex/values").VObject<{
618
+ authRequestId: import("convex/values").GenericId<"authRequests">;
619
+ clientId: string;
620
+ codeHash: string;
621
+ expiresAt: number;
622
+ usedAt?: number;
623
+ }, {
624
+ codeHash: import("convex/values").VString<string, "required">;
625
+ authRequestId: import("convex/values").VId<import("convex/values").GenericId<"authRequests">, "required">;
626
+ clientId: import("convex/values").VString<string, "required">;
627
+ expiresAt: import("convex/values").VFloat64<number, "required">;
628
+ usedAt: import("convex/values").VFloat64<number | undefined, "optional">;
629
+ }, "required", "authRequestId" | "clientId" | "codeHash" | "expiresAt" | "usedAt">, {
630
+ by_code_hash: ["codeHash", "_creationTime"];
631
+ by_expires_at: ["expiresAt", "_creationTime"];
632
+ }, {}, {}>;
633
+ signIns: import("convex/server").TableDefinition<import("convex/values").VObject<{
634
+ appId: string;
635
+ at: number;
636
+ clientId: string;
637
+ connector: string;
638
+ sub: string;
639
+ }, {
640
+ appId: import("convex/values").VString<string, "required">;
641
+ clientId: import("convex/values").VString<string, "required">;
642
+ connector: import("convex/values").VString<string, "required">;
643
+ sub: import("convex/values").VString<string, "required">;
644
+ at: import("convex/values").VFloat64<number, "required">;
645
+ }, "required", "appId" | "at" | "clientId" | "connector" | "sub">, {
646
+ by_app_id_and_at: ["appId", "at", "_creationTime"];
647
+ by_at: ["at", "_creationTime"];
648
+ }, {}, {}>;
649
+ }, true>;
650
+ export default _default;