@estifanos-sh/convex-auth 0.0.2 → 0.0.3

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 (298) hide show
  1. package/README.md +5 -5
  2. package/dist/_generated/component.d.ts +130 -61
  3. package/dist/_generated/component.d.ts.map +1 -1
  4. package/dist/_generated/dataModel.d.ts +28 -0
  5. package/dist/_generated/dataModel.d.ts.map +1 -0
  6. package/dist/bin.js +1 -2
  7. package/dist/browser/index.d.ts +2 -2
  8. package/dist/browser/index.d.ts.map +1 -1
  9. package/dist/browser/index.js.map +1 -1
  10. package/dist/client/core/types.d.ts +40 -79
  11. package/dist/client/core/types.d.ts.map +1 -1
  12. package/dist/client/core/types.js.map +1 -1
  13. package/dist/client/errors.d.ts +15 -0
  14. package/dist/client/errors.d.ts.map +1 -0
  15. package/dist/client/errors.js +8 -1
  16. package/dist/client/errors.js.map +1 -1
  17. package/dist/client/index.d.ts +6 -3
  18. package/dist/client/index.d.ts.map +1 -1
  19. package/dist/client/index.js +3 -2
  20. package/dist/client/index.js.map +1 -1
  21. package/dist/component/_generated/component.d.ts +130 -61
  22. package/dist/component/_generated/component.d.ts.map +1 -1
  23. package/dist/component/_generated/dataModel.d.ts +1 -1
  24. package/dist/component/_generated/server.d.ts +1 -1
  25. package/dist/component/account.d.ts +43 -37
  26. package/dist/component/account.d.ts.map +1 -1
  27. package/dist/component/account.js +14 -16
  28. package/dist/component/account.js.map +1 -1
  29. package/dist/component/connection/audit.d.ts +29 -29
  30. package/dist/component/connection/audit.d.ts.map +1 -1
  31. package/dist/component/connection/audit.js +2 -1
  32. package/dist/component/connection/audit.js.map +1 -1
  33. package/dist/component/connection/cache.d.ts +6 -6
  34. package/dist/component/connection/domain/verification.d.ts +19 -19
  35. package/dist/component/connection/domain.d.ts +20 -20
  36. package/dist/component/connection/saml/assertion.d.ts +4 -4
  37. package/dist/component/connection/saml/request.d.ts +9 -9
  38. package/dist/component/connection/saml/request.d.ts.map +1 -1
  39. package/dist/component/connection/scim/config.d.ts +13 -13
  40. package/dist/component/connection/scim/identity.d.ts +102 -59
  41. package/dist/component/connection/scim/identity.d.ts.map +1 -1
  42. package/dist/component/connection/scim/identity.js +357 -56
  43. package/dist/component/connection/scim/identity.js.map +1 -1
  44. package/dist/component/connection/secret.d.ts +15 -15
  45. package/dist/component/connection/secret.d.ts.map +1 -1
  46. package/dist/component/connection/webhook/delivery.d.ts +69 -53
  47. package/dist/component/connection/webhook/delivery.d.ts.map +1 -1
  48. package/dist/component/connection/webhook/delivery.js +127 -170
  49. package/dist/component/connection/webhook/delivery.js.map +1 -1
  50. package/dist/component/connection/webhook/endpoint.d.ts +21 -21
  51. package/dist/component/connection/webhook/events.d.ts +26 -0
  52. package/dist/component/connection/webhook/events.d.ts.map +1 -0
  53. package/dist/component/connection/webhook/events.js +39 -0
  54. package/dist/component/connection/webhook/events.js.map +1 -0
  55. package/dist/component/connection.d.ts +38 -38
  56. package/dist/component/connection.d.ts.map +1 -1
  57. package/dist/component/context.d.ts +115 -0
  58. package/dist/component/context.d.ts.map +1 -0
  59. package/dist/component/context.js +50 -0
  60. package/dist/component/context.js.map +1 -0
  61. package/dist/component/convex.config.d.ts +2 -2
  62. package/dist/component/crons.d.ts +2 -2
  63. package/dist/component/event.d.ts +134 -138
  64. package/dist/component/event.d.ts.map +1 -1
  65. package/dist/component/event.js +88 -117
  66. package/dist/component/event.js.map +1 -1
  67. package/dist/component/eventstream.d.ts +30 -0
  68. package/dist/component/eventstream.d.ts.map +1 -0
  69. package/dist/component/eventstream.js +51 -0
  70. package/dist/component/eventstream.js.map +1 -0
  71. package/dist/component/factor/device.d.ts +25 -24
  72. package/dist/component/factor/device.d.ts.map +1 -1
  73. package/dist/component/factor/device.js +5 -2
  74. package/dist/component/factor/device.js.map +1 -1
  75. package/dist/component/factor/passkey.d.ts +84 -75
  76. package/dist/component/factor/passkey.d.ts.map +1 -1
  77. package/dist/component/factor/passkey.js +6 -6
  78. package/dist/component/factor/passkey.js.map +1 -1
  79. package/dist/component/factor/totp.d.ts +54 -49
  80. package/dist/component/factor/totp.d.ts.map +1 -1
  81. package/dist/component/factor/totp.js +3 -3
  82. package/dist/component/factor/totp.js.map +1 -1
  83. package/dist/component/group/active.d.ts +326 -22
  84. package/dist/component/group/active.d.ts.map +1 -1
  85. package/dist/component/group/active.js +21 -11
  86. package/dist/component/group/active.js.map +1 -1
  87. package/dist/component/group/invite.d.ts +28 -28
  88. package/dist/component/group/invite.d.ts.map +1 -1
  89. package/dist/component/group/member.d.ts +34 -34
  90. package/dist/component/group.d.ts +47 -62
  91. package/dist/component/group.d.ts.map +1 -1
  92. package/dist/component/http.d.ts +2 -2
  93. package/dist/component/limits.d.ts +4 -4
  94. package/dist/component/maintenance.d.ts +2 -2
  95. package/dist/component/model.d.ts +1362 -1027
  96. package/dist/component/model.d.ts.map +1 -1
  97. package/dist/component/model.js +23 -6
  98. package/dist/component/model.js.map +1 -1
  99. package/dist/component/modules.d.ts +8 -2
  100. package/dist/component/modules.d.ts.map +1 -1
  101. package/dist/component/modules.js +3 -0
  102. package/dist/component/modules.js.map +1 -1
  103. package/dist/component/oauth/client.d.ts +20 -20
  104. package/dist/component/oauth/code.d.ts +14 -14
  105. package/dist/component/oauth/refresh.d.ts +19 -19
  106. package/dist/component/schema.d.ts +1100 -611
  107. package/dist/component/schema.d.ts.map +1 -1
  108. package/dist/component/schema.js +17 -4
  109. package/dist/component/schema.js.map +1 -1
  110. package/dist/component/session.d.ts +72 -32
  111. package/dist/component/session.d.ts.map +1 -1
  112. package/dist/component/session.js +120 -32
  113. package/dist/component/session.js.map +1 -1
  114. package/dist/component/token/continuation.d.ts +40 -18
  115. package/dist/component/token/continuation.d.ts.map +1 -1
  116. package/dist/component/token/continuation.js +57 -11
  117. package/dist/component/token/continuation.js.map +1 -1
  118. package/dist/component/token/pkce.d.ts +22 -22
  119. package/dist/component/token/pkce.d.ts.map +1 -1
  120. package/dist/component/token/refresh.d.ts +39 -35
  121. package/dist/component/token/refresh.d.ts.map +1 -1
  122. package/dist/component/token/refresh.js +11 -6
  123. package/dist/component/token/refresh.js.map +1 -1
  124. package/dist/component/token/verification.d.ts +36 -32
  125. package/dist/component/token/verification.d.ts.map +1 -1
  126. package/dist/component/token/verification.js +3 -3
  127. package/dist/component/token/verification.js.map +1 -1
  128. package/dist/component/user/email.d.ts +21 -21
  129. package/dist/component/user/key.d.ts +35 -35
  130. package/dist/component/user/key.d.ts.map +1 -1
  131. package/dist/component/user.d.ts +51 -45
  132. package/dist/component/user.d.ts.map +1 -1
  133. package/dist/core/index.d.ts +54 -90
  134. package/dist/core/index.d.ts.map +1 -1
  135. package/dist/core/index.js +1 -4
  136. package/dist/core/index.js.map +1 -1
  137. package/dist/expo/index.d.ts +3 -3
  138. package/dist/expo/index.d.ts.map +1 -1
  139. package/dist/expo/index.js.map +1 -1
  140. package/dist/model.js.map +1 -1
  141. package/dist/providers/anonymous.d.ts +11 -5
  142. package/dist/providers/anonymous.d.ts.map +1 -1
  143. package/dist/providers/anonymous.js +4 -1
  144. package/dist/providers/anonymous.js.map +1 -1
  145. package/dist/providers/apple.d.ts +1 -1
  146. package/dist/providers/credentials.d.ts +21 -13
  147. package/dist/providers/credentials.d.ts.map +1 -1
  148. package/dist/providers/credentials.js +2 -0
  149. package/dist/providers/credentials.js.map +1 -1
  150. package/dist/providers/custom.d.ts +3 -3
  151. package/dist/providers/custom.d.ts.map +1 -1
  152. package/dist/providers/custom.js.map +1 -1
  153. package/dist/providers/email.d.ts +3 -3
  154. package/dist/providers/email.d.ts.map +1 -1
  155. package/dist/providers/email.js.map +1 -1
  156. package/dist/providers/github.d.ts +1 -1
  157. package/dist/providers/google.d.ts +1 -1
  158. package/dist/providers/microsoft.d.ts +1 -1
  159. package/dist/providers/password.d.ts +103 -8
  160. package/dist/providers/password.d.ts.map +1 -1
  161. package/dist/providers/password.js +71 -26
  162. package/dist/providers/password.js.map +1 -1
  163. package/dist/providers/phone.d.ts +4 -3
  164. package/dist/providers/phone.d.ts.map +1 -1
  165. package/dist/providers/phone.js.map +1 -1
  166. package/dist/react/index.d.ts +40 -41
  167. package/dist/react/index.d.ts.map +1 -1
  168. package/dist/react/index.js +27 -52
  169. package/dist/react/index.js.map +1 -1
  170. package/dist/server/auth.d.ts +157 -117
  171. package/dist/server/auth.d.ts.map +1 -1
  172. package/dist/server/auth.js +41 -22
  173. package/dist/server/auth.js.map +1 -1
  174. package/dist/server/component/factor/db.js +4 -4
  175. package/dist/server/component/factor/db.js.map +1 -1
  176. package/dist/server/config.d.ts +2 -1
  177. package/dist/server/connection/domain.d.ts +4 -66
  178. package/dist/server/connection/domain.d.ts.map +1 -1
  179. package/dist/server/connection/domain.js +22 -4
  180. package/dist/server/connection/domain.js.map +1 -1
  181. package/dist/server/connection/group/service.js +6 -4
  182. package/dist/server/connection/group/service.js.map +1 -1
  183. package/dist/server/connection/http.js +94 -261
  184. package/dist/server/connection/http.js.map +1 -1
  185. package/dist/server/connection/oidc.js +8 -17
  186. package/dist/server/connection/oidc.js.map +1 -1
  187. package/dist/server/connection/policy/domain.js +4 -1
  188. package/dist/server/connection/policy/domain.js.map +1 -1
  189. package/dist/server/connection/policy.js +14 -13
  190. package/dist/server/connection/policy.js.map +1 -1
  191. package/dist/server/connection/provision.js +5 -19
  192. package/dist/server/connection/provision.js.map +1 -1
  193. package/dist/server/connection/webhook.js +4 -36
  194. package/dist/server/connection/webhook.js.map +1 -1
  195. package/dist/server/context.d.ts +2 -2
  196. package/dist/server/context.d.ts.map +1 -1
  197. package/dist/server/context.js +35 -24
  198. package/dist/server/context.js.map +1 -1
  199. package/dist/server/contract.d.ts.map +1 -1
  200. package/dist/server/contract.js +6 -14
  201. package/dist/server/contract.js.map +1 -1
  202. package/dist/server/core.js +6 -0
  203. package/dist/server/core.js.map +1 -1
  204. package/dist/server/cors.d.ts +2 -2
  205. package/dist/server/cors.d.ts.map +1 -1
  206. package/dist/server/crypto.js.map +1 -1
  207. package/dist/server/db.js +2 -1
  208. package/dist/server/db.js.map +1 -1
  209. package/dist/server/domains/context.js +34 -0
  210. package/dist/server/domains/context.js.map +1 -0
  211. package/dist/server/domains/factor.d.ts +3 -2
  212. package/dist/server/domains/factor.d.ts.map +1 -1
  213. package/dist/server/domains/factor.js.map +1 -1
  214. package/dist/server/domains/group.js.map +1 -1
  215. package/dist/server/domains/invite.js.map +1 -1
  216. package/dist/server/domains/key.js.map +1 -1
  217. package/dist/server/domains/member.js.map +1 -1
  218. package/dist/server/domains/session.js.map +1 -1
  219. package/dist/server/domains/user.js.map +1 -1
  220. package/dist/server/env.js +2 -22
  221. package/dist/server/env.js.map +1 -1
  222. package/dist/server/events.d.ts +0 -1
  223. package/dist/server/events.d.ts.map +1 -1
  224. package/dist/server/events.js +6 -6
  225. package/dist/server/events.js.map +1 -1
  226. package/dist/server/http.d.ts +1 -0
  227. package/dist/server/http.d.ts.map +1 -1
  228. package/dist/server/http.js +4 -4
  229. package/dist/server/http.js.map +1 -1
  230. package/dist/server/identity/claims.js +1 -1
  231. package/dist/server/identity/convex.d.ts +2 -0
  232. package/dist/server/identity/convex.d.ts.map +1 -1
  233. package/dist/server/index.d.ts +2 -3
  234. package/dist/server/index.js +1 -2
  235. package/dist/server/limits.js +21 -1
  236. package/dist/server/limits.js.map +1 -1
  237. package/dist/server/mutations/credentials/signin.js +6 -3
  238. package/dist/server/mutations/credentials/signin.js.map +1 -1
  239. package/dist/server/mutations/invalidate.js +5 -10
  240. package/dist/server/mutations/invalidate.js.map +1 -1
  241. package/dist/server/mutations/oauth.js +1 -1
  242. package/dist/server/mutations/oauth.js.map +1 -1
  243. package/dist/server/mutations/retrieve.js +4 -1
  244. package/dist/server/mutations/retrieve.js.map +1 -1
  245. package/dist/server/mutations/signin.js +2 -2
  246. package/dist/server/mutations/signin.js.map +1 -1
  247. package/dist/server/mutations/verify.js +4 -3
  248. package/dist/server/mutations/verify.js.map +1 -1
  249. package/dist/server/oauth/factory.js.map +1 -1
  250. package/dist/server/runtime.d.ts +107 -127
  251. package/dist/server/runtime.d.ts.map +1 -1
  252. package/dist/server/runtime.js +43 -28
  253. package/dist/server/runtime.js.map +1 -1
  254. package/dist/server/session/lifecycle.d.ts.map +1 -1
  255. package/dist/server/session/lifecycle.js +18 -3
  256. package/dist/server/session/lifecycle.js.map +1 -1
  257. package/dist/server/signin/flow.js +1 -1
  258. package/dist/server/signin/flow.js.map +1 -1
  259. package/dist/server/tokens.js +1 -0
  260. package/dist/server/tokens.js.map +1 -1
  261. package/dist/server/totp.js +3 -3
  262. package/dist/server/totp.js.map +1 -1
  263. package/dist/server/types.d.ts +63 -43
  264. package/dist/server/types.d.ts.map +1 -1
  265. package/dist/server/user/account.js +0 -1
  266. package/dist/server/user/account.js.map +1 -1
  267. package/dist/server/validators.d.ts +874 -917
  268. package/dist/server/validators.d.ts.map +1 -1
  269. package/dist/server/validators.js +33 -32
  270. package/dist/server/validators.js.map +1 -1
  271. package/dist/server/webauthn.js +4 -4
  272. package/dist/server/webauthn.js.map +1 -1
  273. package/dist/shared/brand.d.ts +3 -7
  274. package/dist/shared/brand.d.ts.map +1 -1
  275. package/dist/shared/params.d.ts +78 -0
  276. package/dist/shared/params.d.ts.map +1 -0
  277. package/dist/shared/results.d.ts +7 -1
  278. package/dist/shared/results.d.ts.map +1 -1
  279. package/dist/svelte/context.svelte.d.ts +23 -12
  280. package/dist/svelte/context.svelte.d.ts.map +1 -1
  281. package/dist/svelte/context.svelte.js +20 -13
  282. package/dist/svelte/index.d.ts +1 -4
  283. package/dist/svelte/index.d.ts.map +1 -1
  284. package/dist/svelte/index.js +1 -4
  285. package/dist/test.d.ts +1105 -611
  286. package/dist/test.d.ts.map +1 -1
  287. package/package.json +2 -1
  288. package/dist/server/env.d.ts +0 -28
  289. package/dist/server/env.d.ts.map +0 -1
  290. package/dist/svelte/AuthLoading.svelte +0 -13
  291. package/dist/svelte/AuthLoading.svelte.d.ts +0 -8
  292. package/dist/svelte/AuthLoading.svelte.d.ts.map +0 -1
  293. package/dist/svelte/SignedIn.svelte +0 -14
  294. package/dist/svelte/SignedIn.svelte.d.ts +0 -8
  295. package/dist/svelte/SignedIn.svelte.d.ts.map +0 -1
  296. package/dist/svelte/SignedOut.svelte +0 -13
  297. package/dist/svelte/SignedOut.svelte.d.ts +0 -8
  298. package/dist/svelte/SignedOut.svelte.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","names":[],"sources":["../../src/server/validators.ts"],"mappings":"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"}
1
+ {"version":3,"file":"validators.d.ts","names":[],"sources":["../../src/server/validators.ts"],"mappings":";;;;;;;;;;;;KAoDY,oBAAA;EASP,8BAPH,IAAA,GAAO,SAAA,iBAOK;EALZ,KAAA,GAAQ,SAAA,iBAK2D;EAHnE,WAAA,GAAc,SAAA;AAAA;AAAA,KAGX,SAAA,iBAA0B,oBAAA,kBAAsC,oBAAA,IACnE,OAAA,CAAQ,CAAA,UAAW,SAAA,kBAA2B,OAAA,CAAQ,CAAA,IAAK,UAAA,QAAkB,CAAA,CAAE,GAAA;;;;;;;;;;;;;;;;;;;;iBAkUjE,oBAAA,iBAAqC,oBAAA,CAAA,CACnD,MAAA,GAAQ,OAAA;EADM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkDJ,cAAA,iBAA+B,oBAAA,SAA6B,UAAA,QAC/D,oBAAA,CAAqB,OAAA;;;;;;KAQlB,MAAA,iBAAuB,oBAAA,SAA6B,KAAA,CAC9D,cAAA,CAAe,OAAA;;;;;;KAOL,KAAA,iBAAsB,oBAAA,SAA6B,KAAA,CAC7D,cAAA,CAAe,OAAA;;;;;;KAOL,UAAA,iBAA2B,oBAAA,SAA6B,KAAA,CAClE,cAAA,CAAe,OAAA"}
@@ -36,15 +36,15 @@ const vConnectionCheck = v.object({
36
36
  ok: v.boolean(),
37
37
  message: v.optional(v.string())
38
38
  });
39
- const vConnectionIdResult = v.object({ connectionId: v.string() });
39
+ const vConnectionIdResult = v.object({ connectionId: vIdString("GroupConnection") });
40
40
  const vConnectionGroupResult = v.object({
41
- connectionId: v.string(),
42
- groupId: v.string()
41
+ connectionId: vIdString("GroupConnection"),
42
+ groupId: vIdString("Group")
43
43
  });
44
44
  const vConnectionDoc = v.object({
45
- _id: v.string(),
45
+ _id: vIdString("GroupConnection"),
46
46
  _creationTime: v.number(),
47
- groupId: v.string(),
47
+ groupId: vIdString("Group"),
48
48
  slug: v.optional(v.string()),
49
49
  name: v.optional(v.string()),
50
50
  protocol: vGroupConnectionProtocol,
@@ -53,10 +53,10 @@ const vConnectionDoc = v.object({
53
53
  extend: v.optional(v.any())
54
54
  });
55
55
  const vConnectionDomainDoc = v.object({
56
- _id: v.string(),
56
+ _id: vIdString("GroupConnectionDomain"),
57
57
  _creationTime: v.number(),
58
- connectionId: v.string(),
59
- groupId: v.string(),
58
+ connectionId: vIdString("GroupConnection"),
59
+ groupId: vIdString("Group"),
60
60
  domain: v.string(),
61
61
  isPrimary: v.boolean(),
62
62
  verifiedAt: v.optional(v.number())
@@ -66,14 +66,14 @@ const vConnectionLookup = v.union(v.object({
66
66
  domain: v.union(vConnectionDomainDoc, v.null())
67
67
  }), v.null());
68
68
  const vConnectionDomainSummary = v.object({
69
- domainId: v.string(),
69
+ domainId: vIdString("GroupConnectionDomain"),
70
70
  domain: v.string(),
71
71
  isPrimary: v.boolean(),
72
72
  verified: v.boolean(),
73
73
  verifiedAt: vNullableNumber
74
74
  });
75
75
  const vConnectionDomainValidation = v.object({
76
- connectionId: v.string(),
76
+ connectionId: vIdString("GroupConnection"),
77
77
  ready: v.boolean(),
78
78
  summary: v.object({
79
79
  domainCount: v.number(),
@@ -84,11 +84,11 @@ const vConnectionDomainValidation = v.object({
84
84
  warnings: v.array(v.string())
85
85
  });
86
86
  const vConnectionDomainSet = v.object({
87
- connectionId: v.string(),
87
+ connectionId: vIdString("GroupConnection"),
88
88
  domains: v.array(vConnectionDomainSummary)
89
89
  });
90
90
  const vConnectionDomainVerificationRequest = v.object({
91
- connectionId: v.string(),
91
+ connectionId: vIdString("GroupConnection"),
92
92
  domain: v.string(),
93
93
  requestedAt: v.number(),
94
94
  expiresAt: v.number(),
@@ -99,13 +99,13 @@ const vConnectionDomainVerificationRequest = v.object({
99
99
  })
100
100
  });
101
101
  const vConnectionDomainVerificationConfirm = v.object({
102
- connectionId: v.string(),
102
+ connectionId: vIdString("GroupConnection"),
103
103
  domain: v.string(),
104
104
  verifiedAt: v.optional(v.number()),
105
105
  checks: v.array(vConnectionCheck)
106
106
  });
107
107
  const vConnectionStatus = v.object({
108
- connectionId: v.string(),
108
+ connectionId: vIdString("GroupConnection"),
109
109
  status: vGroupConnectionStatus,
110
110
  ready: v.boolean(),
111
111
  domainCount: v.number(),
@@ -140,20 +140,20 @@ const vConnectionOidcConfig = v.object({
140
140
  });
141
141
  const vConnectionValidation = v.object({
142
142
  ok: v.boolean(),
143
- connectionId: v.string(),
143
+ connectionId: vIdString("GroupConnection"),
144
144
  checks: v.array(vConnectionCheck)
145
145
  });
146
146
  const vConnectionPolicyValidation = v.object({
147
147
  ok: v.boolean(),
148
- groupId: v.string(),
148
+ groupId: vIdString("Group"),
149
149
  policy: v.optional(vGroupConnectionPolicy),
150
150
  checks: v.array(vConnectionCheck)
151
151
  });
152
152
  const vConnectionScimConfig = v.object({
153
- _id: v.string(),
153
+ _id: vIdString("GroupConnectionScimConfig"),
154
154
  _creationTime: v.number(),
155
- connectionId: v.string(),
156
- groupId: v.string(),
155
+ connectionId: vIdString("GroupConnection"),
156
+ groupId: vIdString("Group"),
157
157
  status: vScimStatus,
158
158
  basePath: v.string(),
159
159
  lastRotatedAt: v.optional(v.number()),
@@ -163,14 +163,14 @@ const vConnectionScimConfig = v.object({
163
163
  profile: v.optional(v.any())
164
164
  });
165
165
  const vConnectionScimSet = v.object({
166
- connectionId: v.string(),
167
- configId: v.string(),
166
+ connectionId: vIdString("GroupConnection"),
167
+ configId: vIdString("GroupConnectionScimConfig"),
168
168
  basePath: v.string(),
169
169
  token: v.string()
170
170
  });
171
171
  const vConnectionScimValidation = v.object({
172
172
  ok: v.boolean(),
173
- connectionId: v.string(),
173
+ connectionId: vIdString("GroupConnection"),
174
174
  basePath: v.optional(v.string()),
175
175
  deprovisionMode: v.optional(v.union(v.literal("soft"), v.literal("hard"))),
176
176
  capabilities: v.optional(v.object({
@@ -185,7 +185,7 @@ const vConnectionScimValidation = v.object({
185
185
  checks: v.array(vConnectionCheck)
186
186
  });
187
187
  const vConnectionSignIn = v.object({
188
- connectionId: v.string(),
188
+ connectionId: vIdString("GroupConnection"),
189
189
  providerId: v.string(),
190
190
  protocol: vGroupConnectionProtocol,
191
191
  signInPath: v.string(),
@@ -193,7 +193,7 @@ const vConnectionSignIn = v.object({
193
193
  redirectTo: v.optional(v.string())
194
194
  });
195
195
  const vConnectionAuditEvent = v.object({
196
- _id: v.string(),
196
+ _id: vIdString("AuthEventProjection"),
197
197
  _creationTime: v.number(),
198
198
  eventId: v.string(),
199
199
  targetKind: vAuthEventTargetKind,
@@ -212,24 +212,24 @@ const vConnectionAuditEvent = v.object({
212
212
  data: v.optional(vAuthEventData)
213
213
  });
214
214
  const vConnectionWebhookEndpoint = v.object({
215
- _id: v.string(),
215
+ _id: vIdString("GroupWebhookEndpoint"),
216
216
  _creationTime: v.number(),
217
- connectionId: v.string(),
218
- groupId: v.string(),
217
+ connectionId: vIdString("GroupConnection"),
218
+ groupId: vIdString("Group"),
219
219
  url: v.string(),
220
220
  status: vWebhookEndpointStatus,
221
221
  subscriptions: v.array(vAuthEventKind),
222
- createdByUserId: v.optional(v.string()),
222
+ createdByUserId: v.optional(vIdString("User")),
223
223
  lastSuccessAt: v.optional(v.number()),
224
224
  lastFailureAt: v.optional(v.number()),
225
225
  failureCount: v.number(),
226
226
  extend: v.optional(v.any())
227
227
  });
228
228
  const vConnectionWebhookDelivery = v.object({
229
- _id: v.string(),
229
+ _id: vIdString("GroupWebhookDelivery"),
230
230
  _creationTime: v.number(),
231
- connectionId: v.string(),
232
- endpointId: v.string(),
231
+ connectionId: vIdString("GroupConnection"),
232
+ endpointId: vIdString("GroupWebhookEndpoint"),
233
233
  eventId: v.string(),
234
234
  kind: vAuthEventKind,
235
235
  status: vWebhookDeliveryStatus,
@@ -278,7 +278,7 @@ const connectionValidators = {
278
278
  webhook: {
279
279
  endpoint: vConnectionWebhookEndpoint,
280
280
  delivery: vConnectionWebhookDelivery,
281
- disabled: v.object({ endpointId: v.string() })
281
+ disabled: v.object({ endpointId: vIdString("GroupWebhookEndpoint") })
282
282
  }
283
283
  };
284
284
  /**
@@ -303,6 +303,7 @@ const connectionValidators = {
303
303
  function createAuthValidators(extend = {}) {
304
304
  const user = docWithExtend(userFieldsX, extend.User ?? v.any());
305
305
  return {
306
+ id: vIdString,
306
307
  user,
307
308
  group: docWithExtend(groupFieldsX, extend.Group ?? v.any()),
308
309
  member: docWithExtend(memberFieldsX, extend.GroupMember ?? v.any()),
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","names":[],"sources":["../../src/server/validators.ts"],"sourcesContent":["/**\n * Public Convex `returns:` validators for the auth read surface.\n *\n * These back the `auth.v` namespace on the {@link defineAuth} result.\n * Consumers set them as their function `returns:` so client-side\n * `useQuery` inference flows end-to-end with zero hand-rolled validators\n * or DTO mappers. The `extend` field on User/Group/GroupMember is\n * replaced with the validator the consumer supplied via\n * `defineAuth({ extend: { ... } })`, so `viewer.extend.<field>` is fully\n * typed instead of `any`.\n *\n * @module\n */\n\nimport { type GenericId, type Infer, v, type VId, type Validator } from \"convex/values\";\n\nimport {\n vAuthEventActorType,\n vAuthEventCategory,\n vAuthEventData,\n vAuthEventKind,\n vAuthEventOutcome,\n vAuthEventSubjectType,\n vAuthEventTargetKind,\n emailFields,\n groupFields,\n type IdValidatorFn,\n inviteFields,\n memberFields,\n userFields,\n vGroupConnectionPolicy,\n vGroupConnectionProtocol,\n vGroupConnectionStatus,\n vPaginated,\n vScimStatus,\n vWebhookDeliveryStatus,\n vWebhookEndpointStatus,\n} from \"../component/model\";\n\n/**\n * `Id<T>` at the type level, `v.string()` at runtime — for cross-component\n * fields where the consumer's data model lacks the component's table tag.\n */\nconst vIdString: IdValidatorFn = <T extends string>(_table: T) =>\n v.string() as unknown as VId<GenericId<T>, \"required\">;\n\n/**\n * Validators a consumer may supply for the `extend` field of each table.\n *\n * Passed as `defineAuth({ extend })`. Every entry is optional; a missing\n * entry falls back to `v.any()`, preserving the untyped default.\n */\nexport type AuthExtendValidators = {\n /** Shape of `User.extend`. */\n User?: Validator<any, any, any>;\n /** Shape of `Group.extend`. */\n Group?: Validator<any, any, any>;\n /** Shape of `GroupMember.extend`. */\n GroupMember?: Validator<any, any, any>;\n};\n\ntype ExtendFor<TExtend extends AuthExtendValidators, K extends keyof AuthExtendValidators> =\n TExtend[K] extends Validator<any, any, any> ? TExtend[K] : ReturnType<typeof v.any>;\n\nconst docWithExtend = <\n Fields extends Record<string, Validator<any, any, any>>,\n E extends Validator<any, any, any>,\n>(\n fields: Fields,\n extend: E,\n) =>\n v.object({\n ...(fields as Omit<Fields, \"extend\">),\n extend: v.optional(extend),\n });\n\nconst userFieldsX = userFields(vIdString);\nconst groupFieldsX = groupFields(vIdString);\nconst memberFieldsX = memberFields(vIdString);\nconst inviteDocX = v.object(inviteFields(vIdString));\nconst emailDocX = v.object(emailFields(vIdString));\n\nconst vNullableString = v.union(v.string(), v.null());\nconst vNullableNumber = v.union(v.number(), v.null());\n\nconst vConnectionCheck = v.object({\n name: v.string(),\n ok: v.boolean(),\n message: v.optional(v.string()),\n});\n\nconst vConnectionIdResult = v.object({ connectionId: v.string() });\n\nconst vConnectionGroupResult = v.object({\n connectionId: v.string(),\n groupId: v.string(),\n});\n\nconst vConnectionDoc = v.object({\n _id: v.string(),\n _creationTime: v.number(),\n groupId: v.string(),\n slug: v.optional(v.string()),\n name: v.optional(v.string()),\n protocol: vGroupConnectionProtocol,\n status: vGroupConnectionStatus,\n config: v.optional(v.any()),\n extend: v.optional(v.any()),\n});\n\nconst vConnectionDomainDoc = v.object({\n _id: v.string(),\n _creationTime: v.number(),\n connectionId: v.string(),\n groupId: v.string(),\n domain: v.string(),\n isPrimary: v.boolean(),\n verifiedAt: v.optional(v.number()),\n});\n\nconst vConnectionLookup = v.union(\n v.object({\n connection: v.union(vConnectionDoc, v.null()),\n domain: v.union(vConnectionDomainDoc, v.null()),\n }),\n v.null(),\n);\n\nconst vConnectionDomainSummary = v.object({\n domainId: v.string(),\n domain: v.string(),\n isPrimary: v.boolean(),\n verified: v.boolean(),\n verifiedAt: vNullableNumber,\n});\n\nconst vConnectionDomainValidation = v.object({\n connectionId: v.string(),\n ready: v.boolean(),\n summary: v.object({\n domainCount: v.number(),\n primaryCount: v.number(),\n verifiedCount: v.number(),\n }),\n domains: v.array(vConnectionDomainSummary),\n warnings: v.array(v.string()),\n});\n\nconst vConnectionDomainSet = v.object({\n connectionId: v.string(),\n domains: v.array(vConnectionDomainSummary),\n});\n\nconst vConnectionDomainVerificationRequest = v.object({\n connectionId: v.string(),\n domain: v.string(),\n requestedAt: v.number(),\n expiresAt: v.number(),\n challenge: v.object({\n recordType: v.literal(\"TXT\"),\n recordName: v.string(),\n recordValue: v.string(),\n }),\n});\n\nconst vConnectionDomainVerificationConfirm = v.object({\n connectionId: v.string(),\n domain: v.string(),\n verifiedAt: v.optional(v.number()),\n checks: v.array(vConnectionCheck),\n});\n\nconst vConnectionStatus = v.object({\n connectionId: v.string(),\n status: vGroupConnectionStatus,\n ready: v.boolean(),\n domainCount: v.number(),\n protocols: v.object({\n oidc: v.object({\n configured: v.boolean(),\n ready: v.boolean(),\n clientId: vNullableString,\n issuer: vNullableString,\n }),\n saml: v.object({\n configured: v.boolean(),\n ready: v.boolean(),\n entityId: vNullableString,\n }),\n scim: v.object({\n configured: v.boolean(),\n ready: v.boolean(),\n basePath: vNullableString,\n deprovisionMode: v.union(v.literal(\"soft\"), v.literal(\"hard\")),\n }),\n }),\n});\n\nconst vConnectionOidcConfig = v.object({\n enabled: v.optional(v.boolean()),\n discovery: v.optional(v.any()),\n client: v.optional(v.any()),\n request: v.optional(v.any()),\n security: v.optional(v.any()),\n profile: v.optional(v.any()),\n hasClientSecret: v.optional(v.boolean()),\n});\n\nconst vConnectionValidation = v.object({\n ok: v.boolean(),\n connectionId: v.string(),\n checks: v.array(vConnectionCheck),\n});\n\nconst vConnectionPolicyValidation = v.object({\n ok: v.boolean(),\n groupId: v.string(),\n policy: v.optional(vGroupConnectionPolicy),\n checks: v.array(vConnectionCheck),\n});\n\nconst vConnectionScimConfig = v.object({\n _id: v.string(),\n _creationTime: v.number(),\n connectionId: v.string(),\n groupId: v.string(),\n status: vScimStatus,\n basePath: v.string(),\n lastRotatedAt: v.optional(v.number()),\n extend: v.optional(v.any()),\n hasToken: v.boolean(),\n security: v.optional(v.any()),\n profile: v.optional(v.any()),\n});\n\nconst vConnectionScimSet = v.object({\n connectionId: v.string(),\n configId: v.string(),\n basePath: v.string(),\n token: v.string(),\n});\n\nconst vConnectionScimValidation = v.object({\n ok: v.boolean(),\n connectionId: v.string(),\n basePath: v.optional(v.string()),\n deprovisionMode: v.optional(v.union(v.literal(\"soft\"), v.literal(\"hard\"))),\n capabilities: v.optional(\n v.object({\n users: v.boolean(),\n groups: v.boolean(),\n patch: v.boolean(),\n put: v.boolean(),\n filters: v.array(v.string()),\n bulk: v.boolean(),\n etag: v.boolean(),\n }),\n ),\n checks: v.array(vConnectionCheck),\n});\n\nconst vConnectionSignIn = v.object({\n connectionId: v.string(),\n providerId: v.string(),\n protocol: vGroupConnectionProtocol,\n signInPath: v.string(),\n callbackPath: v.string(),\n redirectTo: v.optional(v.string()),\n});\n\nconst vConnectionAuditEvent = v.object({\n _id: v.string(),\n _creationTime: v.number(),\n eventId: v.string(),\n targetKind: vAuthEventTargetKind,\n targetId: v.string(),\n kind: vAuthEventKind,\n category: vAuthEventCategory,\n occurredAt: v.number(),\n actorType: vAuthEventActorType,\n actorId: v.optional(v.string()),\n subjectType: vAuthEventSubjectType,\n subjectId: v.optional(v.string()),\n outcome: vAuthEventOutcome,\n errorCode: v.optional(v.string()),\n requestId: v.optional(v.string()),\n ip: v.optional(v.string()),\n data: v.optional(vAuthEventData),\n});\n\nconst vConnectionWebhookEndpoint = v.object({\n _id: v.string(),\n _creationTime: v.number(),\n connectionId: v.string(),\n groupId: v.string(),\n url: v.string(),\n status: vWebhookEndpointStatus,\n subscriptions: v.array(vAuthEventKind),\n createdByUserId: v.optional(v.string()),\n lastSuccessAt: v.optional(v.number()),\n lastFailureAt: v.optional(v.number()),\n failureCount: v.number(),\n extend: v.optional(v.any()),\n});\n\nconst vConnectionWebhookDelivery = v.object({\n _id: v.string(),\n _creationTime: v.number(),\n connectionId: v.string(),\n endpointId: v.string(),\n eventId: v.string(),\n kind: vAuthEventKind,\n status: vWebhookDeliveryStatus,\n attemptCount: v.number(),\n nextAttemptAt: v.number(),\n lastAttemptAt: v.optional(v.number()),\n lastResponseStatus: v.optional(v.number()),\n lastError: v.optional(v.string()),\n signedAt: v.number(),\n});\n\nconst connectionValidators = {\n protocol: vGroupConnectionProtocol,\n doc: vConnectionDoc,\n lookup: vConnectionLookup,\n id: vConnectionIdResult,\n created: vConnectionGroupResult,\n status: vConnectionStatus,\n validation: vConnectionValidation,\n signIn: vConnectionSignIn,\n domain: {\n doc: vConnectionDomainDoc,\n summary: vConnectionDomainSummary,\n validation: vConnectionDomainValidation,\n upsert: vConnectionDomainSet,\n verificationRequest: vConnectionDomainVerificationRequest,\n verificationConfirm: vConnectionDomainVerificationConfirm,\n },\n oidc: {\n config: vConnectionOidcConfig,\n validation: vConnectionValidation,\n },\n saml: {\n validation: vConnectionValidation,\n metadata: v.string(),\n },\n policy: {\n config: vGroupConnectionPolicy,\n validation: vConnectionPolicyValidation,\n },\n scim: {\n config: vConnectionScimConfig,\n upsert: vConnectionScimSet,\n validation: vConnectionScimValidation,\n },\n audit: {\n event: vConnectionAuditEvent,\n },\n webhook: {\n endpoint: vConnectionWebhookEndpoint,\n delivery: vConnectionWebhookDelivery,\n disabled: v.object({ endpointId: v.string() }),\n },\n};\n\n/**\n * Build the `auth.v.*` validator namespace from the consumer's `extend`\n * config. Each doc validator's `extend` field is rebuilt with the\n * supplied validator so the inferred type carries the real shape.\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n * @param extend - The `extend` map from `defineAuth` config. Defaults to\n * an empty object (all `extend` fields stay `v.any()`).\n * @returns The `auth.v` namespace: `user`, `group`, `member`, `invite`,\n * `viewer`, `viewerWithGroups`, and the `list` page-wrapper helper.\n *\n * @example\n * ```ts\n * const av = createAuthValidators({\n * User: v.object({ stripeCustomerId: v.optional(v.string()) }),\n * });\n * // Infer<typeof av.viewer> -> User document with typed `extend`\n * ```\n */\nexport function createAuthValidators<TExtend extends AuthExtendValidators>(\n extend: TExtend = {} as TExtend,\n) {\n const user = docWithExtend<typeof userFieldsX, ExtendFor<TExtend, \"User\">>(\n userFieldsX,\n (extend.User ?? v.any()) as ExtendFor<TExtend, \"User\">,\n );\n const group = docWithExtend<typeof groupFieldsX, ExtendFor<TExtend, \"Group\">>(\n groupFieldsX,\n (extend.Group ?? v.any()) as ExtendFor<TExtend, \"Group\">,\n );\n const member = docWithExtend<typeof memberFieldsX, ExtendFor<TExtend, \"GroupMember\">>(\n memberFieldsX,\n (extend.GroupMember ?? v.any()) as ExtendFor<TExtend, \"GroupMember\">,\n );\n const invite = inviteDocX;\n const email = emailDocX;\n const viewer = v.union(user, v.null());\n\n return {\n /** Single User document validator (extend-aware). */\n user,\n /** Single Group document validator (extend-aware). */\n group,\n /** Single GroupMember document validator (extend-aware). */\n member,\n /** Single GroupInvite document validator. */\n invite,\n /** Single UserEmail document validator. */\n email,\n /** `User | null` — for a `viewer`/current-user query. */\n viewer,\n /** Wrap any item validator in Convex's native pagination result shape. */\n list: vPaginated,\n /** Validators for the group connection admin facade. */\n connection: connectionValidators,\n };\n}\n\n/**\n * The `auth.v` namespace type, parameterized by the consumer's `extend`.\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n */\nexport type AuthValidators<TExtend extends AuthExtendValidators = {}> = ReturnType<\n typeof createAuthValidators<TExtend>\n>;\n\n/**\n * Inferred current-user document type (extend-aware).\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n */\nexport type Viewer<TExtend extends AuthExtendValidators = {}> = Infer<\n AuthValidators<TExtend>[\"user\"]\n>;\n/**\n * Inferred Group document type (extend-aware).\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n */\nexport type Group<TExtend extends AuthExtendValidators = {}> = Infer<\n AuthValidators<TExtend>[\"group\"]\n>;\n/**\n * Inferred GroupMember document type (extend-aware).\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n */\nexport type Membership<TExtend extends AuthExtendValidators = {}> = Infer<\n AuthValidators<TExtend>[\"member\"]\n>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"validators.js","names":[],"sources":["../../src/server/validators.ts"],"sourcesContent":["/**\n * Public Convex `returns:` validators for the auth read surface.\n *\n * These back the `auth.v` namespace on the {@link defineAuth} result.\n * Consumers set them as their function `returns:` so client-side\n * `useQuery` inference flows end-to-end with zero hand-rolled validators\n * or DTO mappers. The `extend` field on User/Group/GroupMember is\n * replaced with the validator the consumer supplied via\n * `defineAuth({ extend: { ... } })`, so `viewer.extend.<field>` is fully\n * typed instead of `any`.\n *\n * @module\n */\n\nimport { type GenericId, type Infer, v, type VId, type Validator } from \"convex/values\";\n\nimport {\n vAuthEventActorType,\n vAuthEventCategory,\n vAuthEventData,\n vAuthEventKind,\n vAuthEventOutcome,\n vAuthEventSubjectType,\n vAuthEventTargetKind,\n emailFields,\n groupFields,\n type IdValidatorFn,\n inviteFields,\n memberFields,\n userFields,\n vGroupConnectionPolicy,\n vGroupConnectionProtocol,\n vGroupConnectionStatus,\n vPaginated,\n vScimStatus,\n vWebhookDeliveryStatus,\n vWebhookEndpointStatus,\n} from \"../component/model\";\n\n/**\n * `Id<T>` at the type level, `v.string()` at runtime — for cross-component\n * fields where the consumer's data model lacks the component's table tag.\n */\nconst vIdString: IdValidatorFn = <T extends string>(_table: T) =>\n v.string() as unknown as VId<GenericId<T>, \"required\">;\n\n/**\n * Validators a consumer may supply for the `extend` field of each table.\n *\n * Passed as `defineAuth({ extend })`. Every entry is optional; a missing\n * entry falls back to `v.any()`, preserving the untyped default.\n */\nexport type AuthExtendValidators = {\n /** Shape of `User.extend`. */\n User?: Validator<any, any, any>;\n /** Shape of `Group.extend`. */\n Group?: Validator<any, any, any>;\n /** Shape of `GroupMember.extend`. */\n GroupMember?: Validator<any, any, any>;\n};\n\ntype ExtendFor<TExtend extends AuthExtendValidators, K extends keyof AuthExtendValidators> =\n TExtend[K] extends Validator<any, any, any> ? TExtend[K] : ReturnType<typeof v.any>;\n\nconst docWithExtend = <\n Fields extends Record<string, Validator<any, any, any>>,\n E extends Validator<any, any, any>,\n>(\n fields: Fields,\n extend: E,\n) =>\n v.object({\n ...(fields as Omit<Fields, \"extend\">),\n extend: v.optional(extend),\n });\n\nconst userFieldsX = userFields(vIdString);\nconst groupFieldsX = groupFields(vIdString);\nconst memberFieldsX = memberFields(vIdString);\nconst inviteDocX = v.object(inviteFields(vIdString));\nconst emailDocX = v.object(emailFields(vIdString));\n\nconst vNullableString = v.union(v.string(), v.null());\nconst vNullableNumber = v.union(v.number(), v.null());\n\nconst vConnectionCheck = v.object({\n name: v.string(),\n ok: v.boolean(),\n message: v.optional(v.string()),\n});\n\nconst vConnectionIdResult = v.object({ connectionId: vIdString(\"GroupConnection\") });\n\nconst vConnectionGroupResult = v.object({\n connectionId: vIdString(\"GroupConnection\"),\n groupId: vIdString(\"Group\"),\n});\n\nconst vConnectionDoc = v.object({\n _id: vIdString(\"GroupConnection\"),\n _creationTime: v.number(),\n groupId: vIdString(\"Group\"),\n slug: v.optional(v.string()),\n name: v.optional(v.string()),\n protocol: vGroupConnectionProtocol,\n status: vGroupConnectionStatus,\n config: v.optional(v.any()),\n extend: v.optional(v.any()),\n});\n\nconst vConnectionDomainDoc = v.object({\n _id: vIdString(\"GroupConnectionDomain\"),\n _creationTime: v.number(),\n connectionId: vIdString(\"GroupConnection\"),\n groupId: vIdString(\"Group\"),\n domain: v.string(),\n isPrimary: v.boolean(),\n verifiedAt: v.optional(v.number()),\n});\n\nconst vConnectionLookup = v.union(\n v.object({\n connection: v.union(vConnectionDoc, v.null()),\n domain: v.union(vConnectionDomainDoc, v.null()),\n }),\n v.null(),\n);\n\nconst vConnectionDomainSummary = v.object({\n domainId: vIdString(\"GroupConnectionDomain\"),\n domain: v.string(),\n isPrimary: v.boolean(),\n verified: v.boolean(),\n verifiedAt: vNullableNumber,\n});\n\nconst vConnectionDomainValidation = v.object({\n connectionId: vIdString(\"GroupConnection\"),\n ready: v.boolean(),\n summary: v.object({\n domainCount: v.number(),\n primaryCount: v.number(),\n verifiedCount: v.number(),\n }),\n domains: v.array(vConnectionDomainSummary),\n warnings: v.array(v.string()),\n});\n\nconst vConnectionDomainSet = v.object({\n connectionId: vIdString(\"GroupConnection\"),\n domains: v.array(vConnectionDomainSummary),\n});\n\nconst vConnectionDomainVerificationRequest = v.object({\n connectionId: vIdString(\"GroupConnection\"),\n domain: v.string(),\n requestedAt: v.number(),\n expiresAt: v.number(),\n challenge: v.object({\n recordType: v.literal(\"TXT\"),\n recordName: v.string(),\n recordValue: v.string(),\n }),\n});\n\nconst vConnectionDomainVerificationConfirm = v.object({\n connectionId: vIdString(\"GroupConnection\"),\n domain: v.string(),\n verifiedAt: v.optional(v.number()),\n checks: v.array(vConnectionCheck),\n});\n\nconst vConnectionStatus = v.object({\n connectionId: vIdString(\"GroupConnection\"),\n status: vGroupConnectionStatus,\n ready: v.boolean(),\n domainCount: v.number(),\n protocols: v.object({\n oidc: v.object({\n configured: v.boolean(),\n ready: v.boolean(),\n clientId: vNullableString,\n issuer: vNullableString,\n }),\n saml: v.object({\n configured: v.boolean(),\n ready: v.boolean(),\n entityId: vNullableString,\n }),\n scim: v.object({\n configured: v.boolean(),\n ready: v.boolean(),\n basePath: vNullableString,\n deprovisionMode: v.union(v.literal(\"soft\"), v.literal(\"hard\")),\n }),\n }),\n});\n\nconst vConnectionOidcConfig = v.object({\n enabled: v.optional(v.boolean()),\n discovery: v.optional(v.any()),\n client: v.optional(v.any()),\n request: v.optional(v.any()),\n security: v.optional(v.any()),\n profile: v.optional(v.any()),\n hasClientSecret: v.optional(v.boolean()),\n});\n\nconst vConnectionValidation = v.object({\n ok: v.boolean(),\n connectionId: vIdString(\"GroupConnection\"),\n checks: v.array(vConnectionCheck),\n});\n\nconst vConnectionPolicyValidation = v.object({\n ok: v.boolean(),\n groupId: vIdString(\"Group\"),\n policy: v.optional(vGroupConnectionPolicy),\n checks: v.array(vConnectionCheck),\n});\n\nconst vConnectionScimConfig = v.object({\n _id: vIdString(\"GroupConnectionScimConfig\"),\n _creationTime: v.number(),\n connectionId: vIdString(\"GroupConnection\"),\n groupId: vIdString(\"Group\"),\n status: vScimStatus,\n basePath: v.string(),\n lastRotatedAt: v.optional(v.number()),\n extend: v.optional(v.any()),\n hasToken: v.boolean(),\n security: v.optional(v.any()),\n profile: v.optional(v.any()),\n});\n\nconst vConnectionScimSet = v.object({\n connectionId: vIdString(\"GroupConnection\"),\n configId: vIdString(\"GroupConnectionScimConfig\"),\n basePath: v.string(),\n token: v.string(),\n});\n\nconst vConnectionScimValidation = v.object({\n ok: v.boolean(),\n connectionId: vIdString(\"GroupConnection\"),\n basePath: v.optional(v.string()),\n deprovisionMode: v.optional(v.union(v.literal(\"soft\"), v.literal(\"hard\"))),\n capabilities: v.optional(\n v.object({\n users: v.boolean(),\n groups: v.boolean(),\n patch: v.boolean(),\n put: v.boolean(),\n filters: v.array(v.string()),\n bulk: v.boolean(),\n etag: v.boolean(),\n }),\n ),\n checks: v.array(vConnectionCheck),\n});\n\nconst vConnectionSignIn = v.object({\n connectionId: vIdString(\"GroupConnection\"),\n providerId: v.string(),\n protocol: vGroupConnectionProtocol,\n signInPath: v.string(),\n callbackPath: v.string(),\n redirectTo: v.optional(v.string()),\n});\n\nconst vConnectionAuditEvent = v.object({\n _id: vIdString(\"AuthEventProjection\"),\n _creationTime: v.number(),\n eventId: v.string(),\n targetKind: vAuthEventTargetKind,\n targetId: v.string(),\n kind: vAuthEventKind,\n category: vAuthEventCategory,\n occurredAt: v.number(),\n actorType: vAuthEventActorType,\n actorId: v.optional(v.string()),\n subjectType: vAuthEventSubjectType,\n subjectId: v.optional(v.string()),\n outcome: vAuthEventOutcome,\n errorCode: v.optional(v.string()),\n requestId: v.optional(v.string()),\n ip: v.optional(v.string()),\n data: v.optional(vAuthEventData),\n});\n\nconst vConnectionWebhookEndpoint = v.object({\n _id: vIdString(\"GroupWebhookEndpoint\"),\n _creationTime: v.number(),\n connectionId: vIdString(\"GroupConnection\"),\n groupId: vIdString(\"Group\"),\n url: v.string(),\n status: vWebhookEndpointStatus,\n subscriptions: v.array(vAuthEventKind),\n createdByUserId: v.optional(vIdString(\"User\")),\n lastSuccessAt: v.optional(v.number()),\n lastFailureAt: v.optional(v.number()),\n failureCount: v.number(),\n extend: v.optional(v.any()),\n});\n\nconst vConnectionWebhookDelivery = v.object({\n _id: vIdString(\"GroupWebhookDelivery\"),\n _creationTime: v.number(),\n connectionId: vIdString(\"GroupConnection\"),\n endpointId: vIdString(\"GroupWebhookEndpoint\"),\n eventId: v.string(),\n kind: vAuthEventKind,\n status: vWebhookDeliveryStatus,\n attemptCount: v.number(),\n nextAttemptAt: v.number(),\n lastAttemptAt: v.optional(v.number()),\n lastResponseStatus: v.optional(v.number()),\n lastError: v.optional(v.string()),\n signedAt: v.number(),\n});\n\nconst connectionValidators = {\n protocol: vGroupConnectionProtocol,\n doc: vConnectionDoc,\n lookup: vConnectionLookup,\n id: vConnectionIdResult,\n created: vConnectionGroupResult,\n status: vConnectionStatus,\n validation: vConnectionValidation,\n signIn: vConnectionSignIn,\n domain: {\n doc: vConnectionDomainDoc,\n summary: vConnectionDomainSummary,\n validation: vConnectionDomainValidation,\n upsert: vConnectionDomainSet,\n verificationRequest: vConnectionDomainVerificationRequest,\n verificationConfirm: vConnectionDomainVerificationConfirm,\n },\n oidc: {\n config: vConnectionOidcConfig,\n validation: vConnectionValidation,\n },\n saml: {\n validation: vConnectionValidation,\n metadata: v.string(),\n },\n policy: {\n config: vGroupConnectionPolicy,\n validation: vConnectionPolicyValidation,\n },\n scim: {\n config: vConnectionScimConfig,\n upsert: vConnectionScimSet,\n validation: vConnectionScimValidation,\n },\n audit: {\n event: vConnectionAuditEvent,\n },\n webhook: {\n endpoint: vConnectionWebhookEndpoint,\n delivery: vConnectionWebhookDelivery,\n disabled: v.object({ endpointId: vIdString(\"GroupWebhookEndpoint\") }),\n },\n};\n\n/**\n * Build the `auth.v.*` validator namespace from the consumer's `extend`\n * config. Each doc validator's `extend` field is rebuilt with the\n * supplied validator so the inferred type carries the real shape.\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n * @param extend - The `extend` map from `defineAuth` config. Defaults to\n * an empty object (all `extend` fields stay `v.any()`).\n * @returns The `auth.v` namespace: `user`, `group`, `member`, `invite`,\n * `viewer`, `viewerWithGroups`, and the `list` page-wrapper helper.\n *\n * @example\n * ```ts\n * const av = createAuthValidators({\n * User: v.object({ stripeCustomerId: v.optional(v.string()) }),\n * });\n * // Infer<typeof av.viewer> -> User document with typed `extend`\n * ```\n */\nexport function createAuthValidators<TExtend extends AuthExtendValidators>(\n extend: TExtend = {} as TExtend,\n) {\n const user = docWithExtend<typeof userFieldsX, ExtendFor<TExtend, \"User\">>(\n userFieldsX,\n (extend.User ?? v.any()) as ExtendFor<TExtend, \"User\">,\n );\n const group = docWithExtend<typeof groupFieldsX, ExtendFor<TExtend, \"Group\">>(\n groupFieldsX,\n (extend.Group ?? v.any()) as ExtendFor<TExtend, \"Group\">,\n );\n const member = docWithExtend<typeof memberFieldsX, ExtendFor<TExtend, \"GroupMember\">>(\n memberFieldsX,\n (extend.GroupMember ?? v.any()) as ExtendFor<TExtend, \"GroupMember\">,\n );\n const invite = inviteDocX;\n const email = emailDocX;\n const viewer = v.union(user, v.null());\n\n return {\n /**\n * Typed component document IDs. They validate as strings because this\n * application crosses a component boundary, while preserving the exact\n * component table identity in TypeScript.\n */\n id: vIdString,\n /** Single User document validator (extend-aware). */\n user,\n /** Single Group document validator (extend-aware). */\n group,\n /** Single GroupMember document validator (extend-aware). */\n member,\n /** Single GroupInvite document validator. */\n invite,\n /** Single UserEmail document validator. */\n email,\n /** `User | null` — for a `viewer`/current-user query. */\n viewer,\n /** Wrap any item validator in Convex's native pagination result shape. */\n list: vPaginated,\n /** Validators for the group connection admin facade. */\n connection: connectionValidators,\n };\n}\n\n/**\n * The `auth.v` namespace type, parameterized by the consumer's `extend`.\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n */\nexport type AuthValidators<TExtend extends AuthExtendValidators = {}> = ReturnType<\n typeof createAuthValidators<TExtend>\n>;\n\n/**\n * Inferred current-user document type (extend-aware).\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n */\nexport type Viewer<TExtend extends AuthExtendValidators = {}> = Infer<\n AuthValidators<TExtend>[\"user\"]\n>;\n/**\n * Inferred Group document type (extend-aware).\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n */\nexport type Group<TExtend extends AuthExtendValidators = {}> = Infer<\n AuthValidators<TExtend>[\"group\"]\n>;\n/**\n * Inferred GroupMember document type (extend-aware).\n *\n * @typeParam TExtend - The consumer's per-table `extend` validators.\n */\nexport type Membership<TExtend extends AuthExtendValidators = {}> = Infer<\n AuthValidators<TExtend>[\"member\"]\n>;\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { queueAuthEvent } from "./events.js";
7
7
  import { log } from "./log.js";
8
8
  import { encodeRefreshToken, refreshTokenExpirationTime } from "./token/refresh.js";
9
9
  import { setActiveSpanAttributes } from "./utils/span.js";
10
- import { buildSessionIdentity, finalizeSessionIssuance, getAuthSessionId, sessionExpirationTime } from "./session/lifecycle.js";
10
+ import { buildSessionIdentity, finalizeSessionIssuance, getAuthSessionId, getAuthSessionReplacement, sessionExpirationTime } from "./session/lifecycle.js";
11
11
  import { authFlowError } from "../shared/errors.js";
12
12
  import { toConvexError } from "./errors.js";
13
13
  import { buildKnownSignInIdentityAttributes } from "./telemetry.js";
@@ -541,7 +541,7 @@ async function handleWebAuthn(ctx, provider, args) {
541
541
  const data = registrationData(userId, credentialId, publicKeyBytes, algorithm, authData.signatureCounter, backupState, params, attestationEvidence, ctx);
542
542
  if (continuationId === void 0) completed = await mutatePasskeyCompleteRegistration(ctx, {
543
543
  ...data,
544
- replaceSessionId: await getAuthSessionId(ctx) ?? void 0
544
+ replaceSession: await getAuthSessionReplacement(ctx)
545
545
  });
546
546
  else {
547
547
  const rotation = await mutatePasskeyCompleteRotation(ctx, {
@@ -656,7 +656,7 @@ async function handleWebAuthn(ctx, provider, args) {
656
656
  validateBackupEligibility(passkey.deviceType, backupState.deviceType);
657
657
  if (rp.registration.attestation) await assertStoredAttestationTrusted(rp.registration.attestation, passkey.attestation);
658
658
  if ((passkey.counter !== 0 || authenticatorData.signatureCounter !== 0) && authenticatorData.signatureCounter <= passkey.counter) throw convexError(ErrorCode.PASSKEY_COUNTER_ERROR, "Authenticator counter did not increase — possible credential cloning detected.");
659
- const replaceSessionId = await getAuthSessionId(ctx) ?? void 0;
659
+ const replaceSession = await getAuthSessionReplacement(ctx);
660
660
  let completed;
661
661
  try {
662
662
  completed = await mutatePasskeyCompleteAssertion(ctx, {
@@ -664,7 +664,7 @@ async function handleWebAuthn(ctx, provider, args) {
664
664
  counter: authenticatorData.signatureCounter,
665
665
  lastUsedAt: Date.now(),
666
666
  backedUp: backupState.backedUp,
667
- replaceSessionId,
667
+ replaceSession,
668
668
  sessionExpirationTime: sessionExpirationTime(ctx.auth.config),
669
669
  refreshTokenExpirationTime: refreshTokenExpirationTime(ctx.auth.config)
670
670
  });