@robelest/convex-auth 0.0.2-preview.2 → 0.0.3-preview

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 (114) hide show
  1. package/dist/bin.cjs +467 -64
  2. package/dist/client/index.d.ts +127 -0
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +424 -1
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/component/_generated/api.d.ts +56 -1
  7. package/dist/component/_generated/api.d.ts.map +1 -1
  8. package/dist/component/_generated/api.js.map +1 -1
  9. package/dist/component/_generated/component.d.ts +141 -3
  10. package/dist/component/_generated/component.d.ts.map +1 -1
  11. package/dist/component/convex.config.d.ts.map +1 -1
  12. package/dist/component/convex.config.js +2 -0
  13. package/dist/component/convex.config.js.map +1 -1
  14. package/dist/component/index.d.ts +5 -4
  15. package/dist/component/index.d.ts.map +1 -1
  16. package/dist/component/index.js +4 -3
  17. package/dist/component/index.js.map +1 -1
  18. package/dist/component/portalBridge.d.ts +80 -0
  19. package/dist/component/portalBridge.d.ts.map +1 -0
  20. package/dist/component/portalBridge.js +102 -0
  21. package/dist/component/portalBridge.js.map +1 -0
  22. package/dist/component/public.d.ts +353 -9
  23. package/dist/component/public.d.ts.map +1 -1
  24. package/dist/component/public.js +328 -33
  25. package/dist/component/public.js.map +1 -1
  26. package/dist/component/schema.d.ts +168 -9
  27. package/dist/component/schema.d.ts.map +1 -1
  28. package/dist/component/schema.js +113 -7
  29. package/dist/component/schema.js.map +1 -1
  30. package/dist/providers/passkey.d.ts +20 -0
  31. package/dist/providers/passkey.d.ts.map +1 -0
  32. package/dist/providers/passkey.js +32 -0
  33. package/dist/providers/passkey.js.map +1 -0
  34. package/dist/providers/totp.d.ts +14 -0
  35. package/dist/providers/totp.d.ts.map +1 -0
  36. package/dist/providers/totp.js +23 -0
  37. package/dist/providers/totp.js.map +1 -0
  38. package/dist/server/convex-auth.d.ts +296 -0
  39. package/dist/server/convex-auth.d.ts.map +1 -0
  40. package/dist/server/convex-auth.js +480 -0
  41. package/dist/server/convex-auth.js.map +1 -0
  42. package/dist/server/email-templates.d.ts +18 -0
  43. package/dist/server/email-templates.d.ts.map +1 -0
  44. package/dist/server/email-templates.js +74 -0
  45. package/dist/server/email-templates.js.map +1 -0
  46. package/dist/server/implementation/apiKey.d.ts +74 -0
  47. package/dist/server/implementation/apiKey.d.ts.map +1 -0
  48. package/dist/server/implementation/apiKey.js +140 -0
  49. package/dist/server/implementation/apiKey.js.map +1 -0
  50. package/dist/server/implementation/index.d.ts +169 -7
  51. package/dist/server/implementation/index.d.ts.map +1 -1
  52. package/dist/server/implementation/index.js +220 -5
  53. package/dist/server/implementation/index.js.map +1 -1
  54. package/dist/server/implementation/passkey.d.ts +33 -0
  55. package/dist/server/implementation/passkey.d.ts.map +1 -0
  56. package/dist/server/implementation/passkey.js +450 -0
  57. package/dist/server/implementation/passkey.js.map +1 -0
  58. package/dist/server/implementation/redirects.d.ts.map +1 -1
  59. package/dist/server/implementation/redirects.js +4 -9
  60. package/dist/server/implementation/redirects.js.map +1 -1
  61. package/dist/server/implementation/signIn.d.ts +13 -0
  62. package/dist/server/implementation/signIn.d.ts.map +1 -1
  63. package/dist/server/implementation/signIn.js +29 -15
  64. package/dist/server/implementation/signIn.js.map +1 -1
  65. package/dist/server/implementation/totp.d.ts +40 -0
  66. package/dist/server/implementation/totp.d.ts.map +1 -0
  67. package/dist/server/implementation/totp.js +211 -0
  68. package/dist/server/implementation/totp.js.map +1 -0
  69. package/dist/server/index.d.ts +26 -2
  70. package/dist/server/index.d.ts.map +1 -1
  71. package/dist/server/index.js +63 -16
  72. package/dist/server/index.js.map +1 -1
  73. package/dist/server/portal-email.d.ts +19 -0
  74. package/dist/server/portal-email.d.ts.map +1 -0
  75. package/dist/server/portal-email.js +89 -0
  76. package/dist/server/portal-email.js.map +1 -0
  77. package/dist/server/provider_utils.d.ts +3 -1
  78. package/dist/server/provider_utils.d.ts.map +1 -1
  79. package/dist/server/provider_utils.js +39 -1
  80. package/dist/server/provider_utils.js.map +1 -1
  81. package/dist/server/types.d.ts +263 -4
  82. package/dist/server/types.d.ts.map +1 -1
  83. package/dist/server/version.d.ts +2 -0
  84. package/dist/server/version.d.ts.map +1 -0
  85. package/dist/server/version.js +3 -0
  86. package/dist/server/version.js.map +1 -0
  87. package/package.json +7 -3
  88. package/src/cli/index.ts +49 -7
  89. package/src/cli/portal-link.ts +112 -0
  90. package/src/cli/portal-upload.ts +411 -0
  91. package/src/cli/utils.ts +248 -0
  92. package/src/client/index.ts +489 -1
  93. package/src/component/_generated/api.ts +72 -1
  94. package/src/component/_generated/component.ts +241 -4
  95. package/src/component/convex.config.ts +3 -0
  96. package/src/component/index.ts +8 -3
  97. package/src/component/portalBridge.ts +116 -0
  98. package/src/component/public.ts +373 -37
  99. package/src/component/schema.ts +122 -7
  100. package/src/providers/passkey.ts +35 -0
  101. package/src/providers/totp.ts +26 -0
  102. package/src/server/convex-auth.ts +602 -0
  103. package/src/server/email-templates.ts +77 -0
  104. package/src/server/implementation/apiKey.ts +185 -0
  105. package/src/server/implementation/index.ts +301 -8
  106. package/src/server/implementation/passkey.ts +650 -0
  107. package/src/server/implementation/redirects.ts +4 -11
  108. package/src/server/implementation/signIn.ts +41 -13
  109. package/src/server/implementation/totp.ts +366 -0
  110. package/src/server/index.ts +98 -34
  111. package/src/server/portal-email.ts +95 -0
  112. package/src/server/provider_utils.ts +42 -1
  113. package/src/server/types.ts +285 -4
  114. package/src/server/version.ts +2 -0
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Bridge functions that delegate to the self-hosting sub-component.
3
+ *
4
+ * The auth component uses self-hosting as a sub-component for serving
5
+ * portal static assets. These functions expose the self-hosting API
6
+ * as internal queries/mutations within the auth component, so the
7
+ * app layer can call them via `ctx.runQuery(components.auth.portalBridge.getByPath, ...)`.
8
+ */
9
+ import { v } from "convex/values";
10
+ import { query, mutation } from "./_generated/server.js";
11
+ import { components } from "./_generated/api.js";
12
+ // ============================================================================
13
+ // Queries — delegate to selfHosting.lib.*
14
+ // ============================================================================
15
+ /**
16
+ * Look up a static asset by URL path.
17
+ * Delegates to selfHosting.lib.getByPath.
18
+ */
19
+ export const getByPath = query({
20
+ args: { path: v.string() },
21
+ returns: v.any(),
22
+ handler: async (ctx, args) => {
23
+ return await ctx.runQuery(components.selfHosting.lib.getByPath, {
24
+ path: args.path,
25
+ });
26
+ },
27
+ });
28
+ /**
29
+ * Get the current deployment info.
30
+ * Delegates to selfHosting.lib.getCurrentDeployment.
31
+ */
32
+ export const getCurrentDeployment = query({
33
+ args: {},
34
+ returns: v.any(),
35
+ handler: async (ctx) => {
36
+ return await ctx.runQuery(components.selfHosting.lib.getCurrentDeployment, {});
37
+ },
38
+ });
39
+ /**
40
+ * List all static assets.
41
+ * Delegates to selfHosting.lib.listAssets.
42
+ */
43
+ export const listAssets = query({
44
+ args: { limit: v.optional(v.number()) },
45
+ returns: v.any(),
46
+ handler: async (ctx, args) => {
47
+ return await ctx.runQuery(components.selfHosting.lib.listAssets, {
48
+ limit: args.limit,
49
+ });
50
+ },
51
+ });
52
+ // ============================================================================
53
+ // Mutations — delegate to selfHosting.lib.*
54
+ // ============================================================================
55
+ /**
56
+ * Record an asset after upload.
57
+ * Delegates to selfHosting.lib.recordAsset.
58
+ */
59
+ export const recordAsset = mutation({
60
+ args: {
61
+ path: v.string(),
62
+ storageId: v.optional(v.string()),
63
+ blobId: v.optional(v.string()),
64
+ contentType: v.string(),
65
+ deploymentId: v.string(),
66
+ },
67
+ returns: v.any(),
68
+ handler: async (ctx, args) => {
69
+ return await ctx.runMutation(components.selfHosting.lib.recordAsset, {
70
+ path: args.path,
71
+ ...(args.storageId ? { storageId: args.storageId } : {}),
72
+ ...(args.blobId ? { blobId: args.blobId } : {}),
73
+ contentType: args.contentType,
74
+ deploymentId: args.deploymentId,
75
+ });
76
+ },
77
+ });
78
+ /**
79
+ * Garbage collect assets from old deployments.
80
+ * Delegates to selfHosting.lib.gcOldAssets.
81
+ */
82
+ export const gcOldAssets = mutation({
83
+ args: { currentDeploymentId: v.string() },
84
+ returns: v.any(),
85
+ handler: async (ctx, args) => {
86
+ return await ctx.runMutation(components.selfHosting.lib.gcOldAssets, {
87
+ currentDeploymentId: args.currentDeploymentId,
88
+ });
89
+ },
90
+ });
91
+ /**
92
+ * Update the current deployment ID.
93
+ * Delegates to selfHosting.lib.setCurrentDeployment.
94
+ */
95
+ export const setCurrentDeployment = mutation({
96
+ args: { deploymentId: v.string() },
97
+ returns: v.null(),
98
+ handler: async (ctx, args) => {
99
+ return await ctx.runMutation(components.selfHosting.lib.setCurrentDeployment, { deploymentId: args.deploymentId });
100
+ },
101
+ });
102
+ //# sourceMappingURL=portalBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalBridge.js","sourceRoot":"","sources":["../../src/component/portalBridge.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
1
+ /** List all users. */
2
+ export declare const userList: import("convex/server").RegisteredQuery<"public", {}, Promise<{
3
+ _id: import("convex/values").GenericId<"user">;
4
+ _creationTime: number;
5
+ name?: string | undefined;
6
+ email?: string | undefined;
7
+ phone?: string | undefined;
8
+ image?: string | undefined;
9
+ emailVerificationTime?: number | undefined;
10
+ phoneVerificationTime?: number | undefined;
11
+ isAnonymous?: boolean | undefined;
12
+ extend?: any;
13
+ }[]>>;
1
14
  /** Retrieve a user by their document ID. */
2
15
  export declare const userGetById: import("convex/server").RegisteredQuery<"public", {
3
16
  userId: import("convex/values").GenericId<"user">;
@@ -65,6 +78,19 @@ export declare const userPatch: import("convex/server").RegisteredMutation<"publ
65
78
  userId: import("convex/values").GenericId<"user">;
66
79
  data: any;
67
80
  }, Promise<void>>;
81
+ /** List all accounts for a user. */
82
+ export declare const accountListByUser: import("convex/server").RegisteredQuery<"public", {
83
+ userId: import("convex/values").GenericId<"user">;
84
+ }, Promise<{
85
+ _id: import("convex/values").GenericId<"account">;
86
+ _creationTime: number;
87
+ secret?: string | undefined;
88
+ emailVerified?: string | undefined;
89
+ phoneVerified?: string | undefined;
90
+ userId: import("convex/values").GenericId<"user">;
91
+ provider: string;
92
+ providerAccountId: string;
93
+ }[]>>;
68
94
  /** Look up an account by provider and provider-specific account ID. */
69
95
  export declare const accountGet: import("convex/server").RegisteredQuery<"public", {
70
96
  provider: string;
@@ -108,6 +134,13 @@ export declare const accountPatch: import("convex/server").RegisteredMutation<"p
108
134
  export declare const accountDelete: import("convex/server").RegisteredMutation<"public", {
109
135
  accountId: import("convex/values").GenericId<"account">;
110
136
  }, Promise<void>>;
137
+ /** List all sessions. */
138
+ export declare const sessionList: import("convex/server").RegisteredQuery<"public", {}, Promise<{
139
+ _id: import("convex/values").GenericId<"session">;
140
+ _creationTime: number;
141
+ userId: import("convex/values").GenericId<"user">;
142
+ expirationTime: number;
143
+ }[]>>;
111
144
  /** Create a new session for a user with an expiration time. */
112
145
  export declare const sessionCreate: import("convex/server").RegisteredMutation<"public", {
113
146
  userId: import("convex/values").GenericId<"user">;
@@ -268,6 +301,139 @@ export declare const refreshTokenGetActive: import("convex/server").RegisteredQu
268
301
  expirationTime: number;
269
302
  sessionId: import("convex/values").GenericId<"session">;
270
303
  } | null>>;
304
+ /** Store a new passkey credential for a user. */
305
+ export declare const passkeyInsert: import("convex/server").RegisteredMutation<"public", {
306
+ name?: string | undefined;
307
+ transports?: string[] | undefined;
308
+ userId: import("convex/values").GenericId<"user">;
309
+ credentialId: string;
310
+ publicKey: ArrayBuffer;
311
+ algorithm: number;
312
+ counter: number;
313
+ deviceType: string;
314
+ backedUp: boolean;
315
+ createdAt: number;
316
+ }, Promise<import("convex/values").GenericId<"passkey">>>;
317
+ /** Look up a passkey by its credential ID. */
318
+ export declare const passkeyGetByCredentialId: import("convex/server").RegisteredQuery<"public", {
319
+ credentialId: string;
320
+ }, Promise<{
321
+ _id: import("convex/values").GenericId<"passkey">;
322
+ _creationTime: number;
323
+ name?: string | undefined;
324
+ transports?: string[] | undefined;
325
+ lastUsedAt?: number | undefined;
326
+ userId: import("convex/values").GenericId<"user">;
327
+ credentialId: string;
328
+ publicKey: ArrayBuffer;
329
+ algorithm: number;
330
+ counter: number;
331
+ deviceType: string;
332
+ backedUp: boolean;
333
+ createdAt: number;
334
+ } | null>>;
335
+ /** List all passkeys for a user. */
336
+ export declare const passkeyListByUserId: import("convex/server").RegisteredQuery<"public", {
337
+ userId: import("convex/values").GenericId<"user">;
338
+ }, Promise<{
339
+ _id: import("convex/values").GenericId<"passkey">;
340
+ _creationTime: number;
341
+ name?: string | undefined;
342
+ transports?: string[] | undefined;
343
+ lastUsedAt?: number | undefined;
344
+ userId: import("convex/values").GenericId<"user">;
345
+ credentialId: string;
346
+ publicKey: ArrayBuffer;
347
+ algorithm: number;
348
+ counter: number;
349
+ deviceType: string;
350
+ backedUp: boolean;
351
+ createdAt: number;
352
+ }[]>>;
353
+ /** Update a passkey's counter and last used timestamp after authentication. */
354
+ export declare const passkeyUpdateCounter: import("convex/server").RegisteredMutation<"public", {
355
+ counter: number;
356
+ lastUsedAt: number;
357
+ passkeyId: import("convex/values").GenericId<"passkey">;
358
+ }, Promise<void>>;
359
+ /** Update a passkey's metadata (name). */
360
+ export declare const passkeyUpdateMeta: import("convex/server").RegisteredMutation<"public", {
361
+ data: any;
362
+ passkeyId: import("convex/values").GenericId<"passkey">;
363
+ }, Promise<void>>;
364
+ /** Delete a passkey credential. */
365
+ export declare const passkeyDelete: import("convex/server").RegisteredMutation<"public", {
366
+ passkeyId: import("convex/values").GenericId<"passkey">;
367
+ }, Promise<void>>;
368
+ /** Store a new TOTP enrollment for a user. */
369
+ export declare const totpInsert: import("convex/server").RegisteredMutation<"public", {
370
+ name?: string | undefined;
371
+ secret: ArrayBuffer;
372
+ userId: import("convex/values").GenericId<"user">;
373
+ createdAt: number;
374
+ digits: number;
375
+ period: number;
376
+ verified: boolean;
377
+ }, Promise<import("convex/values").GenericId<"totp">>>;
378
+ /** Get a verified TOTP enrollment for a user (returns first match). */
379
+ export declare const totpGetVerifiedByUserId: import("convex/server").RegisteredQuery<"public", {
380
+ userId: import("convex/values").GenericId<"user">;
381
+ }, Promise<{
382
+ _id: import("convex/values").GenericId<"totp">;
383
+ _creationTime: number;
384
+ name?: string | undefined;
385
+ lastUsedAt?: number | undefined;
386
+ secret: ArrayBuffer;
387
+ userId: import("convex/values").GenericId<"user">;
388
+ createdAt: number;
389
+ digits: number;
390
+ period: number;
391
+ verified: boolean;
392
+ } | null>>;
393
+ /** List all TOTP enrollments for a user. */
394
+ export declare const totpListByUserId: import("convex/server").RegisteredQuery<"public", {
395
+ userId: import("convex/values").GenericId<"user">;
396
+ }, Promise<{
397
+ _id: import("convex/values").GenericId<"totp">;
398
+ _creationTime: number;
399
+ name?: string | undefined;
400
+ lastUsedAt?: number | undefined;
401
+ secret: ArrayBuffer;
402
+ userId: import("convex/values").GenericId<"user">;
403
+ createdAt: number;
404
+ digits: number;
405
+ period: number;
406
+ verified: boolean;
407
+ }[]>>;
408
+ /** Get a TOTP enrollment by its ID. */
409
+ export declare const totpGetById: import("convex/server").RegisteredQuery<"public", {
410
+ totpId: import("convex/values").GenericId<"totp">;
411
+ }, Promise<{
412
+ _id: import("convex/values").GenericId<"totp">;
413
+ _creationTime: number;
414
+ name?: string | undefined;
415
+ lastUsedAt?: number | undefined;
416
+ secret: ArrayBuffer;
417
+ userId: import("convex/values").GenericId<"user">;
418
+ createdAt: number;
419
+ digits: number;
420
+ period: number;
421
+ verified: boolean;
422
+ } | null>>;
423
+ /** Mark a TOTP enrollment as verified (setup complete). */
424
+ export declare const totpMarkVerified: import("convex/server").RegisteredMutation<"public", {
425
+ lastUsedAt: number;
426
+ totpId: import("convex/values").GenericId<"totp">;
427
+ }, Promise<void>>;
428
+ /** Update a TOTP enrollment's last used timestamp. */
429
+ export declare const totpUpdateLastUsed: import("convex/server").RegisteredMutation<"public", {
430
+ lastUsedAt: number;
431
+ totpId: import("convex/values").GenericId<"totp">;
432
+ }, Promise<void>>;
433
+ /** Delete a TOTP enrollment. */
434
+ export declare const totpDelete: import("convex/server").RegisteredMutation<"public", {
435
+ totpId: import("convex/values").GenericId<"totp">;
436
+ }, Promise<void>>;
271
437
  /** Look up a rate limit entry by its identifier. */
272
438
  export declare const rateLimitGet: import("convex/server").RegisteredQuery<"public", {
273
439
  identifier: string;
@@ -445,14 +611,14 @@ export declare const memberUpdate: import("convex/server").RegisteredMutation<"p
445
611
  * @returns The ID of the new invite record.
446
612
  */
447
613
  export declare const inviteCreate: import("convex/server").RegisteredMutation<"public", {
614
+ email?: string | undefined;
448
615
  extend?: any;
449
616
  groupId?: import("convex/values").GenericId<"group"> | undefined;
450
617
  role?: string | undefined;
451
- email: string;
618
+ invitedByUserId?: import("convex/values").GenericId<"user"> | undefined;
619
+ expiresTime?: number | undefined;
452
620
  status: "pending" | "accepted" | "revoked" | "expired";
453
- invitedByUserId: import("convex/values").GenericId<"user">;
454
621
  tokenHash: string;
455
- expiresTime: number;
456
622
  }, Promise<import("convex/values").GenericId<"invite">>>;
457
623
  /** Retrieve an invite by its document ID. Returns `null` if not found. */
458
624
  export declare const inviteGet: import("convex/server").RegisteredQuery<"public", {
@@ -460,16 +626,33 @@ export declare const inviteGet: import("convex/server").RegisteredQuery<"public"
460
626
  }, Promise<{
461
627
  _id: import("convex/values").GenericId<"invite">;
462
628
  _creationTime: number;
629
+ email?: string | undefined;
463
630
  extend?: any;
464
631
  groupId?: import("convex/values").GenericId<"group"> | undefined;
465
632
  role?: string | undefined;
633
+ invitedByUserId?: import("convex/values").GenericId<"user"> | undefined;
634
+ expiresTime?: number | undefined;
635
+ acceptedByUserId?: import("convex/values").GenericId<"user"> | undefined;
636
+ acceptedTime?: number | undefined;
637
+ status: "pending" | "accepted" | "revoked" | "expired";
638
+ tokenHash: string;
639
+ } | null>>;
640
+ /** Retrieve an invite by its token hash. Returns `null` if not found. */
641
+ export declare const inviteGetByTokenHash: import("convex/server").RegisteredQuery<"public", {
642
+ tokenHash: string;
643
+ }, Promise<{
644
+ _id: import("convex/values").GenericId<"invite">;
645
+ _creationTime: number;
646
+ email?: string | undefined;
647
+ extend?: any;
648
+ groupId?: import("convex/values").GenericId<"group"> | undefined;
649
+ role?: string | undefined;
650
+ invitedByUserId?: import("convex/values").GenericId<"user"> | undefined;
651
+ expiresTime?: number | undefined;
466
652
  acceptedByUserId?: import("convex/values").GenericId<"user"> | undefined;
467
653
  acceptedTime?: number | undefined;
468
- email: string;
469
654
  status: "pending" | "accepted" | "revoked" | "expired";
470
- invitedByUserId: import("convex/values").GenericId<"user">;
471
655
  tokenHash: string;
472
- expiresTime: number;
473
656
  } | null>>;
474
657
  /**
475
658
  * List invites, optionally filtered by group and/or status.
@@ -481,16 +664,16 @@ export declare const inviteList: import("convex/server").RegisteredQuery<"public
481
664
  }, Promise<{
482
665
  _id: import("convex/values").GenericId<"invite">;
483
666
  _creationTime: number;
667
+ email?: string | undefined;
484
668
  extend?: any;
485
669
  groupId?: import("convex/values").GenericId<"group"> | undefined;
486
670
  role?: string | undefined;
671
+ invitedByUserId?: import("convex/values").GenericId<"user"> | undefined;
672
+ expiresTime?: number | undefined;
487
673
  acceptedByUserId?: import("convex/values").GenericId<"user"> | undefined;
488
674
  acceptedTime?: number | undefined;
489
- email: string;
490
675
  status: "pending" | "accepted" | "revoked" | "expired";
491
- invitedByUserId: import("convex/values").GenericId<"user">;
492
676
  tokenHash: string;
493
- expiresTime: number;
494
677
  }[]>>;
495
678
  /**
496
679
  * Accept a pending invitation.
@@ -502,6 +685,7 @@ export declare const inviteList: import("convex/server").RegisteredQuery<"public
502
685
  * The caller is responsible for creating the corresponding member record.
503
686
  */
504
687
  export declare const inviteAccept: import("convex/server").RegisteredMutation<"public", {
688
+ acceptedByUserId?: import("convex/values").GenericId<"user"> | undefined;
505
689
  inviteId: import("convex/values").GenericId<"invite">;
506
690
  }, Promise<void>>;
507
691
  /**
@@ -513,4 +697,164 @@ export declare const inviteAccept: import("convex/server").RegisteredMutation<"p
513
697
  export declare const inviteRevoke: import("convex/server").RegisteredMutation<"public", {
514
698
  inviteId: import("convex/values").GenericId<"invite">;
515
699
  }, Promise<void>>;
700
+ /**
701
+ * Insert a new API key record.
702
+ *
703
+ * The caller is responsible for hashing the raw key before passing it here —
704
+ * this function only stores the hash and metadata.
705
+ */
706
+ export declare const keyInsert: import("convex/server").RegisteredMutation<"public", {
707
+ rateLimit?: {
708
+ maxRequests: number;
709
+ windowMs: number;
710
+ } | undefined;
711
+ expiresAt?: number | undefined;
712
+ name: string;
713
+ userId: import("convex/values").GenericId<"user">;
714
+ prefix: string;
715
+ hashedKey: string;
716
+ scopes: {
717
+ resource: string;
718
+ actions: string[];
719
+ }[];
720
+ }, Promise<import("convex/values").GenericId<"key">>>;
721
+ /**
722
+ * Look up an API key by its SHA-256 hash.
723
+ *
724
+ * Used during Bearer token verification. Returns the full key record
725
+ * (including rate limit state) or `null` if not found.
726
+ */
727
+ export declare const keyGetByHashedKey: import("convex/server").RegisteredQuery<"public", {
728
+ hashedKey: string;
729
+ }, Promise<{
730
+ _id: import("convex/values").GenericId<"key">;
731
+ _creationTime: number;
732
+ lastUsedAt?: number | undefined;
733
+ rateLimit?: {
734
+ maxRequests: number;
735
+ windowMs: number;
736
+ } | undefined;
737
+ rateLimitState?: {
738
+ lastAttemptTime: number;
739
+ attemptsLeft: number;
740
+ } | undefined;
741
+ expiresAt?: number | undefined;
742
+ name: string;
743
+ userId: import("convex/values").GenericId<"user">;
744
+ createdAt: number;
745
+ revoked: boolean;
746
+ prefix: string;
747
+ hashedKey: string;
748
+ scopes: {
749
+ resource: string;
750
+ actions: string[];
751
+ }[];
752
+ } | null>>;
753
+ /** List all API keys for a user. */
754
+ export declare const keyListByUserId: import("convex/server").RegisteredQuery<"public", {
755
+ userId: import("convex/values").GenericId<"user">;
756
+ }, Promise<{
757
+ _id: import("convex/values").GenericId<"key">;
758
+ _creationTime: number;
759
+ lastUsedAt?: number | undefined;
760
+ rateLimit?: {
761
+ maxRequests: number;
762
+ windowMs: number;
763
+ } | undefined;
764
+ rateLimitState?: {
765
+ lastAttemptTime: number;
766
+ attemptsLeft: number;
767
+ } | undefined;
768
+ expiresAt?: number | undefined;
769
+ name: string;
770
+ userId: import("convex/values").GenericId<"user">;
771
+ createdAt: number;
772
+ revoked: boolean;
773
+ prefix: string;
774
+ hashedKey: string;
775
+ scopes: {
776
+ resource: string;
777
+ actions: string[];
778
+ }[];
779
+ }[]>>;
780
+ /** List all API keys across all users (for portal admin). */
781
+ export declare const keyList: import("convex/server").RegisteredQuery<"public", {}, Promise<{
782
+ _id: import("convex/values").GenericId<"key">;
783
+ _creationTime: number;
784
+ lastUsedAt?: number | undefined;
785
+ rateLimit?: {
786
+ maxRequests: number;
787
+ windowMs: number;
788
+ } | undefined;
789
+ rateLimitState?: {
790
+ lastAttemptTime: number;
791
+ attemptsLeft: number;
792
+ } | undefined;
793
+ expiresAt?: number | undefined;
794
+ name: string;
795
+ userId: import("convex/values").GenericId<"user">;
796
+ createdAt: number;
797
+ revoked: boolean;
798
+ prefix: string;
799
+ hashedKey: string;
800
+ scopes: {
801
+ resource: string;
802
+ actions: string[];
803
+ }[];
804
+ }[]>>;
805
+ /** Get a single API key by document ID. */
806
+ export declare const keyGetById: import("convex/server").RegisteredQuery<"public", {
807
+ keyId: import("convex/values").GenericId<"key">;
808
+ }, Promise<{
809
+ _id: import("convex/values").GenericId<"key">;
810
+ _creationTime: number;
811
+ lastUsedAt?: number | undefined;
812
+ rateLimit?: {
813
+ maxRequests: number;
814
+ windowMs: number;
815
+ } | undefined;
816
+ rateLimitState?: {
817
+ lastAttemptTime: number;
818
+ attemptsLeft: number;
819
+ } | undefined;
820
+ expiresAt?: number | undefined;
821
+ name: string;
822
+ userId: import("convex/values").GenericId<"user">;
823
+ createdAt: number;
824
+ revoked: boolean;
825
+ prefix: string;
826
+ hashedKey: string;
827
+ scopes: {
828
+ resource: string;
829
+ actions: string[];
830
+ }[];
831
+ } | null>>;
832
+ /**
833
+ * Patch an API key record. Used for updating name, scopes, rate limit config,
834
+ * revocation, and lastUsedAt / rate limit state tracking.
835
+ */
836
+ export declare const keyPatch: import("convex/server").RegisteredMutation<"public", {
837
+ data: {
838
+ name?: string | undefined;
839
+ lastUsedAt?: number | undefined;
840
+ revoked?: boolean | undefined;
841
+ scopes?: {
842
+ resource: string;
843
+ actions: string[];
844
+ }[] | undefined;
845
+ rateLimit?: {
846
+ maxRequests: number;
847
+ windowMs: number;
848
+ } | undefined;
849
+ rateLimitState?: {
850
+ lastAttemptTime: number;
851
+ attemptsLeft: number;
852
+ } | undefined;
853
+ };
854
+ keyId: import("convex/values").GenericId<"key">;
855
+ }, Promise<void>>;
856
+ /** Hard delete an API key record. */
857
+ export declare const keyDelete: import("convex/server").RegisteredMutation<"public", {
858
+ keyId: import("convex/values").GenericId<"key">;
859
+ }, Promise<void>>;
516
860
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/component/public.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/component/public.ts"],"names":[],"mappings":"AAOA,sBAAsB;AACtB,eAAO,MAAM,QAAQ;;;;;;;;;;;KAKnB,CAAC;AAEH,4CAA4C;AAC5C,eAAO,MAAM,WAAW;;;;;;;;;;;;;UAKtB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;UAUlC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;UAUlC,CAAC;AAEH,kCAAkC;AAClC,eAAO,MAAM,UAAU;;sDAKrB,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,UAAU;;;sDASrB,CAAC;AAEH,yDAAyD;AACzD,eAAO,MAAM,SAAS;;;iBAKpB,CAAC;AAMH,oCAAoC;AACpC,eAAO,MAAM,iBAAiB;;;;;;;;;;;KAQ5B,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,UAAU;;;;;;;;;;;;UAUrB,CAAC;AAEH,8CAA8C;AAC9C,eAAO,MAAM,cAAc;;;;;;;;;;;UAKzB,CAAC;AAEH,+DAA+D;AAC/D,eAAO,MAAM,aAAa;;;;;yDAUxB,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY;;;iBAKvB,CAAC;AAEH,kCAAkC;AAClC,eAAO,MAAM,aAAa;;iBAKxB,CAAC;AAMH,yBAAyB;AACzB,eAAO,MAAM,WAAW;;;;;KAKtB,CAAC;AAEH,+DAA+D;AAC/D,eAAO,MAAM,aAAa;;;yDAQxB,CAAC;AAEH,6CAA6C;AAC7C,eAAO,MAAM,cAAc;;;;;;;UAKzB,CAAC;AAEH,6DAA6D;AAC7D,eAAO,MAAM,aAAa;;iBAOxB,CAAC;AAEH,oCAAoC;AACpC,eAAO,MAAM,iBAAiB;;;;;;;KAQ5B,CAAC;AAMH,kEAAkE;AAClE,eAAO,MAAM,cAAc;;0DAKzB,CAAC;AAEH,8CAA8C;AAC9C,eAAO,MAAM,eAAe;;;;;;;UAK1B,CAAC;AAEH,yDAAyD;AACzD,eAAO,MAAM,sBAAsB;;;;;;;UAQjC,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,aAAa;;;iBAKxB,CAAC;AAEH,kCAAkC;AAClC,eAAO,MAAM,cAAc;;iBAKzB,CAAC;AAMH,6DAA6D;AAC7D,eAAO,MAAM,8BAA8B;;;;;;;;;;;;UAQzC,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;UAQpC,CAAC;AAEH,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB;;;;;;;;8DAajC,CAAC;AAEH,2CAA2C;AAC3C,eAAO,MAAM,sBAAsB;;iBAKjC,CAAC;AAMH,gDAAgD;AAChD,eAAO,MAAM,kBAAkB;;;;uDAS7B,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,mBAAmB;;;;;;;;;UAK9B,CAAC;AAEH,wDAAwD;AACxD,eAAO,MAAM,iBAAiB;;;iBAK5B,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,uBAAuB;;;;;;;;;;KAelC,CAAC;AAEH,6CAA6C;AAC7C,eAAO,MAAM,yBAAyB;;;;;;;;;KAUpC,CAAC;AAEH,+CAA+C;AAC/C,eAAO,MAAM,qBAAqB;;iBAWhC,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB;;;;;;;;;UAUhC,CAAC;AAMH,iDAAiD;AACjD,eAAO,MAAM,aAAa;;;;;;;;;;;yDAgBxB,CAAC;AAEH,8CAA8C;AAC9C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;UAQnC,CAAC;AAEH,oCAAoC;AACpC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;KAQ9B,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB;;;;iBAK/B,CAAC;AAEH,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB;;;iBAK5B,CAAC;AAEH,mCAAmC;AACnC,eAAO,MAAM,aAAa;;iBAKxB,CAAC;AAMH,8CAA8C;AAC9C,eAAO,MAAM,UAAU;;;;;;;;sDAarB,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;UASlC,CAAC;AAEH,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;KAQ3B,CAAC;AAEH,uCAAuC;AACvC,eAAO,MAAM,WAAW;;;;;;;;;;;;;UAKtB,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,gBAAgB;;;iBAK3B,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,kBAAkB;;;iBAK7B,CAAC;AAEH,gCAAgC;AAChC,eAAO,MAAM,UAAU;;iBAKrB,CAAC;AAMH,oDAAoD;AACpD,eAAO,MAAM,YAAY;;;;;;;;UAQvB,CAAC;AAEH,qCAAqC;AACrC,eAAO,MAAM,eAAe;;;;uDAS1B,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,cAAc;;;iBAKzB,CAAC;AAEH,iCAAiC;AACjC,eAAO,MAAM,eAAe;;iBAK1B,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;uDAUtB,CAAC;AAEH,wEAAwE;AACxE,eAAO,MAAM,QAAQ;;;;;;;;;UAKnB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;KAQpB,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,WAAW;;;iBAKtB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;iBAiCtB,CAAC;AAMH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS;;;;;;wDA0BpB,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,SAAS;;;;;;;;;;UAKpB,CAAC;AAEH,4CAA4C;AAC5C,eAAO,MAAM,UAAU;;;;;;;;;;KAQrB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;KAQ3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;UAUlC,CAAC;AAEH,kEAAkE;AAClE,eAAO,MAAM,YAAY;;iBAKvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;iBAKvB,CAAC;AAMH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY;;;;;;;;;wDA2DvB,CAAC;AAEH,0EAA0E;AAC1E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;UAKpB,CAAC;AAEH,yEAAyE;AACzE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;UAQ/B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;KAmCrB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY;;;iBA4BvB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;iBAqBvB,CAAC;AAMH;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;qDA2BpB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;UAQ5B,CAAC;AAEH,oCAAoC;AACpC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;KAQ1B,CAAC;AAEH,6DAA6D;AAC7D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;KAKlB,CAAC;AAEH,2CAA2C;AAC3C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;UAKrB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;iBAwCnB,CAAC;AAEH,qCAAqC;AACrC,eAAO,MAAM,SAAS;;iBAapB,CAAC"}